dont build the old action stuff.
authorDana Jansens <danakj@orodu.net>
Thu, 21 Jun 2007 23:28:14 +0000 (23:28 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 21 Jun 2007 23:28:14 +0000 (23:28 +0000)
config uses the new action stuff.
add actions_parse_string

Makefile.am
openbox/actions.c
openbox/actions.h
openbox/config.c
openbox/keyboard.h
openbox/keytree.h

index 230862a..0ebc9aa 100644 (file)
@@ -154,8 +154,6 @@ openbox_openbox_LDADD = \
 openbox_openbox_LDFLAGS = -export-dynamic
 openbox_openbox_SOURCES = \
        gettext.h \
-       openbox/action.c \
-       openbox/action.h \
        openbox/actions.c \
        openbox/actions.h \
        openbox/client.c \
index 6cd1d1c..8d523dc 100644 (file)
@@ -100,36 +100,48 @@ static void actions_definition_unref(ObActionsDefinition *def)
     }
 }
 
-ObActionsAct* actions_parse(ObParseInst *i,
-                            xmlDocPtr doc,
-                            xmlNodePtr node)
+ObActionsAct* actions_parse_string(const gchar *name)
 {
     GSList *it;
-    gchar *name;
     ObActionsDefinition *def;
     ObActionsAct *act = NULL;
 
-    if (!parse_attr_string("name", node, &name)) return NULL;
-
     /* find the requested action */
     for (it = registered; it; it = g_slist_next(it)) {
         def = it->data;
         if (!g_ascii_strcasecmp(name, def->name))
             break;
+        def = NULL;
     }
 
     /* if we found the action */
-    if (it != NULL) {
+    if (def) {
         act = g_new(ObActionsAct, 1);
         act->ref = 1;
         act->def = def;
         actions_definition_ref(act->def);
-        act->options = def->setup(i, doc, node->children);
+        act->options = NULL;
     } else
         g_message(_("Invalid action '%s' requested. No such action exists."),
                   name);
 
-    g_free(name);
+    return act;
+}
+
+ObActionsAct* actions_parse(ObParseInst *i,
+                            xmlDocPtr doc,
+                            xmlNodePtr node)
+{
+    gchar *name;
+    ObActionsAct *act = NULL;
+
+    if (parse_attr_string("name", node, &name)) {
+        if ((act = actions_parse_string(name)))
+            /* there is more stuff to parse here */
+            act->options = act->def->setup(i, doc, node->children);
+
+        g_free(name);
+    }
 
     return act;
 }
index ca152e2..548b40b 100644 (file)
@@ -106,6 +106,7 @@ gboolean actions_register(const gchar *name,
 ObActionsAct* actions_parse(ObParseInst *i,
                             xmlDocPtr doc,
                             xmlNodePtr node);
+ObActionsAct* actions_parse_string(const gchar *name);
 
 void actions_act_ref(ObActionsAct *act);
 void actions_act_unref(ObActionsAct *act);
index 1f651ce..48df2e7 100644 (file)
 #include "config.h"
 #include "keyboard.h"
 #include "mouse.h"
+#include "actions.h"
 #include "prop.h"
 #include "translate.h"
 #include "client.h"
-#include "actions.h"
 #include "screen.h"
 #include "parser/parse.h"
 #include "openbox.h"
@@ -358,7 +358,7 @@ static void parse_key(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     }
     else if ((n = parse_find_node("action", node->children))) {
         while (n) {
-            ObActionsDefinition *action;
+            ObActionsAct *action;
             
             action = actions_parse(i, doc, n);
             if (action)
@@ -412,9 +412,7 @@ static void parse_mouse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     xmlNodePtr n, nbut, nact;
     gchar *buttonstr;
     gchar *contextstr;
-    ObUserAction uact;
     ObMouseAction mact;
-    ObAction *action;
 
     mouse_unbind_all();
 
@@ -434,25 +432,22 @@ static void parse_mouse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
             if (!parse_attr_string("button", nbut, &buttonstr))
                 goto next_nbut;
             if (parse_attr_contains("press", nbut, "action")) {
-                uact = OB_USER_ACTION_MOUSE_PRESS;
                 mact = OB_MOUSE_ACTION_PRESS;
             } else if (parse_attr_contains("release", nbut, "action")) {
-                uact = OB_USER_ACTION_MOUSE_RELEASE;
                 mact = OB_MOUSE_ACTION_RELEASE;
             } else if (parse_attr_contains("click", nbut, "action")) {
-                uact = OB_USER_ACTION_MOUSE_CLICK;
                 mact = OB_MOUSE_ACTION_CLICK;
             } else if (parse_attr_contains("doubleclick", nbut,"action")) {
-                uact = OB_USER_ACTION_MOUSE_DOUBLE_CLICK;
                 mact = OB_MOUSE_ACTION_DOUBLE_CLICK;
             } else if (parse_attr_contains("drag", nbut, "action")) {
-                uact = OB_USER_ACTION_MOUSE_MOTION;
                 mact = OB_MOUSE_ACTION_MOTION;
             } else
                 goto next_nbut;
             nact = parse_find_node("action", nbut->children);
             while (nact) {
-                if ((action = action_parse(i, doc, nact, uact)))
+                ObActionsAct *action;
+
+                if ((action = actions_parse(i, doc, nact)))
                     mouse_bind(buttonstr, contextstr, mact, action);
                 nact = parse_find_node("action", nact->next);
             }
@@ -777,8 +772,8 @@ static void bind_default_keyboard()
 
     for (it = binds; it->key; ++it) {
         GList *l = g_list_append(NULL, g_strdup(it->key));
-        keyboard_bind(l, action_from_string(it->actname,
-                                            OB_USER_ACTION_KEYBOARD_KEY));
+        keyboard_bind(l, actions_parse_string(it->actname));
+        g_list_free(l);
     }
 }
 
@@ -840,25 +835,9 @@ static void bind_default_mouse()
         { NULL, NULL, 0, NULL }
     };
 
-    for (it = binds; it->button; ++it) {
-        ObUserAction uact;
-        switch (it->mact) {
-        case OB_MOUSE_ACTION_PRESS:
-            uact = OB_USER_ACTION_MOUSE_PRESS; break;
-        case OB_MOUSE_ACTION_RELEASE:
-            uact = OB_USER_ACTION_MOUSE_RELEASE; break;
-        case OB_MOUSE_ACTION_CLICK:
-            uact = OB_USER_ACTION_MOUSE_CLICK; break;
-        case OB_MOUSE_ACTION_DOUBLE_CLICK:
-            uact = OB_USER_ACTION_MOUSE_DOUBLE_CLICK; break;
-        case OB_MOUSE_ACTION_MOTION:
-            uact = OB_USER_ACTION_MOUSE_MOTION; break;
-        default:
-            g_assert_not_reached();
-        }
+    for (it = binds; it->button; ++it)
         mouse_bind(it->button, it->context, it->mact,
-                   action_from_string(it->actname, uact));
-    }
+                   actions_parse_string(it->actname));
 }
 
 void config_startup(ObParseInst *i)
