From 119a5240f57ded266447b485e5a7c0eec6dd67f8 Mon Sep 17 00:00:00 2001 From: jaortega Date: Mon, 26 Feb 2001 23:16:00 +0000 Subject: gtk front-end files --- mixgtk/mixgtk_widgets.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 mixgtk/mixgtk_widgets.c (limited to 'mixgtk/mixgtk_widgets.c') diff --git a/mixgtk/mixgtk_widgets.c b/mixgtk/mixgtk_widgets.c new file mode 100644 index 0000000..aa06643 --- /dev/null +++ b/mixgtk/mixgtk_widgets.c @@ -0,0 +1,71 @@ +/* -*-c-*- -------------- mixgtk_widgets.c : + * Implementation of the functions declared in mixgtk_widgets.h + * ------------------------------------------------------------------ + * Last change: Time-stamp: "01/02/26 02:57:02 jose" + * ------------------------------------------------------------------ + * Copyright (C) 2001 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + + +#include "mixgtk_widgets.h" + +#include + +/* the glade spec */ +static GladeXML *xml_ = NULL; + +/* widget names */ +static const gchar *names_[] = { + "main_window", + "word_dialog", + "command_prompt", + "command_log" +}; + +#define WIDGET_NO_ (sizeof (names_) / sizeof (names_[0])) + +/* create a new factory from an xml glade file */ +gboolean +mixgtk_widget_factory_init (const char *glade_file) +{ + glade_init (); + xml_ = glade_xml_new (glade_file, NULL); + if (!xml_) return FALSE; + glade_xml_signal_autoconnect (xml_); + return TRUE; +} + +/* get a widget */ +GtkWidget * +mixgtk_widget_factory_get (mixgtk_widget_id_t widget) +{ + g_return_val_if_fail (widget < WIDGET_NO_, NULL); + return glade_xml_get_widget (xml_, names_[widget]); +} + +/* update a widget from a virtual machine */ +extern void +mixgtk_widget_factory_update_widget (mixgtk_widget_id_t widget, + const mix_vm_t *vm); + +/* update the virtual machine from a widget */ +extern void +mixgtk_widget_factory_update_vm (mixgtk_widget_id_t widget, + mix_vm_t *vm); + + -- cgit v1.2.3