From 5930089d6965da4bcc7aa11e1f4d67a76c0dd351 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Mon, 25 Jun 2001 23:52:29 +0000 Subject: hot split/unsplit --- mixgtk/mixgtk.c | 68 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 31 deletions(-) (limited to 'mixgtk/mixgtk.c') diff --git a/mixgtk/mixgtk.c b/mixgtk/mixgtk.c index 6089dd2..2f60cb2 100644 --- a/mixgtk/mixgtk.c +++ b/mixgtk/mixgtk.c @@ -38,33 +38,11 @@ static const gchar *SPLIT_ARG_ = "-s"; static const gchar *SPLIT_LONG_ARG_ = "--s"; -/* initialise the app */ gboolean -mixgtk_init (int argc, char *argv[]) +mixgtk_restart (gboolean split) { mix_vm_t *vm; - gboolean split = FALSE; - gint k; - - mix_init_lib (); - - if (!mixgtk_config_load ()) - { - g_error ("Unable to read configuration\n"); - return FALSE; - } - for (k = 0; k < argc; ++k) - if (!strcmp (argv[k], SPLIT_ARG_) || !strcmp (argv[k], SPLIT_LONG_ARG_)) - { - split = TRUE; - break; - } - if (!split && mixgtk_config_is_split ()) split = TRUE; - mixgtk_config_set_split (split); - - gtk_init (&argc, &argv); - if (!mixgtk_widget_factory_init (split)) { g_error ("Unable to initialise application: missing glade file"); @@ -77,9 +55,6 @@ mixgtk_init (int argc, char *argv[]) return FALSE; } - if (split) - gtk_widget_show (mixgtk_widget_factory_get_dialog (MIXGTK_MAIN)); - vm = mixgtk_cmd_dispatcher_get_vm (); if (!mixgtk_mixvm_init (vm, MIXGTK_MIXVM_DIALOG)) @@ -108,19 +83,50 @@ mixgtk_init (int argc, char *argv[]) g_error ("Unable to initialise application (visibility)\n"); return FALSE; } - + + mixgtk_input_init (); + mixgtk_colorsel_init (); mixgtk_fontsel_load_defaults (split); - + + gtk_widget_show (mixgtk_widget_factory_get_dialog (MIXGTK_MAIN)); + mixgtk_mixvm_update_vm_widgets (); + return TRUE; } +/* initialise the app */ +gboolean +mixgtk_init (int argc, char *argv[]) +{ + gboolean split = FALSE; + gint k; + + mix_init_lib (); + + if (!mixgtk_config_load ()) + { + g_error ("Unable to read configuration\n"); + return FALSE; + } + + for (k = 0; k < argc; ++k) + if (!strcmp (argv[k], SPLIT_ARG_) || !strcmp (argv[k], SPLIT_LONG_ARG_)) + { + split = TRUE; + break; + } + if (!split && mixgtk_config_is_split ()) split = TRUE; + mixgtk_config_set_split (split); + + gtk_init (&argc, &argv); + + return mixgtk_restart (split); +} + /* main loop */ void mixgtk_main (void) { - gtk_widget_show (mixgtk_widget_factory_get_dialog (MIXGTK_MAIN)); - mixgtk_mixvm_update_vm_widgets (); - gtk_main (); } -- cgit v1.2.3