X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/81d66cf39f810503baed79213bc3122fda0ccc7b..d4b67f95d2bd56876030aaf6e5582493f2b08664:/include/wx/msw/window.h?ds=sidebyside diff --git a/include/wx/msw/window.h b/include/wx/msw/window.h index c1cb243339..252b53c7c7 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" @@ -26,6 +26,7 @@ #include "wx/string.h" #include "wx/list.h" #include "wx/region.h" +#include "wx/msw/accel.h" #define wxKEY_SHIFT 1 #define wxKEY_CTRL 2 @@ -66,11 +67,11 @@ class WXDLLEXPORT wxIcon; class WXDLLEXPORT wxDC; class WXDLLEXPORT wxValidator; -#if USE_DRAG_AND_DROP -class wxDropTarget; +#if wxUSE_DRAG_AND_DROP +class WXDLLEXPORT wxDropTarget; #endif -#if USE_WX_RESOURCES +#if wxUSE_WX_RESOURCES class WXDLLEXPORT wxResourceTable; class WXDLLEXPORT wxItemResource; #endif @@ -84,7 +85,6 @@ class WXDLLEXPORT wxWindow: public wxEvtHandler { DECLARE_ABSTRACT_CLASS(wxWindow) - friend class wxUpdateIterator; friend class wxDC; friend class wxPaintDC; @@ -193,7 +193,7 @@ public: // Enable or disable the window virtual void Enable(bool enable); -#if USE_DRAG_AND_DROP +#if wxUSE_DRAG_AND_DROP // Associate a drop target with this window (if the window already had a drop // target, it's deleted!) and return the current drop target (may be NULL). void SetDropTarget(wxDropTarget *pDropTarget); @@ -295,7 +295,7 @@ public: inline bool GetDoubleClick(void) const; inline void AllowDoubleClick(bool value) { SetDoubleClick(value); } - // Old way to handle a control command + // Handle a control command virtual void OnCommand(wxWindow& win, wxCommandEvent& event); // Set/get event handler @@ -349,12 +349,15 @@ public: inline virtual wxButton *GetDefaultItem(void) const; inline virtual void SetDefaultItem(wxButton *but); + virtual void SetAcceleratorTable(const wxAcceleratorTable& accel); + inline virtual wxAcceleratorTable& GetAcceleratorTable() const { return (wxAcceleratorTable&) m_acceleratorTable; } + // Override to define new behaviour for default action (e.g. double clicking // on a listbox) virtual void OnDefaultAction(wxControl *initiatingItem); // Resource loading -#if USE_WX_RESOURCES +#if wxUSE_WX_RESOURCES virtual bool LoadFromResource(wxWindow *parent, const wxString& resourceName, const wxResourceTable *table = NULL); virtual wxControl *CreateItem(const wxItemResource *childResource, const wxResourceTable *table = NULL); #endif @@ -401,6 +404,7 @@ public: // Does this window want to accept keyboard focus? virtual bool AcceptsFocus() const; + virtual void PrepareDC( wxDC &dc ) {}; public: //////////////////////////////////////////////////////////////////////// //// IMPLEMENTATION @@ -489,6 +493,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); @@ -503,6 +510,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); @@ -553,6 +562,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 @@ -583,6 +593,7 @@ public: //////////////////////////////////////////////////////////////////////// //// PROTECTED DATA protected: + wxAcceleratorTable m_acceleratorTable; int m_windowId; long m_windowStyle; // Store the window's style wxEvtHandler * m_windowEventHandler; // Usually is 'this' @@ -598,7 +609,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; @@ -622,7 +633,7 @@ protected: bool m_winCaptured; wxString m_windowName; // Window name -#if USE_EXTENDED_STATICS +#if wxUSE_EXTENDED_STATICS wxList m_staticItems; #endif @@ -645,7 +656,7 @@ protected: bool m_mouseInWindow; -#if USE_DRAG_AND_DROP +#if wxUSE_DRAG_AND_DROP wxDropTarget *m_pDropTarget; // the current drop target or NULL #endif //USE_DRAG_AND_DROP @@ -663,7 +674,7 @@ public: #endif */ - WXHANDLE m_acceleratorTable; +// WXHANDLE m_acceleratorTable; WXHMENU m_hMenu; // Menu, if any wxList * m_children; // Window's children int m_returnCode; @@ -726,32 +737,6 @@ inline bool wxWindow::IsBeingDeleted(void) { return m_isBeingDeleted; } // Window specific (so far) wxWindow* WXDLLEXPORT wxGetActiveWindow(void); -// OBSOLETE -#if 0 -// 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(); -}; -#endif - WXDLLEXPORT_DATA(extern wxList) wxTopLevelWindows; int WXDLLEXPORT wxCharCodeMSWToWX(int keySym); @@ -761,4 +746,4 @@ int WXDLLEXPORT wxCharCodeWXToMSW(int id, bool *IsVirtual); int WXDLLEXPORT NewControlId(void); #endif - // __WINDOWH__ + // _WX_WINDOW_H_