/* logout.c - Panel applet to end current session. */ /* Original author unknown. CORBAized by Elliot Lee */ /* uncorbized by George Lebl */ #include #include #include "panel-include.h" extern GtkTooltips *panel_tooltips; extern GlobalConfig global_config; static void logout(GtkWidget *widget) { if(global_config.drawer_auto_close) { GtkWidget *parent = gtk_object_get_data(GTK_OBJECT(widget->parent),PANEL_PARENT); g_return_if_fail(parent!=NULL); if(IS_DRAWER_WIDGET(parent)) { BasePWidget *basep = BASEP_WIDGET(parent); GtkWidget *grandparent = PANEL_WIDGET(basep->panel)->master_widget->parent; GtkWidget *grandparentw = gtk_object_get_data(GTK_OBJECT(grandparent), PANEL_PARENT); drawer_widget_close_drawer(DRAWER_WIDGET(parent)); if(IS_SNAPPED_WIDGET(grandparentw)) SNAPPED_WIDGET(grandparentw)->drawers_open--; } } panel_quit(); } static GtkWidget * create_logout_widget(void) { GtkWidget *button; GtkWidget *pixmap; char *pixmap_name; pixmap_name = gnome_pixmap_file("gnome-term-night.png"); button = button_widget_new_from_file(pixmap_name, LOGOUT_TILE, FALSE, ORIENT_UP, _("Log out")); g_free(pixmap_name); gtk_tooltips_set_tip (panel_tooltips,button,_("Log out of GNOME"),NULL); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(logout), NULL); return button; } void load_logout_applet(PanelWidget *panel, int pos) { GtkWidget *logout; logout = create_logout_widget(); if(logout) register_toy(logout, NULL, panel, pos, APPLET_LOGOUT); }