Commit Graph

2122 Commits

Author SHA1 Message Date
David Capello
81d10f1c4f Add DEBUG_PAINT_EVENTS to manager.cpp 2014-05-04 21:17:45 -03:00
David Capello
ddf894867a Fix ToolBar behavior to avoid changing tools unintentionally
- Avoid opening other groups if the user is not with the mouse down
- A second MouseUp closes the group
2014-05-04 20:56:36 -03:00
David Capello
6414e37f9a Use IntersectClip when possible 2014-05-04 16:59:11 -03:00
David Capello
df3cb694ae Add she::Display::setMousePosition() 2014-05-04 16:05:35 -03:00
David Capello
507819a26f win32: hide scrollbars changing client area in WM_NCCALCSIZE 2014-05-03 20:40:57 -03:00
David Capello
774a36efc9 Fix crash using deleted concurrent queue of event when Alleg4Display() is being destroyed 2014-05-03 18:02:27 -03:00
David Capello
9dff641855 Update win32 resource file 2014-05-03 17:04:49 -03:00
David Capello
7b9f8ce355 Update website URL in config.h 2014-05-03 17:04:33 -03:00
David Capello
b991f3b42e Rename cmd_change_image_type.cpp to cmd_change_pixel_format.cpp 2014-05-03 16:27:11 -03:00
David Capello
0eb8e344bb If the save process fails, mark the document as modified 2014-05-03 16:25:39 -03:00
David Capello
a04119eeb4 Fix several reported memory leaks 2014-05-02 23:55:45 -03:00
David Capello
9af8440ba6 Delete all css::Styles when the skin::StyleSheet is destroyed 2014-05-02 23:30:17 -03:00
David Capello
456bdaa20a Avoid memory leak information about color_mapping in skin_theme.cpp 2014-05-02 23:07:11 -03:00
David Capello
5b62a55a0a Avoid memory leaks information of FileFormatsManager 2014-05-02 23:04:04 -03:00
David Capello
0cd9bf21f3 Fix memory leak detector for Windows with MSVC compiler 2014-05-02 23:03:40 -03:00
David Capello
cb0f89ea3a Fix issue with Timeline scroll: when clicking with mouse wheel the scroll jumps to other location 2014-05-02 21:10:19 -03:00
David Capello
a5b1bd1875 Check invalid values of m_clk_layer in Timeline::dropLayers() 2014-05-02 21:08:10 -03:00
David Capello
c34ee7ef6b Fix compilation error in ase_parallelogram_map() 2014-05-02 20:22:39 -03:00
David Capello
e006d8322f Use strtol instead of ustrtol in widget_loader.cpp 2014-05-02 20:21:57 -03:00
David Capello
cfa061e014 Fix sprite properties dialog size when jguiscale() = 1 (problem referenced in issue #197) 2014-05-02 20:19:43 -03:00
David Capello
02a8ea779a Add missing *jguiscale() in Entry and ColorButton widgets 2014-05-02 20:08:59 -03:00
David Capello
3e70c5316d Add undo information when the sprite transparent color is modified 2014-05-02 20:00:26 -03:00
David Capello
c879d114e0 Version 1.0.0 2014-05-02 19:58:34 -03:00
David Capello
e36aaa5dfc Fix issue #197 - Index 0 is made transparent, even when it is not the transparent color
Now image_scale and ase_parallelogram_map_standard functions use the image
mask color.
2014-05-02 19:44:26 -03:00
David Capello
66564e354f Fix issue #394 - crash when we cancel the file save operation
There were problems calling a pure virtual function (IFileOpProgress
implemented by OpenFileJob) when we are already in ~Job() dtor. So we've
to wait the background thread (added Job::waitJob() function) to join
the thread so it can use IFileOpProgress safely.

Also the save process of .ase files now can be cancelled (it wasn't
possible before).
2014-05-02 17:04:55 -03:00
David Capello
33753ccde8 .ase format: remove static members to save chunks 2014-05-02 14:59:20 -03:00
David Capello
d0c2107278 .ase format: write the header at the beginning of the process
This is a common issue when the save process fails, we get an .ase file
without header. So basically with this change we save the most important
information of the header first, and then save the rest of frames/layers
info. At the end we can save the file size.

- Other change: removed "current_frame_header" static variable.
2014-05-02 14:38:35 -03:00
David Capello
aaa662cf23 Implement CelProperties commands using DocumentApi::setCelOpacity 2014-05-02 12:10:29 -03:00
David Capello
049affae65 Timeline: Fix bug start cels movement with right-click 2014-05-02 11:56:18 -03:00
David Capello
f60d1c5c4f Add "Cancel" option to cel_movement_popup (popup when you move cels in the Timeline) 2014-05-02 11:55:44 -03:00
David Capello
7a15f1c909 Merge remote-tracking branch 'origin/dev' into dev 2014-05-02 11:29:24 -03:00
David Capello
4946dd5ebb Timeline: Fix problem clicking first and second frame 2014-05-02 11:28:44 -03:00
David Capello
d76f6f6716 Add DocumentApi::setCelOpacity() 2014-05-02 11:28:21 -03:00
David Capello
09027fdee4 Fix issue #258 - bug moving a cel from a transparent layer to background
The problem was in DocumentApi::moveCel(). We cannot move a Cel between
layers and frames at the same time easily (it's not possible to do it
without being in a temporal invalid state, e.g. where two cels are in the
same frame position). It's better if we create completely new cel for
the target and remove the previous one in all cases (undoers are already
prepared to do those operations correctly).

- Add Sprite::getImageRefs() member function.
2014-05-02 11:28:03 -03:00
David Capello
bee4dff5a8 Merge branch 'dev' of git@github.com:aseprite/aseprite.git into dev 2014-04-29 23:08:20 -03:00
David Capello
6edf02765a Fix Graphics::fillAreaBetweenRects() 2014-04-29 23:07:25 -03:00
David Capello
62c5d5222f Redraw editors when all layers are hidden/shown 2014-04-29 23:04:57 -03:00
David Capello
e363577e65 Better double-click: remove DoubleClickeable and make ui::Widget default behavior to convert double-clicks into mouse downs 2014-04-29 23:02:27 -03:00
David Capello
62fc42c24d Timeline: Add icons to lock/unlock and hide/show all layers 2014-04-29 22:51:14 -03:00
David Capello
be13633d44 Merge branch 'dev' of git@github.com:aseprite/aseprite.git into dev 2014-04-29 01:21:43 -03:00
David Capello
d470a6b78a Fix Clear command to delete the selection first when the range is enabled in one frame/one layer 2014-04-29 01:19:39 -03:00
David Capello
0120ef58e1 AppMenuItem: fix updating enabled/checked state in popup menus (in timeline popups mainly) 2014-04-29 01:11:50 -03:00
David Capello
4d48e40484 Fix RemoveLayer command so it's disabled when we have no more layers to remove 2014-04-29 01:01:25 -03:00
David Capello
5601b07df6 Fix NewFrame command so it's enabled even when we don't have layers 2014-04-29 01:00:15 -03:00
David Capello
05d0eaee6d Timeline: fix painting code for paddings area when we've removed all layers 2014-04-29 00:51:42 -03:00
David Capello
870a435cb6 Timeline: fix crash when we remove all layers (issue #393) 2014-04-29 00:51:08 -03:00
David Capello
17e59bc9e5 And fix mouse wheel from Allegro 4.4 data 2014-04-28 22:07:01 -03:00
David Capello
a21febf6e8 Merge branch 'dev' of git@github.com:aseprite/aseprite.git into dev 2014-04-28 22:03:25 -03:00
David Capello
ec61c6b972 Add support for horizontal mouse wheel and scroll bar notifications (better support for trackpads)
WM_HSCROLL/WM_VSCROLL messages are used by some trackpads drivers to
notify about horizontal/vertical pan gestures.
2014-04-28 22:02:56 -03:00
David Capello
58720851c4 Update MiniEditor scroll properly when EditorView scroll changes 2014-04-28 01:45:22 -03:00
David Capello
4ea41e1024 Fix problem rendering underlined characters 2014-04-26 16:19:05 -03:00
David Capello
3935b10467 Merge remote-tracking branch 'origin/dev' into dev 2014-04-26 16:05:55 -03:00
David Capello
9fa0f4077b Fix default MiniEditorWindow position 2014-04-26 16:05:29 -03:00
David Capello
5584424b79 Adjust windows position when ui::Manager (the main windows/display) is resized 2014-04-26 16:04:25 -03:00
David Capello
75591fa491 Fix animation playback in MiniEditor: now it handles frame duration correctly 2014-04-26 12:06:11 -03:00
David Capello
a411cd88d9 Merge branch 'dev' of git@github.com:aseprite/aseprite.git into dev 2014-04-26 11:34:46 -03:00
David Capello
99ca9f175e Add View::attachedWidget() member function 2014-04-26 11:33:29 -03:00
David Capello
a6a383ebc8 Fix SkinTheme::paintView() to avoid the little white square in ListBox's bottom-right corner 2014-04-26 11:33:05 -03:00
David Capello
b7de0a9547 Don't reload the theme when the palette is modified
This was needed in the old days for 8bpp screens.
2014-04-26 11:22:21 -03:00
David Capello
6fa7abb812 Fix EditorView scrollbar painting code for the little square in the bottom-right corner 2014-04-26 11:16:49 -03:00
David Capello
15a3b6ac2c Fix double-click issues
- Fix double-click behavior when double-clicks are generated from
  Manager::generateMouseMessages().
- Add Widget::setDoubleClickeable/isDoubleClickeable() member functions
  for widgets that accept double-clicks.
2014-04-26 11:09:59 -03:00
David Capello
5d824512c2 Fix SkinTheme::paintMenuItem() painting code 2014-04-25 08:59:00 -03:00
David Capello
af299eecc8 Hide mouse when it leaves the display 2014-04-25 08:58:19 -03:00
David Capello
95fbfd9fe7 Add a mutex to access to the FileSystemModule 2014-04-24 08:51:59 -03:00
David Capello
b467e57ba3 Update the PaletteListBox view to show the scrollbar when palettes are added 2014-04-24 08:49:52 -03:00
David Capello
a711c8be17 Fix throw of exceptions in FileSystemModule ctor 2014-04-21 23:30:04 -03:00
David Capello
6634c12ad2 Fix problem selecting Default Ink each time we want to show other ink type 2014-04-21 22:23:22 -03:00
David Capello
3c4bbbe30c Replace jwidget_set_min/max_size() with Width::setMin/MaxSize() 2014-04-21 22:15:29 -03:00
David Capello
b33357ed46 Remove base::string (std::string is good enough for utf8 strings) 2014-04-20 19:53:27 -03:00
David Capello
3322396357 Minor fixes 2014-04-20 17:41:59 -03:00
David Capello
47ee01c1a0 Proper handling of HRESULTs 2014-04-20 17:41:49 -03:00
David Capello
a35cb0d34d Fix compilation errors (gcc) 2014-04-19 21:06:58 -03:00
David Capello
b36cff8d75 Add missing #include <string> 2014-04-19 21:06:35 -03:00
David Capello
019c7c9f1f she_alleg4: Define unique_display and display_scale on all platforms 2014-04-19 21:06:07 -03:00
David Capello
bc32c18dbb Fix PalettePopup::showPopup signature 2014-04-19 21:03:50 -03:00
David Capello
bf03d10b03 Remove extra elements in #endif directives 2014-04-19 21:03:20 -03:00
David Capello
bc3d3e9413 Load a better palette by default 2014-04-19 20:52:56 -03:00
David Capello
5ba85c01dc Improve "Load" button label in PalettePopup to know what it does when there is no active document 2014-04-19 20:52:36 -03:00
David Capello
2c0642d1f1 It's better if mouse wheel doesn't center the scroll on zoom-in/out 2014-04-19 20:43:23 -03:00
David Capello
223988d7ff Center on zoom (fixed issue #385) 2014-04-19 20:09:14 -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
3738774efc Do not apply jguiscale() to Splitter layouts that are handled ByPercentage 2014-04-19 18:57:42 -03:00
David Capello
a34d181530 Add Widget::is/setTransparent property to paint a widget merged with its background
This fixes problems with tooltips, toolbar popups and context bar popups.
It fixes issue #297 (undo notifications rendering problems).
2014-04-19 18:51:42 -03:00
David Capello
2b3a4d1668 Paint PopupWindow as popup menus 2014-04-19 16:07:01 -03:00
David Capello
af4e714360 More painting code from ji_screen to ui::Graphics
We planned to migrate everything to ui::Graphics to port the program to
other back-end (e.g. SDL or Allegro5). This is one step forward to that
direction.

Changes:
- Delete a lot of deprecated functions from src/ui/draw.h/cpp and SkinTheme
  that used BITMAP/ji_screen.
- Rename ui::ji_move_region to ui::_move_region
- Move ui::jwidget_get_texticon_info to ui::Widget::getTextIconInfo.
  Now the member function returns client coordinate instead of absolute
  ones.
- ui::drawTextBox() now receives a ui::Graphics instead of a BITMAP
- Add ui::Graphics::drawChar/measureChar() member functions.
- Replace ui::jrectexclude() with with ui::Graphics::fillAreaBetweenRects()
2014-04-19 15:18:16 -03:00
David Capello
4beff46e02 We were calling dispatchMessages() on openPopupWindow(), which produces some messages that were deleting the toolstrip
We cannot use the "overlapped area" trick to draw the background of the
window. It's better to add a new "composite" kind of window.
2014-04-17 22:52:26 -03:00
David Capello
9ad86ef0ed Toolbar: Remove slot before the popup window is deleted
This fix some strange scenario/bug where slots iterators where invalidated
in the middle of the signaling process. (The whole signal/slot impl needs
a review/simplification.)
2014-04-17 22:30:07 -03:00
David Capello
dd2ce20e25 Win32: Add support to convert mouse messages (WM_) to ui::Messages (using she::Events)
On Windows, instead of polling Allegro mouse position/buttons we can use
the mouse messages (WM_*) directly to generate she::Events. Those events
are received by the ui::Manager and converted to ui::Messages.
Maybe this is a possible fix for issue #133 (Wacom tablets don't work
properly).

Changes:
- Don't use jmouse_z() directly (new ui::MouseMessage::wheelDelta() member)
- Add ui::_internal_set_mouse_position() to change the jmouse_x/y(0)
  from the new mouse position received in she::Events. The same for
  ui::_internal_set_mouse_buttons().
- Modify the ui::Manager to generate mouse events in any case: using old
  Allegro 4 polling method, or from she::Events.
2014-04-17 22:23:12 -03:00
David Capello
2e9751fef1 Rename base::file/directory_exists() to base::is_file/directory() 2014-04-17 17:12:55 -03:00
David Capello
138d2f1db8 Fix mouse buttons on kMouseDown/UpMessages
This fixes a problem reported on issue #388 where a tool loop couldn't
be canceled pressing left button when it was iniciated with right button.
2014-04-17 17:06:15 -03:00
David Capello
d3591ffdf7 Merge branch 'dev' of git@github.com:aseprite/aseprite.git into dev 2014-04-17 16:24:53 -03:00
David Capello
7989cd81bb Avoid drawing text over widget borders in SkinTheme::drawTextString() 2014-04-17 16:24:04 -03:00
David Capello
330602a78c ColorBar: change default FG/BG colors to white and black (RGB) 2014-04-17 16:22:46 -03:00
David Capello
e63831c87f ColorBar: Show 8 columns by default 2014-04-17 16:22:21 -03:00
David Capello
50369242ee Change the style of scroll bars in ColorBar 2014-04-17 16:21:52 -03:00
David Capello
f9612eb666 Merge branch 'dev' of git@github.com:aseprite/aseprite.git into gfx 2014-04-17 16:13:55 -03:00
David Capello
3dfc07b724 Remove ui::jwidget_set_border() function 2014-04-17 15:55:55 -03:00
David Capello
ff277dccf7 Add Widget::onSetColor() 2014-04-17 15:46:01 -03:00
David Capello
ed5a2d9570 Replace jwidget_noborders() with Widget::noBorderNoChildSpacing() 2014-04-17 15:44:33 -03:00
David Capello
c16ea3e8a2 Use Graphics object in ImageView::onPaint() 2014-04-17 15:27:45 -03:00
David Capello
6ca003feb0 Do not show empty tabs area in Tabs widget 2014-04-17 14:47:28 -03:00
David Capello
6ad54689dd PaletteView: Apply jguiscale() to initial m_boxsize 2014-04-17 14:46:23 -03:00
David Capello
defc703208 Fix Splitter::onLoad/SaveLayout() to support jguiscale() changes 2014-04-17 14:44:21 -03:00
David Capello
ab53c81a75 Minor fix in Tabs when close button in each tab is enabled
Anyway the close button doesn't work at this moment.
2014-04-17 14:39:29 -03:00
David Capello
f04bca8553 Fix DropDownButton::m_button style (left-align text and expansive widget) 2014-04-17 14:38:48 -03:00
David Capello
3466d17d27 Drop down button in ColorBar switches (open/close) the PalettePopup 2014-04-17 14:38:21 -03:00
David Capello
9ee1da15db Rename she::NotDisposableSurface to she::NonDisposableSurface 2014-04-17 14:23:43 -03:00
David Capello
6b53e46108 Do not fail if the default palette cannot be loaded 2014-04-17 13:48:33 -03:00
David Capello
a2753fd898 Add missing OVERRIDE modifier to OpenFileCommand member functions 2014-04-17 01:35:31 -03:00
David Capello
c8c8738ef8 Add PalettePopup in ColorBar to load predefined palettes from data/palette/
- Add PalettesLoader helper class to load palettes in background
- Add PaletteListBox widget
- Add PalettePopup widget
2014-04-17 01:35:02 -03:00
David Capello
283d883d37 Add SetPaletteCommand 2014-04-17 01:29:58 -03:00
David Capello
2b7bd3e831 Add base::concurrent_queue: a really simple concurrent queue
- Add base::scoped_unlock
2014-04-17 01:25:09 -03:00
David Capello
a8d39e588a Add raster::Palette::addEntry() and load .gpl files using this addEntry
At the moment the program doesn't support palettes with less than 256
colors. But at the future the idea is to load the number of colors that
the palette says.
2014-04-17 01:20:46 -03:00
David Capello
50a10a9056 Add filename to raster::Palette (this will be useful to know the original location of a palette) 2014-04-17 01:19:22 -03:00
David Capello
811a530013 base::open_folder: add support to open a folder/directory
Before this we were capable to open/locate a file inside a folder.
2014-04-17 01:18:24 -03:00
David Capello
ad4e08c8f5 Fix issue 98: The mini editor blacks out part of the screen when viewing an animation 2014-04-13 22:57:59 -03:00
David Capello
17adf56337 Fix issue 356: tooltips cause selecting tools require 1 or more extra mouse clicks
This is an old bug in the ui::Manager. We don't need to "free" (release)
the mouse widget when we re-stack windows order (e.g. because the user
clicked the non top-most window).
2014-04-13 22:47:40 -03:00
David Capello
4e7a084ced Remove unnecessary calls in TipWindow 2014-04-13 22:17:36 -03:00
David Capello
b00a187fba Free the right widget in removeChild() (we've to free "child" instead of "this") 2014-04-13 22:17:00 -03:00
David Capello
39e6f2dbe6 Report Manager::setMouse() calls if REPORT_EVENTS is defined 2014-04-13 22:16:20 -03:00
David Capello
0274e13075 Improve REPORT_EVENTS in manager.cpp to show the Widget type (using typeid) 2014-04-13 21:33:09 -03:00
David Capello
c387d330e6 Make hot-region bigger for ToolStrip popup 2014-04-13 21:20:32 -03:00
David Capello
cd464f6694 Fix tooltip flicker on ToolBar 2014-04-13 21:20:06 -03:00
David Capello
31e1b4e387 Close all TipWindow automatically on click 2014-04-13 20:40:44 -03:00
David Capello
47c92fb755 Fix REPORT_EVENTS in manager.cpp 2014-04-13 20:39:59 -03:00
David Capello
c9bda7b329 Implement TipWindow in terms of PopupWindow 2014-04-13 19:35:15 -03:00
David Capello
312aca755e Fix issue 333: Tool Selection Icons Flicker
- Add PopupWindow::ClickBehavior
2014-04-13 19:25:06 -03:00
David Capello
49844267a5 ToolBar: Now we can press-move-release mouse to select tools over different ToolStrips 2014-04-13 17:34:02 -03:00
David Capello
8dc869e1de Move drawing code of PaletteView widget from kPaintMessage to onPaint() 2014-04-13 16:26:00 -03:00
David Capello
b41841ddd2 Move drawing code of EditorView from kPaintMessage to onPaint() 2014-04-13 15:08:24 -03:00
David Capello
a0e403b6a6 Move drawing code of FileList from kPaintMessage to onPaint() 2014-04-13 15:06:30 -03:00
David Capello
f964b020dd Don't hide the MiniEditorWindow automatically if zoom is 1:1
As now the mini editor has an animation preview, it makes sense to
have the mini editor whatever the current editor zoom is.
2014-04-13 14:29:54 -03:00
David Capello
23292edf0c Move drawing code of ToolBar from kPaintMessage to onPaint() 2014-04-13 14:16:29 -03:00
David Capello
e310ef1428 Change StatusBar colors 2014-04-13 13:51:28 -03:00
David Capello
44c9bb520d Fix borders in ColorBar 2014-04-13 13:40:33 -03:00
David Capello
3313735936 app.cpp: Minor format change 2014-04-12 14:32:45 -03:00
David Capello
6aa4149dec Fix .gpl loader to ignore extra properties in the file 2014-04-12 14:30:19 -03:00
David Capello
1ab782b85d Fix base::trim_string() algorithm for empty input 2014-04-12 14:29:37 -03:00
David Capello
8ae3b3075d Simplify ResourceFinder API 2014-04-12 13:35:55 -03:00
David Capello
852aba87f8 Minor change in src/CMakeLists.txt to see if a unit test needs she library 2014-04-12 12:29:55 -03:00
David Capello
71b7000c8a Update links 2014-04-12 12:28:34 -03:00
David Capello
30af4e2620 Add trial-mode without save functionality 2014-04-10 00:33: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
cb2c094212 Timeline: use mini font for frame numbers 2014-04-02 17:39:19 -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
875301cb82 TimeLine: disable the selected range when a sprite editor is clicked
With this we can avoid confusion in the execution of commands like
Clear, that depending on the enable/disable state of the timeline range
it affects the timeline (clearing the whole range) or the sprite editor
(clearing the selected area). So now, when a sprite editor is clicked
we disable the range in the timeline, it's a way to say "as you clicked
this editor, commands will affect the editor, if you click the timeline
again, commands will affect the timeline".
2014-03-30 01:43:33 -03:00
David Capello
896fb27fd5 Move copy/paste of clipboard text from "ui" to "she" library 2014-03-29 22:12:01 -03:00
David Capello
c1e26d0ac0 Fix image conversion from Indexed to Indexed mapping colors (related to issue #267 and #195) 2014-03-29 21:31:27 -03:00
David Capello
6262366e91 Fix copy & paste from Indexed to RGB (use the clipboard palette) 2014-03-29 20:55:40 -03:00
David Capello
78ce233756 Fix header of files distributed under the terms of the MIT license 2014-03-29 20:08:05 -03:00
David Capello
f4b2b47a2c Add #pragma once 2014-03-29 19:40:17 -03:00
David Capello
6ed35b733c FileSelector: fix combobox behavior as now ComboBox::onChange() event is generated when the combobox is open 2014-03-29 18:42:17 -03:00
David Capello
7e593e92e1 FileSelector: move navigatin_locked as a member variable 2014-03-29 18:00:19 -03:00
David Capello
a2a4eaae91 FileSelector: fix auto-complete to avoid modifying letter case of user-typed text (issue #247) 2014-03-29 17:26:07 -03:00
David Capello
e777729928 FileSelector: select the whole filename when an item is selected in the list 2014-03-29 17:21:13 -03:00
David Capello
7253fa59c5 Fix combobox widget: fire Change signal when the combobox is selected with the keyboard 2014-03-29 17:17:06 -03:00
David Capello
44d3e228fd Add missing OVERRIDE modifier to Command::clone() overrides
It fixes some invalid clone() overrides without const modifier.
2014-03-29 17:08:40 -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
395be62b03 Fix issue #310 - crash on export sprite sheet
The timeline wasn't being added as a Document observer, so it wasn't
getting notifications about layers modifications. In this way the timeline
wasn't able to update its m_layers[] internal field and was accessing to
removed layers/invalid memory.
2014-03-29 16:31:39 -03:00
David Capello
f3bfae7ad5 Fix issue 353: don't show context bar when a new view is activated
Now we have three modes: normal mode (everything is visible), the first
intermediate mode (context bar+sprite editor+timeline), and advanced mode
(sprite editor only).
2014-03-21 23:29:01 -03:00
David Capello
0caf41c5fd Fix compilation warning in cmd_remove_layer.cpp 2014-03-21 23:00:31 -03:00
David Capello
139ecb5604 Fix ReplaceInkProcessing for indexed mode when opacity=255 2014-03-21 22:52:54 -03:00
David Capello
b7ff1d990d "Put alpha" ink behaves as default ink in indexed mode 2014-03-21 22:32:30 -03:00
David Capello
04f3c522ba Replace jwidget_get_text_length/height with Widget::getTextWidth/Height
Renamed Widget::getTextSize to Widget::getTextLength as now getTextSize
returns a gfx::Size() (not the strlen() of the text)
2014-03-21 19:45:35 -03:00
David Capello
04a0845a62 SkinTheme: paint windows using styles 2014-03-21 00:28:01 -03:00
David Capello
5f4f1ff029 Add README.md to src/modules/ 2014-03-20 07:31:34 -03:00
David Capello
1212906d5a Move drop files event to she library 2014-03-20 07:31:19 -03:00
David Capello
be6b98995e Add she::EventQueue to she::Display to get events from she library 2014-03-20 00:01:00 -03:00
David Capello
aa27c0d68a Add dummy src/iff/ directory, this will be the module to load/save docs 2014-03-16 21:58:12 -03:00
David Capello
fabb58e0ea Fix crash in "go to" commands, don't access to null layer 2014-03-16 21:56:18 -03:00
David Capello
c4605ad513 Enable "remove layer" command to remove all layers
We can remove all layers anyway from timeline selecting a range of layers.
2014-03-16 19:26:03 -03:00
David Capello
f0802ed766 Trace unknown scancodes in allegro/src/keyboard.c 2014-03-16 19:24:49 -03:00
David Capello
72036f417c Minor change in Editor::drawMaskSafe 2014-03-12 20:40:49 -03:00
David Capello
eb7016bede Fix crash in Editor::drawOneSpriteUnclippedRect() (issue 361)
We've to catch std::bad_alloc exceptions.
2014-03-12 19:35:26 -03:00
David Capello
2a70e750cd Add a basic model layer (doc-lib) 2014-03-12 19:25:09 -03:00
David Capello
15f55c045c wddlock.c: Don't use _al_wd_dirty_lines if it's null
Related to issue 359: Program exits unexpectently after minimizing
and maximizing too fast.

I should find the cause of _al_wd_dirty_lines = NULL, but I wasn't able
to reproduce this bug, so at the moment this is the best I can do to avoid
a crash. (I suppose that it's related to a temporary invalid state because
thread sync issues when the screen/window changes its size.)
2014-03-08 21:34:48 -03:00
David Capello
45f0166508 Fix issue 366: Crash (uncaught exception) on closing application 2014-03-08 21:15:48 -03:00
David Capello
30e26e2a3a Select correct ink type in InkTypeField 2014-03-08 21:00:14 -03:00
David Capello
d780e90784 Fix issue 367: Put alpha drawing mode isn't working 2014-03-08 20:37:43 -03:00
David Capello
f107dd3cbc Fix issue 352: Context Bar Eats Hotkey Input
Avoid capturing keyboard focus in context bar widgets.
2014-03-08 20:31:55 -03:00
David Capello
10ae3a9d28 Fix editor drawing code (issue 355, editor decorators weren't visible outside sprite bounds) 2014-03-03 00:09:14 -03:00
David Capello
1b86d613bf Fix issue 360: Cannot save gif files
* SaveFile and SaveFileAs commands ask for removing read-only attribute
* Fixed base::open_file_descriptor_with_exception() to create new files
* Added internal base::Win32Exception
* Added unit tests for the creation of file descriptors
* Added base::delete_file, has_readonly_attr, remove_readonly_attr functions
2014-03-02 20:47:34 -03:00
David Capello
6cfcdc23e1 Fix bug in ColorPicker::pickColor() getting colors outside the image bounds 2014-03-02 20:07:11 -03:00
David Capello
77cd0e9cc6 Fix a bug with invalid m_ptr in image iterators when we merge down layers (fix issue 358)
The ImageIteratorT implementation was simplified to avoid invalid m_ptrs.
2014-03-02 17:02:03 -03:00
David Capello
316223cee9 Save [Options]/CheckedBgZoom as bool value 2014-03-01 18:53:00 -03:00
David Capello
1d7b51d8f9 Disable inks as they are confusing and shading mode is not done yet 2014-02-24 08:53:46 -03:00
David Capello
c558d664e8 Don't use C++11 enum class style yet 2014-02-24 08:31:02 -03:00
David Capello
d72a7a4dee Fix compilations errors on gcc 2014-02-24 08:30:43 -03:00
David Capello
3b23184c15 Fix compilation error in ui/clipboard_none.h 2014-02-24 08:23:04 -03:00
David Capello
4b88e90dc6 Fix file_handle.cpp compilation error on Unix-like systems 2014-02-24 08:20:42 -03:00
David Capello
43b2be4f0d Fix issue 347: Eyedropper tool changes in gui.xml (pick_fg ink) not working 2014-02-24 08:08:34 -03:00
David Capello
f2bdf38cc6 Fix bug loading/saving .gif files with Unicode file names 2014-02-17 21:43:20 -03:00
David Capello
2462767aac Fix issue 337: Vertical flip and Horizontal flips functions affect more than selected area 2014-02-17 00:41:28 -03:00
David Capello
3b8926b7d1 Remove SnapBehavior::SnapInRightBottom which is confusing (fix issue 343) 2014-02-17 00:00:06 -03:00
David Capello
3cbf3e122f Now you can press a mouse button in a ComboBoxEntry and drag the mouse to the ComboBoxListBox (issue 339) 2014-02-08 20:09:42 -03:00
David Capello
7251f4b70a Now you can press a mouse button in a IntEntry and drag the mouse to the slider (issue 339) 2014-02-08 19:39:36 -03:00
David Capello
bb32f1fbf2 slider.cpp: Remove commented code 2014-02-08 19:26:13 -03:00
David Capello
7eb41c73e9 IntEntry: select all text when the value is changed with the slider 2014-02-08 18:58:28 -03:00
David Capello
721734d26c Don't scroll Entry text if it isn't needed 2014-02-08 18:46:27 -03:00
David Capello
f954556683 Fix crash in Entry::getCaretFromMouse() 2014-02-08 18:31:15 -03:00
David Capello
cc08a054ad Minor fix for timeline header of frames 2014-02-08 17:56:36 -03:00
David Capello
aa9eec2cfd Fix issue 341: cannot scroll Timeline with space bar 2014-02-08 17:40:26 -03:00
David Capello
61c5b0dbb6 Move config.h to src/ directory 2014-02-08 00:56:20 -03:00
David Capello
51f70a170a Move code to handle Windows clipboard (text) to ui/clipboard_win.h 2014-02-08 00:41:16 -03:00
David Capello
e082cd96f1 Make ScreenScale option configurable through UI 2014-02-08 00:19:20 -03:00
David Capello
cff08af639 Fix UISettingsImpl::setBgColor() so right click with eye-dropper set background color 2014-02-06 21:17:47 -03:00
David Capello
d9d761c596 Fix issue 338: Double Clicking Timeline While Holding Control Crashes the Program 2014-02-06 20:40:10 -03:00
David Capello
0480de4388 Add live preview to tiled mode
- Removed draw_emptyset_symbol() function
- Added DocumentSettingsObserver
- Moved Editor's painting code from onProcessMessage to onPaint
2014-02-06 20:22:52 -03:00
David Capello
9b2f5399e9 Add ui::Graphics::fillRegion() 2014-02-06 20:01:32 -03:00
David Capello
9050861d78 Add ui::Widget::getGraphics() and GraphicsPtr 2014-02-06 20:00:59 -03:00
David Capello
936b741f90 Stop propagation of keyboard messages if a child use it
This fix a new bug with the new EditorView's scroll-bars. As 1,2,3,4,5,6
keys change the zoom, they will change the viewport size, and scroll-bars
will be removed/added. We cannot continue iterating the View::m_children
collection after m_children is modified (scroll-bars are removed/added).
2014-02-03 00:22:24 -03:00
David Capello
d3c72bedf2 Fix issue 309: Program crashes immediately after setting ScreenScale to 1
Avoid double destroy_bitmap() call.
2014-02-03 00:09:42 -03:00
David Capello
97d1acc036 Fix issue 313: Canvas does not reflect the change of a layer order 2014-02-02 23:57:30 -03:00
David Capello
c3a03565fb Fix issue 314 (crash): We were adding an image in the sprite's stock with a shared ImageBuffer 2014-02-02 23:10:09 -03:00
David Capello
858d7ff1b3 Add one assert more in ImageIteratorT() ctor 2014-02-02 23:07:54 -03:00
David Capello
20393c8aaa Fix bug with empty ContextBar when Ctrl+W is used to close a sprite and then a new sprite is created
This happens because Ctrl key activates the Hand/Move quick-tool, so the
ContextBar is updated to shows controls for this tool (an empty context
bar at the moment). Then, as Ctrl+W is pressed, the document is closed,
(we lost the Editor), and we willn't receive a
ContextBar::onCurrentToolChange() event (which should be generated by
releasing Ctrl key).
2014-02-02 21:22:50 -03:00
David Capello
78e5ab356a Don't show ContextBar when the program starts 2014-02-02 21:17:48 -03:00
David Capello
44c6a9d91a Fix bug where ContextBar was completely hidden 2014-02-02 21:07:12 -03:00
David Capello
dd2839a49a Add app::StartView (work-in-progress) 2014-02-02 20:55:32 -03:00
David Capello
0a01828ffe Don't eat all keystrokes on ui::TextBox::onProcessMessage() 2014-02-02 20:13:52 -03:00
David Capello
ff166107ed Don't show grid and mask in mini editor 2014-02-02 19:14:27 -03:00
David Capello
0d7f4498b9 Fix const-correctness for ColorPicker::pickColor() member function 2014-02-02 18:49:19 -03:00
David Capello
e671508d85 Change infinite scroll implementation
Remove necessity of jmouse_x(1) and jmouse_y(1) calls.

- Renamed jmouse_control_infinite_scroll() -> ui::control_infinite_scroll()
- Renamed jmouse_set_position() -> ui::set_mouse_position()
- Added ui::get_delta_outside_box()
2014-02-02 18:46:19 -03:00
David Capello
5eb516f0f5 Fix FileList navigation with keyboard (enter key focus the FileList again) 2014-01-30 20:05:05 -03:00
David Capello
c8c099864c Added "Grab Alpha" option to eye dropper (issue 134) 2014-01-28 23:56:44 -03:00
David Capello
beda78e168 Don't use override modifier outside the class definition 2014-01-28 23:46:27 -03:00
David Capello
78fbf07fc7 Fix scroll bar thumb size calculation 2014-01-28 23:46:04 -03:00
David Capello
eee1719109 Implemented issue 260: Scroll-bars for sprite editor 2014-01-26 13:28:11 -03:00
David Capello
c2e50acb0b Fix issue 298: Crash on quit with multiple viewports open 2014-01-26 11:22:23 -03:00
David Capello
5ccae8c0bb Remove some labels from ContextBar, modify tooltips look, and use mini font 2014-01-26 08:40:16 -03:00
David Capello
4e6320b03c Add setup_mini_font 2014-01-26 08:39:33 -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
2d7db879a3 ContextBar: Move m_freehandBox to the last position to improve context bar for selection tools 2014-01-25 16:37:38 -03:00
David Capello
1554875618 Add pixel-perfect drawing mode for freehand tools (issue 315)
* Added new app::tools::IntertwineAsPixelPerfect intertwiner
* Added app::tools::FreehandAlgorithm enum
* Added app::tools::WellKnownIntertwiners constants
2014-01-25 16:26:49 -03:00
David Capello
f19aae9232 Fix UISettingsImpl/UIPenSettingsImpl::removeObserver() functions 2014-01-25 16:13:44 -03:00
David Capello
ebc9fa55b1 MSVC: Add support for Windows XP platform 2014-01-05 22:37:53 -03:00
David Capello
5bbe6c6086 Fix compilations problems in g++ 4.2.1 (Mac OS X) 2014-01-05 16:43:39 -03:00
David Capello
2a2c668e4f Fix operator+(StatefulStyle,States) operator 2014-01-05 16:34:05 -03:00
David Capello
7b5f58aff4 Fix gcc compilation error (using undefined PointT class) 2014-01-05 16:15:37 -03:00
David Capello
6bef259060 Fix gcc compilation error in resize_image_unittest (we cannot use C++11 enums yet) 2014-01-05 16:15:10 -03:00
David Capello
656a1bef2a Disable ResizeImage BilinearInterpRGBType test 2014-01-05 16:13:53 -03:00
David Capello
6197054a3c Add base::to/from_utf8 impl for Unix-like platforms 2014-01-05 15:33:09 -03:00
David Capello
0fa2842e40 Fix bug in fixup_image_transparent_colors(): reading pixels out of bounds 2013-12-29 21:19:32 -03:00
David Capello
f8e8657093 Move kPaintMessage code to onPaint() event for some widgets
The affected widgets are: ColorBar::ScrollableView, ColorButton, and
StatusBar.

* Added Graphics::drawLine()
* Moved rectgrid and draw_color to modules/gfx.cpp
2013-12-29 21:12:23 -03:00
David Capello
66f357098c src/app/modules/gfx.cpp: Remove deprecated RectTracker stuff 2013-12-29 20:16:31 -03:00
David Capello
fe552f60de Temporal fix for issue 299: Don't allow moving the selection from other editor than the current one 2013-12-29 19:53:28 -03:00
David Capello
fc58c24da2 allegro/src/keyboard.c: Avoid accessing out of range items in key/_key arrays 2013-12-29 19:52:21 -03:00
David Capello
ab42d38947 Merge pull request #11 from DocHoncho/issue-295-dev
Re-implement nearest-neighbor interpolation
2013-12-29 12:28:39 -08:00
David Capello
02597dcdec Add RotSprite algorithm for PixelsMovement (issue 121)
* Added app::RotationAlgorithm enum.
* Added app::ISelectionSettings::get/setRotationAlgorithm.
* Added app::SelectionSettingsObserver::onSetRotationAlgorithm.
* Added raster::image_rotsprite() function.
* Added ContextBar::RotAlgorithmField class to select the rotation algorithm.
* Now the mask isn't updated constantly on PixelsMovement::moveImage8),
  in this way when the user release the mouse button is when we recalculate
  the mask (to get better performance when the user is scaling/rotating
  the image).
2013-12-29 17:11:56 -03:00
Joel Madigan
9d281793c8 Re-implement nearest-neighbor interpolation
Fix for issue 295, there was, what amounts to an off by one error in the
original code, which was causing the problem in issue 295.

This error was probably not very noticable in larger images, but as
pointed out by the bug report smaller images may contain more distortion
than necessary.

Wasn't entirely sure how to correct the original code, so replaced it with
entirely new code.

Also added unit test for resize methods, however the bilinear test only
checks using RGB, and not the other ImageTrait types.
2013-12-25 20:31:02 -05:00
David Capello
12a46f5ca3 Fix PutAlpha ink processing 2013-12-23 00:10:19 -03:00
David Capello
02cb132aa3 Timeline: ask for moving state to check if the user is drag-and-dropping cels 2013-12-23 00:04:38 -03:00
David Capello
6695d15c88 Fix intertwiners problems
Pencil with selection ink wasn't working right. Points must be joined
from 0 to 1, from 1 to 2, etc. instead of 0 to 1, 2 to 3, etc.
2013-12-23 00:03:49 -03:00
David Capello
400a2c1993 Timeline: Add support to delete several cels at once 2013-12-22 18:52:25 -03:00
David Capello
ca7f6a055f Avoid negative values for Timeline::m_separator_x (so the user can expand it again) 2013-12-22 16:35:44 -03:00
David Capello
076be1f22f Timeline: fix problem setting the duration of a frame range 2013-12-22 16:30:04 -03:00
David Capello
b31f568488 Timeline: show frame/layer/cel properties with double-click 2013-12-22 16:22:57 -03:00
David Capello
7114b1b769 Timeline: add status bar text when we hover different elements 2013-12-22 12:51:15 -03:00
David Capello
d6533d8a3f StandbyState::onUpdateStatusBar(): show frame duration 2013-12-22 12:28:07 -03:00
David Capello
c3e583f927 Fix some compilations problems in MinGW
Anyway without DirectX header files (ddraw.h specifically) we cannot
compile Allegro source code with MinGW.
2013-12-22 12:20:53 -03:00
David Capello
85523ba63a Add ability to change the properties of several frames (a range of frames) at once 2013-12-22 12:19:03 -03:00
David Capello
9650e1df27 Timeline: Esc key deselect the selected range of frames/layers 2013-12-22 12:17:07 -03:00
David Capello
b4d9e3c9ca Timeline: Add button and handles to configure onionskin range 2013-12-18 00:01:55 -03:00
David Capello
f467628407 Timeline: Redraw all document views when a layer visibility is modified 2013-12-15 21:14:24 -03:00
David Capello
eabb65be50 Timeline: Add support to move several layers 2013-12-15 21:07:42 -03:00
David Capello
cb11fb3458 Add support to remove several layers & frames at once 2013-12-15 20:21:31 -03:00
David Capello
ccb24cad35 Timeline: fix minor details in padding drawing code 2013-12-15 17:49:46 -03:00
David Capello
9e138c263f Fix bugs using NULL as text in widgets constructors 2013-12-15 17:42:33 -03:00
David Capello
9aac8ad6d4 Timeline: fix scroll issues redrawing the whole widget 2013-12-15 17:30:19 -03:00
David Capello
792cbd9d35 Timeline: Add proper clip to frames header and cels area 2013-12-15 17:26:29 -03:00
David Capello
ad6f18c11c Update the timeline after drawing in the sprite editor (after DrawingState) 2013-12-15 16:51:30 -03:00
David Capello
afc83ec09a Do not reset scroll each time we click a sprite 2013-12-15 16:49:21 -03:00
David Capello
560270dbef Timeline: clip and draw only necessary parts 2013-12-15 16:49:03 -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
d5dbf72fca Fix license in some files of base library 2013-12-15 12:48:37 -03:00
David Capello
d96c5ff1e5 Minor changes (code format) 2013-12-15 12:37:30 -03:00
David Capello
7b09aefe6a Fix bug mixing image buffers in ExpandCelCanvas for new cels
Bug introduced from commit 48864b440b
2013-12-15 10:31:25 -03:00
David Capello
bcab165700 Timeline: improve look & feel of range selections 2013-12-15 09:42:05 -03:00
David Capello
6b7625267d Remove layers button from StatusBar widget 2013-12-11 19:35:03 -03:00
David Capello
1f0d1be396 Rename app::SelectionSettings to app::UISelectionSettingsImpl
The class UISelectionSettingsImpl is the implementation
of ISelectionSettingsImpl so it doesn't need to be available from
ui_settings_impl.h. Also we can use anonymous namespaces to put classes
that are used only inside ui_settings_impl.cpp.
2013-12-11 19:19:27 -03:00
David Capello
b5ea9fd7e7 Merge branch 'timeline' into dev 2013-12-11 01:41:48 -03:00
David Capello
773333e264 Timeline: Add multiple frames selection 2013-12-11 01:40:31 -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
Joel Madigan
3ce805f63d Moved Transparent Color button to ContextBar
Implemented SelectionSettings class

Transparent Color button for moving pixels moved from status bar to
context bar.  Current Transparent Color stored by new SelectionSettings
class, retrievable from ISettings.

Also implemented Observer classes for existing Settings interfaces for
future use.

StatusBarObserver interface and supporting code removed from StatusBar.
2013-12-10 12:44:00 -05:00
David Capello
11335fd5f3 Improve the generation of css::Query instances (see Sheet::query() member function) 2013-12-09 23:07:48 -03:00
David Capello
20fb1317a3 Fix bug in Graphics::drawStringAlgorithm() painting invalid background color 2013-12-09 22:58:07 -03:00
David Capello
40fd251c39 Add support for vertical text alignment in Graphics::drawStringAlgorithm() 2013-12-09 22:57:43 -03:00
David Capello
4218dd852d Merge branch 'dev' into timeline 2013-12-08 20:39:01 -03:00
David Capello
f531f6d0d0 Simple implementation of issue #17 - Export animation to JSON/sprite sheet files
This is a good start point. From here we can add more formats and options
(XML, custom formats, templates, etc.), rotated sprites, trim, etc.)
2013-12-08 20:19:32 -03:00
David Capello
d77efb602e Add DocumentApi::undoEnabled()
Now we can disable the undo information in DocumentApi() passing
a NULL undoers collection on its ctor.
2013-12-08 20:07:02 -03:00
David Capello
e0a28c1d46 Minor refactor in skin properties
- Add get_skin_property(ui::Widget*) function to avoid duplicating code
  to create a SkinProperty.
- A SkinSliderProperty is not a SkinProperty: now it has its own name.
2013-12-05 01:19:46 -03:00
David Capello
8e81fb808d Add css library
This is a base library that will be used by SkinTheme to draw parts
with CSS styles (or something similar).
2013-12-03 19:31:36 -03:00
David Capello
61d5693727 Merge branch 'dev' of git@github.com:dacap/aseprite.git into dev 2013-12-01 22:09:11 -03:00
David Capello
2eb84124d0 Merge pull request #10 from DocHoncho/int-entry-fix
Tweaked IntEntry behavior - Fix problem selecting the whole text each time a key is pressed and the mouse is over the IntEntry widget
2013-12-01 17:08:02 -08:00
Joel Madigan
838382791e Tweaked IntEntry behavior
Changed behavior of IntEntry to stop it from continously selecting all
text as long as the mouse is over the input box.  It appears that
something continues to send kMouseEnterMessage messages while use is
typing, even if the mouse is still.  This caused the IntEntry select-all
multiple times and as the user typed would replace what they had already
written.

Also force value to be set within min >= value >= max when focus is lost.
This will get rid of bad values from the entry, such as 10q goes to 10,
40000 goes to 255, etc.
2013-11-30 18:36:22 -05:00
David Capello
3a2ef4644e Move Manager::getDefault() to .h so it can be inlined 2013-11-30 20:02:45 -03:00
David Capello
8678e3b21b Mac OS X fix: ALLEGRO_HAVE_STDINT_H is already defined in alplatf.h 2013-11-25 10:44:20 -03:00
David Capello
06e0e5c8b3 Add missing inline modifier for ImageImpl<>::clear() specializations 2013-11-25 10:42:38 -03:00
David Capello
83ba85ff09 Fix get_app_path() impl for Linux and Mac OS X 2013-11-25 10:42:08 -03:00
David Capello
866c770d89 Add missing typenames in ImageImpl 2013-11-25 10:22:29 -03:00
Joel Madigan
dabcad1807 Add string::c_str() to several functions.
There were a number of places where a std::string was being used in a function calls that expected a c string.  These instances were trivally fixed by adding a call to string::c_str().

Note, I'm not sure if this is a GCC specific issue, however even if it is a case of MSVC simply letting these usages slide it can't hurt to be explicit.
2013-11-24 01:35:55 -05:00
David Capello
86dab97cac Fix for GCC in string.h 2013-11-23 19:01:28 -03:00
David Capello
033aad9d28 Fix Unicode characters encoding (we've to use utf-8) in Color::toHumanReadableString() and BrushAngleField() 2013-11-23 18:01:42 -03:00
David Capello
ad0b28bd63 Change Window() ctor to avoid ambiguity (DesktopWindow, WithoutTitleBar, or WithTitleBar)
In this way we know at the moment of the creation of the window if it
will need the close button.

Issue #280.
https://github.com/aseprite/aseprite/pull/6
2013-11-23 17:47:57 -03:00
David Capello
7dc8e548be Fix issue #280 - Close button doesn't appear in some windows
Thanks to @DocHoncho for the help.
See https://github.com/aseprite/aseprite/pull/6
2013-11-23 17:25:21 -03:00
David Capello
a1f3e290c2 Fix Timeline::updateUsingEditor() as it can be called with editor=NULL
In fact, now it's called with NULL when the program starts
(see commit 517d368f93).
2013-11-23 17:09:31 -03:00
David Capello
88d8235e86 Merge branch 'dev' of git@github.com:dacap/aseprite.git into dev 2013-11-21 00:28:16 -03:00
David Capello
517d368f93 Merge pull request #5 from DocHoncho/fix-285
Fix for issue 285
2013-11-20 19:26:27 -08:00
Joel Madigan
a13603a0aa Added call to UIContext::setActiveView(NULL) to force window title to have proper default value 2013-11-20 00:12:18 -05:00
Joel Madigan
422f1135d3 Fix for issue 284, assertion error was being triggered by passing an int to a function expecting type Item*. Looks like it was an oversight in commit b45dcf7 when the dialog was modified to use ui::ListItem 2013-11-19 23:32:11 -05:00
Joel Madigan
85503ec691 Fix for issue 279 2013-11-18 20:23:39 -03:00
David Capello
49cf2bdcf0 Fix issue #277, LoadPalette command can change the default palette 2013-11-15 17:01:28 -03:00
David Capello
ddf4a13490 Add the Palette menu with Load/Save commands 2013-11-15 16:56:50 -03:00
David Capello
f59f6f7d5e Fix bug creating bitmaps with width < 0 in draw_color() function 2013-11-15 15:46:54 -03:00
David Capello
055907d008 Remove thumbnails generation code
At the moment we'll keep the timeline simple (without thumbnails).
2013-11-10 23:11:59 -03:00
David Capello
d39feb063c Add SKIN_PART_NESW(name) macro in skin_parts.h 2013-11-10 23:06:00 -03:00
David Capello
5141079c5f Keep timeline in sync with current editor and after commands are executed 2013-11-10 22:59:25 -03:00
David Capello
28fe226236 Fix bug: Notify Context's observers in Context::onAdd/RemoveDocument 2013-11-10 20:36:15 -03:00
David Capello
c9ab56cf69 Timeline: we've to observe the Context to know if the Document is destroyed
In this way the timeline can stop observing the Document when it's closed.
2013-11-10 20:29:51 -03:00
David Capello
d8fd4736d4 Timeline: smaller row size 2013-11-10 20:16:09 -03:00
David Capello
c681edbc38 Fix Mask::byColor()
Bug introduced in commit e5ba8e0922
2013-11-10 18:42:34 -03:00
David Capello
2173da9fcd Move src/app/dialogs/maskcol.cpp to src/app/commands/cmd_mask_by_color.cpp
Finally src/app/dialogs directory is gone.
2013-11-10 18:34:52 -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
e6450877bb Minor change: Make Splitter::getPosition() inlined 2013-11-10 18:02:20 -03:00
David Capello
60602f78a8 Show an error if we cannot create a ToolLoopImpl
The main issue at the moment is that a std::bad_alloc exception can be
thrown if there isn't enough memory available when the user click the
sprite editor to start drawing.
2013-11-10 16:20:20 -03:00
David Capello
efbb3e52e2 Fix bug where dirty bounds are out of the image bounds 2013-11-10 16:09:46 -03:00
David Capello
13946b310c Improve creation of Dirty() instance (fix issue #239)
Now Dirty() ctor receives the bounds, so we don't need to iterate over
the whole image to find/shrink the modified region.
2013-11-10 15:54:36 -03:00
David Capello
5b8d000171 Improve put/get_pixel_fast() functions to avoid virtual function call 2013-11-10 14:49:06 -03:00
David Capello
48864b440b Add ImageBuffer class
It tries to mitigate issue #239, but it's not a full fix yet. A good
possibility would be to change the internal structure of images, creating
tiles. So we don't need to allocate/copy/clear/etc. huge images in each
step.
2013-11-10 13:26:48 -03:00
David Capello
5db38c4a87 Specialize ImageImpl::clear for Indexed and Bitmap images 2013-11-10 13:20:28 -03:00
David Capello
38c64d5460 Avoid calling Image::getPixelAddress() (virtual function) in several ImageImpl functions 2013-11-10 13:19:49 -03:00
David Capello
01d79ddf9b Merge branch 'dev' of git@github.com:dacap/aseprite.git into dev 2013-11-09 20:00:16 -03:00
David Capello
e5ba8e0922 Encapsulate Image implementation (private members, accessors, iterators, etc.)
- Rename _rgba/_graya to raster::rgba()/graya()
- Add raster::color_t type (alias for uint32_t)
- Rename raster::GfxObj to Object. And GfxObj::getType() to Object::type()
- Move conversion from raster::Image/Palette to Allegro BITMAP/RGB
  to raster/conversion_alleg.h file
- Add raster/color_scales.h
- Rename image_* functions to raster/primitives.h
- Reimplement ink processing with templates instead of macros
2013-11-09 19:59:05 -03:00
David Capello
dbf4d0d490 Replace JRect/jrect struct with gfx::Rect
- Replaced Widget::rc -> Widget::m_bounds private member.
- Added Widget::offsetWidgets() method.
- Removed View::displaceWidgets().
2013-10-26 12:50:55 -03:00
David Capello
7657461162 Merge branch 'dev' of git@github.com:dacap/aseprite.git into dev 2013-10-14 20:06:00 -03:00
David Capello
5b252c30f5 Add support for Unicode file names on Windows
- Fixed issue #46: open .png files with Unicode chars
- Fixed issue #150: ability to uncompress program in folders w/Unicode chars
- Added base::utf8_iterator
- Added base::FileHandle
- Added base::get_app_path()
- Modified ui::KeyMessage::ascii() -> unicodeChar()
- Removed JI_NOTEXT flag
- Added app::XmlDocumentRef class and app::open_xml() function
- Added support for Unicode text exchange with Win32 clipboard
2013-10-14 19:58:11 -03:00
David Capello
092ae7b2d6 Fix warning: Remove AL_CONST modifier from free_config_entries() function 2013-09-30 19:57:49 -03:00
David Capello
251e651cbd Fix ui::Manager::pumpQueue() error when compiling in debug mode 2013-09-28 17:13:17 -03:00
David Capello
5d0c25b0da Modify base::convert_to() undefined implementation
GCC shows divide-by-zero warnings, so it is better in this way.
2013-09-21 20:40:54 -03:00
David Capello
d91b05667b Fix compilation errors detected with gcc 2013-08-20 00:51:37 -03:00
David Capello
cde54f3682 Change BSD license to MIT in sublibraries and fix headers 2013-08-08 21:01:20 -03:00
David Capello
a06faeddac Change README.md to see dependencies between (...) 2013-08-05 22:58:07 -03:00
David Capello
3afd20f6ac Update src/README.md 2013-08-05 22:40:48 -03:00
David Capello
9eebfc5812 Remove dependency of "undo" library with "base" 2013-08-05 22:11:54 -03:00
David Capello
c88f9b172b Refactor: Move app files to src/app subdirectory inside app namespace
- Add HAVE_CONFIG_H wrapper to #include "config.h"
- Removed widgets namespace (it's in app now)
- Move some functions from src/file/file.h to src/base/cfile.h
- Move Vector2d to base library
- Rename MenuItem2 to AppMenuItem
2013-08-05 21:20:19 -03:00
David Capello
5bd57061c6 Merge branch 'dev' of git@github.com:dacap/aseprite.git into dev 2013-07-28 21:17:54 -03:00
David Capello
1614786408 Convert ui::Message union to a class hierarchy
+ Add ui::KeyScancode enum and ui::KeyModifiers flags.
+ Add ui::MouseButtons enum.
2013-07-28 21:17:07 -03:00