index 3d70448..95d8be3 100644 (file)
@@ -27,7 +27,7 @@
 #include <X11/Xlib.h>
 
 struct _ObClient;
-struct _ObAction;
+struct _ObActionAct;
 
 extern KeyBindingTree *keyboard_firstnode;
 
@@ -35,7 +35,7 @@ void keyboard_startup(gboolean reconfig);
 void keyboard_shutdown(gboolean reconfig);
 
 void keyboard_chroot(GList *keylist);
-gboolean keyboard_bind(GList *keylist, ObAction *action);
+gboolean keyboard_bind(GList *keylist, struct _ObActionAct *action);
 void keyboard_unbind_all();
 
 void keyboard_event(struct _ObClient *client, const XEvent *e);
@@ -44,7 +44,7 @@ void keyboard_event(struct _ObClient *client, const XEvent *e);
 void keyboard_reset_chains(gint break_chroots);
 
 gboolean keyboard_interactive_grab(guint state, struct _ObClient *client,
-                                   struct _ObAction *action);
+                                   struct _ObActionAct *action);
 gboolean keyboard_process_interactive_grab(const XEvent *e,
                                            struct _ObClient **client);
 gboolean keyboard_interactively_grabbed();
index d3544f8..59a515c 100644 (file)
@@ -19,8 +19,6 @@
 #ifndef __plugin_keyboard_tree_h
 #define __plugin_keyboard_tree_h
 
-#include "action.h"
-
 #include <glib.h>
 
 typedef struct KeyBindingTree {