]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/window.h
more fixes, printing works quite fine now
[wxWidgets.git] / include / wx / msw / window.h
index e18eec3a638b0acb392abcb3412f1841a7f7dbe0..1fc2958ab1774aa1213136129da17c1c31fc12f5 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"
@@ -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
@@ -52,7 +53,7 @@ class WXDLLEXPORT wxCursor;
 class WXDLLEXPORT wxColourMap;
 class WXDLLEXPORT wxFont;
 class WXDLLEXPORT wxMenu;
-class WXDLLEXPORT wxRectangle;
+class WXDLLEXPORT wxRect;
 class WXDLLEXPORT wxBitmap;
 class WXDLLEXPORT wxSizer;
 class WXDLLEXPORT wxList;
@@ -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);
@@ -228,7 +228,7 @@ public:
   virtual bool PopupMenu(wxMenu *menu, int x, int y);
 
   // Send the window a refresh event
-  virtual void Refresh(bool eraseBack = TRUE, const wxRectangle *rect = NULL);
+  virtual void Refresh(bool eraseBack = TRUE, const wxRect *rect = NULL);
 
 #if WXWIN_COMPATIBILITY
   // Set/get scroll attributes
@@ -247,7 +247,7 @@ public:
   virtual int GetScrollRange(int orient) const;
   virtual int GetScrollThumb(int orient) const;
 
-  virtual void ScrollWindow(int dx, int dy, const wxRectangle *rect = NULL);
+  virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL);
 
   // Caret manipulation
   virtual void CreateCaret(int w, int h);
@@ -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
@@ -330,15 +330,6 @@ public:
   inline virtual void SetForegroundColour(const wxColour& col);
   inline virtual wxColour GetForegroundColour(void) const;
 
-  // TODO: are these really necessary???
-  // Set/get window default background colour (for children to inherit)
-  inline virtual void SetDefaultBackgroundColour(const wxColour& col);
-  inline virtual wxColour GetDefaultBackgroundColour(void) const;
-
-  // Set/get window default foreground colour (for children to inherit)
-  inline virtual void SetDefaultForegroundColour(const wxColour& col);
-  inline virtual wxColour GetDefaultForegroundColour(void) const;
-
   // For backward compatibility
   inline virtual void SetButtonFont(const wxFont& font) { SetFont(font); }
   inline virtual void SetLabelFont(const wxFont& font) { SetFont(font); }
@@ -349,14 +340,17 @@ 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);
+  virtual wxControl *CreateItem(const wxItemResource* childResource, const wxItemResource* parentResource, const wxResourceTable *table = NULL);
 #endif
 
   // Native resource loading
@@ -401,6 +395,7 @@ public:
   // Does this window want to accept keyboard focus?
   virtual bool AcceptsFocus() const;
 
+  virtual void PrepareDC( wxDC &dc ) {};
 public:
   ////////////////////////////////////////////////////////////////////////
   //// IMPLEMENTATION
@@ -470,6 +465,14 @@ public:
   virtual void GetClientSizeConstraint(int *w, int *h) const ;
   virtual void GetPositionConstraint(int *x, int *y) const ;
 
+  // Dialog units translations. Implemented in wincmn.cpp.
+  wxPoint ConvertPixelsToDialog(const wxPoint& pt) ;
+  wxPoint ConvertDialogToPixels(const wxPoint& pt) ;
+  inline wxSize ConvertPixelsToDialog(const wxSize& sz)
+  { wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
+  inline wxSize ConvertDialogToPixels(const wxSize& sz)
+  { wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
+
   wxObject *GetChild(int number) const ;
 
   void MSWCreate(int id, wxWindow *parent, const char *wclass, wxWindow *wx_win, const char *title,
@@ -489,6 +492,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);
@@ -509,6 +515,9 @@ public:
   virtual void MSWOnMenuHighlight(WXWORD item, WXWORD flags, WXHMENU sysmenu);
   virtual void MSWOnInitMenuPopup(WXHMENU menu, int pos, bool isSystem);
   virtual bool MSWOnClose(void);
+  // Return TRUE to end session, FALSE to veto end session.
+  virtual bool MSWOnQueryEndSession(long logOff);
+  virtual bool MSWOnEndSession(bool endSession, long logOff);
   virtual bool MSWOnDestroy(void);
   virtual bool MSWOnSetFocus(WXHWND wnd);
   virtual bool MSWOnKillFocus(WXHWND wnd);
@@ -586,6 +595,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'
@@ -601,7 +611,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;
@@ -625,18 +635,13 @@ protected:
   bool                  m_winCaptured;
   wxString              m_windowName;                            // Window name
 
-#if USE_EXTENDED_STATICS
+#if wxUSE_EXTENDED_STATICS
   wxList                m_staticItems;
 #endif
 
   wxButton *            m_defaultItem;
-
   wxColour              m_backgroundColour ;
-  wxColour              m_defaultBackgroundColour;
-
   wxColour              m_foregroundColour ;
-  wxColour              m_defaultForegroundColour;
-
   bool                  m_backgroundTransparent;
 
   int                   m_xThumbSize;
@@ -648,7 +653,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
 
@@ -660,7 +665,7 @@ public:
 
   wxRegion              m_updateRegion;
 /*
-  wxRectangle           m_updateRect;             // Bounding box for screen damage area
+  wxRect           m_updateRect;             // Bounding box for screen damage area
 #ifdef __WIN32__
   WXHRGN                m_updateRgn;                  // NT allows access to the rectangle list
 #endif
@@ -702,10 +707,6 @@ inline void wxWindow::SetBackgroundColour(const wxColour& col) { m_backgroundCol
 inline wxColour wxWindow::GetBackgroundColour(void) const { return m_backgroundColour; };
 inline void wxWindow::SetForegroundColour(const wxColour& col) { m_foregroundColour = col; };
 inline wxColour wxWindow::GetForegroundColour(void) const { return m_foregroundColour; };
-inline void wxWindow::SetDefaultForegroundColour(const wxColour& col) { m_defaultForegroundColour = col; };
-inline wxColour wxWindow::GetDefaultForegroundColour(void) const { return m_defaultForegroundColour; };
-inline void wxWindow::SetDefaultBackgroundColour(const wxColour& col) { m_defaultBackgroundColour = col; };
-inline wxColour wxWindow::GetDefaultBackgroundColour(void) const { return m_defaultBackgroundColour; };
 
 inline wxButton *wxWindow::GetDefaultItem(void) const { return m_defaultItem; }
 inline void wxWindow::SetDefaultItem(wxButton *but) { m_defaultItem = but; }
@@ -729,32 +730,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);
@@ -764,4 +739,4 @@ int WXDLLEXPORT wxCharCodeWXToMSW(int id, bool *IsVirtual);
 int WXDLLEXPORT NewControlId(void);
 
 #endif
-    // __WINDOWH__
+    // _WX_WINDOW_H_