From 643cad5c9720673881d33f37d0c5b8499bb6816d Mon Sep 17 00:00:00 2001 From: David Capello Date: Mon, 6 Mar 2017 19:27:43 -0300 Subject: [PATCH] Add basic implementation of slice tool (#721) to modify theme parts It still need support to export to .aseprite-data as XML elements, and animation support. --- data/gui.xml | 14 +- data/pref.xml | 1 + data/strings/en.ini | 11 ++ data/themes/default/sheet.aseprite-data | 4 + data/themes/default/sheet.png | Bin 13758 -> 13786 bytes data/themes/default/theme.xml | 7 +- data/widgets/slice_properties.xml | 50 +++++ docs/ase-file-specs.md | 30 ++- src/app/CMakeLists.txt | 9 + src/app/app_menus.cpp | 2 + src/app/app_menus.h | 2 + src/app/cmd/add_slice.cpp | 64 +++++++ src/app/cmd/add_slice.h | 43 +++++ src/app/cmd/remove_slice.cpp | 39 ++++ src/app/cmd/remove_slice.h | 30 +++ src/app/cmd/set_slice_key.cpp | 55 ++++++ src/app/cmd/set_slice_key.h | 43 +++++ src/app/cmd/set_slice_name.cpp | 41 +++++ src/app/cmd/set_slice_name.h | 40 ++++ src/app/cmd/with_slice.cpp | 31 ++++ src/app/cmd/with_slice.h | 33 ++++ src/app/commands/cmd_open_file.cpp | 6 +- src/app/commands/cmd_remove_slice.cpp | 114 ++++++++++++ src/app/commands/cmd_show.cpp | 29 ++- src/app/commands/cmd_slice_properties.cpp | 119 ++++++++++++ src/app/commands/commands_list.h | 3 + src/app/crash/read_document.cpp | 19 +- src/app/crash/write_document.cpp | 18 +- src/app/file/ase_format.cpp | 135 +++++++++++++- src/app/file/file.cpp | 211 +++++++++++++++++++++- src/app/file/file.h | 6 +- src/app/tools/inks.h | 36 +++- src/app/tools/tool_loop.h | 6 +- src/app/tools/tool_loop_manager.cpp | 6 +- src/app/ui/app_menuitem.cpp | 3 - src/app/ui/editor/editor.cpp | 109 ++++++++++- src/app/ui/editor/editor.h | 12 +- src/app/ui/editor/editor_hit.h | 48 +++++ src/app/ui/editor/moving_cel_state.cpp | 4 +- src/app/ui/editor/moving_cel_state.h | 3 +- src/app/ui/editor/moving_slice_state.cpp | 145 +++++++++++++++ src/app/ui/editor/moving_slice_state.h | 38 ++++ src/app/ui/editor/standby_state.cpp | 86 ++++++++- src/app/ui/editor/tool_loop_impl.cpp | 11 +- src/app/ui/frame_tag_window.h | 6 +- src/app/ui/slice_window.cpp | 113 ++++++++++++ src/app/ui/slice_window.h | 46 +++++ src/app/ui/timeline.cpp | 1 + src/doc/CMakeLists.txt | 5 +- src/doc/LICENSE.txt | 2 +- src/doc/README.md | 2 +- src/doc/doc.h | 4 +- src/doc/keyframes.h | 189 +++++++++++++++++++ src/doc/keyframes_tests.cpp | 133 ++++++++++++++ src/doc/object_type.h | 3 +- src/doc/slice.cpp | 83 +++++++++ src/doc/slice.h | 88 +++++++++ src/doc/slice_io.cpp | 84 +++++++++ src/doc/slice_io.h | 26 +++ src/doc/slices.cpp | 67 +++++++ src/doc/slices.h | 57 ++++++ src/doc/sprite.cpp | 3 +- src/doc/sprite.h | 7 +- src/doc/with_user_data.h | 3 +- 64 files changed, 2577 insertions(+), 61 deletions(-) create mode 100644 data/themes/default/sheet.aseprite-data create mode 100644 data/widgets/slice_properties.xml create mode 100644 src/app/cmd/add_slice.cpp create mode 100644 src/app/cmd/add_slice.h create mode 100644 src/app/cmd/remove_slice.cpp create mode 100644 src/app/cmd/remove_slice.h create mode 100644 src/app/cmd/set_slice_key.cpp create mode 100644 src/app/cmd/set_slice_key.h create mode 100644 src/app/cmd/set_slice_name.cpp create mode 100644 src/app/cmd/set_slice_name.h create mode 100644 src/app/cmd/with_slice.cpp create mode 100644 src/app/cmd/with_slice.h create mode 100644 src/app/commands/cmd_remove_slice.cpp create mode 100644 src/app/commands/cmd_slice_properties.cpp create mode 100644 src/app/ui/editor/editor_hit.h create mode 100644 src/app/ui/editor/moving_slice_state.cpp create mode 100644 src/app/ui/editor/moving_slice_state.h create mode 100644 src/app/ui/slice_window.cpp create mode 100644 src/app/ui/slice_window.h create mode 100644 src/doc/keyframes.h create mode 100644 src/doc/keyframes_tests.cpp create mode 100644 src/doc/slice.cpp create mode 100644 src/doc/slice.h create mode 100644 src/doc/slice_io.cpp create mode 100644 src/doc/slice_io.h create mode 100644 src/doc/slices.cpp create mode 100644 src/doc/slices.h diff --git a/data/gui.xml b/data/gui.xml index 907c6aca7..a1fb6230e 100644 --- a/data/gui.xml +++ b/data/gui.xml @@ -445,8 +445,8 @@ + - @@ -769,6 +769,7 @@ + @@ -915,6 +916,11 @@ + + + + + @@ -1118,15 +1124,15 @@ ink="move" controller="freehand" /> - + /> diff --git a/data/pref.xml b/data/pref.xml index a4dd00666..798cb015a 100644 --- a/data/pref.xml +++ b/data/pref.xml @@ -349,6 +349,7 @@