From 366cfa34733d4058e24b84f1fbc1e40c9ab7f4c9 Mon Sep 17 00:00:00 2001 From: Přemysl Janouch Date: Tue, 9 Oct 2012 07:05:32 +0200 Subject: Show diagram zoom in the main window. --- src/ld-window-main.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/ld-window-main.c b/src/ld-window-main.c index a12655c..8b83852 100644 --- a/src/ld-window-main.c +++ b/src/ld-window-main.c @@ -40,6 +40,7 @@ struct _LdWindowMainPrivate LdDiagramView *view; GtkWidget *statusbar; + GtkWidget *zoom_label; guint statusbar_symbol_context_id; guint statusbar_menu_context_id; guint statusbar_hint_context_id; @@ -341,9 +342,6 @@ ld_window_main_init (LdWindowMain *self) ld_diagram_view_set_diagram (priv->view, priv->diagram); ld_diagram_view_set_library (priv->view, priv->library); - g_signal_connect (priv->view, "notify::zoom", - G_CALLBACK (on_view_zoom_changed), self); - ld_category_view_set_category (LD_CATEGORY_VIEW (priv->library_view), ld_library_get_root (priv->library)); @@ -358,6 +356,15 @@ ld_window_main_init (LdWindowMain *self) (GTK_STATUSBAR (priv->statusbar), priv->statusbar_hint_context_id, _("Drag symbols from the library pane to add them to the diagram.")); + priv->zoom_label = gtk_label_new (""); + gtk_label_set_single_line_mode (GTK_LABEL (priv->zoom_label), TRUE); + gtk_box_pack_end (GTK_BOX (gtk_statusbar_get_message_area + (GTK_STATUSBAR (priv->statusbar))), priv->zoom_label, FALSE, FALSE, 0); + + g_signal_connect (priv->view, "notify::zoom", + G_CALLBACK (on_view_zoom_changed), self); + g_object_notify (G_OBJECT (priv->view), "zoom"); + action_set_sensitive (self, "Undo", FALSE); action_set_sensitive (self, "Redo", FALSE); action_set_sensitive (self, "Delete", FALSE); @@ -901,12 +908,19 @@ static void on_view_zoom_changed (LdDiagramView *view, GParamSpec *pspec, LdWindowMain *self) { + gchar *zoom; + action_set_sensitive (self, "ZoomIn", ld_diagram_view_can_zoom_in (self->priv->view)); action_set_sensitive (self, "ZoomOut", ld_diagram_view_can_zoom_out (self->priv->view)); action_set_sensitive (self, "NormalSize", ld_diagram_view_get_zoom (self->priv->view) != 1); + + zoom = g_strdup_printf (_("%d%%"), + (gint) (ld_diagram_view_get_zoom (self->priv->view) * 100 + 0.5)); + gtk_label_set_text (GTK_LABEL (self->priv->zoom_label), zoom); + g_free (zoom); } static void -- cgit v1.2.3-70-g09d2