mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-04 09:40:19 +00:00
gadget: Add api to get the border allocation
This can be useful for giving input windows the right size.
This commit is contained in:
parent
5aec427c1a
commit
b14dc6b5a4
@ -670,3 +670,31 @@ gtk_css_node_style_changed_for_widget (GtkCssNode *node,
|
||||
_gtk_bitmask_free (changes);
|
||||
}
|
||||
|
||||
void
|
||||
gtk_css_gadget_get_border_allocation (GtkCssGadget *gadget,
|
||||
GtkAllocation *allocation,
|
||||
int *baseline)
|
||||
{
|
||||
GtkCssGadgetPrivate *priv = gtk_css_gadget_get_instance_private (gadget);
|
||||
GtkBorder margin;
|
||||
|
||||
g_return_if_fail (GTK_IS_CSS_GADGET (gadget));
|
||||
|
||||
get_box_margin (gtk_css_gadget_get_style (gadget), &margin);
|
||||
|
||||
if (allocation)
|
||||
{
|
||||
allocation->x = priv->allocated_size.x + margin.left;
|
||||
allocation->y = priv->allocated_size.y + margin.top;
|
||||
allocation->width = priv->allocated_size.width - margin.left - margin.right;
|
||||
allocation->height = priv->allocated_size.height - margin.top - margin.bottom;
|
||||
}
|
||||
if (baseline)
|
||||
{
|
||||
if (priv->allocated_baseline >= 0)
|
||||
*baseline = priv->allocated_baseline - margin.top;
|
||||
else
|
||||
*baseline = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -97,6 +97,10 @@ void gtk_css_gadget_allocate (GtkCssGadget
|
||||
void gtk_css_gadget_draw (GtkCssGadget *gadget,
|
||||
cairo_t *cr);
|
||||
|
||||
void gtk_css_gadget_get_border_allocation (GtkCssGadget *gadget,
|
||||
GtkAllocation *allocation,
|
||||
int *baseline);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GTK_CSS_GADGET_PRIVATE_H__ */
|
||||
|
Loading…
Reference in New Issue
Block a user