]> Dogcows Code - chaz/openbox/blobdiff - openbox/action.h
move the move/resize functionality into moveresize.c, for use with the netwm atoms...
[chaz/openbox] / openbox / action.h
index 0f277fa84e5eae9881df81e1276393ad637eb4dc..6e0b6c520064bd99aa0e7ce735f7f848bfb7ed3c 100644 (file)
@@ -23,13 +23,13 @@ struct ClientAction {
 
 struct MoveResizeRelative {
     Client *c;
-    int dx;
-    int dy;
+    int delta;
 };
 
 struct SendToDesktop {
     Client *c;
-    guint desktop;
+    guint desk;
+    gboolean follow;
 };
 
 struct SendToNextPreviousDesktop {
@@ -48,19 +48,27 @@ struct NextPreviousDesktop {
     gboolean wrap;
 };
 
-struct Move {
+struct MoveResize {
     Client *c;
     int x;
     int y;
-    gboolean final;
+    guint32 corner; /* prop_atoms.net_wm_moveresize_* */
+    guint button;
 };
 
-struct Resize {
+struct ShowMenu {
     Client *c;
+    char *name;
     int x;
     int y;
+};
+
+struct CycleWindows {
+    Client *c;
+    gboolean linear;
+    gboolean forward;
     gboolean final;
-    Corner corner;
+    gboolean cancel;
 };
 
 union ActionData {
@@ -72,8 +80,9 @@ union ActionData {
     struct SendToNextPreviousDesktop sendtonextprev;
     struct Desktop desktop;
     struct NextPreviousDesktop nextprevdesktop;
-    struct Move move;
-    struct Resize resize;
+    struct MoveResize moveresize;
+    struct ShowMenu showmenu;
+    struct CycleWindows cycle;
 };
 
 typedef struct {
@@ -85,6 +94,19 @@ typedef struct {
 } Action;
 
 Action *action_new(void (*func)(union ActionData *data));
+
+/* Creates a new Action from the name of the action
+   A few action types need data set after making this call still. Check if
+   the returned action's "func" is one of these.
+   action_execute - the path needs to be set
+   action_restart - the path can optionally be set
+   action_desktop - the destination desktop needs to be set
+   action_move_relative_horz - the delta
+   action_move_relative_vert - the delta
+   action_resize_relative_horz - the delta
+   action_resize_relative_vert - the delta
+*/
+Action *action_from_string(char *name);
 void action_free(Action *a);
 
 /* Execute */
@@ -100,19 +122,31 @@ void action_raise(union ActionData *data);
 /* ClientAction */
 void action_lower(union ActionData *data);
 /* ClientAction */
+void action_focusraise(union ActionData *data);
+/* ClientAction */
 void action_close(union ActionData *data);
 /* ClientAction */
+void action_kill(union ActionData *data);
+/* ClientAction */
 void action_shade(union ActionData *data);
 /* ClientAction */
+void action_shadelower(union ActionData *data);
+/* ClientAction */
+void action_unshaderaise(union ActionData *data);
+/* ClientAction */
 void action_unshade(union ActionData *data);
 /* ClientAction */
 void action_toggle_shade(union ActionData *data);
 /* ClientAction */
 void action_toggle_omnipresent(union ActionData *data);
 /* MoveResizeRelative */
-void action_move_relative(union ActionData *data);
+void action_move_relative_horz(union ActionData *data);
 /* MoveResizeRelative */
-void action_resize_relative(union ActionData *data);
+void action_move_relative_vert(union ActionData *data);
+/* MoveResizeRelative */
+void action_resize_relative_horz(union ActionData *data);
+/* MoveResizeRelative */
+void action_resize_relative_vert(union ActionData *data);
 /* ClientAction */
 void action_maximize_full(union ActionData *data);
 /* ClientAction */
@@ -153,9 +187,14 @@ void action_next_desktop_row(union ActionData *data);
 void action_previous_desktop_row(union ActionData *data);
 /* ClientAction */
 void action_toggle_decorations(union ActionData *data);
-/* Move */
-void action_move(union ActionData *data);
-/* Resize */
-void action_resize(union ActionData *data);
-
+/* MoveResize */
+void action_moveresize(union ActionData *data);
+/* Execute */
+void action_restart(union ActionData *data);
+/* Any */
+void action_exit(union ActionData *data);
+/* ShowMenu */
+void action_showmenu(union ActionData *data);
+/* CycleWindows */
+void action_cycle_windows(union ActionData *data);
 #endif
This page took 0.02259 seconds and 4 git commands to generate.