aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sam.c6
-rw-r--r--vis-cmds.c13
2 files changed, 19 insertions, 0 deletions
diff --git a/sam.c b/sam.c
index 3b7aaf3..0abd9e2 100644
--- a/sam.c
+++ b/sam.c
@@ -297,6 +297,7 @@ enum {
OPTION_SAVE_METHOD,
OPTION_LOAD_METHOD,
OPTION_CHANGE_256COLORS,
+ OPTION_LAYOUT,
};
static const OptionDef options[] = {
@@ -380,6 +381,11 @@ static const OptionDef options[] = {
VIS_OPTION_TYPE_BOOL,
VIS_HELP("Change 256 color palette to support 24bit colors")
},
+ [OPTION_LAYOUT] = {
+ { "layout", "lay" },
+ VIS_OPTION_TYPE_STRING,
+ VIS_HELP("Vertical or horizontal window layout")
+ },
};
bool sam_init(Vis *vis) {
diff --git a/vis-cmds.c b/vis-cmds.c
index 15bd89c..eb56eb2 100644
--- a/vis-cmds.c
+++ b/vis-cmds.c
@@ -348,6 +348,19 @@ static bool cmd_set(Vis *vis, Win *win, Command *cmd, const char *argv[], Select
case OPTION_CHANGE_256COLORS:
vis->change_colors = toggle ? !vis->change_colors : arg.b;
break;
+ case OPTION_LAYOUT: {
+ enum UiLayout layout;
+ if (strcmp("h", arg.s) == 0) {
+ layout = UI_LAYOUT_HORIZONTAL;
+ } else if (strcmp("v", arg.s) == 0) {
+ layout = UI_LAYOUT_VERTICAL;
+ } else {
+ vis_info_show(vis, "Invalid layout `%s', expected 'h' or 'v'", arg.s);
+ return false;
+ }
+ windows_arrange(vis, layout);
+ break;
+ }
default:
if (!opt->func)
return false;