]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/sashwin.h
preparation work for implementing images support in wxButton: move wxBitmapButton...
[wxWidgets.git] / include / wx / generic / sashwin.h
index 73e51009c4b0b2129fa2f644ba0c361ccdf70b0c..cbc56178db9fe4242c9d459b75a9003dead2d719 100644 (file)
@@ -8,16 +8,12 @@
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:     wxWidgets licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_SASHWIN_H_G_
 #define _WX_SASHWIN_H_G_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "sashwin.h"
-#endif
-
 #if wxUSE_SASH
 
 #include "wx/defs.h"
@@ -43,10 +39,17 @@ enum wxSashEdgePosition {
 class WXDLLIMPEXP_ADV wxSashEdge
 {
 public:
-    wxSashEdge() { m_show = FALSE; m_border = FALSE; m_margin = 0; }
+    wxSashEdge()
+    { m_show = false;
+#if WXWIN_COMPATIBILITY_2_6
+      m_border = false;
+#endif
+      m_margin = 0; }
 
     bool    m_show;     // Is the sash showing?
+#if WXWIN_COMPATIBILITY_2_6
     bool    m_border;   // Do we draw a border?
+#endif
     int     m_margin;   // The margin size
 };
 
@@ -77,44 +80,48 @@ public:
     }
 
     // Normal constructor
-    wxSashWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
+    wxSashWindow(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
         const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("sashWindow"))
     {
         Init();
         Create(parent, id, pos, size, style, name);
     }
 
-    ~wxSashWindow();
+    virtual ~wxSashWindow();
 
-    bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
+    bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
         const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("sashWindow"));
 
     // Set whether there's a sash in this position
     void SetSashVisible(wxSashEdgePosition edge, bool sash);
 
     // Get whether there's a sash in this position
-    inline bool GetSashVisible(wxSashEdgePosition edge) const { return m_sashes[edge].m_show; }
+    bool GetSashVisible(wxSashEdgePosition edge) const { return m_sashes[edge].m_show; }
 
+#if WXWIN_COMPATIBILITY_2_6
     // Set whether there's a border in this position
-    inline void SetSashBorder(wxSashEdgePosition edge, bool border) { m_sashes[edge].m_border = border; }
+    // This value is unused in wxSashWindow.
+    void SetSashBorder(wxSashEdgePosition edge, bool border) { m_sashes[edge].m_border = border; }
 
     // Get whether there's a border in this position
-    inline bool HasBorder(wxSashEdgePosition edge) const { return m_sashes[edge].m_border; }
+    // This value is unused in wxSashWindow.
+    bool HasBorder(wxSashEdgePosition edge) const { return m_sashes[edge].m_border; }
+#endif
 
     // Get border size
-    inline int GetEdgeMargin(wxSashEdgePosition edge) const { return m_sashes[edge].m_margin; }
+    int GetEdgeMargin(wxSashEdgePosition edge) const { return m_sashes[edge].m_margin; }
 
     // Sets the default sash border size
-    inline void SetDefaultBorderSize(int width) { m_borderSize = width; }
+    void SetDefaultBorderSize(int width) { m_borderSize = width; }
 
     // Gets the default sash border size
-    inline int GetDefaultBorderSize() const { return m_borderSize; }
+    int GetDefaultBorderSize() const { return m_borderSize; }
 
     // Sets the addition border size between child and sash window
-    inline void SetExtraBorderSize(int width) { m_extraBorderSize = width; }
+    void SetExtraBorderSize(int width) { m_extraBorderSize = width; }
 
     // Gets the addition border size between child and sash window
-    inline int GetExtraBorderSize() const { return m_extraBorderSize; }
+    int GetExtraBorderSize() const { return m_extraBorderSize; }
 
     virtual void SetMinimumSizeX(int min) { m_minimumPaneSizeX = min; }
     virtual void SetMinimumSizeY(int min) { m_minimumPaneSizeY = min; }
@@ -193,15 +200,12 @@ private:
 private:
     DECLARE_DYNAMIC_CLASS(wxSashWindow)
     DECLARE_EVENT_TABLE()
