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; |
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 |
|
|
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; |
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 |