#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);
label = g_object_get_data (G_OBJECT (spinner), "user_data");
- class = gtk_type_class (GDK_TYPE_CURSOR_TYPE);
+ class = g_type_class_ref (GDK_TYPE_CURSOR_TYPE);
vals = class->values;
while (vals && vals->value != c)
else
gtk_label_set_text (GTK_LABEL (label), "<unknown>");
+ g_type_class_unref (class);
+
cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), c);
gdk_window_set_cursor (widget->window, cursor);
gdk_cursor_unref (cursor);
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);
if (!style1)
{
- GdkColor col1 = { 0, };
- GdkColor col2 = { 0, };
-
- col1.red = 0;
- col1.green = 56000;
- col1.blue = 0;
- col2.red = 32000;
- col2.green = 0;
- col2.blue = 56000;
+ GdkColor col1 = { 0, 0, 56000, 0};
+ GdkColor col2 = { 0, 32000, 0, 56000};
style1 = gtk_style_copy (GTK_WIDGET (data)->style);
style1->base[GTK_STATE_NORMAL] = col1;
}
gtk_widget_destroy (child);
- gtk_widget_unref (child);
+ g_object_unref (child);
}
static void
GtkWidget *label;
GtkStyle *style;
- GdkColor col1 = { 0, };
- GdkColor col2 = { 0, };
+ GdkColor red_col = { 0, 56000, 0, 0};
+ GdkColor light_green_col = { 0, 0, 56000, 32000};
if (!window)
{
sprintf (text[1], "Right");
sprintf (text[2], "Center");
- col1.red = 56000;
- col1.green = 0;
- col1.blue = 0;
- col2.red = 0;
- col2.green = 56000;
- col2.blue = 32000;
-
style = gtk_style_new ();
- style->fg[GTK_STATE_NORMAL] = col1;
- style->base[GTK_STATE_NORMAL] = col2;
+ style->fg[GTK_STATE_NORMAL] = red_col;
+ style->base[GTK_STATE_NORMAL] = light_green_col;
pango_font_description_set_size (style->font_desc, 14 * PANGO_SCALE);
pango_font_description_set_weight (style->font_desc, PANGO_WEIGHT_BOLD);
}
}
- gtk_style_unref (style);
+ g_object_unref (style);
separator = gtk_hseparator_new ();
gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, TRUE, 0);
static GtkStyle *style2 = NULL;
GtkCTreeNode *node;
- GdkColor col1 = { 0, };
- GdkColor col2 = { 0, };
+ GdkColor green_col = { 0, 0, 56000, 0};
+ GdkColor purple_col = { 0, 32000, 0, 56000};
if (GTK_CLIST (ctree)->focus_row >= 0)
node = GTK_CTREE_NODE
if (!style1)
{
- col1.red = 0;
- col1.green = 56000;
- col1.blue = 0;
- col2.red = 32000;
- col2.green = 0;
- col2.blue = 56000;
-
style1 = gtk_style_new ();
- style1->base[GTK_STATE_NORMAL] = col1;
- style1->fg[GTK_STATE_SELECTED] = col2;
+ style1->base[GTK_STATE_NORMAL] = green_col;
+ style1->fg[GTK_STATE_SELECTED] = purple_col;
style2 = gtk_style_new ();
- style2->base[GTK_STATE_SELECTED] = col2;
- style2->fg[GTK_STATE_NORMAL] = col1;
- style2->base[GTK_STATE_NORMAL] = col2;
+ style2->base[GTK_STATE_SELECTED] = purple_col;
+ style2->fg[GTK_STATE_NORMAL] = green_col;
+ style2->base[GTK_STATE_NORMAL] = purple_col;
pango_font_description_free (style2->font_desc);
style2->font_desc = pango_font_description_from_string ("courier 30");
}
break;
}
gtk_ctree_node_set_row_data_full (ctree, sibling, style,
- (GtkDestroyNotify) gtk_style_unref);
+ (GDestroyNotify) g_object_unref);
if (ctree->line_style == GTK_CTREE_LINES_TABBED)
gtk_ctree_node_set_row_style (ctree, sibling, style);
style->base[GTK_STATE_NORMAL].green = 45000;
style->base[GTK_STATE_NORMAL].blue = 55000;
gtk_ctree_node_set_row_data_full (ctree, parent, style,
- (GtkDestroyNotify) gtk_style_unref);
+ (GDestroyNotify) g_object_unref);
if (ctree->line_style == GTK_CTREE_LINES_TABBED)
gtk_ctree_node_set_row_style (ctree, parent, style);
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,
gtk_widget_realize (window);
circles = gdk_bitmap_create_from_data (window->window,
- circles_bits,
+ (gchar *) circles_bits,
circles_width,
circles_height);
gdk_window_set_icon (window->window, NULL,
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");
/* bindings test
*/
- binding_set = gtk_binding_set_by_class (gtk_type_class (GTK_TYPE_WIDGET));
+ binding_set = gtk_binding_set_by_class (g_type_class_ref (GTK_TYPE_WIDGET));
gtk_binding_entry_add_signal (binding_set,
'9', GDK_CONTROL_MASK | GDK_RELEASE_MASK,
"debug_msg",