static void impl_attach_window (EphyExtension *extension, EphyWindow *window) { GtkUIManager *manager; GtkActionGroup *action_group; GtkAction *action; GSettings *settings; EphyLocationController *location_controller; g_signal_connect (EPHY_SETTINGS_LOCKDOWN, "changed::" EPHY_PREFS_LOCKDOWN_FULLSCREEN, G_CALLBACK (fullscreen_cb), window); g_signal_connect (EPHY_SETTINGS_LOCKDOWN, "changed::" EPHY_PREFS_LOCKDOWN_ARBITRARY_URL, G_CALLBACK (arbitrary_url_cb), window); /* Trigger an initial state on these elements. */ fullscreen_cb (EPHY_SETTINGS_LOCKDOWN, EPHY_PREFS_LOCKDOWN_FULLSCREEN, window); arbitrary_url_cb (EPHY_SETTINGS_LOCKDOWN, EPHY_PREFS_LOCKDOWN_ARBITRARY_URL, window); manager = GTK_UI_MANAGER (ephy_window_get_ui_manager (window)); action_group = find_action_group (manager, "WindowActions"); bind_settings_and_actions (EPHY_SETTINGS_LOCKDOWN, action_group, window_actions, G_N_ELEMENTS (window_actions)); action_group = find_action_group (manager, "PopupsActions"); bind_settings_and_actions (EPHY_SETTINGS_LOCKDOWN, action_group, popup_actions, G_N_ELEMENTS (popup_actions)); action = gtk_action_group_get_action (action_group, "SetImageAsBackground"); settings = ephy_settings_get ("org.gnome.desktop.background"); g_settings_bind_writable (settings, "picture-filename", action, "sensitive", FALSE); action_group = find_action_group (manager, "SpecialToolbarActions"); bind_settings_and_actions (EPHY_SETTINGS_LOCKDOWN, action_group, special_toolbar_actions, G_N_ELEMENTS (special_toolbar_actions)); location_controller = ephy_window_get_location_controller (window); bind_location_controller (EPHY_SETTINGS_LOCKDOWN, location_controller); }
/** * _rb_source_register_action_group: * @source: a #RBSource * @group_name: action group name * @actions: array of GtkActionEntry structures for the action group * @num_actions: number of actions in the @actions array * @user_data: user data to use for action signal handlers * * Creates and registers a GtkActionGroup for the source. * * Return value: the created action group */ GtkActionGroup * _rb_source_register_action_group (RBSource *source, const char *group_name, GtkActionEntry *actions, int num_actions, gpointer user_data) { GtkUIManager *uimanager; GtkActionGroup *group; g_return_val_if_fail (group_name != NULL, NULL); g_object_get (source, "ui-manager", &uimanager, NULL); group = find_action_group (uimanager, group_name); if (group == NULL) { group = gtk_action_group_new (group_name); gtk_action_group_set_translation_domain (group, GETTEXT_PACKAGE); if (actions != NULL) { gtk_action_group_add_actions (group, actions, num_actions, user_data); } gtk_ui_manager_insert_action_group (uimanager, group, 0); } else { g_object_ref (group); } g_object_unref (uimanager); return group; }