Some minor cleanup
[rodin/chimara.git] / player / main.c
index 8d9bb255d2a94cf38ab53d06e8507e8fc9eb4596..962ca30e0ba3f05198a9f55d163f56a2e8646769 100644 (file)
@@ -65,6 +65,26 @@ load_object(const gchar *name)
        return retval;
 }
 
+static void
+change_window_title(ChimaraGlk *glk, GParamSpec *pspec, GtkWindow *window)
+{
+       gchar *program_name, *story_name, *title;
+       g_object_get(glk, "program-name", &program_name, "story-name", &story_name, NULL);
+       if(!program_name) {
+               gtk_window_set_title(window, "Chimara");
+               return;
+       }
+       else if(!story_name)
+               title = g_strdup_printf("%s - Chimara", program_name);
+       else
+               title = g_strdup_printf("%s - %s - Chimara", program_name, story_name);
+               
+       g_free(program_name);
+       g_free(story_name);
+       gtk_window_set_title(window, title);
+       g_free(title);
+}
+
 static void
 create_window(void)
 {
@@ -142,6 +162,23 @@ create_window(void)
        
        glk = chimara_if_new();
        g_object_set(glk, "ignore-errors", TRUE, NULL);
+       if( !chimara_glk_set_css_from_file(CHIMARA_GLK(glk), PACKAGE_DATA_DIR "/style.css", &error) ) {
+#ifdef DEBUG
+               g_error_free(error);
+               error = NULL;
+               if( !chimara_glk_set_css_from_file(CHIMARA_GLK(glk), PACKAGE_SRC_DIR "/macstyle.css", &error) ) {
+#endif /* DEBUG */
+                       error_dialog(NULL, error, "Couldn't open CSS file: ");
+                       return;
+#ifdef DEBUG
+               }
+#endif /* DEBUG */
+       }
+       
+       /* DON'T UNCOMMENT THIS your eyes will burn
+        but it is a good test of programmatically altering just one style
+       chimara_glk_set_css_from_string(CHIMARA_GLK(glk),
+           "buffer.normal { font-family: 'Comic Sans MS'; }");*/
        
        GtkBox *vbox = GTK_BOX( gtk_builder_get_object(builder, "vbox") );                      
        if(vbox == NULL)
@@ -159,6 +196,8 @@ create_window(void)
        gtk_box_pack_start(vbox, toolbar, FALSE, FALSE, 0);
        
        gtk_builder_connect_signals(builder, glk);
+       g_signal_connect(glk, "notify::program-name", G_CALLBACK(change_window_title), window);
+       g_signal_connect(glk, "notify::story-name", G_CALLBACK(change_window_title), window);
 }
 
 int