Commit Graph

46 Commits

Author SHA1 Message Date
Smie
f4c860ddfa Consolidates zooming into single function. 2016-07-26 09:28:18 -06:00
smiegrin
412067ad90 Introduces zooming towards/away from mouse 2016-01-17 16:30:21 -07:00
jdescottes
ca3bbf1c57 Issue #287 : Shortcuts now rely on Shortcut instances. Shortcut key can be changed dynamically. 2015-11-12 20:31:47 +01:00
jdescottes
c11e0d5d8d Issue #287 : Rename addShortcut/removeShortcut to less ambiguous register/unregister 2015-11-12 20:31:45 +01:00
Alexander Holland
8ec47506bf Issue #331 : Gruntfile : host as variable 2015-11-11 22:28:10 +01:00
Alexander Holland
4cf6088441 tweak valid checks and event types 2015-11-05 16:12:27 +01:00
Alexander Holland
00a05ee839 fix style error 2015-11-03 15:00:29 +01:00
Alexander Holland
ba33533178 tablet touch and s-pen input 2015-11-03 03:34:13 +01:00
grosbouddha
5a469202e9 Remove color argument from BaseTool/BaseSelect interfaces 2015-09-16 23:40:44 +02:00
grosbouddha
e9c99a241f Migrate tools to BaseTool#getToolColor 2015-09-16 22:58:13 +02:00
grosbouddha
3209c50304 Create MouseStateService and integrate 2015-09-16 22:57:53 +02:00
grosbouddha
5d38804523 Integrate selectedColorsService into PaletteController and PaletteListController
- update selectedColorsService getColors array API to explicit
getPrimary/getSecondary
- update drawing test helper as well
2015-09-16 22:57:52 +02:00
jdescottes
e6950e5c1a Issue #306 : Switch implementation for memoizer 2015-09-14 22:04:25 +02:00
jdescottes
1fe327495c Issue #305 : Allow DrawingController to zoom out to real size 2015-09-13 22:44:59 +02:00
jdescottes
089b4ea14d Issue #306 : Selection : set opacity for overlay instead of pixel per pixel 2015-09-13 21:32:45 +02:00
juliandescottes
b480acc6a0 Added JSCS linter to enforce style conventions 2015-04-14 18:02:33 +02:00
jdescottes
d310a77893 Enhancement : choose anchor for resize canvas 2015-02-17 02:06:52 +01:00
jdescottes
c7131678f8 Fix mousewheel event for IE11 2015-01-24 00:00:08 +01:00
juliandescottes
5831447f75 Fix #242, onion skin rendered not cleared if 0 frames 2014-12-27 15:02:41 +01:00
jdescottes
1402394d07 Animation pauses when FPS slider at 0FPS + slight perf improvement 2014-12-18 23:57:34 +01:00
jdescottes
2db04fe7d6 Support rectangular resolution & maximize viewport usage 2014-12-18 21:42:03 +01:00
jdescottes
b10e87d2b7 Fix for issue #189 : user can move the viewport via click n drag of middle mouse button 2014-11-23 21:37:34 +01:00
jdescottes
54837d0e21 Issue #228 : Zoom is very slow on Firefox 2014-11-01 14:00:35 +01:00
jdescottes
1955d3f8f5 First implementation of tool tester 2014-08-21 00:50:59 +02:00
jdescottes
6af04bb599 cleanup 2014-07-13 00:21:36 +02:00
jdescottes
24186d5aec Added keyboard shortcuts 2014-07-04 19:17:02 +02:00
jdescottes
98f59fecf1 Feature : add onion skin option
New option in application settings : onion skin.
You can choose the overlay to display now :
- no overlay
- onion skin (default)
- layer preview (previous default)

Available in Application Settings panel.

Only one overlay can be used at the same time.
The onion skin overlay is driven by a new OnionSkinRenderer maanged by the
drawing.

The drawing controller is responsible for instanciating and 'choosing' the
overlay renderer.

When switching to a new overlay, other overlays are cleared and flushed
(they cache their rendering frame, flush empties the cache).

