summaryrefslogtreecommitdiff
path: root/platform
AgeCommit message (Collapse)Author
2018-07-05Pass rects by value: device and document interface.Tor Andersson
2018-07-05Pass matrices by value: device and document interface.Tor Andersson
2018-07-05Pass rect and matrix by value in geometry functions.Tor Andersson
Several things irk me about passing values as const pointers: * They can be NULL, which is not a valid value. * They require explicit temporary variables for storage. * They don't compose easily in a legible manner, requiring weird pointer passing semantics where the variable being assigned is hidden as an argument in the innermost function call. * We can't change the value through the pointer, requiring yet more local variables to hold copies of the input value. In the device interface where we pass a matrix to a function, we often find ourselves making a local copy of the matrix so we can concatenate other transforms to it. This copying is a lot of unnecessary busywork that I hope to eventually avoid by laying the groundwork with this commit. This is a rather large API change, so I apologize for the inconvenience, but I hope the end result and gain in legibility will be worth the pain.
2018-07-05gl: Poll changed annots with pdf_update_page, and clear after rendering.Tor Andersson
2018-07-04Add fz_snap_selection function to snap selection to chars/words/lines.Tor Andersson
Updates the input point coordinates, and also returns a quad with appropriate UI handles.
2018-07-04gl: Track modifier keys during mouse events too.Tor Andersson
2018-07-04Rename pdf_get_annot_contents to pdf_annot_contents.Tor Andersson
Since the function no longer returns ownership of the string, use the common naming convention.
2018-07-04java: Fix bugs introduced when caching text strings in pdf_obj.Tor Andersson
2018-06-22Update base 14 fonts to URW++ release from 2017-07-27.Tor Andersson
The Dingbats and Symbol fonts have not been changed.
2018-06-22Use fz_quad type in structured text and selection/highlighting.Tor Andersson
2018-06-22Keep copy of decoded utf8 text string in pdf_obj.Tor Andersson
Removes the need to alloc/free text strings in the API, allowing for simple functions like pdf_dict_get_text_string.
2018-06-22gl: Edit widget values in annotation editor.Tor Andersson
2018-06-22gl: Add -J flag to disable Javascript in PDF forms.Tor Andersson
2018-06-22gl: Transform rotated pages so that the pixmap origin is always at 0,0.Tor Andersson
2018-06-22gl: Multi-line text input fields.Tor Andersson
2018-06-22gl: Use black backdrop when displaying an inverted (black) page.Tor Andersson
2018-06-22gl: Rework how popup menus are handled.Tor Andersson
Handle the logic immediately, but put the drawing commands into a display list that is invoked after the rest of the UI is drawn.
2018-06-22gl: Increase font size on high resolution displays.Tor Andersson
Also increase the max resolution in the zoom list.
2018-06-22gl: Edit FreeText default appearance.Tor Andersson
2018-06-22gl: Add annotation editor.Tor Andersson
* Select with right mouse, edit with left mouse. * Clamp movement to page area. * Integrate page scroll offset into matrices. * Edit Ink annotations. * Initialise important annotation properties when creating them. * Deselect annotation when pressing ESC. * Add polygon/polyline annotation editing. * Tweak polygon editing. * Edit square/circle annotations. * Cancel canvas edits on right click. * Expand selectable areas and grab zones for rects. * Edit line annotations. * Edit caret annotations. * Return true when value has changed (checkbox and slider). * Add popup menu widget: Menu items are drawn at ui_end to overlay other widgets properly. * Use popup menu to set icons. * Fix text selection translation offset. * Edit quad point annotations. * Set user and modification date when creating new annotations. * Add select widget. * Edit line endings. * Edit highlight opacity. * Create properly sized stamp annotations. * Edit FreeText annotations. * Trigger list selection on mouse-up instead of mouse-down. * Use index in ui_select. * Edit Freetext quadding. * Fix windows build issues. * Use 'const void *' for ids. * Add file dialog to choose file when none given on command line. * Add save file dialog. * Add pdfwrite options to save dialog. * Add error dialog instead of dying silently on exceptions. * Add password dialog. * Add warning dialog that does not exit the program. * Show in title bar when document is modified. * Separate motion and passive motion callbacks. * Add /Volumes 'disk' for MacOS X mount points. * Tweak input focus/blur handling. * Use popup menu to create annotations instead of big list of buttons. * Update appearance after canvas edits too. * Release old grab before checking for new grab and taking focus. * Set cursor shape depending on hot item. * Draw prettier widgets. * Use integers for slider to allow snapping to values. * Add 'ui.gridsize' to ease layout of buttons and text fields. * Tweak file dialog layout. * Bevels around lists and scroll bars. * Only add new points to the ink list when drawing. * Use named color constants instead of hardcoding color values. * Adjust layout and which properties to edit for each annotation. * Use a panel for search field. * Add splitter, dialogs, and panel padding. * Popup menus above the button if they don't fit below it. * Use triangle strip to draw check mark.
2018-06-22gl: Add layout packer and various widgets.Tor Andersson
* Move window setup and swap buffer calls into ui_begin/end. * Rearrange source files. * Simplify grab logic: Make it more robust in the face of user errors, such as setting ui.active to NULL explicitly. * Copy text to primary selection as well.
2018-06-22Update win32 project for pdf-link/annot/annot-edit.c file changes.Tor Andersson
2018-06-12More tweaks to MSVC dependencies for luratech/curl.Robin Watts
Looks like x64 ones didn't 'stick' last time I edited them.
2018-06-12Fix MSVC build issues.Robin Watts
When updating from VS2005 to VS2017, the .rules mechanism is converted to a .props based scheme. This is not entirely equivalent, and so causes problems with our "build both 32 and 64bit resources" scheme. Instead, we amend the flag handling in bin2coff so that it will accept "Win32" and "x64" as flags. These can then be driven easily from the project files, giving us a "more standard" way of working. Also, remove some stray fonts that had crept into the resources build.
2018-06-11MSVC solution fixes.Robin Watts
Having libluratech set to not build in non-commercial builds is not enough to make stuff work, as the dependencies will still try to link it in. Instead, we now have a Release configuration for libluratech with every file disabled, and the non-commercial builds depend on that. Also, tweak bin2coff build to put it's buildlog in the usual place.
2018-06-11Fix MSVC dependencies/configurations.Robin Watts
Everything builds in a batch build for me now, except for the OpenSSL stuff, which fails due to me not having it available.
2018-06-11Fix Windows JNI builds.Robin Watts
2018-06-11Use bin2coff to generate font data blobs object files.Tor Andersson
This is the windows equivalent of objcopy or ld -r binary. We need different bin2coff font object files for 32 and 64 bit builds, so put the font object files in AdditionalDependencies. Revamp Windows builds to use bin2coff. Fix bin2coff to not use '-' in symbol names. Add a new project file to make bin2coff. Add a .rules file to tell MSVC how to call the built version of bin2coff. Update libresources build to use this rules file. Update noto.c to correctly find the symbols we make.
2018-05-18gl: Zoom in/out centered on the mouse cursor.Tor Andersson
2018-05-18Fix android build.Tor Andersson
2018-05-16Purge unused functions.Tor Andersson
2018-05-16Restore Emoji font.Tor Andersson
The Noto symbol font has been split into two. The second symbol font only contains a subset of the emojis, so reinstate the real emoji font and add both symbol fonts to the fallback chain.
2018-05-09Disable optimization in libresources.vcproj.Tor Andersson
2018-05-09Fix java build.Tor Andersson
2018-05-03Fix MSVC build: Remove stray "generate.bat" calls.Robin Watts
2018-05-03Update win32 libresources.vcproj file list.Tor Andersson
2018-04-27Handle multi-page image formats in muimg document driver.Tor Andersson
Remove the mutiff document type.
2018-04-26Clean up and simplify makefiles.Tor Andersson
* Use autogenerated header file dependencies. * Use mkdir to create target output directory directly.
2018-04-25Update Noto fonts.Tor Andersson
Import Source Han Serif 1.001. Use serif fonts in preference for sans.
2018-04-25Default CJK language to traditional chinese.Tor Andersson
2018-04-25Use objcopy to compile font resources.Tor Andersson
2018-04-25Check in generated Javascript source files.Tor Andersson
Use a sed script to strip comments and whitespace and add escapes and quote it as a C string literal.
2018-04-25Check in generated ICC profiles.Tor Andersson
2018-04-25Check in generated CMap source.Tor Andersson
Created with the 'scripts/runcmapdump.sh' script.
2018-04-25Update CMaps to latest version.Tor Andersson
Remove UTF8 and UTF32 CMap resources that are not needed for PDF. Add Identity-H and Identity-V resources. Process UCS2/UTF16 and GBK CMaps to usecmap a common subset.
2018-04-25Add CMap processing scripts, and turn cmapdump into mutool.Tor Andersson
A dumping script written in python. A flattening script written in python (for easier editing). A subsetting script written in shell to minimize CMaps by reusing subsets. Use 'mutool cmapdump' to bootstrap or verify cmap dumps.
2018-04-25Remove document argument from pdf_new_primitive functions.Tor Andersson
Also remove useless pdf_new_null and pdf_new_bool functions. Use the PDF_NULL, PDF_TRUE, and PDF_FALSE macros instead.
2018-04-24Remove need for namedump by using macros and preprocessor.Tor Andersson
Add a PDF_NAME(Foo) macro that evaluates to a pdf_obj for /Foo. Use the C preprocessor to create the enum values and string table from one include file instead of using a separate code generator tool.
2018-04-12Fix VS project file.Robin Watts
Stray line, presumably a merge edit failure.
2018-04-12Update Android.mk for recent build changes.Tor Andersson