X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/524761867cd4ebcb4e421ccc9879f95a851e764a..f4e325b3df3d4c0b3ca21d4d1781acab6a488e4c:/include/wx/msw/window.h?ds=sidebyside diff --git a/include/wx/msw/window.h b/include/wx/msw/window.h index d83616333a..75d17676f0 100644 --- a/include/wx/msw/window.h +++ b/include/wx/msw/window.h @@ -9,8 +9,8 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __WINDOWH__ -#define __WINDOWH__ +#ifndef _WX_WINDOW_H_ +#define _WX_WINDOW_H_ #ifdef __GNUG__ #pragma interface "window.h" @@ -25,6 +25,7 @@ #include "wx/event.h" #include "wx/string.h" #include "wx/list.h" +#include "wx/region.h" #define wxKEY_SHIFT 1 #define wxKEY_CTRL 2 @@ -66,7 +67,7 @@ class WXDLLEXPORT wxDC; class WXDLLEXPORT wxValidator; #if USE_DRAG_AND_DROP -class wxDropTarget; +class WXDLLEXPORT wxDropTarget; #endif #if USE_WX_RESOURCES @@ -83,7 +84,6 @@ class WXDLLEXPORT wxWindow: public wxEvtHandler { DECLARE_ABSTRACT_CLASS(wxWindow) - friend class wxUpdateIterator; friend class wxDC; friend class wxPaintDC; @@ -202,6 +202,12 @@ public: // Accept files for dragging virtual void DragAcceptFiles(bool accept); + // Update region access + virtual wxRegion GetUpdateRegion() const; + virtual bool IsExposed(int x, int y, int w, int h) const; + virtual bool IsExposed(const wxPoint& pt) const; + virtual bool IsExposed(const wxRect& rect) const; + // Set/get the window title virtual inline void SetTitle(const wxString& WXUNUSED(title)) {}; inline virtual wxString GetTitle(void) const { return wxString(""); }; @@ -386,7 +392,6 @@ public: // Do Update UI processing for controls void UpdateWindowUI(void); - void OnSize(wxSizeEvent& event); void OnEraseBackground(wxEraseEvent& event); void OnChar(wxKeyEvent& event); void OnPaint(wxPaintEvent& event); @@ -399,6 +404,14 @@ public: //////////////////////////////////////////////////////////////////////// //// IMPLEMENTATION + // For implementation purposes - sometimes decorations make the client area + // smaller + virtual wxPoint GetClientAreaOrigin() const; + + // Makes an adjustment to the window position (for example, a frame that has + // a toolbar that it manages itself). + virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags); + // Windows subclassing void SubclassWin(WXHWND hWnd); void UnsubclassWin(void); @@ -475,6 +488,9 @@ public: // Setup background and foreground colours correctly virtual void SetupColours(void); + // Saves the last message information before calling base version + virtual bool ProcessEvent(wxEvent& event); + // Handlers virtual void MSWOnCreate(WXLPCREATESTRUCT cs); virtual bool MSWOnPaint(void); @@ -489,6 +505,8 @@ public: virtual WXHBRUSH MSWOnCtlColor(WXHDC dc, WXHWND pWnd, WXUINT nCtlColor, WXUINT message, WXWPARAM wParam, WXLPARAM lParam); virtual bool MSWOnColorChange(WXHWND hWnd, WXUINT message, WXWPARAM wParam, WXLPARAM lParam); + virtual long MSWOnPaletteChanged(WXHWND hWndPalChange); + virtual long MSWOnQueryNewPalette(); virtual bool MSWOnEraseBkgnd(WXHDC pDC); virtual void MSWOnMenuHighlight(WXWORD item, WXWORD flags, WXHMENU sysmenu); virtual void MSWOnInitMenuPopup(WXHMENU menu, int pos, bool isSystem); @@ -539,6 +557,7 @@ public: // Calls an appropriate default window procedure virtual long MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); virtual bool MSWProcessMessage(WXMSG* pMsg); + virtual bool MSWTranslateMessage(WXMSG* pMsg); virtual void MSWDestroyWindow(void); // Detach "Window" menu from menu bar so it doesn't get deleted @@ -584,7 +603,7 @@ protected: bool m_useCtl3D; // Using CTL3D for this control bool m_inOnSize; // Protection against OnSize reentry -#ifndef __WIN32__ +#ifndef _WX_WIN32__ // Pointer to global memory, for EDIT controls that need // special treatment to reduce USER area consumption. WXHGLOBAL m_globalHandle; @@ -640,11 +659,16 @@ public: WXUINT m_lastMsg; WXWPARAM m_lastWParam; WXLPARAM m_lastLParam; + + wxRegion m_updateRegion; +/* wxRectangle m_updateRect; // Bounding box for screen damage area #ifdef __WIN32__ WXHRGN m_updateRgn; // NT allows access to the rectangle list #endif - WXHANDLE m_acceleratorTable; +*/ + +// WXHANDLE m_acceleratorTable; WXHMENU m_hMenu; // Menu, if any wxList * m_children; // Window's children int m_returnCode; @@ -707,29 +731,6 @@ inline bool wxWindow::IsBeingDeleted(void) { return m_isBeingDeleted; } // Window specific (so far) wxWindow* WXDLLEXPORT wxGetActiveWindow(void); -// Allows iteration through damaged rectangles in OnPaint -class WXDLLEXPORT wxUpdateIterator -{ - int rects; // How many rects in Update region - int current; // Current rectangle index - void *rp; // current rectangle -#ifdef __WIN32__ - WXRGNDATA *rlist; // Storage for regiondata -#endif - - public: - wxUpdateIterator(wxWindow* wnd); - ~wxUpdateIterator(void); - - operator int (void); - wxUpdateIterator* operator ++(int); - void GetRect(wxRectangle *rect); - int GetX(); - int GetY(); - int GetW(); - int GetH(); -}; - WXDLLEXPORT_DATA(extern wxList) wxTopLevelWindows; int WXDLLEXPORT wxCharCodeMSWToWX(int keySym); @@ -739,4 +740,4 @@ int WXDLLEXPORT wxCharCodeWXToMSW(int id, bool *IsVirtual); int WXDLLEXPORT NewControlId(void); #endif - // __WINDOWH__ + // _WX_WINDOW_H_