34 Commits

Author SHA1 Message Date
David Capello
a46a087c51 Handle arrow keys/delete/backspace/etc. correctly on IntEntry (fix #1339) 2016-12-02 16:47:05 -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
a58cbfbc1c Enable eraser support for Wacom tablets on Skia/Win back-end
Related to #610
2016-04-20 22:33:10 -03:00
David Capello
d467d71fa5 Rename PopupWindow enums 2015-12-05 15:56:32 -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
cdd955441a Rename PreferredSize -> SizeHint 2015-12-03 21:50:05 -03:00
David Capello
bd1a1ffafb Add support to transport key modifiers from she events to UI messages
It’s better if we use the original key modifiers from she::Events (given
by Cocoa or Win32 APIs) instead of asking for the current state of
the modifier when the ui::Message is created (which can be different
from the original value).

This commit adds support to transport the modifiers, but it is not
using the original key modifiers yet.
2015-10-14 16:42:49 -03:00
David Capello
a06e01ff7e Rename ui::Entry::EntryChange to ui::Entry::Change 2015-09-22 16:22:47 -03:00
David Capello
4dc6da286e Add zoom slider in StatusBar (issue #420) 2015-08-14 19:46:48 -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
f3974002d5 Fix int <-> double <-> float casts
It looks like allegro includes several implicit conversions between
float and double.
2015-02-14 22:37:56 -03:00
David Capello
ca9df1a05e Rename ui::jguiscale() to ui::guiscale()
* Change Theme::guiscale member to Theme::m_guiscale
2014-11-25 22:33:45 -03:00
David Capello
bde2ddbe83 Remove ji_screen and ji_clock global variables
- Replace JI_SCREEN_W/H with ui::display_w/h()
- Remove GfxMode class
- Move drawing code of ColorCurveEditor widget to onPaint()
- Rename ji_clock -> ui::clock()
2014-08-31 14:17:49 -03:00
David Capello
4b7bf5b835 Merge she::Color and ui::Color types in gfx::Color 2014-06-28 16:10:39 -03:00
David Capello
ec61c6b972 Add support for horizontal mouse wheel and scroll bar notifications (better support for trackpads)
WM_HSCROLL/WM_VSCROLL messages are used by some trackpads drivers to
notify about horizontal/vertical pan gestures.
2014-04-28 22:02:56 -03:00
David Capello
a34d181530 Add Widget::is/setTransparent property to paint a widget merged with its background
This fixes problems with tooltips, toolbar popups and context bar popups.
It fixes issue #297 (undo notifications rendering problems).
2014-04-19 18:51:42 -03:00
David Capello
dd2ce20e25 Win32: Add support to convert mouse messages (WM_) to ui::Messages (using she::Events)
On Windows, instead of polling Allegro mouse position/buttons we can use
the mouse messages (WM_*) directly to generate she::Events. Those events
are received by the ui::Manager and converted to ui::Messages.
Maybe this is a possible fix for issue #133 (Wacom tablets don't work
properly).

Changes:
- Don't use jmouse_z() directly (new ui::MouseMessage::wheelDelta() member)
- Add ui::_internal_set_mouse_position() to change the jmouse_x/y(0)
  from the new mouse position received in she::Events. The same for
  ui::_internal_set_mouse_buttons().
- Modify the ui::Manager to generate mouse events in any case: using old
  Allegro 4 polling method, or from she::Events.
2014-04-17 22:23:12 -03:00
David Capello
312aca755e Fix issue 333: Tool Selection Icons Flicker
- Add PopupWindow::ClickBehavior
2014-04-13 19:25:06 -03:00
David Capello
78ce233756 Fix header of files distributed under the terms of the MIT license 2014-03-29 20:08:05 -03:00
David Capello
f107dd3cbc Fix issue 352: Context Bar Eats Hotkey Input
Avoid capturing keyboard focus in context bar widgets.
2014-03-08 20:31:55 -03:00
David Capello
d72a7a4dee Fix compilations errors on gcc 2014-02-24 08:30:43 -03:00
David Capello
7251f4b70a Now you can press a mouse button in a IntEntry and drag the mouse to the slider (issue 339) 2014-02-08 19:39:36 -03:00
David Capello
7eb41c73e9 IntEntry: select all text when the value is changed with the slider 2014-02-08 18:58:28 -03:00
Joel Madigan
838382791e Tweaked IntEntry behavior
Changed behavior of IntEntry to stop it from continously selecting all
text as long as the mouse is over the input box.  It appears that
something continues to send kMouseEnterMessage messages while use is
typing, even if the mouse is still.  This caused the IntEntry select-all
multiple times and as the user typed would replace what they had already
written.

Also force value to be set within min >= value >= max when focus is lost.
This will get rid of bad values from the entry, such as 10q goes to 10,
40000 goes to 255, etc.
2013-11-30 18:36:22 -05:00
David Capello
5b252c30f5 Add support for Unicode file names on Windows
- Fixed issue #46: open .png files with Unicode chars
- Fixed issue #150: ability to uncompress program in folders w/Unicode chars
- Added base::utf8_iterator
- Added base::FileHandle
- Added base::get_app_path()
- Modified ui::KeyMessage::ascii() -> unicodeChar()
- Removed JI_NOTEXT flag
- Added app::XmlDocumentRef class and app::open_xml() function
- Added support for Unicode text exchange with Win32 clipboard
2013-10-14 19:58:11 -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
1614786408 Convert ui::Message union to a class hierarchy
+ Add ui::KeyScancode enum and ui::KeyModifiers flags.
+ Add ui::MouseButtons enum.
2013-07-28 21:17:07 -03:00
David Capello
3dbf6518f9 Replace all JM_ macros with ui::MessageType enum and add ui::RegisterMessage class to register new UI messages 2013-04-04 21:53:29 -03:00
David Capello
fd6e4ccc21 Add support for transparent background color for ui::Slider to draw ui::IntEntry popup window without background 2013-04-03 21:17:12 -03:00
David Capello
1bf84bac41 Fix IntEntry's popup if it's beyond the screen border 2013-03-30 20:53:50 -03:00
David Capello
9076ee13ea Don't close IntEntry's popup in case of FOCUSLEAVE message 2013-03-30 20:50:43 -03:00
David Capello
cbb5809c10 Bigger hot region for IntEntry's popup window 2013-03-30 20:50:24 -03:00
David Capello
4adc9f8489 Add ui::IntEntry widget 2013-03-30 13:11:35 -03:00