diff --git a/src/gtk-sat-selector.c b/src/gtk-sat-selector.c index d2ca936..6137b4b 100644 --- a/src/gtk-sat-selector.c +++ b/src/gtk-sat-selector.c @@ -28,7 +28,6 @@ /** \brief Satellite selector. * * FIXME: add search/lookup function - * FIXME: epoch not implemented */ #include #include @@ -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); + + } diff --git a/src/gtk-sat-selector.h b/src/gtk-sat-selector.h index db9573d..1477b6b 100644 --- a/src/gtk-sat-selector.h +++ b/src/gtk-sat-selector.h @@ -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. */ }; diff --git a/src/mod-cfg.c b/src/mod-cfg.c index cff65f8..313626a 100644 --- a/src/mod-cfg.c +++ b/src/mod-cfg.c @@ -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), _("Select Satellites:")); 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);