1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-05 06:59:07 +02:00
audacity/src/AboutDialog.h
Leland Lucius 9dc9348127 Fixes bug #1344 (mac build)
In addition, the Xcode project can now build against the 10.6
or 10.7 SDKs.  All that is needed is to change the SDK version
and the other settings will change automatically.
2016-03-07 00:29:26 -06:00

90 lines
2.2 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
AboutDialog.h
Dominic Mazzoni
**********************************************************************/
#ifndef __AUDACITY_ABOUT_DLG__
#define __AUDACITY_ABOUT_DLG__
#include "MemoryX.h"
#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_)
{}
#ifdef __AUDACITY_OLD_STD__
AboutDialogCreditItem(const AboutDialogCreditItem&) = default;
AboutDialogCreditItem& operator= (const AboutDialogCreditItem&) = default;
#else
// No copy, use the move
AboutDialogCreditItem(const AboutDialogCreditItem&) PROHIBITED;
AboutDialogCreditItem& operator= (const AboutDialogCreditItem&) PROHIBITED;
#endif
// Move constructor, because wxString lacks one
AboutDialogCreditItem(AboutDialogCreditItem &&moveMe)
: role(moveMe.role)
{
description.swap(moveMe.description);
}
~AboutDialogCreditItem() {}
};
using AboutDialogCreditItemsList = std::vector<AboutDialogCreditItem>;
class AboutDialog final : 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, const wxString &status);
void AddBuildinfoRow( wxString* htmlstring, const wxChar * libname, const wxChar * libdesc);
};
#endif