Age | Commit message (Collapse) | Author |
|
|
|
Create a matrix that transforms a page with resolution and rotation,
and grid fits the resulting bounding box.
|
|
|
|
|
|
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.
|
|
|
|
Updates the input point coordinates, and also returns a quad with
appropriate UI handles.
|
|
|
|
Since the function no longer returns ownership of the string, use the
common naming convention.
|
|
|
|
Removes the need to alloc/free text strings in the API, allowing
for simple functions like pdf_dict_get_text_string.
|
|
|
|
|
|
|
|
|
|
|
|
Handle the logic immediately, but put the drawing commands into a
display list that is invoked after the rest of the UI is drawn.
|
|
Also increase the max resolution in the zoom list.
|
|
|
|
* 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.
|
|
* 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.
|
|
|
|
|
|
|
|
This allows us to clean up memory so we can check for memory leaks.
Also fix one memory leak.
|
|
|
|
|
|
|
|
glutMainLoopEvent does not sleep for events, so use glutMainLoop instead
and destroy the window when 'q' is pressed rather than just setting the
quit flag.
|
|
|
|
We currently don't handle errors here, but if we do in the future we
don't want stale pointers lying around.
|
|
|
|
GLFW doesn't build on Visual Studio 2005 anymore, and I don't have time to keep
up with the changes.
So, we're switching back to FreeGLUT, which is more stable.
I've added the two missing features that made us switch to GLFW in the first
place: input methods and system clipboard support.
If MuPDF is compiled with our version of FreeGLUT, we now use these functions:
* glutKeyboardExtFunc
* glutSetClipboard
* glutGetClipboard
|
|
If nothing else, this avoids warnings on VS2005.
|
|
|
|
Also save link coordinates in outline nodes.
|
|
Also apply an inverse gamma correction curve.
|
|
|
|
We still use the fz_context versions as the default, but these
can be overridden with draw device options.
|
|
|
|
Replace fz_print_hash with fz_hash_for_each iterator.
Use string formatting callback.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
When creating the GLFW window, filename was used as the title. That makes it
impossible to apply window manager rules based on class or instance since each
invocation gets a different string based on the filename.
|