static void applet_change_orient (PanelApplet *applet, PanelAppletOrient orient, PagerData *pager) { GtkOrientation new_orient; switch (orient) { case PANEL_APPLET_ORIENT_LEFT: case PANEL_APPLET_ORIENT_RIGHT: new_orient = GTK_ORIENTATION_VERTICAL; break; case PANEL_APPLET_ORIENT_UP: case PANEL_APPLET_ORIENT_DOWN: default: new_orient = GTK_ORIENTATION_HORIZONTAL; break; } if (new_orient == pager->orientation) return; pager->orientation = new_orient; pager_update (pager); if (pager->label_row_col) gtk_label_set_text (GTK_LABEL (pager->label_row_col), pager->orientation == GTK_ORIENTATION_HORIZONTAL ? _("rows") : _("columns")); }
static void all_workspaces_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, PagerData *pager) { gboolean value = TRUE; /* Default value */ if (entry->value != NULL && entry->value->type == GCONF_VALUE_BOOL) { value = gconf_value_get_bool (entry->value); } pager->display_all = value; pager_update (pager); if (pager->all_workspaces_radio){ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (pager->all_workspaces_radio)) != value) { if (value) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pager->all_workspaces_radio), TRUE); } else { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pager->current_only_radio), TRUE); } } if ( ! g_object_get_data (G_OBJECT (pager->num_rows_spin), NEVER_SENSITIVE)) gtk_widget_set_sensitive (pager->num_rows_spin, value); } }
static void display_workspace_names_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, PagerData *pager) { gboolean value = FALSE; /* Default value */ if (entry->value != NULL && entry->value->type == GCONF_VALUE_BOOL) { value = gconf_value_get_bool (entry->value); } if (value) { pager->display_mode = WNCK_PAGER_DISPLAY_NAME; } else { pager->display_mode = WNCK_PAGER_DISPLAY_CONTENT; } pager_update (pager); if (pager->display_workspaces_toggle && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (pager->display_workspaces_toggle)) != value) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pager->display_workspaces_toggle), value); } }
static void all_workspaces_changed(GSettings* settings, gchar* key, PagerData* pager) { gboolean value = TRUE; /* Default value */ value = g_settings_get_boolean (settings, key); pager->display_all = value; pager_update(pager); if (pager->all_workspaces_radio) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pager->all_workspaces_radio)) != value) { if (value) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pager->all_workspaces_radio), TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pager->current_only_radio), TRUE); } } if (!g_object_get_data(G_OBJECT(pager->num_rows_spin), NEVER_SENSITIVE)) gtk_widget_set_sensitive(pager->num_rows_spin, value); } }
static void num_rows_changed(GSettings* settings, gchar* key, PagerData* pager) { int n_rows = DEFAULT_ROWS; n_rows = g_settings_get_int (settings, key); n_rows = CLAMP(n_rows, 1, MAX_REASONABLE_ROWS); pager->n_rows = n_rows; pager_update(pager); if (pager->num_rows_spin && gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(pager->num_rows_spin)) != n_rows) gtk_spin_button_set_value(GTK_SPIN_BUTTON(pager->num_rows_spin), pager->n_rows); }
static void num_rows_changed (GSettings *settings, const gchar *key, PagerData *pager) { int n_rows; n_rows = g_settings_get_int (settings, key); pager->n_rows = n_rows; pager_update (pager); if (pager->num_rows_spin && gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (pager->num_rows_spin)) != n_rows) gtk_spin_button_set_value (GTK_SPIN_BUTTON (pager->num_rows_spin), pager->n_rows); }
static void num_rows_changed(MateConfClient* client, guint cnxn_id, MateConfEntry* entry, PagerData* pager) { int n_rows = DEFAULT_ROWS; if (entry->value != NULL && entry->value->type == MATECONF_VALUE_INT) { n_rows = mateconf_value_get_int(entry->value); } n_rows = CLAMP(n_rows, 1, MAX_REASONABLE_ROWS); pager->n_rows = n_rows; pager_update(pager); if (pager->num_rows_spin && gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(pager->num_rows_spin)) != n_rows) gtk_spin_button_set_value(GTK_SPIN_BUTTON(pager->num_rows_spin), pager->n_rows); }
static void window_manager_changed(WnckScreen* screen, PagerData* pager) { const char *wm_name; wm_name = wnck_screen_get_window_manager_name(screen); if (!wm_name) pager->wm = PAGER_WM_UNKNOWN; else if (strcmp(wm_name, "Metacity (Marco)") == 0) pager->wm = PAGER_WM_MARCO; else if (strcmp(wm_name, "Compiz") == 0) pager->wm = PAGER_WM_COMPIZ; else pager->wm = PAGER_WM_UNKNOWN; update_properties_for_wm(pager); pager_update(pager); }
static void display_workspace_names_changed (GSettings *settings, const gchar *key, PagerData *pager) { gboolean value; value = g_settings_get_boolean (settings, key); if (value) { pager->display_mode = WNCK_PAGER_DISPLAY_NAME; } else { pager->display_mode = WNCK_PAGER_DISPLAY_CONTENT; } pager_update (pager); if (pager->display_workspaces_toggle && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (pager->display_workspaces_toggle)) != value) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pager->display_workspaces_toggle), value); } }
gboolean workspace_switcher_applet_fill (PanelApplet *applet) { PagerData *pager; GError *error; gboolean display_names; BonoboUIComponent* popup_component; panel_applet_add_preferences (applet, "/schemas/apps/workspace_switcher_applet/prefs", NULL); pager = g_new0 (PagerData, 1); pager->applet = GTK_WIDGET (applet); panel_applet_set_flags (PANEL_APPLET (pager->applet), PANEL_APPLET_EXPAND_MINOR); setup_gconf (pager); error = NULL; pager->n_rows = panel_applet_gconf_get_int (applet, "num_rows", &error); if (error) { g_printerr (_("Error loading num_rows value for Workspace Switcher: %s\n"), error->message); g_error_free (error); /* leave current value */ } pager->n_rows = CLAMP (pager->n_rows, 1, MAX_REASONABLE_ROWS); error = NULL; display_names = panel_applet_gconf_get_bool (applet, "display_workspace_names", &error); if (error) { g_printerr (_("Error loading display_workspace_names value for Workspace Switcher: %s\n"), error->message); g_error_free (error); /* leave current value */ } if (display_names) { pager->display_mode = WNCK_PAGER_DISPLAY_NAME; } else { pager->display_mode = WNCK_PAGER_DISPLAY_CONTENT; } error = NULL; pager->display_all = panel_applet_gconf_get_bool (applet, "display_all_workspaces", &error); if (error) { g_printerr (_("Error loading display_all_workspaces value for Workspace Switcher: %s\n"), error->message); g_error_free (error); /* leave current value */ } switch (panel_applet_get_orient (applet)) { case PANEL_APPLET_ORIENT_LEFT: case PANEL_APPLET_ORIENT_RIGHT: pager->orientation = GTK_ORIENTATION_VERTICAL; break; case PANEL_APPLET_ORIENT_UP: case PANEL_APPLET_ORIENT_DOWN: default: pager->orientation = GTK_ORIENTATION_HORIZONTAL; break; } pager->screen = wncklet_get_screen (pager->applet); /* because the pager doesn't respond to signals at the moment */ wnck_screen_force_update (pager->screen); pager->pager = wnck_pager_new (pager->screen); wnck_pager_set_shadow_type (WNCK_PAGER (pager->pager), GTK_SHADOW_IN); g_signal_connect (G_OBJECT (pager->pager), "destroy", G_CALLBACK (destroy_pager), pager); pager_update (pager); gtk_container_add (GTK_CONTAINER (pager->applet), pager->pager); gtk_widget_show (pager->pager); gtk_widget_show (pager->applet); g_signal_connect (G_OBJECT (pager->applet), "realize", G_CALLBACK (applet_realized), pager); g_signal_connect (G_OBJECT (pager->applet), "change_orient", G_CALLBACK (applet_change_orient), pager); g_signal_connect (G_OBJECT (pager->applet), "scroll-event", G_CALLBACK (applet_scroll), pager); g_signal_connect (G_OBJECT (pager->applet), "change_background", G_CALLBACK (applet_change_background), pager); panel_applet_set_background_widget (PANEL_APPLET (pager->applet), GTK_WIDGET (pager->applet)); panel_applet_setup_menu_from_file (PANEL_APPLET (pager->applet), NULL, "GNOME_WorkspaceSwitcherApplet.xml", NULL, pager_menu_verbs, pager); if (panel_applet_get_locked_down (PANEL_APPLET (pager->applet))) { BonoboUIComponent *popup_component; popup_component = panel_applet_get_popup_component (PANEL_APPLET (pager->applet)); bonobo_ui_component_set_prop (popup_component, "/commands/PagerPreferences", "hidden", "1", NULL); } popup_component = panel_applet_get_popup_component (PANEL_APPLET (pager->applet)); launchpad_integration_add_bonobo_ui(popup_component, "/popups/button3/LaunchpadItems"); return TRUE; }