Updating branch refs/heads/master to ba38b4940b2998c30ba9bde6c707bf1c589cae0b (commit) from 82b6e834ddeea4be8bf901307e6e093bde24631c (commit)
commit ba38b4940b2998c30ba9bde6c707bf1c589cae0b Author: Matthew Brush <mbr...@codebrainz.ca> Date: Mon Oct 3 22:33:51 2011 -0700 Update statusbar filetype when notebook pages are changed. Note the FIXME in the comments, this will probably need some refactoring. mousepad/mousepad-statusbar.c | 31 +++++++++++++++++++++++++++++++ mousepad/mousepad-statusbar.h | 3 +++ mousepad/mousepad-window.c | 8 +++++++- 3 files changed, 41 insertions(+), 1 deletions(-) diff --git a/mousepad/mousepad-statusbar.c b/mousepad/mousepad-statusbar.c index 9ed0d94..a7da0f8 100644 --- a/mousepad/mousepad-statusbar.c +++ b/mousepad/mousepad-statusbar.c @@ -50,6 +50,7 @@ struct _MousepadStatusbar guint overwrite_enabled : 1; /* extra labels in the statusbar */ + GtkWidget *language; GtkWidget *position; GtkWidget *overwrite; }; @@ -119,6 +120,16 @@ mousepad_statusbar_init (MousepadStatusbar *statusbar) separator = gtk_vseparator_new (); gtk_box_pack_start (GTK_BOX (box), separator, FALSE, FALSE, 0); gtk_widget_show (separator); + + /* language/filetype */ + statusbar->language = gtk_label_new (_("Filetype: None")); + gtk_box_pack_start (GTK_BOX (box), statusbar->language, FALSE, TRUE, 0); + gtk_widget_show (statusbar->language); + + /* separator */ + separator = gtk_vseparator_new (); + gtk_box_pack_start (GTK_BOX (box), separator, FALSE, FALSE, 0); + gtk_widget_show (separator); /* line and column numbers */ statusbar->position = gtk_label_new (NULL); @@ -169,6 +180,26 @@ mousepad_statusbar_overwrite_clicked (GtkWidget *widget, void +mousepad_statusbar_set_language (MousepadStatusbar *statusbar, + GtkSourceLanguage *language) +{ + gchar *label; + + mousepad_return_if_fail (MOUSEPAD_IS_STATUSBAR (statusbar)); + + if (language == NULL) + gtk_label_set_text (GTK_LABEL (statusbar->language), _("Filetype: None")); + else + { + label = g_strdup_printf (_("Filetype: %s"), gtk_source_language_get_name (language)); + gtk_label_set_text (GTK_LABEL (statusbar->language), label); + g_free (label); + } +} + + + +void mousepad_statusbar_set_cursor_position (MousepadStatusbar *statusbar, gint line, gint column, diff --git a/mousepad/mousepad-statusbar.h b/mousepad/mousepad-statusbar.h index c44b54e..8ebe7a6 100644 --- a/mousepad/mousepad-statusbar.h +++ b/mousepad/mousepad-statusbar.h @@ -41,6 +41,9 @@ void mousepad_statusbar_set_cursor_position (MousepadStatusbar *statusba void mousepad_statusbar_set_overwrite (MousepadStatusbar *statusbar, gboolean overwrite); +void mousepad_statusbar_set_language (MousepadStatusbar *statusbar, + GtkSourceLanguage *language); + G_END_DECLS #endif /* !__MOUSEPAD_STATUSBAR_H__ */ diff --git a/mousepad/mousepad-window.c b/mousepad/mousepad-window.c index 4c5e33e..54a3520 100644 --- a/mousepad/mousepad-window.c +++ b/mousepad/mousepad-window.c @@ -1306,7 +1306,8 @@ mousepad_window_notebook_switch_page (GtkNotebook *notebook, guint page_num, MousepadWindow *window) { - MousepadDocument *document; + MousepadDocument *document; + GtkSourceLanguage *language; mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); mousepad_return_if_fail (GTK_IS_NOTEBOOK (notebook)); @@ -1328,6 +1329,11 @@ mousepad_window_notebook_switch_page (GtkNotebook *notebook, /* update the statusbar */ mousepad_document_send_signals (window->active); + + /* set the filetype in the status bar + * FIXME: this doesn't belong here */ + language = gtk_source_buffer_get_language (GTK_SOURCE_BUFFER (window->active->buffer)); + mousepad_statusbar_set_language (MOUSEPAD_STATUSBAR (window->statusbar), language); } } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits