Commit Graph

115 Commits

Author SHA1 Message Date
David Capello
ed6c0f986d ColorSelector: Add WarningIcon to add colors to the palette
Simplified the color selector UI. Now RGB/HSV colors are shown correctly
and a new warning icon/button is visible when the color is not part of
the current palette. This button can be used to quickly add the new entry
to the palette.
2014-06-01 18:15:11 -03:00
David Capello
dc5a019c13 ContextBar: Add buttons to drop the selection or cancel the whole operation
- Add ContextBarObserver (and MovingPixelsState implements this interface)
- PixelMovements::discardImage() receives a "commit" flag to do a rollback
  of the operation if the user needs it.
2014-05-26 00:20:16 -03:00
David Capello
08fb98d40d New notifications area at the top-right corner 2014-05-25 11:21:10 -03:00
David Capello
a15aea5ed7 Add timeline options for onion skin, loop section, and animation direction
- Add red/blue onion skin type
- Add app::calculate_next_frame() function to calculate the next frame
  depending of the timeline configuration (loop range, animation direction)
- Add app::finder() to simplify the access to widgets loaded from xml files
2014-05-17 21:27:44 -03:00
David Capello
4c706afb90 New zoom tool 2014-04-19 20:08:21 -03:00
David Capello
1ab7de6668 Adjust some skin colors in filelist and selected background 2014-04-19 19:04:45 -03:00
David Capello
e310ef1428 Change StatusBar colors 2014-04-13 13:51:28 -03:00
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
04a0845a62 SkinTheme: paint windows using styles 2014-03-21 00:28:01 -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
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
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
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
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
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
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
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
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
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
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
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
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
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
c831a35452 Modified some cursors in skin sheet. 2010-07-26 00:21:39 -03:00
David Capello
d7e9ceca81 Modified "arrow with plus sign" cursor. 2010-07-23 23:11:49 -03:00
David Capello
ad82f979b4 Modified some cursors (hands/resize arrows) to match the main arrow cursor style. 2010-07-04 23:38:00 -03:00
David Capello
c18e7d44b2 Fixed scroll-bar thumb borders for horizontal scrollbar. 2010-06-25 00:27:31 -03:00
David Capello
ecd7e85e67 Added a "star" sprite in the sheet (for bookmarks). 2010-06-24 23:46:16 -03:00
David Capello
0467790bcf Added skin to scrollbar. 2010-06-24 00:09:46 -03:00
David Capello
40c73cf11f Fixed shadow for color-bar buttons. 2010-06-17 02:55:54 -03:00
David Capello
a9b54f939f Modified shadow (to use alpha channel) of tool-bar buttons. 2010-06-17 02:27:34 -03:00
David Capello
b8e49466ad Added support for vertical separators:
- New PART_SEPARATOR_VERT in skin.
- New SkinneableTheme::draw_part_as_vline() function.
2010-04-25 15:02:28 -03:00
David Capello
917127ce37 Added alpha support for skin sheet. 2010-04-23 21:56:59 -03:00
David Capello
3e8c38ad91 New icons for tools by iLKke. 2010-04-23 19:00:37 -03:00
David Capello
50f4cd8a9d Added SkinneableTheme::m_selected_skin member and "[Skin]/Selected" configuration variable to change the selected skin. 2010-04-06 22:30:18 -03:00
David Capello
62d0c1db1d New simplified color-bar (still WIP). 2010-03-27 19:41:39 -03:00
David Capello
706cc17748 Parts are specified in skin.xml now. 2010-03-26 08:31:47 -03:00
David Capello
5879af68fd Modified some tool icons. 2010-03-24 22:32:11 -03:00
David Capello
a2c3517717 Cursors coordinates are specified in the default_skin.xml now. 2010-03-24 21:35:44 -03:00
David Capello
994f5e6284 Added mini-look (SkinProperty::isMiniLook) to buttons and sliders. 2010-03-21 21:28:32 -03:00
David Capello
cb97884026 - All tools stuff refactored in various files/components.
- Added classes: IToolLoop, Tool, ToolGroup, ToolInk, ToolController, ToolPointShape, ToolIntertwine, ToolBox, etc.
- Added ToolLoopManager.
- Removed old src/modules/tools.cpp.
- Added ISettings and UISettingsImpl, adding the tools settings (onion skinning, grid, tiled mode, etc.).
- Added App::PenSizeBeforeChange, PenSizeAfterChange, CurrentToolChange signals.
- Renamed Context::get_bg/fg_color to getBg/FgColor.
- Refactored Brush class to Pen and added PenType.
- Renamed tiled_t to TiledMode.
- get_config_rect now uses the new Rect class imported from Vaca instead of old jrect.
- Added default_skin.xml to load tool icons.
- Added pen preview in Editor::cursor stuff.
- Added Editor::decorators.

Note: This big patch is from some time ago. I did my best to pre-commit other small changes before this big one.
2010-03-07 17:47:45 -02:00
David Capello
1f3dcc77ed Renamed palette.png to default_skin_palette.png. 2010-03-07 12:05:01 -02:00
David Capello
7da47af726 Renamed sheet.png to defaut_skin_sheet.png. Added some temporary icons in the sheet for future tools. 2010-03-07 12:03:47 -02:00
David Capello
9e0928ca66 Fixed combo-box graphics. 2009-11-22 00:26:58 +00:00
David Capello
a7cc9371d2 Added GUI sheet (Ilija Melentijevic graphics). 2009-11-21 20:07:21 +00:00