]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/splitter.h
added and documented wxDYNLIB_FUNCTION
[wxWidgets.git] / include / wx / generic / splitter.h
index 26480fe129175a0cf632c6aa78afc1c0ea768638..38420cdd652421b00856077f62d6864c31b1d514 100644 (file)
@@ -5,8 +5,8 @@
 // Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:     wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef __SPLITTERH_G__
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef __SPLITTERH_G__
@@ -133,16 +133,16 @@ public:
     bool IsSplit() const { return (m_windowTwo != NULL); }
 
     // Sets the sash size
     bool IsSplit() const { return (m_windowTwo != NULL); }
 
     // Sets the sash size
-    void SetSashSize(int width) { m_sashSize = width; }
+    void SetSashSize(int WXUNUSED(width)) { }
 
     // Sets the border size
 
     // Sets the border size
-    void SetBorderSize(int width) { m_borderSize = width; }
+    void SetBorderSize(int WXUNUSED(width)) { }
 
     // Gets the sash size
 
     // Gets the sash size
-    int GetSashSize() const { return m_sashSize; }
+    int GetSashSize() const;
 
     // Gets the border size
 
     // Gets the border size
-    int GetBorderSize() const { return m_borderSize; }
+    int GetBorderSize() const;
 
     // Set the sash position
     void SetSashPosition(int position, bool redraw = TRUE);
 
     // Set the sash position
     void SetSashPosition(int position, bool redraw = TRUE);
@@ -190,10 +190,7 @@ public:
     void OnSize(wxSizeEvent& event);
 
     // In live mode, resize child windows in idle time
     void OnSize(wxSizeEvent& event);
 
     // In live mode, resize child windows in idle time
-    void OnIdle(wxIdleEvent& event);
-
-    // Draws borders
-    virtual void DrawBorders(wxDC& dc);
+    void OnInternalIdle();
 
     // Draws the sash
     virtual void DrawSash(wxDC& dc);
 
     // Draws the sash
     virtual void DrawSash(wxDC& dc);
@@ -202,20 +199,17 @@ public:
     virtual void DrawSashTracker(int x, int y);
 
     // Tests for x, y over sash
     virtual void DrawSashTracker(int x, int y);
 
     // Tests for x, y over sash
-    virtual bool SashHitTest(int x, int y, int tolerance = 2);
+    virtual bool SashHitTest(int x, int y, int tolerance = 5);
 
     // Resizes subwindows
     virtual void SizeWindows();
 
 
     // Resizes subwindows
     virtual void SizeWindows();
 
-    // Initialize colours
-    void InitColours();
-
     void SetNeedUpdating(bool needUpdating) { m_needUpdating = needUpdating; }
     bool GetNeedUpdating() const { return m_needUpdating ; }
 
 protected:
     // event handlers
     void SetNeedUpdating(bool needUpdating) { m_needUpdating = needUpdating; }
     bool GetNeedUpdating() const { return m_needUpdating ; }
 
 protected:
     // event handlers
-#ifdef __WXMSW__
+#if defined(__WXMSW__) || defined(__WXMAC__)
     void OnSetCursor(wxSetCursorEvent& event);
 #endif // wxMSW
 
     void OnSetCursor(wxSetCursorEvent& event);
 #endif // wxMSW
 
@@ -251,19 +245,23 @@ protected:
     // set the sash position and send an event about it having been changed
     void SetSashPositionAndNotify(int sashPos);
 
     // set the sash position and send an event about it having been changed
     void SetSashPositionAndNotify(int sashPos);
 
+    // callbacks executed when we detect that the mouse has entered or left
+    // the sash
+    virtual void OnEnterSash();
+    virtual void OnLeaveSash();
+
     // set the cursor appropriate for the current split mode
     void SetResizeCursor();
 
     // set the cursor appropriate for the current split mode
     void SetResizeCursor();
 
+    // redraw the splitter if its "hotness" changed if necessary
+    void RedrawIfHotSensitive(bool isHot);
+
     wxSplitMode m_splitMode;
     wxSplitMode m_splitMode;
-    bool        m_permitUnsplitAlways;
-    bool        m_needUpdating; // when in live mode, set this to TRUE to resize children in idle
     wxWindow*   m_windowOne;
     wxWindow*   m_windowTwo;
     int         m_dragMode;
     int         m_oldX;
     int         m_oldY;
     wxWindow*   m_windowOne;
     wxWindow*   m_windowTwo;
     int         m_dragMode;
     int         m_oldX;
     int         m_oldY;
-    int         m_borderSize;
-    int         m_sashSize;     // Sash width or height
     int         m_sashPosition; // Number of pixels from left or top
     int         m_requestedSashPosition;
     int         m_sashPositionCurrent; // while dragging
     int         m_sashPosition; // Number of pixels from left or top
     int         m_requestedSashPosition;
     int         m_sashPositionCurrent; // while dragging
@@ -272,19 +270,19 @@ protected:
     int         m_minimumPaneSize;
     wxCursor    m_sashCursorWE;
     wxCursor    m_sashCursorNS;
     int         m_minimumPaneSize;
     wxCursor    m_sashCursorWE;
     wxCursor    m_sashCursorNS;
-    wxPen*      m_sashTrackerPen;
-    wxPen*      m_lightShadowPen;
-    wxPen*      m_mediumShadowPen;
-    wxPen*      m_darkShadowPen;
-    wxPen*      m_hilightPen;
-    wxBrush*    m_faceBrush;
-    wxPen*      m_facePen;
+    wxPen      *m_sashTrackerPen;
+
+    // when in live mode, set this to TRUE to resize children in idle
+    bool        m_needUpdating:1;
+    bool        m_permitUnsplitAlways:1;
+    bool        m_isHot:1;
 
 private:
     WX_DECLARE_CONTROL_CONTAINER();
 
     DECLARE_DYNAMIC_CLASS(wxSplitterWindow)
     DECLARE_EVENT_TABLE()
 
 private:
     WX_DECLARE_CONTROL_CONTAINER();
 
     DECLARE_DYNAMIC_CLASS(wxSplitterWindow)
     DECLARE_EVENT_TABLE()
+    DECLARE_NO_COPY_CLASS(wxSplitterWindow)
 };
 
 // ----------------------------------------------------------------------------
 };
 
 // ----------------------------------------------------------------------------
@@ -363,7 +361,7 @@ private:
         } pt;               // position of double click for DCLICK event
     } m_data;
 
         } pt;               // position of double click for DCLICK event
     } m_data;
 
-    DECLARE_DYNAMIC_CLASS(wxSplitterEvent)
+    DECLARE_DYNAMIC_CLASS_NO_COPY(wxSplitterEvent)
 };
 
 typedef void (wxEvtHandler::*wxSplitterEventFunction)(wxSplitterEvent&);
 };
 
 typedef void (wxEvtHandler::*wxSplitterEventFunction)(wxSplitterEvent&);