summaryrefslogtreecommitdiff
path: root/src/layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout.c')
-rw-r--r--src/layout.c46
1 files changed, 40 insertions, 6 deletions
diff --git a/src/layout.c b/src/layout.c
index 196d10b..fa06865 100644
--- a/src/layout.c
+++ b/src/layout.c
@@ -189,12 +189,21 @@ int startat;
lay = CreateLayout(title, startat);
if (!lay)
return;
- LoadLayout(0, &D_canvas);
- fcv = D_forecv;
- DupLayoutCv(&D_canvas, &lay->lay_canvas, 1);
- lay->lay_forecv = D_forecv;
- D_forecv = fcv;
- D_layout = lay;
+
+ if (display)
+ {
+ LoadLayout(0, &D_canvas);
+ fcv = D_forecv;
+ DupLayoutCv(&D_canvas, &lay->lay_canvas, 1);
+ lay->lay_forecv = D_forecv;
+ D_forecv = fcv;
+ D_layout = lay;
+ }
+ else
+ {
+ /* TODO: Setup lay->lay_forecv somehow */
+ layout_attach = lay;
+ }
lay->lay_autosave = 1;
}
@@ -369,3 +378,28 @@ char *filename;
return 1;
}
+void RenameLayout(layout, name)
+struct layout *layout;
+const char *name;
+{
+ free(layout->lay_title);
+ layout->lay_title = SaveStr(name);
+}
+
+int RenumberLayout(layout, number)
+struct layout *layout;
+int number;
+{
+ int old;
+ struct layout *lay;
+ old = layout->lay_number;
+ if (number < 0 || number >= MAXLAY)
+ return 0;
+ lay = laytab[number];
+ laytab[number] = layout;
+ layout->lay_number = number;
+ laytab[old] = lay;
+ if (lay)
+ lay->lay_number = old;
+ return 1;
+}