From 95c687c6de9906c99e50b458b8f8b33440099173 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 8 Sep 2007 02:26:23 +0200 Subject: add preferences dialog (not wired up yet) --- Makefile | 6 +- gnome-input-share.glade | 370 ------------------------------------------------ lassi-avahi.c | 7 + lassi-prefs.c | 66 +++++++++ lassi-prefs.h | 28 ++++ lassi-server.c | 4 + lassi-server.h | 2 + lassi-tray.c | 27 ++++ lassi-tray.h | 1 + mango-lassi.glade | 302 +++++++++++++++++++++++++++++++++++++++ 10 files changed, 440 insertions(+), 373 deletions(-) delete mode 100644 gnome-input-share.glade create mode 100644 lassi-prefs.c create mode 100644 lassi-prefs.h create mode 100644 mango-lassi.glade diff --git a/Makefile b/Makefile index fba1929..1d6b56c 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ -CFLAGS=-Wall -Wextra -W -O0 -g -pipe -Wno-unused-parameter `pkg-config --cflags dbus-glib-1 glib-2.0 gtk+-2.0 xtst avahi-glib avahi-client avahi-ui libnotify` -LIBS=`pkg-config --libs dbus-glib-1 glib-2.0 gtk+-2.0 xtst avahi-glib avahi-client avahi-ui libnotify` +CFLAGS=-Wall -Wextra -W -O0 -g -pipe -Wno-unused-parameter `pkg-config --cflags dbus-glib-1 glib-2.0 gtk+-2.0 xtst avahi-glib avahi-client avahi-ui libnotify libglade-2.0` +LIBS=`pkg-config --libs dbus-glib-1 glib-2.0 gtk+-2.0 xtst avahi-glib avahi-client avahi-ui libnotify libglade-2.0` -mango-lassi: lassi-server.o lassi-grab.o lassi-osd.o lassi-order.o lassi-clipboard.o lassi-avahi.o lassi-tray.o *.h +mango-lassi: lassi-server.o lassi-grab.o lassi-osd.o lassi-order.o lassi-clipboard.o lassi-avahi.o lassi-tray.o lassi-prefs.o *.h $(CC) $^ -o $@ $(LIBS) $(CFLAGS) clean: diff --git a/gnome-input-share.glade b/gnome-input-share.glade deleted file mode 100644 index b696493..0000000 --- a/gnome-input-share.glade +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 5 - Gnome Input Share - GTK_WIN_POS_CENTER_ON_PARENT - GDK_WINDOW_TYPE_HINT_DIALOG - False - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 3 - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 5 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 4 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 8 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - _Selected desktops: - True - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 8 - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - - - 150 - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False - True - True - True - - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 8 - - - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-go-back - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - _Add - True - - - GTK_PACK_END - 1 - - - - - - - False - False - - - - - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-go-forward - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - _Remove - True - - - GTK_PACK_END - 1 - - - - - - - False - False - 1 - - - - - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-go-up - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Move _up - True - - - GTK_PACK_END - 1 - - - - - - - False - False - 2 - - - - - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-go-down - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Move _down - True - - - GTK_PACK_END - 1 - - - - - - - False - 3 - - - - - False - False - GTK_PACK_END - 1 - - - - - 1 - - - - - - - True - True - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 4 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 8 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - _Available desktops: - True - - - False - False - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - - - 150 - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False - True - True - - - - - 1 - - - - - - - True - True - - - - - 1 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - <i>Please start Gnome Input Share on all desktops you want to share your mouse and keyboard with and then add them to the list of desktops on the left. Order them according their physical layout, from left to right.</i> - True - GTK_JUSTIFY_CENTER - True - True - 0 - - - 8 - 2 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_BUTTONBOX_END - - - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-close - True - 0 - - - - - False - GTK_PACK_END - - - - - - diff --git a/lassi-avahi.c b/lassi-avahi.c index 9fb81c9..79fec53 100644 --- a/lassi-avahi.c +++ b/lassi-avahi.c @@ -1,5 +1,6 @@ #include +#include #include #include #include @@ -83,6 +84,7 @@ static void browse_cb( case AVAHI_BROWSER_FAILURE: g_message("Browsing failed: %s", avahi_strerror(avahi_client_errno(i->client))); + gtk_main_quit(); break; } } @@ -119,6 +121,7 @@ static void entry_group_callback(AvahiEntryGroup *g, AvahiEntryGroupState state, case AVAHI_ENTRY_GROUP_FAILURE : g_message("Entry group failure: %s", avahi_strerror(avahi_client_errno(i->client))); + gtk_main_quit(); break; case AVAHI_ENTRY_GROUP_UNCOMMITED: @@ -133,6 +136,7 @@ static void create_service(LassiAvahiInfo *i) { if (!i->group) if (!(i->group = avahi_entry_group_new(i->client, entry_group_callback, i))) { g_message("avahi_entry_group_new() failed: %s", avahi_strerror(avahi_client_errno(i->client))); + gtk_main_quit(); return; } @@ -144,11 +148,13 @@ static void create_service(LassiAvahiInfo *i) { if ((ret = avahi_entry_group_add_service(i->group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, i->service_name, SERVICE_TYPE, NULL, NULL, i->server->port, NULL)) < 0) { g_message("Failed to add service: %s", avahi_strerror(ret)); + gtk_main_quit(); return; } if ((ret = avahi_entry_group_commit(i->group)) < 0) { g_message("Failed to commit entry group: %s", avahi_strerror(ret)); + gtk_main_quit(); return; } } @@ -167,6 +173,7 @@ static void client_cb(AvahiClient *client, AvahiClientState state, void *userdat case AVAHI_CLIENT_FAILURE: g_message("Client failure: %s", avahi_strerror(avahi_client_errno(client))); + gtk_main_quit(); break; case AVAHI_CLIENT_S_COLLISION: diff --git a/lassi-prefs.c b/lassi-prefs.c new file mode 100644 index 0000000..50d1c13 --- /dev/null +++ b/lassi-prefs.c @@ -0,0 +1,66 @@ +#include + +#include "lassi-prefs.h" +#include "lassi-server.h" + +static void on_add_button_clicked(GtkButton *widget, LassiPrefsInfo *i) { +} + +static void on_remove_button_clicked(GtkButton *widget, LassiPrefsInfo *i) { +} + +static void on_up_button_clicked(GtkButton *widget, LassiPrefsInfo *i) { +} + +static void on_down_button_clicked(GtkButton *widget, LassiPrefsInfo *i) { +} + +static void on_close_button_clicked(GtkButton *widget, LassiPrefsInfo *i) { + gtk_widget_hide(GTK_WIDGET(i->dialog)); +} + + +int lassi_prefs_init(LassiPrefsInfo *i, LassiServer *server) { + g_assert(i); + g_assert(server); + + memset(i, 0, sizeof(*i)); + i->server = server; + + i->xml = glade_xml_new("mango-lassi.glade", NULL, NULL); + + i->dialog = glade_xml_get_widget(i->xml, "preferences_dialog"); + i->up_button = glade_xml_get_widget(i->xml, "up_button"); + i->down_button = glade_xml_get_widget(i->xml, "down_button"); + i->add_button = glade_xml_get_widget(i->xml, "add_button"); + i->remove_button = glade_xml_get_widget(i->xml, "remove_button"); + i->tree_view = glade_xml_get_widget(i->xml, "tree_view"); + + glade_xml_signal_connect_data(i->xml, "on_add_button_clicked", (GCallback) on_add_button_clicked, i); + glade_xml_signal_connect_data(i->xml, "on_remove_button_clicked", (GCallback) on_remove_button_clicked, i); + glade_xml_signal_connect_data(i->xml, "on_up_button_clicked", (GCallback) on_up_button_clicked, i); + glade_xml_signal_connect_data(i->xml, "on_down_button_clicked", (GCallback) on_down_button_clicked, i); + + glade_xml_signal_connect_data(i->xml, "on_close_button_clicked", (GCallback) on_close_button_clicked, i); + + g_signal_connect(G_OBJECT(i->dialog), "delete_event", G_CALLBACK(gtk_widget_hide_on_delete), NULL); + + i->list_store = gtk_list_store_new(1, G_TYPE_STRING); + + return 0; +} + +void lassi_prefs_show(LassiPrefsInfo *i) { + g_assert(i); + + gtk_window_present(GTK_WINDOW(i->dialog)); +} + +void lassi_prefs_done(LassiPrefsInfo *i) { + g_assert(i); + + g_object_unref(G_OBJECT(i->xml)); + g_object_unref(G_OBJECT(i->list_store)); + + memset(i, 0, sizeof(*i)); +} diff --git a/lassi-prefs.h b/lassi-prefs.h new file mode 100644 index 0000000..2755351 --- /dev/null +++ b/lassi-prefs.h @@ -0,0 +1,28 @@ +#ifndef foolassiprefshfoo +#define foolassiprefshfoo + +#include +#include + +typedef struct LassiPrefsInfo LassiPrefsInfo; +struct LassiServer; + +struct LassiPrefsInfo { + struct LassiServer *server; + + GtkWidget *dialog; + GtkWidget *up_button, *down_button, *add_button, *remove_button; + GtkWidget *tree_view; + + GtkListStore *list_store; + + GladeXML *xml; +}; + +#include "lassi-server.h" + +int lassi_prefs_init(LassiPrefsInfo *i, LassiServer *server); +void lassi_prefs_show(LassiPrefsInfo *i); +void lassi_prefs_done(LassiPrefsInfo *i); + +#endif diff --git a/lassi-server.c b/lassi-server.c index 77a76da..9d43eda 100644 --- a/lassi-server.c +++ b/lassi-server.c @@ -1391,6 +1391,9 @@ static int server_init(LassiServer *ls) { if (lassi_tray_init(&ls->tray_info, ls) < 0) goto finish; + + if (lassi_prefs_init(&ls->prefs_info, ls) < 0) + goto finish; r = 0; @@ -1429,6 +1432,7 @@ static void server_done(LassiServer *ls) { lassi_clipboard_done(&ls->clipboard_info); lassi_avahi_done(&ls->avahi_info); lassi_tray_done(&ls->tray_info); + lassi_prefs_done(&ls->prefs_info); memset(ls, 0, sizeof(*ls)); } diff --git a/lassi-server.h b/lassi-server.h index 411c06f..fb1d7bf 100644 --- a/lassi-server.h +++ b/lassi-server.h @@ -12,6 +12,7 @@ typedef struct LassiConnection LassiConnection; #include "lassi-clipboard.h" #include "lassi-avahi.h" #include "lassi-tray.h" +#include "lassi-prefs.h" struct LassiServer { DBusServer *dbus_server; @@ -50,6 +51,7 @@ struct LassiServer { LassiClipboardInfo clipboard_info; LassiAvahiInfo avahi_info; LassiTrayInfo tray_info; + LassiPrefsInfo prefs_info; }; struct LassiConnection { diff --git a/lassi-tray.c b/lassi-tray.c index 8ab8afb..72fc310 100644 --- a/lassi-tray.c +++ b/lassi-tray.c @@ -10,7 +10,20 @@ #define ICON_IDLE "network-wired" #define ICON_BUSY "network-workgroup" +static void on_prefs_activate(GtkMenuItem *menuitem, LassiTrayInfo *i) { + lassi_prefs_show(&i->server->prefs_info); +} + +static void on_tray_activate(GtkStatusIcon *status_icon, LassiTrayInfo *i) { + gtk_menu_popup(GTK_MENU(i->menu), NULL, NULL, gtk_status_icon_position_menu, i->status_icon, 0, gtk_get_current_event_time()); +} + +static void on_tray_popup_menu(GtkStatusIcon *status_icon, guint button, guint activate_time, LassiTrayInfo *i) { + on_tray_activate(status_icon, i); +} + int lassi_tray_init(LassiTrayInfo *i, LassiServer *server) { + GtkWidget *item; g_assert(i); g_assert(server); @@ -21,6 +34,20 @@ int lassi_tray_init(LassiTrayInfo *i, LassiServer *server) { i->status_icon = gtk_status_icon_new_from_icon_name(ICON_IDLE); + i->menu = gtk_menu_new(); + item = gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES, NULL); + g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(on_prefs_activate), i); + gtk_menu_shell_append(GTK_MENU_SHELL(i->menu), item); + item = gtk_separator_menu_item_new(); + gtk_menu_shell_append(GTK_MENU_SHELL(i->menu), item); + item = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL); + g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(gtk_main_quit), NULL); + gtk_menu_shell_append(GTK_MENU_SHELL(i->menu), item); + gtk_widget_show_all(i->menu); + + g_signal_connect(G_OBJECT(i->status_icon), "popup_menu", G_CALLBACK(on_tray_popup_menu), i); + g_signal_connect(G_OBJECT(i->status_icon), "activate", G_CALLBACK(on_tray_activate), i); + lassi_tray_update(i, 0); return 0; diff --git a/lassi-tray.h b/lassi-tray.h index 9d056bc..d316092 100644 --- a/lassi-tray.h +++ b/lassi-tray.h @@ -17,6 +17,7 @@ struct LassiTrayInfo { struct LassiServer *server; GtkStatusIcon *status_icon; + GtkWidget *menu; }; #include "lassi-server.h" diff --git a/mango-lassi.glade b/mango-lassi.glade new file mode 100644 index 0000000..54ba598 --- /dev/null +++ b/mango-lassi.glade @@ -0,0 +1,302 @@ + + + + + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 8 + Input Sharing + GTK_WIN_POS_CENTER_ON_PARENT + user-desktop + GDK_WINDOW_TYPE_HINT_DIALOG + False + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 12 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 4 + 12 + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 6 + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 3 + 6 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-add + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Add + True + + + GTK_PACK_END + 1 + + + + + + + False + + + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 3 + 6 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-go-up + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Up + True + + + GTK_PACK_END + 1 + + + + + + + False + 1 + + + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 3 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-go-down + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Down + True + + + GTK_PACK_END + 1 + + + + + + + False + 2 + + + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 3 + 6 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-remove + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Remove + True + + + False + GTK_PACK_END + 1 + + + + + + + False + 3 + + + + + False + 1 + + + + + 2 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 12 + 12 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 12 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 1 + gtk-dialog-info + 5 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Reorder the desktops you're already sharing mouse and keyboard with, or add new desktops to your session. + GTK_JUSTIFY_CENTER + True + True + + + 1 + + + + + + + False + GTK_PACK_END + 1 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GTK_BUTTONBOX_END + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-close + True + 0 + + + + + + False + GTK_PACK_END + + + + + + -- cgit