]> Pileus Git - ~andy/gtk/blobdiff - tests/testoffscreen.c
Updated Catalan translation
[~andy/gtk] / tests / testoffscreen.c
index 842b9c1ee02129f965b24e6ee5d862d3e84191ce..e3f3223eb7d4822e7404c538e5a5d65e45b5238e 100644 (file)
@@ -2,8 +2,6 @@
  * testoffscreen.c
  */
 
-#undef GTK_DISABLE_DEPRECATED
-
 #include <math.h>
 #include <gtk/gtk.h>
 #include "gtkoffscreenbox.h"
@@ -22,31 +20,38 @@ combo_changed_cb (GtkWidget *combo,
 }
 
 static gboolean
-layout_expose_handler (GtkWidget      *widget,
-                       GdkEventExpose *event)
+layout_draw_handler (GtkWidget *widget,
+                     cairo_t   *cr)
 {
   GtkLayout *layout = GTK_LAYOUT (widget);
+  GdkWindow *bin_window = gtk_layout_get_bin_window (layout);
+  GdkRectangle clip;
 
-  gint i,j;
+  gint i, j, x, y;
   gint imin, imax, jmin, jmax;
 
-  if (event->window != layout->bin_window)
+  if (!gtk_cairo_should_draw_window (cr, bin_window))
     return FALSE;
 
-  imin = (event->area.x) / 10;
-  imax = (event->area.x + event->area.width + 9) / 10;
+  gdk_window_get_position (bin_window, &x, &y);
+  cairo_translate (cr, x, y);
+
+  gdk_cairo_get_clip_rectangle (cr, &clip);
+
+  imin = (clip.x) / 10;
+  imax = (clip.x + clip.width + 9) / 10;
 
-  jmin = (event->area.y) / 10;
-  jmax = (event->area.y + event->area.height + 9) / 10;
+  jmin = (clip.y) / 10;
+  jmax = (clip.y + clip.height + 9) / 10;
 
   for (i = imin; i < imax; i++)
     for (j = jmin; j < jmax; j++)
       if ((i + j) % 2)
-       gdk_draw_rectangle (layout->bin_window,
-                            widget->style->black_gc,
-                            TRUE,
-                            10 * i, 10 * j,
-                            1 + i % 10, 1 + j % 10);
+          cairo_rectangle (cr,
+                           10 * i, 10 * j,
+                           1 + i % 10, 1 + j % 10);
+
+  cairo_fill (cr);
 
   return FALSE;
 }
@@ -68,7 +73,9 @@ static guint layout_timeout;
 static void
 create_layout (GtkWidget *vbox)
 {
-  GtkWidget *layout;
+  GtkAdjustment *hadjustment, *vadjustment;
+  GtkLayout *layout;
+  GtkWidget *layout_widget;
   GtkWidget *scrolledwindow;
   GtkWidget *button;
   gchar buf[16];
@@ -82,21 +89,26 @@ create_layout (GtkWidget *vbox)
 
   gtk_box_pack_start (GTK_BOX (vbox), scrolledwindow, TRUE, TRUE, 0);
 
-  layout = gtk_layout_new (NULL, NULL);
-  gtk_container_add (GTK_CONTAINER (scrolledwindow), layout);
+  layout_widget = gtk_layout_new (NULL, NULL);
+  layout = GTK_LAYOUT (layout_widget);
+  gtk_container_add (GTK_CONTAINER (scrolledwindow), layout_widget);
 
   /* We set step sizes here since GtkLayout does not set
    * them itself.
    */
-  GTK_LAYOUT (layout)->hadjustment->step_increment = 10.0;
-  GTK_LAYOUT (layout)->vadjustment->step_increment = 10.0;
-
-  gtk_widget_set_events (layout, GDK_EXPOSURE_MASK);
-  g_signal_connect (layout, "expose_event",
-                   G_CALLBACK (layout_expose_handler),
+  hadjustment = gtk_layout_get_hadjustment (layout);
+  vadjustment = gtk_layout_get_vadjustment (layout);
+  gtk_adjustment_set_step_increment (hadjustment, 10.0);
+  gtk_adjustment_set_step_increment (vadjustment, 10.0);
+  gtk_layout_set_hadjustment (layout, hadjustment);
+  gtk_layout_set_vadjustment (layout, vadjustment);
+
+  gtk_widget_set_events (layout_widget, GDK_EXPOSURE_MASK);
+  g_signal_connect (layout, "draw",
+                   G_CALLBACK (layout_draw_handler),
                     NULL);
 
-  gtk_layout_set_size (GTK_LAYOUT (layout), 1600, 128000);
+  gtk_layout_set_size (layout, 1600, 128000);
 
   for (i = 0 ; i < 16 ; i++)
     for (j = 0 ; j < 16 ; j++)
@@ -108,8 +120,7 @@ create_layout (GtkWidget *vbox)
        else
          button = gtk_label_new (buf);
 
-       gtk_layout_put (GTK_LAYOUT (layout), button,
-                       j * 100, i * 100);
+       gtk_layout_put (layout, button, j * 100, i * 100);
       }
 
   for (i = 16; i < 1280; i++)
@@ -121,8 +132,7 @@ create_layout (GtkWidget *vbox)
       else
        button = gtk_label_new (buf);
 
-      gtk_layout_put (GTK_LAYOUT (layout), button,
-                     0, i * 100);
+      gtk_layout_put (layout, button, 0, i * 100);
     }
 
   layout_timeout = g_timeout_add (1000, scroll_layout, layout);
