[gtk+/wip/baedert/drawing: 67/147] widget: Add private get_margin_allocation



commit 7bd95a8a8d7e9bb4bbb61944819f6d7fa04a3066
Author: Timm Bäder <mail baedert org>
Date:   Fri May 5 18:24:52 2017 +0200

    widget: Add private get_margin_allocation

 gtk/gtkwidget.c        |   20 ++++++++++++++++++++
 gtk/gtkwidgetprivate.h |    3 +++
 2 files changed, 23 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 14b8ad6..6be7251 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -13881,6 +13881,26 @@ gtk_widget_get_border_allocation (GtkWidget     *widget,
                         margin.bottom + border.bottom;
 }
 
+void
+gtk_widget_get_margin_allocation (GtkWidget     *widget,
+                                  GtkAllocation *allocation)
+{
+  GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
+  GtkBorder margin, border;
+  GtkCssStyle *style;
+
+  style = gtk_css_node_get_style (priv->cssnode);
+  get_box_margin (style, &margin);
+  get_box_border (style, &border);
+
+  *allocation = priv->allocation;
+
+  allocation->x += margin.left;
+  allocation->y += margin.top;
+  allocation->width -= margin.left + margin.right;
+  allocation->height -= margin.top + margin.bottom;
+}
+
 /**
  * gtk_widget_set_allocation:
  * @widget: a #GtkWidget
diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h
index 2dc5054..90db7f2 100644
--- a/gtk/gtkwidgetprivate.h
+++ b/gtk/gtkwidgetprivate.h
@@ -318,6 +318,9 @@ void              gtk_widget_get_content_allocation        (GtkWidget        *wi
                                                             GtkAllocation    *allocation);
 void              gtk_widget_get_border_allocation         (GtkWidget        *widget,
                                                             GtkAllocation    *allocation);
+void              gtk_widget_get_margin_allocation         (GtkWidget        *widget,
+                                                            GtkAllocation    *allocation);
+
 
 /* inline getters */
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]