With this change we have moved all the file selector customization to
a new special FileExportWindow. So the file selector is used only to
select the output file (no more FileSelectorDelegate = now we can use
the native file selector for File > Export).
* Added she::FileDialog::setType() to select the different kind of
dialog (open one file, multiple files, save one file, open a folder)
* Added capacity to select folders with she::FileDialog
* Added she::CommonFileDialog so all native dialogs share common code
* Windows:
* Reimplemented using the IFileDialog COM interface introduced in
Windows Vista (this one supports choosing folders when
FOS_PICKFOLDERS flags is used)
* Added she::ComPtr<> utility class to Windows port (it might be
useful in laf::base in a future, or we might use the Microsoft
CComPtr or _com_ptr_t types in a future)
* GTK:
* Reimplemented to use gdk and gtk directly instead of using gtkmm
library
* Now it's centered on the given she::Display (instead of being
centered on the screen)
* Default location is the desktop instead of documents (this should
be configurable in a future "more generic" solution)
* Removed WITH_DEPRECATED_GLIB_SUPPORT and fixed compilation with GTK
file selector
This is a work-in-progress to create a consistent API and finally
separate the whole Aseprite base/gfx/ui libs into a reusable C++ library.
Classes:
app::IFileItem, app::AppMenuItem, app::skin::SkinPart,
gfx::Rect, gfx::Border, she::FileDialog,
ui::IButtonIcon, ui::Graphics, ui::Overlay, ui::Widget,
ui::ScrollableViewDelegate, and UI events
There were some problems detecting the release of Cmd+O keys after
opening a NSSavePanel. We fixed those problems calling
osx_keyboard_focused/modifiers(0) when we receive a windowDidResignKey
notification.
Changes:
* Move FreehandAlgorithm/InkType/RotationAlgorithm/SelectionMode to
app::tools namespace
* Removed ISettings, IToolSettings, IBrushSettings, ISelectionSettings,
and IColorSwatchesStore (and implementations from UISettingsImpl)
* Added app::tools::PreferenceGlue to do some adjustments that
UIToolSettingsImpl was doing
* Remove signals from App related to brush size/angle changes, and current
tool change (there events can be observed directly from Preferences)
* Remove ColorBar::FgColor/BgColor, these options can be observed from
Preferences::colorBar.fg/bgColor
- 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
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.