replace movetoedge with movetoedge* again for 3.4
authorDana Jansens <danakj@orodu.net>
Thu, 19 Jul 2007 19:13:06 +0000 (15:13 -0400)
committerDana Jansens <danakj@orodu.net>
Thu, 19 Jul 2007 19:13:06 +0000 (15:13 -0400)
openbox/actions/movetoedge.c

index 768783f2572ea6007706258edfc090635ab17645..f09bfd83bdff15aa0501973813075382f7117669 100644 (file)
@@ -9,52 +9,58 @@ typedef struct {
     ObDirection dir;
 } Options;
 
-static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node);
-static void     free_func(gpointer options);
+static gpointer setup_north_func(ObParseInst *i, xmlDocPtr doc,
+                                 xmlNodePtr node);
+static gpointer setup_south_func(ObParseInst *i, xmlDocPtr doc,
+                                 xmlNodePtr node);
+static gpointer setup_east_func(ObParseInst *i, xmlDocPtr doc,
+                                xmlNodePtr node);
+static gpointer setup_west_func(ObParseInst *i, xmlDocPtr doc,
+                                xmlNodePtr node);
 static gboolean run_func(ObActionsData *data, gpointer options);
 
 void action_movetoedge_startup()
 {
-    actions_register("MoveToEdge",
-                     setup_func,
-                     free_func,
-                     run_func,
+    actions_register("MoveToEdgeNorth", setup_north_func, g_free, run_func,
+                     NULL, NULL);
+    actions_register("MoveToEdgeSouth", setup_south_func, g_free, run_func,
+                     NULL, NULL);
+    actions_register("MoveToEdgeEast", setup_east_func, g_free, run_func,
+                     NULL, NULL);
+    actions_register("MoveToEdgeWest", setup_west_func, g_free, run_func,
                      NULL, NULL);
 }
 
-static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
+static gpointer setup_north_func(ObParseInst *i, xmlDocPtr doc,
+                                 xmlNodePtr node)
 {
-    xmlNodePtr n;
-    Options *o;
-
-    o = g_new0(Options, 1);
+    Options *o = g_new0(Options, 1);
     o->dir = OB_DIRECTION_NORTH;
+    return o;
+}
 
-    if ((n = parse_find_node("direction", node))) {
-        gchar *s = parse_string(doc, n);
-        if (!g_ascii_strcasecmp(s, "north") ||
-            !g_ascii_strcasecmp(s, "up"))
-            o->dir = OB_DIRECTION_NORTH;
-        else if (!g_ascii_strcasecmp(s, "south") ||
-                 !g_ascii_strcasecmp(s, "down"))
-            o->dir = OB_DIRECTION_SOUTH;
-        else if (!g_ascii_strcasecmp(s, "west") ||
-                 !g_ascii_strcasecmp(s, "left"))
-            o->dir = OB_DIRECTION_WEST;
-        else if (!g_ascii_strcasecmp(s, "east") ||
-                 !g_ascii_strcasecmp(s, "right"))
-            o->dir = OB_DIRECTION_EAST;
-        g_free(s);
-    }
-
+static gpointer setup_south_func(ObParseInst *i, xmlDocPtr doc,
+                                 xmlNodePtr node)
+{
+    Options *o = g_new0(Options, 1);
+    o->dir = OB_DIRECTION_SOUTH;
     return o;
 }
 
-static void free_func(gpointer options)
+static gpointer setup_east_func(ObParseInst *i, xmlDocPtr doc,
+                                 xmlNodePtr node)
 {
-    Options *o = options;
+    Options *o = g_new0(Options, 1);
+    o->dir = OB_DIRECTION_EAST;
+    return o;
+}
 
-    g_free(o);
+static gpointer setup_west_func(ObParseInst *i, xmlDocPtr doc,
+                                 xmlNodePtr node)
+{
+    Options *o = g_new0(Options, 1);
+    o->dir = OB_DIRECTION_WEST;
+    return o;
 }
 
 /* Always return FALSE because its not interactive */