From 0e432d00a2ef323edf48960fbce2c087ee2023c6 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Wed, 30 Jun 2004 14:07:51 +0000 Subject: detachable windows in gtk+2 --- mixgtk/mixgtk_widgets.c | 74 ++++++++----------------------------------------- 1 file changed, 12 insertions(+), 62 deletions(-) (limited to 'mixgtk/mixgtk_widgets.c') diff --git a/mixgtk/mixgtk_widgets.c b/mixgtk/mixgtk_widgets.c index 6ffff1e..80bb592 100644 --- a/mixgtk/mixgtk_widgets.c +++ b/mixgtk/mixgtk_widgets.c @@ -37,8 +37,6 @@ static const gchar * dnames_[] = { "word_dialog", "about_dialog", "goto_dialog", - "color_dialog", - "colorsel_dialog", "fontsel_dialog", "devform_dialog", "external_dialog", @@ -47,18 +45,19 @@ static const gchar * dnames_[] = { "devdir_dialog" }; -const gchar *SPLIT_MAIN_NAME_ = "split_main_window"; -const gchar *MAIN_NAME_ = "main_window"; - #define DLG_NO_ (sizeof (dnames_) / sizeof(dnames_[0])) /* widget names */ static const gchar *names_[] = { "main_statusbar", + "main_notebook", "mixvm_widget", + "mixvm_container", "command_prompt", "command_log", - "mixal_clist", + "dev_container", + "mixal_container", + "mixal_statusbar", "rA_entry", "rX_entry", "rJ_entry", @@ -76,24 +75,16 @@ static const gchar *names_[] = { "elapsed_label", "program_label", "uptime_label", - "memory_scroll", "devices_container", "loc_entry", + "goto_entry", NULL }; #define WIDGET_NO_ (sizeof (names_) / sizeof (names_[0])) -#define VERSION_LABEL_ "version_label" -#define GPL_TEXT_ "gpl_text" -#define AUTOSAVE_ITEM_ "save_on_exit" - -static gboolean split_; - /* the glade specs */ static GladeXML *xml_[DLG_NO_] = {NULL}; -/* the about dialog */ -static GtkWidget *about_ = NULL; /* the xml file name */ static const gchar *file_ = NULL; @@ -105,39 +96,10 @@ static void init_xml_ (mixgtk_dialog_id_t dlg) g_assert (xml_[dlg] != NULL); } -static void -init_autosave_ (void) -{ - GtkCheckMenuItem *item = GTK_CHECK_MENU_ITEM - (mixgtk_widget_factory_get_child_by_name - (MIXGTK_MAIN, AUTOSAVE_ITEM_)); - if (item) - { - gtk_check_menu_item_set_active (item, mixgtk_config_is_autosave ()); - } -} - -static void -init_about_ (void) -{ - GtkWidget *label; - about_ = mixgtk_widget_factory_get_dialog (MIXGTK_ABOUT_DIALOG); - g_assert (about_ != NULL); - label = mixgtk_widget_factory_get_child_by_name (MIXGTK_ABOUT_DIALOG, - VERSION_LABEL_); - g_assert (label != NULL); - gtk_label_set_text (GTK_LABEL(label), VERSION); - gtk_widget_show (label); -} - /* create a new factory from an xml glade file */ gboolean mixgtk_widget_factory_init (void) { - gboolean split = mixgtk_config_is_split (); - - about_ = NULL; - if (!file_) { const gchar *glade_file = GLADE_FILE; @@ -154,12 +116,7 @@ mixgtk_widget_factory_init (void) for (k = 0; k < DLG_NO_; ++k) if (xml_[k]) xml_[k] = NULL; } - split_ = split; - - dnames_[MIXGTK_MAIN] = split_? SPLIT_MAIN_NAME_ : MAIN_NAME_; - init_xml_ (MIXGTK_MAIN); - init_autosave_ (); return TRUE; } @@ -167,8 +124,8 @@ mixgtk_widget_factory_init (void) GtkWidget * mixgtk_widget_factory_get (mixgtk_dialog_id_t dlg, mixgtk_widget_id_t widget) { - g_return_val_if_fail (widget < WIDGET_NO_, NULL); - if (!split_ && dlg < MIXGTK_WORD_DIALOG) dlg = MIXGTK_MAIN; + g_assert (widget < WIDGET_NO_); + return mixgtk_widget_factory_get_child_by_name (dlg, names_[widget]); } @@ -176,7 +133,8 @@ mixgtk_widget_factory_get (mixgtk_dialog_id_t dlg, mixgtk_widget_id_t widget) GtkWidget * mixgtk_widget_factory_get_dialog (mixgtk_dialog_id_t dlg) { - if (!split_ && dlg < MIXGTK_WORD_DIALOG) dlg = MIXGTK_MAIN; + g_assert (dlg < DLG_NO_); + if (!xml_[dlg]) init_xml_ (dlg); return glade_xml_get_widget (xml_[dlg], dnames_[dlg]); } @@ -185,18 +143,10 @@ GtkWidget * mixgtk_widget_factory_get_child_by_name (mixgtk_dialog_id_t dlg, const gchar *name) { - g_return_val_if_fail (dlg < DLG_NO_, NULL); - g_return_val_if_fail (name != NULL, NULL); - if (!split_ && dlg < MIXGTK_WORD_DIALOG) dlg = MIXGTK_MAIN; + g_assert (dlg < DLG_NO_); + g_assert (name != NULL); if (!xml_[dlg]) init_xml_ (dlg); return glade_xml_get_widget (xml_[dlg], name); } -/* about box */ -void -on_about_activate (GtkWidget *w, gpointer data) -{ - if (!about_) init_about_ (); - gtk_widget_show (about_); -} -- cgit v1.2.3