static EyesApplet * create_eyes (MatePanelApplet *applet) { EyesApplet *eyes_applet = g_new0 (EyesApplet, 1); eyes_applet->applet = applet; eyes_applet->vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); eyes_applet->settings = mate_panel_applet_settings_new (applet, "org.mate.panel.applet.geyes"); gtk_container_add (GTK_CONTAINER (applet), eyes_applet->vbox); return eyes_applet; }
static void setup_gsettings(TasklistData* tasklist) { tasklist->settings = mate_panel_applet_settings_new (MATE_PANEL_APPLET (tasklist->applet), WINDOW_LIST_SCHEMA); g_signal_connect (tasklist->settings, "changed::display-all-workspaces", G_CALLBACK (display_all_workspaces_changed), tasklist); g_signal_connect (tasklist->settings, "changed::group-windows", G_CALLBACK (group_windows_changed), tasklist); g_signal_connect (tasklist->settings, "changed::move-unminimized-windows", G_CALLBACK (move_unminimized_windows_changed), tasklist); }
static void setup_gsettings(PagerData* pager) { pager->settings = mate_panel_applet_settings_new (MATE_PANEL_APPLET (pager->applet), WORKSPACE_SWITCHER_SCHEMA); g_signal_connect (pager->settings, "changed::num-rows", G_CALLBACK (num_rows_changed), pager); g_signal_connect (pager->settings, "changed::display-workspace-names", G_CALLBACK (display_workspace_names_changed), pager); g_signal_connect (pager->settings, "changed::display-all-workspaces", G_CALLBACK (all_workspaces_changed), pager); g_signal_connect (pager->settings, "changed::wrap-workspaces", G_CALLBACK (wrap_workspaces_changed), pager); }
static void cpufreq_applet_setup (CPUFreqApplet *applet) { GtkActionGroup *action_group; gchar *ui_path; AtkObject *atk_obj; gchar *prefs_key; GSettings *settings; g_set_application_name (_("CPU Frequency Scaling Monitor")); gtk_window_set_default_icon_name ("mate-cpu-frequency-applet"); /* Preferences */ if (applet->prefs) g_object_unref (applet->prefs); settings = mate_panel_applet_settings_new (MATE_PANEL_APPLET (applet), "org.mate.panel.applet.cpufreq"); applet->prefs = cpufreq_prefs_new (settings); g_signal_connect (G_OBJECT (applet->prefs), "notify::cpu", G_CALLBACK (cpufreq_applet_prefs_cpu_changed), (gpointer) applet); g_signal_connect (G_OBJECT (applet->prefs), "notify::show-mode", G_CALLBACK (cpufreq_applet_prefs_show_mode_changed), (gpointer) applet); g_signal_connect (G_OBJECT (applet->prefs), "notify::show-text-mode", G_CALLBACK (cpufreq_applet_prefs_show_mode_changed), (gpointer) applet); /* Monitor */ applet->monitor = cpufreq_monitor_factory_create_monitor ( cpufreq_prefs_get_cpu (applet->prefs)); cpufreq_monitor_run (applet->monitor); g_signal_connect_swapped (G_OBJECT (applet->monitor), "changed", G_CALLBACK (cpufreq_applet_update), (gpointer) applet); /* Setup the menus */ action_group = gtk_action_group_new ("CPUFreq Applet Actions"); gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (action_group, cpufreq_applet_menu_actions, G_N_ELEMENTS (cpufreq_applet_menu_actions), applet); ui_path = g_build_filename (CPUFREQ_MENU_UI_DIR, "cpufreq-applet-menu.xml", NULL); mate_panel_applet_setup_menu_from_file (MATE_PANEL_APPLET (applet), ui_path, action_group); g_free (ui_path); if (mate_panel_applet_get_locked_down (MATE_PANEL_APPLET (applet))) { GtkAction *action; action = gtk_action_group_get_action (action_group, "CPUFreqPreferences"); gtk_action_set_visible (action, FALSE); } g_object_unref (action_group); atk_obj = gtk_widget_get_accessible (GTK_WIDGET (applet)); if (GTK_IS_ACCESSIBLE (atk_obj)) { atk_object_set_name (atk_obj, _("CPU Frequency Scaling Monitor")); atk_object_set_description (atk_obj, _("This utility shows the current CPU Frequency")); } cpufreq_applet_update_visibility (applet); gtk_widget_show (GTK_WIDGET (applet)); }
static gboolean command_applet_fill (MatePanelApplet* applet) { CommandApplet *command_applet; g_set_application_name (_("Command Applet")); gtk_window_set_default_icon_name (APPLET_ICON); mate_panel_applet_set_flags (applet, MATE_PANEL_APPLET_EXPAND_MINOR); mate_panel_applet_set_background_widget (applet, GTK_WIDGET (applet)); command_applet = g_malloc0(sizeof(CommandApplet)); command_applet->applet = applet; command_applet->settings = mate_panel_applet_settings_new (applet, COMMAND_SCHEMA); command_applet->interval = g_settings_get_int (command_applet->settings, INTERVAL_KEY); command_applet->command = g_settings_get_string (command_applet->settings, COMMAND_KEY); command_applet->width = g_settings_get_int (command_applet->settings, WIDTH_KEY); command_applet->box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0)); command_applet->image = GTK_IMAGE (gtk_image_new_from_icon_name (APPLET_ICON, 24)); command_applet->label = GTK_LABEL (gtk_label_new (ERROR_OUTPUT)); command_applet->timeout_id = 0; /* we add the Gtk label into the applet */ gtk_box_pack_start (command_applet->box, GTK_WIDGET (command_applet->image), TRUE, TRUE, 0); gtk_box_pack_start (command_applet->box, GTK_WIDGET (command_applet->label), TRUE, TRUE, 0); gtk_container_add (GTK_CONTAINER (applet), GTK_WIDGET (command_applet->box)); gtk_widget_show_all (GTK_WIDGET (command_applet->applet)); g_signal_connect(G_OBJECT (command_applet->applet), "destroy", G_CALLBACK (command_applet_destroy), command_applet); /* GSettings signals */ g_signal_connect(command_applet->settings, "changed::" COMMAND_KEY, G_CALLBACK (settings_command_changed), command_applet); g_signal_connect(command_applet->settings, "changed::" INTERVAL_KEY, G_CALLBACK (settings_interval_changed), command_applet); g_signal_connect(command_applet->settings, "changed::" WIDTH_KEY, G_CALLBACK (settings_width_changed), command_applet); g_settings_bind (command_applet->settings, SHOW_ICON_KEY, command_applet->image, "visible", G_SETTINGS_BIND_DEFAULT); /* set up context menu */ GtkActionGroup *action_group = gtk_action_group_new ("Command Applet Actions"); gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (action_group, applet_menu_actions, G_N_ELEMENTS (applet_menu_actions), command_applet); mate_panel_applet_setup_menu (command_applet->applet, ui, action_group); /* first command execution */ command_execute (command_applet); return TRUE; }
static gboolean charpicker_applet_fill (MatePanelApplet *applet) { MatePanelAppletOrient orientation; charpick_data *curr_data; GdkAtom utf8_atom; GList *list; gchar *string; GtkActionGroup *action_group; gchar *ui_path; g_set_application_name (_("Character Palette")); gtk_window_set_default_icon_name ("accessories-character-map"); mate_panel_applet_set_background_widget (applet, GTK_WIDGET (applet)); mate_panel_applet_set_flags (applet, MATE_PANEL_APPLET_EXPAND_MINOR); curr_data = g_new0 (charpick_data, 1); curr_data->last_index = NO_LAST_INDEX; curr_data->applet = GTK_WIDGET (applet); curr_data->about_dialog = NULL; curr_data->add_edit_dialog = NULL; curr_data->settings = mate_panel_applet_settings_new (applet, "org.mate.panel.applet.charpick"); get_chartable (curr_data); string = g_settings_get_string (curr_data->settings, "current-list"); if (string) { list = curr_data->chartable; while (list) { if (g_ascii_strcasecmp (list->data, string) == 0) curr_data->charlist = list->data; list = g_list_next (list); } /* FIXME: yeah leak, but this code is full of leaks and evil point shuffling. This should really be rewritten -George */ if (curr_data->charlist == NULL) curr_data->charlist = string; else g_free (string); } else { curr_data->charlist = curr_data->chartable->data; } curr_data->panel_size = mate_panel_applet_get_size (applet); orientation = mate_panel_applet_get_orient (applet); curr_data->panel_vertical = (orientation == MATE_PANEL_APPLET_ORIENT_LEFT) || (orientation == MATE_PANEL_APPLET_ORIENT_RIGHT); build_table (curr_data); g_signal_connect (G_OBJECT (curr_data->applet), "key_press_event", G_CALLBACK (key_press_event), curr_data); utf8_atom = gdk_atom_intern ("UTF8_STRING", FALSE); gtk_selection_add_target (curr_data->applet, GDK_SELECTION_PRIMARY, utf8_atom, 0); gtk_selection_add_target (curr_data->applet, GDK_SELECTION_CLIPBOARD, utf8_atom, 0); g_signal_connect (G_OBJECT (curr_data->applet), "selection_get", G_CALLBACK (charpick_selection_handler), curr_data); g_signal_connect (G_OBJECT (curr_data->applet), "selection_clear_event", G_CALLBACK (selection_clear_cb), curr_data); make_applet_accessible (GTK_WIDGET (applet)); /* session save signal */ g_signal_connect (G_OBJECT (applet), "change_orient", G_CALLBACK (applet_change_orient), curr_data); g_signal_connect (G_OBJECT (applet), "size_allocate", G_CALLBACK (applet_size_allocate), curr_data); g_signal_connect (G_OBJECT (applet), "destroy", G_CALLBACK (applet_destroy), curr_data); gtk_widget_show_all (GTK_WIDGET (applet)); action_group = gtk_action_group_new ("Charpicker Applet Actions"); gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (action_group, charpick_applet_menu_actions, G_N_ELEMENTS (charpick_applet_menu_actions), curr_data); ui_path = g_build_filename (CHARPICK_MENU_UI_DIR, "charpick-applet-menu.xml", NULL); mate_panel_applet_setup_menu_from_file (MATE_PANEL_APPLET (applet), ui_path, action_group); g_free (ui_path); if (mate_panel_applet_get_locked_down (MATE_PANEL_APPLET (applet))) { GtkAction *action; action = gtk_action_group_get_action (action_group, "Preferences"); gtk_action_set_visible (action, FALSE); } g_object_unref (action_group); register_stock_for_edit (); populate_menu (curr_data); return TRUE; }
static gboolean cw_applet_fill (MatePanelApplet *applet, const gchar *iid, gpointer data) { WinPickerApp *app; GtkWidget *eb, *tasks, *title; gchar *ui_path; GtkActionGroup *action_group; GObjectClass *object_class; if (strcmp (iid, "MateWindowPicker") != 0) return FALSE; bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); /* Have our background automatically painted. */ mate_panel_applet_set_background_widget (MATE_PANEL_APPLET (applet), GTK_WIDGET (applet)); wnck_set_client_type (WNCK_CLIENT_TYPE_PAGER); app = g_slice_new0 (WinPickerApp); mainapp = app; object_class = G_OBJECT_GET_CLASS (G_OBJECT(applet)); object_class->finalize = cw_applet_finalize; parent_class = g_type_class_peek_parent (object_class); /* gsettings prefs */ app->settings = mate_panel_applet_settings_new (applet, APPLET_SCHEMA); g_signal_connect (app->settings, "changed::" SHOW_WIN_KEY, G_CALLBACK (on_show_all_windows_changed), app); g_signal_connect (app->settings, "changed::" SHOW_HOME_TITLE_KEY, G_CALLBACK (on_show_home_title_changed), app); g_signal_connect (app->settings, "changed::" BOLD_WINDOW_TITLE_KEY, G_CALLBACK (on_bold_window_title_changed), app); app->applet = GTK_WIDGET (applet); force_no_focus_padding (GTK_WIDGET (applet)); gtk_container_set_border_width (GTK_CONTAINER (applet), 0); eb = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); gtk_container_add (GTK_CONTAINER (applet), eb); gtk_container_set_border_width (GTK_CONTAINER (eb), 0); tasks = app->tasks = task_list_get_default (); gtk_box_pack_start (GTK_BOX (eb), tasks, FALSE, FALSE, 0); title = app->title = task_title_new (); gtk_box_pack_start (GTK_BOX (eb), title, TRUE, TRUE, 0); gtk_widget_show_all (GTK_WIDGET (applet)); on_show_all_windows_changed (app->settings, SHOW_WIN_KEY, app); on_show_home_title_changed (app->settings, SHOW_HOME_TITLE_KEY, app); on_bold_window_title_changed (app->settings, BOLD_WINDOW_TITLE_KEY, app); action_group = gtk_action_group_new ("MateWindowPicker Applet Actions"); gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (action_group, window_picker_menu_actions, G_N_ELEMENTS (window_picker_menu_actions), app); ui_path = g_build_filename (MATEWINDOWPICKER_MENU_UI_DIR, "mate-window-picker-applet-menu.xml", NULL); mate_panel_applet_setup_menu_from_file (MATE_PANEL_APPLET (app->applet), ui_path, action_group); g_free (ui_path); g_object_unref (action_group); mate_panel_applet_set_flags (MATE_PANEL_APPLET (applet), MATE_PANEL_APPLET_EXPAND_MAJOR | MATE_PANEL_APPLET_EXPAND_MINOR | MATE_PANEL_APPLET_HAS_HANDLE); return TRUE; }
/* create a box and stuff the load graphs inside of it */ static gboolean multiload_applet_new(MatePanelApplet *applet, const gchar *iid, gpointer data) { GtkStyleContext *context; MultiloadApplet *ma; GSettings *lockdown_settings; GtkActionGroup *action_group; gchar *ui_path; context = gtk_widget_get_style_context (GTK_WIDGET (applet)); gtk_style_context_add_class (context, "multiload-applet"); ma = g_new0(MultiloadApplet, 1); ma->applet = applet; ma->about_dialog = NULL; ma->prop_dialog = NULL; ma->last_clicked = 0; g_set_application_name (_("System Monitor")); gtk_window_set_default_icon_name ("utilities-system-monitor"); mate_panel_applet_set_background_widget (applet, GTK_WIDGET(applet)); ma->settings = mate_panel_applet_settings_new (applet, "org.mate.panel.applet.multiload"); mate_panel_applet_set_flags (applet, MATE_PANEL_APPLET_EXPAND_MINOR); action_group = gtk_action_group_new ("Multiload Applet Actions"); gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (action_group, multiload_menu_actions, G_N_ELEMENTS (multiload_menu_actions), ma); ui_path = g_build_filename (MULTILOAD_MENU_UI_DIR, "multiload-applet-menu.xml", NULL); mate_panel_applet_setup_menu_from_file (applet, ui_path, action_group); g_free (ui_path); if (mate_panel_applet_get_locked_down (applet)) { GtkAction *action; action = gtk_action_group_get_action (action_group, "MultiLoadProperties"); gtk_action_set_visible (action, FALSE); } lockdown_settings = g_settings_new ("org.mate.lockdown"); if (g_settings_get_boolean (lockdown_settings, "disable-command-line") || mate_panel_applet_get_locked_down (applet)) { GtkAction *action; /* When the panel is locked down or when the command line is inhibited, it seems very likely that running the procman would be at least harmful */ action = gtk_action_group_get_action (action_group, "MultiLoadRunProcman"); gtk_action_set_visible (action, FALSE); } g_object_unref (lockdown_settings); g_object_unref (action_group); g_signal_connect(G_OBJECT(applet), "change_size", G_CALLBACK(multiload_change_size_cb), ma); g_signal_connect(G_OBJECT(applet), "change_orient", G_CALLBACK(multiload_change_orient_cb), ma); g_signal_connect(G_OBJECT(applet), "destroy", G_CALLBACK(multiload_destroy_cb), ma); g_signal_connect(G_OBJECT(applet), "button_press_event", G_CALLBACK(multiload_button_press_event_cb), ma); g_signal_connect(G_OBJECT(applet), "key_press_event", G_CALLBACK(multiload_key_press_event_cb), ma); multiload_applet_refresh (ma); gtk_widget_show(GTK_WIDGET(applet)); return TRUE; }