#include "misc.h"
#include "parser/parse.h"
+typedef struct _ObAction ObAction;
+
/* These have to all have a Client* at the top even if they don't use it, so
that I can set it blindly later on. So every function will have a Client*
available (possibly NULL though) if it wants it.
struct SendToDesktopDirection {
struct _ObClient *c;
+ ObDirection dir;
gboolean wrap;
- gboolean follow;
+ gboolean linear;
+ gboolean final;
+ gboolean cancel;
};
struct Desktop {
struct DesktopDirection {
struct _ObClient *c;
+ ObDirection dir;
gboolean wrap;
+ gboolean linear;
+ gboolean final;
+ gboolean cancel;
};
struct MoveResize {
struct Layer layer;
};
-typedef struct {
+struct _ObAction {
/* The func member acts like an enum to tell which one of the structs in
the data union are valid.
*/
void (*func)(union ActionData *data);
union ActionData data;
-} Action;
+};
-Action *action_new(void (*func)(union ActionData *data));
+ObAction *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
action_resize_relative_vert - the delta
*/
-Action *action_from_string(char *name);
-Action *action_parse(xmlDocPtr doc, xmlNodePtr node);
-void action_free(Action *a);
+ObAction *action_from_string(char *name);
+ObAction *action_parse(xmlDocPtr doc, xmlNodePtr node);
+void action_free(ObAction *a);
/* Execute */
void action_execute(union ActionData *data);
/* SendToDesktop */
void action_send_to_desktop(union ActionData *data);
/* SendToDesktopDirection */
-void action_send_to_desktop_right(union ActionData *data);
-/* SendToDesktopDirection */
-void action_send_to_desktop_left(union ActionData *data);
-/* SendToDesktopDirection */
-void action_send_to_desktop_up(union ActionData *data);
-/* SendToDesktopDirection */
-void action_send_to_desktop_down(union ActionData *data);
+void action_send_to_desktop_dir(union ActionData *data);
/* Desktop */
void action_desktop(union ActionData *data);
/* DesktopDirection */
-void action_desktop_right(union ActionData *data);
-/* DesktopDirection */
-void action_desktop_left(union ActionData *data);
-/* DesktopDirection */
-void action_desktop_up(union ActionData *data);
-/* DesktopDirection */
-void action_desktop_down(union ActionData *data);
+void action_desktop_dir(union ActionData *data);
/* ClientAction */
void action_toggle_decorations(union ActionData *data);
/* MoveResize */