#undef GTK_DISABLE_DEPRECATED
-#include <config.h>
+#include "config.h"
#undef G_LOG_DOMAIN
G_CALLBACK (statusbar_popped),
NULL);
- button = gtk_widget_new (gtk_button_get_type (),
+ button = g_object_new (gtk_button_get_type (),
"label", "push something",
"visible", TRUE,
"parent", box2,
"signal::clicked", statusbar_push, statusbar,
NULL);
- button = g_object_connect (gtk_widget_new (gtk_button_get_type (),
+ button = g_object_connect (g_object_new (gtk_button_get_type (),
"label", "pop",
"visible", TRUE,
"parent", box2,
"signal_after::clicked", statusbar_pop, statusbar,
NULL);
- button = g_object_connect (gtk_widget_new (gtk_button_get_type (),
+ button = g_object_connect (g_object_new (gtk_button_get_type (),
"label", "steal #4",
"visible", TRUE,
"parent", box2,
"signal_after::clicked", statusbar_steal, statusbar,
NULL);
- button = g_object_connect (gtk_widget_new (gtk_button_get_type (),
+ button = g_object_connect (g_object_new (gtk_button_get_type (),
"label", "test contexts",
"visible", TRUE,
"parent", box2,
"swapped_signal_after::clicked", statusbar_contexts, statusbar,
NULL);
- button = g_object_connect (gtk_widget_new (gtk_button_get_type (),
+ button = g_object_connect (g_object_new (gtk_button_get_type (),
"label", "push something long",
"visible", TRUE,
"parent", box2,
create_gridded_geometry (GtkWidget *widget)
{
static GtkWidget *window = NULL;
+ gpointer window_ptr;
GtkWidget *entry;
GtkWidget *label;
g_signal_connect (window, "response",
G_CALLBACK (gridded_geometry_response), entry);
- g_object_add_weak_pointer (G_OBJECT (window), (gpointer) &window);
+ window_ptr = &window;
+ g_object_add_weak_pointer (G_OBJECT (window), window_ptr);
gtk_widget_show_all (window);
}
vbox = gtk_vbox_new (FALSE, 3);
- snap = gtk_widget_new (GTK_TYPE_IMAGE, NULL);
+ snap = g_object_new (GTK_TYPE_IMAGE, NULL);
gid->snap = snap;
GtkWidget *label;
GtkWidget *any;
- window = g_object_connect (gtk_widget_new (GTK_TYPE_WINDOW,
+ window = g_object_connect (g_object_new (GTK_TYPE_WINDOW,
"type", GTK_WINDOW_TOPLEVEL,
"title", "Saved Position",
NULL),
gtk_container_add (GTK_CONTAINER (window), main_vbox);
vbox =
- gtk_widget_new (gtk_vbox_get_type (),
+ g_object_new (gtk_vbox_get_type (),
"GtkBox::homogeneous", FALSE,
"GtkBox::spacing", 5,
"GtkContainer::border_width", 10,
"GtkWidget::parent", main_vbox,
"GtkWidget::visible", TRUE,
- "child", g_object_connect (gtk_widget_new (GTK_TYPE_TOGGLE_BUTTON,
+ "child", g_object_connect (g_object_new (GTK_TYPE_TOGGLE_BUTTON,
"label", "Stop Events",
"active", FALSE,
"visible", TRUE,
g_object_set_data (G_OBJECT (window), "y", y_label);
any =
- gtk_widget_new (gtk_hseparator_get_type (),
+ g_object_new (gtk_hseparator_get_type (),
"GtkWidget::visible", TRUE,
NULL);
gtk_box_pack_start (GTK_BOX (main_vbox), any, FALSE, TRUE, 0);
if (!window)
{
window =
- gtk_widget_new (gtk_window_get_type (),
+ g_object_new (gtk_window_get_type (),
"GtkWindow::type", GTK_WINDOW_TOPLEVEL,
"GtkContainer::border_width", 0,
"GtkWindow::title", "Tooltips",
"Hi msw! ;)");
box3 =
- gtk_widget_new (gtk_vbox_get_type (),
+ g_object_new (gtk_vbox_get_type (),
"homogeneous", FALSE,
"spacing", 5,
"border_width", 5,
tips_query = gtk_tips_query_new ();
button =
- gtk_widget_new (gtk_button_get_type (),
+ g_object_new (gtk_button_get_type (),
"label", "[?]",
"visible", TRUE,
"parent", box3,
"caller", button,
NULL);
- frame = gtk_widget_new (gtk_frame_get_type (),
+ frame = g_object_new (gtk_frame_get_type (),
"label", "ToolTips Inspector",
"label_xalign", (double) 0.5,
"border_width", 0,
create_key_lookup (GtkWidget *widget)
{
static GtkWidget *window = NULL;
+ gpointer window_ptr;
if (!window)
{
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), button, FALSE, FALSE, 0);
button = accel_button_new (accel_group, "Button 15", "<Shift><Mod4>b");
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), button, FALSE, FALSE, 0);
-
- g_object_add_weak_pointer (G_OBJECT (window), (gpointer) &window);
+
+ window_ptr = &window;
+ g_object_add_weak_pointer (G_OBJECT (window), window_ptr);
g_signal_connect (window, "response", G_CALLBACK (gtk_object_destroy), NULL);
gtk_widget_show_all (window);
gtk_widget_set_sensitive (entry, GTK_TOGGLE_BUTTON(checkbutton)->active);
}
+static gboolean
+entry_progress_timeout (gpointer data)
+{
+ if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (data), "progress-pulse")))
+ {
+ gtk_entry_progress_pulse (GTK_ENTRY (data));
+ }
+ else
+ {
+ gdouble fraction;
+
+ fraction = gtk_entry_get_progress_fraction (GTK_ENTRY (data));
+
+ fraction += 0.05;
+ if (fraction > 1.0001)
+ fraction = 0.0;
+
+ gtk_entry_set_progress_fraction (GTK_ENTRY (data), fraction);
+ }
+
+ return TRUE;
+}
+
+static void
+entry_remove_timeout (gpointer data)
+{
+ g_source_remove (GPOINTER_TO_UINT (data));
+}
+
+static void
+entry_toggle_progress (GtkWidget *checkbutton,
+ GtkWidget *entry)
+{
+ if (GTK_TOGGLE_BUTTON (checkbutton)->active)
+ {
+ guint timeout = gdk_threads_add_timeout (100,
+ entry_progress_timeout,
+ entry);
+ g_object_set_data_full (G_OBJECT (entry), "timeout-id",
+ GUINT_TO_POINTER (timeout),
+ entry_remove_timeout);
+ }
+ else
+ {
+ g_object_set_data (G_OBJECT (entry), "timeout-id",
+ GUINT_TO_POINTER (0));
+
+ gtk_entry_set_progress_fraction (GTK_ENTRY (entry), 0.0);
+ }
+}
+
+static void
+entry_toggle_pulse (GtkWidget *checkbutton,
+ GtkWidget *entry)
+{
+ g_object_set_data (G_OBJECT (entry), "progress-pulse",
+ GINT_TO_POINTER (GTK_TOGGLE_BUTTON (checkbutton)->active));
+}
+
static void
entry_props_clicked (GtkWidget *button,
GObject *entry)
GtkWidget *hbox;
GtkWidget *has_frame_check;
GtkWidget *sensitive_check;
+ GtkWidget *progress_check;
GtkWidget *entry, *cb;
GtkWidget *button;
GtkWidget *separator;
g_signal_connect (has_frame_check, "toggled",
G_CALLBACK (entry_toggle_frame), entry);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (has_frame_check), TRUE);
-
+
+ progress_check = gtk_check_button_new_with_label("Show Progress");
+ gtk_box_pack_start (GTK_BOX (box2), progress_check, FALSE, TRUE, 0);
+ g_signal_connect (progress_check, "toggled",
+ G_CALLBACK (entry_toggle_progress), entry);
+
+ progress_check = gtk_check_button_new_with_label("Pulse Progress");
+ gtk_box_pack_start (GTK_BOX (box2), progress_check, FALSE, TRUE, 0);
+ g_signal_connect (progress_check, "toggled",
+ G_CALLBACK (entry_toggle_pulse), entry);
+
separator = gtk_hseparator_new ();
gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (window), main_vbox);
vbox =
- gtk_widget_new (gtk_vbox_get_type (),
+ g_object_new (gtk_vbox_get_type (),
"GtkBox::homogeneous", FALSE,
"GtkBox::spacing", 5,
"GtkContainer::border_width", 10,
gtk_box_pack_start (GTK_BOX (hbox), spinner, TRUE, TRUE, 0);
frame =
- gtk_widget_new (gtk_frame_get_type (),
+ g_object_new (gtk_frame_get_type (),
"GtkFrame::shadow", GTK_SHADOW_ETCHED_IN,
"GtkFrame::label_xalign", 0.5,
"GtkFrame::label", "Cursor Area",
G_CALLBACK (set_cursor),
darea);
- label = gtk_widget_new (GTK_TYPE_LABEL,
+ label = g_object_new (GTK_TYPE_LABEL,
"visible", TRUE,
"label", "XXX",
"parent", vbox,
g_object_set_data (G_OBJECT (spinner), "user_data", label);
any =
- gtk_widget_new (gtk_hseparator_get_type (),
+ g_object_new (gtk_hseparator_get_type (),
"GtkWidget::visible", TRUE,
NULL);
gtk_box_pack_start (GTK_BOX (main_vbox), any, FALSE, TRUE, 0);
gtk_widget_set_default_direction (new_direction);
}
+static void
+orientable_toggle_orientation (GtkOrientable *orientable)
+{
+ GtkOrientation orientation;
+
+ orientation = gtk_orientable_get_orientation (orientable);
+ gtk_orientable_set_orientation (orientable,
+ orientation == GTK_ORIENTATION_HORIZONTAL ?
+ GTK_ORIENTATION_VERTICAL :
+ GTK_ORIENTATION_HORIZONTAL);
+
+ if (GTK_IS_CONTAINER (orientable))
+ {
+ GList *children;
+ GList *child;
+
+ children = gtk_container_get_children (GTK_CONTAINER (orientable));
+
+ for (child = children; child; child = child->next)
+ {
+ if (GTK_IS_ORIENTABLE (child->data))
+ orientable_toggle_orientation (child->data);
+ }
+
+ g_list_free (children);
+ }
+}
+
+void
+flipping_orientation_toggled_cb (GtkWidget *widget, gpointer data)
+{
+ orientable_toggle_orientation (GTK_ORIENTABLE (GTK_DIALOG (gtk_widget_get_toplevel (widget))->vbox));
+}
+
static void
set_direction_recurse (GtkWidget *widget,
gpointer data)
gtk_window_set_title (GTK_WINDOW (window), "Bidirectional Flipping");
check_button = gtk_check_button_new_with_label ("Right-to-left global direction");
+ gtk_container_set_border_width (GTK_CONTAINER (check_button), 10);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox),
+ check_button, TRUE, TRUE, 0);
+
+ if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE);
+
+ g_signal_connect (check_button, "toggled",
+ G_CALLBACK (flipping_toggled_cb), NULL);
+
+ check_button = gtk_check_button_new_with_label ("Toggle orientation of all boxes");
+ gtk_container_set_border_width (GTK_CONTAINER (check_button), 10);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox),
check_button, TRUE, TRUE, 0);
+ g_signal_connect (check_button, "toggled",
+ G_CALLBACK (flipping_orientation_toggled_cb), NULL);
+
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox),
create_forward_back ("Default", GTK_TEXT_DIR_NONE),
TRUE, TRUE, 0);
create_forward_back ("Right-to-Left", GTK_TEXT_DIR_RTL),
TRUE, TRUE, 0);
- if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL)
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE);
-
- g_signal_connect (check_button, "toggled",
- G_CALLBACK (flipping_toggled_cb), NULL);
-
- gtk_container_set_border_width (GTK_CONTAINER (check_button), 10);
-
button = gtk_button_new_with_label ("Close");
g_signal_connect_swapped (button, "clicked",
G_CALLBACK (gtk_widget_destroy), window);
GdkDisplay *display = gdk_screen_get_display (screen);
- window = gtk_widget_new (gtk_window_get_type (),
+ window = g_object_new (gtk_window_get_type (),
"screen", screen,
"user_data", NULL,
"type", GTK_WINDOW_TOPLEVEL,
g_signal_connect (adj, "value_changed",
G_CALLBACK (progress_value_changed), pdata);
- pdata->pbar = gtk_widget_new (GTK_TYPE_PROGRESS_BAR,
+ pdata->pbar = g_object_new (GTK_TYPE_PROGRESS_BAR,
"adjustment", adj,
"ellipsize", PANGO_ELLIPSIZE_MIDDLE,
NULL);
pointer_window = gdk_display_get_window_at_pointer (display, NULL, NULL);
if (pointer_window)
- gdk_window_get_user_data (pointer_window, (gpointer) &widget);
+ {
+ gpointer widget_ptr;
+
+ gdk_window_get_user_data (pointer_window, &widget_ptr);
+ widget = widget_ptr;
+ }
if (widget)
{
gtk_widget_show (label);
container =
- gtk_widget_new (GTK_TYPE_HBOX,
+ g_object_new (GTK_TYPE_HBOX,
"visible", TRUE,
- /* "GtkContainer::child", gtk_widget_new (GTK_TYPE_HBOX,
+ /* "GtkContainer::child", g_object_new (GTK_TYPE_HBOX,
* "GtkWidget::visible", TRUE,
*/
"child", label,
container, TRUE, TRUE, 0);
frame =
- gtk_widget_new (GTK_TYPE_FRAME,
+ g_object_new (GTK_TYPE_FRAME,
"border_width", 5,
"label", "Label Container",
"visible", TRUE,
"parent", GTK_DIALOG (window)->vbox,
NULL);
box =
- gtk_widget_new (GTK_TYPE_VBOX,
+ g_object_new (GTK_TYPE_VBOX,
"visible", TRUE,
"parent", frame,
NULL);
button =
- g_object_connect (gtk_widget_new (GTK_TYPE_RADIO_BUTTON,
+ g_object_connect (g_object_new (GTK_TYPE_RADIO_BUTTON,
"label", "Resize-Parent",
"user_data", (void*)GTK_RESIZE_PARENT,
"visible", TRUE,
NULL),
"signal::clicked", toggle_idle_container, container,
NULL);
- button = gtk_widget_new (GTK_TYPE_RADIO_BUTTON,
+ button = g_object_new (GTK_TYPE_RADIO_BUTTON,
"label", "Resize-Queue",
"user_data", (void*)GTK_RESIZE_QUEUE,
"group", button,
g_object_connect (button,
"signal::clicked", toggle_idle_container, container,
NULL);
- button2 = gtk_widget_new (GTK_TYPE_RADIO_BUTTON,
+ button2 = g_object_new (GTK_TYPE_RADIO_BUTTON,
"label", "Resize-Immediate",
"user_data", (void*)GTK_RESIZE_IMMEDIATE,
NULL);
*/
if (file_exists ("testgtkrc"))
gtk_rc_add_default_file ("testgtkrc");
+ else if (file_exists ("tests/testgtkrc"))
+ gtk_rc_add_default_file ("tests/testgtkrc");
+ else
+ g_warning ("Couldn't find file \"testgtkrc\".");
g_set_application_name ("GTK+ Test Program");