]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/univ/window.h
add header required for PCH-less mingw32 compilation (closes #10196)
[wxWidgets.git] / include / wx / univ / window.h
index 3761d2e79d3b51e98477636637223a07736b9cf2..a6c92da662449e6932b3b942f45118720003e2d4 100644 (file)
 #ifndef _WX_UNIV_WINDOW_H_
 #define _WX_UNIV_WINDOW_H_
 
 #ifndef _WX_UNIV_WINDOW_H_
 #define _WX_UNIV_WINDOW_H_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma interface "univwindow.h"
-#endif
-
 #include "wx/bitmap.h"      // for m_bitmapBg
 
 #include "wx/bitmap.h"      // for m_bitmapBg
 
-class WXDLLEXPORT wxControlRenderer;
-class WXDLLEXPORT wxEventLoop;
-class WXDLLEXPORT wxMenu;
-class WXDLLEXPORT wxMenuBar;
-class WXDLLEXPORT wxRenderer;
-class WXDLLEXPORT wxScrollBar;
+class WXDLLIMPEXP_FWD_CORE wxControlRenderer;
+class WXDLLIMPEXP_FWD_CORE wxEventLoop;
+
+#if wxUSE_MENUS
+    class WXDLLIMPEXP_FWD_CORE wxMenu;
+    class WXDLLIMPEXP_FWD_CORE wxMenuBar;
+#endif // wxUSE_MENUS
+
+class WXDLLIMPEXP_FWD_CORE wxRenderer;
+
+#if wxUSE_SCROLLBAR
+    class WXDLLIMPEXP_FWD_CORE wxScrollBar;
+#endif // wxUSE_SCROLLBAR
 
 #ifdef __WXX11__
 #define wxUSE_TWO_WINDOWS 1
 
 #ifdef __WXX11__
 #define wxUSE_TWO_WINDOWS 1
@@ -49,7 +52,7 @@ class WXDLLEXPORT wxScrollBar;
 #define wxWindowNative wxWindowMac
 #endif
 
 #define wxWindowNative wxWindowMac
 #endif
 
-class WXDLLEXPORT wxWindow : public wxWindowNative
+class WXDLLIMPEXP_CORE wxWindow : public wxWindowNative
 {
 public:
     // ctors and create functions
 {
 public:
     // ctors and create functions
@@ -73,6 +76,8 @@ public:
                 long style = 0,
                 const wxString& name = wxPanelNameStr);
 
                 long style = 0,
                 const wxString& name = wxPanelNameStr);
 
+    virtual ~wxWindow();
+
     // background pixmap support
     // -------------------------
 
     // background pixmap support
     // -------------------------
 
@@ -108,8 +113,6 @@ public:
     // NB: all menu related functions are implemented in menu.cpp
 
 #if wxUSE_MENUS
     // NB: all menu related functions are implemented in menu.cpp
 
 #if wxUSE_MENUS
-    virtual bool DoPopupMenu(wxMenu *menu, int x, int y);
-
     // this is wxUniv-specific private method to be used only by wxMenu
     void DismissPopupMenu();
 #endif // wxUSE_MENUS
     // this is wxUniv-specific private method to be used only by wxMenu
     void DismissPopupMenu();
 #endif // wxUSE_MENUS
@@ -129,11 +132,13 @@ public:
     // set the "highlighted" flag and return true if it changed
     virtual bool SetCurrent(bool doit = true);
 
     // set the "highlighted" flag and return true if it changed
     virtual bool SetCurrent(bool doit = true);
 
+#if wxUSE_SCROLLBAR
     // get the scrollbar (may be NULL) for the given orientation
     wxScrollBar *GetScrollbar(int orient) const
     {
         return orient & wxVERTICAL ? m_scrollbarVert : m_scrollbarHorz;
     }
     // get the scrollbar (may be NULL) for the given orientation
     wxScrollBar *GetScrollbar(int orient) const
     {
         return orient & wxVERTICAL ? m_scrollbarVert : m_scrollbarHorz;
     }
+#endif // wxUSE_SCROLLBAR
 
     // methods used by wxColourScheme to choose the colours for this window
     // --------------------------------------------------------------------
 
     // methods used by wxColourScheme to choose the colours for this window
     // --------------------------------------------------------------------
@@ -142,23 +147,12 @@ public:
     // controls only
     virtual bool IsCanvasWindow() const { return false; }
 
     // controls only
     virtual bool IsCanvasWindow() 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 we should use the colours/fonts returned by the
     // corresponding GetXXX() methods instead of the default ones
     // 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 we should use the colours/fonts returned by the
     // corresponding GetXXX() methods instead of the default ones
-    bool UseBgCol() const { return m_hasBgCol; }
     bool UseFgCol() const { return m_hasFgCol; }
     bool UseFont() const { return m_hasFont; }
 
     bool UseFgCol() const { return m_hasFgCol; }
     bool UseFont() const { return m_hasFont; }
 
@@ -181,7 +175,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
     // -----------------------------
 
@@ -196,11 +190,23 @@ public:
     // should we use the standard control colours or not?
     virtual bool ShouldInheritColours() const { return false; }
 
     // should we use the standard control colours or not?
     virtual bool ShouldInheritColours() const { return false; }
 
+    virtual bool IsClientAreaChild(const wxWindow *child) const
+    {
+#if wxUSE_SCROLLBAR
+        if ( child == (wxWindow*)m_scrollbarHorz ||
+             child == (wxWindow*)m_scrollbarVert )
+            return false;
+#endif
+        return wxWindowNative::IsClientAreaChild(child);
+    }
+
 protected:
     // common part of all ctors
     void Init();
 
 protected:
     // common part of all ctors
     void Init();
 
-    // overridden base class virtuals
+#if wxUSE_MENUS
+    virtual bool DoPopupMenu(wxMenu *menu, int x, int y);
+#endif // wxUSE_MENUS
 
     // we deal with the scrollbars in these functions
     virtual void DoSetClientSize(int width, int height);
 
     // we deal with the scrollbars in these functions
     virtual void DoSetClientSize(int width, int height);
@@ -250,12 +256,12 @@ 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;
 
     // old size
     wxSize m_oldSize;
 
@@ -263,14 +269,18 @@ protected:
     bool m_isCurrent:1;
 
 #ifdef __WXMSW__
     bool m_isCurrent:1;
 
 #ifdef __WXMSW__
+public:
     // override MSWWindowProc() to process WM_NCHITTEST
     WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
 #endif // __WXMSW__
 
 private:
     // override MSWWindowProc() to process WM_NCHITTEST
     WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
 #endif // __WXMSW__
 
 private:
+
+#if wxUSE_SCROLLBAR
     // the window scrollbars
     wxScrollBar *m_scrollbarHorz,
                 *m_scrollbarVert;
     // the window scrollbars
     wxScrollBar *m_scrollbarHorz,
                 *m_scrollbarVert;
+#endif // wxUSE_SCROLLBAR
 
 #if wxUSE_MENUS
     // the current modal event loop for the popup menu we show or NULL
 
 #if wxUSE_MENUS
     // the current modal event loop for the popup menu we show or NULL
@@ -285,4 +295,3 @@ private:
 };
 
 #endif // _WX_UNIV_WINDOW_H_
 };
 
 #endif // _WX_UNIV_WINDOW_H_
-