9 #ifndef CBaseGUIWindow_H 10 #define CBaseGUIWindow_H 46 public
mrpt::utils::CObservable
56 const
int m_CMD_CREATE_WIN;
57 const
int m_CMD_DESTROY_WIN;
58 void* m_winobj_voidptr;
61 synch::CSemaphore m_semThreadReady;
62 synch::CSemaphore m_semWindowDestroyed;
63 std::
string m_caption;
67 volatile
bool m_keyPushed;
68 volatile
int m_keyPushedCode;
71 void createWxWindow(
unsigned int initialWidth,
unsigned int initialHeight);
72 void destroyWxWindow();
75 void * getWxObject() {
return m_hwnd.
get(); }
76 void notifyChildWindowDestruction();
77 void notifySemThreadReady();
91 virtual void resize(
unsigned int width,
unsigned int height ) = 0;
95 virtual void setPos(
int x,
int y ) = 0;
99 virtual void setWindowTitle(
const std::string &str )=0;
102 virtual bool getLastMousePosition(
int &
x,
int &
y)
const = 0;
105 virtual void setCursorCross(
bool cursorIsCross) = 0;
117 int waitForKey(
bool ignoreControlKeys =
true,
mrptKeyModifier *out_pushModifier=NULL);
122 bool keyHit()
const {
return m_keyPushed; }
159 ) : source_object(
obj), char_code(_char_code), key_modifiers(_key_mod) { }
179 size_t _new_height) : source_object(
obj), new_width(_new_width), new_height(_new_height) { }
202 ) : source_object(
obj),
coords(_coords), leftButton(_leftButton), rightButton(_rightButton)
226 ) : source_object(
obj),
coords(_coords), leftButton(_leftButton), rightButton(_rightButton)
251 bool _allow_close =
true )
252 : source_object(
obj), allow_close(_allow_close)
An event sent by a window upon resize.
CBaseGUIWindow * source_object
An event sent by a window upon a mouse click, giving the (x,y) pixel coordinates. ...
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
The basic event type for the observer-observable pattern in MRPT.
A pair (x,y) of pixel coordinates (integer resolution).
mrptEventWindowResize(CBaseGUIWindow *obj, size_t _new_width, size_t _new_height)
The wx dialog for gui::CDisplayWindowPlots.
GLsizei GLsizei GLuint * obj
An event sent by a window upon when it's about to be closed, either manually by the user or programat...
An event sent by a window when the mouse is moved over it.
#define DEFINE_VIRTUAL_SERIALIZABLE(class_name)
This declaration must be inserted in virtual CSerializable classes definition:
mrptEventMouseMove(CBaseGUIWindow *obj, mrpt::utils::TPixelCoord _coords, bool _leftButton, bool _rightButton)
mrpt::utils::TPixelCoord coords
virtual void do_nothing() MRPT_OVERRIDE
Just to allow this class to be polymorphic.
bool keyHit() const
Returns true if a key has been pushed, without blocking waiting for a new key being pushed...
The wx dialog for gui::CDisplayWindow.
CBaseGUIWindow * source_object
virtual void do_nothing() MRPT_OVERRIDE
Just to allow this class to be polymorphic.
virtual void do_nothing() MRPT_OVERRIDE
Just to allow this class to be polymorphic.
An event sent by a window upon a char pressed by the user.
CBaseGUIWindow * source_object
GLsizei const GLchar ** string
virtual void do_nothing() MRPT_OVERRIDE
Just to allow this class to be polymorphic.
non_copiable_ptr_basic< void > void_ptr_noncopy
mrptEventWindowClosed(CBaseGUIWindow *obj, bool _allow_close=true)
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
mrptEventMouseDown(CBaseGUIWindow *obj, mrpt::utils::TPixelCoord _coords, bool _leftButton, bool _rightButton)
mrptKeyModifier key_modifiers
Modifiers (Shift, Control, etc...)
#define DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE(class_name, _LINKAGE_)
mrptEventWindowChar(CBaseGUIWindow *obj, int _char_code, mrptKeyModifier _key_mod)
CBaseGUIWindow * source_object
CBaseGUIWindow * source_object
GLenum GLsizei GLsizei height
virtual void do_nothing() MRPT_OVERRIDE
Just to allow this class to be polymorphic.
int char_code
The virtual key code, as defined in <mrpt/gui/keycodes.h> (a replication of wxWidgets key codes)...
#define DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE(class_name, _LINKAGE_)
The base class for GUI window classes.
mrpt::utils::TPixelCoord coords
void clearKeyHitFlag()
Assure that "keyHit" will return false until the next pushed key.