git-svn-id: https://gpredict.svn.sourceforge.net/svnroot/gpredict/trunk@428 ab6734ba-2843-0410-b83b-99c217ef6c0f
This commit is contained in:
csete 2009-09-23 22:29:23 +00:00
parent c0ddbead71
commit 8fcb6d03d5
3 changed files with 50 additions and 12 deletions

View file

@ -28,7 +28,6 @@
/** \brief Satellite selector.
*
* FIXME: add search/lookup function
* FIXME: epoch not implemented
*/
#include <gtk/gtk.h>
#include <glib/gi18n.h>
@ -181,6 +180,7 @@ GtkWidget *gtk_sat_selector_new (guint flags)
GtkTreeModel *model;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
GtkWidget *table;
if (!flags)
@ -226,7 +226,7 @@ GtkWidget *gtk_sat_selector_new (guint flags)
/* create tree view columns */
/* label column */
renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes (_("Satellite"), renderer,
column = gtk_tree_view_column_new_with_attributes (_("Available Satellites"), renderer,
"text", GTK_SAT_SELECTOR_COL_NAME,
NULL);
gtk_tree_view_insert_column (GTK_TREE_VIEW (selector->tree), column, -1);
@ -267,9 +267,35 @@ GtkWidget *gtk_sat_selector_new (guint flags)
//gtk_container_add (GTK_CONTAINER (widget), GTK_SAT_TREE (widget)->swin);
gtk_box_pack_start (GTK_BOX (widget), GTK_SAT_SELECTOR (widget)->groups, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (widget), GTK_SAT_SELECTOR (widget)->swin, TRUE, TRUE, 0);
//gtk_box_pack_start (GTK_BOX (widget), GTK_SAT_SELECTOR (widget)->groups, FALSE, FALSE, 0);
//gtk_box_pack_start (GTK_BOX (widget), GTK_SAT_SELECTOR (widget)->swin, TRUE, TRUE, 0);
table = gtk_table_new (5, 2, FALSE);
/* Search */
gtk_table_attach (GTK_TABLE (table), gtk_label_new (_("Search:")), 0, 1, 0, 1,
GTK_SHRINK, GTK_SHRINK, 0, 0);
GTK_SAT_SELECTOR (widget)->search = gtk_entry_new ();
/* this enables automatic search */
gtk_tree_view_set_search_entry (GTK_TREE_VIEW (GTK_SAT_SELECTOR (widget)->tree),
GTK_ENTRY (GTK_SAT_SELECTOR (widget)->search));
gtk_table_attach (GTK_TABLE (table), GTK_SAT_SELECTOR (widget)->search, 1, 2, 0, 1,
GTK_FILL, GTK_FILL, 0, 0);
/* Group selector */
gtk_table_attach (GTK_TABLE (table), gtk_label_new (_("Group:")), 0, 1, 1, 2,
GTK_SHRINK, GTK_SHRINK, 0, 0);
gtk_table_attach (GTK_TABLE (table), GTK_SAT_SELECTOR (widget)->groups, 1, 2, 1, 2,
GTK_FILL, GTK_FILL, 0, 0);
/* satellite list */
gtk_table_attach (GTK_TABLE (table), GTK_SAT_SELECTOR (widget)->swin, 0, 2, 2, 5,
GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, 0, 0);
/* Add tabel to main container */
gtk_box_pack_start (GTK_BOX (widget), table, TRUE, TRUE, 0);
gtk_widget_show_all (widget);
@ -540,10 +566,20 @@ static void group_selected_cb (GtkComboBox *combobox, gpointer data)
sel = gtk_combo_box_get_active (combobox);
g_print ("%d\n", sel);
/*** FIXME ***/
model = GTK_TREE_MODEL (g_slist_nth_data (selector->models, sel));
gtk_tree_view_set_model (GTK_TREE_VIEW (selector->tree), model);
g_object_unref (model);
/* We changed the GtkTreeModel so we need to reset the sort column ID */
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model),
GTK_SAT_SELECTOR_COL_NAME,
GTK_SORT_ASCENDING);
}

View file

@ -87,6 +87,7 @@ struct _gtk_sat_selector
gulong handler_id; /*!< Toggle signale handler ID (FIXME): remove. */
GtkWidget *groups; /*!< Combo box for selecting satellite group. */
GtkWidget *search; /*!< Text entry for searching. */
GSList *models; /*!< List of models with index corresponding to groups. */
};

View file

@ -78,9 +78,10 @@ extern GtkWidget *app;
/* private widgets */
static GtkWidget *namew; /* GtkEntry widget for module name */
static GtkWidget *locw; /* GtkComboBox for location selection */
static GtkWidget *tree; /* GtkSatTree for selecting satellites */
static GtkWidget *namew; /* GtkEntry widget for module name */
static GtkWidget *locw; /* GtkComboBox for location selection */
static GtkWidget *tree; /* OBSOLETE GtkSatTree for selecting satellites */
static GtkWidget *satlist; /* list of selected satellites */
/* private functions prototype */
@ -127,9 +128,9 @@ gchar *mod_cfg_new ()
switch (response) {
/* user pressed OK */
case GTK_RESPONSE_OK:
case GTK_RESPONSE_OK:
/* check that user has selected at least one satellite */
/* FIXME check that user has selected at least one satellite */
sats = gtk_sat_tree_get_selected (GTK_SAT_TREE (tree), &num);
if (num > 0) {
@ -458,7 +459,7 @@ static GtkWidget *mod_cfg_editor_create (const gchar *modname, GKeyFile *cfgdata
GtkWidget *table;
GtkWidget *label;
GtkTooltips *tooltips;
gchar *icon; /* windo icon file name */
gchar *icon; /* window icon file name */
@ -561,7 +562,7 @@ static GtkWidget *mod_cfg_editor_create (const gchar *modname, GKeyFile *cfgdata
gtk_label_set_markup (GTK_LABEL (label), _("<b>Select Satellites:</b>"));
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), label, FALSE, FALSE, 5);
/* satellite selector */
/* OBSOLETE satellite selector */
tree = gtk_sat_tree_new (0);
if (!new) {
/* select satellites */
@ -600,7 +601,7 @@ static GtkWidget *mod_cfg_editor_create (const gchar *modname, GKeyFile *cfgdata
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), tree, TRUE, TRUE, 0);
/*** EXPERIMENTAL CODE ***/
/*** NEW CODE ***/
GtkWidget *selector = gtk_sat_selector_new (0);
g_signal_connect (selector, "sat-activated",
G_CALLBACK (sat_activated_cb), NULL);