97 Commits

Author SHA1 Message Date
David Capello
db4504e816 Refactor laf-os memory handling 2020-07-07 19:06:48 -03:00
David Capello
c8999af6d6 [steam] Avoid crash taking screenshots after Steam client is closed 2020-06-11 14:51:28 -03:00
David Capello
86259a64fc Replace MID() macro with base::clamp() function
In the future we will replace base::clamp() with std::clamp().
2020-04-07 19:47:16 -03:00
David Capello
9461c5d02c Don't allow call Exit command (e.g. Cmd+Q on macOS) when there is a foreground window
The same for drop files, we've disabled dropping files when there is a
foreground window (at least temporarily to avoid strange UI states).
2019-10-29 10:31:12 -03:00
David Capello
d32fd97da5 Replace base::SharedPtr with std::shared_ptr
We can remove our smart pointer (base::SharedPtr) as we're already
using C++11 compilers on all platforms.
2019-08-01 19:16:16 -03:00
David Capello
79795b97a9 Fix hang if we press Cmd-S two or more times quickly to launch File > Save
With this we avoid to unintentional execute two or more times a
command when we are already in a command execution.
2019-06-03 23:02:24 -03:00
David Capello
93fe19d353 Use cancelable async tasks to load/delete backup sessions 2019-05-30 23:17:13 -03:00
David Capello
dd8a49a19c Add option to disable changing the display color profile depending on the current monitor 2019-05-08 10:55:56 -03:00
David Capello
2ffb708be8 Move Manager::invalidateDisplayRegion() to Manager::onInvalidateRegion() 2018-12-03 23:59:42 -03:00
David Capello
6bdde193f3 Don't limit the minimum windows size of the Preview window when we restore its bounds
Fixes https://community.aseprite.org/t/960
2018-11-29 11:44:10 -03:00
David Capello
a38a23e2e5 Add support to drag-and-drop .aseprite-extension files into the main window 2018-11-28 10:30:33 -03:00
David Capello
5cb2d984f0 Rename she -> os 2018-08-09 12:58:43 -03:00
David Capello
f2ed45e795 Replace base::UniquePtr -> std::unique_ptr 2018-08-08 17:27:26 -03:00
David Capello
413603a71a Don't use KeyboardShortcuts singleton for temporal changes in Keyboard Shortcuts dialog
Main changes:

- Improve the "Keyboard Shortcuts" dialog because instead of changing
  global shortcuts/menu keys and rollback everything if we select
  "Cancel", here we make a copy of all shortcuts, modify them in the
  dialog UI, and finally "commit" to the global shortcuts if the user
  confirms the dialog.
- Fix "Reset" button in "Keyboard Shortcuts" dialog for mouse wheel
  customization
