Commit Graph

30 Commits

Author SHA1 Message Date
David Capello d176839bf4 Merge branch '1.0'
* In this branch the Alt+mnemonic issues are solved in "she" layer when the
  she::Event is generated (see src/she/alleg4/key_poller.cpp)
* Mouse cursor issues on OS X are solved in src/she/alleg4/mouse_poller.cpp

Conflicts:
	src/app/test_context.h
	src/ui/manager.cpp
2014-11-01 20:55:57 -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 a5a5d1db81 Fix ui::set_mouse_position() from the merge of master and allegro-wrapper branches 2014-09-19 10:50:24 -03:00
David Capello c5a568cd15 Generate mouse/key events from polling in she module instead of ui module 2014-09-19 10:12:05 -03:00
David Capello bdd64b2c34 Bring back infinite scroll in sprite editor 2014-09-09 21:51:47 -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 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 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 47b6df19ee Fix problems generating mouse messages with pos=0,0 2014-05-25 16:22:48 -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
David Capello df3cb694ae Add she::Display::setMousePosition() 2014-05-04 16:05:35 -03:00
David Capello af299eecc8 Hide mouse when it leaves the display 2014-04-25 08:58:19 -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 78ce233756 Fix header of files distributed under the terms of the MIT license 2014-03-29 20:08:05 -03:00
David Capello e671508d85 Change infinite scroll implementation
Remove necessity of jmouse_x(1) and jmouse_y(1) calls.

- Renamed jmouse_control_infinite_scroll() -> ui::control_infinite_scroll()
- Renamed jmouse_set_position() -> ui::set_mouse_position()
- Added ui::get_delta_outside_box()
2014-02-02 18:46:19 -03:00
David Capello dbf4d0d490 Replace JRect/jrect struct with gfx::Rect
- Replaced Widget::rc -> Widget::m_bounds private member.
- Added Widget::offsetWidgets() method.
- Removed View::displaceWidgets().
2013-10-26 12:50:55 -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 01dfe4d52e Replace kResizeMessage message with ResizeEvent and Widget::onResize()
- Remove jwidget_set_rect() function.
2013-05-11 17:56:27 -03:00
David Capello 9b8e87da10 Update copyright year to 2013 2013-01-27 12:13:13 -03:00
David Capello eacd0c7642 Replace ui::jregion with gfx::Region class
This is an old TODO item, and it's the first step to finally
get rid of JRect and struct jrect.
2013-01-13 22:39:44 -03:00
David Capello 0496f38ed3 Fix a typo in all files distributed under BSD-like and Allegro licenses
Thanks to Tobias Hansen.
2012-09-23 23:24:43 -03:00
David Capello fb5f086f0f Add "ui::dirty_display_flag" flag to avoid flipping to the screen continuously.
This is a temporal fix to save more CPU. It will be refactored for next
versions.
2012-08-23 22:25:56 -03:00
David Capello c6fe95231d Convert the mouse cursor into an ui::Overlay (now it support alpha channel).
- Added Cursor class and CursorType enum.
2012-08-10 23:14:54 -03:00
David Capello 89cb9d098c Move some base UI logic to handle the main display from modules/gui.cpp to she library. 2012-08-05 21:16:16 -03:00
David Capello 55aca8567c Move src/gui/ to src/ui/ 2012-06-17 22:49:58 -03:00