]> Dogcows Code - chaz/openbox/commitdiff
move the client and client-list menus into the 'kernel'
authorDana Jansens <danakj@orodu.net>
Fri, 29 Aug 2003 07:56:49 +0000 (07:56 +0000)
committerDana Jansens <danakj@orodu.net>
Fri, 29 Aug 2003 07:56:49 +0000 (07:56 +0000)
Makefile.am
data/menu
data/rc3
openbox/client_list_menu.c [moved from plugins/menu/client_list_menu.c with 58% similarity]
openbox/client_list_menu.h [new file with mode: 0644]
openbox/client_menu.c [moved from plugins/menu/client_menu.c with 69% similarity]
openbox/client_menu.h [new file with mode: 0644]

index 49d94bf504529379ad3a1c23046b12608dfea59d..d8594793daa9f0b6afb228f2e836bfb9ddfbd3f1 100644 (file)
@@ -3,7 +3,6 @@ SUBDIRS = m4 po
 themedir        = $(datadir)/openbox/themes
 localedir       = $(datadir)/locale
 rcdir           = $(datadir)/openbox
-plugindir       = $(libdir)/openbox/plugins
 desktopfilesdir = $(datadir)/gnome/wm-properties
 pixmapdir       = $(datadir)/pixmaps
 
@@ -25,13 +24,6 @@ bin_PROGRAMS = \
        kernel/openbox \
        tools/kdetrayproxy/kdetrayproxy
 
-plugin_LTLIBRARIES = \
-       plugins/menu/client_menu.la \
-       plugins/menu/client_list_menu.la
-#      plugins/menu/timed_menu.la \
-#      plugins/menu/fifo_menu.la \
-#      plugins/menu/include_menu.la \
-
 if OBCONF
 bin_PROGRAMS += \
        tools/obconf/obconf
@@ -103,7 +95,6 @@ kernel_openbox_CPPFLAGS = \
        $(LIBSN_CFLAGS) \
        $(XML_CFLAGS) \
        -DLOCALEDIR=\"$(localedir)\" \
-       -DPLUGINDIR=\"$(plugindir)\" \
        -DRCDIR=\"$(rcdir)\" \
        -DG_LOG_DOMAIN=\"Openbox\"
 kernel_openbox_LDADD = \
@@ -128,6 +119,10 @@ kernel_openbox_SOURCES = \
        kernel/action.h \
        kernel/client.c \
        kernel/client.h \
+       kernel/client_list_menu.c \
+       kernel/client_list_menu.h \
+       kernel/client_menu.c \
+       kernel/client_menu.h \
        kernel/config.c \
        kernel/config.h \
        kernel/debug.c \
@@ -167,8 +162,6 @@ kernel_openbox_SOURCES = \
        kernel/openbox.h \
        kernel/place.c \
        kernel/place.h \
-       kernel/plugin.c \
-       kernel/plugin.h \
        kernel/popup.c \
        kernel/popup.h \
        kernel/prop.c \
@@ -190,78 +183,7 @@ kernel_openbox_SOURCES = \
        kernel/window.c \
        kernel/window.h \
        kernel/xerror.c \
