show all available information in the dialog (somewhat modified patch 1592306)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43372 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -64,6 +64,9 @@ protected:
|
|||||||
// add the text, if it's not empty, to the text sizer contents
|
// add the text, if it's not empty, to the text sizer contents
|
||||||
void AddText(const wxString& text);
|
void AddText(const wxString& text);
|
||||||
|
|
||||||
|
// add a wxCollapsiblePane containing the given text
|
||||||
|
void AddCollapsiblePane(const wxString& title, const wxString& text);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// common part of all ctors
|
// common part of all ctors
|
||||||
void Init() { m_sizerText = NULL; }
|
void Init() { m_sizerText = NULL; }
|
||||||
|
@@ -42,16 +42,13 @@
|
|||||||
// implementation
|
// implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxAboutDialogInfo
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// helper function: returns all array elements in a single comma-separated and
|
// helper function: returns all array elements in a single comma-separated and
|
||||||
// newline-terminated string
|
// newline-terminated string
|
||||||
static wxString AllAsString(const wxArrayString& a)
|
static wxString AllAsString(const wxArrayString& a)
|
||||||
{
|
{
|
||||||
wxString s;
|
wxString s;
|
||||||
const size_t count = a.size();
|
const size_t count = a.size();
|
||||||
|
s.reserve(20*count);
|
||||||
for ( size_t n = 0; n < count; n++ )
|
for ( size_t n = 0; n < count; n++ )
|
||||||
{
|
{
|
||||||
s << a[n] << (n == count - 1 ? _T("\n") : _T(", "));
|
s << a[n] << (n == count - 1 ? _T("\n") : _T(", "));
|
||||||
@@ -60,6 +57,10 @@ static wxString AllAsString(const wxArrayString& a)
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxAboutDialogInfo
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
wxString wxAboutDialogInfo::GetDescriptionAndCredits() const
|
wxString wxAboutDialogInfo::GetDescriptionAndCredits() const
|
||||||
{
|
{
|
||||||
wxString s = GetDescription();
|
wxString s = GetDescription();
|
||||||
@@ -134,22 +135,26 @@ bool wxGenericAboutDialog::Create(const wxAboutDialogInfo& info)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if wxUSE_COLLPANE
|
#if wxUSE_COLLPANE
|
||||||
// add licence
|
|
||||||
if ( info.HasLicence() )
|
if ( info.HasLicence() )
|
||||||
{
|
AddCollapsiblePane(wxT("License"), info.GetLicence());
|
||||||
wxCollapsiblePane *
|
|
||||||
licensepnl = new wxCollapsiblePane(this, wxID_ANY, wxT("License"));
|
|
||||||
|
|
||||||
new wxStaticText(licensepnl->GetPane(), wxID_ANY, info.GetLicence(),
|
if ( info.HasDevelopers() )
|
||||||
wxDefaultPosition, wxDefaultSize,
|
AddCollapsiblePane(wxT("Developers"),
|
||||||
wxALIGN_CENTRE);
|
AllAsString(info.GetDevelopers()));
|
||||||
|
|
||||||
m_sizerText->Add(licensepnl, wxSizerFlags(1).Expand().Border(wxBOTTOM));
|
if ( info.HasDocWriters() )
|
||||||
}
|
AddCollapsiblePane(wxT("Documentation writers"),
|
||||||
|
AllAsString(info.GetDocWriters()));
|
||||||
|
|
||||||
|
if ( info.HasArtists() )
|
||||||
|
AddCollapsiblePane(wxT("Artists"),
|
||||||
|
AllAsString(info.GetArtists()));
|
||||||
|
|
||||||
|
if ( info.HasTranslators() )
|
||||||
|
AddCollapsiblePane(wxT("Translators"),
|
||||||
|
AllAsString(info.GetTranslators()));
|
||||||
#endif // wxUSE_COLLPANE
|
#endif // wxUSE_COLLPANE
|
||||||
|
|
||||||
// TODO: add credits (developers, artists, doc writers, translators)
|
|
||||||
|
|
||||||
DoAddCustomControls();
|
DoAddCustomControls();
|
||||||
|
|
||||||
|
|
||||||
@@ -199,6 +204,22 @@ void wxGenericAboutDialog::AddText(const wxString& text)
|
|||||||
AddControl(new wxStaticText(this, wxID_ANY, text));
|
AddControl(new wxStaticText(this, wxID_ANY, text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxGenericAboutDialog::AddCollapsiblePane(const wxString& title,
|
||||||
|
const wxString& text)
|
||||||
|
{
|
||||||
|
wxCollapsiblePane *pane = new wxCollapsiblePane(this, wxID_ANY, title);
|
||||||
|
wxStaticText *txt = new wxStaticText(pane->GetPane(), wxID_ANY, text,
|
||||||
|
wxDefaultPosition, wxDefaultSize,
|
||||||
|
wxALIGN_CENTRE);
|
||||||
|
|
||||||
|
// don't make the text unreasonably wide
|
||||||
|
static const int maxWidth = wxGetDisplaySize().x/3;
|
||||||
|
txt->Wrap(maxWidth);
|
||||||
|
|
||||||
|
// NB: all the wxCollapsiblePanes must be added with a null proportion value
|
||||||
|
m_sizerText->Add(pane, wxSizerFlags(0).Expand().Border(wxBOTTOM));
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// public functions
|
// public functions
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user