widget-factory: Add a combo box separator example
This shows that combo box separators are currently broken in Adwaita.
This commit is contained in:
@ -308,27 +308,37 @@ on_page_combo_changed (GtkComboBox *combo,
|
|||||||
{
|
{
|
||||||
GtkWidget *from;
|
GtkWidget *from;
|
||||||
GtkWidget *to;
|
GtkWidget *to;
|
||||||
|
GtkWidget *print;
|
||||||
|
|
||||||
from = GTK_WIDGET (g_object_get_data (G_OBJECT (combo), "range_from_spin"));
|
from = GTK_WIDGET (g_object_get_data (G_OBJECT (combo), "range_from_spin"));
|
||||||
to = GTK_WIDGET (g_object_get_data (G_OBJECT (combo), "range_to_spin"));
|
to = GTK_WIDGET (g_object_get_data (G_OBJECT (combo), "range_to_spin"));
|
||||||
|
print = GTK_WIDGET (g_object_get_data (G_OBJECT (combo), "print_button"));
|
||||||
|
|
||||||
switch (gtk_combo_box_get_active (combo))
|
switch (gtk_combo_box_get_active (combo))
|
||||||
{
|
{
|
||||||
case 0: /* Range */
|
case 0: /* Range */
|
||||||
gtk_widget_set_sensitive (from, TRUE);
|
gtk_widget_set_sensitive (from, TRUE);
|
||||||
gtk_widget_set_sensitive (to, TRUE);
|
gtk_widget_set_sensitive (to, TRUE);
|
||||||
|
gtk_widget_set_sensitive (print, TRUE);
|
||||||
break;
|
break;
|
||||||
case 1: /* All */
|
case 1: /* All */
|
||||||
gtk_widget_set_sensitive (from, FALSE);
|
gtk_widget_set_sensitive (from, FALSE);
|
||||||
gtk_widget_set_sensitive (to, FALSE);
|
gtk_widget_set_sensitive (to, FALSE);
|
||||||
gtk_spin_button_set_value (GTK_SPIN_BUTTON (from), 1);
|
gtk_spin_button_set_value (GTK_SPIN_BUTTON (from), 1);
|
||||||
gtk_spin_button_set_value (GTK_SPIN_BUTTON (to), 99);
|
gtk_spin_button_set_value (GTK_SPIN_BUTTON (to), 99);
|
||||||
|
gtk_widget_set_sensitive (print, TRUE);
|
||||||
break;
|
break;
|
||||||
case 2: /* Current */
|
case 2: /* Current */
|
||||||
gtk_widget_set_sensitive (from, FALSE);
|
gtk_widget_set_sensitive (from, FALSE);
|
||||||
gtk_widget_set_sensitive (to, FALSE);
|
gtk_widget_set_sensitive (to, FALSE);
|
||||||
gtk_spin_button_set_value (GTK_SPIN_BUTTON (from), 7);
|
gtk_spin_button_set_value (GTK_SPIN_BUTTON (from), 7);
|
||||||
gtk_spin_button_set_value (GTK_SPIN_BUTTON (to), 7);
|
gtk_spin_button_set_value (GTK_SPIN_BUTTON (to), 7);
|
||||||
|
gtk_widget_set_sensitive (print, TRUE);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
gtk_widget_set_sensitive (from, FALSE);
|
||||||
|
gtk_widget_set_sensitive (to, FALSE);
|
||||||
|
gtk_widget_set_sensitive (print, FALSE);
|
||||||
break;
|
break;
|
||||||
default:;
|
default:;
|
||||||
}
|
}
|
||||||
@ -1099,6 +1109,21 @@ osd_frame_button_press (GtkWidget *frame, GdkEventButton *event, gpointer data)
|
|||||||
return GDK_EVENT_STOP;
|
return GDK_EVENT_STOP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
page_combo_separator_func (GtkTreeModel *model,
|
||||||
|
GtkTreeIter *iter,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
gchar *text;
|
||||||
|
gboolean res;
|
||||||
|
|
||||||
|
gtk_tree_model_get (model, iter, 0, &text, -1);
|
||||||
|
res = g_strcmp0 (text, "-") == 0;
|
||||||
|
g_free (text);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate (GApplication *app)
|
activate (GApplication *app)
|
||||||
{
|
{
|
||||||
@ -1107,6 +1132,7 @@ activate (GApplication *app)
|
|||||||
GtkWidget *widget;
|
GtkWidget *widget;
|
||||||
GtkWidget *widget2;
|
GtkWidget *widget2;
|
||||||
GtkWidget *widget3;
|
GtkWidget *widget3;
|
||||||
|
GtkWidget *widget4;
|
||||||
GtkWidget *stack;
|
GtkWidget *stack;
|
||||||
GtkWidget *dialog;
|
GtkWidget *dialog;
|
||||||
GtkAdjustment *adj;
|
GtkAdjustment *adj;
|
||||||
@ -1254,12 +1280,15 @@ activate (GApplication *app)
|
|||||||
populate_colors ((GtkWidget *)gtk_builder_get_object (builder, "munsell"));
|
populate_colors ((GtkWidget *)gtk_builder_get_object (builder, "munsell"));
|
||||||
|
|
||||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "page_combo");
|
widget = (GtkWidget *)gtk_builder_get_object (builder, "page_combo");
|
||||||
|
gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (widget), page_combo_separator_func, NULL, NULL);
|
||||||
widget2 = (GtkWidget *)gtk_builder_get_object (builder, "range_from_spin");
|
widget2 = (GtkWidget *)gtk_builder_get_object (builder, "range_from_spin");
|
||||||
widget3 = (GtkWidget *)gtk_builder_get_object (builder, "range_to_spin");
|
widget3 = (GtkWidget *)gtk_builder_get_object (builder, "range_to_spin");
|
||||||
|
widget4 = (GtkWidget *)gtk_builder_get_object (builder, "print_button");
|
||||||
g_object_set_data (G_OBJECT (widget), "range_from_spin", widget2);
|
g_object_set_data (G_OBJECT (widget), "range_from_spin", widget2);
|
||||||
g_object_set_data (G_OBJECT (widget3), "range_from_spin", widget2);
|
g_object_set_data (G_OBJECT (widget3), "range_from_spin", widget2);
|
||||||
g_object_set_data (G_OBJECT (widget), "range_to_spin", widget3);
|
g_object_set_data (G_OBJECT (widget), "range_to_spin", widget3);
|
||||||
g_object_set_data (G_OBJECT (widget2), "range_to_spin", widget3);
|
g_object_set_data (G_OBJECT (widget2), "range_to_spin", widget3);
|
||||||
|
g_object_set_data (G_OBJECT (widget), "print_button", widget4);
|
||||||
|
|
||||||
set_accel (GTK_APPLICATION (app), GTK_WIDGET (gtk_builder_get_object (builder, "quitmenuitem")));
|
set_accel (GTK_APPLICATION (app), GTK_WIDGET (gtk_builder_get_object (builder, "quitmenuitem")));
|
||||||
set_accel (GTK_APPLICATION (app), GTK_WIDGET (gtk_builder_get_object (builder, "deletemenuitem")));
|
set_accel (GTK_APPLICATION (app), GTK_WIDGET (gtk_builder_get_object (builder, "deletemenuitem")));
|
||||||
|
@ -3573,6 +3573,8 @@ microphone-sensitivity-medium-symbolic</property>
|
|||||||
<item>Range</item>
|
<item>Range</item>
|
||||||
<item>All</item>
|
<item>All</item>
|
||||||
<item>Current</item>
|
<item>Current</item>
|
||||||
|
<item>-</item>
|
||||||
|
<item>None</item>
|
||||||
</items>
|
</items>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
@ -3591,7 +3593,7 @@ microphone-sensitivity-medium-symbolic</property>
|
|||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton">
|
<object class="GtkButton" id="print_button">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="label">Print</property>
|
<property name="label">Print</property>
|
||||||
</object>
|
</object>
|
||||||
|
Reference in New Issue
Block a user