diff options
author | Paul Gardiner <paul@glidos.net> | 2012-05-08 12:35:00 +0100 |
---|---|---|
committer | Paul Gardiner <paul@glidos.net> | 2012-05-08 12:35:00 +0100 |
commit | 50b0de6e463ebd954b1a97a2cd093731335f1671 (patch) | |
tree | 9a632a6a346a8d4c941f636ca5fcf2ffb2e6bf0c /pdf/pdf_form.c | |
parent | 6a6d2016149c731dfa3a485b1bf0b46d7127681d (diff) | |
download | mupdf-50b0de6e463ebd954b1a97a2cd093731335f1671.tar.xz |
Forms: handle field appearance change on mouse up/down
Diffstat (limited to 'pdf/pdf_form.c')
-rw-r--r-- | pdf/pdf_form.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/pdf/pdf_form.c b/pdf/pdf_form.c new file mode 100644 index 00000000..ff5babeb --- /dev/null +++ b/pdf/pdf_form.c @@ -0,0 +1,59 @@ +#include "fitz-internal.h" +#include "mupdf-internal.h" + +int pdf_pass_event(pdf_document *doc, pdf_page *page, fz_ui_event *ui_event) +{ + int changed = 0; + + switch (ui_event->etype) + { + case FZ_EVENT_TYPE_POINTER: + { + pdf_hotspot *hp = &doc->hotspot; + fz_point *pt = &(ui_event->event.pointer.pt); + pdf_annot *annot; + switch (ui_event->event.pointer.ptype) + { + case FZ_POINTER_DOWN: + for (annot = page->annots; annot; annot = annot->next) + { + if (pt->x >= annot->pagerect.x0 && pt->x <= annot->pagerect.x1) + if (pt->y >= annot->pagerect.y0 && pt->y <= annot->pagerect.y1) + break; + } + + if (annot) + { + hp->num = pdf_to_num(annot->obj); + hp->gen = pdf_to_gen(annot->obj); + hp->state = HOTSPOT_POINTER_DOWN; + changed = 1; + } + break; + + case FZ_POINTER_UP: + if (hp->state != 0) + changed = 1; + + hp->num = 0; + hp->gen = 0; + hp->state = 0; + break; + } + + } + break; + } + + return changed; +} + +fz_rect *pdf_get_screen_update(pdf_document *doc) +{ + return NULL; +} + +fz_widget *pdf_get_focussed_widget(pdf_document *doc) +{ + return NULL; +} |