// ---------------------------------------------------------------------------
// wxWindow declaration for MSW
// ---------------------------------------------------------------------------
+
class WXDLLEXPORT wxWindow : public wxWindowBase
{
- DECLARE_DYNAMIC_CLASS(wxWindow);
-
public:
wxWindow() { Init(); }
virtual void SetFocus();
- virtual bool Reparent( wxWindow *newParent );
+ virtual bool Reparent( wxWindowBase *newParent );
virtual void WarpPointer(int x, int y);
virtual void CaptureMouse();
wxWindow* GetWindowChild1(wxWindowID id);
wxWindow* GetWindowChild(wxWindowID id);
+ // a MSW only function which sends a size event to the window using its
+ // current size - this has an effect of refreshing the window layout
+/*
+FUNCTION IS NOW A MEMBER OF wxFrame - gt
+ void SendSizeEvent();
+*/
+
// implementation from now on
// --------------------------
// event handlers
// --------------
+
+ void OnSetFocus(wxFocusEvent& event);
void OnEraseBackground(wxEraseEvent& event);
void OnIdle(wxIdleEvent& event);
+ void OnPaint(wxPaintEvent& event);
public:
// For implementation purposes - sometimes decorations make the client area
WXFARPROC MSWGetOldWndProc() const { return m_oldWndProc; }
void MSWSetOldWndProc(WXFARPROC proc) { m_oldWndProc = proc; }
- wxWindow *FindItem(int id) const;
+ wxWindow *FindItem(long id) const;
wxWindow *FindItemByHWND(WXHWND hWnd, bool controlOnly = FALSE) const;
// Make a Windows extended style from the given wxWindows window style
- virtual WXDWORD MakeExtendedStyle(long style, bool eliminateBorders = TRUE);
+ static WXDWORD MakeExtendedStyle(long style,
+ bool eliminateBorders = FALSE);
// Determine whether 3D effects are wanted
- virtual WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D);
+ WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D) const;
// MSW only: TRUE if this control is part of the main control
virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return FALSE; };
WXWORD *item, WXWORD *flags, WXHMENU *hmenu);
// ------------------------------------------------------------------------
- // internal handlers for MSW messages: all handlers return a boolen value:
+ // internal handlers for MSW messages: all handlers return a boolean value:
// TRUE means that the handler processed the event and FALSE that it didn't
// ------------------------------------------------------------------------
bool HandleMouseEvent(WXUINT msg, int x, int y, WXUINT flags);
bool HandleMouseMove(int x, int y, WXUINT flags);
+ bool HandleMouseWheel(WXWPARAM wParam, WXLPARAM lParam);
- bool HandleChar(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE);
- bool HandleKeyDown(WXWORD wParam, WXLPARAM lParam);
- bool HandleKeyUp(WXWORD wParam, WXLPARAM lParam);
+ bool HandleChar(WXWPARAM wParam, WXLPARAM lParam, bool isASCII = FALSE);
+ bool HandleKeyDown(WXWPARAM wParam, WXLPARAM lParam);
+ bool HandleKeyUp(WXWPARAM wParam, WXLPARAM lParam);
bool HandleQueryDragIcon(WXHICON *hIcon);
int sizeFlags = wxSIZE_AUTO);
virtual void DoSetClientSize(int width, int height);
- // get the size which best suits the window: e.g., for a static text it
- // will be the width and height of the text
- virtual wxSize DoGetBestSize();
+ // move the window to the specified location and resize it: this is called
+ // from both DoSetSize() and DoSetClientSize() and would usually just call
+ // ::MoveWindow() except for composite controls which will want to arrange
+ // themselves inside the given rectangle
+ virtual void DoMoveWindow(int x, int y, int width, int height);
#if wxUSE_TOOLTIPS
virtual void DoSetToolTip( wxToolTip *tip );
bool HandleNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
#endif // __WIN95__
+ // the helper functions used by HandleChar/KeyXXX methods
+ wxKeyEvent CreateKeyEvent(wxEventType evType, int id, WXLPARAM lp) const;
+
+ DECLARE_DYNAMIC_CLASS(wxWindow);
DECLARE_NO_COPY_CLASS(wxWindow);
DECLARE_EVENT_TABLE()
};