From: HÃ¥vard Espeland Date: Tue, 24 Apr 2012 20:30:43 +0000 (+0200) Subject: gtk: Select timeunit based on device's hw cap. X-Git-Url: http://sigrok.org/gitweb/?a=commitdiff_plain;h=3cc6b11be1a498237ec51c2a0cffadd9202e626c;p=sigrok-gtk.git gtk: Select timeunit based on device's hw cap. --- diff --git a/devselect.c b/devselect.c index 450a172..3b842ea 100644 --- a/devselect.c +++ b/devselect.c @@ -24,6 +24,7 @@ static void dev_selected(GtkComboBox *devbox, GObject *parent) { GtkTreeModel *devlist = gtk_combo_box_get_model(devbox); + GtkComboBox *timeunit = g_object_get_data(parent, "timeunit"); GtkTreeIter iter; const gchar *name; GtkCheckMenuItem *menuitem; @@ -45,6 +46,12 @@ static void dev_selected(GtkComboBox *devbox, GObject *parent) dev = NULL; } g_object_set_data(parent, "dev", dev); + + /* Update timeunit depending on device capabilities. */ + if (sr_driver_hwcap_exists(dev->driver, SR_HWCAP_LIMIT_SAMPLES)) + gtk_combo_box_set_active(timeunit, 0); + else + gtk_combo_box_set_active(timeunit, 1); } static void dev_menuitem_toggled(GtkMenuItem *item, GtkComboBox *combo) diff --git a/toolbar.c b/toolbar.c index f4f8a5d..2776ef3 100644 --- a/toolbar.c +++ b/toolbar.c @@ -578,17 +578,8 @@ GtkWidget *toolbar_init(GtkWindow *parent) toolbar = GTK_TOOLBAR(gtk_ui_manager_get_widget(ui, "/toolbar")); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(toolbar), FALSE, TRUE, 0); - /* Device selection GtkComboBox */ - GtkToolItem *toolitem = gtk_tool_item_new(); - GtkWidget *align = gtk_alignment_new(0.5, 0.5, 2, 0); - GtkWidget *dev = dev_select_combo_box_new(parent); - - gtk_container_add(GTK_CONTAINER(align), dev); - gtk_container_add(GTK_CONTAINER(toolitem), align); - gtk_toolbar_insert(toolbar, toolitem, 0); - /* Time/Samples entry */ - toolitem = gtk_tool_item_new(); + GtkToolItem *toolitem = gtk_tool_item_new(); GtkWidget *timesamples = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(timesamples), "100"); gtk_entry_set_alignment(GTK_ENTRY(timesamples), 1.0); @@ -598,7 +589,7 @@ GtkWidget *toolbar_init(GtkWindow *parent) /* Time unit combo box */ toolitem = gtk_tool_item_new(); - align = gtk_alignment_new(0.5, 0.5, 2, 0); + GtkWidget *align = gtk_alignment_new(0.5, 0.5, 2, 0); GtkWidget *timeunit = gtk_combo_box_new_text(); gtk_combo_box_append_text(GTK_COMBO_BOX(timeunit), "samples"); gtk_combo_box_append_text(GTK_COMBO_BOX(timeunit), "ms"); @@ -611,6 +602,16 @@ GtkWidget *toolbar_init(GtkWindow *parent) g_object_set_data(G_OBJECT(parent), "timesamples", timesamples); g_object_set_data(G_OBJECT(parent), "timeunit", timeunit); + /* Device selection GtkComboBox */ + toolitem = gtk_tool_item_new(); + align = gtk_alignment_new(0.5, 0.5, 2, 0); + GtkWidget *dev = dev_select_combo_box_new(parent); + + gtk_container_add(GTK_CONTAINER(align), dev); + gtk_container_add(GTK_CONTAINER(toolitem), align); + gtk_toolbar_insert(toolbar, toolitem, 0); + + return GTK_WIDGET(vbox); }