#endif
public:
- // For implementation purposes - sometimes decorations make the client area
- // smaller
- virtual wxPoint GetClientAreaOrigin() const;
-
// Windows subclassing
void SubclassWin(WXHWND hWnd);
void UnsubclassWin();
// windows via their MSWGetBgBrushForChild() recursively
WXHBRUSH MSWGetBgBrush(WXHDC hDC);
+ // overriding this method gives the parent window the opportunity to
+ // process WM_PRINTCLIENT for its children: this is currently used by
+ // wxNotebook to draw themed background for them
+ //
+ // return true if the message was processed or false to use default logic
+ // for it (currently this means handling it just as WM_PAINT i.e. render
+ // the control into the provided DC)
+ virtual bool MSWPrintChild(wxWindow *win, WXWPARAM wParam, WXLPARAM lParam);
+
+
// Responds to colour changes: passes event on to children.
void OnSysColourChanged(wxSysColourChangedEvent& event);
// check if mouse is in the window
bool IsMouseInWindow() const;
+ // synthesize a wxEVT_LEAVE_WINDOW event and set m_mouseInWindow to false
+ void GenerateMouseLeave();
+
// virtual function for implementing internal idle
// behaviour
virtual void OnInternalIdle() ;
// the old window proc (we subclass all windows)
WXFARPROC m_oldWndProc;
- // the current multi-window move structure handle, NULL if window resize is
- // not in process
- WXHANDLE m_hDWP;
-
// additional (MSW specific) flags
bool m_mouseInWindow:1;
bool m_lastKeydownProcessed:1;
wxKeyEvent CreateKeyEvent(wxEventType evType, int id,
WXLPARAM lParam = 0, WXWPARAM wParam = 0) const;
+
+ // default OnEraseBackground() implementation, return true if we did erase
+ // the background, false otherwise
+ bool DoEraseBackground(wxDC& dc);
+
private:
// common part of all ctors
void Init();
// number of calls to Freeze() minus number of calls to Thaw()
unsigned int m_frozenness;
+ // current defer window position operation handle (may be NULL)
+ WXHANDLE m_hDWP;
+
+
DECLARE_DYNAMIC_CLASS(wxWindowMSW)
DECLARE_NO_COPY_CLASS(wxWindowMSW)
DECLARE_EVENT_TABLE()