static void anjuta_window_instance_init (AnjutaWindow *win) { GtkWidget *menubar, *about_menu; GtkWidget *view_menu, *hbox; GtkWidget *main_box; GtkWidget *dockbar; GtkAction* action; GList *plugins_dirs = NULL; GdkGeometry size_hints = { 100, 100, 0, 0, 100, 100, 1, 1, 0.0, 0.0, GDK_GRAVITY_NORTH_WEST }; DEBUG_PRINT ("%s", "Initializing Anjuta..."); gtk_window_set_geometry_hints (GTK_WINDOW (win), GTK_WIDGET (win), &size_hints, GDK_HINT_RESIZE_INC); gtk_window_set_resizable (GTK_WINDOW (win), TRUE); /* * Main box */ main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (win), main_box); gtk_widget_show (main_box); win->values = NULL; win->widgets = NULL; win->maximized = FALSE; /* Settings */ win->settings = g_settings_new (PREF_SCHEMA); /* Status bar */ win->status = ANJUTA_STATUS (anjuta_status_new ()); anjuta_status_set_title_window (win->status, GTK_WIDGET (win)); gtk_widget_show (GTK_WIDGET (win->status)); gtk_box_pack_end (GTK_BOX (main_box), GTK_WIDGET (win->status), FALSE, TRUE, 0); g_object_ref (G_OBJECT (win->status)); g_object_add_weak_pointer (G_OBJECT (win->status), (gpointer)&win->status); /* configure dock */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox); win->dock = gdl_dock_new (); gtk_widget_show (win->dock); gtk_box_pack_end(GTK_BOX (hbox), win->dock, TRUE, TRUE, 0); dockbar = gdl_dock_bar_new (G_OBJECT (win->dock)); gtk_widget_show (dockbar); gtk_box_pack_start(GTK_BOX (hbox), dockbar, FALSE, FALSE, 0); win->layout_manager = gdl_dock_layout_new (G_OBJECT (win->dock)); g_signal_connect (win->layout_manager, "notify::dirty", G_CALLBACK (on_layout_dirty_notify), win); g_signal_connect (gdl_dock_layout_get_master (win->layout_manager), "notify::locked", G_CALLBACK (on_layout_locked_notify), win); /* UI engine */ win->ui = anjuta_ui_new (); g_object_add_weak_pointer (G_OBJECT (win->ui), (gpointer)&win->ui); /* show tooltips in the statusbar */ g_signal_connect (win->ui, "connect_proxy", G_CALLBACK (connect_proxy_cb), win); g_signal_connect (win->ui, "disconnect_proxy", G_CALLBACK (disconnect_proxy_cb), win); /* Plugin Manager */ plugins_dirs = g_list_prepend (plugins_dirs, PACKAGE_PLUGIN_DIR); win->plugin_manager = anjuta_plugin_manager_new (G_OBJECT (win), win->status, plugins_dirs); win->profile_manager = anjuta_profile_manager_new (win->plugin_manager); g_list_free (plugins_dirs); /* Preferences */ win->preferences = anjuta_preferences_new (win->plugin_manager, PREF_SCHEMA); g_object_add_weak_pointer (G_OBJECT (win->preferences), (gpointer)&win->preferences); g_signal_connect (win->settings, "changed::" GDL_STYLE, G_CALLBACK (on_gdl_style_changed), win); on_gdl_style_changed (win->settings, GDL_STYLE, win); /* Register actions */ anjuta_ui_add_action_group_entries (win->ui, "ActionGroupFile", _("File"), menu_entries_file, G_N_ELEMENTS (menu_entries_file), GETTEXT_PACKAGE, TRUE, win); anjuta_ui_add_action_group_entries (win->ui, "ActionGroupEdit", _("Edit"), menu_entries_edit, G_N_ELEMENTS (menu_entries_edit), GETTEXT_PACKAGE, TRUE, win); anjuta_ui_add_action_group_entries (win->ui, "ActionGroupView", _("View"), menu_entries_view, G_N_ELEMENTS (menu_entries_view), GETTEXT_PACKAGE, TRUE, win); anjuta_ui_add_toggle_action_group_entries (win->ui, "ActionGroupToggleView", _("View"), menu_entries_toggle_view, G_N_ELEMENTS (menu_entries_toggle_view), GETTEXT_PACKAGE, TRUE, win); anjuta_ui_add_action_group_entries (win->ui, "ActionGroupHelp", _("Help"), menu_entries_help, G_N_ELEMENTS (menu_entries_help), GETTEXT_PACKAGE, TRUE, win); /* Merge UI */ anjuta_ui_merge (win->ui, UI_FILE); /* Adding accels group */ gtk_window_add_accel_group (GTK_WINDOW (win), gtk_ui_manager_get_accel_group (GTK_UI_MANAGER (win->ui))); /* create main menu */ menubar = gtk_ui_manager_get_widget (GTK_UI_MANAGER (win->ui), "/MenuMain"); gtk_box_pack_start (GTK_BOX (main_box), menubar, FALSE, FALSE, 0); gtk_widget_show (menubar); /* create toolbar */ win->toolbar = gtk_ui_manager_get_widget (GTK_UI_MANAGER (win->ui), "/ToolbarMain"); if (!g_settings_get_boolean (win->settings, TOOLBAR_VISIBLE)) gtk_widget_hide (win->toolbar); gtk_style_context_add_class (gtk_widget_get_style_context (win->toolbar), GTK_STYLE_CLASS_PRIMARY_TOOLBAR); gtk_toolbar_set_icon_size (GTK_TOOLBAR (win->toolbar), GTK_ICON_SIZE_MENU); gtk_box_pack_start (GTK_BOX (main_box), win->toolbar, FALSE, FALSE, 0); action = gtk_ui_manager_get_action (GTK_UI_MANAGER (win->ui), "/MenuMain/MenuView/Toolbar"); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION(action), g_settings_get_boolean (win->settings, TOOLBAR_VISIBLE)); g_signal_connect (win->settings, "changed::" TOOLBAR_STYLE, G_CALLBACK (on_toolbar_style_changed), win); on_toolbar_style_changed (win->settings, TOOLBAR_STYLE, win); /* Create widgets menu */ view_menu = gtk_ui_manager_get_widget (GTK_UI_MANAGER(win->ui), "/MenuMain/MenuView"); win->view_menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (view_menu)); /* Create about plugins menu */ about_menu = gtk_ui_manager_get_widget (GTK_UI_MANAGER(win->ui), "/MenuMain/PlaceHolderHelpMenus/MenuHelp/" "PlaceHolderHelpAbout/AboutPlugins"); about_create_plugins_submenu (ANJUTA_SHELL (win), about_menu); /* Add main view */ gtk_box_pack_start (GTK_BOX (main_box), hbox, TRUE, TRUE, 0); /* Connect to session */ g_signal_connect (G_OBJECT (win), "save_session", G_CALLBACK (on_session_save), win); g_signal_connect (G_OBJECT (win), "load_session", G_CALLBACK (on_session_load), win); /* Loading accels */ anjuta_ui_load_accels (NULL); win->save_count = 0; }
Dock::Dock(Gtk::Orientation orientation) : _gdl_dock(gdl_dock_new()), #if WITH_GDL_3_6 _gdl_dock_bar(GDL_DOCK_BAR(gdl_dock_bar_new(G_OBJECT(_gdl_dock)))), #else _gdl_dock_bar(GDL_DOCK_BAR(gdl_dock_bar_new(GDL_DOCK(_gdl_dock)))), #endif _scrolled_window (Gtk::manage(new Gtk::ScrolledWindow)) { #if WITH_GDL_3_6 gtk_orientable_set_orientation(GTK_ORIENTABLE(_gdl_dock_bar), static_cast<GtkOrientation>(orientation)); #else gdl_dock_bar_set_orientation(_gdl_dock_bar, static_cast<GtkOrientation>(orientation)); #endif #if WITH_GTKMM_3_0 switch(orientation) { case Gtk::ORIENTATION_VERTICAL: _dock_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL)); break; case Gtk::ORIENTATION_HORIZONTAL: _dock_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL)); } _paned = Gtk::manage(new Gtk::Paned(orientation)); #else switch (orientation) { case Gtk::ORIENTATION_VERTICAL: _dock_box = Gtk::manage(new Gtk::HBox()); _paned = Gtk::manage(new Gtk::VPaned()); break; case Gtk::ORIENTATION_HORIZONTAL: _dock_box = Gtk::manage(new Gtk::VBox()); _paned = Gtk::manage(new Gtk::HPaned()); } #endif _scrolled_window->add(*_dock_box); _scrolled_window->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); _paned->pack1(*Glib::wrap(GTK_WIDGET(_gdl_dock)), false, false); _paned->pack2(_filler, true, false); _dock_box->pack_start(*_paned, Gtk::PACK_EXPAND_WIDGET); _dock_box->pack_end(*Gtk::manage(Glib::wrap(GTK_WIDGET(_gdl_dock_bar))), Gtk::PACK_SHRINK); _dock_box->get_parent()->set_resize_mode(Gtk::RESIZE_PARENT); _scrolled_window->set_size_request(0); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); GdlSwitcherStyle gdl_switcher_style = static_cast<GdlSwitcherStyle>(prefs->getIntLimited("/options/dock/switcherstyle", GDL_SWITCHER_STYLE_BOTH, 0, 4)); GdlDockMaster* master = NULL; g_object_get(GDL_DOCK_OBJECT(_gdl_dock), "master", &master, NULL); g_object_set(master, "switcher-style", gdl_switcher_style, NULL); GdlDockBarStyle gdl_dock_bar_style = static_cast<GdlDockBarStyle>(prefs->getIntLimited("/options/dock/dockbarstyle", GDL_DOCK_BAR_BOTH, 0, 3)); gdl_dock_bar_set_style(_gdl_dock_bar, gdl_dock_bar_style); INKSCAPE.signal_dialogs_hide.connect(sigc::mem_fun(*this, &Dock::hide)); INKSCAPE.signal_dialogs_unhide.connect(sigc::mem_fun(*this, &Dock::show)); g_signal_connect(_paned->gobj(), "button-press-event", G_CALLBACK(_on_paned_button_event), (void *)this); g_signal_connect(_paned->gobj(), "button-release-event", G_CALLBACK(_on_paned_button_event), (void *)this); signal_layout_changed().connect(sigc::mem_fun(*this, &Inkscape::UI::Widget::Dock::_onLayoutChanged)); }
static void anjuta_app_instance_init (AnjutaApp *app) { gint merge_id; GtkWidget *menubar, *about_menu; GtkWidget *view_menu, *hbox; GtkWidget *main_box; GtkWidget *dockbar; GtkAction* action; GList *plugins_dirs = NULL; gchar* style; GdkGeometry size_hints = { 100, 100, 0, 0, 100, 100, 1, 1, 0.0, 0.0, GDK_GRAVITY_NORTH_WEST }; DEBUG_PRINT ("%s", "Initializing Anjuta..."); gtk_window_set_geometry_hints (GTK_WINDOW (app), GTK_WIDGET (app), &size_hints, GDK_HINT_RESIZE_INC); gtk_window_set_resizable (GTK_WINDOW (app), TRUE); /* * Main box */ main_box = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (app), main_box); gtk_widget_show (main_box); app->values = NULL; app->widgets = NULL; /* Status bar */ app->status = ANJUTA_STATUS (anjuta_status_new ()); anjuta_status_set_title_window (app->status, GTK_WIDGET (app)); gtk_widget_show (GTK_WIDGET (app->status)); gtk_box_pack_end (GTK_BOX (main_box), GTK_WIDGET (app->status), FALSE, TRUE, 0); g_object_ref (G_OBJECT (app->status)); g_object_add_weak_pointer (G_OBJECT (app->status), (gpointer)&app->status); /* configure dock */ hbox = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox); app->dock = gdl_dock_new (); gtk_widget_show (app->dock); gtk_box_pack_end(GTK_BOX (hbox), app->dock, TRUE, TRUE, 0); dockbar = gdl_dock_bar_new (GDL_DOCK(app->dock)); gtk_widget_show (dockbar); gtk_box_pack_start(GTK_BOX (hbox), dockbar, FALSE, FALSE, 0); app->layout_manager = gdl_dock_layout_new (GDL_DOCK (app->dock)); g_signal_connect (app->layout_manager, "notify::dirty", G_CALLBACK (on_layout_dirty_notify), app); g_signal_connect (app->layout_manager->master, "notify::locked", G_CALLBACK (on_layout_locked_notify), app); /* UI engine */ app->ui = anjuta_ui_new (); g_object_add_weak_pointer (G_OBJECT (app->ui), (gpointer)&app->ui); /* show tooltips in the statusbar */ g_signal_connect (app->ui, "connect_proxy", G_CALLBACK (connect_proxy_cb), app); g_signal_connect (app->ui, "disconnect_proxy", G_CALLBACK (disconnect_proxy_cb), app); /* Plugin Manager */ plugins_dirs = g_list_prepend (plugins_dirs, PACKAGE_PLUGIN_DIR); app->plugin_manager = anjuta_plugin_manager_new (G_OBJECT (app), app->status, plugins_dirs); app->profile_manager = anjuta_profile_manager_new (app->plugin_manager); g_list_free (plugins_dirs); /* Preferences */ app->preferences = anjuta_preferences_new (app->plugin_manager); g_object_add_weak_pointer (G_OBJECT (app->preferences), (gpointer)&app->preferences); anjuta_preferences_notify_add_string (app->preferences, "anjuta.gdl.style", on_gdl_style_changed, app, NULL); style = anjuta_preferences_get (app->preferences, "anjuta.gdl.style"); on_gdl_style_changed (app->preferences, NULL, style, app); g_free (style); /* Register actions */ anjuta_ui_add_action_group_entries (app->ui, "ActionGroupFile", _("File"), menu_entries_file, G_N_ELEMENTS (menu_entries_file), GETTEXT_PACKAGE, TRUE, app); anjuta_ui_add_action_group_entries (app->ui, "ActionGroupEdit", _("Edit"), menu_entries_edit, G_N_ELEMENTS (menu_entries_edit), GETTEXT_PACKAGE, TRUE, app); anjuta_ui_add_action_group_entries (app->ui, "ActionGroupView", _("View"), menu_entries_view, G_N_ELEMENTS (menu_entries_view), GETTEXT_PACKAGE, TRUE, app); anjuta_ui_add_toggle_action_group_entries (app->ui, "ActionGroupToggleView", _("View"), menu_entries_toggle_view, G_N_ELEMENTS (menu_entries_toggle_view), GETTEXT_PACKAGE, TRUE, app); anjuta_ui_add_action_group_entries (app->ui, "ActionGroupHelp", _("Help"), menu_entries_help, G_N_ELEMENTS (menu_entries_help), GETTEXT_PACKAGE, TRUE, app); /* Merge UI */ merge_id = anjuta_ui_merge (app->ui, UI_FILE); /* Adding accels group */ gtk_window_add_accel_group (GTK_WINDOW (app), gtk_ui_manager_get_accel_group (GTK_UI_MANAGER (app->ui))); /* create main menu */ menubar = gtk_ui_manager_get_widget (GTK_UI_MANAGER (app->ui), "/MenuMain"); gtk_box_pack_start (GTK_BOX (main_box), menubar, FALSE, FALSE, 0); gtk_widget_show (menubar); /* create toolbar */ app->toolbar = gtk_ui_manager_get_widget (GTK_UI_MANAGER (app->ui), "/ToolbarMain"); if (!anjuta_preferences_get_bool (app->preferences, "anjuta.toolbar.visible")) gtk_widget_hide (app->toolbar); gtk_box_pack_start (GTK_BOX (main_box), app->toolbar, FALSE, FALSE, 0); action = gtk_ui_manager_get_action (GTK_UI_MANAGER (app->ui), "/MenuMain/MenuView/Toolbar"); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION(action), anjuta_preferences_get_bool_with_default (app->preferences, "anjuta.toolbar.visible", TRUE)); anjuta_preferences_notify_add_string (app->preferences, "anjuta.toolbar.style", on_toolbar_style_changed, app, NULL); style = anjuta_preferences_get (app->preferences, "anjuta.toolbar.style"); on_toolbar_style_changed (app->preferences, NULL, style, app); g_free (style); /* Create widgets menu */ view_menu = gtk_ui_manager_get_widget (GTK_UI_MANAGER(app->ui), "/MenuMain/MenuView"); app->view_menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (view_menu)); /* Disable unavailible tutorials */ action = anjuta_ui_get_action(app->ui, "ActionGroupHelp", "ActionHelpTutorial"); g_object_set(G_OBJECT(action), "visible", FALSE, NULL); action = anjuta_ui_get_action(app->ui, "ActionGroupHelp", "ActionHelpAdvancedTutorial"); g_object_set(G_OBJECT(action), "visible", FALSE, NULL); /* Create about plugins menu */ about_menu = gtk_ui_manager_get_widget (GTK_UI_MANAGER(app->ui), "/MenuMain/PlaceHolderHelpMenus/MenuHelp/" "PlaceHolderHelpAbout/AboutPlugins"); about_create_plugins_submenu (ANJUTA_SHELL (app), about_menu); /* Add main view */ gtk_box_pack_start (GTK_BOX (main_box), hbox, TRUE, TRUE, 0); /* Connect to session */ g_signal_connect (G_OBJECT (app), "save_session", G_CALLBACK (on_session_save), app); g_signal_connect (G_OBJECT (app), "load_session", G_CALLBACK (on_session_load), app); /* Loading accels */ anjuta_ui_load_accels (NULL); app->save_count = 0; }