wxWidgets/include/wx/generic/collpaneg.h
Vadim Zeitlin 2cbf701441 1. We don't need GetTopLevelParent() here, we already have wxGetTopLevelParent()
2. Don't hardcode button id in the generic version
3. Don't include unneeded headers from the header


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-22 23:23:12 +00:00

104 lines
2.9 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_
// forward declared
class WXDLLEXPORT wxButton;
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 wxCollapsiblePane API
virtual void Collapse(bool collapse = true);
virtual void SetLabel(const wxString &label);
virtual bool IsCollapsed() const
{ return m_pPane==NULL || !m_pPane->IsShown(); }
virtual wxWindow *GetPane() const
{ return m_pPane; }
virtual wxString GetLabel() const
{ return m_strLabel; }
protected:
// overridden methods
virtual wxSize DoGetBestSize() const;
// internal helpers
void LayoutChildren();
wxString GetBtnLabel() const;
// child controls
wxButton *m_pButton;
wxStaticLine *m_pStatLine;
wxWindow *m_pPane;
// 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_