28 #ifndef CBaseGUIWindow_H
29 #define CBaseGUIWindow_H
45 using namespace mrpt::utils;
48 class CWindowDialogPlots;
49 class C3DWindowDialog;
74 friend class CWindowDialog;
75 friend class C3DWindowDialog;
76 friend class CWindowDialogPlots;
79 const
int m_CMD_CREATE_WIN;
80 const
int m_CMD_DESTROY_WIN;
81 void* m_winobj_voidptr;
84 synch::CSemaphore m_semThreadReady;
85 synch::CSemaphore m_semWindowDestroyed;
86 std::
string m_caption;
90 volatile
bool m_keyPushed;
91 volatile
int m_keyPushedCode;
94 void createWxWindow(
unsigned int initialWidth,
unsigned int initialHeight);
95 void destroyWxWindow();
98 void * getWxObject() {
return m_hwnd.
get(); }
99 void notifyChildWindowDestruction();
100 void notifySemThreadReady();
105 CBaseGUIWindow(
void* winobj_voidptr,
int CMD_CREATE_WIN,
int CMD_DESTROY_WIN,
const std::string &initial_caption = std::string() );
114 virtual void resize(
unsigned int width,
unsigned int height ) = 0;
118 virtual void setPos(
int x,
int y ) = 0;
122 virtual void setWindowTitle(
const std::string &str )=0;
125 virtual bool getLastMousePosition(
int &x,
int &y)
const = 0;
128 virtual void setCursorCross(
bool cursorIsCross) = 0;
140 int waitForKey(
bool ignoreControlKeys =
true,
mrptKeyModifier *out_pushModifier=NULL);
145 bool keyHit()
const {
return m_keyPushed; }
181 ) : source_object(obj), char_code(_char_code), key_modifiers(_key_mod) { }
201 size_t _new_height) : source_object(obj), new_width(_new_width), new_height(_new_width) { }
224 ) : source_object(obj), coords(_coords), leftButton(_leftButton), rightButton(_rightButton)
249 bool _allow_close =
true )
250 : source_object(obj), allow_close(_allow_close)