[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] |