[Gpredict-svn] SF.net SVN: gpredict:[521] trunk
Real time satellite tracking and orbit prediction
Status: Beta
Brought to you by:
csete
From: <cs...@us...> - 2009-11-19 15:03:10
|
Revision: 521 http://gpredict.svn.sourceforge.net/gpredict/?rev=521&view=rev Author: csete Date: 2009-11-19 15:03:02 +0000 (Thu, 19 Nov 2009) Log Message: ----------- Implemented new grid-based layout engine for GtkSatModule (engine only, config is still TBD). Modified Paths: -------------- trunk/ChangeLog trunk/src/gtk-sat-module-popup.c trunk/src/gtk-sat-module.c trunk/src/gtk-sat-module.h trunk/src/menubar.c trunk/src/mod-mgr.c trunk/src/sat-cfg.h Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-11-19 08:33:05 UTC (rev 520) +++ trunk/ChangeLog 2009-11-19 15:03:02 UTC (rev 521) @@ -1,3 +1,13 @@ +2009-11-19 Alexandru Csete <oz9aec at gmail.com> + + * src/gtk-sat-module.[ch]: + * src/gtk-sat-module-popup.c: + * src/menuibar.c: + * src/mod-mgr.c: + Implemented new grid-based layout engine for GtkSatModule + (engine only, config is still TBD). + + 2009-11-18 Alexandru Csete <oz9aec at gmail.com> * src/config-keys.h: @@ -5,12 +15,12 @@ Added config key for new GRID layout. * src/sat-info.c: - Pack transponder list into a scrolled window to prevent long transponder lists from - resizing the satellite info dialog. + Pack transponder list into a scrolled window to prevent long transponder + lists from resizing the satellite info dialog. * src/gtk-single-sat.c: - Changed satellite selector to list satellites in the main pop-up menu instead of a - submbenu (fewer mouse clicks). + Changed satellite selector to list satellites in the main pop-up menu + instead of a submbenu (fewer mouse clicks). 2009-11-06 Alexandru Csete <oz9aec at gmail.com> @@ -26,7 +36,6 @@ Applied patch 2893617 from Valentin Yakovenkov fixing various windows issues. - 2009-10-27 Alexandru Csete <oz9aec at gmail.com> * src/tle-update.c: Modified: trunk/src/gtk-sat-module-popup.c =================================================================== --- trunk/src/gtk-sat-module-popup.c 2009-11-19 08:33:05 UTC (rev 520) +++ trunk/src/gtk-sat-module-popup.c 2009-11-19 15:03:02 UTC (rev 521) @@ -11,17 +11,17 @@ More details can be found at the project home page: http://gpredict.oz9aec.net/ - + 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, visit http://www.fsf.org/ */ @@ -76,91 +76,91 @@ * */ void -gtk_sat_module_popup (GtkSatModule *module) + gtk_sat_module_popup (GtkSatModule *module) { - GtkWidget *menu; - GtkWidget *menuitem; - GtkWidget *image; - gchar *buff; + GtkWidget *menu; + GtkWidget *menuitem; + GtkWidget *image; + gchar *buff; - if ((module == NULL) || !IS_GTK_SAT_MODULE (module)) { - sat_log_log (SAT_LOG_LEVEL_BUG, - _("%s:%d: %s called with NULL parameter!"), - __FILE__, __LINE__, __FUNCTION__); + if ((module == NULL) || !IS_GTK_SAT_MODULE (module)) { + sat_log_log (SAT_LOG_LEVEL_BUG, + _("%s:%d: %s called with NULL parameter!"), + __FILE__, __LINE__, __FUNCTION__); - return; - } + return; + } - menu = gtk_menu_new (); + menu = gtk_menu_new (); - if (module->state == GTK_SAT_MOD_STATE_DOCKED) { + if (module->state == GTK_SAT_MOD_STATE_DOCKED) { - menuitem = gtk_image_menu_item_new_with_label (_("Detach module")); - buff = icon_file_name ("gpredict-notebook.png"); - image = gtk_image_new_from_file (buff); - g_free (buff); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - g_signal_connect (menuitem, "activate", - G_CALLBACK (docking_state_cb), module); - } - else { + menuitem = gtk_image_menu_item_new_with_label (_("Detach module")); + buff = icon_file_name ("gpredict-notebook.png"); + image = gtk_image_new_from_file (buff); + g_free (buff); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + g_signal_connect (menuitem, "activate", + G_CALLBACK (docking_state_cb), module); + } + else { - menuitem = gtk_image_menu_item_new_with_label (_("Attach module")); - buff = icon_file_name ("gpredict-notebook.png"); - image = gtk_image_new_from_file (buff); - g_free (buff); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - g_signal_connect (menuitem, "activate", - G_CALLBACK (docking_state_cb), module); + menuitem = gtk_image_menu_item_new_with_label (_("Attach module")); + buff = icon_file_name ("gpredict-notebook.png"); + image = gtk_image_new_from_file (buff); + g_free (buff); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + g_signal_connect (menuitem, "activate", + G_CALLBACK (docking_state_cb), module); - } + } - if (module->state == GTK_SAT_MOD_STATE_FULLSCREEN) { + if (module->state == GTK_SAT_MOD_STATE_FULLSCREEN) { - menuitem = gtk_image_menu_item_new_with_label (_("Leave fullscreen")); - image = gtk_image_new_from_stock (GTK_STOCK_LEAVE_FULLSCREEN, - GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - g_signal_connect (menuitem, "activate", - G_CALLBACK (screen_state_cb), module); - } - else { - menuitem = gtk_image_menu_item_new_with_label (_("Fullscreen")); - image = gtk_image_new_from_stock (GTK_STOCK_FULLSCREEN, - GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - g_signal_connect (menuitem, "activate", - G_CALLBACK (screen_state_cb), module); - } + menuitem = gtk_image_menu_item_new_with_label (_("Leave fullscreen")); + image = gtk_image_new_from_stock (GTK_STOCK_LEAVE_FULLSCREEN, + GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + g_signal_connect (menuitem, "activate", + G_CALLBACK (screen_state_cb), module); + } + else { + menuitem = gtk_image_menu_item_new_with_label (_("Fullscreen")); + image = gtk_image_new_from_stock (GTK_STOCK_FULLSCREEN, + GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + g_signal_connect (menuitem, "activate", + G_CALLBACK (screen_state_cb), module); + } - /* separator */ - menuitem = gtk_separator_menu_item_new (); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + /* separator */ + menuitem = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - /* sky at a glance */ - menuitem = gtk_image_menu_item_new_with_label (_("Sky at a glance")); - buff = icon_file_name ("gpredict-planner-small.png"); - image = gtk_image_new_from_file (buff); - g_free (buff); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - g_signal_connect (menuitem, "activate", - G_CALLBACK (sky_at_glance_cb), module); + /* sky at a glance */ + menuitem = gtk_image_menu_item_new_with_label (_("Sky at a glance")); + buff = icon_file_name ("gpredict-planner-small.png"); + image = gtk_image_new_from_file (buff); + g_free (buff); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + g_signal_connect (menuitem, "activate", + G_CALLBACK (sky_at_glance_cb), module); - /* time manager */ - menuitem = gtk_image_menu_item_new_with_label (_("Time Controller")); - buff = icon_file_name ("gpredict-clock-small.png"); - image = gtk_image_new_from_file (buff); - g_free (buff); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - g_signal_connect (menuitem, "activate", G_CALLBACK (tmgr_cb), module); + /* time manager */ + menuitem = gtk_image_menu_item_new_with_label (_("Time Controller")); + buff = icon_file_name ("gpredict-clock-small.png"); + image = gtk_image_new_from_file (buff); + g_free (buff); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + g_signal_connect (menuitem, "activate", G_CALLBACK (tmgr_cb), module); /* separator */ menuitem = gtk_separator_menu_item_new (); @@ -183,55 +183,55 @@ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); g_signal_connect (menuitem, "activate", G_CALLBACK (rotctrl_cb), module); - - /* separator */ - menuitem = gtk_separator_menu_item_new (); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - /* configure */ - menuitem = gtk_image_menu_item_new_with_label (_("Configure")); - image = gtk_image_new_from_stock (GTK_STOCK_PROPERTIES, - GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - g_signal_connect (menuitem, "activate", - G_CALLBACK (config_cb), module); + /* separator */ + menuitem = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - /* clone */ - menuitem = gtk_image_menu_item_new_with_label (_("Clone...")); - image = gtk_image_new_from_stock (GTK_STOCK_COPY, - GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - g_signal_connect (menuitem, "activate", - G_CALLBACK (clone_cb), module); + /* configure */ + menuitem = gtk_image_menu_item_new_with_label (_("Configure")); + image = gtk_image_new_from_stock (GTK_STOCK_PROPERTIES, + GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + g_signal_connect (menuitem, "activate", + G_CALLBACK (config_cb), module); - /* separator */ - menuitem = gtk_separator_menu_item_new (); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + /* clone */ + menuitem = gtk_image_menu_item_new_with_label (_("Clone...")); + image = gtk_image_new_from_stock (GTK_STOCK_COPY, + GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + g_signal_connect (menuitem, "activate", + G_CALLBACK (clone_cb), module); - /* delete module */ - menuitem = gtk_image_menu_item_new_with_label (_("Delete")); - image = gtk_image_new_from_stock (GTK_STOCK_DELETE, - GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - g_signal_connect (menuitem, "activate", - G_CALLBACK (delete_cb), module); + /* separator */ + menuitem = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - /* close */ - menuitem = gtk_image_menu_item_new_with_label (_("Close")); - image = gtk_image_new_from_stock (GTK_STOCK_CLOSE, - GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); - g_signal_connect (menuitem, "activate", - G_CALLBACK (close_cb), module); + /* delete module */ + menuitem = gtk_image_menu_item_new_with_label (_("Delete")); + image = gtk_image_new_from_stock (GTK_STOCK_DELETE, + GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + g_signal_connect (menuitem, "activate", + G_CALLBACK (delete_cb), module); - gtk_widget_show_all (menu); + /* close */ + menuitem = gtk_image_menu_item_new_with_label (_("Close")); + image = gtk_image_new_from_stock (GTK_STOCK_CLOSE, + GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem); + g_signal_connect (menuitem, "activate", + G_CALLBACK (close_cb), module); - gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, - 0, gdk_event_get_time (NULL)); + gtk_widget_show_all (menu); + + gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, + 0, gdk_event_get_time (NULL)); } @@ -244,7 +244,7 @@ * */ static void -config_cb (GtkWidget *menuitem, gpointer data) + config_cb (GtkWidget *menuitem, gpointer data) { GtkSatModule *module = GTK_SAT_MODULE (data); @@ -262,7 +262,7 @@ gtk_widget_destroy (dialog); } else { - gtk_sat_module_config_cb (menuitem, data); + gtk_sat_module_config_cb (menuitem, data); } } @@ -280,198 +280,177 @@ * */ static void -clone_cb (GtkWidget *menuitem, gpointer data) + clone_cb (GtkWidget *menuitem, gpointer data) { - GtkWidget *dialog; - GtkWidget *entry; - GtkWidget *label; - GtkWidget *toggle; - GtkTooltips *tooltips; - guint response; - GtkSatModule *module = GTK_SAT_MODULE (data); - GtkSatModule *newmod; - gchar *source,*target; - gchar *icon; /* icon file name */ - gchar *title; /* window title */ + GtkWidget *dialog; + GtkWidget *entry; + GtkWidget *label; + GtkWidget *toggle; + GtkTooltips *tooltips; + guint response; + GtkSatModule *module = GTK_SAT_MODULE (data); + GtkSatModule *newmod; + gchar *source,*target; + gchar *icon; /* icon file name */ + gchar *title; /* window title */ - dialog = gtk_dialog_new_with_buttons (_("Clone Module"), - GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (module))), - GTK_DIALOG_MODAL | - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_CANCEL, - GTK_RESPONSE_CANCEL, - GTK_STOCK_OK, - GTK_RESPONSE_OK, - NULL); - gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); + dialog = gtk_dialog_new_with_buttons (_("Clone Module"), + GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (module))), + GTK_DIALOG_MODAL | + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + GTK_STOCK_OK, + GTK_RESPONSE_OK, + NULL); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); - /* label */ - label = gtk_label_new (_("Name of new module:")); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), label, FALSE, FALSE, 0); + /* label */ + label = gtk_label_new (_("Name of new module:")); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), label, FALSE, FALSE, 0); - /* name entry */ - entry = gtk_entry_new (); - gtk_entry_set_max_length (GTK_ENTRY (entry), 25); - gtk_entry_set_text (GTK_ENTRY (entry), module->name); - tooltips = gtk_tooltips_new (); - gtk_tooltips_set_tip (tooltips, entry, - _("Enter a short name for this module.\n"\ - "Allowed characters: 0..9, a..z, A..Z, - and _"), - _("The name will be used to identify the module "\ - "and it is also used a file name for saving the data."\ - "Max length is 25 characters.")); + /* name entry */ + entry = gtk_entry_new (); + gtk_entry_set_max_length (GTK_ENTRY (entry), 25); + gtk_entry_set_text (GTK_ENTRY (entry), module->name); + tooltips = gtk_tooltips_new (); + gtk_tooltips_set_tip (tooltips, entry, + _("Enter a short name for this module.\n"\ + "Allowed characters: 0..9, a..z, A..Z, - and _"), + _("The name will be used to identify the module "\ + "and it is also used a file name for saving the data."\ + "Max length is 25 characters.")); - /* attach changed signal so that we can enable OK button when + /* attach changed signal so that we can enable OK button when a proper name has been entered oh, btw. disable OK button to begin with.... */ - gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), - GTK_RESPONSE_OK, - FALSE); - g_signal_connect (entry, "changed", G_CALLBACK (name_changed), dialog); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), - entry, FALSE, FALSE, 0); + gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), + GTK_RESPONSE_OK, + FALSE); + g_signal_connect (entry, "changed", G_CALLBACK (name_changed), dialog); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), + entry, FALSE, FALSE, 0); - /* check button */ - toggle = gtk_check_button_new_with_label (_("Open module when created")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), TRUE); - tooltips = gtk_tooltips_new (); - gtk_tooltips_set_tip (tooltips, toggle, - _("If checked, the new module will be opened "\ - "after it has been created"), - NULL); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), - toggle, FALSE, FALSE, 20); - + /* check button */ + toggle = gtk_check_button_new_with_label (_("Open module when created")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), TRUE); + tooltips = gtk_tooltips_new (); + gtk_tooltips_set_tip (tooltips, toggle, + _("If checked, the new module will be opened "\ + "after it has been created"), + NULL); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), + toggle, FALSE, FALSE, 20); - gtk_widget_show_all (GTK_DIALOG (dialog)->vbox); - /* run dialog */ - response = gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_show_all (GTK_DIALOG (dialog)->vbox); - switch (response) { + /* run dialog */ + response = gtk_dialog_run (GTK_DIALOG (dialog)); - case GTK_RESPONSE_OK: - sat_log_log (SAT_LOG_LEVEL_MSG, - _("%s:%d: Cloning %s => %s"), - __FILE__, __LINE__, module->name, - gtk_entry_get_text (GTK_ENTRY (entry))); + switch (response) { - /* build full file names */ - gchar *moddir = get_modules_dir (); - source = g_strconcat (moddir, G_DIR_SEPARATOR_S, - module->name, ".mod", NULL); - target = g_strconcat (moddir, G_DIR_SEPARATOR_S, - gtk_entry_get_text (GTK_ENTRY (entry)), ".mod", NULL); - g_free (moddir); + case GTK_RESPONSE_OK: + sat_log_log (SAT_LOG_LEVEL_MSG, + _("%s:%d: Cloning %s => %s"), + __FILE__, __LINE__, module->name, + gtk_entry_get_text (GTK_ENTRY (entry))); - /* copy file */ - if (gpredict_file_copy (source, target)) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to clone %s."), - __FILE__, __LINE__, module->name); - } - else { - sat_log_log (SAT_LOG_LEVEL_MSG, - _("%s:%d: Successfully cloned %s."), - __FILE__, __LINE__, module->name); + /* build full file names */ + gchar *moddir = get_modules_dir (); + source = g_strconcat (moddir, G_DIR_SEPARATOR_S, + module->name, ".mod", NULL); + target = g_strconcat (moddir, G_DIR_SEPARATOR_S, + gtk_entry_get_text (GTK_ENTRY (entry)), ".mod", NULL); + g_free (moddir); - /* open module if requested */ - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle))) { - - newmod = GTK_SAT_MODULE (gtk_sat_module_new (target)); - newmod->state = module->state; + /* copy file */ + if (gpredict_file_copy (source, target)) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s:%d: Failed to clone %s."), + __FILE__, __LINE__, module->name); + } + else { + sat_log_log (SAT_LOG_LEVEL_MSG, + _("%s:%d: Successfully cloned %s."), + __FILE__, __LINE__, module->name); - if (newmod->state == GTK_SAT_MOD_STATE_DOCKED) { + /* open module if requested */ + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle))) { - /* add to module manager */ - mod_mgr_add_module (GTK_WIDGET (newmod), TRUE); + newmod = GTK_SAT_MODULE (gtk_sat_module_new (target)); + newmod->state = module->state; - /* try to reproduce divisions betwenn views */ - switch (module->layout) { + if (newmod->state == GTK_SAT_MOD_STATE_DOCKED) { - case GTK_SAT_MOD_LAYOUT_2: - gtk_paned_set_position (GTK_PANED (newmod->vpaned), - gtk_paned_get_position (GTK_PANED (module->vpaned))); - break; + /* add to module manager */ + mod_mgr_add_module (GTK_WIDGET (newmod), TRUE); - case GTK_SAT_MOD_LAYOUT_3: - case GTK_SAT_MOD_LAYOUT_4: - gtk_paned_set_position (GTK_PANED (newmod->vpaned), - gtk_paned_get_position (GTK_PANED (module->vpaned))); - gtk_paned_set_position (GTK_PANED (newmod->hpaned), - gtk_paned_get_position (GTK_PANED (module->hpaned))); - break; + } + else { + /* add to module manager */ + mod_mgr_add_module (GTK_WIDGET (newmod), FALSE); - default: - break; + /* create window */ + newmod->win = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (newmod->win), + newmod->name); + title = g_strconcat ("GPREDICT: ", + newmod->name, + " (", newmod->qth->name, ")", + NULL); + gtk_window_set_title (GTK_WINDOW (newmod->win), title); + g_free (title); - } + /* use size of source module */ + gtk_window_set_default_size (GTK_WINDOW (newmod->win), + GTK_WIDGET (module)->allocation.width, + GTK_WIDGET (module)->allocation.height); - } - else { - /* add to module manager */ - mod_mgr_add_module (GTK_WIDGET (newmod), FALSE); + g_signal_connect (G_OBJECT (newmod->win), "configure_event", + G_CALLBACK (module_window_config_cb), newmod); - /* create window */ - newmod->win = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_title (GTK_WINDOW (newmod->win), - newmod->name); - title = g_strconcat ("GPREDICT: ", - newmod->name, - " (", newmod->qth->name, ")", - NULL); - gtk_window_set_title (GTK_WINDOW (newmod->win), title); - g_free (title); + /* add module to window */ + gtk_container_add (GTK_CONTAINER (newmod->win), + GTK_WIDGET (newmod)); - /* use size of source module */ - gtk_window_set_default_size (GTK_WINDOW (newmod->win), - GTK_WIDGET (module)->allocation.width, - GTK_WIDGET (module)->allocation.height); + /* window icon */ + icon = icon_file_name ("gpredict-icon.png"); + if (g_file_test (icon, G_FILE_TEST_EXISTS)) { + gtk_window_set_icon_from_file (GTK_WINDOW (newmod->win), icon, NULL); + } + g_free (icon); - g_signal_connect (G_OBJECT (newmod->win), "configure_event", - G_CALLBACK (module_window_config_cb), newmod); + /* show window */ + gtk_widget_show_all (newmod->win); - /* add module to window */ - gtk_container_add (GTK_CONTAINER (newmod->win), - GTK_WIDGET (newmod)); + } + } + } - /* window icon */ - icon = icon_file_name ("gpredict-icon.png"); - if (g_file_test (icon, G_FILE_TEST_EXISTS)) { - gtk_window_set_icon_from_file (GTK_WINDOW (newmod->win), icon, NULL); - } - g_free (icon); + /* clean up */ + g_free (source); + g_free (target); - /* show window */ - gtk_widget_show_all (newmod->win); + break; - } - } - } - - /* clean up */ - g_free (source); - g_free (target); - - break; - case GTK_RESPONSE_CANCEL: - sat_log_log (SAT_LOG_LEVEL_MSG, - _("%s:%d: Cloning cancelled by user."), - __FILE__, __LINE__); - break; + sat_log_log (SAT_LOG_LEVEL_MSG, + _("%s:%d: Cloning cancelled by user."), + __FILE__, __LINE__); + break; default: - sat_log_log (SAT_LOG_LEVEL_MSG, - _("%s:%d: Cloning interrupted."), - __FILE__, __LINE__); - break; - } + sat_log_log (SAT_LOG_LEVEL_MSG, + _("%s:%d: Cloning interrupted."), + __FILE__, __LINE__); + break; + } - gtk_widget_destroy (dialog); + gtk_widget_destroy (dialog); } @@ -488,176 +467,165 @@ * action that has been performed. */ static void -docking_state_cb (GtkWidget *menuitem, gpointer data) + docking_state_cb (GtkWidget *menuitem, gpointer data) { - GtkWidget *module = GTK_WIDGET (data); - gint w,h; - gchar *icon; /* icon file name */ - gchar *title; /* window title */ + GtkWidget *module = GTK_WIDGET (data); + gint w,h; + gchar *icon; /* icon file name */ + gchar *title; /* window title */ - switch (GTK_SAT_MODULE (module)->state) { + switch (GTK_SAT_MODULE (module)->state) { - case GTK_SAT_MOD_STATE_DOCKED: + case GTK_SAT_MOD_STATE_DOCKED: /* get stored size; use size from main window if size not explicitly stoed */ if (g_key_file_has_key (GTK_SAT_MODULE (module)->cfgdata, - MOD_CFG_GLOBAL_SECTION, - MOD_CFG_WIN_WIDTH, - NULL)) { + MOD_CFG_GLOBAL_SECTION, + MOD_CFG_WIN_WIDTH, + NULL)) { w = g_key_file_get_integer (GTK_SAT_MODULE (module)->cfgdata, - MOD_CFG_GLOBAL_SECTION, - MOD_CFG_WIN_WIDTH, - NULL); + MOD_CFG_GLOBAL_SECTION, + MOD_CFG_WIN_WIDTH, + NULL); } else { w = module->allocation.width; } if (g_key_file_has_key (GTK_SAT_MODULE (module)->cfgdata, - MOD_CFG_GLOBAL_SECTION, - MOD_CFG_WIN_HEIGHT, - NULL)) { + MOD_CFG_GLOBAL_SECTION, + MOD_CFG_WIN_HEIGHT, + NULL)) { h = g_key_file_get_integer (GTK_SAT_MODULE (module)->cfgdata, - MOD_CFG_GLOBAL_SECTION, - MOD_CFG_WIN_HEIGHT, - NULL); + MOD_CFG_GLOBAL_SECTION, + MOD_CFG_WIN_HEIGHT, + NULL); } else { h = module->allocation.height; } - /* increase reference count of module */ - g_object_ref (module); + /* increase reference count of module */ + g_object_ref (module); - /* we don't need the positions */ - GTK_SAT_MODULE (module)->vpanedpos = -1; - GTK_SAT_MODULE (module)->hpanedpos = -1; + /* we don't need the positions */ + //GTK_SAT_MODULE (module)->vpanedpos = -1; + //GTK_SAT_MODULE (module)->hpanedpos = -1; - /* undock from mod-mgr */ - mod_mgr_undock_module (module); + /* undock from mod-mgr */ + mod_mgr_undock_module (module); - /* create window */ - GTK_SAT_MODULE (module)->win = gtk_window_new (GTK_WINDOW_TOPLEVEL); - title = g_strconcat ("GPREDICT: ", - GTK_SAT_MODULE (module)->name, - " (", GTK_SAT_MODULE (module)->qth->name, ")", - NULL); - gtk_window_set_title (GTK_WINDOW (GTK_SAT_MODULE (module)->win), title); - g_free (title); - gtk_window_set_default_size (GTK_WINDOW (GTK_SAT_MODULE (module)->win), w, h); + /* create window */ + GTK_SAT_MODULE (module)->win = gtk_window_new (GTK_WINDOW_TOPLEVEL); + title = g_strconcat ("GPREDICT: ", + GTK_SAT_MODULE (module)->name, + " (", GTK_SAT_MODULE (module)->qth->name, ")", + NULL); + gtk_window_set_title (GTK_WINDOW (GTK_SAT_MODULE (module)->win), title); + g_free (title); + gtk_window_set_default_size (GTK_WINDOW (GTK_SAT_MODULE (module)->win), w, h); g_signal_connect (G_OBJECT (GTK_SAT_MODULE (module)->win), "configure_event", G_CALLBACK (module_window_config_cb), module); - /* window icon */ - icon = icon_file_name ("gpredict-icon.png"); - if (g_file_test (icon, G_FILE_TEST_EXISTS)) { - gtk_window_set_icon_from_file (GTK_WINDOW (GTK_SAT_MODULE (module)->win), icon, NULL); - } - g_free (icon); + /* window icon */ + icon = icon_file_name ("gpredict-icon.png"); + if (g_file_test (icon, G_FILE_TEST_EXISTS)) { + gtk_window_set_icon_from_file (GTK_WINDOW (GTK_SAT_MODULE (module)->win), icon, NULL); + } + g_free (icon); /* move window to stored position if requested by configuration */ if (sat_cfg_get_bool (SAT_CFG_BOOL_MOD_WIN_POS) && g_key_file_has_key (GTK_SAT_MODULE (module)->cfgdata, - MOD_CFG_GLOBAL_SECTION, - MOD_CFG_WIN_POS_X, - NULL) && + MOD_CFG_GLOBAL_SECTION, + MOD_CFG_WIN_POS_X, + NULL) && g_key_file_has_key (GTK_SAT_MODULE (module)->cfgdata, - MOD_CFG_GLOBAL_SECTION, - MOD_CFG_WIN_POS_Y, - NULL)) { - + MOD_CFG_GLOBAL_SECTION, + MOD_CFG_WIN_POS_Y, + NULL)) { + gtk_window_move (GTK_WINDOW (GTK_SAT_MODULE (module)->win), g_key_file_get_integer (GTK_SAT_MODULE (module)->cfgdata, - MOD_CFG_GLOBAL_SECTION, - MOD_CFG_WIN_POS_X, NULL), + MOD_CFG_GLOBAL_SECTION, + MOD_CFG_WIN_POS_X, NULL), g_key_file_get_integer (GTK_SAT_MODULE (module)->cfgdata, - MOD_CFG_GLOBAL_SECTION, - MOD_CFG_WIN_POS_Y, - NULL)); + MOD_CFG_GLOBAL_SECTION, + MOD_CFG_WIN_POS_Y, + NULL)); } - /* add module to window */ - gtk_container_add (GTK_CONTAINER (GTK_SAT_MODULE (module)->win), module); + /* add module to window */ + gtk_container_add (GTK_CONTAINER (GTK_SAT_MODULE (module)->win), module); - /* change internal state */ - GTK_SAT_MODULE (module)->state = GTK_SAT_MOD_STATE_WINDOW; + /* change internal state */ + GTK_SAT_MODULE (module)->state = GTK_SAT_MOD_STATE_WINDOW; /* store new state in configuration */ g_key_file_set_integer (GTK_SAT_MODULE (module)->cfgdata, - MOD_CFG_GLOBAL_SECTION, - MOD_CFG_STATE, - GTK_SAT_MOD_STATE_WINDOW); + MOD_CFG_GLOBAL_SECTION, + MOD_CFG_STATE, + GTK_SAT_MOD_STATE_WINDOW); - /* decrease reference count of module */ - g_object_unref (module); + /* decrease reference count of module */ + g_object_unref (module); - /* show window */ - gtk_widget_show_all (GTK_SAT_MODULE (module)->win); + /* show window */ + gtk_widget_show_all (GTK_SAT_MODULE (module)->win); - /* reparent time manager window if visible */ - if (GTK_SAT_MODULE (module)->tmgActive) { - gtk_window_set_transient_for (GTK_WINDOW (GTK_SAT_MODULE (module)->tmgWin), - GTK_WINDOW (GTK_SAT_MODULE (module)->win)); - } + /* reparent time manager window if visible */ + if (GTK_SAT_MODULE (module)->tmgActive) { + gtk_window_set_transient_for (GTK_WINDOW (GTK_SAT_MODULE (module)->tmgWin), + GTK_WINDOW (GTK_SAT_MODULE (module)->win)); + } - break; + break; case GTK_SAT_MOD_STATE_WINDOW: case GTK_SAT_MOD_STATE_FULLSCREEN: - /* increase referene count */ - g_object_ref (module); + /* increase referene count */ + g_object_ref (module); - /* store paned positions */ - if (GTK_SAT_MODULE (module)->layout == GTK_SAT_MOD_LAYOUT_2) { - GTK_SAT_MODULE (module)->vpanedpos = gtk_paned_get_position (GTK_PANED (GTK_SAT_MODULE (module)->vpaned)); - } - else if ((GTK_SAT_MODULE (module)->layout == GTK_SAT_MOD_LAYOUT_3) || - (GTK_SAT_MODULE (module)->layout == GTK_SAT_MOD_LAYOUT_4)) { + /* reparent time manager window if visible */ + if (GTK_SAT_MODULE (module)->tmgActive) { + gtk_window_set_transient_for (GTK_WINDOW (GTK_SAT_MODULE (module)->tmgWin), + GTK_WINDOW (app)); + } - GTK_SAT_MODULE (module)->vpanedpos = gtk_paned_get_position (GTK_PANED (GTK_SAT_MODULE (module)->vpaned)); - GTK_SAT_MODULE (module)->hpanedpos = gtk_paned_get_position (GTK_PANED (GTK_SAT_MODULE (module)->hpaned)); - } - - /* reparent time manager window if visible */ - if (GTK_SAT_MODULE (module)->tmgActive) { - gtk_window_set_transient_for (GTK_WINDOW (GTK_SAT_MODULE (module)->tmgWin), - GTK_WINDOW (app)); - } + /* remove module from window, destroy window */ + gtk_container_remove (GTK_CONTAINER (GTK_SAT_MODULE (module)->win), module); + gtk_widget_destroy (GTK_SAT_MODULE (module)->win); + GTK_SAT_MODULE (module)->win = NULL; - /* remove module from window, destroy window */ - gtk_container_remove (GTK_CONTAINER (GTK_SAT_MODULE (module)->win), module); - gtk_widget_destroy (GTK_SAT_MODULE (module)->win); - GTK_SAT_MODULE (module)->win = NULL; + /* dock into mod-mgr */ + mod_mgr_dock_module (module); - /* dock into mod-mgr */ - mod_mgr_dock_module (module); - - /* change internal state */ - GTK_SAT_MODULE (module)->state = GTK_SAT_MOD_STATE_DOCKED; + /* change internal state */ + GTK_SAT_MODULE (module)->state = GTK_SAT_MOD_STATE_DOCKED; /* store new state in configuration */ g_key_file_set_integer (GTK_SAT_MODULE (module)->cfgdata, - MOD_CFG_GLOBAL_SECTION, - MOD_CFG_STATE, - GTK_SAT_MOD_STATE_DOCKED); + MOD_CFG_GLOBAL_SECTION, + MOD_CFG_STATE, + GTK_SAT_MOD_STATE_DOCKED); - /* decrease reference count of module */ - g_object_unref (module); + /* decrease reference count of module */ + g_object_unref (module); - break; + break; default: - sat_log_log (SAT_LOG_LEVEL_BUG, - _("%s:%d: Unknown module state: %d"), - __FILE__, __LINE__, GTK_SAT_MODULE (module)->state); - break; + sat_log_log (SAT_LOG_LEVEL_BUG, + _("%s:%d: Unknown module state: %d"), + __FILE__, __LINE__, GTK_SAT_MODULE (module)->state); + break; - } + } } @@ -670,96 +638,75 @@ * and WINDOW state. */ static void -screen_state_cb (GtkWidget *menuitem, gpointer data) + screen_state_cb (GtkWidget *menuitem, gpointer data) { - GtkWidget *module = GTK_WIDGET (data); + GtkWidget *module = GTK_WIDGET (data); gint w,h; - gchar *icon; /* icon file name */ - gchar *title; /* window title */ + gchar *icon; /* icon file name */ + gchar *title; /* window title */ - switch (GTK_SAT_MODULE (module)->state) { + switch (GTK_SAT_MODULE (module)->state) { - case GTK_SAT_MOD_STATE_DOCKED: + case GTK_SAT_MOD_STATE_DOCKED: - /* increase reference count of module */ - g_object_ref (module); + /* increase reference count of module */ + g_object_ref (module); - /* we don't need the positions */ - GTK_SAT_MODULE (module)->vpanedpos = -1; - GTK_SAT_MODULE (module)->hpanedpos = -1; + /* undock from mod-mgr */ + mod_mgr_undock_module (module); - /* undock from mod-mgr */ - mod_mgr_undock_module (module); + /* create window */ + GTK_SAT_MODULE (module)->win = gtk_window_new (GTK_WINDOW_TOPLEVEL); + title = g_strconcat ("GPREDICT: ", + GTK_SAT_MODULE (module)->name, + " (", GTK_SAT_MODULE (module)->qth->name, ")", + NULL); + gtk_window_set_title (GTK_WINDOW (GTK_SAT_MODULE (module)->win), title); + g_free (title); - /* create window */ - GTK_SAT_MODULE (module)->win = gtk_window_new (GTK_WINDOW_TOPLEVEL); - title = g_strconcat ("GPREDICT: ", - GTK_SAT_MODULE (module)->name, - " (", GTK_SAT_MODULE (module)->qth->name, ")", - NULL); - gtk_window_set_title (GTK_WINDOW (GTK_SAT_MODULE (module)->win), title); - g_free (title); + /* window icon */ + icon = icon_file_name ("gpredict-icon.png"); + if (g_file_test (icon, G_FILE_TEST_EXISTS)) { + gtk_window_set_icon_from_file (GTK_WINDOW (GTK_SAT_MODULE (module)->win), icon, NULL); + } + g_free (icon); - /* window icon */ - icon = icon_file_name ("gpredict-icon.png"); - if (g_file_test (icon, G_FILE_TEST_EXISTS)) { - gtk_window_set_icon_from_file (GTK_WINDOW (GTK_SAT_MODULE (module)->win), icon, NULL); - } - g_free (icon); + /* add module to window */ + gtk_container_add (GTK_CONTAINER (GTK_SAT_MODULE (module)->win), module); - /* add module to window */ - gtk_container_add (GTK_CONTAINER (GTK_SAT_MODULE (module)->win), module); + /* change internal state */ + GTK_SAT_MODULE (module)->state = GTK_SAT_MOD_STATE_FULLSCREEN; - /* change internal state */ - GTK_SAT_MODULE (module)->state = GTK_SAT_MOD_STATE_FULLSCREEN; + /* decrease reference count of module */ + g_object_unref (module); - /* decrease reference count of module */ - g_object_unref (module); + gtk_window_fullscreen (GTK_WINDOW (GTK_SAT_MODULE (module)->win)); - gtk_window_fullscreen (GTK_WINDOW (GTK_SAT_MODULE (module)->win)); - - /* show window */ - gtk_widget_show_all (GTK_SAT_MODULE (module)->win); + /* show window */ + gtk_widget_show_all (GTK_SAT_MODULE (module)->win); - /* reparent time manager window if visible */ - if (GTK_SAT_MODULE (module)->tmgActive) { - gtk_window_set_transient_for (GTK_WINDOW (GTK_SAT_MODULE (module)->tmgWin), - GTK_WINDOW (GTK_SAT_MODULE (module)->win)); - } + /* reparent time manager window if visible */ + if (GTK_SAT_MODULE (module)->tmgActive) { + gtk_window_set_transient_for (GTK_WINDOW (GTK_SAT_MODULE (module)->tmgWin), + GTK_WINDOW (GTK_SAT_MODULE (module)->win)); + } - break; + break; case GTK_SAT_MOD_STATE_WINDOW: + /* change internal state */ + GTK_SAT_MODULE (module)->state = GTK_SAT_MOD_STATE_FULLSCREEN; + gtk_window_fullscreen (GTK_WINDOW (GTK_SAT_MODULE (module)->win)); + gtk_window_set_default_size (GTK_WINDOW (GTK_SAT_MODULE (module)->win), 800, 600); - /* we don't need the positions */ - GTK_SAT_MODULE (module)->vpanedpos = -1; - GTK_SAT_MODULE (module)->hpanedpos = -1; + break; - /* change internal state */ - GTK_SAT_MODULE (module)->state = GTK_SAT_MOD_STATE_FULLSCREEN; - gtk_window_fullscreen (GTK_WINDOW (GTK_SAT_MODULE (module)->win)); - gtk_window_set_default_size (GTK_WINDOW (GTK_SAT_MODULE (module)->win), 800, 600); - break; - - case GTK_SAT_MOD_STATE_FULLSCREEN: - - /* store paned positions */ - if (GTK_SAT_MODULE (module)->layout == GTK_SAT_MOD_LAYOUT_2) { - GTK_SAT_MODULE (module)->vpanedpos = gtk_paned_get_position (GTK_PANED (GTK_SAT_MODULE (module)->vpaned)); - } - else if ((GTK_SAT_MODULE (module)->layout == GTK_SAT_MOD_LAYOUT_3) || - (GTK_SAT_MODULE (module)->layout == GTK_SAT_MOD_LAYOUT_4)) { - - GTK_SAT_MODULE (module)->vpanedpos = gtk_paned_get_position (GTK_PANED (GTK_SAT_MODULE (module)->vpaned)); - GTK_SAT_MODULE (module)->hpanedpos = gtk_paned_get_position (GTK_PANED (GTK_SAT_MODULE (module)->hpaned)); - } - - /* change internal state */ - GTK_SAT_MODULE (module)->state = GTK_SAT_MOD_STATE_WINDOW; + /* change internal state */ + GTK_SAT_MODULE (module)->state = GTK_SAT_MOD_STATE_WINDOW; gtk_window_unfullscreen (GTK_WINDOW (GTK_SAT_MODULE (module)->win)); /* get stored size; use some standard size if not explicitly specified */ @@ -781,26 +728,26 @@ if (sat_cfg_get_bool (SAT_CFG_BOOL_MOD_WIN_POS) && g_key_file_has_key (GTK_SAT_MODULE (module)->cfgdata, MOD_CFG_GLOBAL_SECTION, MOD_CFG_WIN_POS_X, NULL) && g_key_file_has_key (GTK_SAT_MODULE (module)->cfgdata, MOD_CFG_GLOBAL_SECTION, MOD_CFG_WIN_POS_Y, NULL)) { - + gtk_window_move (GTK_WINDOW (GTK_SAT_MODULE (module)->win), g_key_file_get_integer (GTK_SAT_MODULE (module)->cfgdata, MOD_CFG_GLOBAL_SECTION, MOD_CFG_WIN_POS_X, NULL), - g_key_file_get_integer (GTK_SAT_MODULE (module)->cfgdata, MOD_CFG_GLOBAL_SECTION, MOD_CFG_WIN_POS_Y, NULL)); + g_key_file_get_integer (GTK_SAT_MODULE (module)->cfgdata, MOD_CFG_GLOBAL_SECTION, MOD_CFG_WIN_POS_Y, NULL)); - } + } /* store new state in configuration */ g_key_file_set_integer (GTK_SAT_MODULE (module)->cfgdata, MOD_CFG_GLOBAL_SECTION, MOD_CFG_STATE, GTK_SAT_MOD_STATE_WINDOW); - break; + break; default: - sat_log_log (SAT_LOG_LEVEL_BUG, - _("%s:%d: Unknown module state: %d"), - __FILE__, __LINE__, GTK_SAT_MODULE (module)->state); - break; + sat_log_log (SAT_LOG_LEVEL_BUG, + _("%s:%d: Unknown module state: %d"), + __FILE__, __LINE__, GTK_SAT_MODULE (module)->state); + break; - } + } } @@ -812,30 +759,30 @@ * tracked in the current module. */ static void -sky_at_glance_cb (GtkWidget *menuitem, gpointer data) + sky_at_glance_cb (GtkWidget *menuitem, gpointer data) { - GtkSatModule *module = GTK_SAT_MODULE (data); - GtkWidget *skg; - GtkWidget *window; - gchar *buff; + GtkSatModule *module = GTK_SAT_MODULE (data); + GtkWidget *skg; + GtkWidget *window; + gchar *buff; - /* create window */ - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - buff = g_strdup_printf (_("The sky at a glance (%s)"), module->name); - gtk_window_set_title (GTK_WINDOW (window), buff); - g_free (buff); - g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (window_delete), NULL); + /* create window */ + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + buff = g_strdup_printf (_("The sky at a glance (%s)"), module->name); + gtk_window_set_title (GTK_WINDOW (window), buff); + g_free (buff); + g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (window_delete), NULL); - /* window icon */ - buff = icon_file_name ("gpredict-planner.png"); - gtk_window_set_icon_from_file (GTK_WINDOW (window), buff, NULL); - g_free (buff); + /* window icon */ + buff = icon_file_name ("gpredict-planner.png"); + gtk_window_set_icon_from_file (GTK_WINDOW (window), buff, NULL); + g_free (buff); - /* if module is busy wait until done then go on */ - g_mutex_lock(module->busy); + /* if module is busy wait until done then go on */ + g_mutex_lock(module->busy); - /* create sky at a glance widget */ + /* create sky at a glance widget */ if (sat_cfg_get_bool (SAT_CFG_BOOL_PRED_USE_REAL_T0)) { skg = gtk_sky_glance_new (module->satellites, module->qth, 0.0); @@ -844,22 +791,22 @@ skg = gtk_sky_glance_new (module->satellites, module->qth, module->tmgCdnum); } - g_mutex_unlock(module->busy); + g_mutex_unlock(module->busy); - gtk_container_set_border_width (GTK_CONTAINER (window), 10); - gtk_container_add (GTK_CONTAINER (window), skg); + gtk_container_set_border_width (GTK_CONTAINER (window), 10); + gtk_container_add (GTK_CONTAINER (window), skg); - gtk_widget_show_all (window); + gtk_widget_show_all (window); } /** \brief Open time manager. */ static void -tmgr_cb (GtkWidget *menuitem, gpointer data) + tmgr_cb (GtkWidget *menuitem, gpointer data) { - GtkSatModule *module = GTK_SAT_MODULE (data); + GtkSatModule *module = GTK_SAT_MODULE (data); - tmg_create (module); + tmg_create (module); } /** \brief Open Radio control window. @@ -867,7 +814,7 @@ * \param data Pointer the GtkSatModule. */ static void -rigctrl_cb (GtkWidget *menuitem, gpointer data) + rigctrl_cb (GtkWidget *menuitem, gpointer data) { GtkSatModule *module = GTK_SAT_MODULE (data); gchar *buff; @@ -888,7 +835,7 @@ GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("You have no radio configuration!\n"\ "Please configure a radio first.") - ); + ); g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); gtk_window_set_title (GTK_WINDOW (dialog), _("ERROR")); @@ -926,7 +873,7 @@ * This function is called automatically when the window is destroyed. */ static void -destroy_rigctrl (GtkWidget *window, gpointer data) + destroy_rigctrl (GtkWidget *window, gpointer data) { GtkSatModule *module = GTK_SAT_MODULE (data); @@ -940,7 +887,7 @@ * \param data Pointer the GtkSatModule. */ static void -rotctrl_cb (GtkWidget *menuitem, gpointer data) + rotctrl_cb (GtkWidget *menuitem, gpointer data) { GtkSatModule *module = GTK_SAT_MODULE (data); gchar *buff; @@ -961,7 +908,7 @@ GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("You have no rotator configuration!\n"\ "Please configure an antenna rotator first.") - ); + ); g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); gtk_window_set_title (GTK_WINDOW (dialog), _("ERROR")); @@ -998,7 +945,7 @@ * This function is called automatically when the window is destroyed. */ static void -destroy_rotctrl (GtkWidget *window, gpointer data) + destroy_rotctrl (GtkWidget *window, gpointer data) { GtkSatModule *module = GTK_SAT_MODULE (data); @@ -1008,9 +955,9 @@ /* ensure that deleted top-level windows are destroyed */ static gint -window_delete (GtkWidget *widget, - GdkEvent *event, - gpointer data) + window_delete (GtkWidget *widget, + GdkEvent *event, + gpointer data) { return FALSE; } @@ -1024,9 +971,9 @@ * for gtk_sat_module_close_cb, which will close the current module. */ static void -close_cb (GtkWidget *menuitem, gpointer data) + close_cb (GtkWidget *menuitem, gpointer data) { - gtk_sat_module_close_cb (menuitem, data); + gtk_sat_module_close_cb (menuitem, data); } /** \brief Close and permanently delete module. @@ -1037,53 +984,53 @@ * whereafter the module file will be deleted from the disk. */ static void -delete_cb (GtkWidget *menuitem, gpointer data) + delete_cb (GtkWidget *menuitem, gpointer data) { - gchar *file; - GtkWidget *dialog; - gchar *moddir; + gchar *file; + GtkWidget *dialog; + gchar *moddir; - moddir = get_modules_dir (); - file = g_strconcat (moddir, G_DIR_SEPARATOR_S, - GTK_SAT_MODULE (data)->name, ".mod", NULL); - g_free (moddir); + moddir = get_modules_dir (); + file = g_strconcat (moddir, G_DIR_SEPARATOR_S, + GTK_SAT_MODULE (data)->name, ".mod", NULL); + g_free (moddir); - gtk_sat_module_close_cb (menuitem, data); + gtk_sat_module_close_cb (menuitem, data); - /* ask user to confirm removal */ - dialog = gtk_message_dialog_new_with_markup - (NULL, //GTK_WINDOW (parent), - GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - _("This operation will permanently delete\n<b>%s</b>\n"\ - "from the disk.\nDo you you want to proceed?"), - file); + /* ask user to confirm removal */ + dialog = gtk_message_dialog_new_with_markup + (NULL, //GTK_WINDOW (parent), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + _("This operation will permanently delete\n<b>%s</b>\n"\ + "from the disk.\nDo you you want to proceed?"), + file); - switch (gtk_dialog_run (GTK_DIALOG (dialog))) { + switch (gtk_dialog_run (GTK_DIALOG (dialog))) { - case GTK_RESPONSE_YES: + case GTK_RESPONSE_YES: - if (g_remove (file)) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to delete %s."), - __FILE__, __LINE__, file); - } - else { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: %s deleted permanently."), - __FILE__, __LINE__, file); - } - break; + if (g_remove (file)) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s:%d: Failed to delete %s."), + __FILE__, __LINE__, file); + } + else { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s:%d: %s deleted permanently."), + __FILE__, __LINE__, file); + } + break; default: - break; - } + break; + } - gtk_widget_destroy (dialog); + gtk_widget_destroy (dialog); - g_free (file); + g_free (file); } @@ -1094,55 +1041,55 @@ * of the name is greater than zero, if yes enable the OK button of the dialog. */ static void -name_changed (GtkWidget *widget, gpointer data) + name_changed (GtkWidget *widget, gpointer data) { - const gchar *text; - gchar *entry, *end, *j; - gint len, pos; - GtkWidget *dialog = GTK_WIDGET (data); + const gchar *text; + gchar *entry, *end, *j; + gint len, pos; + GtkWidget *dialog = GTK_WIDGET (data); - /* step 1: ensure that only valid characters are entered + /* step 1: ensure that only valid characters are entered (stolen from xlog, tnx pg4i) */ - entry = gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1); - if ((len = g_utf8_strlen (entry, -1)) > 0) - { - end = entry + g_utf8_strlen (entry, -1); - for (j = entry; j < end; ++j) - { - switch (*j) - { - case '0' ... '9': - case 'a' ... 'z': - case 'A' ... 'Z': - case '-': - case '_': - break; - default: - gdk_beep (); - pos = gtk_editable_get_position (GTK_EDITABLE (widget)); - gtk_editable_delete_text (GTK_EDITABLE (widget), - pos, pos+1); - break; - } - } - } + entry = gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1); + if ((len = g_utf8_strlen (entry, -1)) > 0) + { + end = entry + g_utf8_strlen (entry, -1); + for (j = entry; j < end; ++j) + { + switch (*j) + { + case '0' ... '9': + case 'a' ... 'z': + case 'A' ... 'Z': + case '-': + case '_': + break; + default: + gdk_beep (); + pos = gtk_editable_get_position (GTK_EDITABLE (widget)); + gtk_editable_delete_text (GTK_EDITABLE (widget), + pos, pos+1); + break; + } + } + } - /* step 2: if name seems all right, enable OK button */ - text = gtk_entry_get_text (GTK_ENTRY (widget)); + /* step 2: if name seems all right, enable OK button */ + text = gtk_entry_get_text (GTK_ENTRY (widget)); - if (g_utf8_strlen (text, -1) > 0) { - gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), - GTK_RESPONSE_OK, - TRUE); - } - else { - gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), - GTK_RESPONSE_OK, - FALSE); - } + if (g_utf8_strlen (text, -1) > 0) { + gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), + GTK_RESPONSE_OK, + TRUE); + } + else { + gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), + GTK_RESPONSE_OK, + FALSE); + } } @@ -1165,7 +1112,7 @@ * */ gboolean -module_window_config_cb (GtkWidget *widget, GdkEventConfigure *event, gpointer data) + module_window_config_cb (GtkWidget *widget, GdkEventConfigure *event, gpointer data) { gint x, y; GtkSatModule *module = GTK_SAT_MODULE (data); @@ -1176,7 +1123,7 @@ gtk_window_get_position (GTK_WINDOW (widget), &x, &y); else return FALSE; /* carry on normally */ - + #ifdef G_OS_WIN32 /* Workaround for GTK+ bug # 169811 - "configure_event" is fired when the window is being maximized */ Modified: trunk/src/gtk-sat-module.c =================================================================== --- trunk/src/gtk-sat-module.c 2009-11-19 08:33:05 UTC (rev 520) +++ trunk/src/gtk-sat-module.c 2009-11-19 15:03:02 UTC (rev 521) @@ -79,8 +79,6 @@ const gchar *cfgfile); static void gtk_sat_module_load_sats (GtkSatModule *module); -/* static gboolean gtk_sat_module_sats_are_equal (gconstpointer a, */ -/* gconstpointer b); */ static gboolean gtk_sat_module_timeout_cb (gpointer module); static void gtk_sat_module_update_sat (gpointer key, gpointer val, @@ -91,10 +89,9 @@ static void update_header (GtkSatModule *module); static void update_child (GtkWidget *child, gdouble tstamp); static void create_module_layout (GtkSatModule *module); - +static void get_grid_size (GtkSatModule *module, guint *rows, guint *cols); static GtkWidget *create_view (GtkSatModule *module, guint num); -static void fix_child_allocations (GtkWidget *widget, gpointer data); static void reload_sats_in_child (GtkWidget *widget, GtkSatModule *module); @@ -178,14 +175,8 @@ module->grid = NULL; module->views = NULL; - module->layout = GTK_SAT_MOD_LAYOUT_1; - module->view_1 = GTK_SAT_MOD_VIEW_MAP; - module->view_2 = GTK_SAT_MOD_VIEW_POLAR; - module->view_3 = GTK_SAT_MOD_VIEW_SINGLE; + module->nviews = 0; - module->vpanedpos = -1; - module->hpanedpos = -1; - module->timerid = 0; module->throttle = 1; @@ -271,8 +262,8 @@ /* create module widget */ widget = g_object_new (GTK_TYPE_SAT_MODULE, NULL); - g_signal_connect (widget, "realize", - G_CALLBACK (fix_child_allocations), NULL); +// g_signal_connect (widget, "realize", +// G_CALLBACK (fix_child_allocations), NULL); /* load configuration; note that this will also set the module name */ gtk_sat_module_read_cfg_data (GTK_SAT_MODULE (widget), cfgfile); @@ -365,121 +356,58 @@ /** \brief Create module layout and add views. * - * It is assumed that module->layout and module->view_x have - * sensible values. + * It is assumed that module->grid and module->nviews have + * coherent values. */ static void create_module_layout (GtkSatModule *module) { + GtkWidget *table; + GtkWidget *view; + guint rows,cols; + guint i; - switch (module->layout) { - - /* one child, no setup needed here */ - case GTK_SAT_MOD_LAYOUT_1: - module->child_1 = create_view (module, 1); - module->child_2 = NULL; - module->child_3 = NULL; - gtk_container_add (GTK_CONTAINER (module), module->child_1); - break; - /* two children, we need a vpaned - child_1 on top */ - case GTK_SAT_MOD_LAYOUT_2: - module->vpaned = gtk_vpaned_new (); - gtk_container_add (GTK_CONTAINER (module), module->vpaned); + /* calculate the number of rows and columns necessary */ + get_grid_size (module, &rows, &cols); + sat_log_log (SAT_LOG_LEVEL_DEBUG, + _("%s: Layout has %d columns and %d rows."), + __FUNCTION__, cols, rows); - module->child_1 = create_view (module, 1); - module->child_2 = create_view (module, 2); - module->child_3 = NULL; + table = gtk_table_new (rows, cols, TRUE); - gtk_paned_pack1 (GTK_PANED (module->vpaned), - module->child_1, TRUE, TRUE); - gtk_paned_pack2 (GTK_PANED (module->vpaned), - module->child_2, TRUE, TRUE); + for (i = 0; i < module->nviews; i++) { + /* create the view */ + ... [truncated message content] |