[gedit/wip/reveal: 7/7] wip



commit 8f8dba795f27667b69365cbc33f9a6101fe41450
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Sat Feb 9 12:06:54 2013 +0100

    wip

 gedit/gedit-commands-view.c  |   10 ++++++----
 gedit/gedit-window-private.h |    1 +
 gedit/gedit-window.c         |   23 +++++++++++++++--------
 3 files changed, 22 insertions(+), 12 deletions(-)
---
diff --git a/gedit/gedit-commands-view.c b/gedit/gedit-commands-view.c
index b86f163..316fa9c 100644
--- a/gedit/gedit-commands-view.c
+++ b/gedit/gedit-commands-view.c
@@ -35,6 +35,7 @@
 #endif
 
 #include <gtk/gtk.h>
+#include <libgd/gd.h>
 
 #include "gedit-commands.h"
 #include "gedit-debug.h"
@@ -73,17 +74,18 @@ _gedit_cmd_view_show_side_panel (GtkAction   *action,
 			         GeditWindow *window)
 {
 	gboolean visible;
-	GeditPanel *panel;
 
 	gedit_debug (DEBUG_COMMANDS);
 
 	visible = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
-	panel = gedit_window_get_side_panel (window);
-	
-	gtk_widget_set_visible (GTK_WIDGET (panel), visible);
+	gd_revealer_set_revealed (GD_REVEALER (window->priv->side_panel_revealer),
+	                          visible);
 
 	if (visible)
 	{
+		GeditPanel *panel;
+
+		panel = gedit_window_get_side_panel (window);
 		gtk_widget_grab_focus (GTK_WIDGET (panel));
 	}
 }
diff --git a/gedit/gedit-window-private.h b/gedit/gedit-window-private.h
index e6a7f54..44aff70 100644
--- a/gedit/gedit-window-private.h
+++ b/gedit/gedit-window-private.h
@@ -55,6 +55,7 @@ struct _GeditWindowPrivate
 	GeditMultiNotebook *multi_notebook;
 
 	GtkWidget      *side_panel;
+	GtkWidget      *side_panel_revealer;
 	GtkWidget      *bottom_panel;
 
 	GtkWidget      *hpaned;
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index 8a1a627..0c7fd3b 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -40,6 +40,7 @@
 #include <gio/gio.h>
 #include <gtksourceview/gtksource.h>
 #include <libpeas/peas-extension-set.h>
+#include <libgd/gd.h>
 
 #include "gedit-ui.h"
 #include "gedit-window.h"
@@ -2205,8 +2206,8 @@ clone_window (GeditWindow *origin)
 	_gedit_panel_set_active_item_by_id (GEDIT_PANEL (window->priv->bottom_panel),
 					    panel_page);
 
-	gtk_widget_set_visible (window->priv->side_panel,
-				gtk_widget_get_visible (origin->priv->side_panel));
+	gtk_widget_set_visible (window->priv->side_panel_revealer,
+				gtk_widget_get_visible (origin->priv->side_panel_revealer));
 	gtk_widget_set_visible (window->priv->bottom_panel,
 	                        gtk_widget_get_visible (origin->priv->bottom_panel));
 
@@ -3737,7 +3738,7 @@ hpaned_restore_position (GtkWidget   *widget,
 	gtk_paned_set_position (GTK_PANED (window->priv->hpaned), pos);
 
 	/* start monitoring the size */
-	g_signal_connect (window->priv->side_panel,
+	g_signal_connect (window->priv->side_panel_revealer,
 			  "size-allocate",
 			  G_CALLBACK (side_panel_size_allocate),
 			  window);
@@ -3806,14 +3807,20 @@ create_side_panel (GeditWindow *window)
 
 	gedit_debug (DEBUG_WINDOW);
 
+	window->priv->side_panel_revealer = gd_revealer_new ();
+	gd_revealer_set_orientation (GD_REVEALER (window->priv->side_panel_revealer),
+	                             GTK_ORIENTATION_VERTICAL);
 	window->priv->side_panel = gedit_panel_new (GTK_ORIENTATION_VERTICAL);
+	gtk_widget_show (window->priv->side_panel);
+	gtk_container_add (GTK_CONTAINER (window->priv->side_panel_revealer),
+	                   window->priv->side_panel);
 
-	gtk_paned_pack1 (GTK_PANED (window->priv->hpaned), 
-			 window->priv->side_panel, 
-			 FALSE, 
+	gtk_paned_pack1 (GTK_PANED (window->priv->hpaned),
+			 window->priv->side_panel_revealer,
+			 FALSE,
 			 FALSE);
 
-	g_signal_connect_after (window->priv->side_panel,
+	g_signal_connect_after (window->priv->side_panel_revealer,
 				"notify::visible",
 				G_CALLBACK (side_panel_visibility_changed),
 				window);
@@ -3932,7 +3939,7 @@ init_panels_visibility (GeditWindow *window)
 
 	if (side_panel_visible)
 	{
-		gtk_widget_show (window->priv->side_panel);
+		gtk_widget_show (window->priv->side_panel_revealer);
 	}
 
 	/* bottom pane, it can be empty */


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