X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=cmds.cc;h=65a9c4159ac534c96686459ac2faca8a75207482;hb=07b416d9b0ee90d676616fd1e680fe96113fb085;hp=6acb19ce79bebe1719e1aafca156bfcc9d2d2bc4;hpb=3cd34a9be1fce965016122cad0644a2ab3b7ffdd;p=paperjam.git diff --git a/cmds.cc b/cmds.cc index 6acb19c..65a9c41 100644 --- a/cmds.cc +++ b/cmds.cc @@ -372,7 +372,7 @@ public: { pipe = c->pipe; } - vector process(vector &pages); + vector process(vector &pages) override; }; static int validate_page_index(vector &pages, int idx) @@ -414,7 +414,7 @@ public: { pipe = c->pipe; } - vector process(vector &pages); + vector process(vector &pages) override; }; static pipeline_branch *find_branch(pipeline *pipe, vector &pages, int idx) @@ -467,7 +467,7 @@ public: die("Modulo must have n > 0"); pipe = c->pipe; } - vector process(vector &pages); + vector process(vector &pages) override; }; vector modulo_cmd::process(vector &pages) @@ -520,12 +520,12 @@ static const arg_def modulo_args[] = { { NULL, 0 } }; -/*** draw_bbox ***/ +/*** draw-bbox ***/ class draw_bbox_cmd : public cmd_exec { public: draw_bbox_cmd(cmd *c UNUSED) { } - vector process(vector &pages); + vector process(vector &pages) override; }; class draw_bbox_page : public page { @@ -559,7 +559,7 @@ vector draw_bbox_cmd::process(vector &pages) class merge_cmd : public cmd_exec { public: merge_cmd(cmd *c UNUSED) { } - vector process(vector &pages); + vector process(vector &pages) override; }; class merge_page : public page { @@ -751,6 +751,44 @@ static const arg_def margins_args[] = { { NULL, 0 } }; +/*** add-blank ***/ + +class add_blank_cmd : public cmd_exec { + int n; + paper_spec paper; +public: + add_blank_cmd(cmd *c) : paper(c, true) + { + n = c->arg("n")->as_int(1); + } + vector process(vector &pages) override; +}; + +vector add_blank_cmd::process(vector &pages) +{ + vector out; + + for (auto p: pages) + { + out.push_back(p); + for (int i=0; iwidth, h = p->height; + out.push_back(new empty_page(w, h)); + } + } + + return out; +} + +static const arg_def add_blank_args[] = { + { "n", AT_INT | AT_POSITIONAL }, + PAPER_ARGS, + { NULL, 0 } +}; + /*** Command table ***/ template cmd_exec *ctor(cmd *c) { return new T(c); } @@ -764,12 +802,13 @@ const cmd_def cmd_table[] = { { "select", no_args, 1, &ctor }, { "apply", no_args, 1, &ctor }, { "modulo", modulo_args, 1, &ctor }, - { "draw_bbox",no_args, 0, &ctor }, + { "draw-bbox",no_args, 0, &ctor }, { "merge", no_args, 0, &ctor }, { "paper", paper_args, 0, &ctor }, { "scaleto", scaleto_args, 0, &ctor }, { "fit", fit_args, 0, &ctor }, { "expand", expand_args, 0, &ctor }, { "margins", margins_args, 0, &ctor }, + { "add-blank",add_blank_args, 0, &ctor }, { NULL, NULL, 0, NULL } };