aboutsummaryrefslogtreecommitdiff
path: root/src/narrative_window.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2017-01-16 22:42:26 +0100
committerThomas White <taw@bitwiz.org.uk>2017-01-16 22:42:26 +0100
commit4fc663655ff4a8ea990d7e4f4b7580cf63e233c4 (patch)
tree2b1e8141f2ada14987275da1adc15cbac7390a86 /src/narrative_window.c
parente93d3a16ac3bb381cf7d18a184fb4369c71d8caf (diff)
Titlebar stuff, keep track of when presentation has been changed
Diffstat (limited to 'src/narrative_window.c')
-rw-r--r--src/narrative_window.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/narrative_window.c b/src/narrative_window.c
index 1a9bcf5..6f960c6 100644
--- a/src/narrative_window.c
+++ b/src/narrative_window.c
@@ -375,6 +375,13 @@ static gboolean button_press_sig(GtkWidget *da, GdkEventButton *event,
}
+static void changed_sig(GtkWidget *da, NarrativeWindow *nw)
+{
+ nw->p->saved = 0;
+ update_titlebar(nw);
+}
+
+
static void scroll_down(NarrativeWindow *nw)
{
gdouble inc, val;
@@ -569,6 +576,23 @@ GActionEntry nw_entries_p[] = {
};
+void update_titlebar(NarrativeWindow *nw)
+{
+ char *title;
+
+ title = get_titlebar_string(nw->p);
+ title = realloc(title, strlen(title)+16);
+ if ( title == NULL ) return;
+
+ strcat(title, " - Colloquium");
+ if ( !nw->p->saved ) {
+ strcat(title, " *");
+ }
+ gtk_window_set_title(GTK_WINDOW(nw->window), title);
+ free(title);
+}
+
+
NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *app)
{
NarrativeWindow *nw;
@@ -593,6 +617,7 @@ NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *app)
nw->window = gtk_application_window_new(GTK_APPLICATION(app));
p->narrative_window = nw;
+ update_titlebar(nw);
g_action_map_add_action_entries(G_ACTION_MAP(nw->window), nw_entries,
G_N_ELEMENTS(nw_entries), nw);
@@ -692,6 +717,8 @@ NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *app)
g_signal_connect(G_OBJECT(nw->sceditor), "button-press-event",
G_CALLBACK(button_press_sig), nw);
+ g_signal_connect(G_OBJECT(nw->sceditor), "changed",
+ G_CALLBACK(changed_sig), nw);
g_signal_connect(G_OBJECT(nw->sceditor), "key-press-event",
G_CALLBACK(key_press_sig), nw);
g_signal_connect(G_OBJECT(nw->window), "destroy",