3c1f8cb1f5
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
116 lines
3.1 KiB
C++
116 lines
3.1 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/generic/collpaneg.h
|
|
// Purpose: wxGenericCollapsiblePane
|
|
// Author: Francesco Montorsi
|
|
// Modified by:
|
|
// Created: 8/10/2006
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Francesco Montorsi
|
|
// Licence: wxWindows Licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#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[];
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxGenericCollapsiblePane
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLEXPORT wxGenericCollapsiblePane : public wxCollapsiblePaneBase
|
|
{
|
|
public:
|
|
wxGenericCollapsiblePane() { Init(); }
|
|
|
|
wxGenericCollapsiblePane(wxWindow *parent,
|
|
wxWindowID winid,
|
|
const wxString& label,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxTAB_TRAVERSAL | wxNO_BORDER,
|
|
const wxValidator& val = wxDefaultValidator,
|
|
const wxString& name = wxGenericCollapsiblePaneNameStr)
|
|
{
|
|
Init();
|
|
|
|
Create(parent, winid, label, pos, size, style, val, name);
|
|
}
|
|
|
|
void Init()
|
|
{
|
|
m_pButton = NULL;
|
|
m_pStatLine = NULL;
|
|
m_pPane = NULL;
|
|
}
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID winid,
|
|
const wxString& label,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxTAB_TRAVERSAL | wxNO_BORDER,
|
|
const wxValidator& val = wxDefaultValidator,
|
|
const wxString& name = wxGenericCollapsiblePaneNameStr);
|
|
|
|
|
|
public: // public API
|
|
|
|
void Collapse(bool collapse = true);
|
|
void SetLabel(const wxString &label);
|
|
|
|
bool IsCollapsed() const
|
|
{ return m_pPane==NULL || !m_pPane->IsShown(); }
|
|
wxWindow *GetPane() const
|
|
{ return m_pPane; }
|
|
wxString GetLabel() const
|
|
{ return m_strLabel; }
|
|
|
|
wxWindow *GetTopLevelParent();
|
|
|
|
public: // event handlers
|
|
|
|
void OnButton(wxCommandEvent &ev);
|
|
void OnSize(wxSizeEvent &ev);
|
|
|
|
protected: // internal utils
|
|
|
|
void LayoutChildren();
|
|
|
|
wxString GetBtnLabel() const;
|
|
virtual wxSize DoGetBestSize() const;
|
|
|
|
protected:
|
|
|
|
wxButton *m_pButton;
|
|
wxStaticLine *m_pStatLine;
|
|
wxWindow *m_pPane;
|
|
|
|
// the button label without ">>" or "<<"
|
|
wxString m_strLabel;
|
|
|
|
private:
|
|
DECLARE_DYNAMIC_CLASS(wxGenericCollapsiblePane)
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
|
|
#endif
|
|
// _WX_COLLAPSABLE_PANE_H_GENERIC_
|