static gboolean geyes_applet_fill (PanelApplet *applet) { EyesApplet *eyes_applet; GSimpleActionGroup *action_group; GAction *action; gchar *ui_path; panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR); eyes_applet = create_eyes (applet); eyes_applet->settings = panel_applet_settings_new (applet, GEYES_PREFS_SCHEMA); eyes_applet->timeout_id = g_timeout_add ( UPDATE_TIMEOUT, (GSourceFunc) timer_cb, eyes_applet); action_group = g_simple_action_group_new (); g_action_map_add_action_entries (G_ACTION_MAP (action_group), geyes_applet_menu_actions, G_N_ELEMENTS (geyes_applet_menu_actions), eyes_applet); ui_path = g_build_filename (GEYES_MENU_UI_DIR, "geyes-applet-menu.xml", NULL); panel_applet_setup_menu_from_file (eyes_applet->applet, ui_path, action_group, GETTEXT_PACKAGE); g_free (ui_path); gtk_widget_insert_action_group (GTK_WIDGET (applet), "geyes", G_ACTION_GROUP (action_group)); action = g_action_map_lookup_action (G_ACTION_MAP (action_group), "preferences"); g_object_bind_property (applet, "locked-down", action, "enabled", G_BINDING_DEFAULT|G_BINDING_INVERT_BOOLEAN|G_BINDING_SYNC_CREATE); g_object_unref (action_group); gtk_widget_set_tooltip_text (GTK_WIDGET (eyes_applet->applet), _("Eyes")); set_atk_name_description (GTK_WIDGET (eyes_applet->applet), _("Eyes"), _("The eyes look in the direction of the mouse pointer")); g_signal_connect (eyes_applet->vbox, "destroy", G_CALLBACK (destroy_cb), eyes_applet); gtk_widget_show_all (GTK_WIDGET (eyes_applet->applet)); /* setup here and not in create eyes so the destroy signal is set so * that when there is an error within loading the theme * we can emit this signal */ if (properties_load (eyes_applet) == FALSE) return FALSE; setup_eyes (eyes_applet); return TRUE; }
static gboolean fish_applet_fill (FishApplet *fish) { PanelApplet *applet = (PanelApplet *) fish; fish->orientation = panel_applet_get_orient (applet); fish->settings = panel_applet_settings_new (applet, FISH_SCHEMA); fish->lockdown_settings = g_settings_new (LOCKDOWN_SCHEMA); g_signal_connect (fish->settings, "changed", G_CALLBACK (fish_applet_settings_changed), fish); /* NULL means we will update for all settings */ fish_applet_settings_changed (fish->settings, NULL, fish); /*gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);*/ panel_applet_setup_menu_from_resource (applet, FISH_RESOURCE_PATH "fish-menu.xml"); panel_applet_setup_menu_action_entries (applet, fish_menu_actions, G_N_ELEMENTS (fish_menu_actions), fish); GSimpleAction *preferences = panel_applet_get_menu_action (applet, "preferences"); g_object_bind_property (applet, "locked-down", preferences, "enabled", G_BINDING_DEFAULT|G_BINDING_INVERT_BOOLEAN|G_BINDING_SYNC_CREATE); setup_fish_widget (fish); return TRUE; }
static void setup_gconf (PagerData *pager) { pager->settings = panel_applet_settings_new (PANEL_APPLET (pager->applet), "org.consort.consort-panel.applet.workspace-switcher"); 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); }
static void setup_gconf (TasklistData *tasklist) { tasklist->settings = panel_applet_settings_new (PANEL_APPLET (tasklist->applet), "org.gnome.gnome-panel.applet.window-list"); 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 cpufreq_applet_setup (CPUFreqApplet *applet) { GSimpleActionGroup *action_group; GAction *action; gchar *ui_path; AtkObject *atk_obj; GSettings *settings; /* Preferences */ if (applet->prefs) g_object_unref (applet->prefs); settings = panel_applet_settings_new (PANEL_APPLET (applet), "org.gnome.gnome-applets.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_new (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 = g_simple_action_group_new (); g_action_map_add_action_entries (G_ACTION_MAP (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); panel_applet_setup_menu_from_file (PANEL_APPLET (applet), ui_path, action_group, GETTEXT_PACKAGE); g_free (ui_path); gtk_widget_insert_action_group (GTK_WIDGET (applet), "cpufreq", G_ACTION_GROUP (action_group)); action = g_action_map_lookup_action (G_ACTION_MAP (action_group), "preferences"); g_object_bind_property (applet, "locked-down", action, "enabled", G_BINDING_DEFAULT|G_BINDING_INVERT_BOOLEAN|G_BINDING_SYNC_CREATE); 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)); }
/* Do the actual applet initialization */ static void init_wtapplet (PanelApplet *applet) { WTApplet *wtapplet = g_new0 (WTApplet, 1); wtapplet->applet = applet; wtapplet->settings = panel_applet_settings_new (applet, WINDOWTITLE_GSCHEMA); wtapplet->prefs = loadPreferences(wtapplet); wtapplet->activescreen = wnck_screen_get_default(); wnck_screen_force_update(wtapplet->activescreen); wtapplet->activeworkspace = wnck_screen_get_active_workspace(wtapplet->activescreen); wtapplet->activewindow = wnck_screen_get_active_window(wtapplet->activescreen); wtapplet->umaxedwindow = getUpperMaximized(wtapplet); wtapplet->rootwindow = getRootWindow(wtapplet->activescreen); wtapplet->prefbuilder = gtk_builder_new(); wtapplet->box = GTK_BOX(gtk_hbox_new(FALSE, 0)); wtapplet->icon = GTK_IMAGE(gtk_image_new()); wtapplet->title = GTK_LABEL(gtk_label_new(NULL)); wtapplet->eb_icon = GTK_EVENT_BOX(gtk_event_box_new()); wtapplet->eb_title = GTK_EVENT_BOX(gtk_event_box_new()); wtapplet->orient = panel_applet_get_orient(wtapplet->applet); wtapplet->size_hints = g_new(gint,2); // Widgets to eventboxes, eventboxes to box gtk_widget_set_can_focus(GTK_WIDGET(wtapplet->icon), TRUE); gtk_widget_set_can_focus(GTK_WIDGET(wtapplet->title), TRUE); gtk_container_add (GTK_CONTAINER (wtapplet->eb_icon), GTK_WIDGET(wtapplet->icon)); gtk_container_add (GTK_CONTAINER (wtapplet->eb_title), GTK_WIDGET(wtapplet->title)); gtk_event_box_set_visible_window (wtapplet->eb_icon, FALSE); gtk_event_box_set_visible_window (wtapplet->eb_title, FALSE); // Rotate & place elements setAlignment(wtapplet, (gdouble)wtapplet->prefs->alignment); placeWidgets(wtapplet); // Add box to applet gtk_container_add (GTK_CONTAINER(wtapplet->applet), GTK_WIDGET(wtapplet->box)); // Set event handling (icon & title clicks) g_signal_connect(G_OBJECT (wtapplet->eb_icon), "button-press-event", G_CALLBACK (icon_clicked), wtapplet); g_signal_connect(G_OBJECT (wtapplet->eb_title), "button-press-event", G_CALLBACK (title_clicked), wtapplet); // Global window tracking g_signal_connect(wtapplet->activescreen, "active-window-changed", G_CALLBACK (active_window_changed), wtapplet); // <-- this thing is crashing with compiz !!! g_signal_connect(wtapplet->activescreen, "viewports-changed", G_CALLBACK (viewports_changed), wtapplet); g_signal_connect(wtapplet->activescreen, "active-workspace-changed", G_CALLBACK (active_workspace_changed), wtapplet); g_signal_connect(wtapplet->activescreen, "window-closed", G_CALLBACK (window_closed), wtapplet); g_signal_connect(wtapplet->activescreen, "window-opened", G_CALLBACK (window_opened), wtapplet); // g_signal_connect(G_OBJECT (wtapplet->title), "size-request", G_CALLBACK (applet_title_size_request), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "size-allocate", G_CALLBACK (applet_size_allocate), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "change-background", G_CALLBACK (applet_change_background), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "change-orient", G_CALLBACK (applet_change_orient), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "change-size", G_CALLBACK (applet_change_pixel_size), wtapplet); // Track active window changes wtapplet->active_handler_state = g_signal_connect(G_OBJECT (wtapplet->activewindow), "state-changed", G_CALLBACK (active_window_state_changed), wtapplet); wtapplet->active_handler_name = g_signal_connect(G_OBJECT (wtapplet->activewindow), "name-changed", G_CALLBACK (active_window_nameicon_changed), wtapplet); wtapplet->active_handler_icon = g_signal_connect(G_OBJECT (wtapplet->activewindow), "icon-changed", G_CALLBACK (active_window_nameicon_changed), wtapplet); // Setup applet right-click menu GSimpleActionGroup *action_group = g_simple_action_group_new (); g_action_map_add_action_entries (G_ACTION_MAP (action_group), windowtitle_menu_actions, G_N_ELEMENTS (windowtitle_menu_actions), wtapplet); panel_applet_setup_menu (applet, windowtitle_menu_items, action_group, GETTEXT_PACKAGE); gtk_widget_insert_action_group (GTK_WIDGET (wtapplet->applet), "windowtitle", G_ACTION_GROUP (action_group)); toggleExpand (wtapplet); toggleHidden (wtapplet); // Properly hide or show stuff updateTitle (wtapplet); }