Go to the documentation of this file.
9 #ifndef CBaseGUIWindow_H
10 #define CBaseGUIWindow_H
46 public
mrpt::utils::CObservable
51 friend class CWindowDialog;
52 friend class C3DWindowDialog;
53 friend class CWindowDialogPlots;
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();
82 CBaseGUIWindow(
void* winobj_voidptr,
int CMD_CREATE_WIN,
int CMD_DESTROY_WIN,
const std::string &initial_caption = std::string() );
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)
227 bool _allow_close =
true )
228 : source_object(obj), allow_close(_allow_close)
class BASE_IMPEXP CObject
The basic event type for the observer-observable pattern in MRPT.
mrptEventMouseDown(CBaseGUIWindow *obj, mrpt::utils::TPixelCoord _coords, bool _leftButton, bool _rightButton)
virtual void do_nothing() MRPT_OVERRIDE
Just to allow this class to be polymorphic.
CBaseGUIWindow * source_object
An event sent by a window upon a char pressed by the user.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
#define DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE(class_name, _LINKAGE_)
An event sent by a window upon resize.
void clearKeyHitFlag()
Assure that "keyHit" will return false until the next pushed key.
virtual void do_nothing() MRPT_OVERRIDE
Just to allow this class to be polymorphic.
The base class for GUI window classes.
An event sent by a window upon a mouse click, giving the (x,y) pixel coordinates.
virtual void do_nothing() MRPT_OVERRIDE
Just to allow this class to be polymorphic.
CBaseGUIWindow * source_object
mrptEventWindowChar(CBaseGUIWindow *obj, int _char_code, mrptKeyModifier _key_mod)
CBaseGUIWindow * source_object
mrptKeyModifier key_modifiers
Modifiers (Shift, Control, etc...)
int char_code
The virtual key code, as defined in <mrpt/gui/keycodes.h> (a replication of wxWidgets key codes).
#define DEFINE_VIRTUAL_SERIALIZABLE(class_name)
This declaration must be inserted in virtual CSerializable classes definition:
#define DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE(class_name, _LINKAGE_)
mrptEventWindowClosed(CBaseGUIWindow *obj, bool _allow_close=true)
A pair (x,y) of pixel coordinates (integer resolution).
non_copiable_ptr_basic< void > void_ptr_noncopy
mrpt::utils::TPixelCoord coords
bool keyHit() const
Returns true if a key has been pushed, without blocking waiting for a new key being pushed.
An event sent by a window upon when it's about to be closed, either manually by the user or programat...
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
virtual void do_nothing() MRPT_OVERRIDE
Just to allow this class to be polymorphic.
mrptEventWindowResize(CBaseGUIWindow *obj, size_t _new_width, size_t _new_height)
CBaseGUIWindow * source_object
Page generated by Doxygen 1.8.16 for MRPT 1.4.0 SVN: at Mon Oct 14 23:08:25 UTC 2019 | | |