X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3c1f8cb1f5cbef0f7699110fd28027948e644c6f..8257d7cd478c54532cc7d8fd0ace9faf5e9efb23:/include/wx/generic/collpaneg.h?ds=sidebyside diff --git a/include/wx/generic/collpaneg.h b/include/wx/generic/collpaneg.h index 32f26c17da..09aa1e08b0 100644 --- a/include/wx/generic/collpaneg.h +++ b/include/wx/generic/collpaneg.h @@ -12,29 +12,18 @@ #ifndef _WX_COLLAPSABLE_PANE_H_GENERIC_ #define _WX_COLLAPSABLE_PANE_H_GENERIC_ -#include "wx/button.h" - - -// the ID of the wxButton used to collapse/expand the panel -#define wxCP_BUTTON_ID 12356 - -// the number of pixels to leave between the button and the static line and -// between the button and the pane -#define wxCP_MARGIN 10 - // forward declared -class WXDLLEXPORT wxStaticLine; - -// class name -extern WXDLLEXPORT_DATA(const wxChar) wxGenericCollapsiblePaneNameStr[]; - - +class WXDLLIMPEXP_FWD_CORE wxButton; +class WXDLLIMPEXP_FWD_CORE wxStaticLine; +#ifdef __WXMAC__ +class WXDLLIMPEXP_FWD_CORE wxDisclosureTriangle; +#endif // ---------------------------------------------------------------------------- // wxGenericCollapsiblePane // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxGenericCollapsiblePane : public wxCollapsiblePaneBase +class WXDLLIMPEXP_CORE wxGenericCollapsiblePane : public wxCollapsiblePaneBase { public: wxGenericCollapsiblePane() { Init(); } @@ -44,9 +33,9 @@ public: const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxTAB_TRAVERSAL | wxNO_BORDER, + long style = wxCP_DEFAULT_STYLE, const wxValidator& val = wxDefaultValidator, - const wxString& name = wxGenericCollapsiblePaneNameStr) + const wxString& name = wxCollapsiblePaneNameStr) { Init(); @@ -56,60 +45,65 @@ public: void Init() { m_pButton = NULL; - m_pStatLine = NULL; m_pPane = NULL; + m_pStaticLine = NULL; + m_sz = NULL; } + ~wxGenericCollapsiblePane(); + bool Create(wxWindow *parent, wxWindowID winid, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxTAB_TRAVERSAL | wxNO_BORDER, + long style = wxCP_DEFAULT_STYLE, const wxValidator& val = wxDefaultValidator, - const wxString& name = wxGenericCollapsiblePaneNameStr); - + const wxString& name = wxCollapsiblePaneNameStr); -public: // public API + // public wxCollapsiblePane API + virtual void Collapse(bool collapse = true); + virtual void SetLabel(const wxString &label); - void Collapse(bool collapse = true); - void SetLabel(const wxString &label); - - bool IsCollapsed() const + virtual bool IsCollapsed() const { return m_pPane==NULL || !m_pPane->IsShown(); } - wxWindow *GetPane() const + virtual wxWindow *GetPane() const { return m_pPane; } - wxString GetLabel() const + virtual wxString GetLabel() const { return m_strLabel; } - wxWindow *GetTopLevelParent(); - -public: // event handlers - - void OnButton(wxCommandEvent &ev); - void OnSize(wxSizeEvent &ev); + virtual bool Layout(); -protected: // internal utils + // implementation only, don't use + void OnStateChange(const wxSize& sizeNew); - void LayoutChildren(); - - wxString GetBtnLabel() const; +protected: + // overridden methods virtual wxSize DoGetBestSize() const; -protected: + wxString GetBtnLabel() const; + int GetBorder() const; + // child controls +#ifdef __WXMAC__ + wxDisclosureTriangle *m_pButton; +#else wxButton *m_pButton; - wxStaticLine *m_pStatLine; +#endif + wxStaticLine *m_pStaticLine; wxWindow *m_pPane; + wxSizer *m_sz; // the button label without ">>" or "<<" wxString m_strLabel; private: + // event handlers + void OnButton(wxCommandEvent &ev); + void OnSize(wxSizeEvent &ev); + DECLARE_DYNAMIC_CLASS(wxGenericCollapsiblePane) DECLARE_EVENT_TABLE() }; - -#endif - // _WX_COLLAPSABLE_PANE_H_GENERIC_ +#endif // _WX_COLLAPSABLE_PANE_H_GENERIC_