// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef __WINDOWH__
-#define __WINDOWH__
+#ifndef _WX_WINDOW_H_
+#define _WX_WINDOW_H_
#ifdef __GNUG__
#pragma interface "window.h"
#include "wx/event.h"
#include "wx/string.h"
#include "wx/list.h"
+#include "wx/region.h"
#define wxKEY_SHIFT 1
#define wxKEY_CTRL 2
class WXDLLEXPORT wxValidator;
#if USE_DRAG_AND_DROP
-class wxDropTarget;
+class WXDLLEXPORT wxDropTarget;
#endif
#if USE_WX_RESOURCES
{
DECLARE_ABSTRACT_CLASS(wxWindow)
- friend class wxUpdateIterator;
friend class wxDC;
friend class wxPaintDC;
// 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(""); };
// 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);
////////////////////////////////////////////////////////////////////////
//// 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);
// 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);
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);
// 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
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;
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;
// 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);
int WXDLLEXPORT NewControlId(void);
#endif
- // __WINDOWH__
+ // _WX_WINDOW_H_