]> sigrok.org Git - sigrok-gtk.git/commitdiff
gtk: Select timeunit based on device's hw cap.
authorHåvard Espeland <redacted>
Tue, 24 Apr 2012 20:30:43 +0000 (22:30 +0200)
committerHåvard Espeland <redacted>
Tue, 24 Apr 2012 20:30:43 +0000 (22:30 +0200)
devselect.c
toolbar.c

index 450a172a51b937f7a9ed097ab14927d92cfd7fc7..3b842eaf76642277767a634b11d5add4529e0d44 100644 (file)
@@ -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)
index f4f8a5def4b8b906855f30ce0d240588fe341771..2776ef3939dff8f7712c5919c89ffd9e8587c001 100644 (file)
--- 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);
 }