1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/collpane.h 3// Purpose: wxCollapsiblePane 4// Author: Francesco Montorsi 5// Modified by: 6// Created: 8/10/2006 7// RCS-ID: $Id: collpane.h 43300 2006-11-11 07:32:08Z RD $ 8// Copyright: (c) Francesco Montorsi 9// Licence: wxWindows Licence 10///////////////////////////////////////////////////////////////////////////// 11 12#ifndef _WX_COLLAPSABLE_PANE_H_BASE_ 13#define _WX_COLLAPSABLE_PANE_H_BASE_ 14 15#include "wx/defs.h" 16 17 18#if wxUSE_COLLPANE 19 20#include "wx/control.h" 21 22 23// ---------------------------------------------------------------------------- 24// wxCollapsiblePaneBase: interface for wxCollapsiblePane 25// ---------------------------------------------------------------------------- 26 27#define wxCP_DEFAULT_STYLE (wxTAB_TRAVERSAL | wxNO_BORDER) 28#define wxCP_NO_TLW_RESIZE (0x0002) 29 30class WXDLLIMPEXP_CORE wxCollapsiblePaneBase : public wxControl 31{ 32public: 33 wxCollapsiblePaneBase() {} 34 35 virtual void Collapse(bool collapse = true) = 0; 36 void Expand() { Collapse(false); } 37 38 virtual bool IsCollapsed() const = 0; 39 bool IsExpanded() const { return !IsCollapsed(); } 40 41 virtual wxWindow *GetPane() const = 0; 42 43 virtual wxString GetLabel() const = 0; 44 virtual void SetLabel(const wxString& label) = 0; 45}; 46 47 48// ---------------------------------------------------------------------------- 49// event types and macros 50// ---------------------------------------------------------------------------- 51 52BEGIN_DECLARE_EVENT_TYPES() 53 DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_CORE, wxEVT_COMMAND_COLLPANE_CHANGED, 1102) 54END_DECLARE_EVENT_TYPES() 55 56class WXDLLIMPEXP_CORE wxCollapsiblePaneEvent : public wxCommandEvent 57{ 58public: 59 wxCollapsiblePaneEvent() {} 60 wxCollapsiblePaneEvent(wxObject *generator, int id, bool collapsed) 61 : wxCommandEvent(wxEVT_COMMAND_COLLPANE_CHANGED, id), 62 m_bCollapsed(collapsed) 63 { 64 SetEventObject(generator); 65 } 66 67 bool GetCollapsed() const { return m_bCollapsed; } 68 void SetCollapsed(bool c) { m_bCollapsed = c; } 69 70 71 // default copy ctor, assignment operator and dtor are ok 72 virtual wxEvent *Clone() const { return new wxCollapsiblePaneEvent(*this); } 73 74private: 75 bool m_bCollapsed; 76 77 DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxCollapsiblePaneEvent) 78}; 79 80// ---------------------------------------------------------------------------- 81// event types and macros 82// ---------------------------------------------------------------------------- 83 84typedef void (wxEvtHandler::*wxCollapsiblePaneEventFunction)(wxCollapsiblePaneEvent&); 85 86#define wxCollapsiblePaneEventHandler(func) \ 87 (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxCollapsiblePaneEventFunction, &func) 88 89#define EVT_COLLAPSIBLEPANE_CHANGED(id, fn) \ 90 wx__DECLARE_EVT1(wxEVT_COMMAND_COLLPANE_CHANGED, id, wxCollapsiblePaneEventHandler(fn)) 91 92 93#if defined(__WXGTK24__) && !defined(__WXUNIVERSAL__) 94 #include "wx/gtk/collpane.h" 95#else 96 #include "wx/generic/collpaneg.h" 97 98 // use #define and not a typedef to allow forward declaring the class 99 #define wxCollapsiblePane wxGenericCollapsiblePane 100#endif 101 102#endif // wxUSE_COLLPANE 103 104#endif // _WX_COLLAPSABLE_PANE_H_BASE_ 105