wxWidgets/include/wx/collheaderctrl.h
Tobias Taschner df24d925df Add wxCollapsibleHeaderCtrl widget.
This simple class has a collapsed state which is indicated by a small button and a label. It is now used in the generic implementation of wxCollapsiblePane.

It could be used in more complex layouts than wxCollapsiblePane and is therefore available and documented to the user.
2015-09-19 17:30:32 +02:00

98 lines
2.8 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: wx/collheaderctrl.h
// Purpose: wxCollapsibleHeaderCtrl
// Author: Tobias Taschner
// Created: 2015-09-19
// Copyright: (c) 2015 wxWidgets development team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_COLLAPSIBLEHEADER_CTRL_H_
#define _WX_COLLAPSIBLEHEADER_CTRL_H_
#include "wx/defs.h"
#if wxUSE_COLLPANE
#include "wx/control.h"
// class name
extern WXDLLIMPEXP_DATA_CORE(const char) wxCollapsibleHeaderCtrlNameStr[];
//
// wxGenericCollapsibleHeaderCtrl
//
class wxCollapsibleHeaderCtrlBase : public wxControl
{
public:
wxCollapsibleHeaderCtrlBase() { }
wxCollapsibleHeaderCtrlBase(wxWindow *parent,
wxWindowID id,
const wxString& label,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxBORDER_NONE,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxCollapsibleHeaderCtrlNameStr)
{
Create(parent, id, label, pos, size, style, validator, name);
}
bool Create(wxWindow *parent,
wxWindowID id,
const wxString& label,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxBORDER_NONE,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxCollapsibleHeaderCtrlNameStr);
virtual void SetCollapsed(bool collapsed = true) = 0;
virtual bool IsCollapsed() const = 0;
private:
wxDECLARE_NO_COPY_CLASS(wxCollapsibleHeaderCtrlBase);
};
wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COLLAPSIBLEHEADER_CHANGED, wxCommandEvent);
#define wxCollapsibleHeaderChangedHandler(func) \
wxEVENT_HANDLER_CAST(wxCommandEventFunction, func)
#define EVT_COLLAPSIBLEHEADER_CHANGED(id, fn) \
wx__DECLARE_EVT1(wxEVT_COLLAPSIBLEHEADER_CHANGED, id, wxCollapsibleHeaderChangedHandler(fn))
// There currently only is the native implementation, use for all ports
#include "wx/generic/collheaderctrl.h"
class wxCollapsibleHeaderCtrl : public wxGenericCollapsibleHeaderCtrl
{
public:
wxCollapsibleHeaderCtrl() { }
wxCollapsibleHeaderCtrl(wxWindow *parent,
wxWindowID id,
const wxString& label,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxBORDER_NONE,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxCollapsibleHeaderCtrlNameStr)
{
Create(parent, id, label, pos, size, style, validator, name);
}
private:
wxDECLARE_NO_COPY_CLASS(wxCollapsibleHeaderCtrl);
};
#endif // wxUSE_COLLPANE
#endif // _WX_COLLAPSIBLEHEADER_CTRL_H_