Commit Graph

293 Commits

Author SHA1 Message Date
David Capello
942dba36fd Timeline: add support to move/copy ranges (multiple cels/frames/layers)
- Merge Timeline::STATE_MOVING_LAYER/CEL/FRAME to STATE_MOVING_RANGE.
- Remove celmove.h/cpp and move_cel/copy_cel functions. Now they are
  in the Timeline as dropRange/Cels/Frames/Layers member functions.
- Add DocumentApi::copyFrame/moveCel/copyCel member functions.
- Add timeline_drop_layer_deco and timeline_drop_frame_deco skin parts.
- Move code from DuplicateLayerCommand::onExecute() to new member
  function DocumentApi::duplicateLayer().
- Fix a bug changing Cel's frame number: we weren't updating the Cel
  position properly inside the LayerImage::m_cels collection. Now we use
  LayerImage::moveCel() to change the Cel frame number.
- Other fixes to DocumentApi: Change bgcolor from int to color_t.
2014-04-09 21:56:06 -03:00
David Capello
7ea7521f6a TimeLine: add range outline and hot state
This is the first step to improve the copy/move of ranges in the timeline.
2014-03-30 12:53:57 -03:00
David Capello
b16bf981d0 Implement issue #265 - command/keyboard shortcut for "last export" operation
- Add doc::ExportData with information about the last export operation.
- Add RepeatLastExport command.
- Add SaveFileBaseCommand as base Command class, to accept "filename"
  param.
- Add parameters to ExportSpriteSheet so we can call it without UI
  from "repeat last export".
2014-03-29 16:58:35 -03:00
David Capello
ccdbfd1cf5 Remove Ctrl+Q shortcut for Exit (it remains reserved for other purposes in the future) 2014-03-29 15:42:13 -03:00
David Capello
04a0845a62 SkinTheme: paint windows using styles 2014-03-21 00:28:01 -03:00
David Capello
e082cd96f1 Make ScreenScale option configurable through UI 2014-02-08 00:19:20 -03:00
David Capello
eee1719109 Implemented issue 260: Scroll-bars for sprite editor 2014-01-26 13:28:11 -03:00
David Capello
11f864da12 Minor changes in skin parts to improve context bar buttons 2014-01-26 11:03:32 -03:00
David Capello
9423b967ab Change selection behavior: left-click replace the selection
With this patch we replace the "unique/odd" behavior of Aseprite where
you add selection regions with left-click and remove with right-click.
Now by default you replace the selection with left-click (as in regular
gfx programs). Also you can change the selection tool behavior with
buttons/icons at the context bar (to select between replace/add/subtract).
2014-01-25 17:58:29 -03:00
David Capello
400a2c1993 Timeline: Add support to delete several cels at once 2013-12-22 18:52:25 -03:00
David Capello
b4d9e3c9ca Timeline: Add button and handles to configure onionskin range 2013-12-18 00:01:55 -03:00
David Capello
ccb24cad35 Timeline: fix minor details in padding drawing code 2013-12-15 17:49:46 -03:00
David Capello
9806e33876 Timeline: Add code to show equal keyframes joined
This code is disabled at the moment because there isn't a fast way
to compare frames.
2013-12-15 14:02:00 -03:00
David Capello
3c861f1a7e Show timeline automatically when a new frame/layer is created (configurable option) 2013-12-15 12:58:14 -03:00
David Capello
bcab165700 Timeline: improve look & feel of range selections 2013-12-15 09:42:05 -03:00
David Capello
4e917fc81c Add padding to text style 2013-12-11 01:35:40 -03:00
David Capello
4bd4aac429 Add styles to the Timeline widget
- Added support for styles to SkinTheme and skin.xml.
- Added app::skin::Style/Rule/BackgroundRule/IconRule/TextRule classes.
- Added app::skin::SkinPart class to refer to one part (BITMAP) of
  the skin sheet.