2018-07-23 15:15:04 -03:00
David Capello
f33091dbfa Add KeyPtr as std::shared_ptr<Key> 2018-07-17 23:53:08 -03:00
David Capello
b3c89cd110 Rename DocumentView -> DocView 2018-07-14 23:24:49 -03:00
David Capello
9c79ea2b77 Rename app::Document -> Doc 2018-07-07 11:54:44 -03:00
David Capello
511752fea7 New render engine to use bicubic interpolation when zoom < %100 (fix #1671)
This only works with Skia back-end.
2018-06-22 15:41:22 -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
e0a60b6748 Generate the list of command IDs from en.ini file 2017-12-01 15:10:21 -03:00
David Capello
eb3143ce21 Rename CommandsModule to Commands 2017-11-30 12:24:07 -03:00
David Capello
0154a73d36 Add native macOS menus (fix #135)
* This implements the Cmd+H and Cmd+M keys too:
  https://community.aseprite.org/t/279
* Also Cmd+, has more priority on macOS than Cmd+K to open the
  preferences (so macOS menu shows Cmd+,)
2017-09-01 13:32:23 -03:00
David Capello
17df809011 Fix memory leaks/crash when reloading theme several times 2017-08-22 14:54:08 -03:00
David Capello
c9f31bb07e Minor refactor in CustomizedGuiManager
Now Shift+F1 rotates screen/UI scaling in reverse order.
2017-08-16 15:17:11 -03:00
David Capello
4ed302e4b5 Add ENABLE_DEVMODE flag 2017-08-15 15:47:06 -03:00
David Capello
432eedcb97 Support changing theme and UI scaling w/o restart (fix #471) 2017-08-15 10:39:06 -03:00
David Capello
73999c5415 Fix several issues with UI Scaling > 100% (fix #1456) 2017-04-15 08:13:20 -03:00
David Capello
bb4faca1d1 New Style class in "ui" layer to paint widgets (only button at this moment)
This new ui::Style should finally replace the old app::skin::SkinStyle
class. At this moment both implementations are working to avoid an
huge refactor in just one commit.

- Added new ui::Style property in ui::Widget.
- Removed old code to set the button "bevel" (removed
  app::setup_bevels() functions).
- Removed setup_look() function and Left/RightButtonLooks.
- Removed check_button_new() function.
- Removed ui::Theme::paintButton/ComboBoxButton() functions.
2017-02-13 18:34:23 -03:00
David Capello
6c9c0066a0 Replace ui::CurrentTheme with ui::set/get_theme() 2017-02-08 14:50:58 -03:00
David Capello
33d6ffb73b Avoid unused variable warning 2016-11-24 17:52:54 -03:00
David Capello
54da860a00 Minor change in CustomizedGuiManager::onProcessMessage() 2016-11-21 17:59:09 -03:00
David Capello
00099390da Fix several keyboard issues deadling with special characters/dead keys
This change adds support to write text with dead keys, and assign
keyboard shortcuts to special key combinations with Unicode characters
on macOS and Windows.

Fix #1083, close #796
2016-11-17 18:07:00 -03:00
David Capello
1b736aef85 Improve UX when opening file sequences
* Now we can select the specific files that are part of the sequence
* New checkbox do the same for all dropped files (fix #1284)
2016-11-15 18:11:47 -03:00
David Capello
2240742816 Avoid processing the same file two times when it's used to load a sequence
E.g. If we drop three files (1.png, 2.png, and 3.png), and we load 1.png
as a sequence, we don't want to ask for the third file.
2016-11-14 19:44:29 -03:00
David Capello
644b8ff0a4 Add Ctrl+Shift+R on debug mode to recover the active document from active backup session
In this way we can test on each moment how the information is being
saved and will be recovered. We can find bugs with missing or invalid
doc::Object::incrementVersion() calls.
2016-11-07 17:47:53 -03:00
David Capello
68fa996cc6 Move ui_scale option from experimental to general 2016-09-09 09:46:10 -03:00
David Capello
5ecc356a41 Replace GPL license with the new EULA 2016-08-29 13:08:21 -03:00
David Capello
924c2ac86a Use clip library to copy/paste text
In this way we can remove all the code related to handle clipboard text
from she and ui libraries.
2016-04-28 23:26:20 -03:00
David Capello
5f90ef7c9b Add properties in App to access directly to timeline/contextBar/workspace 2016-04-22 13:19:06 -03:00
David Capello
1d7184dd37 Fix problem setting default screen scaling factor on non-Windows platforms 2016-02-29 22:21:59 -03:00
David Capello
30672ba144 Don't reset Screen Scale when the main window cannot be created
Should fix #860
2016-02-23 18:08:25 -03:00
David Capello
9c653ef86e Avoid missing DDE files because the loading dialog box/progress bar is open 2016-02-04 13:07:46 -03:00
David Capello
a6544d92af Improve default window size on Skia/Win port (fix #693) 2015-12-28 18:02:07 -03:00
David Capello
be9b33828d Don't restore the window minimized 2015-12-11 19:46:41 -03:00
David Capello
a088bf46a2 Remember exact window position (e.g. in which monitor it was closed)
It's working on alleg4 port on Windows only.
2015-12-11 19:40:18 -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
78ba213471 Rename ui::Widget::getChildren() -> children()
Extra changes:
* Removed UI_FOREACH_WIDGET(), replaced with range-based for-loops
2015-12-03 19:46:13 -03:00
David Capello
165c7ccca4 Try to initialize the display with GPU acceleration and then without it 2015-10-06 17:04:03 -03:00
David Capello
e4a71b9065 Show she::DisplayCreationException message when she::System::createDisplay() fails 2015-10-01 10:54:47 -03:00
David Capello
53a925e86d Remove SkinParts enum
Now we generate the list of SkinTheme parts from the skin.xml file using
the gen utility.

Several refactors included in SkinTheme class to simplify code.
2015-08-04 19:38:52 -03:00