Implement empty browser window
[projects/chimara/chimara.git] / player / browser.c
index 8dfadf401184620bb2ce31c43dacddc863dae5e6..e4b3e747228c33e0282d53b753164c0a17266b6c 100644 (file)
@@ -1,6 +1,9 @@
 #include <glib-object.h>
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #include "browser.h"
+#include "app.h"
+#include "error.h"
 
 typedef struct _ChimaraBrowserPrivate {
        int dummy;
@@ -38,12 +41,39 @@ chimara_browser_class_init(ChimaraBrowserClass *klass)
 static void
 chimara_browser_init(ChimaraBrowser *self)
 {
+       ChimaraApp *theapp = chimara_app_get();
+       GError *error = NULL;
+
+       /* Set own properties */
+       g_object_set(self,
+               "title", _("Chimara"),
+               NULL);
+
+       GtkUIManager *uimanager = gtk_ui_manager_new();
+       if( !gtk_ui_manager_add_ui_from_file(uimanager, PACKAGE_DATA_DIR "/chimara.menus", &error) ) {
+#ifdef DEBUG
+               g_error_free(error);
+               error = NULL;
+               if( !gtk_ui_manager_add_ui_from_file(uimanager, PACKAGE_SRC_DIR "/chimara.menus", &error) ) {
+#endif /* DEBUG */
+                       error_dialog(NULL, error, "Error while building interface: ");
+                       return;
+#ifdef DEBUG
+               }
+#endif /* DEBUG */
+       }
+
+       gtk_ui_manager_insert_action_group(uimanager, chimara_app_get_action_group(theapp), 0);
+       GtkWidget *menubar = gtk_ui_manager_get_widget(uimanager, "/browser_menu");
+       gtk_container_add(GTK_CONTAINER(self), menubar);
 }
 
 /* PUBLIC FUNCTIONS */
-ChimaraBrowser *
+GtkWidget *
 chimara_browser_new(void)
 {
-       return CHIMARA_BROWSER(g_object_new(CHIMARA_TYPE_BROWSER, NULL));
+       return GTK_WIDGET(g_object_new(CHIMARA_TYPE_BROWSER,
+               "type", GTK_WINDOW_TOPLEVEL,
+               NULL));
 }