Commit Graph

322 Commits

Author SHA1 Message Date
David Capello
f854c7acf5 Fix bug #14, don't ask for saving changes when read-only commands are used.
+ Added a new attribute for each undo item (undo::Modification).
+ Each item now modifies or does not modify the document (e.g. selection
  actions do not modify the document).
+ Added an asterisk in tabs when the document is modified.
2011-03-26 19:58:52 -03:00
David Capello
8e5c950df8 Refactored the entire Undo system in several layers.
+ Added "undo" library (undo namespace).
+ Moved UndoHistory to undo namespace.
+ Added Undoer and UndoersCollector interfaces.
+ Converted old UndoStream to UndoersStack class.
+ Added new "undoers" namespace and moved each Undoer implementation
  (classes to undo different actions) to "undoers" directory.
+ Added IO operations to "raster" objects (image, cel, layer, palette,
  mask).
2011-03-26 17:40:55 -03:00
David Capello
69dff9b5d0 Use C99 uint*_t instead of ase_uint*. 2011-03-24 18:36:19 -03:00
David Capello
9182f0f14a Move UndoHistory from raster/ to undo/ directory. 2011-03-24 11:50:00 -03:00
David Capello
44bee62e51 Modify PixelsMovementImpl to avoid write-locking the document
in the whole operation.
2011-03-24 11:37:41 -03:00
David Capello
0b495085cc Move the active mask from Sprite class to Document.
+ Removed masks and paths repositories.
+ Added Document::isMaskVisible and Document::setMaskVisible methods.
2011-03-23 00:06:43 -03:00
David Capello
f08d049ab6 Rename Undoable to UndoTransaction. 2011-03-22 21:22:13 -03:00
David Capello
6e60d3200d Add Document class, to remove app specific properties from Sprite.
+ Moved some properties from Sprite to Document: lock/unlock/mutex,
  filename, isModified flag, undo history, mask boundaries, file
  format options, preferred editor settings, extra cel.
+ A Context now has an active document (instead of an active sprite).
+ Renamed all sprite wrappers to be document wrappers (as the mutex is
  in the Document now).
+ Modifications to SharedPtr<> to be more like C++0x shared_ptr<>.
2011-03-22 21:11:25 -03:00
David Capello
9b32ebdad6 Rename Undo class to UndoHistory. 2011-03-13 17:33:42 -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
e0edf5625f Use Widget::layout() instead of Widget::setBounds(getBounds). 2011-03-08 23:23:13 -03:00
David Capello
bd69a216bb Remove unreferenced local variable warning. 2011-03-08 23:18:18 -03:00
David Capello
bb7d3a0b71 Move jwidget_relayout() to Widget::layout(). 2011-03-08 23:18:04 -03:00
David Capello
47669fe6f1 Add SpriteReader wrapper to lock the sprite when Editor paints it.
+ Fixed critical bugs using "sprite resize" command and drawing
  the current editor (fixed usage of invalid memory pointers).
  It happens because the resize command is executed in a background
  thread, and at the same time the user can cancel or move a progress
  dialog (generating redraw events to the editor).
+ Anyway this change incorporates some other problems with effects
  where they keep locked the sprite in the whole command execution,
  so the effect preview cannot be visualized. This will be fixed with
  a refactor of the entire effect/preview stuff.
