// Get overall window size
virtual void GetSize(int *width, int *height) const;
+ virtual wxSize GetSize() const { int w, h; GetSize(& w, & h); return wxSize(w, h); }
+ virtual wxRect GetRect() const { int w, h; int x, y; GetPosition(& x, & y); GetSize(& w, & h); return wxRect(x, y, w, h); }
// Get window position, relative to parent (or screen if no parent)
virtual void GetPosition(int *x, int *y) const;
+ virtual wxPoint GetPosition() const { int x, y; GetPosition(&x, &y); return wxPoint(x, y); }
// Get client (application-useable) size
virtual void GetClientSize(int *width, int *height) const;
+ virtual wxSize GetClientSize() const { int w, h; GetClientSize(& w, & h); return wxSize(w, h); }
// Set overall size and position
virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO);
- inline virtual void SetSize(int width, int height) { SetSize(-1, -1, width, height, wxSIZE_USE_EXISTING); }
- inline virtual void Move(int x, int y) { SetSize(x, y, -1, -1, wxSIZE_USE_EXISTING); }
+ virtual void SetSize(int width, int height) { SetSize(-1, -1, width, height, wxSIZE_USE_EXISTING); }
+ virtual void SetSize(const wxRect& rect, int sizeFlags = wxSIZE_AUTO)
+ { SetSize(rect.x, rect.y, rect.width, rect.height, sizeFlags); }
+ virtual void SetSize(const wxSize& size) { SetSize(-1, -1, size.x, size.y, wxSIZE_USE_EXISTING); }
+
+ virtual void Move(int x, int y) { SetSize(x, y, -1, -1, wxSIZE_USE_EXISTING); }
+ virtual void Move(const wxPoint& pt) { SetSize(pt.x, pt.y, -1, -1, wxSIZE_USE_EXISTING); }
// Set client size
virtual void SetClientSize(int width, int size);
+ virtual void SetClientSize(const wxSize& sz) { SetClientSize(sz.x, sz.y); }
// Convert client to screen coordinates
virtual void ClientToScreen(int *x, int *y) const;
+ virtual wxPoint ClientToScreen(const wxPoint& pt) const
+ { int x = pt.x; int y = pt.y; ClientToScreen(& x, & y); return wxPoint(x, y); }
// Convert screen to client coordinates
virtual void ScreenToClient(int *x, int *y) const;
+ virtual wxPoint ScreenToClient(const wxPoint& pt) const
+ { int x = pt.x; int y = pt.y; ScreenToClient(& x, & y); return wxPoint(x, y); }
// Set the focus to this window
virtual void SetFocus();
inline void SetParent(wxWindow *p) ;
inline wxWindow *GetGrandParent() const;
inline wxList *GetChildren() const;
+ // Reparents this window to have the new parent.
+ virtual bool Reparent(wxWindow* parent);
// Set/get the window's font
virtual void SetFont(const wxFont& f);
// Generates a paint event
virtual void DoPaint();
+ // How to implement accelerators. If we find a key event,
+ // translate to wxWindows wxKeyEvent form. Find a widget for the window.
+ // Now find a wxWindow for the widget. If there isn't one, go up the widget hierarchy
+ // trying to find one. Once one is found, call ProcessAccelerator for the
+ // window. If it returns TRUE (processed the event), skip the X event,
+ // otherwise carry on up the wxWindows window hierarchy calling ProcessAccelerator.
+ // If all return FALSE, process the X event as normal.
+ // Eventually we can implement OnCharHook the same way, but concentrate on accelerators
+ // for now.
+ // ProcessAccelerator must look at the current accelerator table, and try to find
+ // what menu id or window (beneath it) has this ID. Then construct an appropriate command
+ // event and send it.
+ virtual bool ProcessAccelerator(wxKeyEvent& event);
+
////////////////////////////////////////////////////////////////////////
//// PROTECTED DATA
protected: