/* Expand/unexpand applet according to preferences */ void toggleExpand(WTApplet *wtapplet) { if (wtapplet->prefs->expand_applet) { panel_applet_set_flags (wtapplet->applet, PANEL_APPLET_EXPAND_MINOR | PANEL_APPLET_EXPAND_MAJOR); } else { // We must have a handle due to bug https://bugzilla.gnome.org/show_bug.cgi?id=556355 // panel_applet_set_flags (wtapplet->applet, PANEL_APPLET_EXPAND_MINOR | PANEL_APPLET_EXPAND_MAJOR | PANEL_APPLET_HAS_HANDLE); panel_applet_set_flags (wtapplet->applet, PANEL_APPLET_EXPAND_MINOR); } reloadWidgets(wtapplet); setAlignment(wtapplet, (gfloat)wtapplet->prefs->alignment); }
static void xmonad_log_applet_fill(GtkContainer *container) #endif { #ifndef PANEL_XFCE4 panel_applet_set_flags( applet, PANEL_APPLET_EXPAND_MAJOR | PANEL_APPLET_EXPAND_MINOR | PANEL_APPLET_HAS_HANDLE); panel_applet_set_background_widget(applet, GTK_WIDGET(applet)); #endif GtkWidget *label = gtk_label_new("Waiting for Xmonad..."); gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END); gtk_label_set_use_markup(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0.5d, 0.5d); set_up_dbus_transfer(label); #ifndef PANEL_XFCE4 gtk_container_add(GTK_CONTAINER(applet), label); gtk_widget_show_all(GTK_WIDGET(applet)); return TRUE; #else gtk_container_add(container, label); #endif }
static void cpufreq_applet_init (CPUFreqApplet *applet) { applet->prefs = NULL; applet->popup = NULL; applet->monitor = NULL; applet->label = gtk_label_new (NULL); applet->unit_label = gtk_label_new (NULL); applet->icon = gtk_image_new (); applet->box = NULL; applet->show_mode = CPUFREQ_MODE_BOTH; applet->show_text_mode = CPUFREQ_MODE_TEXT_FREQUENCY_UNIT; applet->need_refresh = TRUE; panel_applet_set_flags (PANEL_APPLET (applet), PANEL_APPLET_EXPAND_MINOR); applet->orient = panel_applet_get_orient (PANEL_APPLET (applet)); switch (applet->orient) { case PANEL_APPLET_ORIENT_LEFT: case PANEL_APPLET_ORIENT_RIGHT: applet->container = gtk_alignment_new (0.5, 0.5, 0, 0); break; case PANEL_APPLET_ORIENT_UP: case PANEL_APPLET_ORIENT_DOWN: applet->container = gtk_alignment_new (0, 0.5, 0, 0); break; } gtk_container_add (GTK_CONTAINER (applet), applet->container); gtk_widget_show (applet->container); }
static void trash_applet_init (TrashApplet *applet) { const GtkTargetEntry drop_types[] = { { "text/uri-list" } }; /* needed to clamp ourselves to the panel size */ panel_applet_set_flags (PANEL_APPLET (applet), PANEL_APPLET_EXPAND_MINOR); /* setup the image */ applet->image = g_object_ref_sink (gtk_image_new ()); gtk_container_add (GTK_CONTAINER (applet), GTK_WIDGET (applet->image)); gtk_widget_show (GTK_WIDGET (applet->image)); /* setup the trash backend */ applet->trash = g_file_new_for_uri ("trash:/"); applet->trash_monitor = g_file_monitor_file (applet->trash, 0, NULL, NULL); g_signal_connect_swapped (applet->trash_monitor, "changed", G_CALLBACK (trash_applet_monitor_changed), applet); /* setup drag and drop */ gtk_drag_dest_set (GTK_WIDGET (applet), GTK_DEST_DEFAULT_ALL, drop_types, G_N_ELEMENTS (drop_types), GDK_ACTION_MOVE); /* synthesise the first update */ applet->items = -1; trash_applet_monitor_changed (applet); }
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 applet_factory (PanelApplet *applet, const gchar *iid, gpointer user_data) { NaTray *tray; AppletData *data; AtkObject *atko; if (!(strcmp (iid, "OAFIID:GNOME_NotificationAreaApplet") == 0 || strcmp (iid, "OAFIID:GNOME_SystemTrayApplet") == 0)) return FALSE; tray = na_tray_new_for_screen (gtk_widget_get_screen (GTK_WIDGET (applet)), get_orientation_from_applet (applet)); data = g_slice_new (AppletData); data->applet = applet; data->tray = tray; data->about_dialog = NULL; g_object_set_data_full (G_OBJECT (applet), "system-tray-data", data, (GDestroyNotify) free_applet_data); atko = gtk_widget_get_accessible (GTK_WIDGET (applet)); atk_object_set_name (atko, _("Panel Notification Area")); panel_applet_set_flags (applet, PANEL_APPLET_HAS_HANDLE|PANEL_APPLET_EXPAND_MINOR); g_signal_connect (applet, "change_orient", G_CALLBACK (applet_change_orientation), data); g_signal_connect (applet, "change_background", G_CALLBACK (applet_change_background), data); g_signal_connect (applet, "destroy", G_CALLBACK (applet_destroy), data); panel_applet_set_background_widget (applet, GTK_WIDGET (applet)); gtk_container_add (GTK_CONTAINER (applet), GTK_WIDGET (tray)); #ifndef NOTIFICATION_AREA_INPROCESS gtk_window_set_default_icon_name (NOTIFICATION_AREA_ICON); #endif gtk_widget_show_all (GTK_WIDGET (applet)); panel_applet_setup_menu_from_file (applet, NULL, "GNOME_NotificationAreaApplet.xml", NULL, menu_verbs, data); return TRUE; }
static GtkWidget * wireless_applet_new (WirelessApplet *applet) { panel_applet_set_flags (PANEL_APPLET (applet), PANEL_APPLET_EXPAND_MINOR); applet->skfd = iw_sockets_open (); /* this ensures that properties are loaded */ wireless_applet_load_properties (applet); wireless_applet_load_theme (applet); setup_widgets (applet); applet->tips = gtk_tooltips_new (); g_object_ref (applet->tips); gtk_object_sink (GTK_OBJECT (applet->tips)); applet->prefs = NULL; g_signal_connect (applet,"destroy", G_CALLBACK (wireless_applet_destroy),NULL); g_signal_connect (applet->button, "button_press_event", G_CALLBACK (do_not_eat_button_press), NULL); /* Setup the menus */ panel_applet_setup_menu_from_file (PANEL_APPLET (applet), NULL, "GNOME_WirelessApplet.xml", NULL, wireless_menu_verbs, applet); if (panel_applet_get_locked_down (PANEL_APPLET (applet))) { BonoboUIComponent *popup_component; popup_component = panel_applet_get_popup_component (PANEL_APPLET (applet)); bonobo_ui_component_set_prop (popup_component, "/commands/WirelessProperties", "hidden", "1", NULL); } check_wireless (applet); wireless_applet_timeout_handler (applet); wireless_applet_start_timeout (applet); g_signal_connect (G_OBJECT (applet), "change_size", G_CALLBACK (change_size_cb), applet); g_signal_connect (G_OBJECT (applet), "change_orient", G_CALLBACK (change_orient_cb), applet); return GTK_WIDGET (applet); }
static void fish_applet_instance_init (FishApplet *fish, FishAppletClass *klass) { fish->settings = NULL; fish->lockdown_settings = NULL; fish->name = NULL; fish->image = NULL; fish->command = NULL; fish->n_frames = 1; fish->speed = 0.0; fish->rotate = FALSE; fish->orientation = PANEL_APPLET_ORIENT_UP; fish->frame = NULL; fish->drawing_area = NULL; fish->surface = NULL; fish->timeout = 0; fish->current_frame = 0; fish->in_applet = FALSE; fish->requisition.width = -1; fish->requisition.height = -1; fish->prev_allocation.x = -1; fish->prev_allocation.y = -1; fish->prev_allocation.width = -1; fish->prev_allocation.height = -1; fish->pixbuf = NULL; fish->preferences_dialog = NULL; fish->fortune_dialog = NULL; fish->fortune_view = NULL; fish->fortune_label = NULL; fish->fortune_cmd_label = NULL; fish->fortune_buffer = NULL; fish->source_id = 0; fish->io_channel = NULL; fish->april_fools = FALSE; panel_applet_set_flags (PANEL_APPLET (fish), PANEL_APPLET_EXPAND_MINOR); }
static gboolean bigboard_button_applet_fill (PanelApplet *applet) { ButtonData *button_data; #ifdef GUI_LOG log_debug_messages = TRUE; #endif g_log_set_default_handler(log_handler, NULL); g_log_set_handler(G_LOG_DOMAIN, (GLogLevelFlags) (G_LOG_LEVEL_DEBUG | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION), log_handler, NULL); panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR); button_data = bigboard_button_add_to_widget (GTK_WIDGET (applet)); g_debug ("Got panel applet size %d", panel_applet_get_size (applet)); update_size (button_data, panel_applet_get_size (applet)); update_orientation (button_data, panel_applet_get_orient (applet)); /* FIXME: Update this comment. */ /* we have to bind change_orient before we do applet_widget_add since we need to get an initial change_orient signal to set our initial oriantation, and we get that during the _add call */ g_signal_connect (G_OBJECT (button_data->applet), "change_orient", G_CALLBACK (applet_change_orient), button_data); panel_applet_set_background_widget (PANEL_APPLET (button_data->applet), GTK_WIDGET (button_data->applet)); panel_applet_setup_menu_from_file (PANEL_APPLET (button_data->applet), NULL, "GNOME_OnlineDesktop_BigBoardButtonApplet.xml", NULL, bigboard_button_menu_verbs, button_data); gtk_widget_show_all (button_data->applet); return TRUE; }
static void panel_applet_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { PanelApplet *applet = PANEL_APPLET (object); switch (prop_id) { case PROP_ID: applet->priv->id = g_value_dup_string (value); break; case PROP_CLOSURE: applet->priv->closure = g_value_get_pointer (value); /* We know closure should not be NULL, but we'll fail in * panel_applet_constructed() with a proper message if this is * the case. */ if (applet->priv->closure) g_closure_set_marshal (applet->priv->closure, panel_applet_marshal_BOOLEAN__STRING); break; case PROP_SETTINGS_PATH: panel_applet_set_settings_path (applet, g_value_get_string (value)); break; case PROP_ORIENT: panel_applet_set_orient (applet, g_value_get_uint (value)); break; case PROP_FLAGS: panel_applet_set_flags (applet, g_value_get_uint (value)); break; case PROP_SIZE_HINTS: { const int *size_hints; gsize n_elements; size_hints = g_variant_get_fixed_array (g_value_get_pointer (value), &n_elements, sizeof (gint32)); panel_applet_set_size_hints (applet, size_hints, n_elements, 0); } break; case PROP_LOCKED_DOWN: panel_applet_set_locked_down (applet, g_value_get_boolean (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } }
gboolean window_menu_applet_fill (PanelApplet *applet) { WindowMenu *window_menu; window_menu = g_new0 (WindowMenu, 1); window_menu->applet = GTK_WIDGET (applet); force_no_focus_padding (window_menu->applet); gtk_widget_set_tooltip_text (window_menu->applet, _("Window Selector")); panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR); window_menu->size = panel_applet_get_size (applet); window_menu->orient = panel_applet_get_orient (applet); g_signal_connect (window_menu->applet, "destroy", G_CALLBACK (window_menu_destroy), window_menu); window_menu->selector = wnck_selector_new (); gtk_container_add (GTK_CONTAINER (window_menu->applet), window_menu->selector); panel_applet_set_background_widget (PANEL_APPLET (window_menu->applet), GTK_WIDGET (window_menu->selector)); g_signal_connect (window_menu->applet, "key_press_event", G_CALLBACK (window_menu_key_press_event), window_menu); g_signal_connect (window_menu->applet, "size-allocate", G_CALLBACK (window_menu_size_allocate), window_menu); g_signal_connect_after (G_OBJECT (window_menu->applet), "focus-in-event", G_CALLBACK (gtk_widget_queue_draw), window_menu); g_signal_connect_after (G_OBJECT (window_menu->applet), "focus-out-event", G_CALLBACK (gtk_widget_queue_draw), window_menu); g_signal_connect_after (G_OBJECT (window_menu->selector), "draw", G_CALLBACK (window_menu_on_draw), window_menu); g_signal_connect (G_OBJECT (window_menu->selector), "button_press_event", G_CALLBACK (filter_button_press), window_menu); gtk_widget_show_all (GTK_WIDGET (window_menu->applet)); return TRUE; }
/* Sticky Notes applet factory */ static gboolean stickynotes_applet_factory(PanelApplet *panel_applet, const gchar *iid, gpointer data) { if (!strcmp(iid, "StickyNotesApplet")) { if (!stickynotes) stickynotes_applet_init (panel_applet); panel_applet_set_flags (panel_applet, PANEL_APPLET_EXPAND_MINOR); /* Add applet to linked list of all applets */ stickynotes->applets = g_list_append (stickynotes->applets, stickynotes_applet_new(panel_applet)); stickynotes_applet_update_menus (); stickynotes_applet_update_tooltips (); return TRUE; } return FALSE; }
/** * gpm_inhibit_applet_init: * @applet: Inhibit applet instance **/ static void gpm_inhibit_applet_init (GpmInhibitApplet *applet) { /* initialize fields */ applet->image = NULL; applet->cookie = 0; applet->proxy = NULL; /* Add application specific icons to search path */ gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), PKG_DATA_DIR G_DIR_SEPARATOR_S "icons"); /* monitor the daemon */ applet->bus_watch_id = g_bus_watch_name (G_BUS_TYPE_SESSION, GS_DBUS_SERVICE, G_BUS_NAME_WATCHER_FLAGS_NONE, (GBusNameAppearedCallback) gpm_inhibit_applet_name_appeared_cb, (GBusNameVanishedCallback) gpm_inhibit_applet_name_vanished_cb, applet, NULL); /* prepare */ panel_applet_set_flags (PANEL_APPLET (applet), PANEL_APPLET_EXPAND_MINOR); applet->image = gtk_image_new(); gtk_container_add (GTK_CONTAINER (applet), applet->image); /* show */ gtk_widget_show_all (GTK_WIDGET(applet)); /* connect */ g_signal_connect (G_OBJECT(applet), "button-release-event", G_CALLBACK(gpm_applet_click_cb), NULL); g_signal_connect (G_OBJECT(applet), "size-allocate", G_CALLBACK(gpm_applet_size_allocate_cb), NULL); g_signal_connect (G_OBJECT(applet), "destroy", G_CALLBACK(gpm_applet_destroy_cb), NULL); }
gboolean show_desktop_applet_fill (PanelApplet *applet) { ShowDesktopData *sdd; AtkObject *atk_obj; BonoboUIComponent* popup_component; panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR); sdd = g_new0 (ShowDesktopData, 1); sdd->applet = GTK_WIDGET (applet); sdd->image = gtk_image_new (); switch (panel_applet_get_orient (applet)) { case PANEL_APPLET_ORIENT_LEFT: case PANEL_APPLET_ORIENT_RIGHT: sdd->orient = GTK_ORIENTATION_VERTICAL; break; case PANEL_APPLET_ORIENT_UP: case PANEL_APPLET_ORIENT_DOWN: default: sdd->orient = GTK_ORIENTATION_HORIZONTAL; break; } sdd->size = panel_applet_get_size (PANEL_APPLET (sdd->applet)); g_signal_connect (G_OBJECT (sdd->applet), "realize", G_CALLBACK (show_desktop_applet_realized), sdd); sdd->button = gtk_toggle_button_new (); gtk_widget_set_name (sdd->button, "showdesktop-button"); gtk_rc_parse_string ("\n" " style \"showdesktop-button-style\"\n" " {\n" " GtkWidget::focus-line-width=0\n" " GtkWidget::focus-padding=0\n" " }\n" "\n" " widget \"*.showdesktop-button\" style \"showdesktop-button-style\"\n" "\n"); atk_obj = gtk_widget_get_accessible (sdd->button); atk_object_set_name (atk_obj, _("Show Desktop Button")); g_signal_connect (G_OBJECT (sdd->button), "button_press_event", G_CALLBACK (do_not_eat_button_press), NULL); g_signal_connect (G_OBJECT (sdd->button), "toggled", G_CALLBACK (button_toggled_callback), sdd); gtk_container_set_border_width (GTK_CONTAINER (sdd->button), 0); gtk_container_add (GTK_CONTAINER (sdd->button), sdd->image); gtk_container_add (GTK_CONTAINER (sdd->applet), sdd->button); g_signal_connect (G_OBJECT (sdd->button), "size_allocate", G_CALLBACK (button_size_allocated), sdd); /* FIXME: Update this comment. */ /* we have to bind change_orient before we do applet_widget_add since we need to get an initial change_orient signal to set our initial oriantation, and we get that during the _add call */ g_signal_connect (G_OBJECT (sdd->applet), "change_orient", G_CALLBACK (applet_change_orient), sdd); panel_applet_set_background_widget (PANEL_APPLET (sdd->applet), GTK_WIDGET (sdd->applet)); panel_applet_setup_menu_from_file (PANEL_APPLET (sdd->applet), NULL, "GNOME_ShowDesktopApplet.xml", NULL, show_desktop_menu_verbs, sdd); g_signal_connect (G_OBJECT (sdd->applet), "destroy", G_CALLBACK (applet_destroyed), sdd); gtk_drag_dest_set (GTK_WIDGET(sdd->button), 0, NULL, 0, 0); g_signal_connect (G_OBJECT(sdd->button), "drag_motion", G_CALLBACK (button_drag_motion), sdd); g_signal_connect (G_OBJECT(sdd->button), "drag_leave", G_CALLBACK (button_drag_leave), sdd); popup_component = panel_applet_get_popup_component (sdd->applet); launchpad_integration_add_bonobo_ui(popup_component, "/popups/button3/LaunchpadItems"); gtk_widget_show_all (sdd->applet); return TRUE; }
static gboolean workrave_applet_fill(PanelApplet *applet) { GdkPixbuf *pixbuf = NULL; GtkWidget *hbox = NULL; BonoboUIComponent *ui = NULL; PanelAppletOrient orient; // Create menus. panel_applet_setup_menu_from_file(applet, WORKRAVE_UIDATADIR, "GNOME_WorkraveApplet.xml", NULL, workrave_applet_verbs, applet); // Add listeners for menu toggle-items. ui = panel_applet_get_popup_component(applet); bonobo_ui_component_add_listener(ui, "ShowLog", showlog_callback, NULL); bonobo_ui_component_add_listener(ui, "Normal", mode_callback, NULL); bonobo_ui_component_add_listener(ui, "Suspended", mode_callback, NULL); bonobo_ui_component_add_listener(ui, "Quiet", mode_callback, NULL); panel_applet_set_flags(PANEL_APPLET(applet), PANEL_APPLET_EXPAND_MINOR); gtk_container_set_border_width(GTK_CONTAINER(applet), 0); panel_applet_set_background_widget(applet, GTK_WIDGET(applet)); gtk_widget_set_events(GTK_WIDGET(applet), gtk_widget_get_events(GTK_WIDGET(applet)) | GDK_BUTTON_PRESS_MASK); g_signal_connect(G_OBJECT(applet), "button_press_event", G_CALLBACK(button_pressed), g_applet); // Socket. g_applet->socket = gtk_socket_new(); gtk_container_set_border_width(GTK_CONTAINER(g_applet->socket), 0); // Image pixbuf = gdk_pixbuf_new_from_file(WORKRAVE_PKGDATADIR "/images/workrave-icon-medium.png", NULL); g_applet->image = gtk_image_new_from_pixbuf(pixbuf); // Signals. g_signal_connect(g_applet->socket, "plug_removed", G_CALLBACK(plug_removed), NULL); g_signal_connect(g_applet->socket, "plug_added", G_CALLBACK(plug_added), NULL); g_signal_connect(G_OBJECT(applet), "change_orient", G_CALLBACK(change_orient), NULL); // Container. hbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(applet), hbox); gtk_box_pack_end(GTK_BOX(hbox), g_applet->socket, TRUE, TRUE, 0); gtk_box_pack_end(GTK_BOX(hbox), g_applet->image, TRUE, TRUE, 0); gtk_container_set_border_width(GTK_CONTAINER(hbox), 0); g_applet->socket_id = gtk_socket_get_id(GTK_SOCKET(g_applet->socket)); g_applet->size = panel_applet_get_size(applet); orient = panel_applet_get_orient(applet); switch (orient) { case PANEL_APPLET_ORIENT_UP: g_applet->orientation = 0; break; case PANEL_APPLET_ORIENT_RIGHT: g_applet->orientation = 1; break; case PANEL_APPLET_ORIENT_DOWN: g_applet->orientation = 2; break; case PANEL_APPLET_ORIENT_LEFT: g_applet->orientation = 3; break; } force_no_focus_padding(GTK_WIDGET(applet)); force_no_focus_padding(GTK_WIDGET(g_applet->socket)); force_no_focus_padding(GTK_WIDGET(g_applet->image)); force_no_focus_padding(GTK_WIDGET(hbox)); g_signal_connect(G_OBJECT(applet), "destroy", G_CALLBACK(workrave_applet_destroy), NULL); g_signal_connect(G_OBJECT(hbox), "realize", G_CALLBACK(workrave_applet_realize), NULL); g_signal_connect(G_OBJECT(hbox), "unrealize", G_CALLBACK(workrave_applet_unrealize), NULL); gtk_widget_show(GTK_WIDGET(g_applet->image)); gtk_widget_show(GTK_WIDGET(g_applet->socket)); gtk_widget_show(GTK_WIDGET(hbox)); gtk_widget_show(GTK_WIDGET(applet)); g_signal_connect(G_OBJECT(applet), "size-allocate", G_CALLBACK(size_allocate), NULL); g_signal_connect(G_OBJECT(applet), "change_background", G_CALLBACK(change_background), NULL); return TRUE; }
static gboolean planetload_applet_start( PanelApplet *applet, const gchar *iid, gpointer data) { struct app_t *app; GtkWidget *vbox; debug_init(); if (strcmp (iid, "OAFIID:PlanetloadApplet") != 0) return FALSE; app = g_new(struct app_t, 1); memset(app, 0, sizeof *app); app->use_planet = TRUE; app->applet = applet; panel_applet_add_preferences (applet, "/schemas/apps/planetload_applet/prefs", NULL); panel_applet_set_flags(applet, PANEL_APPLET_EXPAND_MINOR); g_signal_connect(G_OBJECT(applet), "destroy", G_CALLBACK(destroy_cb), app); g_signal_connect(G_OBJECT(applet), "change_size", G_CALLBACK(change_size_cb), app); g_signal_connect(G_OBJECT(applet), "change_orient", G_CALLBACK(change_orient_cb), app); app->is_vert = get_applet_vert(applet); app->tooltips = gtk_tooltips_new(); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(applet), vbox); if (!app->is_vert) app->pack = gtk_hbox_new(FALSE, 0); else app->pack = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), app->pack, TRUE, TRUE, 0); if (!appconf_load(app)) { appconf_init(app); appconf_save(app); } panel_applet_setup_menu_from_file(applet, NULL, "PlanetloadApplet.xml", NULL, rmenu_verbs, app); setup_schemes_menu(app); app->scheme_label_bar = gtk_event_box_new(); gtk_box_pack_end(GTK_BOX(vbox), app->scheme_label_bar, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(app->scheme_label_bar), "button-press-event", G_CALLBACK(lmenu_popup), app); { gchar buf[128]; app->scheme_label_text = gtk_label_new(scheme_get_current(app, buf)); gtk_container_add(GTK_CONTAINER(app->scheme_label_bar), app->scheme_label_text); } { PangoFontDescription *pfd; pfd = pango_font_description_from_string(app->fontname); gtk_widget_modify_font(app->scheme_label_text, pfd); pango_font_description_free(pfd); } gtk_widget_show_all(GTK_WIDGET(applet)); disp_scheme_onoff(app); timer_set(app); return TRUE; }
void gweather_applet_create (GWeatherApplet *gw_applet) { GSimpleActionGroup *action_group; GAction *action; gchar *ui_path; AtkObject *atk_obj; GWeatherForecastType type; GNetworkMonitor*monitor; panel_applet_set_flags (gw_applet->applet, PANEL_APPLET_EXPAND_MINOR); gw_applet->container = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_container_add (GTK_CONTAINER (gw_applet->applet), gw_applet->container); g_signal_connect (G_OBJECT(gw_applet->applet), "change_orient", G_CALLBACK(change_orient_cb), gw_applet); g_signal_connect (G_OBJECT(gw_applet->applet), "size_allocate", G_CALLBACK(size_allocate_cb), gw_applet); g_signal_connect (G_OBJECT(gw_applet->applet), "destroy", G_CALLBACK (applet_destroy), gw_applet); g_signal_connect (G_OBJECT(gw_applet->applet), "button_press_event", G_CALLBACK(clicked_cb), gw_applet); g_signal_connect (G_OBJECT(gw_applet->applet), "key_press_event", G_CALLBACK(key_press_cb), gw_applet); gtk_widget_set_tooltip_text (GTK_WIDGET(gw_applet->applet), _("GNOME Weather")); atk_obj = gtk_widget_get_accessible (GTK_WIDGET (gw_applet->applet)); if (GTK_IS_ACCESSIBLE (atk_obj)) atk_object_set_name (atk_obj, _("GNOME Weather")); gw_applet->orient = panel_applet_get_orient (gw_applet->applet); action_group = g_simple_action_group_new (); g_action_map_add_action_entries (G_ACTION_MAP (action_group), weather_applet_menu_actions, G_N_ELEMENTS (weather_applet_menu_actions), gw_applet); ui_path = g_build_filename (GWEATHER_MENU_UI_DIR, "gweather-applet-menu.xml", NULL); panel_applet_setup_menu_from_file (gw_applet->applet, ui_path, action_group, GETTEXT_PACKAGE); g_free (ui_path); gtk_widget_insert_action_group (GTK_WIDGET (gw_applet->applet), "gweather", G_ACTION_GROUP (action_group)); action = g_action_map_lookup_action (G_ACTION_MAP (action_group), "preferences"); g_object_bind_property (gw_applet->applet, "locked-down", action, "enabled", G_BINDING_DEFAULT|G_BINDING_INVERT_BOOLEAN|G_BINDING_SYNC_CREATE); g_object_unref (action_group); type = g_settings_get_boolean (gw_applet->applet_settings, "detailed") ? GWEATHER_FORECAST_ZONE : GWEATHER_FORECAST_STATE; gw_applet->gweather_info = gweather_info_new(NULL, type); g_signal_connect (gw_applet->gweather_info, "updated", G_CALLBACK (update_finish), gw_applet); place_widgets(gw_applet); monitor = g_network_monitor_get_default(); g_signal_connect (monitor, "network-changed", G_CALLBACK (network_changed), gw_applet); }
gboolean window_list_applet_fill (PanelApplet *applet) { TasklistData *tasklist; GError *error; GConfValue *value; gint sizepref; tasklist = g_new0 (TasklistData, 1); tasklist->applet = GTK_WIDGET (applet); panel_applet_set_flags (PANEL_APPLET (tasklist->applet), PANEL_APPLET_EXPAND_MAJOR | PANEL_APPLET_EXPAND_MINOR | PANEL_APPLET_HAS_HANDLE); panel_applet_add_preferences (applet, "/schemas/apps/window_list_applet/prefs", NULL); setup_gconf (tasklist); error = NULL; tasklist->include_all_workspaces = panel_applet_gconf_get_bool (applet, "display_all_workspaces", &error); if (error) { g_error_free (error); tasklist->include_all_workspaces = FALSE; /* Default value */ } error = NULL; tasklist->grouping = -1; value = panel_applet_gconf_get_value (applet, "group_windows", &error); if (error) { g_error_free (error); } else if (value) { tasklist->grouping = get_grouping_type (value); gconf_value_free (value); } if (tasklist->grouping < 0) tasklist->grouping = WNCK_TASKLIST_AUTO_GROUP; /* Default value */ error = NULL; tasklist->move_unminimized_windows = panel_applet_gconf_get_bool (applet, "move_unminimized_windows", &error); if (error) { g_error_free (error); tasklist->move_unminimized_windows = TRUE; /* Default value */ } tasklist->size = panel_applet_get_size (applet); switch (panel_applet_get_orient (applet)) { case PANEL_APPLET_ORIENT_LEFT: case PANEL_APPLET_ORIENT_RIGHT: tasklist->orientation = GTK_ORIENTATION_VERTICAL; break; case PANEL_APPLET_ORIENT_UP: case PANEL_APPLET_ORIENT_DOWN: default: tasklist->orientation = GTK_ORIENTATION_HORIZONTAL; break; } tasklist->screen = wncklet_get_screen (tasklist->applet); /* because the tasklist doesn't respond to signals at the moment */ wnck_screen_force_update (tasklist->screen); tasklist->tasklist = wnck_tasklist_new (tasklist->screen); wnck_tasklist_set_icon_loader (WNCK_TASKLIST (tasklist->tasklist), icon_loader_func, tasklist, NULL); /* get size preferences */ error = NULL; sizepref = panel_applet_gconf_get_int (applet, "minimum_size", &error); if (error) { sizepref = 50; /* Default value */ g_error_free (error); } if (tasklist->orientation == GTK_ORIENTATION_HORIZONTAL) wnck_tasklist_set_minimum_width (WNCK_TASKLIST (tasklist->tasklist), sizepref); else wnck_tasklist_set_minimum_height (WNCK_TASKLIST (tasklist->tasklist), sizepref); error = NULL; sizepref = panel_applet_gconf_get_int (applet, "maximum_size", &error); if (error) { sizepref = 4096; /* Default value */ g_error_free (error); } tasklist->maximum_size = sizepref; g_signal_connect (G_OBJECT (tasklist->tasklist), "destroy", G_CALLBACK (destroy_tasklist), tasklist); g_signal_connect (G_OBJECT (tasklist->applet), "size_request", G_CALLBACK (applet_size_request), tasklist); tasklist_update (tasklist); gtk_widget_show (tasklist->tasklist); gtk_container_add (GTK_CONTAINER (tasklist->applet), tasklist->tasklist); g_signal_connect (G_OBJECT (tasklist->applet), "realize", G_CALLBACK (applet_realized), tasklist); g_signal_connect (G_OBJECT (tasklist->applet), "change_orient", G_CALLBACK (applet_change_orient), tasklist); g_signal_connect (G_OBJECT (tasklist->applet), "change_size", G_CALLBACK (applet_change_pixel_size), tasklist); g_signal_connect (G_OBJECT (tasklist->applet), "change_background", G_CALLBACK (applet_change_background), tasklist); panel_applet_set_background_widget (PANEL_APPLET (tasklist->applet), GTK_WIDGET (tasklist->applet)); panel_applet_setup_menu_from_file (PANEL_APPLET (tasklist->applet), NULL, "GNOME_WindowListApplet.xml", NULL, tasklist_menu_verbs, tasklist); if (panel_applet_get_locked_down (PANEL_APPLET (tasklist->applet))) { BonoboUIComponent *popup_component; popup_component = panel_applet_get_popup_component (PANEL_APPLET (tasklist->applet)); bonobo_ui_component_set_prop (popup_component, "/commands/TasklistPreferences", "hidden", "1", NULL); } gtk_widget_show (tasklist->applet); return TRUE; }
gboolean window_list_applet_fill (PanelApplet *applet) { TasklistData *tasklist; GtkActionGroup *action_group; GtkAction *action; gchar *ui_path; tasklist = g_new0 (TasklistData, 1); tasklist->applet = GTK_WIDGET (applet); panel_applet_set_flags (PANEL_APPLET (tasklist->applet), PANEL_APPLET_EXPAND_MAJOR | PANEL_APPLET_EXPAND_MINOR | PANEL_APPLET_HAS_HANDLE); panel_applet_add_preferences (applet, "/schemas/apps/window_list_applet/prefs", NULL); setup_gconf (tasklist); tasklist->include_all_workspaces = g_settings_get_boolean (tasklist->settings, "display-all-workspaces"); tasklist->grouping = g_settings_get_enum (tasklist->settings, "group-windows"); tasklist->move_unminimized_windows = g_settings_get_boolean (tasklist->settings, "move-unminimized-windows"); tasklist->size = panel_applet_get_size (applet); switch (panel_applet_get_orient (applet)) { case PANEL_APPLET_ORIENT_LEFT: case PANEL_APPLET_ORIENT_RIGHT: tasklist->orientation = GTK_ORIENTATION_VERTICAL; break; case PANEL_APPLET_ORIENT_UP: case PANEL_APPLET_ORIENT_DOWN: default: tasklist->orientation = GTK_ORIENTATION_HORIZONTAL; break; } tasklist->tasklist = wnck_tasklist_new (); wnck_tasklist_set_icon_loader (WNCK_TASKLIST (tasklist->tasklist), icon_loader_func, tasklist, NULL); g_signal_connect (G_OBJECT (tasklist->tasklist), "destroy", G_CALLBACK (destroy_tasklist), tasklist); g_signal_connect (G_OBJECT (tasklist->applet), "size_allocate", G_CALLBACK (applet_size_allocate), tasklist); tasklist_update (tasklist); gtk_widget_show (tasklist->tasklist); gtk_container_add (GTK_CONTAINER (tasklist->applet), tasklist->tasklist); g_signal_connect (G_OBJECT (tasklist->applet), "realize", G_CALLBACK (applet_realized), tasklist); g_signal_connect (G_OBJECT (tasklist->applet), "change_orient", G_CALLBACK (applet_change_orient), tasklist); g_signal_connect (G_OBJECT (tasklist->applet), "change_size", G_CALLBACK (applet_change_pixel_size), tasklist); g_signal_connect (G_OBJECT (tasklist->applet), "change_background", G_CALLBACK (applet_change_background), tasklist); panel_applet_set_background_widget (PANEL_APPLET (tasklist->applet), GTK_WIDGET (tasklist->applet)); action_group = gtk_action_group_new ("Tasklist Applet Actions"); gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (action_group, tasklist_menu_actions, G_N_ELEMENTS (tasklist_menu_actions), tasklist); ui_path = g_build_filename (WNCK_MENU_UI_DIR, "window-list-menu.xml", NULL); panel_applet_setup_menu_from_file (PANEL_APPLET (tasklist->applet), ui_path, action_group); g_free (ui_path); action = gtk_action_group_get_action (action_group, "TasklistPreferences"); g_object_bind_property (tasklist->applet, "locked-down", action, "visible", G_BINDING_DEFAULT|G_BINDING_INVERT_BOOLEAN|G_BINDING_SYNC_CREATE); g_object_unref (action_group); gtk_widget_show (tasklist->applet); return TRUE; }
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; }
static void macmenu_construct(AppletType* applet) { MacMenu *mmb = g_slice_new0(MacMenu); mmb->applet = applet; mmb->screen = wnck_screen_get(gdk_screen_get_number( gtk_widget_get_screen(GTK_WIDGET(applet)) )); mmb->mbars_scks = g_hash_table_new(NULL, NULL); mmb->title_subs = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); mmb->ts_mtime = 0; mmb->basebox = GTK_BOX(gtk_hbox_new(FALSE, 0)); gtk_container_set_border_width(GTK_CONTAINER(mmb->basebox), 0); gtk_container_add(GTK_CONTAINER(applet), GTK_WIDGET(mmb->basebox)); mmb->label = GTK_LABEL(gtk_label_new(MAIN_LABEL_TEXT)); PangoAttrList *pattr = pango_attr_list_new(); PangoAttribute *pa = pango_attr_weight_new(PANGO_WEIGHT_BOLD); pa->start_index = 0; pa->end_index = 1024; pango_attr_list_insert(pattr, pa); gtk_label_set_attributes(mmb->label, pattr); pango_attr_list_unref(pattr); gtk_label_set_ellipsize(mmb->label, PANGO_ELLIPSIZE_END); gtk_label_set_max_width_chars(mmb->label, MAX_LABEL_WIDTH_N_CHARS * 10); gtk_label_set_single_line_mode(mmb->label, TRUE); gtk_box_pack_start(mmb->basebox, GTK_WIDGET(mmb->label), FALSE, FALSE, 0); mmb->label_space = gtk_event_box_new(); gtk_widget_set_size_request(mmb->label_space, 8, 1); gtk_box_pack_start(mmb->basebox, mmb->label_space, FALSE, FALSE, 0); mmb->notebook = GTK_NOTEBOOK(gtk_notebook_new()); gtk_notebook_set_show_tabs(mmb->notebook, FALSE); gtk_notebook_set_show_border(mmb->notebook, FALSE); gtk_box_pack_start(mmb->basebox, GTK_WIDGET(mmb->notebook), TRUE, TRUE, 0); mmb->dummysck = gtk_hbox_new(FALSE, 0); gtk_notebook_append_page(mmb->notebook, mmb->dummysck, NULL); mmb->mainsck = gtk_hbox_new(FALSE, SHORTCUT_SPACING); gtk_notebook_append_page(mmb->notebook, mmb->mainsck, NULL); //initialize_mainsck(mmb); mmb->button = GTK_BUTTON(gtk_button_new()); gtk_button_set_relief(mmb->button, GTK_RELIEF_NONE); gtk_button_set_focus_on_click(GTK_BUTTON(mmb->button), FALSE); gtk_box_pack_start(mmb->basebox, GTK_WIDGET(mmb->button), FALSE, FALSE, 0); g_signal_connect(mmb->screen, "active-window-changed", G_CALLBACK(desktop_active_window_changed), mmb); g_signal_connect(mmb->screen, "window-opened", G_CALLBACK(desktop_window_opened), mmb); #ifdef FOR_XFCE g_signal_connect(applet, "free-data", G_CALLBACK(macmenu_free_data), mmb); g_signal_connect(applet, "size-changed", G_CALLBACK(macmenu_set_size), mmb); // setup panel applet gtk_widget_show_all(GTK_WIDGET(mmb->basebox)); xfce_panel_plugin_add_action_widget (applet, GTK_WIDGET(mmb->button)); xfce_panel_plugin_set_expand(applet, TRUE); macmenu_set_size(applet, xfce_panel_plugin_get_size(applet), mmb); // load config, set popup macmenu_load_from_rc(mmb); GtkWidget* label_toggle = gtk_check_menu_item_new_with_label("Hide Label"); g_signal_connect(label_toggle, "toggled", G_CALLBACK(on_label_toggled), mmb); gtk_widget_show(label_toggle); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(label_toggle), mmb->hide_label); gtk_check_menu_item_toggled(GTK_CHECK_MENU_ITEM(label_toggle)); xfce_panel_plugin_menu_insert_item(mmb->applet, GTK_MENU_ITEM(label_toggle)); #elif FOR_GNOME g_signal_connect(applet, "destroy", G_CALLBACK(macmenu_free_data), mmb); // setup panel applet gtk_widget_show_all(GTK_WIDGET(applet)); g_signal_connect(GTK_WIDGET(mmb->button), "pressed", G_CALLBACK(on_button_pressed), mmb); panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MAJOR); macmenu_set_size(applet, panel_applet_get_size(applet), mmb); // load config, set popup mmb->gconf = gconf_client_get_default(); macmenu_load_from_gconf(mmb); macmenu_write_gconf(mmb); static const char toggle_menu_xml [] = "<popup name=\"button3\">\n" " <menuitem name=\"hide_label\" " " verb=\"hide_label\" " " _label=\"_Hide Label\"\n" " type=\"toggle\"/>\n" "</popup>\n"; static const BonoboUIVerb toggle_menu_verbs[] = { BONOBO_UI_VERB_END }; panel_applet_setup_menu(mmb->applet, toggle_menu_xml, toggle_menu_verbs, mmb); BonoboUIComponent* popup_component = panel_applet_get_popup_component(mmb->applet); bonobo_ui_component_set_prop(popup_component, "/commands/hide_label", "state", mmb->hide_label ? "1": "0", NULL); bonobo_ui_component_add_listener(panel_applet_get_popup_component(mmb->applet), "hide_label", (BonoboUIListenerFn) on_label_toggled, mmb); on_label_toggled(NULL, NULL, 0, NULL, mmb); #endif // FOR_XFCE/FOR_GNOME add_all(mmb); XSetErrorHandler(handle_x_error); }
gboolean workspace_switcher_applet_fill (PanelApplet *applet) { PagerData *pager; GtkActionGroup *action_group; GtkAction *action; gboolean display_names; 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); pager->n_rows = g_settings_get_int (pager->settings, "num-rows"); display_names = g_settings_get_boolean (pager->settings, "display-workspace-names"); if (display_names) { pager->display_mode = WNCK_PAGER_DISPLAY_NAME; } else { pager->display_mode = WNCK_PAGER_DISPLAY_CONTENT; } pager->display_all = g_settings_get_boolean (pager->settings, "display-all-workspaces"); 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->pager = wnck_pager_new (); pager->screen = NULL; pager->wm = PAGER_WM_UNKNOWN; 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); gtk_container_add (GTK_CONTAINER (pager->applet), pager->pager); gtk_widget_show (pager->pager); g_signal_connect (G_OBJECT (pager->applet), "realize", G_CALLBACK (applet_realized), pager); g_signal_connect (G_OBJECT (pager->applet), "unrealize", G_CALLBACK (applet_unrealized), pager); g_signal_connect (G_OBJECT (pager->applet), "change_orient", G_CALLBACK (applet_change_orient), pager); g_signal_connect (G_OBJECT (pager->applet), "change_background", G_CALLBACK (applet_change_background), pager); gtk_widget_show (pager->applet); panel_applet_set_background_widget (PANEL_APPLET (pager->applet), GTK_WIDGET (pager->applet)); action_group = gtk_action_group_new ("WorkspaceSwitcher Applet Actions"); gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (action_group, pager_menu_actions, G_N_ELEMENTS (pager_menu_actions), pager); panel_applet_setup_menu_from_resource (PANEL_APPLET (pager->applet), WNCKLET_RESOURCE_PATH "workspace-switcher-menu.xml", action_group); action = gtk_action_group_get_action (action_group, "PagerPreferences"); g_object_bind_property (pager->applet, "locked-down", action, "visible", G_BINDING_DEFAULT|G_BINDING_INVERT_BOOLEAN|G_BINDING_SYNC_CREATE); g_object_unref (action_group); return TRUE; }
/* Create a Sticky Notes applet */ StickyNotesApplet * stickynotes_applet_new(PanelApplet *panel_applet) { AtkObject *atk_obj; gchar *ui_path; /* Create Sticky Notes Applet */ StickyNotesApplet *applet = g_new(StickyNotesApplet, 1); /* Initialize Sticky Notes Applet */ applet->w_applet = GTK_WIDGET(panel_applet); applet->w_image = gtk_image_new(); applet->destroy_all_dialog = NULL; applet->prelighted = FALSE; applet->pressed = FALSE; applet->menu_tip = NULL; /* Expand the applet for Fitts' law complience. */ panel_applet_set_flags(panel_applet, PANEL_APPLET_EXPAND_MINOR); /* Add the applet icon */ gtk_container_add(GTK_CONTAINER(panel_applet), applet->w_image); applet->panel_size = panel_applet_get_size (panel_applet); applet->panel_orient = panel_applet_get_orient (panel_applet); stickynotes_applet_update_icon(applet); /* Add the popup menu */ applet->action_group = gtk_action_group_new ("StickyNotes Applet Actions"); gtk_action_group_set_translation_domain (applet->action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (applet->action_group, stickynotes_applet_menu_actions, G_N_ELEMENTS (stickynotes_applet_menu_actions), applet); gtk_action_group_add_toggle_actions (applet->action_group, stickynotes_applet_menu_toggle_actions, G_N_ELEMENTS (stickynotes_applet_menu_toggle_actions), applet); ui_path = g_build_filename (STICKYNOTES_MENU_UI_DIR, "stickynotes-applet-menu.xml", NULL); panel_applet_setup_menu_from_file(panel_applet, ui_path, applet->action_group); g_free (ui_path); if (panel_applet_get_locked_down (panel_applet)) { GtkAction *action; action = gtk_action_group_get_action (applet->action_group, "preferences"); gtk_action_set_visible (action, FALSE); } /* Connect all signals for applet management */ g_signal_connect(G_OBJECT(applet->w_applet), "button-press-event", G_CALLBACK(applet_button_cb), applet); g_signal_connect(G_OBJECT(applet->w_applet), "key-press-event", G_CALLBACK(applet_key_cb), applet); g_signal_connect(G_OBJECT(applet->w_applet), "focus-in-event", G_CALLBACK(applet_focus_cb), applet); g_signal_connect(G_OBJECT(applet->w_applet), "focus-out-event", G_CALLBACK(applet_focus_cb), applet); g_signal_connect(G_OBJECT(applet->w_applet), "enter-notify-event", G_CALLBACK(applet_cross_cb), applet); g_signal_connect(G_OBJECT(applet->w_applet), "leave-notify-event", G_CALLBACK(applet_cross_cb), applet); g_signal_connect(G_OBJECT(applet->w_applet), "size-allocate", G_CALLBACK(applet_size_allocate_cb), applet); g_signal_connect(G_OBJECT(applet->w_applet), "change-orient", G_CALLBACK(applet_change_orient_cb), applet); g_signal_connect(G_OBJECT(applet->w_applet), "destroy", G_CALLBACK(applet_destroy_cb), applet); panel_applet_set_background_widget (panel_applet, applet->w_applet); atk_obj = gtk_widget_get_accessible (applet->w_applet); atk_object_set_name (atk_obj, _("Sticky Notes")); /* Show the applet */ gtk_widget_show_all(GTK_WIDGET(applet->w_applet)); return applet; }
void gweather_applet_create (GWeatherApplet *gw_applet) { GtkActionGroup *action_group; gchar *ui_path; AtkObject *atk_obj; gw_applet->gweather_pref.location = NULL; gw_applet->gweather_pref.update_interval = 1800; gw_applet->gweather_pref.update_enabled = TRUE; gw_applet->gweather_pref.detailed = FALSE; gw_applet->gweather_pref.radar_enabled = TRUE; gw_applet->gweather_pref.temperature_unit = TEMP_UNIT_INVALID; gw_applet->gweather_pref.speed_unit = SPEED_UNIT_INVALID; gw_applet->gweather_pref.pressure_unit = PRESSURE_UNIT_INVALID; gw_applet->gweather_pref.distance_unit = DISTANCE_UNIT_INVALID; panel_applet_set_flags (gw_applet->applet, PANEL_APPLET_EXPAND_MINOR); panel_applet_set_background_widget(gw_applet->applet, GTK_WIDGET(gw_applet->applet)); g_set_application_name (_("Weather Report")); gtk_window_set_default_icon_name ("weather-storm"); gw_applet->container = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_container_add (GTK_CONTAINER (gw_applet->applet), gw_applet->container); g_signal_connect (G_OBJECT(gw_applet->applet), "change_orient", G_CALLBACK(change_orient_cb), gw_applet); g_signal_connect (G_OBJECT(gw_applet->applet), "size_allocate", G_CALLBACK(size_allocate_cb), gw_applet); g_signal_connect (G_OBJECT(gw_applet->applet), "destroy", G_CALLBACK (applet_destroy), gw_applet); g_signal_connect (G_OBJECT(gw_applet->applet), "button_press_event", G_CALLBACK(clicked_cb), gw_applet); g_signal_connect (G_OBJECT(gw_applet->applet), "key_press_event", G_CALLBACK(key_press_cb), gw_applet); gtk_widget_set_tooltip_text (GTK_WIDGET(gw_applet->applet), _("GNOME Weather")); atk_obj = gtk_widget_get_accessible (GTK_WIDGET (gw_applet->applet)); if (GTK_IS_ACCESSIBLE (atk_obj)) atk_object_set_name (atk_obj, _("GNOME Weather")); gw_applet->size = panel_applet_get_size (gw_applet->applet); gw_applet->orient = panel_applet_get_orient (gw_applet->applet); action_group = gtk_action_group_new ("GWeather Applet Actions"); gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (action_group, weather_applet_menu_actions, G_N_ELEMENTS (weather_applet_menu_actions), gw_applet); ui_path = g_build_filename (GWEATHER_MENU_UI_DIR, "gweather-applet-menu.xml", NULL); panel_applet_setup_menu_from_file (gw_applet->applet, ui_path, action_group); g_free (ui_path); if (panel_applet_get_locked_down (gw_applet->applet)) { GtkAction *action; action = gtk_action_group_get_action (action_group, "Props"); gtk_action_set_visible (action, FALSE); } g_object_unref (action_group); place_widgets(gw_applet); #ifdef HAVE_NETWORKMANAGER setup_network_monitor (gw_applet); #endif }