From cb03746137bc23f3c1b485088fefb9d4feffa368 Mon Sep 17 00:00:00 2001 From: Karl Schultheisz Date: Thu, 23 May 2019 10:48:36 -0400 Subject: Add layout option This introduces a new `set` option for setting the layout to vertical or horizontal, which previously could not be done without creating a new window (via `split` or `vsplit`). Now, `set layout|lay h|v` will control this without creating a new window. --- vis-cmds.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'vis-cmds.c') 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; -- cgit v1.2.3