]> Pileus Git - ~andy/gtk/blobdiff - examples/scribble-simple/scribble-simple.c
Use gtk_box_new() instead gtk_[v|h]box_new()
[~andy/gtk] / examples / scribble-simple / scribble-simple.c
index e6a250a86e871788727dbcbcb856cca3ee87d7db..0689752d85d90362e4676870e4b55277394bf047 100644 (file)
@@ -1,3 +1,4 @@
+
 /* GTK - The GIMP Toolkit
  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
  *
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
  */
 
+#include <stdlib.h>
 #include <gtk/gtk.h>
 
 /* Backing pixmap for drawing area */
 static GdkPixmap *pixmap = NULL;
 
 /* Create a new backing pixmap of the appropriate size */
-static gint
-configure_event (GtkWidget *widget, GdkEventConfigure *event)
+static gboolean configure_event( GtkWidget         *widget,
+                                 GdkEventConfigure *event )
 {
   if (pixmap)
-    gdk_pixmap_unref(pixmap);
+    g_object_unref (pixmap);
 
-  pixmap = gdk_pixmap_new(widget->window,
-                         widget->allocation.width,
-                         widget->allocation.height,
-                         -1);
+  pixmap = gdk_pixmap_new (widget->window,
+                          widget->allocation.width,
+                          widget->allocation.height,
+                          -1);
   gdk_draw_rectangle (pixmap,
                      widget->style->white_gc,
                      TRUE,
@@ -43,22 +46,23 @@ configure_event (GtkWidget *widget, GdkEventConfigure *event)
 }
 
 /* Redraw the screen from the backing pixmap */
-static gint
-expose_event (GtkWidget *widget, GdkEventExpose *event)
+static gboolean expose_event( GtkWidget      *widget,
+                              GdkEventExpose *event )
 {
-  gdk_draw_pixmap(widget->window,
-                 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
-                 pixmap,
-                 event->area.x, event->area.y,
-                 event->area.x, event->area.y,
-                 event->area.width, event->area.height);
+  gdk_draw_drawable (widget->window,
+                    widget->style->fg_gc[gtk_widget_get_state (widget)],
+                    pixmap,
+                    event->area.x, event->area.y,
+                    event->area.x, event->area.y,
+                    event->area.width, event->area.height);
 
   return FALSE;
 }
 
 /* Draw a rectangle on the screen */
-static void
-draw_brush (GtkWidget *widget, gdouble x, gdouble y)
+static void draw_brush( GtkWidget *widget,
+                        gdouble    x,
+                        gdouble    y)
 {
   GdkRectangle update_rect;
 
@@ -71,11 +75,13 @@ draw_brush (GtkWidget *widget, gdouble x, gdouble y)
                      TRUE,
                      update_rect.x, update_rect.y,
                      update_rect.width, update_rect.height);
-  gtk_widget_draw (widget, &update_rect);
+  gtk_widget_queue_draw_area (widget, 
+                             update_rect.x, update_rect.y,
+                             update_rect.width, update_rect.height);
 }
 
-static gint
-button_press_event (GtkWidget *widget, GdkEventButton *event)
+static gboolean button_press_event( GtkWidget      *widget,
+                                    GdkEventButton *event )
 {
   if (event->button == 1 && pixmap != NULL)
     draw_brush (widget, event->x, event->y);
@@ -83,8 +89,8 @@ button_press_event (GtkWidget *widget, GdkEventButton *event)
   return TRUE;
 }
 
-static gint
-motion_notify_event (GtkWidget *widget, GdkEventMotion *event)
+static gboolean motion_notify_event( GtkWidget *widget,
+                                     GdkEventMotion *event )
 {
   int x, y;
   GdkModifierType state;
@@ -104,14 +110,13 @@ motion_notify_event (GtkWidget *widget, GdkEventMotion *event)
   return TRUE;
 }
 
-void
-quit ()
+void quit ()
 {
-  gtk_exit (0);
+  exit (0);
 }
 
-int
-main (int argc, char *argv[])
+int main( int   argc, 
+          char *argv[] )
 {
   GtkWidget *window;
   GtkWidget *drawing_area;
@@ -124,34 +129,34 @@ main (int argc, char *argv[])
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_widget_set_name (window, "Test Input");
 
-  vbox = gtk_vbox_new (FALSE, 0);
+  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0);
   gtk_container_add (GTK_CONTAINER (window), vbox);
   gtk_widget_show (vbox);
 
-  gtk_signal_connect (GTK_OBJECT (window), "destroy",
-                     GTK_SIGNAL_FUNC (quit), NULL);
+  g_signal_connect (window, "destroy",
+                    G_CALLBACK (quit), NULL);
 
   /* Create the drawing area */
 
   drawing_area = gtk_drawing_area_new ();
-  gtk_drawing_area_size (GTK_DRAWING_AREA (drawing_area), 200, 200);
+  gtk_widget_set_size_request (GTK_WIDGET (drawing_area), 200, 200);
   gtk_box_pack_start (GTK_BOX (vbox), drawing_area, TRUE, TRUE, 0);
 
   gtk_widget_show (drawing_area);
 
   /* Signals used to handle backing pixmap */
 
-  gtk_signal_connect (GTK_OBJECT (drawing_area), "expose_event",
-                     (GtkSignalFunc) expose_event, NULL);
-  gtk_signal_connect (GTK_OBJECT(drawing_area),"configure_event",
-                     (GtkSignalFunc) configure_event, NULL);
+  g_signal_connect (drawing_area, "expose-event",
+                   G_CALLBACK (expose_event), NULL);
+  g_signal_connect (drawing_area,"configure-event",
+                   G_CALLBACK (configure_event), NULL);
 
   /* Event signals */
 
-  gtk_signal_connect (GTK_OBJECT (drawing_area), "motion_notify_event",
-                     (GtkSignalFunc) motion_notify_event, NULL);
-  gtk_signal_connect (GTK_OBJECT (drawing_area), "button_press_event",
-                     (GtkSignalFunc) button_press_event, NULL);
+  g_signal_connect (drawing_area, "motion-notify-event",
+                   G_CALLBACK (motion_notify_event), NULL);
+  g_signal_connect (drawing_area, "button-press-event",
+                   G_CALLBACK (button_press_event), NULL);
 
   gtk_widget_set_events (drawing_area, GDK_EXPOSURE_MASK
                         | GDK_LEAVE_NOTIFY_MASK
@@ -163,9 +168,9 @@ main (int argc, char *argv[])
   button = gtk_button_new_with_label ("Quit");
   gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
 
-  gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
-                            GTK_SIGNAL_FUNC (gtk_widget_destroy),
-                            GTK_OBJECT (window));
+  g_signal_connect_swapped (button, "clicked",
+                           G_CALLBACK (gtk_widget_destroy),
+                           window);
   gtk_widget_show (button);
 
   gtk_widget_show (window);