]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/window.h
an extra backslash removed
[wxWidgets.git] / include / wx / msw / window.h
index 47ef66082ec6863126f0a5a43762ad7b744dfd09..252b53c7c72ce043a112dca3304ed14e3bfa2558 100644 (file)
@@ -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,8 @@
 #include "wx/event.h"
 #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
@@ -65,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
@@ -83,7 +85,6 @@ class WXDLLEXPORT wxWindow: public wxEvtHandler
 {
   DECLARE_ABSTRACT_CLASS(wxWindow)
 
-  friend class wxUpdateIterator;
   friend class wxDC;
   friend class wxPaintDC;
 
@@ -192,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);
@@ -202,6 +203,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(""); };
@@ -288,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
@@ -342,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
@@ -386,36 +396,27 @@ 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);
   void OnIdle(wxIdleEvent& event);
 
-//  virtual void OnChangeFocus(wxControl *from, wxControl *to);
-//  virtual bool OnFunctionKey(wxKeyEvent &event);
-
-/*
-#if WXWIN_COMPATIBILITY
-  virtual void OldOnMenuSelect(int WXUNUSED(cmd));
-  virtual void OldOnInitMenuPopup(int WXUNUSED(pos));
-  virtual void OldOnScroll(wxCommandEvent& WXUNUSED(event));
-  virtual void OldOnPaint(void);                 // Called when needs painting
-  virtual void OldOnSize(int width, int height);           // Called on resize
-  virtual void OldOnMouseEvent(wxMouseEvent& event);  // Called on mouse event
-  virtual void OldOnChar(wxKeyEvent& event);     // Called on character event
-  virtual void OldOnMenuCommand(int cmd); // Dealt with properly in wxFrame
-  inline virtual void OldOnMove(int WXUNUSED(x), int WXUNUSED(y));          // Called on move
-  inline virtual void OldOnActivate(bool WXUNUSED(active));       // Called on window activation (MSW)
-  virtual void OldOnSetFocus(void);              // Called on setting focus
-  virtual void OldOnKillFocus(void);             // Called on killing focus
-#endif
-*/
+  // Does this window want to accept keyboard focus?
+  virtual bool AcceptsFocus() const;
 
+  virtual void PrepareDC( wxDC &dc ) {};
 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);
@@ -492,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);
@@ -506,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);
@@ -548,12 +554,15 @@ public:
   virtual void MSWOnJoyMove(int joystick, int x, int y, WXUINT flags);
   virtual void MSWOnJoyZMove(int joystick, int z, WXUINT flags);
 
+  virtual long MSWGetDlgCode();
+
   // Window procedure
   virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
 
   // 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,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'
@@ -599,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;
@@ -616,11 +626,6 @@ protected:
   int                   m_caretHeight;
   bool                  m_caretEnabled;
   bool                  m_caretShown;
-
-  // Device context being stored whilst drawing is done
-//  WXHDC                 m_tempHDC;
-  // Temporary device context stored during an OnPaint
-//  WXHDC                 m_paintHDC;
   wxFont                m_windowFont;                               // Window's font
   bool                  m_isShown;
   bool                  m_doubleClickAllowed ;
@@ -628,7 +633,7 @@ protected:
   bool                  m_winCaptured;
   wxString              m_windowName;                            // Window name
 
-#if USE_EXTENDED_STATICS
+#if wxUSE_EXTENDED_STATICS
   wxList                m_staticItems;
 #endif
 
@@ -642,8 +647,6 @@ protected:
 
   bool                  m_backgroundTransparent;
 
-//  wxDC *                m_windowDC;    // The canvas's device context
-
   int                   m_xThumbSize;
   int                   m_yThumbSize;
 
@@ -653,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
 
@@ -662,11 +665,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;
@@ -709,20 +717,8 @@ inline wxColour wxWindow::GetDefaultBackgroundColour(void) const { return m_defa
 
 inline wxButton *wxWindow::GetDefaultItem(void) const { return m_defaultItem; }
 inline void wxWindow::SetDefaultItem(wxButton *but) { m_defaultItem = but; }
-// inline wxDC *wxWindow::GetDC(void) const { return m_windowDC; }
 inline bool wxWindow::IsRetained(void) const { return ((m_windowStyle & wxRETAINED) == wxRETAINED); }
 
-/*
-#if WXWIN_COMPATIBILITY
-inline void wxWindow::OldOnMenuSelect(int WXUNUSED(cmd)) { Default(); };
-inline void wxWindow::OldOnInitMenuPopup(int WXUNUSED(pos)) { Default(); };
-inline void wxWindow::OldOnScroll(wxCommandEvent& WXUNUSED(event)) { Default(); };
-inline void wxWindow::OldOnMenuCommand(int WXUNUSED(cmd)) { Default(); } // Dealt with properly in wxFrame
-inline void wxWindow::OldOnMove(int WXUNUSED(x), int WXUNUSED(y)) { Default(); };          // Called on move
-inline void wxWindow::OldOnActivate(bool WXUNUSED(active)) { Default(); };       // Called on window activation (MSW)
-#endif
-*/
-
 inline void wxWindow::SetShowing(bool show) { m_isShown = show; }
 inline wxList *wxWindow::GetConstraintsInvolvedIn(void) const { return m_constraintsInvolvedIn; }
 inline wxSizer *wxWindow::GetSizer(void) const { return m_windowSizer; }
@@ -741,29 +737,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);
@@ -773,4 +746,4 @@ int WXDLLEXPORT wxCharCodeWXToMSW(int id, bool *IsVirtual);
 int WXDLLEXPORT NewControlId(void);
 
 #endif
-    // __WINDOWH__
+    // _WX_WINDOW_H_