mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-09-20 05:50:11 +00:00
Add an extra parameter use_text to gtk_paint_label() to deal with
Mon Apr 30 19:18:07 2001 Owen Taylor <otaylor@redhat.com> * gtk/gtkstyle.[ch] gtk/gtkaccellabel.c gtk/gtkcellrenderertext.c gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c gtk/gtkprogressbar.c gtk/gtkvruler.c gtk/gtkvscale.c: Add an extra parameter use_text to gtk_paint_label() to deal with style->bg[] vs style->text[]. * gtk/gtkbbox.c gtk/gtkdialog.c: Tweak padding some to deal with GtkWidget::interior_focus = TRUE better. * gtk/gtkbutton.c * gtk/gtkwidget.c (gtk_widget_style_get_valist): Remove G_VALUE_NO_COPY_CONTENTS, to correspond with the recent change that had to be made with g_object_get.
This commit is contained in:
parent
483f2d5203
commit
2d372c4053
16
ChangeLog
16
ChangeLog
@ -1,3 +1,19 @@
|
||||
Mon Apr 30 19:18:07 2001 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkstyle.[ch] gtk/gtkaccellabel.c gtk/gtkcellrenderertext.c
|
||||
gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c gtk/gtkprogressbar.c
|
||||
gtk/gtkvruler.c gtk/gtkvscale.c: Add an extra parameter
|
||||
use_text to gtk_paint_label() to deal with style->bg[] vs style->text[].
|
||||
|
||||
* gtk/gtkbbox.c gtk/gtkdialog.c: Tweak padding some to deal
|
||||
with GtkWidget::interior_focus = TRUE better.
|
||||
|
||||
* gtk/gtkbutton.c
|
||||
|
||||
* gtk/gtkwidget.c (gtk_widget_style_get_valist): Remove
|
||||
G_VALUE_NO_COPY_CONTENTS, to correspond with the recent
|
||||
change that had to be made with g_object_get.
|
||||
|
||||
Sun Apr 29 20:13:40 2001 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_get_columns): new function.
|
||||
|
@ -1,3 +1,19 @@
|
||||
Mon Apr 30 19:18:07 2001 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkstyle.[ch] gtk/gtkaccellabel.c gtk/gtkcellrenderertext.c
|
||||
gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c gtk/gtkprogressbar.c
|
||||
gtk/gtkvruler.c gtk/gtkvscale.c: Add an extra parameter
|
||||
use_text to gtk_paint_label() to deal with style->bg[] vs style->text[].
|
||||
|
||||
* gtk/gtkbbox.c gtk/gtkdialog.c: Tweak padding some to deal
|
||||
with GtkWidget::interior_focus = TRUE better.
|
||||
|
||||
* gtk/gtkbutton.c
|
||||
|
||||
* gtk/gtkwidget.c (gtk_widget_style_get_valist): Remove
|
||||
G_VALUE_NO_COPY_CONTENTS, to correspond with the recent
|
||||
change that had to be made with g_object_get.
|
||||
|
||||
Sun Apr 29 20:13:40 2001 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_get_columns): new function.
|
||||
|
@ -1,3 +1,19 @@
|
||||
Mon Apr 30 19:18:07 2001 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkstyle.[ch] gtk/gtkaccellabel.c gtk/gtkcellrenderertext.c
|
||||
gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c gtk/gtkprogressbar.c
|
||||
gtk/gtkvruler.c gtk/gtkvscale.c: Add an extra parameter
|
||||
use_text to gtk_paint_label() to deal with style->bg[] vs style->text[].
|
||||
|
||||
* gtk/gtkbbox.c gtk/gtkdialog.c: Tweak padding some to deal
|
||||
with GtkWidget::interior_focus = TRUE better.
|
||||
|
||||
* gtk/gtkbutton.c
|
||||
|
||||
* gtk/gtkwidget.c (gtk_widget_style_get_valist): Remove
|
||||
G_VALUE_NO_COPY_CONTENTS, to correspond with the recent
|
||||
change that had to be made with g_object_get.
|
||||
|
||||
Sun Apr 29 20:13:40 2001 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_get_columns): new function.
|
||||
|
@ -1,3 +1,19 @@
|
||||
Mon Apr 30 19:18:07 2001 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkstyle.[ch] gtk/gtkaccellabel.c gtk/gtkcellrenderertext.c
|
||||
gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c gtk/gtkprogressbar.c
|
||||
gtk/gtkvruler.c gtk/gtkvscale.c: Add an extra parameter
|
||||
use_text to gtk_paint_label() to deal with style->bg[] vs style->text[].
|
||||
|
||||
* gtk/gtkbbox.c gtk/gtkdialog.c: Tweak padding some to deal
|
||||
with GtkWidget::interior_focus = TRUE better.
|
||||
|
||||
* gtk/gtkbutton.c
|
||||
|
||||
* gtk/gtkwidget.c (gtk_widget_style_get_valist): Remove
|
||||
G_VALUE_NO_COPY_CONTENTS, to correspond with the recent
|
||||
change that had to be made with g_object_get.
|
||||
|
||||
Sun Apr 29 20:13:40 2001 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_get_columns): new function.
|
||||
|
@ -1,3 +1,19 @@
|
||||
Mon Apr 30 19:18:07 2001 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkstyle.[ch] gtk/gtkaccellabel.c gtk/gtkcellrenderertext.c
|
||||
gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c gtk/gtkprogressbar.c
|
||||
gtk/gtkvruler.c gtk/gtkvscale.c: Add an extra parameter
|
||||
use_text to gtk_paint_label() to deal with style->bg[] vs style->text[].
|
||||
|
||||
* gtk/gtkbbox.c gtk/gtkdialog.c: Tweak padding some to deal
|
||||
with GtkWidget::interior_focus = TRUE better.
|
||||
|
||||
* gtk/gtkbutton.c
|
||||
|
||||
* gtk/gtkwidget.c (gtk_widget_style_get_valist): Remove
|
||||
G_VALUE_NO_COPY_CONTENTS, to correspond with the recent
|
||||
change that had to be made with g_object_get.
|
||||
|
||||
Sun Apr 29 20:13:40 2001 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_get_columns): new function.
|
||||
|
@ -1,3 +1,19 @@
|
||||
Mon Apr 30 19:18:07 2001 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkstyle.[ch] gtk/gtkaccellabel.c gtk/gtkcellrenderertext.c
|
||||
gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c gtk/gtkprogressbar.c
|
||||
gtk/gtkvruler.c gtk/gtkvscale.c: Add an extra parameter
|
||||
use_text to gtk_paint_label() to deal with style->bg[] vs style->text[].
|
||||
|
||||
* gtk/gtkbbox.c gtk/gtkdialog.c: Tweak padding some to deal
|
||||
with GtkWidget::interior_focus = TRUE better.
|
||||
|
||||
* gtk/gtkbutton.c
|
||||
|
||||
* gtk/gtkwidget.c (gtk_widget_style_get_valist): Remove
|
||||
G_VALUE_NO_COPY_CONTENTS, to correspond with the recent
|
||||
change that had to be made with g_object_get.
|
||||
|
||||
Sun Apr 29 20:13:40 2001 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_get_columns): new function.
|
||||
|
@ -1,3 +1,19 @@
|
||||
Mon Apr 30 19:18:07 2001 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkstyle.[ch] gtk/gtkaccellabel.c gtk/gtkcellrenderertext.c
|
||||
gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c gtk/gtkprogressbar.c
|
||||
gtk/gtkvruler.c gtk/gtkvscale.c: Add an extra parameter
|
||||
use_text to gtk_paint_label() to deal with style->bg[] vs style->text[].
|
||||
|
||||
* gtk/gtkbbox.c gtk/gtkdialog.c: Tweak padding some to deal
|
||||
with GtkWidget::interior_focus = TRUE better.
|
||||
|
||||
* gtk/gtkbutton.c
|
||||
|
||||
* gtk/gtkwidget.c (gtk_widget_style_get_valist): Remove
|
||||
G_VALUE_NO_COPY_CONTENTS, to correspond with the recent
|
||||
change that had to be made with g_object_get.
|
||||
|
||||
Sun Apr 29 20:13:40 2001 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_get_columns): new function.
|
||||
|
@ -292,6 +292,7 @@ gtk_accel_label_expose_event (GtkWidget *widget,
|
||||
gtk_paint_layout (widget->style,
|
||||
widget->window,
|
||||
GTK_WIDGET_STATE (widget),
|
||||
FALSE,
|
||||
&event->area,
|
||||
widget,
|
||||
"accellabel",
|
||||
|
@ -33,7 +33,7 @@ static void gtk_button_box_init (GtkButtonBox *box);
|
||||
|
||||
#define DEFAULT_CHILD_MIN_WIDTH 85
|
||||
#define DEFAULT_CHILD_MIN_HEIGHT 27
|
||||
#define DEFAULT_CHILD_IPAD_X 7
|
||||
#define DEFAULT_CHILD_IPAD_X 4
|
||||
#define DEFAULT_CHILD_IPAD_Y 0
|
||||
|
||||
GtkType
|
||||
|
103
gtk/gtkbutton.c
103
gtk/gtkbutton.c
@ -36,7 +36,9 @@
|
||||
#include "gtkintl.h"
|
||||
|
||||
#define CHILD_SPACING 1
|
||||
#define DEFAULT_SPACING 7
|
||||
|
||||
static GtkBorder default_default_border = { 5, 5, 6, 6 };
|
||||
static GtkBorder default_default_outside_border = { 5, 5, 6, 6 };
|
||||
|
||||
/* Time out before giving up on getting a key release when animatng
|
||||
* the close button.
|
||||
@ -233,13 +235,18 @@ gtk_button_class_init (GtkButtonClass *klass)
|
||||
widget_class->activate_signal = button_signals[ACTIVATE];
|
||||
|
||||
gtk_widget_class_install_style_property (widget_class,
|
||||
g_param_spec_int ("default_spacing",
|
||||
_("Default Spacing"),
|
||||
_("Extra space to add for CAN_DEFAULT buttons"),
|
||||
0,
|
||||
G_MAXINT,
|
||||
DEFAULT_SPACING,
|
||||
G_PARAM_READABLE));
|
||||
g_param_spec_boxed ("default_border",
|
||||
_("Default Spacing"),
|
||||
_("Extra space to add for CAN_DEFAULT buttons"),
|
||||
GTK_TYPE_BORDER,
|
||||
G_PARAM_READABLE));
|
||||
|
||||
gtk_widget_class_install_style_property (widget_class,
|
||||
g_param_spec_boxed ("default_outside_border",
|
||||
_("Default Outside Spacing"),
|
||||
_("Extra space to add for CAN_DEFAULT buttons that is always drawn outside the border"),
|
||||
GTK_TYPE_BORDER,
|
||||
G_PARAM_READABLE));
|
||||
}
|
||||
|
||||
static void
|
||||
@ -540,13 +547,38 @@ gtk_button_unrealize (GtkWidget *widget)
|
||||
|
||||
static void
|
||||
gtk_button_get_props (GtkButton *button,
|
||||
gint *default_spacing,
|
||||
GtkBorder *default_border,
|
||||
GtkBorder *default_outside_border,
|
||||
gboolean *interior_focus)
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET (button);
|
||||
GtkBorder *tmp_border;
|
||||
|
||||
if (default_spacing)
|
||||
gtk_widget_style_get (widget, "default_spacing", default_spacing, NULL);
|
||||
if (default_border)
|
||||
{
|
||||
gtk_widget_style_get (widget, "default_border", &tmp_border, NULL);
|
||||
|
||||
if (tmp_border)
|
||||
{
|
||||
*default_border = *tmp_border;
|
||||
g_free (tmp_border);
|
||||
}
|
||||
else
|
||||
*default_border = default_default_border;
|
||||
}
|
||||
|
||||
if (default_outside_border)
|
||||
{
|
||||
gtk_widget_style_get (widget, "default_outside_border", &tmp_border, NULL);
|
||||
|
||||
if (tmp_border)
|
||||
{
|
||||
*default_outside_border = *tmp_border;
|
||||
g_free (tmp_border);
|
||||
}
|
||||
else
|
||||
*default_outside_border = default_default_outside_border;
|
||||
}
|
||||
|
||||
if (interior_focus)
|
||||
gtk_widget_style_get (widget, "interior_focus", interior_focus, NULL);
|
||||
@ -557,10 +589,10 @@ gtk_button_size_request (GtkWidget *widget,
|
||||
GtkRequisition *requisition)
|
||||
{
|
||||
GtkButton *button = GTK_BUTTON (widget);
|
||||
gint default_spacing;
|
||||
GtkBorder default_border;
|
||||
gboolean interior_focus;
|
||||
|
||||
gtk_button_get_props (button, &default_spacing, &interior_focus);
|
||||
gtk_button_get_props (button, &default_border, NULL, &interior_focus);
|
||||
|
||||
requisition->width = (GTK_CONTAINER (widget)->border_width + CHILD_SPACING +
|
||||
GTK_WIDGET (widget)->style->xthickness) * 2;
|
||||
@ -569,10 +601,8 @@ gtk_button_size_request (GtkWidget *widget,
|
||||
|
||||
if (GTK_WIDGET_CAN_DEFAULT (widget))
|
||||
{
|
||||
requisition->width += (GTK_WIDGET (widget)->style->xthickness * 2 +
|
||||
default_spacing);
|
||||
requisition->height += (GTK_WIDGET (widget)->style->ythickness * 2 +
|
||||
default_spacing);
|
||||
requisition->width += default_border.left + default_border.right;
|
||||
requisition->height += default_border.top + default_border.bottom;
|
||||
}
|
||||
|
||||
if (GTK_BIN (button)->child && GTK_WIDGET_VISIBLE (GTK_BIN (button)->child))
|
||||
@ -602,9 +632,9 @@ gtk_button_size_allocate (GtkWidget *widget,
|
||||
gint border_width = GTK_CONTAINER (widget)->border_width;
|
||||
gint xthickness = GTK_WIDGET (widget)->style->xthickness;
|
||||
gint ythickness = GTK_WIDGET (widget)->style->ythickness;
|
||||
gint default_spacing;
|
||||
GtkBorder default_border;
|
||||
|
||||
gtk_button_get_props (button, &default_spacing, NULL);
|
||||
gtk_button_get_props (button, &default_border, NULL, NULL);
|
||||
|
||||
widget->allocation = *allocation;
|
||||
|
||||
@ -627,14 +657,10 @@ gtk_button_size_allocate (GtkWidget *widget,
|
||||
|
||||
if (GTK_WIDGET_CAN_DEFAULT (button))
|
||||
{
|
||||
child_allocation.x += (GTK_WIDGET (widget)->style->xthickness +
|
||||
(1 + default_spacing) / 2);
|
||||
child_allocation.y += (GTK_WIDGET (widget)->style->ythickness +
|
||||
(1 + default_spacing) / 2);
|
||||
child_allocation.width = MAX (1, (gint)child_allocation.width -
|
||||
(gint)(GTK_WIDGET (widget)->style->xthickness * 2 + default_spacing));
|
||||
child_allocation.height = MAX (1, (gint)child_allocation.height -
|
||||
(gint)(GTK_WIDGET (widget)->style->xthickness * 2 + default_spacing));
|
||||
child_allocation.x += default_border.left;
|
||||
child_allocation.y += default_border.top;
|
||||
child_allocation.width = MAX (1, child_allocation.width - default_border.left - default_border.right);
|
||||
child_allocation.height = MAX (1, child_allocation.height - default_border.top - default_border.bottom);
|
||||
}
|
||||
|
||||
gtk_widget_size_allocate (GTK_BIN (button)->child, &child_allocation);
|
||||
@ -675,14 +701,15 @@ gtk_button_paint (GtkWidget *widget,
|
||||
GtkShadowType shadow_type;
|
||||
gint width, height;
|
||||
gint x, y;
|
||||
gint default_spacing;
|
||||
GtkBorder default_border;
|
||||
GtkBorder default_outside_border;
|
||||
gboolean interior_focus;
|
||||
|
||||
if (GTK_WIDGET_DRAWABLE (widget))
|
||||
{
|
||||
button = GTK_BUTTON (widget);
|
||||
|
||||
gtk_button_get_props (button, &default_spacing, &interior_focus);
|
||||
gtk_button_get_props (button, &default_border, &default_outside_border, &interior_focus);
|
||||
|
||||
x = 0;
|
||||
y = 0;
|
||||
@ -699,16 +726,18 @@ gtk_button_paint (GtkWidget *widget,
|
||||
GTK_STATE_NORMAL, GTK_SHADOW_IN,
|
||||
area, widget, "buttondefault",
|
||||
x, y, width, height);
|
||||
}
|
||||
|
||||
if (GTK_WIDGET_CAN_DEFAULT (widget))
|
||||
x += default_border.left;
|
||||
y += default_border.top;
|
||||
width -= default_border.left + default_border.right;
|
||||
height -= default_border.top + default_border.bottom;
|
||||
}
|
||||
else if (GTK_WIDGET_CAN_DEFAULT (widget))
|
||||
{
|
||||
x += widget->style->xthickness;
|
||||
y += widget->style->ythickness;
|
||||
width -= 2 * x + default_spacing;
|
||||
height -= 2 * y + default_spacing;
|
||||
x += (1 + default_spacing) / 2;
|
||||
y += (1 + default_spacing) / 2;
|
||||
x += default_outside_border.left;
|
||||
y += default_outside_border.top;
|
||||
width -= default_outside_border.left + default_outside_border.right;
|
||||
height -= default_outside_border.top + default_outside_border.bottom;
|
||||
}
|
||||
|
||||
if (!interior_focus && GTK_WIDGET_HAS_FOCUS (widget))
|
||||
|
@ -1139,6 +1139,7 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell,
|
||||
gtk_paint_layout (widget->style,
|
||||
window,
|
||||
state,
|
||||
TRUE,
|
||||
cell_area,
|
||||
widget,
|
||||
"cellrenderertext",
|
||||
|
@ -146,7 +146,7 @@ gtk_dialog_class_init (GtkDialogClass *class)
|
||||
_("Spacing between buttons"),
|
||||
0,
|
||||
G_MAXINT,
|
||||
1,
|
||||
10,
|
||||
G_PARAM_READABLE));
|
||||
|
||||
gtk_widget_class_install_style_property (widget_class,
|
||||
@ -155,7 +155,7 @@ gtk_dialog_class_init (GtkDialogClass *class)
|
||||
_("Width of border around the button area at the bottom of the dialog"),
|
||||
0,
|
||||
G_MAXINT,
|
||||
0,
|
||||
5,
|
||||
G_PARAM_READABLE));
|
||||
}
|
||||
|
||||
|
@ -264,6 +264,7 @@ gtk_hruler_draw_ticks (GtkRuler *ruler)
|
||||
gtk_paint_layout (widget->style,
|
||||
ruler->backing_store,
|
||||
GTK_WIDGET_STATE (widget),
|
||||
FALSE,
|
||||
NULL,
|
||||
widget,
|
||||
"hruler",
|
||||
|
@ -588,6 +588,7 @@ gtk_hscale_draw_value (GtkScale *scale)
|
||||
gtk_paint_layout (widget->style,
|
||||
widget->window,
|
||||
state_type,
|
||||
FALSE,
|
||||
NULL,
|
||||
widget,
|
||||
"hscale",
|
||||
|
@ -1258,6 +1258,7 @@ gtk_label_expose (GtkWidget *widget,
|
||||
gtk_paint_layout (widget->style,
|
||||
widget->window,
|
||||
GTK_WIDGET_STATE (widget),
|
||||
FALSE,
|
||||
&event->area,
|
||||
widget,
|
||||
"label",
|
||||
|
@ -41,11 +41,13 @@ typedef struct _GtkOptionMenuProps GtkOptionMenuProps;
|
||||
|
||||
struct _GtkOptionMenuProps
|
||||
{
|
||||
gboolean interior_focus;
|
||||
GtkRequisition indicator_size;
|
||||
GtkBorder indicator_spacing;
|
||||
};
|
||||
|
||||
static GtkOptionMenuProps default_props = {
|
||||
FALSE,
|
||||
{ 12, 8 },
|
||||
{ 3, 7, 2, 2 } /* Left, right, top, bottom */
|
||||
};
|
||||
@ -336,6 +338,7 @@ gtk_option_menu_get_props (GtkOptionMenu *option_menu,
|
||||
gtk_widget_style_get (GTK_WIDGET (option_menu),
|
||||
"indicator_size", &indicator_size,
|
||||
"indicator_spacing", &indicator_spacing,
|
||||
"interior_focus", &props->interior_focus,
|
||||
NULL);
|
||||
|
||||
if (indicator_size)
|
||||
@ -439,19 +442,29 @@ gtk_option_menu_paint (GtkWidget *widget,
|
||||
|
||||
if (GTK_WIDGET_DRAWABLE (widget))
|
||||
{
|
||||
gint border_width = GTK_CONTAINER (widget)->border_width;
|
||||
|
||||
gtk_option_menu_get_props (GTK_OPTION_MENU (widget), &props);
|
||||
|
||||
button_area.x = GTK_CONTAINER (widget)->border_width + 1;
|
||||
button_area.y = GTK_CONTAINER (widget)->border_width + 1;
|
||||
button_area.width = widget->allocation.width - button_area.x * 2;
|
||||
button_area.height = widget->allocation.height - button_area.y * 2;
|
||||
button_area.x = border_width;
|
||||
button_area.y = border_width;
|
||||
button_area.width = widget->allocation.width - 2 * border_width;
|
||||
button_area.height = widget->allocation.height - 2 * border_width;
|
||||
|
||||
/* This is evil, and should be elimated here and in the button
|
||||
* code. The point is to clear the focus, and make it
|
||||
* sort of transparent if it isn't there.
|
||||
*/
|
||||
gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
|
||||
gdk_window_clear_area (widget->window, area->x, area->y, area->width, area->height);
|
||||
if (!props.interior_focus)
|
||||
{
|
||||
button_area.x += 1;
|
||||
button_area.y += 1;
|
||||
button_area.width -= 2;
|
||||
button_area.height -= 2;
|
||||
|
||||
/* This is evil, and should be elimated here and in the button
|
||||
* code. The point is to clear the focus, and make it
|
||||
* sort of transparent if it isn't there.
|
||||
*/
|
||||
gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
|
||||
gdk_window_clear_area (widget->window, area->x, area->y, area->width, area->height);
|
||||
}
|
||||
|
||||
gtk_paint_box(widget->style, widget->window,
|
||||
GTK_WIDGET_STATE (widget), GTK_SHADOW_OUT,
|
||||
@ -469,12 +482,30 @@ gtk_option_menu_paint (GtkWidget *widget,
|
||||
props.indicator_size.width, props.indicator_size.height);
|
||||
|
||||
if (GTK_WIDGET_HAS_FOCUS (widget))
|
||||
gtk_paint_focus (widget->style, widget->window,
|
||||
area, widget, "button",
|
||||
button_area.x - 1,
|
||||
button_area.y - 1,
|
||||
button_area.width + 1,
|
||||
button_area.height + 1);
|
||||
{
|
||||
if (props.interior_focus)
|
||||
{
|
||||
button_area.x += widget->style->xthickness + 1;
|
||||
button_area.y += widget->style->ythickness + 1;
|
||||
button_area.width -= 2 * (widget->style->xthickness + 1)
|
||||
+ props.indicator_spacing.left + props.indicator_spacing.right + props.indicator_size.width;
|
||||
button_area.height -= 2 * (widget->style->ythickness + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
button_area.x -= 1;
|
||||
button_area.y -= 1;
|
||||
button_area.width += 2;
|
||||
button_area.height += 2;
|
||||
}
|
||||
|
||||
gtk_paint_focus (widget->style, widget->window,
|
||||
area, widget, "button",
|
||||
button_area.x,
|
||||
button_area.y,
|
||||
button_area.width - 1,
|
||||
button_area.height - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -833,6 +833,7 @@ gtk_progress_bar_paint (GtkProgress *progress)
|
||||
gtk_paint_layout (widget->style,
|
||||
progress->offscreen_pixmap,
|
||||
GTK_WIDGET_STATE (widget),
|
||||
FALSE,
|
||||
&rect,
|
||||
widget,
|
||||
"progressbar",
|
||||
|
@ -281,6 +281,7 @@ static void gtk_default_draw_expander (GtkStyle *style,
|
||||
static void gtk_default_draw_layout (GtkStyle *style,
|
||||
GdkWindow *window,
|
||||
GtkStateType state_type,
|
||||
gboolean use_text,
|
||||
GdkRectangle *area,
|
||||
GtkWidget *widget,
|
||||
const gchar *detail,
|
||||
@ -1030,6 +1031,7 @@ void
|
||||
gtk_draw_layout (GtkStyle *style,
|
||||
GdkWindow *window,
|
||||
GtkStateType state_type,
|
||||
gboolean use_text,
|
||||
gint x,
|
||||
gint y,
|
||||
PangoLayout *layout)
|
||||
@ -1037,7 +1039,7 @@ gtk_draw_layout (GtkStyle *style,
|
||||
g_return_if_fail (GTK_IS_STYLE (style));
|
||||
g_return_if_fail (GTK_STYLE_GET_CLASS (style)->draw_layout != NULL);
|
||||
|
||||
GTK_STYLE_GET_CLASS (style)->draw_layout (style, window, state_type,
|
||||
GTK_STYLE_GET_CLASS (style)->draw_layout (style, window, state_type, use_text,
|
||||
NULL, NULL, NULL,
|
||||
x, y, layout);
|
||||
}
|
||||
@ -3903,6 +3905,7 @@ static void
|
||||
gtk_default_draw_layout (GtkStyle *style,
|
||||
GdkWindow *window,
|
||||
GtkStateType state_type,
|
||||
gboolean use_text,
|
||||
GdkRectangle *area,
|
||||
GtkWidget *widget,
|
||||
const gchar *detail,
|
||||
@ -3910,11 +3913,15 @@ gtk_default_draw_layout (GtkStyle *style,
|
||||
gint y,
|
||||
PangoLayout *layout)
|
||||
{
|
||||
GdkGC *gc;
|
||||
|
||||
g_return_if_fail (GTK_IS_STYLE (style));
|
||||
g_return_if_fail (window != NULL);
|
||||
|
||||
gc = use_text ? style->text_gc[state_type] : style->fg_gc[state_type];
|
||||
|
||||
if (area)
|
||||
gdk_gc_set_clip_rectangle (style->text_gc[state_type], area);
|
||||
gdk_gc_set_clip_rectangle (gc, area);
|
||||
|
||||
if (state_type == GTK_STATE_INSENSITIVE)
|
||||
{
|
||||
@ -3922,17 +3929,17 @@ gtk_default_draw_layout (GtkStyle *style,
|
||||
|
||||
ins = get_insensitive_layout (layout);
|
||||
|
||||
gdk_draw_layout (window, style->text_gc[state_type], x, y, ins);
|
||||
gdk_draw_layout (window, gc, x, y, ins);
|
||||
|
||||
g_object_unref (G_OBJECT (ins));
|
||||
}
|
||||
else
|
||||
{
|
||||
gdk_draw_layout (window, style->text_gc[state_type], x, y, layout);
|
||||
gdk_draw_layout (window, gc, x, y, layout);
|
||||
}
|
||||
|
||||
if (area)
|
||||
gdk_gc_set_clip_rectangle (style->text_gc[state_type], NULL);
|
||||
gdk_gc_set_clip_rectangle (gc, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -4561,6 +4568,7 @@ void
|
||||
gtk_paint_layout (GtkStyle *style,
|
||||
GdkWindow *window,
|
||||
GtkStateType state_type,
|
||||
gboolean use_text,
|
||||
GdkRectangle *area,
|
||||
GtkWidget *widget,
|
||||
const gchar *detail,
|
||||
@ -4571,7 +4579,7 @@ gtk_paint_layout (GtkStyle *style,
|
||||
g_return_if_fail (GTK_IS_STYLE (style));
|
||||
g_return_if_fail (GTK_STYLE_GET_CLASS (style)->draw_layout != NULL);
|
||||
|
||||
GTK_STYLE_GET_CLASS (style)->draw_layout (style, window, state_type, area,
|
||||
GTK_STYLE_GET_CLASS (style)->draw_layout (style, window, state_type, use_text, area,
|
||||
widget, detail, x, y, layout);
|
||||
}
|
||||
|
||||
|
@ -381,6 +381,7 @@ struct _GtkStyleClass
|
||||
void (*draw_layout) (GtkStyle *style,
|
||||
GdkWindow *window,
|
||||
GtkStateType state_type,
|
||||
gboolean use_text,
|
||||
GdkRectangle *area,
|
||||
GtkWidget *widget,
|
||||
const gchar *detail,
|
||||
@ -588,6 +589,7 @@ void gtk_draw_expander (GtkStyle *style,
|
||||
void gtk_draw_layout (GtkStyle *style,
|
||||
GdkWindow *window,
|
||||
GtkStateType state_type,
|
||||
gboolean use_text,
|
||||
gint x,
|
||||
gint y,
|
||||
PangoLayout *layout);
|
||||
@ -804,6 +806,7 @@ void gtk_paint_expander (GtkStyle *style,
|
||||
void gtk_paint_layout (GtkStyle *style,
|
||||
GdkWindow *window,
|
||||
GtkStateType state_type,
|
||||
gboolean use_text,
|
||||
GdkRectangle *area,
|
||||
GtkWidget *widget,
|
||||
const gchar *detail,
|
||||
|
@ -261,6 +261,7 @@ gtk_vruler_draw_ticks (GtkRuler *ruler)
|
||||
gtk_paint_layout (widget->style,
|
||||
ruler->backing_store,
|
||||
GTK_WIDGET_STATE (widget),
|
||||
FALSE,
|
||||
NULL,
|
||||
widget,
|
||||
"vruler",
|
||||
|
@ -598,6 +598,7 @@ gtk_vscale_draw_value (GtkScale *scale)
|
||||
gtk_paint_layout (widget->style,
|
||||
widget->window,
|
||||
state_type,
|
||||
FALSE,
|
||||
NULL,
|
||||
widget,
|
||||
"vscale",
|
||||
|
@ -5504,7 +5504,7 @@ gtk_widget_style_get_valist (GtkWidget *widget,
|
||||
G_OBJECT_TYPE (widget),
|
||||
pspec,
|
||||
g_param_spec_get_qdata (pspec, quark_property_parser));
|
||||
G_VALUE_LCOPY (peek_value, var_args, G_VALUE_NOCOPY_CONTENTS, &error);
|
||||
G_VALUE_LCOPY (peek_value, var_args, 0, &error);
|
||||
if (error)
|
||||
{
|
||||
g_warning ("%s: %s", G_STRLOC, error);
|
||||
|
Loading…
Reference in New Issue
Block a user