Commit Graph

24 Commits

Author SHA1 Message Date
David Capello
c42c5e1453 Backport new laf API to main branch of aseprite
Some features from the beta branch of aseprite & laf were backported
to the main branch of aseprite.

Related commits:
- New memory handling (db4504e816)
- New get event with timeout (e6ec13cc31)
- Convert os::NativeCursor to an enum (06a5b4f3ae)
- Adapt code to the new os::Display -> os::Window refactor (5d31314cdb)
- Save/load main window layout correctly and limit to current workarea (d6acb9e20f)
- Redraw window immediately on "live resizing" (d0b39ebade)
2021-07-05 17:51:29 -03:00
David Capello
5cb2d984f0 Rename she -> os 2018-08-09 12:58:43 -03:00
David Capello
8014c828af Add a special dialog for File > Export command
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).
2018-03-15 21:00:54 -03:00
David Capello
ebb7afde8b Add option to change default file format (.aseprite is the new default) 2018-02-23 10:32:02 -03:00
David Capello
dee6ff6c7e Refactor: Use new base::paths type for list of filenames/extensions 2018-02-21 11:06:58 -03:00
David Capello
5811bba2b1 Several changes to the native file selector on all platforms
* 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
2017-12-21 16:35:12 -03:00
David Capello
1350d6d7f7 Add possibility to open multiple files at once (fix #1163) 2017-04-08 00:06:25 -03:00
David Capello
5ecc356a41 Replace GPL license with the new EULA 2016-08-29 13:08:21 -03:00
David Capello
1aaeacc460 Refactor several "getNoun()" getters to "noun()"
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
2015-12-04 14:39:04 -03:00
David Capello
e0fea708f8 Add option to resize the final output of "Save Copy As" command (fix #685) 2015-06-03 16:34:27 -03:00
David Capello
3c95bd57ee Unify app::FileSelector::Type with app::FileSelectorType 2015-06-03 12:21:08 -03:00
David Capello
9723d1b6ec Now the file type combobox in FileSelector acts like a filter (fix #643) 2015-05-28 18:59:12 -03:00
David Capello
744fc67b28 Implement native open/save dialog on OS X (issue #321)
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.
2015-05-28 16:29:01 -03:00
David Capello
7826e38382 Change she::FileDialog::show() argument from DisplayHandle to Display
This is because we could make use of Display member functions inside the
FileDialog::show() implementation.
2015-05-28 16:13:07 -03:00
David Capello
2a5c93e333 Move "do you want to overwrite this file?" question inside the FileSelector
Native file dialogs ask this same question too (also they check for
read-only attribute).
2015-05-28 16:11:06 -03:00
David Capello
3f7e0b920a Dispose the native file selector regardless its return code 2015-05-21 10:52:58 -03:00
David Capello
f6be0c3be6 Replace ISettings with Preferences
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
2015-05-18 16:53:25 -03:00
David Capello
b8ed98bd8b Add native file open/save dialog (only win32 at the moment, issue #321) 2015-03-02 16:07:35 -03:00
David Capello
2c6067f7e4 Update license of app/ module to GPLv2 2015-02-12 12:16:25 -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
cde54f3682 Change BSD license to MIT in sublibraries and fix headers 2013-08-08 21:01:20 -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
9b8e87da10 Update copyright year to 2013 2013-01-27 12:13:13 -03:00
David Capello
02e8c66da4 Remove signals and hooks in GUI code.
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.
2012-06-15 23:37:59 -03:00