84 lines
2.0 KiB
C++
84 lines
2.0 KiB
C++
/**********************************************************************
|
|
|
|
Audacity: A Digital Audio Editor
|
|
|
|
AboutDialog.h
|
|
|
|
Dominic Mazzoni
|
|
|
|
**********************************************************************/
|
|
|
|
#ifndef __AUDACITY_ABOUT_DLG__
|
|
#define __AUDACITY_ABOUT_DLG__
|
|
|
|
#include <vector>
|
|
#include <wx/dialog.h>
|
|
#include <wx/sizer.h>
|
|
#include <wx/statbmp.h>
|
|
#include <wx/bitmap.h>
|
|
|
|
class ShuttleGui;
|
|
|
|
struct AboutDialogCreditItem {
|
|
wxString description;
|
|
int role;
|
|
|
|
AboutDialogCreditItem(wxString &&description_, int role_)
|
|
: description(description_), role(role_)
|
|
{}
|
|
|
|
// No copy
|
|
AboutDialogCreditItem(const AboutDialogCreditItem&) = delete;
|
|
AboutDialogCreditItem& operator= (const AboutDialogCreditItem&) = delete;
|
|
|
|
// Move constructor, because wxString lacks one
|
|
AboutDialogCreditItem(AboutDialogCreditItem &&moveMe)
|
|
: role(moveMe.role)
|
|
{
|
|
description.swap(moveMe.description);
|
|
}
|
|
|
|
~AboutDialogCreditItem() {}
|
|
};
|
|
|
|
using AboutDialogCreditItemsList = std::vector<AboutDialogCreditItem>;
|
|
|
|
class AboutDialog:public wxDialog {
|
|
DECLARE_DYNAMIC_CLASS(AboutDialog)
|
|
|
|
public:
|
|
AboutDialog(wxWindow * parent);
|
|
virtual ~ AboutDialog();
|
|
|
|
void OnOK(wxCommandEvent & event);
|
|
|
|
wxStaticBitmap *icon;
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
|
|
private:
|
|
enum Role {
|
|
roleTeamDeveloper,
|
|
roleTeamSupport,
|
|
roleEmeritusDeveloper,
|
|
roleEmeritusSupport,
|
|
roleContributor,
|
|
roleLibrary,
|
|
roleThanks
|
|
};
|
|
|
|
AboutDialogCreditItemsList creditItems;
|
|
void PopulateAudacityPage( ShuttleGui & S );
|
|
void PopulateLicensePage( ShuttleGui & S );
|
|
void PopulateInformationPage (ShuttleGui & S );
|
|
|
|
void CreateCreditsList();
|
|
void AddCredit(wxString &&description, Role role);
|
|
wxString GetCreditsByRole(AboutDialog::Role role);
|
|
|
|
void AddBuildinfoRow( wxString* htmlstring, const wxChar * libname, const wxChar * libdesc, wxString status);
|
|
void AddBuildinfoRow( wxString* htmlstring, const wxChar * libname, const wxChar * libdesc);
|
|
};
|
|
|
|
#endif
|