mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-19 08:30:09 +00:00
toolitemgroup: Connect to draw signal
This commit is contained in:
parent
a4bbe4da10
commit
bec11c352d
@ -260,36 +260,36 @@ gtk_tool_item_group_tool_shell_init (GtkToolShellIface *iface)
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_tool_item_group_header_expose_event_cb (GtkWidget *widget,
|
||||
GdkEventExpose *event,
|
||||
gpointer data)
|
||||
gtk_tool_item_group_header_draw_cb (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
{
|
||||
GtkAllocation allocation;
|
||||
GtkToolItemGroup *group = GTK_TOOL_ITEM_GROUP (data);
|
||||
GtkToolItemGroupPrivate* priv = group->priv;
|
||||
GtkExpanderStyle expander_style;
|
||||
GtkOrientation orientation;
|
||||
gint x, y;
|
||||
gint x, y, width, height;
|
||||
GtkTextDirection direction;
|
||||
|
||||
orientation = gtk_tool_shell_get_orientation (GTK_TOOL_SHELL (group));
|
||||
expander_style = priv->expander_style;
|
||||
direction = gtk_widget_get_direction (widget);
|
||||
width = gtk_widget_get_allocated_width (widget);
|
||||
height = gtk_widget_get_allocated_height (widget);
|
||||
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
if (GTK_ORIENTATION_VERTICAL == orientation)
|
||||
{
|
||||
if (GTK_TEXT_DIR_RTL == direction)
|
||||
x = allocation.x + allocation.width - priv->expander_size / 2;
|
||||
x = width - priv->expander_size / 2;
|
||||
else
|
||||
x = allocation.x + priv->expander_size / 2;
|
||||
x = priv->expander_size / 2;
|
||||
|
||||
y = allocation.y + allocation.height / 2;
|
||||
y = height / 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
x = allocation.x + allocation.width / 2;
|
||||
y = allocation.y + priv->expander_size / 2;
|
||||
x = width / 2;
|
||||
y = priv->expander_size / 2;
|
||||
|
||||
/* Unfortunatly gtk_paint_expander() doesn't support rotated drawing
|
||||
* modes. Luckily the following shady arithmetics produce the desired
|
||||
@ -297,10 +297,10 @@ gtk_tool_item_group_header_expose_event_cb (GtkWidget *widget,
|
||||
expander_style = GTK_EXPANDER_EXPANDED - expander_style;
|
||||
}
|
||||
|
||||
gtk_paint_expander (gtk_widget_get_style (widget),
|
||||
gtk_widget_get_window (widget),
|
||||
gtk_cairo_paint_expander (gtk_widget_get_style (widget),
|
||||
cr,
|
||||
gtk_widget_get_state (priv->header),
|
||||
&event->area, GTK_WIDGET (group),
|
||||
GTK_WIDGET (group),
|
||||
"tool-palette-header", x, y,
|
||||
expander_style);
|
||||
|
||||
@ -409,8 +409,8 @@ gtk_tool_item_group_init (GtkToolItemGroup *group)
|
||||
|
||||
gtk_tool_item_group_header_adjust_style (group);
|
||||
|
||||
g_signal_connect_after (alignment, "expose-event",
|
||||
G_CALLBACK (gtk_tool_item_group_header_expose_event_cb),
|
||||
g_signal_connect_after (alignment, "draw",
|
||||
G_CALLBACK (gtk_tool_item_group_header_draw_cb),
|
||||
group);
|
||||
g_signal_connect_after (alignment, "size-request",
|
||||
G_CALLBACK (gtk_tool_item_group_header_size_request_cb),
|
||||
|
Loading…
Reference in New Issue
Block a user