mirror of
https://github.com/labwc/labwc.git
synced 2026-03-28 07:58:28 -04:00
use X macros to fill up enum action_type and const char *action_names[]
To make it harder to have these 2 data structures go out of sync. No functional change. To understand X macros better, visit: - https://en.wikipedia.org/wiki/X_macro - https://philliptrudeau.com/blog/x-macro
This commit is contained in:
parent
9903331995
commit
4e25347791
1 changed files with 96 additions and 133 deletions
229
src/action.c
229
src/action.c
|
|
@ -68,147 +68,110 @@ struct action_arg_list {
|
|||
struct wl_list value;
|
||||
};
|
||||
|
||||
/* Warning: Any change in this enum needs to be reflected in the action_names[] array below */
|
||||
#define ACTION_TYPE_LIST(X) \
|
||||
X(NONE, "None") \
|
||||
X(CLOSE, "Close") \
|
||||
X(KILL, "Kill") \
|
||||
X(DEBUG, "Debug") \
|
||||
X(EXECUTE, "Execute") \
|
||||
X(EXIT, "Exit") \
|
||||
X(MOVE_TO_EDGE, "MoveToEdge") \
|
||||
X(TOGGLE_SNAP_TO_EDGE, "ToggleSnapToEdge") \
|
||||
X(SNAP_TO_EDGE, "SnapToEdge") \
|
||||
X(GROW_TO_EDGE, "GrowToEdge") \
|
||||
X(SHRINK_TO_EDGE, "ShrinkToEdge") \
|
||||
X(NEXT_WINDOW, "NextWindow") \
|
||||
X(PREVIOUS_WINDOW, "PreviousWindow") \
|
||||
X(RECONFIGURE, "Reconfigure") \
|
||||
X(SHOW_MENU, "ShowMenu") \
|
||||
X(TOGGLE_MAXIMIZE, "ToggleMaximize") \
|
||||
X(MAXIMIZE, "Maximize") \
|
||||
X(UNMAXIMIZE, "UnMaximize") \
|
||||
X(TOGGLE_FULLSCREEN, "ToggleFullscreen") \
|
||||
X(SET_DECORATIONS, "SetDecorations") \
|
||||
X(TOGGLE_DECORATIONS, "ToggleDecorations") \
|
||||
X(TOGGLE_ALWAYS_ON_TOP, "ToggleAlwaysOnTop") \
|
||||
X(TOGGLE_ALWAYS_ON_BOTTOM, "ToggleAlwaysOnBottom") \
|
||||
X(TOGGLE_OMNIPRESENT, "ToggleOmnipresent") \
|
||||
X(FOCUS, "Focus") \
|
||||
X(UNFOCUS, "Unfocus") \
|
||||
X(ICONIFY, "Iconify") \
|
||||
X(RAISE, "Raise") \
|
||||
X(LOWER, "Lower") \
|
||||
X(MOVE, "Move") \
|
||||
X(RESIZE, "Resize") \
|
||||
X(RESIZE_RELATIVE, "ResizeRelative") \
|
||||
X(MOVETO, "MoveTo") \
|
||||
X(RESIZETO, "ResizeTo") \
|
||||
X(MOVETO_CURSOR, "MoveToCursor") \
|
||||
X(MOVE_RELATIVE, "MoveRelative") \
|
||||
X(SEND_TO_DESKTOP, "SendToDesktop") \
|
||||
X(GO_TO_DESKTOP, "GoToDesktop") \
|
||||
X(TOGGLE_SNAP_TO_REGION, "ToggleSnapToRegion") \
|
||||
X(SNAP_TO_REGION, "SnapToRegion") \
|
||||
X(UNSNAP, "UnSnap") \
|
||||
X(TOGGLE_KEYBINDS, "ToggleKeybinds") \
|
||||
X(FOCUS_OUTPUT, "FocusOutput") \
|
||||
X(MOVE_TO_OUTPUT, "MoveToOutput") \
|
||||
X(FIT_TO_OUTPUT, "FitToOutput") \
|
||||
X(IF, "If") \
|
||||
X(FOR_EACH, "ForEach") \
|
||||
X(VIRTUAL_OUTPUT_ADD, "VirtualOutputAdd") \
|
||||
X(VIRTUAL_OUTPUT_REMOVE, "VirtualOutputRemove") \
|
||||
X(AUTO_PLACE, "AutoPlace") \
|
||||
X(TOGGLE_TEARING, "ToggleTearing") \
|
||||
X(SHADE, "Shade") \
|
||||
X(UNSHADE, "Unshade") \
|
||||
X(TOGGLE_SHADE, "ToggleShade") \
|
||||
X(ENABLE_SCROLL_WHEEL_EMULATION, "EnableScrollWheelEmulation") \
|
||||
X(DISABLE_SCROLL_WHEEL_EMULATION, "DisableScrollWheelEmulation") \
|
||||
X(TOGGLE_SCROLL_WHEEL_EMULATION, "ToggleScrollWheelEmulation") \
|
||||
X(ENABLE_TABLET_MOUSE_EMULATION, "EnableTabletMouseEmulation") \
|
||||
X(DISABLE_TABLET_MOUSE_EMULATION, "DisableTabletMouseEmulation") \
|
||||
X(TOGGLE_TABLET_MOUSE_EMULATION, "ToggleTabletMouseEmulation") \
|
||||
X(TOGGLE_MAGNIFY, "ToggleMagnify") \
|
||||
X(ZOOM_IN, "ZoomIn") \
|
||||
X(ZOOM_OUT, "ZoomOut") \
|
||||
X(WARP_CURSOR, "WarpCursor") \
|
||||
X(HIDE_CURSOR, "HideCursor")
|
||||
|
||||
/*
|
||||
* Will expand to:
|
||||
*
|
||||
* enum action_type {
|
||||
* ACTION_TYPE_INVALID,
|
||||
* ACTION_TYPE_NONE,
|
||||
* ACTION_TYPE_CLOSE,
|
||||
* ACTION_TYPE_KILL,
|
||||
* etc...
|
||||
*/
|
||||
enum action_type {
|
||||
ACTION_TYPE_INVALID = 0,
|
||||
ACTION_TYPE_NONE,
|
||||
ACTION_TYPE_CLOSE,
|
||||
ACTION_TYPE_KILL,
|
||||
ACTION_TYPE_DEBUG,
|
||||
ACTION_TYPE_EXECUTE,
|
||||
ACTION_TYPE_EXIT,
|
||||
ACTION_TYPE_MOVE_TO_EDGE,
|
||||
ACTION_TYPE_TOGGLE_SNAP_TO_EDGE,
|
||||
ACTION_TYPE_SNAP_TO_EDGE,
|
||||
ACTION_TYPE_GROW_TO_EDGE,
|
||||
ACTION_TYPE_SHRINK_TO_EDGE,
|
||||
ACTION_TYPE_NEXT_WINDOW,
|
||||
ACTION_TYPE_PREVIOUS_WINDOW,
|
||||
ACTION_TYPE_RECONFIGURE,
|
||||
ACTION_TYPE_SHOW_MENU,
|
||||
ACTION_TYPE_TOGGLE_MAXIMIZE,
|
||||
ACTION_TYPE_MAXIMIZE,
|
||||
ACTION_TYPE_UNMAXIMIZE,
|
||||
ACTION_TYPE_TOGGLE_FULLSCREEN,
|
||||
ACTION_TYPE_SET_DECORATIONS,
|
||||
ACTION_TYPE_TOGGLE_DECORATIONS,
|
||||
ACTION_TYPE_TOGGLE_ALWAYS_ON_TOP,
|
||||
ACTION_TYPE_TOGGLE_ALWAYS_ON_BOTTOM,
|
||||
ACTION_TYPE_TOGGLE_OMNIPRESENT,
|
||||
ACTION_TYPE_FOCUS,
|
||||
ACTION_TYPE_UNFOCUS,
|
||||
ACTION_TYPE_ICONIFY,
|
||||
ACTION_TYPE_RAISE,
|
||||
ACTION_TYPE_LOWER,
|
||||
ACTION_TYPE_MOVE,
|
||||
ACTION_TYPE_RESIZE,
|
||||
ACTION_TYPE_RESIZE_RELATIVE,
|
||||
ACTION_TYPE_MOVETO,
|
||||
ACTION_TYPE_RESIZETO,
|
||||
ACTION_TYPE_MOVETO_CURSOR,
|
||||
ACTION_TYPE_MOVE_RELATIVE,
|
||||
ACTION_TYPE_SEND_TO_DESKTOP,
|
||||
ACTION_TYPE_GO_TO_DESKTOP,
|
||||
ACTION_TYPE_TOGGLE_SNAP_TO_REGION,
|
||||
ACTION_TYPE_SNAP_TO_REGION,
|
||||
ACTION_TYPE_UNSNAP,
|
||||
ACTION_TYPE_TOGGLE_KEYBINDS,
|
||||
ACTION_TYPE_FOCUS_OUTPUT,
|
||||
ACTION_TYPE_MOVE_TO_OUTPUT,
|
||||
ACTION_TYPE_FIT_TO_OUTPUT,
|
||||
ACTION_TYPE_IF,
|
||||
ACTION_TYPE_FOR_EACH,
|
||||
ACTION_TYPE_VIRTUAL_OUTPUT_ADD,
|
||||
ACTION_TYPE_VIRTUAL_OUTPUT_REMOVE,
|
||||
ACTION_TYPE_AUTO_PLACE,
|
||||
ACTION_TYPE_TOGGLE_TEARING,
|
||||
ACTION_TYPE_SHADE,
|
||||
ACTION_TYPE_UNSHADE,
|
||||
ACTION_TYPE_TOGGLE_SHADE,
|
||||
ACTION_TYPE_ENABLE_SCROLL_WHEEL_EMULATION,
|
||||
ACTION_TYPE_DISABLE_SCROLL_WHEEL_EMULATION,
|
||||
ACTION_TYPE_TOGGLE_SCROLL_WHEEL_EMULATION,
|
||||
ACTION_TYPE_ENABLE_TABLET_MOUSE_EMULATION,
|
||||
ACTION_TYPE_DISABLE_TABLET_MOUSE_EMULATION,
|
||||
ACTION_TYPE_TOGGLE_TABLET_MOUSE_EMULATION,
|
||||
ACTION_TYPE_TOGGLE_MAGNIFY,
|
||||
ACTION_TYPE_ZOOM_IN,
|
||||
ACTION_TYPE_ZOOM_OUT,
|
||||
ACTION_TYPE_WARP_CURSOR,
|
||||
ACTION_TYPE_HIDE_CURSOR,
|
||||
#define X(name, str) ACTION_TYPE_##name,
|
||||
ACTION_TYPE_LIST(X)
|
||||
#undef X
|
||||
};
|
||||
|
||||
/* Warning: Any change in this array needs to be reflected in the action_type enum above */
|
||||
/*
|
||||
* Will expand to:
|
||||
*
|
||||
* const char *action_names[] = {
|
||||
* [ACTION_TYPE_INVALID] = "INVALID",
|
||||
* [ACTION_TYPE_NONE] = "None",
|
||||
* [ACTION_TYPE_CLOSE] = "Close",
|
||||
* [ACTION_TYPE_KILL] = "Kill",
|
||||
* etc...
|
||||
*/
|
||||
const char *action_names[] = {
|
||||
"INVALID",
|
||||
"None",
|
||||
"Close",
|
||||
"Kill",
|
||||
"Debug",
|
||||
"Execute",
|
||||
"Exit",
|
||||
"MoveToEdge",
|
||||
"ToggleSnapToEdge",
|
||||
"SnapToEdge",
|
||||
"GrowToEdge",
|
||||
"ShrinkToEdge",
|
||||
"NextWindow",
|
||||
"PreviousWindow",
|
||||
"Reconfigure",
|
||||
"ShowMenu",
|
||||
"ToggleMaximize",
|
||||
"Maximize",
|
||||
"UnMaximize",
|
||||
"ToggleFullscreen",
|
||||
"SetDecorations",
|
||||
"ToggleDecorations",
|
||||
"ToggleAlwaysOnTop",
|
||||
"ToggleAlwaysOnBottom",
|
||||
"ToggleOmnipresent",
|
||||
"Focus",
|
||||
"Unfocus",
|
||||
"Iconify",
|
||||
"Raise",
|
||||
"Lower",
|
||||
"Move",
|
||||
"Resize",
|
||||
"ResizeRelative",
|
||||
"MoveTo",
|
||||
"ResizeTo",
|
||||
"MoveToCursor",
|
||||
"MoveRelative",
|
||||
"SendToDesktop",
|
||||
"GoToDesktop",
|
||||
"ToggleSnapToRegion",
|
||||
"SnapToRegion",
|
||||
"UnSnap",
|
||||
"ToggleKeybinds",
|
||||
"FocusOutput",
|
||||
"MoveToOutput",
|
||||
"FitToOutput",
|
||||
"If",
|
||||
"ForEach",
|
||||
"VirtualOutputAdd",
|
||||
"VirtualOutputRemove",
|
||||
"AutoPlace",
|
||||
"ToggleTearing",
|
||||
"Shade",
|
||||
"Unshade",
|
||||
"ToggleShade",
|
||||
"EnableScrollWheelEmulation",
|
||||
"DisableScrollWheelEmulation",
|
||||
"ToggleScrollWheelEmulation",
|
||||
"EnableTabletMouseEmulation",
|
||||
"DisableTabletMouseEmulation",
|
||||
"ToggleTabletMouseEmulation",
|
||||
"ToggleMagnify",
|
||||
"ZoomIn",
|
||||
"ZoomOut",
|
||||
"WarpCursor",
|
||||
"HideCursor",
|
||||
[ACTION_TYPE_INVALID] = "INVALID",
|
||||
#define X(name, str)[ACTION_TYPE_##name] = str,
|
||||
ACTION_TYPE_LIST(X)
|
||||
#undef X
|
||||
NULL
|
||||
};
|
||||
|
||||
#undef ACTION_TYPE_LIST
|
||||
|
||||
void
|
||||
action_arg_add_str(struct action *action, const char *key, const char *value)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue