// constants
// ---------------------------------------------------------------------------
-// FIXME does anybody use those? they're unused by wxWidgets...
+#if WXWIN_COMPATIBILITY_2_4
+// they're unused by wxWidgets...
enum
{
wxKEY_SHIFT = 1,
wxKEY_CTRL = 2
};
+#endif
// ---------------------------------------------------------------------------
// wxWindow declaration for MSW
#endif
public:
- // For implementation purposes - sometimes decorations make the client area
- // smaller
- virtual wxPoint GetClientAreaOrigin() const;
-
// Windows subclassing
void SubclassWin(WXHWND hWnd);
void UnsubclassWin();
// normally just calls MSWGetBgBrushForChild() on the parent window but may
// be overridden if the default background brush is not suitable for some
// reason (e.g. wxStaticBox uses MSWGetSolidBgBrushForChild() instead)
- virtual WXHBRUSH MSWGetBgBrushForSelf(wxWindow *parent, WXHDC hDC)
- {
- return parent->MSWGetBgBrushForChild(hDC, this);
- }
+ virtual WXHBRUSH MSWGetBgBrushForSelf(wxWindow *parent, WXHDC hDC);
// return the background brush to use for this window by quering the parent
// 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() ;
int m_lastMouseEvent;
#endif // wxUSE_MOUSEEVENT_HACK
- WXHMENU m_hMenu; // Menu, if any
-
// implement the base class pure virtuals
virtual void DoClientToScreen( int *x, int *y ) const;
virtual void DoScreenToClient( int *x, int *y ) const;
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()