Commit Graph

180 Commits

Author SHA1 Message Date
David Capello
22c3651c63 Fix Alt+Mnemonic on Mac OS X 2014-11-01 12:44:07 -03:00
David Capello
b9b3b02882 Fix mouse issues on OS X (fix #458)
Now we generate she::Event::MouseEnter/Leave events correctly when the
mouse leaves or enters into the window to show the native cursor again
when necessary.

Close #466
2014-11-01 11:36:51 -03:00
David Capello
8bec9be4b2 Fix comparison between ui::Accelerators 2014-10-29 23:50:48 -03:00
David Capello
f939ef5f02 Add keyboard shortcuts customization (close #253)
Changes:
* Add KeyboardShortcutsCommand and window
* Add SelectAccelerator window
* Replace modules/gui.cpp functions with app::KeyboardShortcuts and
  app::Key with the logic to load/save/handle keyboard shortcuts
* Change ui::Accelerator concept: now it represent just one keyboard
  shortcut, not a set of shortcuts
* Remove ui::Accelerator from ui::MenuItem, now the key is associated
  in app::AppMenuItem and it's a app::Key
* Add Command::onGetFriendlyName() to get a user friendly name of the
  command depending on its parameters
2014-10-29 11:58:03 -03:00
David Capello
bb24d8b995 Add option to enable/disable automatic menu bar items popup (related to issue #501) 2014-10-25 11:24:29 -03:00
David Capello
3e18efcd8b Don't expand MenuBar items on mouseover (fix #501)
This is how menu-bars work on Windows and OS X.
2014-10-23 11:16:22 -03:00
David Capello
fda9478eb4 Re-center mini-editor when its window is resized 2014-09-11 00:00:28 -03:00
David Capello
bdd64b2c34 Bring back infinite scroll in sprite editor 2014-09-09 21:51:47 -03:00
David Capello
c37958a7f3 Fix focus movement in ui::Entry widget on Mac OS X platform 2014-09-09 09:52:37 -03:00
David Capello
d14a0fe075 Add "Size" options in CanvasSizeCommand to specify width/height
- Added canvas icons to change the expansion direction in CanvasSizeCommand
- Added Widget::at() and Widget::offerCapture() member functions
- Improved ButtonSet widget
2014-09-08 02:27:41 -03:00
David Capello
c38c784772 We don't have std::bind() available in Mac OS X SDK 10.4u 2014-09-04 09:07:23 -03:00
David Capello
1d4202d593 Minor change in system.h: remove unused BITMAP forward declaration 2014-09-03 10:26:52 -03:00
David Capello
7d89167e00 Add right-click to ui::Entry to show edit popup menu (cut/copy/paste) 2014-08-31 22:51:17 -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
58b3e09d86 Remove all "infinite scroll" stuff to avoid changing mouse position (fixes #350)
Changing the mouse position isn't user-friendly in desktop apps, and
has several problems in some platforms (Mac OS X). In this way we've
changed the approach to handle the mouse position when it goes outside
the ui::Editor viewport.
2014-08-25 22:49:19 -03:00
David Capello
99557a2c1a Don't change mouse position in ui::Slider 2014-08-25 21:43:55 -03:00
David Capello
355ecbb2af Add space bar as modifier
Now we can scroll with space bar + arrow keys
2014-08-24 23:40:33 -03:00
David Capello
fb68969ba5 Mac OS X port: fix copy & paste in entry field with Cmd+C/Cmd+V keys 2014-08-23 14:51:28 -03:00
David Capello
cab6ecbfda Minor change in ui/entry.cpp to avoid dependency with Allegro definitions 2014-08-21 22:07:41 -03:00
David Capello
51ab478f49 Fix order of members initialization detected by clang 2014-08-17 20:38:55 -03:00
David Capello
5075c1f86f Remove unused variables/code 2014-08-17 20:37:12 -03:00
David Capello
dfc1ecd2da Use #pragma warning only in MSC compiler 2014-08-14 23:38:06 -03:00
David Capello
6824570c4b Remove base/override.h (use override keyword directly) 2014-08-14 23:07:47 -03:00
David Capello
400ab0c464 Fix a bug in ui::Manager putting the focus in non-visible widgets
We've to ask for isVisible() member function because it checks for
the visibility of the widget and its parents.
2014-08-12 08:10:02 -03:00
David Capello
1f25579f5a Fix bug: avoid clicking window borders when a combobox is open 2014-08-11 08:10:42 -03:00
David Capello
1c324c9b14 Add experimental option to use native mouse cursors (and some renames of cursor names) 2014-08-10 19:51:14 -03:00
David Capello
4d4958bf35 Move capture/release mouse function to she layer 2014-08-09 22:32:05 -03:00
David Capello
a6933b2c7a Rename ui::jmouse_poll to ui::_internal_poll_mouse 2014-08-09 11:16:54 -03:00
David Capello
b1b4ed8b39 Don't block Menu::showPopup() with a customized event loop
We must call Menu::showPopup() in ui::kMouseUpMessage message.
2014-08-09 11:13:51 -03:00
David Capello
6ccd95e22d Use a desktop Window in PreviewCommand to avoid a special events loop 2014-08-09 10:37:51 -03:00
David Capello
dfaf097b88 Rename base/compiler_specific.h to base/override.h 2014-08-09 08:08:20 -03:00
David Capello
a856cdf8bd Add support for command key in Mac OS X platform
Other change:
- Fixed ui::Message::onlyCtrl/Shift/AltPressed() member functions
2014-08-06 00:42:50 -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
901b2acc06 Remove some references to <allegro.h> 2014-06-28 11:17:22 -03:00
David Capello
b37ec489f6 Remove ui::Widget::isScancodeMnemonic() member function 2014-06-28 11:14:03 -03:00
David Capello
738d6ec4ee Rename _unittest.cpp files to _tests.cpp 2014-06-28 10:49:38 -03:00
David Capello
7ebc90678f Use ui::Graphics instead of Allegro in Editor's brush preview routines
* Remove color_utils::color_for_allegro()
* Rename editor_draw/move/clear_cursor() -> draw/move/clearBrushPreview()
* Rename Editor::get_raw_cursor_color() and Editor::is_cursor_mask()
* Add Graphics::get/putPixel() and Graphics::width/height()
* Add SetClip class
2014-06-28 10:33:58 -03:00
David Capello
5bbff161b9 Now ui::Graphics uses she::Surface instead of Allegro BITMAP 2014-06-26 22:14:39 -03:00
David Capello
0c250df97a Separate Options dialog in different sections
* Add ui::Panel widget
2014-06-22 21:56:04 -03:00
David Capello
10bd7142eb Change ui::ImageView to use she::Surface instead of Allegro BITMAP 2014-06-22 18:57:30 -03:00
David Capello
dbad153698 Add she::Font class (wrapper of Allegro FONT)
This is an huge refactor to avoid handling Allegro FONT directly. Some
changes:
* Add she::System::defaultDisplay/Font, createRgbaSurface, loadSurface,
  and loadRgbaSurface.
* Rename she::CreateSystem/Instance to she::create_system/instance.
* Remove ui/font.cpp and move ui/fontbmp.cpp to she library.
* ui::IButtonIcon uses she::Surface instead of BITMAP.
* Rename she::LockedSurface::drawAlphaSurface -> drawRgbaSurface
* Rename ui::SetDisplay -> set_display
* Rename _ji_font_text_len -> ui::Graphics::measureUIStringLength
2014-06-22 18:53:14 -03:00
David Capello
1a07472824 Fix issue loading negative splitter position 2014-05-25 16:34:26 -03:00
David Capello
47b6df19ee Fix problems generating mouse messages with pos=0,0 2014-05-25 16:22:48 -03:00
David Capello
08fb98d40d New notifications area at the top-right corner 2014-05-25 11:21:10 -03:00
David Capello
e266089368 Make IntersectClip non-copyable 2014-05-04 21:51:52 -03:00
David Capello
778578b210 Fix Editor scroll issues: we cannot process several WM_MOUSEMOVE in one UI loop-cycle
We have to wait to validate not-scrolled regions before we can use
Widget::scrollRegion() or Window::moveWindow() again. This is an issue
to see in the future (to avoid lossing mouse move messages). At the moment,
one solution is to use the last received mouse move message.
2014-05-04 21:40:46 -03:00
David Capello
94b2fb6dde Translate Widget::m_updateRegion field when the widget is moved 2014-05-04 21:32:43 -03:00
David Capello
b45cd3e07e Minor changes in Widget::scrollRegion() 2014-05-04 21:32:13 -03:00
David Capello
41863f9d3d Minor changes in Window::moveWindow() 2014-05-04 21:31:59 -03:00
David Capello
4035c6fc13 Fix call to update_mouse_position() when Allegro mouse position is used 2014-05-04 21:18:43 -03:00