/*
* PaperJam -- Common declarations
*
- * (c) 2018 Martin Mares <mj@ucw.cz>
+ * (c) 2018--2022 Martin Mares <mj@ucw.cz>
*/
#include <vector>
return is_zero(x-y);
}
+void debug(const char *msg, ...) FORMAT_CHECK(printf, 1, 2);
+void warn(const char *msg, ...) FORMAT_CHECK(printf, 1, 2);
+void die(const char *msg, ...) FORMAT_CHECK(printf, 1, 2) NONRET;
+
+// This one is called during execution of commands and propagated as an exception
+void err(const char *msg, ...) FORMAT_CHECK(printf, 1, 2) NONRET;
+
#include "pdf-tools.h"
/*** Representation of commands ***/
struct arg_def {
const char *name;
uint type;
+ const char *help;
};
class arg_val {
double height;
BBox image_box; // Bounds useful contents
virtual void render(out_context *out UNUSED, pdf_matrix xform UNUSED) { abort(); }
+ virtual void debug_dump() = 0;
page(double _w=0, double _h=0) : index(0), width(_w), height(_h), image_box() { }
page(page *p)
{
struct empty_page : public page {
void render(out_context *out UNUSED, pdf_matrix xform UNUSED) { }
+ void debug_dump() { debug("Empty page"); }
empty_page(double _w=0, double _h=0) : page(_w, _h) { };
};
const arg_def *arg_defs;
bool has_pipeline;
cmd_exec *(*constructor)(cmd *cmd);
+ const char *help;
};
struct cmd {
extern const char *in_name, *out_name;
extern bool recalc_bbox;
-extern int debug_mode;
+extern int debug_level;
extern int debug_indent;
-
-void debug(const char *msg, ...) FORMAT_CHECK(printf, 1, 2);
-void warn(const char *msg, ...) FORMAT_CHECK(printf, 1, 2);
-void die(const char *msg, ...) FORMAT_CHECK(printf, 1, 2) NONRET;
-
-// This one is called during execution of commands and propagated as an exception
-void err(const char *msg, ...) FORMAT_CHECK(printf, 1, 2) NONRET;
+extern bool no_auto_transforms;
class paperjam_error : public exception {
string message;
void process(list<cmd *> &cmds);
vector<page *> run_command_list(list<cmd *> &cmds, vector<page *> &pages);
vector<BBox> gs_bboxes(const char *in);
+
+class xform_page : public page {
+ page *orig_page;
+ pdf_matrix xform;
+ const char *description;
+public:
+ void render(out_context *out, pdf_matrix xform) override;
+ void debug_dump() override;
+ xform_page(page *p, const char *desc, pdf_matrix xf);
+};