]> Pileus Git - ~andy/gtk/commitdiff
Add shadow_type and gtk_handle_box_set_shadow_type function (plus a
authorAndrew T. Veliath <andrewtv@usa.net>
Sat, 21 Nov 1998 10:08:41 +0000 (10:08 +0000)
committerAndrew T. Veliath <andrewtv@src.gnome.org>
Sat, 21 Nov 1998 10:08:41 +0000 (10:08 +0000)
1998-11-21  Andrew T. Veliath  <andrewtv@usa.net>

* gtk/gtkhandlebox.[ch]: Add shadow_type and
gtk_handle_box_set_shadow_type function (plus a
GtkHandleBox::shadow arg) to allow configuration of shadow in the
bin window.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkhandlebox.c
gtk/gtkhandlebox.h

index 3166b039fa3dbb403f99e6157c852e51d693b03c..94518a968b5c30b2edf84b84fbce8f308263479e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+1998-11-21  Andrew T. Veliath  <andrewtv@usa.net>
+
+       * gtk/gtkhandlebox.[ch]: Add shadow_type and
+       gtk_handle_box_set_shadow_type function (plus a
+       GtkHandleBox::shadow arg) to allow configuration of shadow in the
+       bin window.
+
 Thu Nov 19 23:47:38 CST 1998 Shawn T. Amundson <amundson@gtk.org>
 
        * gtk/gtkcalendar.c: Fix for marking days from 
index 3166b039fa3dbb403f99e6157c852e51d693b03c..94518a968b5c30b2edf84b84fbce8f308263479e 100644 (file)
@@ -1,3 +1,10 @@
+1998-11-21  Andrew T. Veliath  <andrewtv@usa.net>
+
+       * gtk/gtkhandlebox.[ch]: Add shadow_type and
+       gtk_handle_box_set_shadow_type function (plus a
+       GtkHandleBox::shadow arg) to allow configuration of shadow in the
+       bin window.
+
 Thu Nov 19 23:47:38 CST 1998 Shawn T. Amundson <amundson@gtk.org>
 
        * gtk/gtkcalendar.c: Fix for marking days from 
index 3166b039fa3dbb403f99e6157c852e51d693b03c..94518a968b5c30b2edf84b84fbce8f308263479e 100644 (file)
@@ -1,3 +1,10 @@
+1998-11-21  Andrew T. Veliath  <andrewtv@usa.net>
+
+       * gtk/gtkhandlebox.[ch]: Add shadow_type and
+       gtk_handle_box_set_shadow_type function (plus a
+       GtkHandleBox::shadow arg) to allow configuration of shadow in the
+       bin window.
+
 Thu Nov 19 23:47:38 CST 1998 Shawn T. Amundson <amundson@gtk.org>
 
        * gtk/gtkcalendar.c: Fix for marking days from 
index 3166b039fa3dbb403f99e6157c852e51d693b03c..94518a968b5c30b2edf84b84fbce8f308263479e 100644 (file)
@@ -1,3 +1,10 @@
+1998-11-21  Andrew T. Veliath  <andrewtv@usa.net>
+
+       * gtk/gtkhandlebox.[ch]: Add shadow_type and
+       gtk_handle_box_set_shadow_type function (plus a
+       GtkHandleBox::shadow arg) to allow configuration of shadow in the
+       bin window.
+
 Thu Nov 19 23:47:38 CST 1998 Shawn T. Amundson <amundson@gtk.org>
 
        * gtk/gtkcalendar.c: Fix for marking days from 
index 3166b039fa3dbb403f99e6157c852e51d693b03c..94518a968b5c30b2edf84b84fbce8f308263479e 100644 (file)
@@ -1,3 +1,10 @@
+1998-11-21  Andrew T. Veliath  <andrewtv@usa.net>
+
+       * gtk/gtkhandlebox.[ch]: Add shadow_type and
+       gtk_handle_box_set_shadow_type function (plus a
+       GtkHandleBox::shadow arg) to allow configuration of shadow in the
+       bin window.
+
 Thu Nov 19 23:47:38 CST 1998 Shawn T. Amundson <amundson@gtk.org>
 
        * gtk/gtkcalendar.c: Fix for marking days from 
index 3166b039fa3dbb403f99e6157c852e51d693b03c..94518a968b5c30b2edf84b84fbce8f308263479e 100644 (file)
@@ -1,3 +1,10 @@
+1998-11-21  Andrew T. Veliath  <andrewtv@usa.net>
+
+       * gtk/gtkhandlebox.[ch]: Add shadow_type and
+       gtk_handle_box_set_shadow_type function (plus a
+       GtkHandleBox::shadow arg) to allow configuration of shadow in the
+       bin window.
+
 Thu Nov 19 23:47:38 CST 1998 Shawn T. Amundson <amundson@gtk.org>
 
        * gtk/gtkcalendar.c: Fix for marking days from 
index 3166b039fa3dbb403f99e6157c852e51d693b03c..94518a968b5c30b2edf84b84fbce8f308263479e 100644 (file)
@@ -1,3 +1,10 @@
+1998-11-21  Andrew T. Veliath  <andrewtv@usa.net>
+
+       * gtk/gtkhandlebox.[ch]: Add shadow_type and
+       gtk_handle_box_set_shadow_type function (plus a
+       GtkHandleBox::shadow arg) to allow configuration of shadow in the
+       bin window.
+
 Thu Nov 19 23:47:38 CST 1998 Shawn T. Amundson <amundson@gtk.org>
 
        * gtk/gtkcalendar.c: Fix for marking days from 
index da6d8cea7274c1995e53bd0432fbd9c4a3b3f677..382fb7feaac83ac027d093ed80792affac63a84f 100644 (file)
 #include "gtksignal.h"
 #include "gtkwindow.h"
 
+enum {
+  ARG_0,
+  ARG_SHADOW
+};
 
 #define DRAG_HANDLE_SIZE 10
 #define CHILDLESS_SIZE 25
@@ -40,6 +44,12 @@ enum
 
 static void gtk_handle_box_class_init     (GtkHandleBoxClass *klass);
 static void gtk_handle_box_init           (GtkHandleBox      *handle_box);
+static void gtk_handle_box_set_arg        (GtkObject         *object,
+                                          GtkArg            *arg,
+                                          guint              arg_id);
+static void gtk_handle_box_get_arg       (GtkObject          *object,
+                                         GtkArg             *arg,
+                                         guint               arg_id);
 static void gtk_handle_box_destroy        (GtkObject         *object);
 static void gtk_handle_box_map            (GtkWidget         *widget);
 static void gtk_handle_box_unmap          (GtkWidget         *widget);
@@ -113,6 +123,11 @@ gtk_handle_box_class_init (GtkHandleBoxClass *class)
 
   parent_class = gtk_type_class (gtk_bin_get_type ());
 
+  gtk_object_add_arg_type ("GtkHandleBox::shadow", GTK_TYPE_SHADOW_TYPE, GTK_ARG_READWRITE, ARG_SHADOW);
+
+  object_class->set_arg = gtk_handle_box_set_arg;
+  object_class->get_arg = gtk_handle_box_get_arg;
+  
   handle_box_signals[SIGNAL_CHILD_ATTACHED] =
     gtk_signal_new ("child_attached",
                    GTK_RUN_FIRST,
@@ -162,6 +177,7 @@ gtk_handle_box_init (GtkHandleBox *handle_box)
 
   handle_box->bin_window = NULL;
   handle_box->float_window = NULL;
+  handle_box->shadow_type = GTK_SHADOW_OUT;
   handle_box->handle_position = GTK_POS_LEFT;
   handle_box->float_window_mapped = FALSE;
   handle_box->child_detached = FALSE;
@@ -171,6 +187,45 @@ gtk_handle_box_init (GtkHandleBox *handle_box)
   handle_box->dragoff_y = 0;
 }
 
+static void
+gtk_handle_box_set_arg (GtkObject      *object,
+                       GtkArg         *arg,
+                       guint           arg_id)
+{
+  GtkHandleBox *handle_box;
+
+  handle_box = GTK_HANDLE_BOX (object);
+
+  switch (arg_id)
+    {
+    case ARG_SHADOW:
+      gtk_handle_box_set_shadow_type (handle_box, GTK_VALUE_ENUM (*arg));
+      break;
+    default:
+      break;
+    }
+}
+
+static void
+gtk_handle_box_get_arg (GtkObject      *object,
+                       GtkArg         *arg,
+                       guint           arg_id)
+{
+  GtkHandleBox *handle_box;
+
+  handle_box = GTK_HANDLE_BOX (object);
+
+  switch (arg_id)
+    {
+    case ARG_SHADOW:
+      GTK_VALUE_ENUM (*arg) = handle_box->shadow_type;
+      break;
+    default:
+      arg->type = GTK_TYPE_INVALID;
+      break;
+    }
+}
 GtkWidget*
 gtk_handle_box_new (void)
 {
@@ -606,6 +661,25 @@ draw_textured_frame (GtkWidget *widget, GdkWindow *window, GdkRectangle *rect, G
                    GTK_ORIENTATION_VERTICAL);
 }
 
+void
+gtk_handle_box_set_shadow_type (GtkHandleBox  *handle_box,
+                               GtkShadowType  type)
+{
+  g_return_if_fail (handle_box != NULL);
+  g_return_if_fail (GTK_IS_HANDLE_BOX (handle_box));
+
+  if ((GtkShadowType) handle_box->shadow_type != type)
+    {
+      handle_box->shadow_type = type;
+
+      if (GTK_WIDGET_DRAWABLE (handle_box))
+        {
+          gtk_widget_queue_clear (GTK_WIDGET (handle_box));
+        }
+      gtk_widget_queue_resize (GTK_WIDGET (handle_box));
+    }
+}
+
 static void
 gtk_handle_box_paint (GtkWidget      *widget,
                      GdkEventExpose *event,
@@ -644,14 +718,14 @@ gtk_handle_box_paint (GtkWidget      *widget,
    gtk_paint_box(widget->style,
                 hb->bin_window,
                 GTK_WIDGET_STATE (widget),
-                GTK_SHADOW_OUT,
+                hb->shadow_type,
                 area, widget, "handlebox_bin",
                 0, 0, -1, -1);
   else
    gtk_paint_box(widget->style,
                 hb->bin_window,
                 GTK_WIDGET_STATE (widget),
-                GTK_SHADOW_OUT,
+                hb->shadow_type,
                 &event->area, widget, "handlebox_bin",
                 0, 0, -1, -1);
 
index 4aa0d8ea60d605dfdbb445e4bc85d57ff0352cf8..26bc649d7221e5dfc4092b56bc5c7193cb79267a 100644 (file)
@@ -50,6 +50,7 @@ struct _GtkHandleBox
 
   GdkWindow      *bin_window;  /* parent window for children */
   GdkWindow      *float_window;
+  GtkShadowType   shadow_type;
   guint                  handle_position : 2;
   guint                  float_window_mapped : 1;
   guint                  child_detached : 1;
@@ -72,6 +73,8 @@ struct _GtkHandleBoxClass
 
 guint          gtk_handle_box_get_type        (void);
 GtkWidget*     gtk_handle_box_new             (void);
+void           gtk_handle_box_set_shadow_type (GtkHandleBox    *handle_box,
+                                               GtkShadowType    type);
 
 
 #ifdef __cplusplus