The horizontal static line was added to separate the button from the child window when visible, but this didn't seem very useful and looked bad and was inconsistent with the native GTK+ implementation as well as similar controls commonly used under MSW (wxOSX already disabled the static line use). Just remove it to make things simpler and better looking. Closes https://github.com/wxWidgets/wxWidgets/pull/804
97 lines
3.0 KiB
C++
97 lines
3.0 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/generic/collpaneg.h
|
|
// Purpose: wxGenericCollapsiblePane
|
|
// Author: Francesco Montorsi
|
|
// Modified by:
|
|
// Created: 8/10/2006
|
|
// Copyright: (c) Francesco Montorsi
|
|
// Licence: wxWindows Licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_COLLAPSABLE_PANE_H_GENERIC_
|
|
#define _WX_COLLAPSABLE_PANE_H_GENERIC_
|
|
|
|
// forward declared
|
|
class WXDLLIMPEXP_FWD_CORE wxCollapsibleHeaderCtrl;
|
|
|
|
#include "wx/containr.h"
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxGenericCollapsiblePane
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxGenericCollapsiblePane :
|
|
public wxNavigationEnabled<wxCollapsiblePaneBase>
|
|
{
|
|
public:
|
|
wxGenericCollapsiblePane() { Init(); }
|
|
|
|
wxGenericCollapsiblePane(wxWindow *parent,
|
|
wxWindowID winid,
|
|
const wxString& label,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxCP_DEFAULT_STYLE,
|
|
const wxValidator& val = wxDefaultValidator,
|
|
const wxString& name = wxCollapsiblePaneNameStr)
|
|
{
|
|
Init();
|
|
|
|
Create(parent, winid, label, pos, size, style, val, name);
|
|
}
|
|
|
|
virtual ~wxGenericCollapsiblePane();
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID winid,
|
|
const wxString& label,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxCP_DEFAULT_STYLE,
|
|
const wxValidator& val = wxDefaultValidator,
|
|
const wxString& name = wxCollapsiblePaneNameStr);
|
|
|
|
// public wxCollapsiblePane API
|
|
virtual void Collapse(bool collapse = true) wxOVERRIDE;
|
|
virtual void SetLabel(const wxString &label) wxOVERRIDE;
|
|
|
|
virtual bool IsCollapsed() const wxOVERRIDE
|
|
{ return m_pPane==NULL || !m_pPane->IsShown(); }
|
|
virtual wxWindow *GetPane() const wxOVERRIDE
|
|
{ return m_pPane; }
|
|
virtual wxString GetLabel() const wxOVERRIDE;
|
|
|
|
virtual bool Layout() wxOVERRIDE;
|
|
|
|
|
|
// for the generic collapsible pane only:
|
|
wxControl* GetControlWidget() const
|
|
{ return (wxControl*)m_pButton; }
|
|
|
|
// implementation only, don't use
|
|
void OnStateChange(const wxSize& sizeNew);
|
|
|
|
protected:
|
|
// overridden methods
|
|
virtual wxSize DoGetBestSize() const wxOVERRIDE;
|
|
|
|
int GetBorder() const;
|
|
|
|
// child controls
|
|
wxCollapsibleHeaderCtrl *m_pButton;
|
|
wxWindow *m_pPane;
|
|
wxSizer *m_sz;
|
|
|
|
private:
|
|
void Init();
|
|
|
|
// event handlers
|
|
void OnButton(wxCommandEvent &ev);
|
|
void OnSize(wxSizeEvent &ev);
|
|
|
|
wxDECLARE_DYNAMIC_CLASS(wxGenericCollapsiblePane);
|
|
wxDECLARE_EVENT_TABLE();
|
|
};
|
|
|
|
#endif // _WX_COLLAPSABLE_PANE_H_GENERIC_
|