2011-03-08 01:25:46 -03:00
David Capello
6319af1676 Fix problems restoring preferred scroll in selected sprite. 2011-03-06 18:23:57 -03:00
David Capello
cea3ade78a Minor changes: comments to C++ style. 2011-03-06 16:55:26 -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
d7458bc78f Add ColorSlidersChangeEvent so ColorSliders::ColorChange signal
can receive the modified channel.
2011-03-03 22:16:54 -03:00
David Capello
bb1151c0ac Rewrite the entire color selector as C++ class.
+ Added ColorSliders widget for RGB, HSV, and Grayscale sliders.
+ Added HexColorEntry to show a color in HTML format.
2011-03-01 22:50:49 -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
95fd6c697c Change SIGNAL_COLORBUTTON_CHANGE to ColorButton::Change signal. 2011-02-20 19:37:42 -03:00
David Capello
716aa05294 Change drawing code of ColorButton from JM_DRAW to onPaint(). 2011-02-20 19:01:34 -03:00
David Capello
dea3962502 Remove deprecated colorviewer widget. 2011-02-20 18:40:16 -03:00
David Capello
ad12af7c8b Refactor the entire view widget to View, Viewport, and ScrollBar C++ classes. 2011-02-20 18:35:21 -03:00
David Capello
e2848f1f55 Add support for vertical-scrolling with mouse wheel in PaletteView widget. 2011-02-19 23:44:17 -03:00
David Capello
9b2cf15e94 Remove COLOR_SIZE macro in palette_view.cpp. 2011-02-19 22:41:09 -03:00
David Capello
e309656737 Add PaletteView::IndexChange signal (to replace SIGNAL_PALETTE_EDITOR_CHANGE). 2011-02-19 22:40:46 -03:00
David Capello
69b7e2f8f7 Change StatusBar::m_progress from JList to std::vector<> type. 2011-02-16 00:03:56 -03:00
David Capello
9e687d84b0 Add shortcut in the tool-tip of ToolBar. 2011-02-15 09:55:44 -03:00
David Capello
82931688ad Fix position of tool tip in tool-bar. 2011-02-15 09:50:53 -03:00
David Capello
9658fc3747 Fix problem painting a new tip window (with alpha) over a dirty (non-validated) area in tool-bar. 2011-02-15 09:50:14 -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
f96d1f7fa3 Move jwidget_init_theme() to Widget::initTheme(). 2011-02-15 09:00:29 -03:00
David Capello
2baa342a65 Remove "j" prefix from some files in gui library. 2011-01-30 19:12:10 -03:00
David Capello
6ef082ad7f Rename PalEdit to PaletteView widget to avoid confusion with the palette editor command. 2011-01-28 09:28:54 -03:00
David Capello
85203205b8 Add PaintEvent and Graphics (future replacement of JM_DRAW message). 2011-01-27 18:38:16 -03:00
David Capello
5a9d991219 Convert jalert to Alert C++ class. 2011-01-27 17:21:33 -03:00
David Capello
f558666056 Move src/gui/jalert.h to src/gui/alert.h. 2011-01-27 00:29:54 -03:00
David Capello
8b67fd0bf3 Convert jgrid widget to C++ Grid class (avoid reallocs, use std::vector for internals instead). 2011-01-26 19:51:52 -03:00
David Capello
d8a3d27c0f Convert jbox widget to Box class. 2011-01-24 19:48:09 -03:00
David Capello
e32d8dc633 Rename src/gui/jview to src/gui/view. 2011-01-24 18:09:54 -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
18db7513a8 Open new sprites in the center of the current sprite. 2011-01-23 21:15:00 -03:00
David Capello
36e605bdf2 Move jmalloc/jfree to base/ library as base_malloc/free (remove new/new0/renew macros). 2011-01-23 19:19:18 -03:00
David Capello
1e88a438eb Rename PopupWindow to PopupFrame. 2011-01-22 11:28:40 -03:00
David Capello
cb6d70521f Replace jwidget_dirty/invalidate and Widget::dirty functions with new Widget::invalidate* member functions. 2011-01-21 19:45:04 -03:00
David Capello
86e145f0ed Remove jwidget_get_parent/manager/parents/children/pick/has_child functions. 2011-01-21 18:54:47 -03:00
David Capello
74b7442ae4 Replace jwidget_get/set_theme with Widget::get/setTheme. 2011-01-21 18:08:25 -03:00
David Capello
e9f7a035b1 Remove jtheme and JTheme types, use Theme class directly.
+ Added CurrentTheme namespace.
+ Rename Theme::regen() to Theme::onRegenerate().
+ ji_regen_theme() is in Theme::regenerate() member function.
2011-01-21 17:50:04 -03:00
David Capello
fc263ddb88 Move SkinneableTheme in src/modules/ directory to SkinTheme in src/. 2011-01-21 17:29:45 -03:00