-    DECLARE_NO_COPY_CLASS(wxSashWindow)
+    wxDECLARE_NO_COPY_CLASS(wxSashWindow);
 };
 
-BEGIN_DECLARE_EVENT_TYPES()
-    DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,
-                                wxEVT_SASH_DRAGGED, wxEVT_FIRST + 1200)
-END_DECLARE_EVENT_TYPES()
+class WXDLLIMPEXP_FWD_ADV wxSashEvent;
 
-// #define wxEVT_SASH_DRAGGED (wxEVT_FIRST + 1200)
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_SASH_DRAGGED, wxSashEvent );
 
 enum wxSashDragStatus
 {
@@ -212,36 +216,51 @@ enum wxSashDragStatus
 class WXDLLIMPEXP_ADV wxSashEvent: public wxCommandEvent
 {
 public:
-    inline wxSashEvent(int id = 0, wxSashEdgePosition edge = wxSASH_NONE) {
-     m_eventType = (wxEventType) wxEVT_SASH_DRAGGED; m_id = id; m_edge = edge; }
+    wxSashEvent(int id = 0, wxSashEdgePosition edge = wxSASH_NONE)
+    {
+        m_eventType = (wxEventType) wxEVT_SASH_DRAGGED;
+        m_id = id;
+        m_edge = edge;
+    }
+
+    wxSashEvent(const wxSashEvent& event)
+        : wxCommandEvent(event),
+          m_edge(event.m_edge),
+          m_dragRect(event.m_dragRect),
+          m_dragStatus(event.m_dragStatus) { }
 
-    inline void SetEdge(wxSashEdgePosition edge) { m_edge = edge; }
-    inline wxSashEdgePosition GetEdge() const { return m_edge; }
+    void SetEdge(wxSashEdgePosition edge) { m_edge = edge; }
+    wxSashEdgePosition GetEdge() const { return m_edge; }
 
     //// The rectangle formed by the drag operation
-    inline void SetDragRect(const wxRect& rect) { m_dragRect = rect; }
-    inline wxRect GetDragRect() const { return m_dragRect; }
+    void SetDragRect(const wxRect& rect) { m_dragRect = rect; }
+    wxRect GetDragRect() const { return m_dragRect; }
 
     //// Whether the drag caused the rectangle to be reversed (e.g.
     //// dragging the top below the bottom)
-    inline void SetDragStatus(wxSashDragStatus status) { m_dragStatus = status; }
-    inline wxSashDragStatus GetDragStatus() const { return m_dragStatus; }
-    
+    void SetDragStatus(wxSashDragStatus status) { m_dragStatus = status; }
+    wxSashDragStatus GetDragStatus() const { return m_dragStatus; }
+
+    virtual wxEvent *Clone() const { return new wxSashEvent(*this); }
+
 private:
     wxSashEdgePosition  m_edge;
     wxRect              m_dragRect;
     wxSashDragStatus    m_dragStatus;
 
 private:
-    DECLARE_DYNAMIC_CLASS_NO_COPY(wxSashEvent)
+    DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSashEvent)
 };
 
 typedef void (wxEvtHandler::*wxSashEventFunction)(wxSashEvent&);
 
+#define wxSashEventHandler(func) \
+    wxEVENT_HANDLER_CAST(wxSashEventFunction, func)
+
 #define EVT_SASH_DRAGGED(id, fn) \
-    DECLARE_EVENT_TABLE_ENTRY( wxEVT_SASH_DRAGGED, id, -1, (wxObjectEventFunction) (wxEventFunction)  wxStaticCastEvent( wxSashEventFunction, & fn ), NULL ),
+    wx__DECLARE_EVT1(wxEVT_SASH_DRAGGED, id, wxSashEventHandler(fn))
 #define EVT_SASH_DRAGGED_RANGE(id1, id2, fn) \
-    DECLARE_EVENT_TABLE_ENTRY( wxEVT_SASH_DRAGGED, id1, id2, (wxObjectEventFunction) (wxEventFunction)  wxStaticCastEvent( wxSashEventFunction, & fn ), NULL ),
+    wx__DECLARE_EVT2(wxEVT_SASH_DRAGGED, id1, id2, wxSashEventHandler(fn))
 
 #endif // wxUSE_SASH