@@ -186,7 +196,6 @@ create_widgets (void)
   GtkWidget *main_hbox, *main_vbox;
   GtkWidget *vbox, *hbox, *label, *combo, *entry, *button, *cb;
   GtkWidget *sw, *text_view;
-  GList *cbitems = NULL;
 
   main_vbox = gtk_vbox_new (0, FALSE);
 
@@ -228,14 +237,19 @@ create_widgets (void)
   button = gtk_check_button_new_with_mnemonic ("_Check button");
   gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
 
-  cb = gtk_combo_new ();
-  cbitems = g_list_append (cbitems, "item0");
-  cbitems = g_list_append (cbitems, "item1 item1");
-  cbitems = g_list_append (cbitems, "item2 item2 item2");
-  gtk_combo_set_popdown_strings (GTK_COMBO (cb), cbitems);
-  gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (cb)->entry), "hello world ♥ foo");
-  gtk_editable_select_region (GTK_EDITABLE (GTK_COMBO (cb)->entry),
-                             0, -1);
+  cb = gtk_combo_box_new_text ();
+  entry = gtk_entry_new ();
+  gtk_widget_show (entry);
+  gtk_container_add (GTK_CONTAINER (cb), entry);
+
+  gtk_combo_box_append_text (GTK_COMBO_BOX (cb), "item0");
+  gtk_combo_box_append_text (GTK_COMBO_BOX (cb), "item1");
+  gtk_combo_box_append_text (GTK_COMBO_BOX (cb), "item1");
+  gtk_combo_box_append_text (GTK_COMBO_BOX (cb), "item2");
+  gtk_combo_box_append_text (GTK_COMBO_BOX (cb), "item2");
+  gtk_combo_box_append_text (GTK_COMBO_BOX (cb), "item2");
+  gtk_entry_set_text (GTK_ENTRY (entry), "hello world ♥ foo");
+  gtk_editable_select_region (GTK_EDITABLE (entry), 0, -1);
   gtk_box_pack_start (GTK_BOX (vbox), cb, TRUE, TRUE, 0);
 
   sw = gtk_scrolled_window_new (NULL, NULL);
@@ -360,21 +374,6 @@ main (int   argc,
                     G_CALLBACK (remove_clicked),
                     widget);
 
-  /* redirect */
-  if (0)
-    {
-      GtkWidget *redirect_win;
-
-      redirect_win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-      gtk_window_set_default_size (GTK_WINDOW (redirect_win), 400,400);
-      gtk_widget_show (redirect_win);
-      gtk_widget_realize (redirect_win);
-      gtk_widget_realize (window);
-      gdk_window_redirect_to_drawable (window->window,
-                                      GDK_DRAWABLE (redirect_win->window),
-                                      0, 0, 0, 0, -1, -1);
-    }
-
   gtk_main ();
 
   return 0;