From b2f192faabe412adce79534e22efe9fb69ee40e2 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 21 Jul 2006 10:10:31 +0000 Subject: Rename /openembedded/ -> /meta/ git-svn-id: https://svn.o-hand.com/repos/poky/trunk@530 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- .../gtk+/gtk+-2.6.4-1.osso7/gtkcheckbutton.c.diff | 520 --------------------- 1 file changed, 520 deletions(-) delete mode 100644 openembedded/packages/gtk+/gtk+-2.6.4-1.osso7/gtkcheckbutton.c.diff (limited to 'openembedded/packages/gtk+/gtk+-2.6.4-1.osso7/gtkcheckbutton.c.diff') diff --git a/openembedded/packages/gtk+/gtk+-2.6.4-1.osso7/gtkcheckbutton.c.diff b/openembedded/packages/gtk+/gtk+-2.6.4-1.osso7/gtkcheckbutton.c.diff deleted file mode 100644 index c6922ddc1..000000000 --- a/openembedded/packages/gtk+/gtk+-2.6.4-1.osso7/gtkcheckbutton.c.diff +++ /dev/null @@ -1,520 +0,0 @@ ---- gtk+-2.6.4/gtk/gtkcheckbutton.c 2004-08-09 19:59:51.000000000 +0300 -+++ gtk+-2.6.4/gtk/gtkcheckbutton.c 2005-04-06 16:19:36.317017336 +0300 -@@ -31,27 +31,44 @@ - #include "gtklabel.h" - - --#define INDICATOR_SIZE 13 -+#define INDICATOR_SIZE 24 - #define INDICATOR_SPACING 2 - -+/* maJiK numbers for indicator */ -+#define INDICATOR_SIDE_PADDING 5 -+#define FOCUS_TOP_PADDING 7 -+#define FOCUS_DOWN_PADDING 1 -+ -+/* spacing to take account of the 1 pixel -+ transparency of the widgetfocus.png -+*/ -+#define HILDON_SPACING 1 -+ -+#define TOGGLE_ON_CLICK "toggle-on-click" - --static void gtk_check_button_class_init (GtkCheckButtonClass *klass); --static void gtk_check_button_init (GtkCheckButton *check_button); --static void gtk_check_button_size_request (GtkWidget *widget, -- GtkRequisition *requisition); --static void gtk_check_button_size_allocate (GtkWidget *widget, -- GtkAllocation *allocation); --static gint gtk_check_button_expose (GtkWidget *widget, -- GdkEventExpose *event); --static void gtk_check_button_paint (GtkWidget *widget, -- GdkRectangle *area); --static void gtk_check_button_draw_indicator (GtkCheckButton *check_button, -- GdkRectangle *area); --static void gtk_real_check_button_draw_indicator (GtkCheckButton *check_button, -- GdkRectangle *area); -+static void gtk_check_button_class_init (GtkCheckButtonClass *klass); -+static void gtk_check_button_init (GtkCheckButton *check_button); -+static void gtk_check_button_size_request (GtkWidget *widget, -+ GtkRequisition *requisition); -+static void gtk_check_button_size_allocate (GtkWidget *widget, -+ GtkAllocation *allocation); -+static gint gtk_check_button_expose (GtkWidget *widget, -+ GdkEventExpose *event); -+static void gtk_check_button_paint (GtkWidget *widget, -+ GdkRectangle *area); -+static void gtk_check_button_draw_indicator (GtkCheckButton *check_button, -+ GdkRectangle *area); -+static void gtk_real_check_button_draw_indicator -+ (GtkCheckButton *check_button, -+ GdkRectangle *area); - --static GtkToggleButtonClass *parent_class = NULL; -+static void gtk_check_button_calc_indicator_size( GtkCheckButton *button, -+ GdkRectangle *rect ); -+ -+static void gtk_check_button_clicked (GtkButton *button); -+static void gtk_check_button_update_state (GtkButton *button); - -+static GtkToggleButtonClass *parent_class = NULL; - - GType - gtk_check_button_get_type (void) -@@ -85,32 +102,36 @@ - gtk_check_button_class_init (GtkCheckButtonClass *class) - { - GtkWidgetClass *widget_class; -- -+ GtkButtonClass *button_class; -+ - widget_class = (GtkWidgetClass*) class; -+ button_class = (GtkButtonClass*) class; - parent_class = g_type_class_peek_parent (class); - - widget_class->size_request = gtk_check_button_size_request; - widget_class->size_allocate = gtk_check_button_size_allocate; - widget_class->expose_event = gtk_check_button_expose; - -+ button_class->clicked = gtk_check_button_clicked; -+ - class->draw_indicator = gtk_real_check_button_draw_indicator; - - gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("indicator_size", -- P_("Indicator Size"), -- P_("Size of check or radio indicator"), -- 0, -- G_MAXINT, -- INDICATOR_SIZE, -- G_PARAM_READABLE)); -+ P_("Indicator Size"), -+ P_("Size of check or radio indicator"), -+ 0, -+ G_MAXINT, -+ INDICATOR_SIZE, -+ G_PARAM_READABLE)); - gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("indicator_spacing", -- P_("Indicator Spacing"), -- P_("Spacing around check or radio indicator"), -- 0, -- G_MAXINT, -- INDICATOR_SPACING, -- G_PARAM_READABLE)); -+ P_("Indicator Spacing"), -+ P_("Spacing around check or radio indicator"), -+ 0, -+ G_MAXINT, -+ INDICATOR_SPACING, -+ G_PARAM_READABLE)); - } - - static void -@@ -148,7 +169,8 @@ - GtkWidget* - gtk_check_button_new_with_mnemonic (const gchar *label) - { -- return g_object_new (GTK_TYPE_CHECK_BUTTON, "label", label, "use_underline", TRUE, NULL); -+ return g_object_new (GTK_TYPE_CHECK_BUTTON, "label", label, -+ "use_underline", TRUE, NULL); - } - - -@@ -163,39 +185,70 @@ - - if (GTK_WIDGET_DRAWABLE (widget)) - { -- gint border_width; -- gint interior_focus; -- gint focus_width; -- gint focus_pad; -- -+ gint border_width = 0; -+ gint interior_focus = 0; -+ gint focus_width = 0; -+ gint focus_pad = 0; -+ gint indicator_size = 0; -+ gint indicator_spacing = 0; -+ - gtk_widget_style_get (widget, - "interior-focus", &interior_focus, - "focus-line-width", &focus_width, - "focus-padding", &focus_pad, -+ "indicator-size", &indicator_size, -+ "indicator-spacing", &indicator_spacing, - NULL); -- -- gtk_check_button_draw_indicator (check_button, area); - - border_width = GTK_CONTAINER (widget)->border_width; -+ -+ /* Hildon: change the focus so that it draws around the entire -+ * widget - including both the indicator *and* the label -+ */ - if (GTK_WIDGET_HAS_FOCUS (widget)) - { - GtkWidget *child = GTK_BIN (widget)->child; - -+ int w = indicator_size + 2 * indicator_spacing + -+ 2 * (focus_width + focus_pad); -+ int h = indicator_size + 2 * indicator_spacing + -+ 2 * (focus_width + focus_pad) + 2 * HILDON_SPACING -+ - FOCUS_TOP_PADDING; -+ int x = widget->allocation.x; -+ int y = widget->allocation.y + (widget->allocation.height - h)/2 -+ + FOCUS_DOWN_PADDING; -+ -+ if (gtk_widget_get_direction(widget) == GTK_TEXT_DIR_RTL) -+ x = widget->allocation.x + widget->allocation.width - -+ (2 * HILDON_SPACING) - (indicator_size + 2) - -+ (indicator_spacing + 2); -+ - if (interior_focus && child && GTK_WIDGET_VISIBLE (child)) -- gtk_paint_focus (widget->style, widget->window, GTK_WIDGET_STATE (widget), -- NULL, widget, "checkbutton", -- child->allocation.x - focus_width - focus_pad, -- child->allocation.y - focus_width - focus_pad, -- child->allocation.width + 2 * (focus_width + focus_pad), -- child->allocation.height + 2 * (focus_width + focus_pad)); -+ { -+ if (gtk_widget_get_direction(widget) == GTK_TEXT_DIR_RTL) -+ { -+ /* Move the "x" to the left, and enlarge the width, -+ both accounting for the child -+ */ -+ x += - child->allocation.width - HILDON_SPACING - -+ (widget->style->xthickness); -+ w += child->allocation.width + HILDON_SPACING + -+ (widget->style->xthickness); -+ } else { -+ w = child->allocation.x + child->allocation.width + -+ 2 * widget->style->xthickness - x; -+ } -+ -+ gtk_paint_focus (widget->style, widget->window, -+ GTK_WIDGET_STATE (widget), -+ NULL, widget, "checkbutton", x, y, w, h); -+ } - else -- gtk_paint_focus (widget->style, widget->window, GTK_WIDGET_STATE (widget), -- NULL, widget, "checkbutton", -- border_width + widget->allocation.x, -- border_width + widget->allocation.y, -- widget->allocation.width - 2 * border_width, -- widget->allocation.height - 2 * border_width); -+ gtk_paint_focus (widget->style, widget->window, -+ GTK_WIDGET_STATE (widget), -+ NULL, widget, "checkbutton", x, y, w, h); - } -+ gtk_check_button_draw_indicator (check_button, area); - } - } - -@@ -205,10 +258,10 @@ - gint *indicator_spacing) - { - GtkWidget *widget = GTK_WIDGET (check_button); -- -+ - if (indicator_size) - gtk_widget_style_get (widget, "indicator_size", indicator_size, NULL); -- -+ - if (indicator_spacing) - gtk_widget_style_get (widget, "indicator_spacing", indicator_spacing, NULL); - } -@@ -233,7 +286,7 @@ - "focus-line-width", &focus_width, - "focus-padding", &focus_pad, - NULL); -- -+ - requisition->width = border_width * 2; - requisition->height = border_width * 2; - -@@ -246,15 +299,19 @@ - GtkRequisition child_requisition; - - gtk_widget_size_request (child, &child_requisition); -- -- requisition->width += child_requisition.width + indicator_spacing; -+ -+ requisition->width += child_requisition.width + -+ 2 * widget->style->xthickness; - requisition->height += child_requisition.height; -+ requisition->width += 2 * widget->style->xthickness; - } - -- requisition->width += (indicator_size + indicator_spacing * 2 + 2 * (focus_width + focus_pad)); -+ requisition->width += (indicator_size + indicator_spacing * 2 + -+ 2 * (focus_width + focus_pad)); - - temp = indicator_size + indicator_spacing * 2; -- requisition->height = MAX (requisition->height, temp) + 2 * (focus_width + focus_pad); -+ requisition->height = MAX (requisition->height, temp) + -+ 2 * (focus_width + focus_pad); - } - else - (* GTK_WIDGET_CLASS (parent_class)->size_request) (widget, requisition); -@@ -280,45 +337,59 @@ - gint focus_width; - gint focus_pad; - -- _gtk_check_button_get_props (check_button, &indicator_size, &indicator_spacing); -+ _gtk_check_button_get_props (check_button, -+ &indicator_size, &indicator_spacing); - gtk_widget_style_get (widget, - "focus-line-width", &focus_width, - "focus-padding", &focus_pad, - NULL); -- -+ - widget->allocation = *allocation; - if (GTK_WIDGET_REALIZED (widget)) - gdk_window_move_resize (button->event_window, - allocation->x, allocation->y, - allocation->width, allocation->height); - -- if (GTK_BIN (button)->child && GTK_WIDGET_VISIBLE (GTK_BIN (button)->child)) -+ if (GTK_BIN (button)->child && -+ GTK_WIDGET_VISIBLE (GTK_BIN (button)->child)) - { - GtkRequisition child_requisition; - gint border_width = GTK_CONTAINER (widget)->border_width; -- -- gtk_widget_get_child_requisition (GTK_BIN (button)->child, &child_requisition); -+ -+ gtk_widget_get_child_requisition (GTK_BIN (button)->child, -+ &child_requisition); - -- child_allocation.width = MIN (child_requisition.width, -+ child_allocation.width = MIN ( -+ child_requisition.width, - allocation->width - -- ((border_width + focus_width + focus_pad) * 2 -- + indicator_size + indicator_spacing * 3)); -- child_allocation.width = MAX (child_allocation.width, 1); -+ ((border_width + focus_width + -+ focus_pad) * 2 -+ - 2 * widget->style->xthickness + -+ indicator_size + -+ indicator_spacing * 2 ) ); - -+ child_allocation.width = MAX (child_allocation.width, 1); -+ - child_allocation.height = MIN (child_requisition.height, -- allocation->height - (border_width + focus_width + focus_pad) * 2); -+ allocation->height - -+ (border_width + focus_width + -+ focus_pad) * 2); - child_allocation.height = MAX (child_allocation.height, 1); - -- child_allocation.x = (border_width + indicator_size + indicator_spacing * 3 + -- widget->allocation.x + focus_width + focus_pad); -+ child_allocation.x = (border_width + indicator_size + -+ indicator_spacing * 2 + -+ widget->style->xthickness + -+ widget->allocation.x + -+ focus_width + focus_pad); - child_allocation.y = widget->allocation.y + -- (allocation->height - child_allocation.height) / 2; -- -+ (allocation->height - child_allocation.height) / 2; -+ - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) -- child_allocation.x = allocation->x + allocation->width -- - (child_allocation.x - allocation->x + child_allocation.width); -+ child_allocation.x = allocation->x + allocation->width - -+ (child_allocation.x - allocation->x + child_allocation.width); - -- gtk_widget_size_allocate (GTK_BIN (button)->child, &child_allocation); -+ gtk_widget_size_allocate (GTK_BIN (button)->child, -+ &child_allocation); - } - } - else -@@ -375,45 +446,33 @@ - GdkRectangle *area) - { - GtkWidget *widget; -- GtkWidget *child; - GtkButton *button; - GtkToggleButton *toggle_button; - GtkStateType state_type; - GtkShadowType shadow_type; -- gint x, y; -- gint indicator_size; -- gint indicator_spacing; -- gint focus_width; -- gint focus_pad; -- gboolean interior_focus; -+ -+ GdkRectangle indicator = {0, 0, 0, 0}; - - if (GTK_WIDGET_DRAWABLE (check_button)) - { - widget = GTK_WIDGET (check_button); - button = GTK_BUTTON (check_button); - toggle_button = GTK_TOGGLE_BUTTON (check_button); -- -- gtk_widget_style_get (widget, "interior_focus", &interior_focus, -- "focus-line-width", &focus_width, -- "focus-padding", &focus_pad, NULL); -- -- _gtk_check_button_get_props (check_button, &indicator_size, &indicator_spacing); -- -- x = widget->allocation.x + indicator_spacing + GTK_CONTAINER (widget)->border_width; -- y = widget->allocation.y + (widget->allocation.height - indicator_size) / 2; -- -- child = GTK_BIN (check_button)->child; -- if (!interior_focus || !(child && GTK_WIDGET_VISIBLE (child))) -- x += focus_width + focus_pad; -- -+ gtk_check_button_calc_indicator_size( check_button, &indicator ); -+ -+ /* move indicator to root coordinates */ -+ indicator.x += widget->allocation.x; -+ indicator.y += widget->allocation.y; -+ - if (toggle_button->inconsistent) - shadow_type = GTK_SHADOW_ETCHED_IN; - else if (toggle_button->active) - shadow_type = GTK_SHADOW_IN; - else - shadow_type = GTK_SHADOW_OUT; -- -- if (button->activate_timeout || (button->button_down && button->in_button)) -+ -+ if (button->activate_timeout || -+ (button->button_down && button->in_button)) - state_type = GTK_STATE_ACTIVE; - else if (button->in_button) - state_type = GTK_STATE_PRELIGHT; -@@ -422,32 +481,107 @@ - else - state_type = GTK_STATE_NORMAL; - -- if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) -- x = widget->allocation.x + widget->allocation.width - (indicator_size + x - widget->allocation.x); -+ /* Hildon change. We want to draw active image always when we have -+ * focus. */ -+ if (GTK_WIDGET_HAS_FOCUS (widget)) -+ state_type = GTK_STATE_ACTIVE; - -- if (GTK_WIDGET_STATE (toggle_button) == GTK_STATE_PRELIGHT) -+ if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - { -- GdkRectangle restrict_area; -- GdkRectangle new_area; -- -- restrict_area.x = widget->allocation.x + GTK_CONTAINER (widget)->border_width; -- restrict_area.y = widget->allocation.y + GTK_CONTAINER (widget)->border_width; -- restrict_area.width = widget->allocation.width - (2 * GTK_CONTAINER (widget)->border_width); -- restrict_area.height = widget->allocation.height - (2 * GTK_CONTAINER (widget)->border_width); -+ indicator.x = widget->allocation.x + widget->allocation.width -+ - (indicator.width + indicator.x - widget->allocation.x); - -- if (gdk_rectangle_intersect (area, &restrict_area, &new_area)) -- { -- gtk_paint_flat_box (widget->style, widget->window, GTK_STATE_PRELIGHT, -- GTK_SHADOW_ETCHED_OUT, -- area, widget, "checkbutton", -- new_area.x, new_area.y, -- new_area.width, new_area.height); -- } - } - - gtk_paint_check (widget->style, widget->window, - state_type, shadow_type, - area, widget, "checkbutton", -- x, y, indicator_size, indicator_size); -+ indicator.x, indicator.y, -+ indicator.width, indicator.height); -+ } -+} -+ -+ -+/* calculates the size and position of the indicator -+ * relative to the origin of the check button. -+ */ -+static void gtk_check_button_calc_indicator_size( GtkCheckButton *button, -+ GdkRectangle *rect ) -+{ -+ gint indicator_size; -+ gint indicator_spacing; -+ gint focus_width; -+ gint focus_pad; -+ gboolean interior_focus; -+ GtkWidget *child; -+ GtkWidget *widget = GTK_WIDGET(button); -+ -+ -+ gtk_widget_style_get (widget, "interior_focus", &interior_focus, -+ "focus-line-width", &focus_width, -+ "focus-padding", &focus_pad, -+ "indicator-size", &indicator_size, -+ "indicator-spacing", &indicator_spacing, -+ NULL -+ ); -+ -+ -+ /* HILDON: We want the indicator to be positioned according to the spec. -+ * -+ * NOTE: INDICATOR_SIDE_PADDING and INDICATOR_TOP_PADDING -+ * are maJiKal numbers that make the indicator to be drawn -+ * to correct coordinates, 1337 \o/ -+ */ -+ rect->x = INDICATOR_SIDE_PADDING; -+ rect->y = ( widget->allocation.height - indicator_size ) / 2; -+ -+ /* Hildon: we always add space for the focus */ -+ rect->x += focus_width + focus_pad; -+ -+ child = GTK_BIN (widget)->child; -+ if (interior_focus && child && GTK_WIDGET_VISIBLE (child)) -+ { -+ rect->y += HILDON_SPACING; - } -+ -+ rect->width = indicator_size; -+ rect->height = indicator_size; - } -+ -+static void -+gtk_check_button_clicked (GtkButton *button) -+{ -+ GtkToggleButton *toggle_button = GTK_TOGGLE_BUTTON (button); -+ -+ toggle_button->active = !toggle_button->active; -+ gtk_toggle_button_toggled (toggle_button); -+ -+ gtk_check_button_update_state (button); -+ -+ g_object_notify (G_OBJECT (toggle_button), "active"); -+} -+ -+static void -+gtk_check_button_update_state (GtkButton *button) -+{ -+ GtkToggleButton *toggle_button = GTK_TOGGLE_BUTTON (button); -+ gboolean depressed; -+ GtkStateType new_state; -+ -+ if (toggle_button->inconsistent) -+ depressed = FALSE; -+ else if (button->in_button && button->button_down) -+ depressed = TRUE; -+ else -+ depressed = toggle_button->active; -+ -+ if (button->in_button && -+ (!button->button_down || toggle_button->draw_indicator)) -+ new_state = GTK_STATE_PRELIGHT; -+ else -+ new_state = depressed ? GTK_STATE_ACTIVE : GTK_STATE_NORMAL; -+ -+ _gtk_button_set_depressed (button, depressed); -+ gtk_widget_set_state (GTK_WIDGET (toggle_button), new_state); -+} -+ -- cgit v1.2.3