]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkvseparator.c
Add an outline around menu popups
[~andy/gtk] / gtk / gtkvseparator.c
index c4a7f1e2d18f0887bbf4f9a4ad998d79ab979183..f2dcf81b70c49c943fa76df2946391d580a2eac7 100644 (file)
  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  * file for a list of people on the GTK+ Team.  See the ChangeLog
  * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  */
 
-#include "gtkvseparator.h"
-
-
-static void gtk_vseparator_class_init (GtkVSeparatorClass *klass);
-static void gtk_vseparator_init       (GtkVSeparator      *vseparator);
-static gint gtk_vseparator_expose     (GtkWidget          *widget,
-                                      GdkEventExpose     *event);
+#include "config.h"
 
+#include "gtkorientable.h"
+#include "gtkvseparator.h"
 
-GtkType
-gtk_vseparator_get_type (void)
-{
-  static GtkType vseparator_type = 0;
-
-  if (!vseparator_type)
-    {
-      static const GtkTypeInfo vseparator_info =
-      {
-       "GtkVSeparator",
-       sizeof (GtkVSeparator),
-       sizeof (GtkVSeparatorClass),
-       (GtkClassInitFunc) gtk_vseparator_class_init,
-       (GtkObjectInitFunc) gtk_vseparator_init,
-       /* reserved_1 */ NULL,
-        /* reserved_2 */ NULL,
-        (GtkClassInitFunc) NULL,
-      };
 
-      vseparator_type = gtk_type_unique (GTK_TYPE_SEPARATOR, &vseparator_info);
-    }
+/**
+ * SECTION:gtkvseparator
+ * @Short_description: A vertical separator
+ * @Title: GtkVSeparator
+ * @See_also: #GtkHSeparator
+ *
+ * The #GtkVSeparator widget is a vertical separator, used to group the
+ * widgets within a window. It displays a vertical line with a shadow to
+ * make it appear sunken into the interface.
+ */
 
-  return vseparator_type;
-}
+G_DEFINE_TYPE (GtkVSeparator, gtk_vseparator, GTK_TYPE_SEPARATOR)
 
 static void
 gtk_vseparator_class_init (GtkVSeparatorClass *klass)
 {
-  GtkWidgetClass *widget_class;
-
-  widget_class = (GtkWidgetClass*) klass;
-
-  widget_class->expose_event = gtk_vseparator_expose;
 }
 
 static void
 gtk_vseparator_init (GtkVSeparator *vseparator)
 {
-  GTK_WIDGET (vseparator)->requisition.width = GTK_WIDGET (vseparator)->style->xthickness;
-  GTK_WIDGET (vseparator)->requisition.height = 1;
+  gtk_orientable_set_orientation (GTK_ORIENTABLE (vseparator),
+                                  GTK_ORIENTATION_VERTICAL);
 }
 
-GtkWidget*
+/**
+ * gtk_vseparator_new:
+ *
+ * Creates a new #GtkVSeparator.
+ *
+ * Returns: a new #GtkVSeparator.
+ */
+GtkWidget *
 gtk_vseparator_new (void)
 {
-  return GTK_WIDGET (gtk_type_new (GTK_TYPE_VSEPARATOR));
-}
-
-
-static gint
-gtk_vseparator_expose (GtkWidget      *widget,
-                      GdkEventExpose *event)
-{
-  g_return_val_if_fail (GTK_IS_VSEPARATOR (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-
-  if (GTK_WIDGET_DRAWABLE (widget))
-    gtk_paint_vline (widget->style, widget->window, GTK_STATE_NORMAL,
-                    &event->area, widget, "vseparator",
-                    widget->allocation.y,
-                    widget->allocation.y + widget->allocation.height,
-                    widget->allocation.x + (widget->allocation.width -
-                                            widget->style->xthickness) / 2);
-
-  return FALSE;
+  return g_object_new (GTK_TYPE_VSEPARATOR, NULL);
 }