#ifndef _WX_SPLITTREE_H_
#define _WX_SPLITTREE_H_
-#ifdef __GNUG__
- #pragma interface "splittree.h"
+#if defined(__GNUG__) && !defined(__APPLE__)
+ #pragma interface "splittree.h"
#endif
+#include "wx/gizmos/gizmos.h"
+
// Set this to 1 to use generic tree control (doesn't yet work properly)
#define USE_GENERIC_TREECTRL 0
* It also updates the scrolled window vertical scrollbar as appropriate.
*/
-class wxRemotelyScrolledTreeCtrl: public wxTreeCtrl
+class WXDLLIMPEXP_GIZMOS wxRemotelyScrolledTreeCtrl: public wxTreeCtrl
{
- DECLARE_CLASS(wxRemotelyScrolledTreeCtrl)
+ DECLARE_CLASS(wxRemotelyScrolledTreeCtrl)
public:
wxRemotelyScrolledTreeCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pt = wxDefaultPosition,
const wxSize& sz = wxDefaultSize, long style = wxTR_HAS_BUTTONS);
- ~wxRemotelyScrolledTreeCtrl();
+ ~wxRemotelyScrolledTreeCtrl();
//// Events
- void OnSize(wxSizeEvent& event);
- void OnExpand(wxTreeEvent& event);
+ void OnSize(wxSizeEvent& event);
+ void OnExpand(wxTreeEvent& event);
void OnScroll(wxScrollWinEvent& event);
+ void OnPaint(wxPaintEvent& event);
//// Overrides
// Override this in case we're using the generic tree control.
// In case we're using the generic tree control.
virtual void PrepareDC(wxDC& dc);
+ // In case we're using the generic tree control.
+ virtual int GetScrollPos(int orient) const;
+
//// Helpers
- void HideVScrollbar();
+ void HideVScrollbar();
- // Calculate the tree overall size so we can set the scrollbar
- // correctly
- void CalcTreeSize(wxRect& rect);
- void CalcTreeSize(wxTreeItemId& id, wxRect& rect);
+ // Calculate the tree overall size so we can set the scrollbar
+ // correctly
+ void CalcTreeSize(wxRect& rect);
+ void CalcTreeSize(const wxTreeItemId& id, wxRect& rect);
- // Adjust the containing wxScrolledWindow's scrollbars appropriately
- void AdjustRemoteScrollbars();
+ // Adjust the containing wxScrolledWindow's scrollbars appropriately
+ void AdjustRemoteScrollbars();
- // Find the scrolled window that contains this control
- wxScrolledWindow* GetScrolledWindow() const;
+ // Find the scrolled window that contains this control
+ wxScrolledWindow* GetScrolledWindow() const;
// Scroll to the given line (in scroll units where each unit is
// the height of an item)
void ScrollToLine(int posHoriz, int posVert);
+//// Accessors
+
+ // The companion window is one which will get notified when certain
+ // events happen such as node expansion
+ void SetCompanionWindow(wxWindow* companion) { m_companionWindow = companion; }
+ wxWindow* GetCompanionWindow() const { return m_companionWindow; }
+
+
DECLARE_EVENT_TABLE()
protected:
+ wxWindow* m_companionWindow;
+ bool m_drawRowLines;
+};
+
+/*
+ * wxTreeCompanionWindow
+ *
+ * A window displaying values associated with tree control items.
+ */
+
+class WXDLLIMPEXP_GIZMOS wxTreeCompanionWindow: public wxWindow
+{
+public:
+ DECLARE_CLASS(wxTreeCompanionWindow)
+
+ wxTreeCompanionWindow(wxWindow* parent, wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& sz = wxDefaultSize,
+ long style = 0);
+
+//// Overrides
+ virtual void DrawItem(wxDC& dc, wxTreeItemId id, const wxRect& rect);
+
+//// Events
+ void OnPaint(wxPaintEvent& event);
+ void OnScroll(wxScrollWinEvent& event);
+ void OnExpand(wxTreeEvent& event);
+
+//// Operations
+
+//// Accessors
+ wxRemotelyScrolledTreeCtrl* GetTreeCtrl() const { return m_treeCtrl; };
+ void SetTreeCtrl(wxRemotelyScrolledTreeCtrl* treeCtrl) { m_treeCtrl = treeCtrl; }
+
+//// Data members
+protected:
+ wxRemotelyScrolledTreeCtrl* m_treeCtrl;
+
+ DECLARE_EVENT_TABLE()
};
+
/*
* wxThinSplitterWindow
*
* than the usual one.
*/
-class wxThinSplitterWindow: public wxSplitterWindow
+class WXDLLIMPEXP_GIZMOS wxThinSplitterWindow: public wxSplitterWindow
{
public:
DECLARE_DYNAMIC_CLASS(wxThinSplitterWindow)
const wxPoint& pos = wxDefaultPosition,
const wxSize& sz = wxDefaultSize,
long style = wxSP_3D | wxCLIP_CHILDREN);
+ ~wxThinSplitterWindow();
//// Overrides
// Tests for x, y over sash. Overriding this allows us to increase
// the tolerance.
bool SashHitTest(int x, int y, int tolerance = 2);
- void DrawSash(wxDC& dc);
+ void DrawSash(wxDC& dc);
//// Events
-
+
void OnSize(wxSizeEvent& event);
//// Operations
//// Data members
protected:
+ wxPen* m_facePen;
+ wxBrush* m_faceBrush;
+
DECLARE_EVENT_TABLE()
};
* scroll appropriately.
*/
-class wxSplitterScrolledWindow: public wxScrolledWindow
+class WXDLLIMPEXP_GIZMOS wxSplitterScrolledWindow: public wxScrolledWindow
{
public:
DECLARE_DYNAMIC_CLASS(wxSplitterScrolledWindow)
//// Overrides
//// Events
-
+
void OnScroll(wxScrollWinEvent& event);
void OnSize(wxSizeEvent& event);