4
* (C) 2001 Rafael V. Aroca <rafael@linuxqos.cjb.net>
6
* This software is under GPL
8
* Based on foodock lib by Alexey Vyskubov <alexey@pepper.spb.ru>
12
#include "wmShutdown.h"
14
GtkWidget *dialog = NULL;
16
GtkWidget *cria_dock(GtkWidget *mw, unsigned int s, int margc, char *margv[]) {
22
xmw = GDK_WINDOW_XWINDOW(mw->window);
24
foobox = gtk_event_box_new();
25
gtk_widget_set_usize(foobox, s, s);
26
gtk_container_add (GTK_CONTAINER (mw), foobox);
27
gtk_widget_realize(foobox);
29
wm_hints = XAllocWMHints();
30
wm_hints->window_group = xmw;
31
wm_hints->icon_window = GDK_WINDOW_XWINDOW(foobox->window);
34
wm_hints->initial_state = WithdrawnState;
35
wm_hints->flags = StateHint |
40
XSetWMHints(GDK_DISPLAY(), xmw, wm_hints);
41
XSetCommand(GDK_DISPLAY(), xmw, margv, margc);
51
gtk_widget_destroy(dialog);
60
output = popen("/usr/local/bin/Shutdown -h", "r");
61
teste = (char*) fgetc(output);
62
while ((int)teste != EOF) {
64
teste = (char*) fgetc(output);
73
output = popen("/usr/local/bin/Shutdown -r", "r");
74
teste = (char*) fgetc(output);
75
while ((int)teste != EOF) {
77
teste = (char*) fgetc(output);
83
int button_press(GtkWidget *widget, GdkEvent *event) {
87
GtkWidget *halt_button;
88
GtkWidget *reboot_button;
89
GtkWidget *cancel_button;
91
//Descomentar para debug
92
//g_print("Evento ocorreu");
94
if (event->type == GDK_BUTTON_PRESS) {
95
GdkEventButton *bevent = (GdkEventButton *)event;
97
switch (bevent->button) {
102
message = "Shutdown confirmation";
103
dialog = gtk_dialog_new();
104
label = gtk_label_new (message);
106
halt_button = gtk_button_new_with_label("Halt");
107
reboot_button = gtk_button_new_with_label("Reboot");
108
cancel_button = gtk_button_new_with_label("Cancel");
110
gtk_signal_connect(GTK_OBJECT(dialog), "destroy", GTK_SIGNAL_FUNC(fecha), NULL);
112
gtk_signal_connect_object (GTK_OBJECT (cancel_button), "clicked", GTK_SIGNAL_FUNC (fecha), (gpointer) dialog);
114
gtk_signal_connect_object (GTK_OBJECT (halt_button), "clicked", GTK_SIGNAL_FUNC (desliga), (gpointer) dialog);
116
gtk_signal_connect_object (GTK_OBJECT (reboot_button), "clicked", GTK_SIGNAL_FUNC (reinicia), (gpointer) dialog);
118
gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->action_area), halt_button);
119
gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->action_area), reboot_button);
120
gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->action_area), cancel_button);
122
gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), label);
124
gtk_widget_show_all (dialog);
130
int main(int argc, char *argv[]) {
140
gtk_init(&argc, &argv);
143
gtkiw = gtk_window_new(GTK_WINDOW_TOPLEVEL);
144
gtk_window_set_title (GTK_WINDOW (gtkiw), "ShutDockApp");
145
gtk_widget_realize(gtkiw);
147
dockArea = cria_dock(gtkiw, 47, argc, argv);
148
gtk_widget_realize(dockArea);
150
icon = (gpointer) gdk_pixmap_create_from_xpm (gtkiw->window, &mask,
151
NULL, "/usr/share/pixmaps/wmShutdown.xpm");
153
pixmap = gtk_pixmap_new((gpointer) icon, mask);
154
gtk_widget_show(pixmap);
155
gtk_container_add(GTK_CONTAINER(dockArea), pixmap);
157
gtk_signal_connect(GTK_OBJECT(gtkiw),
159
GTK_SIGNAL_FUNC(button_press),
162
gtk_widget_show(dockArea);
163
gtk_widget_show(gtkiw);