/[xlog]/xlog/src/callbacks_preferencesdialog.c
ViewVC logotype

Diff of /xlog/src/callbacks_preferencesdialog.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.38 by pa4tu, Mon Mar 21 19:51:06 2005 UTC revision 1.39 by pa4tu, Mon May 16 08:01:13 2005 UTC
# Line 33  Line 33 
33  #include "log.h"  #include "log.h"
34  #include "utils.h"  #include "utils.h"
35    
36    #if WANT_HAMLIB
37    #include "hamlib-utils.h"
38    #include "hamlib/rig.h"
39    #endif
40    
41  extern GtkWidget *mainwindow;  extern GtkWidget *mainwindow;
42  extern GtkWidget *keyerwindow;  extern GtkWidget *keyerwindow;
43  extern preferencestype preferences;  extern preferencestype preferences;
# Line 221  set_clock (gboolean on) Line 226  set_clock (gboolean on)
226    
227  #if WANT_HAMLIB  #if WANT_HAMLIB
228  /* check if hamlib has changed */  /* check if hamlib has changed */
229  gboolean hamlib_changed (gint hamlibwidgets, gchar *radio, gchar *device,  gboolean hamlib_changed (gint hamlibwidgets, gint rigid, gchar *device,
230          gint polltime, gchar *rigconf)          gint polltime, gchar *rigconf)
231  {  {
232    
# Line 229  gboolean hamlib_changed (gint hamlibwidg Line 234  gboolean hamlib_changed (gint hamlibwidg
234                  return TRUE;                  return TRUE;
235          else if (g_ascii_strcasecmp (preferences.rigconf, rigconf))          else if (g_ascii_strcasecmp (preferences.rigconf, rigconf))
236                  return TRUE;                  return TRUE;
237          else if (g_ascii_strcasecmp (preferences.radio, radio))          else if (preferences.rigid != rigid)
238                  return TRUE;                  return TRUE;
239          else if (g_ascii_strcasecmp (preferences.device, device))          else if (g_ascii_strcasecmp (preferences.device, device))
240                  return TRUE;                  return TRUE;
# Line 359  on_hamlibcheckbutton_toggled (GtkToggleB Line 364  on_hamlibcheckbutton_toggled (GtkToggleB
364          }          }
365  }  }
366    
367    #if WANT_HAMLIB
368    void
369    on_radiobutton_clicked (GtkButton * button, gpointer user_data)
370    {
371            GtkWidget *rigdialog, *riglistdialogvbox, *riglisttreeview,
372                    *rigscrolledwindow, *radioentry;
373            gint i, response, numrigs, rigid;
374            gchar *temp;
375            GtkTreeStore *rigstore;
376            GtkTreeModel *model;
377            GtkTreeIter rigiter, selected;
378            GtkTreeViewColumn *column;
379            GtkCellRenderer *renderer;
380            GtkTreeSelection *sel;
381            GList *riglist;
382            struct rig_caps *rcaps = NULL;
383    
384            rigdialog = gtk_dialog_new_with_buttons (_("xlog - select a radio"),
385                    GTK_WINDOW(mainwindow), GTK_DIALOG_DESTROY_WITH_PARENT,
386                    GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
387                    GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
388            gtk_widget_set_size_request (rigdialog, 400, 300);
389            riglistdialogvbox = gtk_vbox_new (FALSE, 0);
390            gtk_container_add
391                    (GTK_CONTAINER (GTK_DIALOG(rigdialog)->vbox), riglistdialogvbox);
392            rigscrolledwindow = gtk_scrolled_window_new (NULL, NULL);
393            gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW
394                    (rigscrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
395        gtk_box_pack_start (GTK_BOX (riglistdialogvbox),
396                    rigscrolledwindow, TRUE, TRUE, 0);
397            gtk_box_reorder_child (GTK_BOX (riglistdialogvbox), rigscrolledwindow, 0);
398            rigstore = gtk_tree_store_new (3, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING);
399            riglisttreeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (rigstore));
400            renderer = gtk_cell_renderer_text_new ();
401            column = gtk_tree_view_column_new_with_attributes
402                    (_("Rigid"), renderer, "text", 0, NULL);
403            gtk_tree_view_append_column (GTK_TREE_VIEW (riglisttreeview), column);
404            renderer = gtk_cell_renderer_text_new ();
405            column = gtk_tree_view_column_new_with_attributes
406                    (_("Model"), renderer, "text", 1, NULL);
407            gtk_tree_view_append_column (GTK_TREE_VIEW (riglisttreeview), column);
408            renderer = gtk_cell_renderer_text_new ();
409            column = gtk_tree_view_column_new_with_attributes
410                    (_("Manufacturer"), renderer, "text", 2, NULL);
411            gtk_tree_view_append_column (GTK_TREE_VIEW (riglisttreeview), column);
412    
413            gtk_tree_sortable_set_sort_column_id
414                    (GTK_TREE_SORTABLE (rigstore), 1, GTK_SORT_ASCENDING);
415            g_object_unref (G_OBJECT (rigstore));
416            gtk_container_add (GTK_CONTAINER (rigscrolledwindow), riglisttreeview);
417    
418            riglist = rig_get_list ();
419            numrigs = g_list_length (riglist);
420            for (i = 0; i < numrigs; i++)
421            {
422                    rcaps = (struct rig_caps *) g_list_nth_data (riglist, i);
423                    gtk_tree_store_append (rigstore, &rigiter, NULL);
424                    gtk_tree_store_set (rigstore, &rigiter,
425                            0, rcaps->rig_model, 1, rcaps->model_name,  2, rcaps->mfg_name, -1);
426            }
427            gtk_widget_show_all (rigdialog);
428    
429            response = gtk_dialog_run (GTK_DIALOG(rigdialog));
430            if (response == GTK_RESPONSE_OK)
431            {
432                    sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (riglisttreeview));
433                    radioentry = lookup_widget (preferencesdialog, "radioentry");
434                    if (gtk_tree_selection_get_selected (sel, &model, &selected))
435                    {
436                            gtk_tree_model_get (model, &selected, 0, &rigid, -1);
437                            temp = g_strdup_printf ("%d", rigid);
438                            gtk_entry_set_text (GTK_ENTRY(radioentry), temp);
439                            g_free (temp);
440                    }
441                    else
442                            gtk_entry_set_text (GTK_ENTRY(radioentry), "1");
443            }
444            g_list_free (riglist);
445            gtk_widget_destroy (rigdialog);
446    }
447    #endif

Legend:
Removed from v.1.38  
changed lines
  Added in v.1.39

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26