Signed-off-by: falkTX <falktx@falktx.com>pull/272/head
@@ -1,228 +0,0 @@ | |||
/* | |||
* DISTRHO Plugin Framework (DPF) | |||
* Copyright (C) 2012-2021 Filipe Coelho <falktx@falktx.com> | |||
* | |||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | |||
* or without fee is hereby granted, provided that the above copyright notice and this | |||
* permission notice appear in all copies. | |||
* | |||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD | |||
* TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN | |||
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | |||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | |||
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | |||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||
*/ | |||
#ifndef DGL_EVENTS_HPP_INCLUDED | |||
#define DGL_EVENTS_HPP_INCLUDED | |||
#include "Geometry.hpp" | |||
START_NAMESPACE_DGL | |||
// -------------------------------------------------------------------------------------------------------------------- | |||
namespace Events | |||
{ | |||
/** | |||
Base event data. | |||
These are the fields present on all Widget events. | |||
@a mod Currently active keyboard modifiers, @see Modifier. | |||
@a mod Event flags, @see Flag. | |||
@a time Event timestamp (if any). | |||
*/ | |||
struct BaseEvent { | |||
uint mod; | |||
uint flags; | |||
uint time; | |||
/** Constuctor */ | |||
BaseEvent() noexcept : mod(0x0), flags(0x0), time(0) {} | |||
/** Destuctor */ | |||
virtual ~BaseEvent() noexcept {} | |||
}; | |||
/** | |||
Keyboard event. | |||
This event represents low-level key presses and releases. | |||
This can be used for "direct" keyboard handing like key bindings, but must not be interpreted as text input. | |||
Keys are represented portably as Unicode code points, using the "natural" code point for the key. | |||
The @a key field is the code for the pressed key, without any modifiers applied. | |||
For example, a press or release of the 'A' key will have `key` 97 ('a') | |||
regardless of whether shift or control are being held. | |||
Alternatively, the raw @a keycode can be used to work directly with physical keys, | |||
but note that this value is not portable and differs between platforms and hardware. | |||
@a press True if the key was pressed, false if released. | |||
@a key Unicode point of the key pressed. | |||
@a keycode Raw keycode. | |||
@see onKeyboard | |||
*/ | |||
struct KeyboardEvent : BaseEvent { | |||
bool press; | |||
uint key; | |||
uint keycode; | |||
/** Constuctor */ | |||
KeyboardEvent() noexcept | |||
: BaseEvent(), | |||
press(false), | |||
key(0), | |||
keycode(0) {} | |||
}; | |||
/** | |||
Special keyboard event. | |||
This event allows the use of keys that do not have unicode points. | |||
Note that some are non-printable keys. | |||
@a press True if the key was pressed, false if released. | |||
@a key The key pressed. | |||
@see onSpecial | |||
*/ | |||
struct SpecialEvent : BaseEvent { | |||
bool press; | |||
Key key; | |||
/** Constuctor */ | |||
SpecialEvent() noexcept | |||
: BaseEvent(), | |||
press(false), | |||
key(Key(0)) {} | |||
}; | |||
/** | |||
Character input event. | |||
This event represents text input, usually as the result of a key press. | |||
The text is given both as a Unicode character code and a UTF-8 string. | |||
Note that this event is generated by the platform's input system, | |||
so there is not necessarily a direct correspondence between text events and physical key presses. | |||
For example, with some input methods a sequence of several key presses will generate a single character. | |||
@a keycode Raw key code. | |||
@a character Unicode character code. | |||
@a string UTF-8 string. | |||
@see onCharacterInput | |||
*/ | |||
struct CharacterInputEvent : BaseEvent { | |||
uint keycode; | |||
uint character; | |||
char string[8]; | |||
/** Constuctor */ | |||
CharacterInputEvent() noexcept | |||
: BaseEvent(), | |||
keycode(0), | |||
character(0), | |||
string{'\0','\0','\0','\0','\0','\0','\0','\0'} {} | |||
}; | |||
/** | |||
Mouse press or release event. | |||
@a button The button number starting from 1 (1 = left, 2 = middle, 3 = right). | |||
@a press True if the button was pressed, false if released. | |||
@a pos The widget-relative coordinates of the pointer. | |||
@see onMouse | |||
*/ | |||
struct MouseEvent : BaseEvent { | |||
uint button; | |||
bool press; | |||
Point<double> pos; | |||
/** Constuctor */ | |||
MouseEvent() noexcept | |||
: BaseEvent(), | |||
button(0), | |||
press(false), | |||
pos(0.0, 0.0) {} | |||
}; | |||
/** | |||
Mouse motion event. | |||
@a pos The widget-relative coordinates of the pointer. | |||
@see onMotion | |||
*/ | |||
struct MotionEvent : BaseEvent { | |||
Point<double> pos; | |||
/** Constuctor */ | |||
MotionEvent() noexcept | |||
: BaseEvent(), | |||
pos(0.0, 0.0) {} | |||
}; | |||
/** | |||
Mouse scroll event. | |||
The scroll distance is expressed in "lines", | |||
an arbitrary unit that corresponds to a single tick of a detented mouse wheel. | |||
For example, `delta.y` = 1.0 scrolls 1 line up. | |||
Some systems and devices support finer resolution and/or higher values for fast scrolls, | |||
so programs should handle any value gracefully. | |||
@a pos The widget-relative coordinates of the pointer. | |||
@a delta The scroll distance. | |||
@a direction The direction of the scroll or "smooth". | |||
@see onScroll | |||
*/ | |||
struct ScrollEvent : BaseEvent { | |||
Point<double> pos; | |||
Point<double> delta; | |||
ScrollDirection direction; | |||
/** Constuctor */ | |||
ScrollEvent() noexcept | |||
: BaseEvent(), | |||
pos(0.0, 0.0), | |||
delta(0.0, 0.0), | |||
direction(kScrollSmooth) {} | |||
}; | |||
/** | |||
Resize event. | |||
@a size The new widget size. | |||
@a oldSize The previous size, may be null. | |||
@see onResize | |||
*/ | |||
struct ResizeEvent { | |||
Size<uint> size; | |||
Size<uint> oldSize; | |||
/** Constuctor */ | |||
ResizeEvent() noexcept | |||
: size(0, 0), | |||
oldSize(0, 0) {} | |||
}; | |||
/** | |||
Widget position changed event. | |||
@a pos The new absolute position of the widget. | |||
@a oldPos The previous absolute position of the widget. | |||
@see onPositionChanged | |||
*/ | |||
struct PositionChangedEvent { | |||
Point<int> pos; | |||
Point<int> oldPos; | |||
/** Constuctor */ | |||
PositionChangedEvent() noexcept | |||
: pos(0, 0), | |||
oldPos(0, 0) {} | |||
}; | |||
} | |||
// -------------------------------------------------------------------------------------------------------------------- | |||
END_NAMESPACE_DGL | |||
#endif // DGL_EVENTS_HPP_INCLUDED |
@@ -17,7 +17,7 @@ | |||
#ifndef DGL_WIDGET_HPP_INCLUDED | |||
#define DGL_WIDGET_HPP_INCLUDED | |||
#include "Events.hpp" | |||
#include "Geometry.hpp" | |||
START_NAMESPACE_DGL | |||
@@ -29,8 +29,6 @@ class SubWidget; | |||
class TopLevelWidget; | |||
class Window; | |||
using namespace Events; | |||
// -------------------------------------------------------------------------------------------------------------------- | |||
/** | |||
@@ -54,6 +52,203 @@ using namespace Events; | |||
*/ | |||
class Widget | |||
{ | |||
public: | |||
/** | |||
Base event data. | |||
These are the fields present on all Widget events. | |||
@a mod Currently active keyboard modifiers, @see Modifier. | |||
@a mod Event flags, @see Flag. | |||
@a time Event timestamp (if any). | |||
*/ | |||
struct BaseEvent { | |||
uint mod; | |||
uint flags; | |||
uint time; | |||
/** Constuctor */ | |||
BaseEvent() noexcept : mod(0x0), flags(0x0), time(0) {} | |||
/** Destuctor */ | |||
virtual ~BaseEvent() noexcept {} | |||
}; | |||
/** | |||
Keyboard event. | |||
This event represents low-level key presses and releases. | |||
This can be used for "direct" keyboard handing like key bindings, but must not be interpreted as text input. | |||
Keys are represented portably as Unicode code points, using the "natural" code point for the key. | |||
The @a key field is the code for the pressed key, without any modifiers applied. | |||
For example, a press or release of the 'A' key will have `key` 97 ('a') | |||
regardless of whether shift or control are being held. | |||
Alternatively, the raw @a keycode can be used to work directly with physical keys, | |||
but note that this value is not portable and differs between platforms and hardware. | |||
@a press True if the key was pressed, false if released. | |||
@a key Unicode point of the key pressed. | |||
@a keycode Raw keycode. | |||
@see onKeyboard | |||
*/ | |||
struct KeyboardEvent : BaseEvent { | |||
bool press; | |||
uint key; | |||
uint keycode; | |||
/** Constuctor */ | |||
KeyboardEvent() noexcept | |||
: BaseEvent(), | |||
press(false), | |||
key(0), | |||
keycode(0) {} | |||
}; | |||
/** | |||
Special keyboard event. | |||
This event allows the use of keys that do not have unicode points. | |||
Note that some are non-printable keys. | |||
@a press True if the key was pressed, false if released. | |||
@a key The key pressed. | |||
@see onSpecial | |||
*/ | |||
struct SpecialEvent : BaseEvent { | |||
bool press; | |||
Key key; | |||
/** Constuctor */ | |||
SpecialEvent() noexcept | |||
: BaseEvent(), | |||
press(false), | |||
key(Key(0)) {} | |||
}; | |||
/** | |||
Character input event. | |||
This event represents text input, usually as the result of a key press. | |||
The text is given both as a Unicode character code and a UTF-8 string. | |||
Note that this event is generated by the platform's input system, | |||
so there is not necessarily a direct correspondence between text events and physical key presses. | |||
For example, with some input methods a sequence of several key presses will generate a single character. | |||
@a keycode Raw key code. | |||
@a character Unicode character code. | |||
@a string UTF-8 string. | |||
@see onCharacterInput | |||
*/ | |||
struct CharacterInputEvent : BaseEvent { | |||
uint keycode; | |||
uint character; | |||
char string[8]; | |||
/** Constuctor */ | |||
CharacterInputEvent() noexcept | |||
: BaseEvent(), | |||
keycode(0), | |||
character(0), | |||
string{'\0','\0','\0','\0','\0','\0','\0','\0'} {} | |||
}; | |||
/** | |||
Mouse press or release event. | |||
@a button The button number starting from 1 (1 = left, 2 = middle, 3 = right). | |||
@a press True if the button was pressed, false if released. | |||
@a pos The widget-relative coordinates of the pointer. | |||
@see onMouse | |||
*/ | |||
struct MouseEvent : BaseEvent { | |||
uint button; | |||
bool press; | |||
Point<double> pos; | |||
/** Constuctor */ | |||
MouseEvent() noexcept | |||
: BaseEvent(), | |||
button(0), | |||
press(false), | |||
pos(0.0, 0.0) {} | |||
}; | |||
/** | |||
Mouse motion event. | |||
@a pos The widget-relative coordinates of the pointer. | |||
@see onMotion | |||
*/ | |||
struct MotionEvent : BaseEvent { | |||
Point<double> pos; | |||
/** Constuctor */ | |||
MotionEvent() noexcept | |||
: BaseEvent(), | |||
pos(0.0, 0.0) {} | |||
}; | |||
/** | |||
Mouse scroll event. | |||
The scroll distance is expressed in "lines", | |||
an arbitrary unit that corresponds to a single tick of a detented mouse wheel. | |||
For example, `delta.y` = 1.0 scrolls 1 line up. | |||
Some systems and devices support finer resolution and/or higher values for fast scrolls, | |||
so programs should handle any value gracefully. | |||
@a pos The widget-relative coordinates of the pointer. | |||
@a delta The scroll distance. | |||
@a direction The direction of the scroll or "smooth". | |||
@see onScroll | |||
*/ | |||
struct ScrollEvent : BaseEvent { | |||
Point<double> pos; | |||
Point<double> delta; | |||
ScrollDirection direction; | |||
/** Constuctor */ | |||
ScrollEvent() noexcept | |||
: BaseEvent(), | |||
pos(0.0, 0.0), | |||
delta(0.0, 0.0), | |||
direction(kScrollSmooth) {} | |||
}; | |||
/** | |||
Resize event. | |||
@a size The new widget size. | |||
@a oldSize The previous size, may be null. | |||
@see onResize | |||
*/ | |||
struct ResizeEvent { | |||
Size<uint> size; | |||
Size<uint> oldSize; | |||
/** Constuctor */ | |||
ResizeEvent() noexcept | |||
: size(0, 0), | |||
oldSize(0, 0) {} | |||
}; | |||
/** | |||
Widget position changed event. | |||
@a pos The new absolute position of the widget. | |||
@a oldPos The previous absolute position of the widget. | |||
@see onPositionChanged | |||
*/ | |||
struct PositionChangedEvent { | |||
Point<int> pos; | |||
Point<int> oldPos; | |||
/** Constuctor */ | |||
PositionChangedEvent() noexcept | |||
: pos(0, 0), | |||
oldPos(0, 0) {} | |||
}; | |||
private: | |||
/** | |||
Private constructor, reserved for TopLevelWidget class. | |||
*/ | |||
@@ -42,7 +42,7 @@ struct ButtonImpl { | |||
self(s), | |||
callback_img(nullptr) {} | |||
bool onMouse(const Events::MouseEvent& ev) | |||
bool onMouse(const Widget::MouseEvent& ev) | |||
{ | |||
// button was released, handle it now | |||
if (button != -1 && ! ev.press) | |||
@@ -83,7 +83,7 @@ struct ButtonImpl { | |||
return false; | |||
} | |||
bool onMotion(const Events::MotionEvent& ev) | |||
bool onMotion(const Widget::MotionEvent& ev) | |||
{ | |||
// keep pressed | |||
if (button != -1) | |||
@@ -37,7 +37,7 @@ TopLevelWidget::PrivateData::~PrivateData() | |||
window.pData->topLevelWidget = nullptr; | |||
} | |||
bool TopLevelWidget::PrivateData::keyboardEvent(const Events::KeyboardEvent& ev) | |||
bool TopLevelWidget::PrivateData::keyboardEvent(const KeyboardEvent& ev) | |||
{ | |||
// give top-level widget chance to catch this event first | |||
if (self->onKeyboard(ev)) | |||
@@ -47,7 +47,7 @@ bool TopLevelWidget::PrivateData::keyboardEvent(const Events::KeyboardEvent& ev) | |||
return selfw->pData->giveKeyboardEventForSubWidgets(ev); | |||
} | |||
bool TopLevelWidget::PrivateData::specialEvent(const Events::SpecialEvent& ev) | |||
bool TopLevelWidget::PrivateData::specialEvent(const SpecialEvent& ev) | |||
{ | |||
// give top-level widget chance to catch this event first | |||
if (self->onSpecial(ev)) | |||
@@ -57,7 +57,7 @@ bool TopLevelWidget::PrivateData::specialEvent(const Events::SpecialEvent& ev) | |||
return selfw->pData->giveSpecialEventForSubWidgets(ev); | |||
} | |||
bool TopLevelWidget::PrivateData::characterInputEvent(const Events::CharacterInputEvent& ev) | |||
bool TopLevelWidget::PrivateData::characterInputEvent(const CharacterInputEvent& ev) | |||
{ | |||
// give top-level widget chance to catch this event first | |||
if (self->onCharacterInput(ev)) | |||
@@ -67,9 +67,9 @@ bool TopLevelWidget::PrivateData::characterInputEvent(const Events::CharacterInp | |||
return selfw->pData->giveCharacterInputEventForSubWidgets(ev); | |||
} | |||
bool TopLevelWidget::PrivateData::mouseEvent(const Events::MouseEvent& ev) | |||
bool TopLevelWidget::PrivateData::mouseEvent(const MouseEvent& ev) | |||
{ | |||
Events::MouseEvent rev = ev; | |||
MouseEvent rev = ev; | |||
if (window.pData->autoScaling) | |||
{ | |||
@@ -87,9 +87,9 @@ bool TopLevelWidget::PrivateData::mouseEvent(const Events::MouseEvent& ev) | |||
return selfw->pData->giveMouseEventForSubWidgets(rev); | |||
} | |||
bool TopLevelWidget::PrivateData::motionEvent(const Events::MotionEvent& ev) | |||
bool TopLevelWidget::PrivateData::motionEvent(const MotionEvent& ev) | |||
{ | |||
Events::MotionEvent rev = ev; | |||
MotionEvent rev = ev; | |||
if (window.pData->autoScaling) | |||
{ | |||
@@ -107,9 +107,9 @@ bool TopLevelWidget::PrivateData::motionEvent(const Events::MotionEvent& ev) | |||
return selfw->pData->giveMotionEventForSubWidgets(rev); | |||
} | |||
bool TopLevelWidget::PrivateData::scrollEvent(const Events::ScrollEvent& ev) | |||
bool TopLevelWidget::PrivateData::scrollEvent(const ScrollEvent& ev) | |||
{ | |||
Events::ScrollEvent rev = ev; | |||
ScrollEvent rev = ev; | |||
if (window.pData->autoScaling) | |||
{ | |||
@@ -33,12 +33,12 @@ struct TopLevelWidget::PrivateData { | |||
explicit PrivateData(TopLevelWidget* const s, Window& w); | |||
~PrivateData(); | |||
void display(); | |||
bool keyboardEvent(const Events::KeyboardEvent& ev); | |||
bool specialEvent(const Events::SpecialEvent& ev); | |||
bool characterInputEvent(const Events::CharacterInputEvent& ev); | |||
bool mouseEvent(const Events::MouseEvent& ev); | |||
bool motionEvent(const Events::MotionEvent& ev); | |||
bool scrollEvent(const Events::ScrollEvent& ev); | |||
bool keyboardEvent(const KeyboardEvent& ev); | |||
bool specialEvent(const SpecialEvent& ev); | |||
bool characterInputEvent(const CharacterInputEvent& ev); | |||
bool mouseEvent(const MouseEvent& ev); | |||
bool motionEvent(const MotionEvent& ev); | |||
bool scrollEvent(const ScrollEvent& ev); | |||
void fallbackOnResize(); | |||
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PrivateData) | |||
@@ -69,7 +69,7 @@ void Widget::PrivateData::displaySubWidgets(const uint width, const uint height, | |||
// ----------------------------------------------------------------------- | |||
bool Widget::PrivateData::giveKeyboardEventForSubWidgets(const Events::KeyboardEvent& ev) | |||
bool Widget::PrivateData::giveKeyboardEventForSubWidgets(const KeyboardEvent& ev) | |||
{ | |||
if (! visible) | |||
return false; | |||
@@ -87,7 +87,7 @@ bool Widget::PrivateData::giveKeyboardEventForSubWidgets(const Events::KeyboardE | |||
return false; | |||
} | |||
bool Widget::PrivateData::giveSpecialEventForSubWidgets(const Events::SpecialEvent& ev) | |||
bool Widget::PrivateData::giveSpecialEventForSubWidgets(const SpecialEvent& ev) | |||
{ | |||
if (! visible) | |||
return false; | |||
@@ -105,7 +105,7 @@ bool Widget::PrivateData::giveSpecialEventForSubWidgets(const Events::SpecialEve | |||
return false; | |||
} | |||
bool Widget::PrivateData::giveCharacterInputEventForSubWidgets(const Events::CharacterInputEvent& ev) | |||
bool Widget::PrivateData::giveCharacterInputEventForSubWidgets(const CharacterInputEvent& ev) | |||
{ | |||
if (! visible) | |||
return false; | |||
@@ -123,7 +123,7 @@ bool Widget::PrivateData::giveCharacterInputEventForSubWidgets(const Events::Cha | |||
return false; | |||
} | |||
bool Widget::PrivateData::giveMouseEventForSubWidgets(Events::MouseEvent& ev) | |||
bool Widget::PrivateData::giveMouseEventForSubWidgets(MouseEvent& ev) | |||
{ | |||
if (! visible) | |||
return false; | |||
@@ -150,7 +150,7 @@ bool Widget::PrivateData::giveMouseEventForSubWidgets(Events::MouseEvent& ev) | |||
return false; | |||
} | |||
bool Widget::PrivateData::giveMotionEventForSubWidgets(Events::MotionEvent& ev) | |||
bool Widget::PrivateData::giveMotionEventForSubWidgets(MotionEvent& ev) | |||
{ | |||
if (! visible) | |||
return false; | |||
@@ -177,7 +177,7 @@ bool Widget::PrivateData::giveMotionEventForSubWidgets(Events::MotionEvent& ev) | |||
return false; | |||
} | |||
bool Widget::PrivateData::giveScrollEventForSubWidgets(Events::ScrollEvent& ev) | |||
bool Widget::PrivateData::giveScrollEventForSubWidgets(ScrollEvent& ev) | |||
{ | |||
if (! visible) | |||
return false; | |||
@@ -43,12 +43,12 @@ struct Widget::PrivateData { | |||
void displaySubWidgets(uint width, uint height, double autoScaleFactor); | |||
bool giveKeyboardEventForSubWidgets(const Events::KeyboardEvent& ev); | |||
bool giveSpecialEventForSubWidgets(const Events::SpecialEvent& ev); | |||
bool giveCharacterInputEventForSubWidgets(const Events::CharacterInputEvent& ev); | |||
bool giveMouseEventForSubWidgets(Events::MouseEvent& ev); | |||
bool giveMotionEventForSubWidgets(Events::MotionEvent& ev); | |||
bool giveScrollEventForSubWidgets(Events::ScrollEvent& ev); | |||
bool giveKeyboardEventForSubWidgets(const KeyboardEvent& ev); | |||
bool giveSpecialEventForSubWidgets(const SpecialEvent& ev); | |||
bool giveCharacterInputEventForSubWidgets(const CharacterInputEvent& ev); | |||
bool giveMouseEventForSubWidgets(MouseEvent& ev); | |||
bool giveMotionEventForSubWidgets(MotionEvent& ev); | |||
bool giveScrollEventForSubWidgets(ScrollEvent& ev); | |||
static TopLevelWidget* findTopLevelWidget(Widget* const w); | |||
@@ -533,7 +533,7 @@ void Window::PrivateData::onPuglFocus(const bool focus, const CrossingMode mode) | |||
self->onFocus(focus, mode); | |||
} | |||
void Window::PrivateData::onPuglKey(const Events::KeyboardEvent& ev) | |||
void Window::PrivateData::onPuglKey(const Widget::KeyboardEvent& ev) | |||
{ | |||
DGL_DBGp("onPuglKey : %i %u %u\n", ev.press, ev.key, ev.keycode); | |||
@@ -546,7 +546,7 @@ void Window::PrivateData::onPuglKey(const Events::KeyboardEvent& ev) | |||
#endif | |||
} | |||
void Window::PrivateData::onPuglSpecial(const Events::SpecialEvent& ev) | |||
void Window::PrivateData::onPuglSpecial(const Widget::SpecialEvent& ev) | |||
{ | |||
DGL_DBGp("onPuglSpecial : %i %u\n", ev.press, ev.key); | |||
@@ -559,7 +559,7 @@ void Window::PrivateData::onPuglSpecial(const Events::SpecialEvent& ev) | |||
#endif | |||
} | |||
void Window::PrivateData::onPuglText(const Events::CharacterInputEvent& ev) | |||
void Window::PrivateData::onPuglText(const Widget::CharacterInputEvent& ev) | |||
{ | |||
DGL_DBGp("onPuglText : %u %u %s\n", ev.keycode, ev.character, ev.string); | |||
@@ -572,7 +572,7 @@ void Window::PrivateData::onPuglText(const Events::CharacterInputEvent& ev) | |||
#endif | |||
} | |||
void Window::PrivateData::onPuglMouse(const Events::MouseEvent& ev) | |||
void Window::PrivateData::onPuglMouse(const Widget::MouseEvent& ev) | |||
{ | |||
DGL_DBGp("onPuglMouse : %i %i %f %f\n", ev.button, ev.press, ev.pos.getX(), ev.pos.getY()); | |||
@@ -585,7 +585,7 @@ void Window::PrivateData::onPuglMouse(const Events::MouseEvent& ev) | |||
#endif | |||
} | |||
void Window::PrivateData::onPuglMotion(const Events::MotionEvent& ev) | |||
void Window::PrivateData::onPuglMotion(const Widget::MotionEvent& ev) | |||
{ | |||
DGL_DBGp("onPuglMotion : %f %f\n", ev.pos.getX(), ev.pos.getY()); | |||
@@ -598,7 +598,7 @@ void Window::PrivateData::onPuglMotion(const Events::MotionEvent& ev) | |||
#endif | |||
} | |||
void Window::PrivateData::onPuglScroll(const Events::ScrollEvent& ev) | |||
void Window::PrivateData::onPuglScroll(const Widget::ScrollEvent& ev) | |||
{ | |||
DGL_DBGp("onPuglScroll : %f %f %f %f\n", ev.pos.getX(), ev.pos.getY(), ev.delta.getX(), ev.delta.getY()); | |||
@@ -684,7 +684,7 @@ PuglStatus Window::PrivateData::puglEventCallback(PuglView* const view, const Pu | |||
{ | |||
// unused x, y, xRoot, yRoot (double) | |||
// TODO special keys? | |||
Events::KeyboardEvent ev; | |||
Widget::KeyboardEvent ev; | |||
ev.mod = event->key.state; | |||
ev.flags = event->key.flags; | |||
ev.time = static_cast<uint>(event->key.time * 1000.0 + 0.5); | |||
@@ -701,7 +701,7 @@ PuglStatus Window::PrivateData::puglEventCallback(PuglView* const view, const Pu | |||
case PUGL_TEXT: | |||
{ | |||
// unused x, y, xRoot, yRoot (double) | |||
Events::CharacterInputEvent ev; | |||
Widget::CharacterInputEvent ev; | |||
ev.mod = event->text.state; | |||
ev.flags = event->text.flags; | |||
ev.time = static_cast<uint>(event->text.time * 1000.0 + 0.5); | |||
@@ -724,7 +724,7 @@ PuglStatus Window::PrivateData::puglEventCallback(PuglView* const view, const Pu | |||
///< Mouse button released, a #PuglEventButton | |||
case PUGL_BUTTON_RELEASE: | |||
{ | |||
Events::MouseEvent ev; | |||
Widget::MouseEvent ev; | |||
ev.mod = event->button.state; | |||
ev.flags = event->button.flags; | |||
ev.time = static_cast<uint>(event->button.time * 1000.0 + 0.5); | |||
@@ -738,7 +738,7 @@ PuglStatus Window::PrivateData::puglEventCallback(PuglView* const view, const Pu | |||
///< Pointer moved, a #PuglEventMotion | |||
case PUGL_MOTION: | |||
{ | |||
Events::MotionEvent ev; | |||
Widget::MotionEvent ev; | |||
ev.mod = event->motion.state; | |||
ev.flags = event->motion.flags; | |||
ev.time = static_cast<uint>(event->motion.time * 1000.0 + 0.5); | |||
@@ -750,7 +750,7 @@ PuglStatus Window::PrivateData::puglEventCallback(PuglView* const view, const Pu | |||
///< Scrolled, a #PuglEventScroll | |||
case PUGL_SCROLL: | |||
{ | |||
Events::ScrollEvent ev; | |||
Widget::ScrollEvent ev; | |||
ev.mod = event->scroll.state; | |||
ev.flags = event->scroll.flags; | |||
ev.time = static_cast<uint>(event->scroll.time * 1000.0 + 0.5); | |||
@@ -18,7 +18,7 @@ | |||
#define DGL_WINDOW_PRIVATE_DATA_HPP_INCLUDED | |||
#include "../Window.hpp" | |||
#include "../Events.hpp" | |||
#include "../Widget.hpp" | |||
#include "ApplicationPrivateData.hpp" | |||
#include "pugl.hpp" | |||
@@ -149,12 +149,12 @@ struct Window::PrivateData : IdleCallback { | |||
void onPuglExpose(); | |||
void onPuglClose(); | |||
void onPuglFocus(bool focus, CrossingMode mode); | |||
void onPuglKey(const Events::KeyboardEvent& ev); | |||
void onPuglSpecial(const Events::SpecialEvent& ev); | |||
void onPuglText(const Events::CharacterInputEvent& ev); | |||
void onPuglMouse(const Events::MouseEvent& ev); | |||
void onPuglMotion(const Events::MotionEvent& ev); | |||
void onPuglScroll(const Events::ScrollEvent& ev); | |||
void onPuglKey(const Widget::KeyboardEvent& ev); | |||
void onPuglSpecial(const Widget::SpecialEvent& ev); | |||
void onPuglText(const Widget::CharacterInputEvent& ev); | |||
void onPuglMouse(const Widget::MouseEvent& ev); | |||
void onPuglMotion(const Widget::MotionEvent& ev); | |||
void onPuglScroll(const Widget::ScrollEvent& ev); | |||
// Pugl event handling entry point | |||
static PuglStatus puglEventCallback(PuglView* view, const PuglEvent* event); | |||