-       kernel/xerror.h \
-       plugins/interface.h
-
-## plugins/menu ##
-
-plugins_menu_timed_menu_la_CPPFLAGS = \
-       $(XFT_CFLAGS) \
-       $(GLIB_CFLAGS) \
-       $(LIBSN_CFLAGS) \
-       $(XML_CFLAGS) \
-       -DPLUGINDIR=\"$(plugindir)\" \
-       -DG_LOG_DOMAIN=\"Plugin-Timed-Menu\"
-plugins_menu_timed_menu_la_LDFLAGS = \
-       -module \
-       -avoid-version
-plugins_menu_timed_menu_la_SOURCES = \
-       plugins/menu/timed_menu.c \
-       plugins/menu/timed_menu.h
-
-plugins_menu_fifo_menu_la_CPPFLAGS = \
-       $(XFT_CFLAGS) \
-       $(GLIB_CFLAGS) \
-       $(LIBSN_CFLAGS) \
-       $(XML_CFLAGS) \
-       -DPLUGINDIR=\"$(plugindir)\" \
-       -DG_LOG_DOMAIN=\"Plugin-Fifo-Menu\"
-plugins_menu_fifo_menu_la_LDFLAGS = \
-       -module \
-       -avoid-version
-plugins_menu_fifo_menu_la_SOURCES = \
-       plugins/menu/fifo_menu.c \
-       plugins/menu/fifo_menu.h
-
-plugins_menu_client_menu_la_CPPFLAGS = \
-       $(XFT_CFLAGS) \
-       $(GLIB_CFLAGS) \
-       $(LIBSN_CFLAGS) \
-       $(XML_CFLAGS) \
-       -DPLUGINDIR=\"$(plugindir)\" \
-       -DG_LOG_DOMAIN=\"Plugin-Client-Menu\"
-plugins_menu_client_menu_la_LDFLAGS = \
-       -module \
-       -avoid-version
-plugins_menu_client_menu_la_SOURCES = \
-       plugins/menu/client_menu.c
-
-plugins_menu_include_menu_la_CPPFLAGS = \
-       $(XFT_CFLAGS) \
-       $(GLIB_CFLAGS) \
-       $(LIBSN_CFLAGS) \
-       $(XML_CFLAGS) \
-       -DPLUGINDIR=\"$(plugindir)\" \
-       -DG_LOG_DOMAIN=\"Plugin-Include-Menu\"
-plugins_menu_include_menu_la_LDFLAGS = \
-       -module \
-       -avoid-version
-plugins_menu_include_menu_la_SOURCES = \
-       plugins/menu/include_menu.c
-
-plugins_menu_client_list_menu_la_CPPFLAGS = \
-       $(XFT_CFLAGS) \
-       $(GLIB_CFLAGS) \
-       $(LIBSN_CFLAGS) \
-       $(XML_CFLAGS) \
-       -DPLUGINDIR=\"$(plugindir)\" \
-       -DG_LOG_DOMAIN=\"Plugin-Client-List-Menu\"
-plugins_menu_client_list_menu_la_LDFLAGS = \
-       -module \
-       -avoid-version
-plugins_menu_client_list_menu_la_SOURCES = \
-o      plugins/menu/client_list_menu.c
-
+       kernel/xerror.h
 
 ## obconf ##
 
index 0677e73ac6664062c61b44e23f60b629e027b6bb..a3c973e8b09bb5ef84aaf08def41dff735e254e4 100644 (file)
--- a/data/menu
+++ b/data/menu
@@ -31,7 +31,7 @@
   <menu id="apps-menu" />
   <menu id="games-menu" />
   <separator />
-  <menu id="client-list-menu" plugin="client_list_menu" />
+  <menu id="client-list-menu" />
   <separator />
   <item label="Restart">
     <action name="restart" />
index 49f004a48041d657c5888a62bf924bcd0a95bff4..38ff0a80be393981a5f05577d3094edc5b107020 100644 (file)
--- a/data/rc3
+++ b/data/rc3
       <action name="lower"/>
     </mousebind>
     <mousebind button="A-Right" action="press">
-      <action name="showmenu">
-        <menu plugin="client_menu">client-menu</menu>
-      </action>
+      <action name="showmenu"><menu>client-menu</menu></action>
     </mousebind>
     <mousebind button="A-Up" action="click">
       <action name="desktopright"/>
       <action name="unshade"/>
     </mousebind>
     <mousebind button="Right" action="press">
-      <action name="showmenu">
-        <menu plugin="client_menu">client-menu</menu>
-      </action>
+      <action name="showmenu"><menu>client-menu</menu></action>
     </mousebind>
   </context>
   <context name="handle">
       <action name="focus"/>
     </mousebind>
     <mousebind button="Right" action="press">
-      <action name="showmenu">
-        <menu plugin="client_menu">client-menu</menu>
-      </action>
+      <action name="showmenu"><menu>client-menu</menu></action>
     </mousebind>
     <mousebind button="Left" action="click">
-      <action name="showmenu">
-        <menu plugin="client_menu">client-menu</menu>
-      </action>
+      <action name="showmenu"><menu>client-menu</menu></action>
     </mousebind>
     <mousebind button="Left" action="doubleclick">
       <action name="close"/>
       <action name="desktopleft"/>
     </mousebind>
     <mousebind button="Middle" action="press">
