summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2016-07-14 21:45:18 +0800
committerSebastian Rasmussen <sebras@gmail.com>2016-07-15 02:19:54 +0800
commita39339c8a26246fcf864946e8530bce4bf11343c (patch)
tree0b010fcbe3eaeaca0db029ae591ea6d014b0d873 /source
parente4f522c29a4887ab38415715ac52bf2add89bdfa (diff)
downloadmupdf-a39339c8a26246fcf864946e8530bce4bf11343c.tar.xz
Add interface indicating if a document is reflowable.
Diffstat (limited to 'source')
-rw-r--r--source/fitz/document.c6
-rw-r--r--source/html/epub-doc.c1
-rw-r--r--source/html/html-doc.c2
-rw-r--r--source/tools/murun.c15
4 files changed, 24 insertions, 0 deletions
diff --git a/source/fitz/document.c b/source/fitz/document.c
index b2590f07..116f38d8 100644
--- a/source/fitz/document.c
+++ b/source/fitz/document.c
@@ -164,6 +164,12 @@ fz_ensure_layout(fz_context *ctx, fz_document *doc)
}
int
+fz_is_document_reflowable(fz_context *ctx, fz_document *doc)
+{
+ return doc ? doc->is_reflowable : 0;
+}
+
+int
fz_needs_password(fz_context *ctx, fz_document *doc)
{
if (doc && doc->needs_password)
diff --git a/source/html/epub-doc.c b/source/html/epub-doc.c
index 541fb7eb..ec506409 100644
--- a/source/html/epub-doc.c
+++ b/source/html/epub-doc.c
@@ -425,6 +425,7 @@ epub_init(fz_context *ctx, fz_archive *zip)
doc->super.count_pages = epub_count_pages;
doc->super.load_page = epub_load_page;
doc->super.lookup_metadata = epub_lookup_metadata;
+ doc->super.is_reflowable = 1;
fz_try(ctx)
{
diff --git a/source/html/html-doc.c b/source/html/html-doc.c
index 2e8b8ec4..f14ddc35 100644
--- a/source/html/html-doc.c
+++ b/source/html/html-doc.c
@@ -123,6 +123,7 @@ htdoc_open_document_with_stream(fz_context *ctx, fz_stream *file)
doc->super.layout = htdoc_layout;
doc->super.count_pages = htdoc_count_pages;
doc->super.load_page = htdoc_load_page;
+ doc->super.is_reflowable = 1;
doc->zip = fz_open_directory(ctx, ".");
doc->set = fz_new_html_font_set(ctx);
@@ -150,6 +151,7 @@ htdoc_open_document(fz_context *ctx, const char *filename)
doc->super.count_pages = htdoc_count_pages;
doc->super.load_page = htdoc_load_page;
doc->super.lookup_metadata = htdoc_lookup_metadata;
+ doc->super.is_reflowable = 1;
doc->zip = fz_open_directory(ctx, dirname);
doc->set = fz_new_html_font_set(ctx);
diff --git a/source/tools/murun.c b/source/tools/murun.c
index a1671bbd..e46033d9 100644
--- a/source/tools/murun.c
+++ b/source/tools/murun.c
@@ -1435,6 +1435,20 @@ static void ffi_Document_getMetaData(js_State *J)
js_pushstring(J, info);
}
+static void ffi_Document_isReflowable(js_State *J)
+{
+ fz_context *ctx = js_getcontext(J);
+ fz_document *doc = js_touserdata(J, 0, "fz_document");
+ int is_reflowable;
+
+ fz_try(ctx)
+ is_reflowable = fz_is_document_reflowable(ctx, doc);
+ fz_catch(ctx)
+ rethrow(J);
+
+ js_pushboolean(J, is_reflowable);
+}
+
static void ffi_Document_layout(js_State *J)
{
fz_context *ctx = js_getcontext(J);
@@ -3438,6 +3452,7 @@ int murun_main(int argc, char **argv)
jsB_propfun(J, "Document.authenticatePassword", ffi_Document_authenticatePassword, 1);
//jsB_propfun(J, "Document.hasPermission", ffi_Document_hasPermission, 1);
jsB_propfun(J, "Document.getMetaData", ffi_Document_getMetaData, 1);
+ jsB_propfun(J, "Document.isReflowable", ffi_Document_isReflowable, 0);
jsB_propfun(J, "Document.layout", ffi_Document_layout, 3);
jsB_propfun(J, "Document.countPages", ffi_Document_countPages, 0);
jsB_propfun(J, "Document.loadPage", ffi_Document_loadPage, 1);