]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/univ/window.h
added selecting-while-dragging
[wxWidgets.git] / include / wx / univ / window.h
index 78cf266257dd70d345de21bcfd2493696aaa6b23..4081781d874131206c31f139dc4b2ef002db3ee5 100644 (file)
@@ -8,7 +8,7 @@
 // Created:     06.08.00
 // RCS-ID:      $Id$
 // Copyright:   (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
 // Created:     06.08.00
 // RCS-ID:      $Id$
 // Copyright:   (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_UNIV_WINDOW_H_
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_UNIV_WINDOW_H_
@@ -51,6 +51,12 @@ enum
     wxCONTROL_DIRTY      = 0x80000000
 };
 
     wxCONTROL_DIRTY      = 0x80000000
 };
 
+#ifdef __WXX11__
+#define wxUSE_TWO_WINDOWS 1
+#else
+#define wxUSE_TWO_WINDOWS 0
+#endif
+
 // ----------------------------------------------------------------------------
 // wxWindow
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // wxWindow
 // ----------------------------------------------------------------------------
@@ -61,6 +67,8 @@ enum
 #define wxWindowNative wxWindowGTK
 #elif defined(__WXMGL__)
 #define wxWindowNative wxWindowMGL
 #define wxWindowNative wxWindowGTK
 #elif defined(__WXMGL__)
 #define wxWindowNative wxWindowMGL
+#elif defined(__WXX11__)
+#define wxWindowNative wxWindowX11
 #elif defined(__WXMAC__)
 #define wxWindowNative wxWindowMac
 #endif
 #elif defined(__WXMAC__)
 #define wxWindowNative wxWindowMac
 #endif
@@ -163,6 +171,16 @@ public:
     // control (e.g. a button, checkbox, ...)
     virtual bool IsContainerWindow() const { return FALSE; }
 
     // control (e.g. a button, checkbox, ...)
     virtual bool IsContainerWindow() const { return FALSE; }
 
+    // returns TRUE if the control has "transparent" areas such
+    // as a wxStaticText and wxCheckBox and the background should
+    // be adapted from a parent window
+    virtual bool HasTransparentBackground() { return FALSE; }
+    
+    // to be used with function above: transparent windows get
+    // their background from parents that return TRUE here,
+    // so this is mostly for wxPanel, wxTopLevelWindow etc.
+    virtual bool ProvidesBackground() const { return FALSE; }
+
     // return TRUE if this control can be highlighted when the mouse is over
     // it (the theme decides itself whether it is really highlighted or not)
     virtual bool CanBeHighlighted() const { return FALSE; }
     // return TRUE if this control can be highlighted when the mouse is over
     // it (the theme decides itself whether it is really highlighted or not)
     virtual bool CanBeHighlighted() const { return FALSE; }
@@ -173,6 +191,10 @@ public:
     bool UseFgCol() const { return m_hasFgCol; }
     bool UseFont() const { return m_hasFont; }
 
     bool UseFgCol() const { return m_hasFgCol; }
     bool UseFont() const { return m_hasFont; }
 
+    // return TRUE if this window serves as a container for the other windows
+    // only and doesn't get any input itself
+    virtual bool IsStaticBox() const { return FALSE; }
+
     // returns the (low level) renderer to use for drawing the control by
     // querying the current theme
     wxRenderer *GetRenderer() const { return m_renderer; }
     // returns the (low level) renderer to use for drawing the control by
     // querying the current theme
     wxRenderer *GetRenderer() const { return m_renderer; }
@@ -188,7 +210,7 @@ public:
 
     // erase part of the control
     virtual void EraseBackground(wxDC& dc, const wxRect& rect);
 
     // erase part of the control
     virtual void EraseBackground(wxDC& dc, const wxRect& rect);
-
+    
     // overridden base class methods
     // -----------------------------
 
     // overridden base class methods
     // -----------------------------
 
@@ -254,23 +276,28 @@ protected:
 
     // the renderer we use
     wxRenderer *m_renderer;
 
     // the renderer we use
     wxRenderer *m_renderer;
-
+    
     // background bitmap info
     wxBitmap  m_bitmapBg;
     int       m_alignBgBitmap;
     wxStretch m_stretchBgBitmap;
     // background bitmap info
     wxBitmap  m_bitmapBg;
     int       m_alignBgBitmap;
     wxStretch m_stretchBgBitmap;
+    
+    // old size
+    wxSize m_oldSize;
 
     // is the mouse currently inside the window?
     bool m_isCurrent:1;
 
 
     // is the mouse currently inside the window?
     bool m_isCurrent:1;
 
+#ifdef __WXMSW__
+    // override MSWWindowProc() to process WM_NCHITTEST
+    long MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+#endif // __WXMSW__
+
 private:
     // the window scrollbars
     wxScrollBar *m_scrollbarHorz,
                 *m_scrollbarVert;
 
 private:
     // the window scrollbars
     wxScrollBar *m_scrollbarHorz,
                 *m_scrollbarVert;
 
-    // the stack of windows which have captured the mouse
-    static struct WXDLLEXPORT wxWindowNext *ms_winCaptureNext;
-
 #if wxUSE_MENUS
     // the current modal event loop for the popup menu we show or NULL
     static wxEventLoop *ms_evtLoopPopup;
 #if wxUSE_MENUS
     // the current modal event loop for the popup menu we show or NULL
     static wxEventLoop *ms_evtLoopPopup;