- Renamed app::skin::SkinPart to SkinParts as now SkinPart is a class.
2013-12-11 00:34:16 -03:00
David Capello
f3a9f97513 Fix new Unicode font, issue 294 (missing range of Cyrillic script) 2013-11-25 23:39:41 -03:00
David Capello
59c1c93f29 Add some German and Russian Unicode characters to font.png (to fix issue 294) 2013-11-25 20:32:43 -03:00
David Capello
ddf4a13490 Add the Palette menu with Load/Save commands 2013-11-15 16:56:50 -03:00
David Capello
af3df61ca3 Fix main_window.xml to show the ContextBar again 2013-11-10 19:06:37 -03:00
David Capello
b0cd01b425 Add the old "Animation Editor" as a timeline at the bottom of sprite editors (Workspace)
- Renamed AnimationEditor (dialogs/aniedit.h) to Timeline
  class (app/ui/timeline.h)
- Renamed FilmEditor command to Timeline
2013-11-10 18:27:11 -03:00
David Capello
fd6e4ccc21 Add support for transparent background color for ui::Slider to draw ui::IntEntry popup window without background 2013-04-03 21:17:12 -03:00
David Capello
d259b5c394 Add experimental webserver API and home page
Added webserver::IRequest/IResponse/IDelegate interfaces.
2013-04-01 19:37:02 -03:00
David Capello
ce6b186e1b Remove tool configuration from ConfigureTools command (it's in ContextBar now) 2013-03-30 21:46:35 -03:00
David Capello
7c15aee0a5 Use new Entry suffixes in SpriteSizeCommand 2013-03-30 20:10:54 -03:00
David Capello
bf745b1033 Add ContextBar in the MainWindow 2013-03-30 13:43:00 -03:00
David Capello
3171bd5ce7 Fix widgets borders using the "sunken_normal" SkinTheme part
Now the background color of the parent widget is used to draw the borders.
2013-03-30 13:27:38 -03:00
David Capello
f805a83527 Add entry_suffix color for skin theme 2013-03-29 16:27:08 -03:00
David Capello
9b8e87da10 Update copyright year to 2013 2013-01-27 12:13:13 -03:00
David Capello
544a63cc28 Add "play" button in MiniEditorWindow (UI only)
At this moment the button isn't functional because the current frame
position is stored in the sprite (instead of the Editor). In this case,
when the "play" button is pressed, the mini-editor should show other
frames instead of the current one (should play the whole animation).
2013-01-20 21:58:16 -03:00
David Capello
337af9715e Minor change in document_tab_popup labels 2013-01-20 18:41:38 -03:00
David Capello
ed90055bf7 Replace modules/editors.cpp with widgets::Workspace class
Now we have one editor for each Document we want to edit. Before we were
creating one editor and switching the document on it, but now we have
several Editors (one for each opened Document). This simplifies the
Document implementation, because it doesn't need to know temporal
Editor information (like "preferred editor settings").

- Removed all code from modules/editors.cpp (legacy from C code).
- Removed PreferredEditorSettings class and
  Document::getPreferredEditorSettings().
- Added Workspace/WorkspaceView classes.
- Added DocumentView (a DocumentObserver).
- Added MiniEditorWindow class.
- Removed SelectFileCommand & CloseEditorCommand.
- Added TabView interface instead of using a raw void* in
  Tabs/TabsDelegate classes.
- Modified editors_draw_sprite() calls to Document::notifySpritePixelsModified
  notifications.
- The "current_editor" global variable wasn't removed because it's
  used in several places yet, but it will be removed in the near future.
  (Also this variable now can be NULL when we don't have an opened
  document.)
2013-01-20 18:40:37 -03:00
David Capello
a517deee0d Add ui::Color and ThemeColor, move Color to app::Color
Now colors are customizable from skin.xml file.
2013-01-06 14:45:43 -03:00
David Capello
3aad5a570c Update version to 0.9.6-dev 2012-08-24 21:42:46 -03:00
David Capello
525851e6a1 The color bar is now resizable.
- Added Splitter::Type so it can be by pixel or by percentage.
- Added Widget::load/saveLayout functions and Widget::onLoad/SaveLayout
  events.
- Added LayoutIO interface so we can delegate the serialization of the
  layout.
2012-07-18 01:10:43 -03:00
David Capello
6caaca8179 Advance to 0.9.4-dev version. 2012-07-11 18:32:07 -03:00
David Capello
5d26b90276 Implement issue #129 - Return to frame/layer where action is undone. 2012-07-10 18:26:08 -03:00
David Capello
cd23721a97 Add MainWindow & MainMenuBar, and replace rootmenu module with AppMenus class.
Also the ToolBar widget was published in the toolbar.h header file.
2012-07-09 13:20:58 -03:00
David Capello
9b9daca59f Add "LockAxis" key (Shift) to move the selection in X or Y axis only.
Now "Alt" modifier is the key used to snap to grid the selection.
2012-07-06 19:51:40 -03:00
David Capello
11d20a6e33 Add links to README file and Twitter account in Help menu. 2012-07-06 19:26:36 -03:00
David Capello
02e8c66da4 Remove signals and hooks in GUI code.
Several refactoring tasks where made:
- Removed the old Widget::id field (JID).
- Renamed Widget::get/setName to get/setId.
- Moved load_widget_from_xmlfile() to app::load_widget and WidgetLoader
  class.
- Removed jhook structure & jwidget_add_hook function. Hooks were replaced
  subclassing widgets.
- Added InitThemeEvent class and Widget::onInitTheme member function.
2012-06-15 23:37:59 -03:00
David Capello
1029792a25 Update gui.xml file to 0.9.3-dev. 2012-05-27 21:10:50 -03:00
David Capello
390c0136ad Update version of gui.xml file. 2012-04-05 19:35:14 -03:00
David Capello
55a4002ec5 Add posibility to scroll by-tiles using Ctrl+arrow keys (Paul Pridham idea).
+ Added ScrollCommand.
2012-04-04 00:49:13 -03:00
David Capello
3ed8d5b565 The version in the repository will be "-dev" always. 2012-02-14 20:01:02 -03:00
David Capello
7354bb83cb Update gui.xml version. 2012-02-14 18:41:37 -03:00
David Capello
041140f528 Change "imgtype" int type to PixelFormat enumeration. 2012-02-12 23:21:06 -03:00
David Capello
bc32ded8a5 Add Ctrl+Tab and Ctrl+Shift+Tab keys to switch between tabs. 2012-02-12 11:33:06 -03:00
David Capello
ab333ff02b Remove the ScreenShot command. 2012-02-12 10:55:33 -03:00
David Capello
0d582f9d5f Improve the MovingPixelsState to support Enter and Esc keys to drop the pixels.
Also any executed command will drop the pixels and return the editor to
its standby state.
2012-02-06 00:17:42 -03:00
David Capello
bad1178617 Add JM_CLOSE_APP message to know when the user pressed the native window close button.
This way is a lot better than simulating an ESC key down/up event.
2012-02-02 20:01:54 -03:00
David Capello
917f724861 Add text entry to go to frame in the status bar (issue #6).
+ Added a button to create new frames in the status bar.
2012-01-09 21:18:32 -03:00
David Capello
b97fb14e0a Add GotoFrame command (like issue #6, but it does not use the status bar).
+ Replaced ScopedPtr defined in gui.h with UniquePtr.
+ Fix problem in keycombo_get_string() converting keyboard shortcuts
  with "Alt" modifier.
2012-01-09 20:28:04 -03:00
David Capello
deb3fdb48a Add the standard Ctrl+Y keyboard shortcut to execute Redo command. 2012-01-07 20:33:34 -03:00
David Capello
1dd4120951 Add "maintain aspect ratio" in selection transformation (issue #48). 2012-01-07 18:47:48 -03:00
David Capello
99bd0015b9 Change "N" keyboard shortcut to "Alt+N" to avoid creation of frames by mistake. 2012-01-07 17:04:18 -03:00
David Capello
a17d925847 Add angle snap with Shift key to rotation. 2012-01-07 16:37:07 -03:00
David Capello
b8fbaad7fb Replace Allegro Sprite Editor or ASE with ASEPRITE in all files. 2012-01-06 01:12:57 -03:00
David Capello
02a9d50524 Update copyright year to 2012. 2012-01-06 00:52:11 -03:00
David Capello
ed6090bc36 Convert all newline to LF style and remove all tabs.
This was done to avoid mixed files (CRLF & LF) in the repository.
2012-01-05 19:45:03 -03:00
David Capello
07edcdb1e2 Add transformation support (scale/rotate) to the selected area.
+ Added support to rotate images of IMAGE_BITMAP type.
+ Added transformation_handle & pivot_handle parts in sheet.png.
+ Added rotation cursors in sheet.png.
+ Added gfx::Transformation class and Document::m_transformation field.
+ Added StandbyState::Decorator and TransformHandles class to draw
  transformation handles.
+ Modified PixelsMovement class to support transformation handles.
+ Added new Linear Algebra library with Vector2d class.
2012-01-01 23:08:25 -03:00
David Capello
d55e4c58e4 Fix regression bug: user isn't able to copy pixels using Ctrl + selection tool.
+ The problem is that "Ctrl" key is a quicktool (move cel), and it was
  stealing the "Ctrl" key to the selection tool.
+ Added <spriteeditor> section in gui.xml to specify which key is
  used to copy the selection (instead of moving). "Ctrl" is the default.
+ Added EditorCustomizationDelegate interface.
2011-10-29 19:21:19 -03:00
David Capello
cfd74c79bd Move to 0.9.1 version. 2011-10-29 11:18:07 -03:00
David Capello
0771f708da Remove the *super old* es.po file. 2011-09-06 20:40:28 -03:00
David Capello
c64a0d1171 Add gui.xml version validation to avoid using an old customized gui.xml file. 2011-08-22 21:37:14 -03:00
David Capello
da0a4f67dd Add ase icon (32,48,64 created by iLKke) 2011-08-22 21:02:46 -03:00
David Capello
d5dd899d3d Add "Export Sprite Sheet" command. 2011-08-07 22:24:21 -03:00
David Capello
0bddf2611c Add "Import Sprite Sheet" command (part of issue #4). 2011-07-31 22:55:52 -03:00
David Capello
dd65f0cf7f Replace "QuickReference" and "Donate" commands with "Launch". 2011-07-28 19:32:04 -03:00
David Capello
04c675bd15 Merge branch 'ft-updater' 2011-07-27 22:10:49 -03:00
David Capello
cf9a296e5d Add automatic check for updates with app::CheckUpdateThreadLauncher
and show notifications in StatusBar.
+ Added updater library.
+ Removed "Check for New Version" command.
2011-07-26 23:25:02 -03:00
David Capello
ff481003c8 Now right-clicking a tab shows a popup-menu with useful options for the document.
+ Added OpenInFolder and OpenWithApp commands.
+ Added Launcher::openFolder.
+ Added document_tab_popup_menu.
2011-06-25 14:28:50 -03:00
David Capello
5361d22879 Add button to disable mini editor. 2011-04-30 16:55:22 -03:00
David Capello
bda7f6c31d Add DropDownButton widget. 2011-04-30 15:31:03 -03:00
David Capello
210e33f76a Improve "Canvas Size" command to show rulers to change the canvas size.
+ Added EditorDecorator and EditorState::getDecorator().
+ Added EditorPreRender and EditorPostRender classes.
+ Added Image::rectblend and image_rectblend functions to draw
  transparent rectangles.
+ Added SelectTileState and Ruler classes.
2011-04-21 17:39:43 -03:00
David Capello
36b3309125 Fix "i" glyph in minifont. 2011-04-02 23:08:46 -03:00
David Capello
19ea79b41e Add minifont in SkinTheme for color buttons. 2011-04-02 11:45:43 -03:00
David Capello
450e97ef92 Move data/skins/default_skin to data/skins/default. 2011-04-02 10:53:52 -03:00
David Capello
c5801760b6 Use PNG for fonts instead of PCX. 2011-04-02 10:50:59 -03:00
David Capello
3c3136235f Several fixes in font glyphs to improve the overall look of the program. 2011-04-02 09:49:21 -03:00
David Capello
3ad44e3004 Add a "pin" in color selectors to make the popup window floating.
+ Added Frame::hitTest() and Frame::onHitTest().
+ Added LookType enum for SkinProperty.
2011-03-29 21:07:37 -03:00
David Capello
94ad5cc0fc Fix layer_editable and layer_locked parts (they were switched). 2011-03-27 00:20:23 -03:00
David Capello
d95919beb5 Add a simple DeveloperConsole for debugging purposes (F11 key). 2011-03-26 20:43:43 -03:00
David Capello
a8d9636467 Refactor filters (effects).
+ Added Filter, FilterManager, and FilterIndexedData interfaces.
+ Moved all widgets related to filters to src/commands/filters.
+ Added the filters library.
+ Added FilterWindow and one derived window for each filter.
2011-03-13 15:50:31 -03:00
David Capello
6d5531b998 Replace old gfx-data with graphics from the skin sheet.
+ Removed gfxdata.cpp file.
+ Removed get_gfx() from modules/gfx.h/cpp.
+ Added skin parts for each removed graphics of gfxdata.
+ Added IButtonIcon interface and an implementation for skin theme.
+ Removed "icon_buttons" from gui.cpp.
+ Now icons in button are set through set_gfxicon_to_button function.
+ Removed from Theme class check/radio_icon_size member variables
  (they are replaced with the new IButtonIcon interface).
+ Removed jdraw_inverted_sprite(), now each icon has it normal/selected
  version in the skin sheet.
2011-03-06 16:15:05 -03:00
David Capello
de47c6ff59 Rewritten palette editor using ColorSliders and HexColorEntry widgets. 2011-03-03 22:17:25 -03:00
David Capello
b0ff50ec0e New color-bar with scrollable palette-view.
+ Removed palette-view from Palette Editor.
+ Fixed problems pasting RGB values in #hex format and HSV sliders.
2011-02-23 19:29:57 -03:00
David Capello
cb2eb74ff0 Add ArrowAlign to TipWindow so the tip is pointing to some widget. 2011-02-15 09:02:51 -03:00
David Capello
5de5cfc8e1 Add Them::paintTooltip and changed the tooltip skin with rounded borders and shadow.
+ Move all parts definition to src/skin_parts.h.
2011-02-14 22:50:39 -03:00
David Capello
dc4079a46e Fix problem with PaletteEditor "switch" parameter in menu item "View > Palette Editor" command. 2011-02-02 00:42:48 -03:00
David Capello
58b2c1bcd0 Improve palette editor's RGB/HSV sliders.
+ Added SkinSliderProperty and ISliderBgPainter to draw a customized background in sliders.
+ Moved SkinTheme to src/skin/ directory.
2011-01-24 00:03:38 -03:00
David Capello
f018ab64df Move "Constant Frame Rate" as a menu option under "Frame" menu (before it was a button in "Sprite Properties" dialog).
+ Added "frame" parameter to FrameProperties command.
+ Removed the global function dialogs_frame_length().
2011-01-23 20:27:52 -03:00
David Capello
3887173fac Rename all commands to camel case. 2011-01-20 20:46:58 -03:00
David Capello
bf395fca61 More updates for copyright year to 2011. 2011-01-20 18:32:31 -03:00
David Capello
e9bc81cc1d Add transparent color index in sprite and .ase files (it does not work in render operation yet). 2011-01-20 17:17:35 -03:00
David Capello
aacfb515e4 Changes in keyboard shortcuts to avoid tool-switching confusion. 2010-12-12 10:21:53 -03:00
David Capello
dbebaec92b New "overlap" trace-policy for tools like Spray, Blur, and Jumble. 2010-12-11 21:49:44 -03:00
David Capello
d4caa65cae Use gfx::Rgb and gfx::Hsv classes for HSV <-> RGB conversions.
+ Removed rgb_to_hsv_int() and hsv_to_rgb_int() functions.
+ Changed HSV ranges from [0,255] to H=[0,360], S=[0,100], V=[0,100].
+ Simplified Color class (src/app/color.h) using a m_type and m_value union.
2010-12-08 11:35:08 -03:00
David Capello
742cf18237 As now the window can be resized in all platforms we can remove "Configure Screen" option. 2010-11-04 21:47:54 -03:00