diff options
author | Soeren Sandmann <sandmann@daimi.au.dk> | 2003-07-07 14:35:31 +0000 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@src.gnome.org> | 2003-07-07 14:35:31 +0000 |
commit | 71ff8228032a4d99bde376b9af0ca2ce9352f9e1 (patch) | |
tree | 09f573b939bec85ff679aec78094f16255069d8c /gtk/gtkseparatortoolitem.c | |
parent | c084f54145e2e77ff69ac65b297b1720daee33e0 (diff) | |
download | gtk+-71ff8228032a4d99bde376b9af0ca2ce9352f9e1.tar.gz |
remove accidentally committed debugging spew
Mon Jul 7 16:50:32 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkcellrenderertext.c
(gtk_cell_renderer_text_class_init): remove accidentally committed
debugging spew
* gtk/gtktoolbar.c
(gtk_toolbar_paint_space_line): remove this function
(gtk_toolbar_expose): always propagate expose, even if the item is
a separator item
* gtk/gtkseparatortoolitem.c
(gtk_separator_tool_item_expose): moved here from gtktoolbar.c
(get_space_size): new function.
(get_space_style): new function
Diffstat (limited to 'gtk/gtkseparatortoolitem.c')
-rw-r--r-- | gtk/gtkseparatortoolitem.c | 99 |
1 files changed, 96 insertions, 3 deletions
diff --git a/gtk/gtkseparatortoolitem.c b/gtk/gtkseparatortoolitem.c index 52051d6dd5..b7b1a60b1f 100644 --- a/gtk/gtkseparatortoolitem.c +++ b/gtk/gtkseparatortoolitem.c @@ -19,14 +19,28 @@ * Boston, MA 02111-1307, USA. */ +#undef GTK_DISABLE_DEPRECATED + #include "gtkseparatormenuitem.h" #include "gtkseparatortoolitem.h" #include "gtkintl.h" +#include "gtktoolbar.h" + +/* note: keep in sync with DEFAULT_SPACE_SIZE and DEFAULT_SPACE_STYLE in gtktoolbar.c */ +#define DEFAULT_SPACE_SIZE 5 +#define DEFAULT_SPACE_STYLE GTK_TOOLBAR_SPACE_LINE -static void gtk_separator_tool_item_class_init (GtkSeparatorToolItemClass*class); +#define SPACE_LINE_DIVISION 10 +#define SPACE_LINE_START 3 +#define SPACE_LINE_END 7 -static void gtk_separator_tool_item_add (GtkContainer *container, - GtkWidget *child); +static void gtk_separator_tool_item_class_init (GtkSeparatorToolItemClass *class); +static gboolean gtk_separator_tool_item_expose (GtkWidget *widget, + GdkEventExpose *event); +static void gtk_separator_tool_item_add (GtkContainer *container, + GtkWidget *child); +static GtkToolbarSpaceStyle get_space_style (GtkToolItem *tool_item); +static gint get_space_size (GtkToolItem *tool_item); static GObjectClass *parent_class = NULL; @@ -57,17 +71,52 @@ gtk_separator_tool_item_get_type (void) return type; } +static GtkToolbarSpaceStyle +get_space_style (GtkToolItem *tool_item) +{ + GtkToolbarSpaceStyle space_style = DEFAULT_SPACE_STYLE; + GtkWidget *parent = GTK_WIDGET (tool_item)->parent; + + if (GTK_IS_TOOLBAR (parent)) + { + gtk_widget_style_get (parent, + "space_style", &space_style, + NULL); + } + + return space_style; +} + +static gint +get_space_size (GtkToolItem *tool_item) +{ + gint space_size = DEFAULT_SPACE_SIZE; + GtkWidget *parent = GTK_WIDGET (tool_item)->parent; + + if (GTK_IS_TOOLBAR (parent)) + { + gtk_widget_style_get (parent, + "space_size", &space_size, + NULL); + } + + return space_size; +} static void gtk_separator_tool_item_class_init (GtkSeparatorToolItemClass *class) { GtkContainerClass *container_class; GtkToolItemClass *toolitem_class; + GtkWidgetClass *widget_class; parent_class = g_type_class_peek_parent (class); container_class = (GtkContainerClass *)class; toolitem_class = (GtkToolItemClass *)class; + widget_class = (GtkWidgetClass *)class; + widget_class->expose_event = gtk_separator_tool_item_expose; + container_class->add = gtk_separator_tool_item_add; } @@ -78,6 +127,50 @@ gtk_separator_tool_item_add (GtkContainer *container, g_warning("attempt to add a child to an GtkSeparatorToolItem"); } +static gboolean +gtk_separator_tool_item_expose (GtkWidget *widget, + GdkEventExpose *event) +{ + GtkToolItem *tool_item = GTK_TOOL_ITEM (widget); + gint space_size; + GtkAllocation *allocation; + GtkOrientation orientation; + GdkRectangle *area; + + if (get_space_style (tool_item) == GTK_TOOLBAR_SPACE_LINE) + { + space_size = get_space_size (tool_item); + allocation = &(widget->allocation); + orientation = gtk_tool_item_get_orientation (tool_item); + area = &(event->area); + + if (orientation == GTK_ORIENTATION_HORIZONTAL) + { + gtk_paint_vline (widget->style, widget->window, + GTK_WIDGET_STATE (widget), area, widget, + "separator_tool_item", + allocation->y + allocation->height * + SPACE_LINE_START / SPACE_LINE_DIVISION, + allocation->y + allocation->height * + SPACE_LINE_END / SPACE_LINE_DIVISION, + allocation->x + (space_size - widget->style->xthickness) / 2); + } + else if (orientation == GTK_ORIENTATION_VERTICAL) + { + gtk_paint_hline (widget->style, widget->window, + GTK_WIDGET_STATE (widget), area, widget, + "separator_tool_item", + allocation->x + allocation->width * + SPACE_LINE_START / SPACE_LINE_DIVISION, + allocation->x + allocation->width * + SPACE_LINE_END / SPACE_LINE_DIVISION, + allocation->y + (space_size - widget->style->ythickness) / 2); + } + } + + return TRUE; +} + GtkToolItem * gtk_separator_tool_item_new (void) { |