X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=player%2Fbrowser.c;h=e4b3e747228c33e0282d53b753164c0a17266b6c;hb=99f9996b499c1b0e82e4297f264f3e5844b02877;hp=8dfadf401184620bb2ce31c43dacddc863dae5e6;hpb=92afc1bef8c979f0025f94bd13672360a53f9709;p=projects%2Fchimara%2Fchimara.git diff --git a/player/browser.c b/player/browser.c index 8dfadf4..e4b3e74 100644 --- a/player/browser.c +++ b/player/browser.c @@ -1,6 +1,9 @@ #include +#include #include #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)); }