diff options
Diffstat (limited to 'src/layout.c')
-rw-r--r-- | src/layout.c | 46 |
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; +} |