]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/splitter.h
made wxLocale::GetSystemLanguage and wxLocale::AddLanguage static;
[wxWidgets.git] / include / wx / generic / splitter.h
index 17e349a05106efdf789f6cfdeed427e37dd37c01..ff65670f54c3922b866707d2bfa059e8e915f2be 100644 (file)
@@ -60,16 +60,30 @@ public:
 // Public API
 
     // Default constructor
-    wxSplitterWindow();
+    wxSplitterWindow()
+    {
+        Init();
+    }
 
     // Normal constructor
     wxSplitterWindow(wxWindow *parent, wxWindowID id = -1,
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
                      long style = wxSP_3D|wxCLIP_CHILDREN,
-                     const wxString& name = "splitter");
+                     const wxString& name = "splitter")
+    {
+        Init();
+        Create(parent, id, pos, size, style, name);
+    }
+
     ~wxSplitterWindow();
 
+    bool Create(wxWindow *parent, wxWindowID id = -1,
+                     const wxPoint& pos = wxDefaultPosition,
+                     const wxSize& size = wxDefaultSize,
+                     long style = wxSP_3D|wxCLIP_CHILDREN,
+                     const wxString& name = "splitter");
+
     // Gets the only or left/top pane
     wxWindow *GetWindow1() const { return m_windowOne; }
 
@@ -164,35 +178,43 @@ public:
     void OnIdle(wxIdleEvent& event);
 
     // Draws borders
-    void DrawBorders(wxDC& dc);
+    virtual void DrawBorders(wxDC& dc);
 
     // Draws the sash
-    void DrawSash(wxDC& dc);
+    virtual void DrawSash(wxDC& dc);
 
     // Draws the sash tracker (for whilst moving the sash)
-    void DrawSashTracker(int x, int y);
+    virtual void DrawSashTracker(int x, int y);
 
     // Tests for x, y over sash
-    bool SashHitTest(int x, int y, int tolerance = 2);
+    virtual bool SashHitTest(int x, int y, int tolerance = 2);
 
     // Resizes subwindows
-    void SizeWindows();
+    virtual void SizeWindows();
 
     // Initialize colours
     void InitColours();
 
+    void SetNeedUpdating(bool needUpdating) { m_needUpdating = needUpdating; }
+    bool GetNeedUpdating() const { return m_needUpdating ; }
+
 protected:
     // our event handlers
     void OnSashPosChanged(wxSplitterEvent& event);
     void OnSashPosChanging(wxSplitterEvent& event);
     void OnDoubleClick(wxSplitterEvent& event);
     void OnUnsplitEvent(wxSplitterEvent& event);
+    void OnSetCursor(wxSetCursorEvent& event);
 
     void SendUnsplitEvent(wxWindow *winRemoved);
 
+protected:
+    void Init();
+
+
     int         m_splitMode;
     bool        m_permitUnsplitAlways;
-    bool        m_needUpdating; // when in live mode, set the to TRUE to resize children in idle
+    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;
@@ -235,6 +257,7 @@ public:
         : wxCommandEvent(type)
     {
         SetEventObject(splitter);
+        if (splitter) m_id = splitter->GetId();
     }
 
     // SASH_POS_CHANGED methods
@@ -281,7 +304,7 @@ public:
     }
 
 private:
-    friend wxSplitterWindow;
+    friend class WXDLLEXPORT wxSplitterWindow;
 
     // data for the different types of event
     union
@@ -300,39 +323,39 @@ private:
 typedef void (wxEvtHandler::*wxSplitterEventFunction)(wxSplitterEvent&);
 
 #define EVT_SPLITTER_SASH_POS_CHANGED(id, fn)                               \
-  {                                                                         \
+  DECLARE_EVENT_TABLE_ENTRY(                                                \
     wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED,                                \
     id,                                                                     \
     -1,                                                                     \
     (wxObjectEventFunction)(wxEventFunction)(wxSplitterEventFunction) &fn,  \
     NULL                                                                    \
-  },
+  ),
 
 #define EVT_SPLITTER_SASH_POS_CHANGING(id, fn)                              \
-  {                                                                         \
+  DECLARE_EVENT_TABLE_ENTRY(                                                \
     wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING,                               \
     id,                                                                     \
     -1,                                                                     \
     (wxObjectEventFunction)(wxEventFunction)(wxSplitterEventFunction) &fn,  \
     NULL                                                                    \
-  },
+  ),
 
 #define EVT_SPLITTER_DCLICK(id, fn)                                         \
-  {                                                                         \
+  DECLARE_EVENT_TABLE_ENTRY(                                                \
     wxEVT_COMMAND_SPLITTER_DOUBLECLICKED,                                   \
     id,                                                                     \
     -1,                                                                     \
     (wxObjectEventFunction)(wxEventFunction)(wxSplitterEventFunction) &fn,  \
     NULL                                                                    \
-  },
+  ),
 
 #define EVT_SPLITTER_UNSPLIT(id, fn)                                        \
-  {                                                                         \
+  DECLARE_EVENT_TABLE_ENTRY(                                                \
     wxEVT_COMMAND_SPLITTER_UNSPLIT,                                         \
     id,                                                                     \
     -1,                                                                     \
     (wxObjectEventFunction)(wxEventFunction)(wxSplitterEventFunction) &fn,  \
     NULL                                                                    \
-  },
+  ),
 
 #endif // __SPLITTERH_G__