-      <action name="showmenu">
-        <menu plugin="client_list_menu">client-list-menu</menu>
-      </action>
+      <action name="showmenu"><menu>client-list-menu</menu></action>
     </mousebind> 
     <mousebind button="Right" action="press">
       <action name="showmenu">
similarity index 58%
rename from plugins/menu/client_list_menu.c
rename to openbox/client_list_menu.c
index 5b9637bf2c04e59510be7f27ad18f466c190e1fe..cf3b8d5de772111896f73f784c89fb4edb72a116 100644 (file)
@@ -7,16 +7,11 @@
 #include "kernel/focus.h"
 #include "gettext.h"
 
-#include "render/theme.h"
-
 #include <glib.h>
 
 #define MENU_NAME "client-list-menu"
 
-typedef struct {
-    /* how many desktop menus we've made */
-    guint desktops;
-} MenuData;
+static GSList *desktop_menus;
 
 typedef struct {
     guint desktop;
@@ -31,7 +26,7 @@ static void desk_menu_update(ObMenuFrame *frame, gpointer data)
     GList *it;
     gint i;
 
-    menu_clear_entries(menu->name);
+    menu_clear_entries(menu);
 
     for (it = focus_order[d->desktop], i = 0; it; it = g_list_next(it), ++i) {
         ObClient *c = it->data;
@@ -44,7 +39,7 @@ static void desk_menu_update(ObMenuFrame *frame, gpointer data)
             act = action_from_string("activate");
             act->data.activate.c = c;
             acts = g_slist_prepend(NULL, act);
-            e = menu_add_normal(menu->name, i,
+            e = menu_add_normal(menu, i,
                                 (c->iconic ? c->icon_title : c->title), acts);
 
             if ((icon = client_icon(c, 32, 32))) {
@@ -79,54 +74,43 @@ static void desk_menu_destroy(ObMenu *menu, gpointer data)
 
 static void self_update(ObMenuFrame *frame, gpointer data)
 {
+    ObMenu *menu = frame->menu;
     guint i;
-    MenuData *d = data;
+    GSList *it, *next;
     
-    menu_clear_entries(MENU_NAME);
-
+    it = desktop_menus;
     for (i = 0; i < screen_num_desktops; ++i) {
-        gchar *name = g_strdup_printf("%s-%u", MENU_NAME, i);
-        DesktopData *data = g_new(DesktopData, 1);
+        if (!it) {
+            ObMenu *submenu;
+            gchar *name = g_strdup_printf("%s-%u", MENU_NAME, i);
+            DesktopData *data = g_new(DesktopData, 1);
 
-        data->desktop = i;
-        menu_new(name, screen_desktop_names[i], data);
-        menu_set_update_func(name, desk_menu_update);
-        menu_set_execute_func(name, desk_menu_execute);
-        menu_set_destroy_func(name, desk_menu_destroy);
+            data->desktop = i;
+            submenu = menu_new(name, screen_desktop_names[i], data);
+            menu_set_update_func(submenu, desk_menu_update);
+            menu_set_execute_func(submenu, desk_menu_execute);
+            menu_set_destroy_func(submenu, desk_menu_destroy);
 
-        menu_add_submenu(MENU_NAME, 0, name);
+            menu_add_submenu(menu, i, name);
 
-        g_free(name);
-    }
-
-    d->desktops = MAX(d->desktops, screen_num_desktops);
-}
+            g_free(name);
 
-static void self_destroy(ObMenu *menu, gpointer data)
-{
-    MenuData *d = data;
-    guint i;
-
-    for (i = 0; i < d->desktops; ++i) {
-        gchar *name = g_strdup_printf("%s-%u", MENU_NAME, i);
-        menu_free(name);
-        g_free(name);
+            desktop_menus = g_slist_append(desktop_menus, submenu);
+        } else
+            it = g_slist_next(it);
+    }
+    for (; it; it = next, ++i) {
+        next = g_slist_next(it);
+        menu_free(it->data);
+        desktop_menus = g_slist_delete_link(desktop_menus, it);
+        menu_entry_remove(menu_find_entry_id(menu, i));
     }
-    g_free(d);
 }
 
-void plugin_startup()
+void client_list_menu_startup()
 {
-    MenuData *data;
+    ObMenu *menu;
 
-    data = g_new(MenuData, 1);
-    data->desktops = 0;
-    menu_new(MENU_NAME, _("Desktops"), data);
-    menu_set_update_func(MENU_NAME, self_update);
-    menu_set_destroy_func(MENU_NAME, self_destroy);
-}
-
-void plugin_shutdown()
-{
-    menu_free(MENU_NAME);
+    menu = menu_new(MENU_NAME, _("Desktops"), NULL);
+    menu_set_update_func(menu, self_update);
 }
diff --git a/openbox/client_list_menu.h b/openbox/client_list_menu.h
new file mode 100644 (file)
index 0000000..f8d4ce1
--- /dev/null
@@ -0,0 +1,6 @@
+#ifndef ob__client_list_menu_h
+#define ob__client_list_menu_h
+
+void client_list_menu_startup();
+
+#endif
similarity index 69%
rename from plugins/menu/client_menu.c
rename to openbox/client_menu.c
index 0c2167c374a8bfccc50f2afa58854361b6a07517..bd57f06d8d4667c680cbe52bf849d05a1962d847 100644 (file)
@@ -33,8 +33,6 @@ enum {
     CLIENT_CLOSE
 };
 
-void plugin_setup_config() { }
-
 static void client_update(ObMenuFrame *frame, gpointer data)
 {
     ObMenu *menu = frame->menu;
@@ -103,7 +101,7 @@ static void send_to_update(ObMenuFrame *frame, gpointer data)
     GSList *acts;
     ObAction *act;
 
-    menu_clear_entries(SEND_TO_MENU_NAME);
+    menu_clear_entries(menu);
 
     if (!frame->client)
         return;
@@ -113,7 +111,7 @@ static void send_to_update(ObMenuFrame *frame, gpointer data)
         guint desk;
 
         if (i >= screen_num_desktops) {
-            menu_add_separator(CLIENT_MENU_NAME, -1);
+            menu_add_separator(menu, -1);
 
             desk = DESKTOP_ALL;
             name = _("All desktops");
@@ -126,7 +124,7 @@ static void send_to_update(ObMenuFrame *frame, gpointer data)
         act->data.sendto.desk = desk;
         act->data.sendto.follow = FALSE;
         acts = g_slist_prepend(NULL, act);
-        menu_add_normal(SEND_TO_MENU_NAME, desk, name, acts);
+        menu_add_normal(menu, desk, name, acts);
 
         if (frame->client->desktop == desk) {
             ObMenuEntry *e = menu_find_entry_id(menu, desk);
@@ -136,69 +134,63 @@ static void send_to_update(ObMenuFrame *frame, gpointer data)
     }
 }
 
-void plugin_startup()
+void client_menu_startup()
 {
     GSList *acts;
+    ObMenu *menu;
 
-    menu_new(LAYER_MENU_NAME, _("Layer"), NULL);
-    menu_set_update_func(LAYER_MENU_NAME, layer_update);
+    menu = menu_new(LAYER_MENU_NAME, _("Layer"), NULL);
+    menu_set_update_func(menu, layer_update);
 
     acts = g_slist_prepend(NULL, action_from_string("SendToTopLayer"));
-    menu_add_normal(LAYER_MENU_NAME, LAYER_TOP, _("Always on top"), acts);
+    menu_add_normal(menu, LAYER_TOP, _("Always on top"), acts);
 
     acts = g_slist_prepend(NULL, action_from_string("SendToNormalLayer"));
-    menu_add_normal(LAYER_MENU_NAME, LAYER_NORMAL, _("Normal"), acts);
+    menu_add_normal(menu, LAYER_NORMAL, _("Normal"), acts);
 
     acts = g_slist_prepend(NULL, action_from_string("SendToBottomLayer"));
-    menu_add_normal(LAYER_MENU_NAME, LAYER_BOTTOM, _("Always on bottom"),acts);
+    menu_add_normal(menu, LAYER_BOTTOM, _("Always on bottom"),acts);
 
 
-    menu_new(SEND_TO_MENU_NAME, _("Send to desktop"), NULL);
-    menu_set_update_func(SEND_TO_MENU_NAME, send_to_update);
+    menu = menu_new(SEND_TO_MENU_NAME, _("Send to desktop"), NULL);
+    menu_set_update_func(menu, send_to_update);
 
 
-    menu_new(CLIENT_MENU_NAME, _("Client menu"), NULL);
-    menu_set_update_func(CLIENT_MENU_NAME, client_update);
+    menu = menu_new(CLIENT_MENU_NAME, _("Client menu"), NULL);
+    menu_set_update_func(menu, client_update);
 
-    menu_add_submenu(CLIENT_MENU_NAME, CLIENT_SEND_TO, SEND_TO_MENU_NAME);
+    menu_add_submenu(menu, CLIENT_SEND_TO, SEND_TO_MENU_NAME);
 
-    menu_add_submenu(CLIENT_MENU_NAME, CLIENT_LAYER, LAYER_MENU_NAME);
+    menu_add_submenu(menu, CLIENT_LAYER, LAYER_MENU_NAME);
 
     acts = g_slist_prepend(NULL, action_from_string("Iconify"));
-    menu_add_normal(CLIENT_MENU_NAME, CLIENT_ICONIFY, _("Iconify"), acts);
+    menu_add_normal(menu, CLIENT_ICONIFY, _("Iconify"), acts);
 
     acts = g_slist_prepend(NULL, action_from_string("ToggleMaximizeFull"));
-    menu_add_normal(CLIENT_MENU_NAME, CLIENT_MAXIMIZE, _("Maximize"), acts);
+    menu_add_normal(menu, CLIENT_MAXIMIZE, _("Maximize"), acts);
 
     acts = g_slist_prepend(NULL, action_from_string("Raise"));
-    menu_add_normal(CLIENT_MENU_NAME, CLIENT_RAISE, _("Raise to top"), acts);
+    menu_add_normal(menu, CLIENT_RAISE, _("Raise to top"), acts);
 
     acts = g_slist_prepend(NULL, action_from_string("Lower"));
-    menu_add_normal(CLIENT_MENU_NAME, CLIENT_LOWER, _("Lower to bottom"),acts);
+    menu_add_normal(menu, CLIENT_LOWER, _("Lower to bottom"),acts);
 
     acts = g_slist_prepend(NULL, action_from_string("ToggleShade"));
-    menu_add_normal(CLIENT_MENU_NAME, CLIENT_SHADE, _("Roll up/down"), acts);
+    menu_add_normal(menu, CLIENT_SHADE, _("Roll up/down"), acts);
 
     acts = g_slist_prepend(NULL, action_from_string("ToggleDecorations"));
-    menu_add_normal(CLIENT_MENU_NAME, CLIENT_DECORATE, _("Decorate"), acts);
+    menu_add_normal(menu, CLIENT_DECORATE, _("Decorate"), acts);
 
-    menu_add_separator(CLIENT_MENU_NAME, -1);
+    menu_add_separator(menu, -1);
 
     acts = g_slist_prepend(NULL, action_from_string("KeyboardMove"));
-    menu_add_normal(CLIENT_MENU_NAME, CLIENT_MOVE, _("Move"), acts);
+    menu_add_normal(menu, CLIENT_MOVE, _("Move"), acts);
 
     acts = g_slist_prepend(NULL, action_from_string("KeyboardResize"));
-    menu_add_normal(CLIENT_MENU_NAME, CLIENT_RESIZE, _("Resize"), acts);
+    menu_add_normal(menu, CLIENT_RESIZE, _("Resize"), acts);
 
-    menu_add_separator(CLIENT_MENU_NAME, -1);
+    menu_add_separator(menu, -1);
 
     acts = g_slist_prepend(NULL, action_from_string("Close"));
-    menu_add_normal(CLIENT_MENU_NAME, CLIENT_CLOSE, _("Close"), acts);
-}
-
-void plugin_shutdown()
-{
-    menu_free(LAYER_MENU_NAME);
-    menu_free(SEND_TO_MENU_NAME);
-    menu_free(CLIENT_MENU_NAME);
+    menu_add_normal(menu, CLIENT_CLOSE, _("Close"), acts);
 }
diff --git a/openbox/client_menu.h b/openbox/client_menu.h
new file mode 100644 (file)
index 0000000..42be139
--- /dev/null
@@ -0,0 +1,6 @@
+#ifndef ob__client_menu_h
+#define ob__client_menu_h
+
+void client_menu_startup();
+
+#endif
This page took 0.03978 seconds and 4 git commands to generate.