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.)
This is the first step to have settings per document. Currently
IDocumentSettings is implemented as a global instance so all documents
share the configuration (as it was already working). But in the future
a project will be able to provide an alternative implementation to save
the configuration of each document in the same project.
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.
+ 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<>.
+ 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.
+ Add ButtonBase::Click signal.
+ Button does not close the window by default (you have to configure this action manually when Click signal is triggered).
+ Add "closewindow" attribute to <button> widget in XML files.
+ Move "bevels" to SkinProperty.
+ Convert colorbutton widget in ColorButton C++ class.
Added Palette* parameter to image_to_allegro() function and Image::to_allegro().
Removed orig_rgb_map.
Removed rgb_map usage (the Allegro global variable).