static void nemo_desktop_window_constructed (GObject *obj) { GtkActionGroup *action_group; GtkAction *action; AtkObject *accessible; NemoDesktopWindow *window = NEMO_DESKTOP_WINDOW (obj); NemoWindow *nwindow = NEMO_WINDOW (obj); G_OBJECT_CLASS (nemo_desktop_window_parent_class)->constructed (obj); g_object_set_data (G_OBJECT (window), "monitor_number", GINT_TO_POINTER (window->details->monitor)); gtk_widget_hide (nwindow->details->statusbar); gtk_widget_hide (nwindow->details->menubar); action_group = nemo_window_get_main_action_group (nwindow); /* Don't allow close action on desktop */ action = gtk_action_group_get_action (action_group, NEMO_ACTION_CLOSE); gtk_action_set_sensitive (action, FALSE); /* Don't allow new tab on desktop */ action = gtk_action_group_get_action (action_group, NEMO_ACTION_NEW_TAB); gtk_action_set_sensitive (action, FALSE); /* Set the accessible name so that it doesn't inherit the cryptic desktop URI. */ accessible = gtk_widget_get_accessible (GTK_WIDGET (window)); if (accessible) { atk_object_set_name (accessible, _("Desktop")); } nemo_desktop_window_update_geometry (window); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); gtk_window_set_decorated (GTK_WINDOW (window), FALSE); gtk_widget_show (GTK_WIDGET (window)); }
static void nemo_window_update_split_view_actions_sensitivity (NemoWindow *window) { GtkActionGroup *action_group; GtkAction *action; gboolean have_multiple_panes; gboolean next_pane_is_in_same_location; GFile *active_pane_location; GFile *next_pane_location; NemoWindowPane *next_pane; NemoWindowSlot *active_slot; active_slot = nemo_window_get_active_slot (window); action_group = nemo_window_get_main_action_group (window); /* collect information */ have_multiple_panes = nemo_window_split_view_showing (window); if (active_slot != NULL) { active_pane_location = nemo_window_slot_get_location (active_slot); } else { active_pane_location = NULL; } next_pane = nemo_window_get_next_pane (window); if (next_pane && next_pane->active_slot) { next_pane_location = nemo_window_slot_get_location (next_pane->active_slot); next_pane_is_in_same_location = (active_pane_location && next_pane_location && g_file_equal (active_pane_location, next_pane_location)); } else { next_pane_location = NULL; next_pane_is_in_same_location = FALSE; } /* switch to next pane */ action = gtk_action_group_get_action (action_group, "SplitViewNextPane"); gtk_action_set_sensitive (action, have_multiple_panes); /* same location */ action = gtk_action_group_get_action (action_group, "SplitViewSameLocation"); gtk_action_set_sensitive (action, have_multiple_panes && !next_pane_is_in_same_location); /* clean up */ g_clear_object (&active_pane_location); g_clear_object (&next_pane_location); }
static void window_menus_set_bindings (NemoWindow *window) { GtkActionGroup *action_group; GtkAction *action; action_group = nemo_window_get_main_action_group (window); action = gtk_action_group_get_action (action_group, NEMO_ACTION_SHOW_HIDE_TOOLBAR); g_settings_bind (nemo_window_state, NEMO_WINDOW_STATE_START_WITH_TOOLBAR, action, "active", G_SETTINGS_BIND_DEFAULT); action = gtk_action_group_get_action (action_group, NEMO_ACTION_SHOW_HIDE_STATUSBAR); g_settings_bind (nemo_window_state, NEMO_WINDOW_STATE_START_WITH_STATUS_BAR, action, "active", G_SETTINGS_BIND_DEFAULT); action = gtk_action_group_get_action (action_group, NEMO_ACTION_SHOW_HIDE_SIDEBAR); g_settings_bind (nemo_window_state, NEMO_WINDOW_STATE_START_WITH_SIDEBAR, action, "active", G_SETTINGS_BIND_DEFAULT); action = gtk_action_group_get_action (action_group, NEMO_ACTION_SHOW_HIDE_LOCATION_ENTRY); g_settings_bind (nemo_preferences, NEMO_PREFERENCES_SHOW_LOCATION_ENTRY, action, "active", G_SETTINGS_BIND_DEFAULT); }
static void trash_state_changed_cb (NemoTrashMonitor *monitor, gboolean state, NemoWindow *window) { GtkActionGroup *action_group; GtkAction *action; GIcon *gicon; action_group = nemo_window_get_main_action_group (window); action = gtk_action_group_get_action (action_group, "Go to Trash"); gicon = nemo_trash_monitor_get_icon (); if (gicon) { g_object_set (action, "gicon", gicon, NULL); g_object_unref (gicon); } }
void nemo_window_update_show_hide_menu_items (NemoWindow *window) { GtkActionGroup *action_group; GtkAction *action; guint current_value; action_group = nemo_window_get_main_action_group (window); action = gtk_action_group_get_action (action_group, NEMO_ACTION_SHOW_HIDE_EXTRA_PANE); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), nemo_window_split_view_showing (window)); nemo_window_update_split_view_actions_sensitivity (window); action = gtk_action_group_get_action (action_group, "Sidebar Places"); current_value = sidebar_id_to_value (window->details->sidebar_id); gtk_radio_action_set_current_value (GTK_RADIO_ACTION (action), current_value); }
void nemo_window_initialize_actions (NemoWindow *window) { GtkActionGroup *action_group; const gchar *nav_state_actions[] = { NEMO_ACTION_BACK, NEMO_ACTION_FORWARD, NEMO_ACTION_UP, NEMO_ACTION_RELOAD, NEMO_ACTION_COMPUTER, NEMO_ACTION_HOME, NEMO_ACTION_EDIT_LOCATION, NEMO_ACTION_SEARCH, NULL }; action_group = nemo_window_get_main_action_group (window); window->details->nav_state = nemo_navigation_state_new (action_group, nav_state_actions); window_menus_set_bindings (window); nemo_window_update_show_hide_menu_items (window); g_signal_connect (window, "loading_uri", G_CALLBACK (nemo_window_update_split_view_actions_sensitivity), NULL); }
static void nemo_desktop_window_constructed (GObject *obj) { GtkActionGroup *action_group; GtkAction *action; AtkObject *accessible; NemoDesktopWindow *window = NEMO_DESKTOP_WINDOW (obj); NemoWindow *nwindow = NEMO_WINDOW (obj); G_OBJECT_CLASS (nemo_desktop_window_parent_class)->constructed (obj); gtk_widget_hide (nwindow->details->statusbar); gtk_widget_hide (nwindow->details->menubar); action_group = nemo_window_get_main_action_group (nwindow); /* Don't allow close action on desktop */ action = gtk_action_group_get_action (action_group, NEMO_ACTION_CLOSE); gtk_action_set_sensitive (action, FALSE); /* Don't allow new tab on desktop */ action = gtk_action_group_get_action (action_group, NEMO_ACTION_NEW_TAB); gtk_action_set_sensitive (action, FALSE); /* Set the accessible name so that it doesn't inherit the cryptic desktop URI. */ accessible = gtk_widget_get_accessible (GTK_WIDGET (window)); if (accessible) { atk_object_set_name (accessible, _("Desktop")); } /* Monitor the preference to have the desktop */ /* point to the Unix home folder */ g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_DESKTOP_IS_HOME_DIR, G_CALLBACK (nemo_desktop_window_update_directory), window); }
static void show_hidden_files_preference_callback (gpointer callback_data) { NemoWindow *window; GtkAction *action; window = NEMO_WINDOW (callback_data); if (window->details->show_hidden_files_mode == NEMO_WINDOW_SHOW_HIDDEN_FILES_DEFAULT) { action = gtk_action_group_get_action (nemo_window_get_main_action_group (window), NEMO_ACTION_SHOW_HIDDEN_FILES); /* update button */ g_signal_handlers_block_by_func (action, action_show_hidden_files_callback, window); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), g_settings_get_boolean (nemo_preferences, NEMO_PREFERENCES_SHOW_HIDDEN_FILES)); g_signal_handlers_unblock_by_func (action, action_show_hidden_files_callback, window); /* inform views */ nemo_window_set_hidden_files_mode (window, NEMO_WINDOW_SHOW_HIDDEN_FILES_DEFAULT); } }