gimp r25249 - in trunk: . app/widgets
- From: mitch svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r25249 - in trunk: . app/widgets
- Date: Wed, 26 Mar 2008 20:27:44 +0000 (GMT)
Author: mitch
Date: Wed Mar 26 20:27:44 2008
New Revision: 25249
URL: http://svn.gnome.org/viewvc/gimp?rev=25249&view=rev
Log:
2008-03-26 Michael Natterer <mitch gimp org>
* app/widgets/gimptoolbox.[ch]: big wilber is watching you from
the toolbox! Removed forgotten menubar cruft.
Modified:
trunk/ChangeLog
trunk/app/widgets/gimptoolbox.c
trunk/app/widgets/gimptoolbox.h
Modified: trunk/app/widgets/gimptoolbox.c
==============================================================================
--- trunk/app/widgets/gimptoolbox.c (original)
+++ trunk/app/widgets/gimptoolbox.c Wed Mar 26 20:27:44 2008
@@ -37,6 +37,7 @@
#include "file/file-open.h"
#include "file/file-utils.h"
+#include "gimpcairo-wilber.h"
#include "gimpdevices.h"
#include "gimpdialogfactory.h"
#include "gimpdockseparator.h"
@@ -74,6 +75,9 @@
GtkAllocation *allocation);
static void gimp_toolbox_style_set (GtkWidget *widget,
GtkStyle *previous_style);
+static gboolean gimp_toolbox_expose_event (GtkWidget *widget,
+ GdkEventExpose *event);
+
static void gimp_toolbox_book_added (GimpDock *dock,
GimpDockbook *dockbook);
static void gimp_toolbox_book_removed (GimpDock *dock,
@@ -139,6 +143,7 @@
widget_class->delete_event = gimp_toolbox_delete_event;
widget_class->size_allocate = gimp_toolbox_size_allocate;
widget_class->style_set = gimp_toolbox_style_set;
+ widget_class->expose_event = gimp_toolbox_expose_event;
dock_class->book_added = gimp_toolbox_book_added;
dock_class->book_removed = gimp_toolbox_book_removed;
@@ -199,6 +204,11 @@
gtk_box_reorder_child (GTK_BOX (main_vbox), vbox, 0);
gtk_widget_show (vbox);
+ toolbox->header = gtk_frame_new (NULL);
+ gtk_frame_set_shadow_type (GTK_FRAME (toolbox->header), GTK_SHADOW_NONE);
+ gtk_box_pack_start (GTK_BOX (vbox), toolbox->header, FALSE, FALSE, 0);
+ gtk_widget_show (toolbox->header);
+
toolbox->tool_wbox = gtk_hwrap_box_new (FALSE);
gtk_wrap_box_set_justify (GTK_WRAP_BOX (toolbox->tool_wbox), GTK_JUSTIFY_TOP);
gtk_wrap_box_set_line_justify (GTK_WRAP_BOX (toolbox->tool_wbox),
@@ -461,6 +471,56 @@
gimp_toolbox_set_geometry (GIMP_TOOLBOX (widget));
}
+static gboolean
+gimp_toolbox_expose_event (GtkWidget *widget,
+ GdkEventExpose *event)
+{
+ GimpToolbox *toolbox = GIMP_TOOLBOX (widget);
+ GdkRectangle clip_rect;
+
+ GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event);
+
+ if (gdk_rectangle_intersect (&event->area,
+ &toolbox->header->allocation,
+ &clip_rect))
+ {
+ cairo_t *cr;
+ gint header_height;
+ gint header_width;
+ gdouble wilber_width;
+ gdouble wilber_height;
+ gdouble factor;
+
+ cr = gdk_cairo_create (widget->window);
+ gdk_cairo_rectangle (cr, &clip_rect);
+ cairo_clip (cr);
+
+ header_width = toolbox->header->allocation.width;
+ header_height = toolbox->header->allocation.height;
+
+ gimp_cairo_wilber_get_size (cr, &wilber_width, &wilber_height);
+
+ factor = header_width / wilber_width * 0.9;
+
+ cairo_scale (cr, factor, factor);
+
+ gimp_cairo_wilber (cr,
+ (header_width / factor - wilber_width) / 2.0,
+ (header_height / factor - wilber_height) / 2.0);
+
+ cairo_set_source_rgba (cr,
+ widget->style->fg[widget->state].red / 65535.0,
+ widget->style->fg[widget->state].green / 65535.0,
+ widget->style->fg[widget->state].blue / 65535.0,
+ 0.10);
+ cairo_fill (cr);
+
+ cairo_destroy (cr);
+ }
+
+ return FALSE;
+}
+
static void
gimp_toolbox_book_added (GimpDock *dock,
GimpDockbook *dockbook)
@@ -498,19 +558,16 @@
if (tool_button)
{
- GtkWidget *main_vbox;
- GtkRequisition menubar_requisition = { 0, 0 };
+ GtkWidget *main_vbox = GIMP_DOCK (toolbox)->main_vbox;
GtkRequisition button_requisition;
gint border_width;
GdkGeometry geometry;
- main_vbox = GIMP_DOCK (toolbox)->main_vbox;
-
- if (toolbox->menu_bar)
- gtk_widget_size_request (toolbox->menu_bar, &menubar_requisition);
-
gtk_widget_size_request (tool_button, &button_requisition);
+ gtk_widget_set_size_request (toolbox->header,
+ -1, button_requisition.height);
+
border_width = gtk_container_get_border_width (GTK_CONTAINER (main_vbox));
geometry.min_width = (2 * border_width +
Modified: trunk/app/widgets/gimptoolbox.h
==============================================================================
--- trunk/app/widgets/gimptoolbox.h (original)
+++ trunk/app/widgets/gimptoolbox.h Wed Mar 26 20:27:44 2008
@@ -37,8 +37,10 @@
{
GimpImageDock parent_instance;
- GtkWidget *menu_bar;
+ GtkWidget *header;
+
GtkWidget *tool_wbox;
+
GtkWidget *area_wbox;
GtkWidget *color_area;
GtkWidget *foo_area;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]