dwm-flexipatch/patch/layout_flextile-deluxe.h
2022-07-22 09:46:58 +02:00

122 lines
6.0 KiB
C

static void flextile(Monitor *m);
static void getfactsforrange(Monitor *m, int an, int ai, int size, int *rest, float *fact);
static void mirrorlayout(const Arg *arg);
static void rotatelayoutaxis(const Arg *arg);
#if IPC_PATCH || DWMC_PATCH
static void setlayoutaxisex(const Arg *arg);
#endif // IPC_PATCH | DWMC_PATCH
static void incnstack(const Arg *arg);
/* Symbol handlers */
static void setflexsymbols(Monitor *m, unsigned int n);
static void monoclesymbols(Monitor *m, unsigned int n);
static void decksymbols(Monitor *m, unsigned int n);
/* Layout split */
static void layout_no_split(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_vertical(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_horizontal(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_vertical_dual_stack(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_horizontal_dual_stack(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_centered_vertical(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_centered_horizontal(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_floating_master(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_vertical_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_horizontal_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_vertical_dual_stack_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_horizontal_dual_stack_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_centered_vertical_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_split_centered_horizontal_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
static void layout_floating_master_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
/* Layout tile arrangements */
static void arrange_left_to_right(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
static void arrange_top_to_bottom(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
static void arrange_monocle(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
static void arrange_gapplessgrid(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
static void arrange_gapplessgrid_alt1(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
static void arrange_gapplessgrid_alt2(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
static void arrange_gridmode(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
static void arrange_horizgrid(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
static void arrange_dwindle(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
static void arrange_spiral(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
static void arrange_tatami(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
/* Named flextile constants */
enum {
LAYOUT, // controls overall layout arrangement / split
MASTER, // indicates the tile arrangement for the master area
STACK, // indicates the tile arrangement for the stack area
STACK2, // indicates the tile arrangement for the secondary stack area
LTAXIS_LAST,
};
/* Layout arrangements */
enum {
NO_SPLIT,
SPLIT_VERTICAL, // master stack vertical split
SPLIT_HORIZONTAL, // master stack horizontal split
SPLIT_CENTERED_VERTICAL, // centered master vertical split
SPLIT_CENTERED_HORIZONTAL, // centered master horizontal split
SPLIT_VERTICAL_DUAL_STACK, // master stack vertical split with dual stack
SPLIT_HORIZONTAL_DUAL_STACK, // master stack vertical split with dual stack
FLOATING_MASTER, // (fake) floating master
SPLIT_VERTICAL_FIXED, // master stack vertical fixed split
SPLIT_HORIZONTAL_FIXED, // master stack horizontal fixed split
SPLIT_CENTERED_VERTICAL_FIXED, // centered master vertical fixed split
SPLIT_CENTERED_HORIZONTAL_FIXED, // centered master horizontal fixed split
SPLIT_VERTICAL_DUAL_STACK_FIXED, // master stack vertical split with fixed dual stack
SPLIT_HORIZONTAL_DUAL_STACK_FIXED, // master stack vertical split with fixed dual stack
FLOATING_MASTER_FIXED, // (fake) fixed floating master
LAYOUT_LAST,
};
static char layoutsymb[] = {
32, // " ",
124, // "|",
61, // "=",
94, // "^",
126, // "~",
58, // ":",
59, // ";",
43, // "+",
124, // "¦",
61, // "=",
94, // "^",
126, // "~",
58, // ":",
59, // ";",
43, // "+",
};
/* Tile arrangements */
enum {
TOP_TO_BOTTOM, // clients are arranged vertically
LEFT_TO_RIGHT, // clients are arranged horizontally
MONOCLE, // clients are arranged in deck / monocle mode
GAPPLESSGRID, // clients are arranged in a gappless grid (original formula)
GAPPLESSGRID_ALT1, // clients are arranged in a gappless grid (alt. 1, fills rows first)
GAPPLESSGRID_ALT2, // clients are arranged in a gappless grid (alt. 2, fills columns first)
GRIDMODE, // clients are arranged in a grid
HORIZGRID, // clients are arranged in a horizontal grid
DWINDLE, // clients are arranged in fibonacci dwindle mode
SPIRAL, // clients are arranged in fibonacci spiral mode
TATAMI, // clients are arranged as tatami mats
AXIS_LAST,
};
static char tilesymb[] = {
61, // "=",
124, // "|",
68, // "D",
71, // "G",
49, // "1",
50, // "2"
35, // "#",
126, // "~",
92, // "\\",
64, // "@",
84, // "T",
};