NB : flush is only available on LayersRenderer and OnionSkinRenderer for
now.
2014-06-19 23:33:57 +02:00
jdescottes
cdef28c60f Fix : force zoomMultiplier to 1 on using +/- 2014-05-18 17:32:20 +02:00
jdescottes
f1b6ea4ae3 Fix : zoom step depends on mousewheel event delta value 2014-05-18 16:33:01 +02:00
jdescottes
0fec4eff4a Fix: cannot detect mac touchpad : switch to throttling 2014-05-18 16:05:59 +02:00
jdescottes
6dc3a2bdf7 merge 2014-05-18 15:51:11 +02:00
jdescottes
7569a4343c Fix : Undo/redo for eraser 2014-05-16 22:40:09 +02:00
jdescottes
21a759d8eb Fix : trigger tool move on keyup to acknowledge modifier changes 2014-05-16 22:36:23 +02:00
juliandescottes
a3108225f6 Fix : Zoom level : reduce zoom step on mac os + added keyboard shortcuts 2014-05-14 23:52:32 +02:00
jdescottes
6ad5bde5d1 TiledPreview : follow up 2014-05-08 20:45:05 +02:00
juliandescottes
1db937ae01 Enhancement : Possibility to resize canvas content during resize
- new checkbox in resize panel
- content is resized using nearest neighbor
- deactivated by default

2 bug fixes :
- remove focus after closing drawer
- fire resize event after undo/redo if size changed
2014-05-04 22:58:36 +02:00
jdescottes
5541d030a5 Feature : undo redo including frame/layer actions
- Frame and Layer CRUD actions are now registered and can be cancelled
- Limited performance impact while drawing
- Improved frame cache invalidation
2014-04-22 23:57:30 +02:00
jdescottes
0cecdc74eb Temp commit 2014-04-17 01:27:49 +02:00
jdescottes
09319ecc1b Added progress bar for GIF rendering 2014-04-12 12:08:53 +02:00
jdescottes
dc729ee80b Feature : display cursor coordinates
- new controller CursorCoordinatesController
- added div in right column (bottom:0)
- 3 new events : CURSOR_MOVED, DRAG_START, DRAG_END
- modified tools to fire events when necessary

The cursor coordinates are displayed when the mouse is hovering the
drawing area. When the mouse leaves the area, the indication disappears.
If the user is using a tool that involves dragging (selection, rectangle,
circle), the indicator displays the original coordinates (captured during
drag start) and the current coordinates.
2014-04-11 23:32:28 +02:00
jdescottes
1ce633bd06 Fix : Tools event listeners are now on window
Smoother user experience. Drawing shapes, selecting etc... is no longer
blocked by either the drawing canvas or the document.
2014-04-02 22:37:01 +02:00
jdescottes
c9251229fc Feature : Hold shift to preserve shape ratio
- mutualized shape tools common code in a ShapeTool class
- when holding shift and drawing a frame, the ratio is preserved
- selection and shape tools now support the mouse to leave the drawing
  area
- shape tools can go 'outside' the drawing canvas
- Frame set/getPixel now check the pixel is in range instead of crashing
2014-04-02 22:21:32 +02:00
jdescottes
7357614d9a Fix : Window resize is erasing the canvas
Issue was coming from the cached frame renderer.
During the window resize, we update the displaySize of the frame renderer,
regardless of the fact that the dimensions changed or not.

The setDisplaySize triggers a destruction of the canvas. But the
CachedFrameRenderer will render the frame only if it detects a change. In
this case, setDisplaySize has been overrided in CachedFrameRenderer to
skip any processing if the dimensions didn't change.

This behavior could be actually done in the FrameRenderer itself, but
since this is crucial to the CachedFrameRenderer behavior, I prefer to
keep it in this class.

Alternatively, could implement a way to discard caches of
CachedFrameRenderers from the outside.
2014-03-30 23:28:18 +02:00
jdescottes
3be4c78883 Fix : resize application on startup to adapt correctly to narrow screens 2014-03-30 21:55:29 +02:00
jdescottes
6d62d11872 Fix : drawing with the right mouse button (FF, IE)
Mousemove events do not have the correct button information
Need to keep the state of which button is clicked at which moment

This was actually the initial implementation ...
But I removed it because I couldn't remember why we did this in the
beginning.

Added lots of 'warnings' in comments, but won't be safe until we get good
integration tests.

References :
- FF : https://bugzilla.mozilla.org/show_bug.cgi?id=297919
"What if multiple buttons are pressed during mouse move?  And how does the
integer field (button) indicate that no button is pressed?  I think this
should be wontfix -- if people need button information during mouse move events
we need a new way of getting it (buttonSet), not the same way it works for click,
etc."
- IE : couldn't find any reference ...
2014-03-30 20:39:00 +02:00
jdescottes
87574a2b30 Cleanup project root 2014-03-16 21:15:34 +01:00