From this change set, the HTML canvas element, which is the frame view,
is encapsulated inside the FrameRenderer.
You won't need to give the view handle from the controller layer
anymore.
It will make view alteration implementations much easier (like grid for
instance)
* new file : HistoryManager.js
* can undo (ctrl-z) and redo (ctrl-y) changes performed through the
tools
* history states are recorded per frame
* a new state is recorder each time a tool is released (introduced
TOOL_RELEASED event for this purpose)
* a duplicated frame doesn't inherit the history states of the original
frame
* there is no limit to the number of states that can be stored per frame
* actions such as creating/duplicating/deleting a frame are not
concerned by this update
Partial cleanup of piskel:
new events and constant
move palette and color picker in ToolSelector
create Notifcation.js and move user message in it
create LocalStorageService and move LS stuff in it
Migration to a Domain object (currently a FrameSheetModel, feel free to
change its name). The model is being used by the slideshow (drawing
each tiles), animation preview (drawing animation) and drawing (update
model and redraw current tile).
Now the rendering information are not stored in a canvas element that
you paste from canvas to canvas but centralize in this model. The frame
is described as an array of array: that will allow different rendering
using the dpi constants and more flexibility (e.g. drawing a grid,
serializing the data).
Some minor modifications:
- cleaning markup
- adding background image to highlight transparent area