/** * gpm_inhibit_applet_name_appeared_cb: **/ static void gpm_inhibit_applet_name_appeared_cb (GDBusConnection *connection, const gchar *name, const gchar *name_owner, GpmInhibitApplet *applet) { gpm_inhibit_applet_dbus_connect (applet); gpm_applet_update_tooltip (applet); gpm_applet_update_icon (applet); }
/** * gpm_inhibit_applet_init: * @applet: Inhibit applet instance **/ static void gpm_inhibit_applet_init (GpmInhibitApplet *applet) { DBusGConnection *connection; /* initialize fields */ applet->size = 0; applet->icon = NULL; applet->cookie = 0; applet->connection = NULL; applet->proxy = NULL; /* Add application specific icons to search path */ gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), GPM_DATA G_DIR_SEPARATOR_S "icons"); applet->monitor = egg_dbus_monitor_new (); g_signal_connect (applet->monitor, "connection-changed", G_CALLBACK (monitor_connection_cb), applet); connection = dbus_g_bus_get (DBUS_BUS_SESSION, NULL); egg_dbus_monitor_assign (applet->monitor, connection, GS_DBUS_SERVICE); gpm_inhibit_applet_dbus_connect (applet); /* prepare */ mate_panel_applet_set_flags (MATE_PANEL_APPLET (applet), MATE_PANEL_APPLET_EXPAND_MINOR); /* show */ gtk_widget_show_all (GTK_WIDGET(applet)); /* set appropriate size and load icon accordingly */ gpm_applet_draw_cb (applet); /* connect */ g_signal_connect (G_OBJECT(applet), "button-press-event", G_CALLBACK(gpm_applet_click_cb), NULL); #if GTK_CHECK_VERSION (3, 0, 0) g_signal_connect (G_OBJECT(applet), "draw", G_CALLBACK(gpm_applet_draw_cb), NULL); #else g_signal_connect (G_OBJECT(applet), "expose-event", G_CALLBACK(gpm_applet_draw_cb), NULL); #endif /* We use g_signal_connect_after because letting the panel draw * the background is the only way to have the correct * background when a theme defines a background picture. */ g_signal_connect_after (G_OBJECT(applet), "expose-event", G_CALLBACK(gpm_applet_draw_cb), NULL); g_signal_connect (G_OBJECT(applet), "change-background", G_CALLBACK(gpm_applet_change_background_cb), NULL); g_signal_connect (G_OBJECT(applet), "change-orient", G_CALLBACK(gpm_applet_draw_cb), NULL); g_signal_connect (G_OBJECT(applet), "destroy", G_CALLBACK(gpm_applet_destroy_cb), NULL); }
/** * monitor_connection_cb: * @proxy: The dbus raw proxy * @status: The status of the service, where TRUE is connected * @screensaver: This class instance **/ static void monitor_connection_cb (EggDbusMonitor *monitor, gboolean status, GpmInhibitApplet *applet) { if (status) { gpm_inhibit_applet_dbus_connect (applet); gpm_applet_update_tooltip (applet); gpm_applet_get_icon (applet); gpm_applet_draw_cb (applet); } else { gpm_inhibit_applet_dbus_disconnect (applet); gpm_applet_update_tooltip (applet); gpm_applet_get_icon (applet); gpm_applet_draw_cb (applet); } }