* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
/*
GdkWindow *child,
gint level)
{
- static const GdkColor colors[] = {
- { 0, 0x4444, 0x4444, 0xffff },
- { 0, 0x8888, 0x8888, 0xffff },
- { 0, 0xaaaa, 0xaaaa, 0xffff }
+ static GdkRGBA colors[] = {
+ { 0.27, 0.27, 1.0, 1.0 },
+ { 0.53, 0.53, 1.0, 1.0},
+ { 0.67, 0.67, 1.0, 1.0 }
};
gdk_window_set_user_data (child, widget);
- gdk_window_set_background (child, &colors[level]);
+ gdk_window_set_background_rgba (child, &colors[level]);
}
static void
gtk_widget_destroy (window);
}
+/* Alpha demo */
+
+static void
+alpha_changed (GtkRange *range, GtkWidget *widget)
+{
+ gdouble alpha;
+
+ alpha = gtk_range_get_value (range);
+
+ gtk_widget_set_opacity (widget, alpha / 100.0);
+}
+
+
+void
+create_alpha_widgets (GtkWidget *widget)
+{
+ static GtkWidget *window = NULL;
+
+ if (!window)
+ {
+ GtkWidget *vbox2, *vbox, *main_hbox;
+ GtkWidget *button, *event_box, *label, *scale;
+ GtkWidget *alpha1, *alpha2, *alpha3;
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_screen (GTK_WINDOW (window),
+ gtk_widget_get_screen (widget));
+ gtk_window_set_default_size (GTK_WINDOW (window),
+ 450, 450);
+
+ g_signal_connect (window, "destroy",
+ G_CALLBACK (gtk_widget_destroyed), &window);
+
+ gtk_window_set_title (GTK_WINDOW (window), "Alpha");
+ gtk_container_set_border_width (GTK_CONTAINER (window), 0);
+
+ main_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_container_add (GTK_CONTAINER (window), main_hbox);
+
+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+
+ gtk_box_pack_start (GTK_BOX (main_hbox), vbox, FALSE, FALSE, 0);
+
+ /* Plain button (no gdkwindows */
+
+ label = gtk_label_new ("non-window widget");
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+ alpha1 = button = gtk_button_new_with_label ("A Button");
+ gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
+
+ /* windowed container with both windowed and normal button */
+ label = gtk_label_new ("\nwindow widget");
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+ alpha2 = event_box = gtk_event_box_new ();
+ gtk_box_pack_start (GTK_BOX (vbox), event_box, FALSE, FALSE, 0);
+
+ vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+ gtk_container_add (GTK_CONTAINER (event_box), vbox2);
+
+ button = gtk_button_new_with_label ("A Button");
+ gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
+
+ event_box = gtk_event_box_new ();
+ button = gtk_button_new_with_label ("A Button (in window)");
+ gtk_container_add (GTK_CONTAINER (event_box), button);
+ gtk_box_pack_start (GTK_BOX (vbox2), event_box, FALSE, FALSE, 0);
+
+ /* non-windowed container with both windowed and normal button */
+ label = gtk_label_new ("\nnon-window widget with widget child");
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+ alpha3 = vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), vbox2, FALSE, FALSE, 0);
+
+ button = gtk_button_new_with_label ("A Button");
+ gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
+
+ event_box = gtk_event_box_new ();
+ button = gtk_button_new_with_label ("A Button (in window)");
+ gtk_container_add (GTK_CONTAINER (event_box), button);
+ gtk_box_pack_start (GTK_BOX (vbox2), event_box, FALSE, FALSE, 0);
+
+ scale = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL,
+ 0, 100, 1);
+ gtk_box_pack_start (GTK_BOX (main_hbox), scale, FALSE, FALSE, 0);
+ g_signal_connect (scale, "value_changed", G_CALLBACK (alpha_changed), alpha1);
+ gtk_range_set_value (GTK_RANGE (scale), 50);
+
+ scale = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL,
+ 0, 100, 1);
+ gtk_box_pack_start (GTK_BOX (main_hbox), scale, FALSE, FALSE, 0);
+ g_signal_connect (scale, "value_changed", G_CALLBACK (alpha_changed), alpha2);
+ gtk_range_set_value (GTK_RANGE (scale), 50);
+
+ scale = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL,
+ 0, 100, 1);
+ gtk_box_pack_start (GTK_BOX (main_hbox), scale, FALSE, FALSE, 0);
+ g_signal_connect (scale, "value_changed", G_CALLBACK (alpha_changed), alpha3);
+ gtk_range_set_value (GTK_RANGE (scale), 50);
+
+ gtk_widget_show_all (main_hbox);
+ }
+
+ if (!gtk_widget_get_visible (window))
+ gtk_widget_show (window);
+ else
+ gtk_widget_destroy (window);
+}
+
+
/*
* Label Demo
*/
{
if (event->type == GDK_BUTTON_PRESS)
{
- if (event->button == 1)
+ if (event->button == GDK_BUTTON_PRIMARY)
gtk_window_begin_resize_drag (GTK_WINDOW (gtk_widget_get_toplevel (area)), edge,
event->button, event->x_root, event->y_root,
event->time);
- else if (event->button == 2)
+ else if (event->button == GDK_BUTTON_MIDDLE)
gtk_window_begin_move_drag (GTK_WINDOW (gtk_widget_get_toplevel (area)),
event->button, event->x_root, event->y_root,
event->time);
cmw_color (GtkWidget *widget, GtkWidget *parent)
{
GtkWidget *csd;
- GtkWidget *colorsel;
- GtkWidget *ok_button, *cancel_button;
-
- csd = gtk_color_selection_dialog_new ("This is a modal color selection dialog");
- gtk_window_set_screen (GTK_WINDOW (csd), gtk_widget_get_screen (parent));
+ csd = gtk_color_chooser_dialog_new ("This is a modal color selection dialog", GTK_WINDOW (parent));
- colorsel = gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG (csd));
- gtk_color_selection_set_has_palette (GTK_COLOR_SELECTION (colorsel),
- TRUE);
-
/* Set as modal */
gtk_window_set_modal (GTK_WINDOW(csd),TRUE);
- /* And mark it as a transient dialog */
- gtk_window_set_transient_for (GTK_WINDOW (csd), GTK_WINDOW (parent));
-
g_signal_connect (csd, "destroy",
G_CALLBACK (cmw_destroy_cb), NULL);
-
- g_object_get (csd,
- "ok-button", &ok_button,
- "cancel-button", &cancel_button,
- NULL);
-
- g_signal_connect_swapped (ok_button,
- "clicked", G_CALLBACK (gtk_widget_destroy), csd);
- g_signal_connect_swapped (cancel_button,
- "clicked", G_CALLBACK (gtk_widget_destroy), csd);
+ g_signal_connect (csd, "response",
+ G_CALLBACK (gtk_widget_destroy), NULL);
/* wait until destroy calls gtk_main_quit */
gtk_widget_show (csd);
grid = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (grid), 10);
gtk_grid_set_column_spacing (GTK_GRID (grid), 10);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), grid);
+ gtk_container_add (GTK_CONTAINER (scrolled_window), grid);
gtk_container_set_focus_hadjustment (GTK_CONTAINER (grid),
gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_container_set_focus_vadjustment (GTK_CONTAINER (grid),
gtk_entry_set_progress_fraction (GTK_ENTRY (data), fraction);
}
- return TRUE;
+ return G_SOURCE_CONTINUE;
}
static void
GtkSpinButton *spinner)
{
if ((event->type == GDK_BUTTON_PRESS) &&
- ((event->button.button == 1) ||
- (event->button.button == 3)))
+ ((event->button.button == GDK_BUTTON_PRIMARY) ||
+ (event->button.button == GDK_BUTTON_SECONDARY)))
{
- gtk_spin_button_spin (spinner, event->button.button == 1 ?
+ gtk_spin_button_spin (spinner, event->button.button == GDK_BUTTON_PRIMARY ?
GTK_SPIN_STEP_FORWARD : GTK_SPIN_STEP_BACKWARD, 0);
return TRUE;
}
NULL);
#ifdef GDK_WINDOWING_X11
- hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
-
- label = gtk_label_new ("Cursor Theme : ");
- gtk_widget_set_halign (label, GTK_ALIGN_START);
- gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
-
- entry = gtk_entry_new ();
- gtk_entry_set_text (GTK_ENTRY (entry), "default");
- gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, TRUE, 0);
-
- size = gtk_spin_button_new_with_range (1.0, 64.0, 1.0);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (size), 24.0);
- gtk_box_pack_start (GTK_BOX (hbox), size, TRUE, TRUE, 0);
-
- g_signal_connect (entry, "changed",
- G_CALLBACK (change_cursor_theme), hbox);
- g_signal_connect (size, "changed",
- G_CALLBACK (change_cursor_theme), hbox);
+ if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (vbox)))
+ {
+ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
+
+ label = gtk_label_new ("Cursor Theme : ");
+ gtk_widget_set_halign (label, GTK_ALIGN_START);
+ gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
+
+ entry = gtk_entry_new ();
+ gtk_entry_set_text (GTK_ENTRY (entry), "default");
+ gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, TRUE, 0);
+
+ size = gtk_spin_button_new_with_range (1.0, 64.0, 1.0);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (size), 24.0);
+ gtk_box_pack_start (GTK_BOX (hbox), size, TRUE, TRUE, 0);
+
+ g_signal_connect (entry, "changed",
+ G_CALLBACK (change_cursor_theme), hbox);
+ g_signal_connect (size, "changed",
+ G_CALLBACK (change_cursor_theme), hbox);
+ }
#endif
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
gtk_container_add (GTK_CONTAINER (hbox), label);
picker = gtk_color_button_new ();
- gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (picker), TRUE);
+ gtk_color_chooser_set_use_alpha (GTK_COLOR_CHOOSER (picker), TRUE);
gtk_container_add (GTK_CONTAINER (hbox), picker);
button = gtk_button_new_with_mnemonic ("_Props");
gtk_widget_destroy (window);
}
+void
+create_settings (GtkWidget *widget)
+{
+ static GtkWidget *window = NULL;
+
+ if (!window)
+ {
+ window = create_prop_editor (G_OBJECT (gtk_settings_get_default ()), GTK_TYPE_SETTINGS);
+ gtk_window_set_screen (GTK_WINDOW (window),
+ gtk_widget_get_screen (widget));
+
+ gtk_widget_hide (window);
+ gtk_window_set_title (GTK_WINDOW (window), "GTK+ Settings");
+
+ g_signal_connect (window, "destroy",
+ G_CALLBACK (gtk_widget_destroyed),
+ &window);
+ }
+
+ if (!gtk_widget_get_visible (window))
+ gtk_widget_show (window);
+ else
+ gtk_widget_destroy (window);
+}
+
/*
* GtkPanes
*/
GtkWidget *frame;
GtkWidget *grid;
GtkWidget *label;
- GtkWidget *align;
static ProgressData *pdata = NULL;
static gchar *items1[] =
vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
gtk_container_add (GTK_CONTAINER (frame), vbox2);
- align = gtk_alignment_new (0.5, 0.5, 0, 0);
- gtk_box_pack_start (GTK_BOX (vbox2), align, FALSE, FALSE, 5);
-
pdata->pbar = gtk_progress_bar_new ();
gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR (pdata->pbar),
PANGO_ELLIPSIZE_MIDDLE);
-
- gtk_container_add (GTK_CONTAINER (align), pdata->pbar);
-
- align = gtk_alignment_new (0.5, 0.5, 0, 0);
- gtk_box_pack_start (GTK_BOX (vbox2), align, FALSE, FALSE, 5);
+ gtk_widget_set_halign (pdata->pbar, GTK_ALIGN_CENTER);
+ gtk_widget_set_valign (pdata->pbar, GTK_ALIGN_CENTER);
+ gtk_box_pack_start (GTK_BOX (vbox2), pdata->pbar, FALSE, FALSE, 5);
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
- gtk_container_add (GTK_CONTAINER (align), hbox);
+ gtk_widget_set_halign (hbox, GTK_ALIGN_CENTER);
+ gtk_widget_set_valign (hbox, GTK_ALIGN_CENTER);
+ gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 5);
label = gtk_label_new ("Label updated by user :");
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
pdata->label = gtk_label_new ("");
store = gtk_list_store_new (1, G_TYPE_STRING);
tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_win), tree_view);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), tree_view);
renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes ("Target", renderer,
sprintf (buffer, "count: %d", ++count);
gtk_label_set_text (GTK_LABEL (label), buffer);
- return TRUE;
+ return G_SOURCE_CONTINUE;
}
static void
} buttons[] =
{
{ "alpha window", create_alpha_window },
+ { "alpha widget", create_alpha_widgets },
{ "big windows", create_big_windows },
{ "button box", create_button_box },
{ "buttons", create_buttons },
{ "rotated text", create_rotated_text },
{ "saved position", create_saved_position },
{ "scrolled windows", create_scrolled_windows },
+ { "settings", create_settings },
{ "shapes", create_shapes },
{ "size groups", create_size_groups },
{ "snapshot", create_snapshot },
box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), box2);
+ gtk_container_add (GTK_CONTAINER (scrolled_window), box2);
gtk_container_set_focus_vadjustment (GTK_CONTAINER (box2),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_widget_show (box2);