summaryrefslogtreecommitdiff
path: root/gtk/gtkassistant.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2015-06-14 21:04:15 -0400
committerMatthias Clasen <mclasen@redhat.com>2015-06-14 21:04:15 -0400
commit6cc65260f4ba54ea0ca9f93068050435bd6b9f1a (patch)
tree0bc6376cace3053a0101120f777ebc75dff9bd51 /gtk/gtkassistant.c
parentcfd85dee03509fa88b1c50326ffad6b0446af326 (diff)
downloadgtk+-6cc65260f4ba54ea0ca9f93068050435bd6b9f1a.tar.gz
GtkAssistant: Redo page margins
Instead of having padding outside the notebook containing all pages, put each page in an extra box and add the padding there. This is in preparation for allowing pages without padding.
Diffstat (limited to 'gtk/gtkassistant.c')
-rw-r--r--gtk/gtkassistant.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/gtk/gtkassistant.c b/gtk/gtkassistant.c
index e1a52447e2..21746a9f67 100644
--- a/gtk/gtkassistant.c
+++ b/gtk/gtkassistant.c
@@ -1109,8 +1109,8 @@ on_page_notify_visibility (GtkWidget *widget,
}
static void
-assistant_remove_page_cb (GtkNotebook *notebook,
- GtkWidget *page,
+assistant_remove_page_cb (GtkNotebook *notebook,
+ GtkWidget *page,
GtkAssistant *assistant)
{
GtkAssistantPrivate *priv = assistant->priv;
@@ -1118,6 +1118,15 @@ assistant_remove_page_cb (GtkNotebook *notebook,
GList *page_node;
GList *element;
+ if (GTK_IS_BOX (page))
+ {
+ GList *children;
+
+ children = gtk_container_get_children (GTK_CONTAINER (page));
+ page = GTK_WIDGET (children->data);
+ g_list_free (children);
+ }
+
element = find_page (assistant, page);
if (!element)
return;
@@ -1445,12 +1454,14 @@ gtk_assistant_remove (GtkContainer *container,
GtkWidget *page)
{
GtkAssistant *assistant = (GtkAssistant*) container;
+ GtkWidget *box;
/* Forward this removal to the content notebook */
- if (gtk_widget_get_parent (page) == assistant->priv->content)
+ box = gtk_widget_get_parent (page);
+ if (gtk_widget_get_parent (box) == assistant->priv->content)
{
container = (GtkContainer *) assistant->priv->content;
- gtk_container_remove (container, page);
+ gtk_container_remove (container, box);
}
}
@@ -1743,6 +1754,7 @@ gtk_assistant_insert_page (GtkAssistant *assistant,
GtkAssistantPage *page_info;
gint n_pages;
GtkStyleContext *context;
+ GtkWidget *box;
g_return_val_if_fail (GTK_IS_ASSISTANT (assistant), 0);
g_return_val_if_fail (GTK_IS_WIDGET (page), 0);
@@ -1785,7 +1797,12 @@ gtk_assistant_insert_page (GtkAssistant *assistant,
gtk_box_reorder_child (GTK_BOX (priv->sidebar), page_info->regular_title, 2 * position);
gtk_box_reorder_child (GTK_BOX (priv->sidebar), page_info->current_title, 2 * position + 1);
- gtk_notebook_insert_page (GTK_NOTEBOOK (priv->content), page, NULL, position);
+ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_widget_show (box);
+ gtk_box_pack_start (GTK_BOX (box), page, TRUE, TRUE, 0);
+ g_object_set (box, "margin", 12, NULL);
+
+ gtk_notebook_insert_page (GTK_NOTEBOOK (priv->content), box, NULL, position);
if (gtk_widget_get_mapped (GTK_WIDGET (assistant)))
{