Audacity  2.2.2
Public Member Functions | Static Public Member Functions | Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
AboutDialog Class Referencefinal

The AboutDialog shows the program version and developer credits. More...

#include <AboutDialog.h>

Inheritance diagram for AboutDialog:
wxDialogWrapper wxTabTraversalWrapper< wxDialog >

Public Member Functions

 AboutDialog (wxWindow *parent)
 
virtual ~AboutDialog ()
 
void OnOK (wxCommandEvent &event)
 
- Public Member Functions inherited from wxDialogWrapper
 wxDialogWrapper ()
 
 wxDialogWrapper (wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const wxString &name=_("Dialog"))
 
bool Create (wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const wxString &name=_("Dialog"))
 
- Public Member Functions inherited from wxTabTraversalWrapper< wxDialog >
 wxTabTraversalWrapper (Args &&...args)
 

Static Public Member Functions

static AboutDialogActiveIntance ()
 

Public Attributes

wxStaticBitmap * icon
 

Private Types

enum  Role {
  roleTeamMember, roleEmeritusTeam, roleDeceased, roleContributor,
  roleGraphics, roleLibrary, roleThanks
}
 

Private Member Functions

void PopulateAudacityPage (ShuttleGui &S)
 
void PopulateLicensePage (ShuttleGui &S)
 
void PopulateInformationPage (ShuttleGui &S)
 : Fills out the "Information" tab of the preferences dialogue More...
 
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)
 Add a table row saying if a library is used or not. More...
 
void AddBuildinfoRow (wxString *htmlstring, const wxChar *libname, const wxChar *libdesc)
 Add a table row saying if a library is used or not. More...
 

Private Attributes

AboutDialogCreditItemsList creditItems
 

Detailed Description

The AboutDialog shows the program version and developer credits.

It is a simple scrolling window with an 'OK... Audacious!' button to close it.

Definition at line 51 of file AboutDialog.h.

Member Enumeration Documentation

enum AboutDialog::Role
private
Enumerator
roleTeamMember 
roleEmeritusTeam 
roleDeceased 
roleContributor 
roleGraphics 
roleLibrary 
roleThanks 

Definition at line 67 of file AboutDialog.h.

Constructor & Destructor Documentation

AboutDialog::AboutDialog ( wxWindow *  parent)

Definition at line 252 of file AboutDialog.cpp.

References _(), ShuttleGuiBase::AddWindow(), ThemeBase::Colour(), eIsCreating, ShuttleGuiBase::EndNotebook(), ShuttleGuiBase::GetParent(), icon, PopulateAudacityPage(), PopulateInformationPage(), PopulateLicensePage(), ShuttleGui::Prop(), safenew, ShuttleGuiBase::StartNotebook(), and theTheme.

253  : wxDialogWrapper(parent, -1, _("About Audacity"),
254  wxDefaultPosition, wxDefaultSize,
255  wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
256 {
257  wxASSERT(!sActiveInstance);
258  sActiveInstance = this;
259 
260  SetName(GetTitle());
261  this->SetBackgroundColour(theTheme.Colour( clrAboutBoxBackground ));
262  //this->SetBackgroundColour(theTheme.Colour( clrMedium ));
263  icon = NULL;
264  ShuttleGui S( this, eIsCreating );
265  S.StartNotebook();
266  {
269  PopulateLicensePage( S );
270  }
271  S.EndNotebook();
272  wxButton *ok = safenew wxButton(S.GetParent(), wxID_OK, _("OK"));
273  ok->SetDefault();
274  S.Prop(0).AddWindow( ok );
275 
276  Fit();
277  this->Centre();
278 }
void PopulateLicensePage(ShuttleGui &S)
AUDACITY_DLL_API Theme theTheme
Definition: Theme.cpp:209
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI...
Definition: ShuttleGui.h:409
#define safenew
Definition: Audacity.h:230
void PopulateAudacityPage(ShuttleGui &S)
wxStaticBitmap * icon
Definition: AboutDialog.h:62
void PopulateInformationPage(ShuttleGui &S)
: Fills out the "Information" tab of the preferences dialogue
_("Move Track &Down")+wxT("\t")+(GetActiveProject() -> GetCommandManager() ->GetKeyFromName(wxT("TrackMoveDown")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveTopID, _("Move Track to &Top")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveTop")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveBottomID, _("Move Track to &Bottom")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveBottom")).Raw()), OnMoveTrack)#define SET_TRACK_NAME_PLUGIN_SYMBOLclass SetTrackNameCommand:public AudacityCommand
wxColour & Colour(int iIndex)
Definition: Theme.cpp:1225
AboutDialog::~AboutDialog ( )
virtual

Definition at line 1047 of file AboutDialog.cpp.

1048 {
1049  sActiveInstance = {};
1050 }

Member Function Documentation

AboutDialog * AboutDialog::ActiveIntance ( )
static

Definition at line 247 of file AboutDialog.cpp.

Referenced by AudacityApp::OnMenuAbout().

248 {
249  return sActiveInstance;
250 }
void AboutDialog::AddBuildinfoRow ( wxString *  htmlstring,
const wxChar *  libname,
const wxChar *  libdesc,
const wxString &  status 
)
private

Add a table row saying if a library is used or not.

Used when creating the build information tab to show if each optional library is enabled or not, and what it does

Definition at line 1023 of file AboutDialog.cpp.

Referenced by PopulateInformationPage().

1024 {
1025  *htmlstring += wxT("<tr><td>");
1026  *htmlstring += libname;
1027  *htmlstring += wxT("</td><td>(");
1028  *htmlstring += libdesc;
1029  *htmlstring += wxT(")</td><td>");
1030  *htmlstring += status;
1031  *htmlstring += wxT("</td></tr>");
1032 }
void AboutDialog::AddBuildinfoRow ( wxString *  htmlstring,
const wxChar *  libname,
const wxChar *  libdesc 
)
private

Add a table row saying if a library is used or not.

Used when creating the build information tab to show build dates and file paths

Definition at line 1038 of file AboutDialog.cpp.

1039 {
1040  *htmlstring += wxT("<tr><td>");
1041  *htmlstring += libname;
1042  *htmlstring += wxT("</td><td>");
1043  *htmlstring += libdesc;
1044  *htmlstring += wxT("</td></tr>");
1045 }
void AboutDialog::AddCredit ( wxString &&  description,
Role  role 
)
private

Definition at line 994 of file AboutDialog.cpp.

References creditItems.

Referenced by CreateCreditsList().

995 {
996  creditItems.emplace_back(std::move(description), role);
997 }
AboutDialogCreditItemsList creditItems
Definition: AboutDialog.h:77
void AboutDialog::CreateCreditsList ( )
private

Definition at line 105 of file AboutDialog.cpp.

References _(), AddCredit(), roleContributor, roleEmeritusTeam, roleGraphics, roleLibrary, roleTeamMember, and roleThanks.

Referenced by PopulateAudacityPage().

106 {
107  // The Audacity Team: developers and support
108  AddCredit(wxString(wxT("Arturo \"Buanzo\" Busleiman, ")) + _("system administration"), roleTeamMember);
109  AddCredit(wxString(wxT("James Crook, ")) + _("developer"), roleTeamMember);
110  AddCredit(wxString(wxT("Roger Dannenberg, ")) + _("co-founder and developer"), roleTeamMember);
111  AddCredit(wxString(wxT("Steve Daulton")), roleTeamMember);
112  AddCredit(wxString(wxT("Greg Kozikowski, ")) + _("documentation and support"), roleTeamMember);
113  AddCredit(wxString(wxT("Paul Licameli, ")) + _("developer"), roleTeamMember);
114  AddCredit(wxString(wxT("Peter Sampson")), roleTeamMember);
115  AddCredit(wxString(wxT("Bill Wharrie, ")) + _("documentation and support"), roleTeamMember);
116 
117  // Emeritus: people who were "lead developers" or made an
118  // otherwise distinguished contribution, but who are no
119  // longer active.
120  AddCredit(wxString(wxT("[[https://wiki.audacityteam.org/wiki/User:Galeandrews|Gale Andrews]], ")) + _("quality assurance"), roleEmeritusTeam);
121  AddCredit(wxString(wxT("Richard Ash, ")) + _("developer"), roleEmeritusTeam);
122  AddCredit(wxString(wxT("Christian Brochec, ")) + _("documentation and support, French"), roleEmeritusTeam);
123  AddCredit(wxString(wxT("Matt Brubeck, ")) + _("developer"), roleEmeritusTeam);
124  AddCredit(wxString(wxT("Michael Chinen, ")) + _("developer"), roleEmeritusTeam);
125  AddCredit(wxString(wxT("Al Dimond, ")) + _("developer"), roleEmeritusTeam);
126  AddCredit(wxString(wxT("Benjamin Drung, ")) + _("developer"), roleEmeritusTeam);
127  AddCredit(wxString(wxT("Joshua Haberman, ")) + _("developer"), roleEmeritusTeam);
128  AddCredit(wxString(wxT("Ruslan Ijbulatov, ")) + _("developer"), roleEmeritusTeam);
129  AddCredit(wxString(wxT("Vaughan Johnson, ")) + _("developer"), roleEmeritusTeam);
130  AddCredit(wxString(wxT("Leland Lucius, ")) + _("developer"), roleEmeritusTeam);
131  AddCredit(wxString(wxT("Dominic Mazzoni, "))+_("co-founder and developer"), roleEmeritusTeam);
132  AddCredit(wxString(wxT("Markus Meyer, ")) + _("developer"), roleEmeritusTeam);
133  AddCredit(wxString(wxT("Monty Montgomery, ")) + _("developer"), roleEmeritusTeam);
134  AddCredit(wxString(wxT("Shane Mueller, ")) + _("developer"), roleEmeritusTeam);
135  AddCredit(wxString(wxT("Tony Oetzmann, ")) + _("documentation and support"), roleEmeritusTeam);
136  AddCredit(wxString(wxT("Alexandre Prokoudine, ")) + _("documentation and support"), roleEmeritusTeam);
137  AddCredit(wxString(wxT("Martyn Shaw, ")) + _("developer"), roleEmeritusTeam);
138 
139  // Contributors
140  AddCredit(wxString(wxT("Lynn Allan, ")) + _("developer"), roleContributor);
141  AddCredit(wxString(wxT("Brian Armstrong, ")) + _("developer"), roleContributor);
142  AddCredit(wxString(wxT("David Avery, ")) + _("developer"), roleContributor);
143  AddCredit(wxString(wxT("David Bailes, ")) + _("accessibility advisor"), roleContributor);
144  AddCredit(wxString(wxT("William Bland, ")) + _("developer"), roleContributor);
145  AddCredit(wxString(wxT("Sami Boukortt, ")) + _("developer"), roleContributor);
146  AddCredit(wxString(wxT("Jeremy R. Brown, ")) + _("developer"), roleContributor);
147  AddCredit(wxString(wxT("Alex S. Brown, ")) + _("developer"), roleContributor);
148  AddCredit(wxString(wxT("Chris Cannam, ")) + _("developer"), roleContributor);
149  AddCredit(wxString(wxT("Cory Cook, ")) + _("developer"), roleContributor);
150  AddCredit(wxString(wxT("Craig DeForest, ")) + _("developer"), roleContributor);
151  AddCredit(wxString(wxT("Edgar Franke (Edgar-RFT), ")) + _("developer"), roleContributor);
152  AddCredit(wxString(wxT("Mitch Golden, ")) + _("developer"), roleContributor);
153  AddCredit(wxString(wxT("Brian Gunlogson, ")) + _("developer"), roleContributor);
154  AddCredit(wxString(wxT("Andrew Hallendorff, ")) + _("developer"), roleContributor);
155  AddCredit(wxString(wxT("Robert H\u00E4nggi, ")) + _("developer"), roleContributor);
156  AddCredit(wxString(wxT("Daniel Horgan, ")) + _("developer"), roleContributor);
157  AddCredit(wxString(wxT("David Hostetler, ")) + _("developer"), roleContributor);
158  AddCredit(wxString(wxT("Steve Jolly, ")) + _("developer"), roleContributor);
159  AddCredit(wxString(wxT("Steven Jones, ")) + _("developer"), roleContributor);
160  AddCredit(wxString(wxT("Henric Jungheim, ")) + _("developer"), roleContributor);
161  AddCredit(wxString(wxT("Arun Kishore, ")) + _("developer"), roleContributor);
162  AddCredit(wxString(wxT("Paul Livesey, ")) + _("developer"), roleContributor);
163  AddCredit(wxString(wxT("Harvey Lubin, ")) + _("graphic artist"), roleContributor);
164  AddCredit(wxString(wxT("Greg Mekkes, ")) + _("developer"), roleContributor);
165  AddCredit(wxString(wxT("Abe Milde, ")) + _("developer"), roleContributor);
166  AddCredit(wxString(wxT("Paul Nasca, ")) + _("developer"), roleContributor);
167  AddCredit(wxString(wxT("Clayton Otey, ")) + _("developer"), roleContributor);
168  AddCredit(wxString(wxT("Mark Phillips, ")) + _("developer"), roleContributor);
169  AddCredit(wxString(wxT("Andr\u00E9 Pinto, ")) + _("developer"), roleContributor);
170  AddCredit(wxString(wxT("Jean Claude Risset, ")) + _("composer"), roleContributor);
171  AddCredit(wxString(wxT("Augustus Saunders, ")) + _("developer"), roleContributor);
172  AddCredit(wxString(wxT("Benjamin Schwartz, ")) + _("developer"), roleContributor);
173  AddCredit(wxString(wxT("Cliff Scott, ")) + _("tester"), roleContributor);
174  AddCredit(wxString(wxT("David R. Sky, ")) + _("Nyquist plug-ins"), roleContributor);
175  AddCredit(wxString(wxT("Rob Sykes, ")) + _("developer"), roleContributor);
176  AddCredit(wxString(wxT("Mike Underwood, ")) + _("developer"), roleContributor);
177  AddCredit(wxString(wxT("Philip Van Baren, ")) + _("developer"), roleContributor);
178  AddCredit(wxString(wxT("Salvo Ventura, ")) + _("developer"), roleContributor);
179  AddCredit(wxString(wxT("Darrell Walisser, ")) + _("developer"), roleContributor);
180  AddCredit(wxString(wxT("Jun Wan, ")) + _("developer"), roleContributor);
181  AddCredit(wxString(wxT("Daniel Winzen, ")) + _("developer"), roleContributor);
182  AddCredit(wxString(wxT("Tom Woodhams, ")) + _("developer"), roleContributor);
183  AddCredit(wxString(wxT("Mark Young, ")) + _("developer"), roleContributor);
184  AddCredit(wxString(wxT("Wing Yu, ")) + _("developer"), roleContributor);
185 
186  // Website and Graphics
187  AddCredit(wxString(wxT("Shinta Carolinasari, ")) + _("web developer"), roleGraphics);
188  AddCredit(wxString(wxT("Bayu Rizaldhan Rayes, ")) + _("graphics"), roleGraphics);
189 
190  // Libraries
191 
192  AddCredit(wxT("[[https://libexpat.github.io/|expat]]"), roleLibrary);
193  AddCredit(wxT("[[https://xiph.org/flac/|FLAC]]"), roleLibrary);
194  AddCredit(wxT("[[http://lame.sourceforge.net/|LAME]]"), roleLibrary);
195  AddCredit(wxT("[[https://www.underbit.com/products/mad/|libmad]]"), roleLibrary);
196  AddCredit(wxT("[[http://www.mega-nerd.com/libsndfile/|libsndfile]]"), roleLibrary);
197  AddCredit(wxT("[[https://sourceforge.net/p/soxr/wiki/Home/|libsoxr]]"), roleLibrary);
198  AddCredit(wxT("[[http://lv2plug.in/|lv2]] (") + _("incorporating") + wxT(" lilv, msinttypes, serd, sord and sratom)"), roleLibrary);
199  AddCredit(wxT("[[https://www.cs.cmu.edu/~music/nyquist/|Nyquist]]"), roleLibrary);
200  AddCredit(wxT("[[https://xiph.org/vorbis/|Ogg Vorbis]]"), roleLibrary);
201  AddCredit(wxT("[[http://www.portaudio.com/|PortAudio]]"), roleLibrary);
202  AddCredit(wxT("[[http://www.portmedia.sourceforge.net/portmidi/|PortMidi]]"), roleLibrary);
203  AddCredit(wxT("[[https://sourceforge.net/p/portmedia/wiki/portsmf/|portsmf]]"), roleLibrary);
204  AddCredit(wxT("[[http://sbsms.sourceforge.net/|sbsms]]"), roleLibrary);
205  AddCredit(wxT("[[https://www.surina.net/soundtouch/|SoundTouch]]"), roleLibrary);
206  AddCredit(wxT("[[http://www.twolame.org/|TwoLAME]]"), roleLibrary);
207  AddCredit(wxT("[[http://www.vamp-plugins.org/|Vamp]]"), roleLibrary);
208  AddCredit(wxT("[[https://wxwidgets.org/|wxWidgets]]"), roleLibrary);
209 
210  // Thanks
211 
212  AddCredit(wxT("Dave Beydler"), roleThanks);
213  AddCredit(wxT("Brian Cameron"), roleThanks);
214  AddCredit(wxT("Jason Cohen"), roleThanks);
215  AddCredit(wxT("Dave Fancella"), roleThanks);
216  AddCredit(wxT("Steve Harris"), roleThanks);
217  AddCredit(wxT("Daniel James"), roleThanks);
218  AddCredit(wxT("Daniil Kolpakov"), roleThanks);
219  AddCredit(wxT("Robert Leidle"), roleThanks);
220  AddCredit(wxT("Logan Lewis"), roleThanks);
221  AddCredit(wxT("David Luff"), roleThanks);
222  AddCredit(wxT("Jason Pepas"), roleThanks);
223  AddCredit(wxT("Jonathan Ryshpan"), roleThanks);
224  AddCredit(wxT("Michael Schwendt"), roleThanks);
225  AddCredit(wxT("Patrick Shirkey"), roleThanks);
226  AddCredit(wxT("Tuomas Suutari"), roleThanks);
227  AddCredit(wxT("Mark Tomlinson"), roleThanks);
228  AddCredit(wxT("David Topper"), roleThanks);
229  AddCredit(wxT("Rudy Trubitt"), roleThanks);
230  AddCredit(wxT("StreetIQ.com"), roleThanks);
231  AddCredit(wxT("UmixIt Technologies, LLC"), roleThanks);
232  AddCredit(wxT("Verilogix, Inc."), roleThanks);
233 }
void AddCredit(wxString &&description, Role role)
_("Move Track &Down")+wxT("\t")+(GetActiveProject() -> GetCommandManager() ->GetKeyFromName(wxT("TrackMoveDown")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveTopID, _("Move Track to &Top")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveTop")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveBottomID, _("Move Track to &Bottom")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveBottom")).Raw()), OnMoveTrack)#define SET_TRACK_NAME_PLUGIN_SYMBOLclass SetTrackNameCommand:public AudacityCommand
wxString AboutDialog::GetCreditsByRole ( AboutDialog::Role  role)
private

Definition at line 999 of file AboutDialog.cpp.

References creditItems.

Referenced by PopulateAudacityPage().

1000 {
1001  wxString s;
1002 
1003  for (const auto &item : creditItems)
1004  {
1005  if (item.role == role)
1006  {
1007  s += item.description;
1008  s += wxT("<br>");
1009  }
1010  }
1011 
1012  // Strip last <br>, if any
1013  if (s.Right(4) == wxT("<br>"))
1014  s = s.Left(s.Length() - 4);
1015 
1016  return s;
1017 }
AboutDialogCreditItemsList creditItems
Definition: AboutDialog.h:77
void AboutDialog::OnOK ( wxCommandEvent &  event)

Definition at line 1052 of file AboutDialog.cpp.

1053 {
1054 #ifdef __WXMAC__
1055  Destroy();
1056 #else
1057  EndModal(wxID_OK);
1058 #endif
1059 }
void AboutDialog::PopulateAudacityPage ( ShuttleGui S)
private

Definition at line 282 of file AboutDialog.cpp.

References _(), ABOUT_DIALOG_WIDTH, ShuttleGuiBase::AddWindow(), AUDACITY_VERSION_STRING, CreateCreditsList(), ShuttleGuiBase::EndNotebookPage(), ShuttleGuiBase::EndVerticalLay(), FormatHtmlText(), GetCreditsByRole(), ShuttleGuiBase::GetParent(), icon, LOGOWITHNAME_HEIGHT, LOGOWITHNAME_WIDTH, ShuttleGui::Prop(), roleContributor, roleEmeritusTeam, roleGraphics, roleLibrary, roleTeamMember, roleThanks, safenew, ShuttleGuiBase::StartNotebookPage(), and ShuttleGuiBase::StartVerticalLay().

Referenced by AboutDialog().

283 {
285 
286  wxString par1Str =
287 // DA: Says that it is a customised version.
288 #ifdef EXPERIMENTAL_DA
289  wxT(
290 "Audacity, which this is a customised version of, is a free program written by a worldwide team of [[https://www.audacityteam.org/about/credits|volunteers]]. \
291 Audacity is [[https://www.audacityteam.org/download|available]] for Windows, Mac, and GNU/Linux (and other Unix-like systems).");
292 #else
293  _(
294 "Audacity is a free program written by a worldwide team of [[https://www.audacityteam.org/about/credits|volunteers]]. \
295 Audacity is [[https://www.audacityteam.org/download|available]] for Windows, Mac, and GNU/Linux (and other Unix-like systems).");
296 #endif
297 
298  // This trick here means that the English language version won't mention using
299  // English, whereas all translated versions will.
300  wxString par2StrUntranslated = wxT(
301 "If you find a bug or have a suggestion for us, please write, in English, to our [[https://forum.audacityteam.org/|forum]]. \
302 For help, view the tips and tricks on our [[https://wiki.audacityteam.org/|wiki]] or \
303 visit our [[https://forum.audacityteam.org/|forum]].");
304  wxString par2Str = _(
305 "If you find a bug or have a suggestion for us, please write, in English, to our [[https://forum.audacityteam.org/|forum]]. \
306 For help, view the tips and tricks on our [[https://wiki.audacityteam.org/|wiki]] or \
307 visit our [[https://forum.audacityteam.org/|forum]].");
308 
309  if( par2Str == par2StrUntranslated )
310  par2Str.Replace( wxT(", in English,"), wxT("") );
311 
312  wxString translatorCredits;
313  /* i18n-hint: The translation of "translator_credits" will appear
314  * in the credits in the About Audacity window. Use this to add
315  * your own name(s) to the credits.
316  *
317  * For example: "English translation by Dominic Mazzoni." */
318  if (_("translator_credits") != wxString(wxT("translator_credits")))
319  {
320  translatorCredits = _("translator_credits") + wxT("<br>");
321  }
322 
323  wxString creditStr = FormatHtmlText(
324  wxString( wxT("<center>") ) +
325 // DA: Description and provenance in About box
326 #ifdef EXPERIMENTAL_DA
327  #undef _
328  #define _(s) wxGetTranslation((s))
329  wxT("<h3>DarkAudacity ") + wxString(AUDACITY_VERSION_STRING) + wxT("</center></h3>") +
330  wxT("Customised version of the Audacity free, open source, cross-platform software " ) +
331  wxT("for recording and editing sounds.") +
332  wxT("<p><br>&nbsp; &nbsp; <b>Audacity<sup>&reg;</sup></b> software is copyright &copy; 1999-2018 Audacity Team.<br>") +
333  wxT("&nbsp; &nbsp; The name <b>Audacity</b> is a registered trademark of Dominic Mazzoni.<br><br>") +
334 
335 #else
336  _("<h3>Audacity ") + wxString(AUDACITY_VERSION_STRING) + wxT("</center></h3>") +
337  _("Audacity the free, open source, cross-platform software for recording and editing sounds.") +
338 #endif
339 
340  //wxT("<p><br>") + par1Str +
341  //wxT("<p>") + par2Str +
342  wxT("<h3>") + _("Credits") + wxT("</h3>") + wxT("<p>") +
343 
344 // DA: Customisation credit
345 #ifdef EXPERIMENTAL_DA
346  wxT("<p><b>") + wxString::Format(_("DarkAudacity Customisation")) + wxT("</b><br>") +
347  wxT("James Crook, art, coding &amp; design<br>") +
348 #endif
349 
350  wxT("<p><b>") + _("Audacity Team Members") + wxT("</b><br>") +
352 
353  wxT("<p><b> ") + _("Emeritus:") + wxT("</b><br>") +
354  _("Distinguished Audacity Team members, not currently active") + wxT("<br><br>") +
356 
357  wxT("<p><b>") + _("Contributors") + wxT("</b><br>") +
359 
360  wxT("<p><b>") + _("Website and Graphics") + wxT("</b><br>") +
362 
363  (translatorCredits.empty()
364  ? wxT("")
365  : (wxT("<p><b>") + _("Translators") + wxT("</b><br>") +
366  translatorCredits)) +
367 
368  wxT("<p><b>") + _("Libraries") + wxT("</b><br>") +
369  _("Audacity includes code from the following projects:") + wxT("<br><br>") +
371 
372  wxT("<p><b>") + _("Special thanks:") + wxT("</b><br>") +
374 
375  wxT("<p><br>") + _("Audacity website: ") + wxT("[[https://www.audacityteam.org/|https://www.audacityteam.org/]]") +
376 
377 // DA: Link for DA url too
378 #ifdef EXPERIMENTAL_DA
379  wxT("<br>DarkAudacity website: [[http://www.darkaudacity.com/|https://www.darkaudacity.com/]]") +
380 #else
381  _("<p><br>&nbsp; &nbsp; <b>Audacity<sup>&reg;</sup></b> software is copyright &copy; 1999-2018 Audacity Team.<br>")
382 
383  +
384 
385  _("&nbsp; &nbsp; The name <b>Audacity</b> is a registered trademark of Dominic Mazzoni.<br><br>") +
386 #endif
387 
388  wxT("</center>")
389  );
390 
391  auto pPage = S.StartNotebookPage( _("Audacity") );
392  S.StartVerticalLay(1);
393  {
394  //v For now, change to AudacityLogoWithName via old-fashioned way, not Theme.
395  wxBitmap logo(AudacityLogoWithName_xpm); //v
396 
397  // JKC: Resize to 50% of size. Later we may use a smaller xpm as
398  // our source, but this allows us to tweak the size - if we want to.
399  // It also makes it easier to revert to full size if we decide to.
400  const float fScale = 0.5f;// smaller size.
401  wxImage RescaledImage(logo.ConvertToImage());
402  wxColour MainColour(
403  RescaledImage.GetRed(1,1),
404  RescaledImage.GetGreen(1,1),
405  RescaledImage.GetBlue(1,1));
406  pPage->SetBackgroundColour(MainColour);
407  // wxIMAGE_QUALITY_HIGH not supported by wxWidgets 2.6.1, or we would use it here.
408  RescaledImage.Rescale((int)(LOGOWITHNAME_WIDTH * fScale), (int)(LOGOWITHNAME_HEIGHT *fScale));
409  wxBitmap RescaledBitmap(RescaledImage);
410 
411  icon =
412  safenew wxStaticBitmap(S.GetParent(), -1,
413  //*logo, //v
414  //v theTheme.Bitmap(bmpAudacityLogo), wxPoint(93, 10), wxSize(215, 190));
415  //v theTheme.Bitmap(bmpAudacityLogoWithName),
416  RescaledBitmap,
417  wxDefaultPosition,
418  wxSize((int)(LOGOWITHNAME_WIDTH*fScale), (int)(LOGOWITHNAME_HEIGHT*fScale)));
419  }
420  S.Prop(0).AddWindow( icon );
421 
423  wxDefaultPosition,
424  wxSize(ABOUT_DIALOG_WIDTH, 359),
425  wxHW_SCROLLBAR_AUTO | wxSUNKEN_BORDER);
426  html->SetFocus();
427  html->SetPage(creditStr);
428 
429  /* locate the html renderer where it fits in the dialogue */
430  S.Prop(1).AddWindow( html, wxEXPAND );
431 
432  S.EndVerticalLay();
433  S.EndNotebookPage();
434 }
#define AUDACITY_VERSION_STRING
Definition: Audacity.h:81
wxWindow * AddWindow(wxWindow *pWindow, int Flags=wxALIGN_CENTRE|wxALL)
Definition: ShuttleGui.cpp:288
void CreateCreditsList()
void EndNotebookPage()
Definition: ShuttleGui.cpp:948
#define safenew
Definition: Audacity.h:230
void EndVerticalLay()
#define LOGOWITHNAME_WIDTH
wxString FormatHtmlText(const wxString &Text)
Definition: HelpText.cpp:318
wxWindow * GetParent()
Definition: ShuttleGui.h:294
HtmlWindow Class.
Definition: HtmlWindow.h:39
wxStaticBitmap * icon
Definition: AboutDialog.h:62
_("Move Track &Down")+wxT("\t")+(GetActiveProject() -> GetCommandManager() ->GetKeyFromName(wxT("TrackMoveDown")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveTopID, _("Move Track to &Top")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveTop")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveBottomID, _("Move Track to &Bottom")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveBottom")).Raw()), OnMoveTrack)#define SET_TRACK_NAME_PLUGIN_SYMBOLclass SetTrackNameCommand:public AudacityCommand
ShuttleGui & Prop(int iProp)
Definition: ShuttleGui.h:418
#define LOGOWITHNAME_HEIGHT
#define ABOUT_DIALOG_WIDTH
wxNotebookPage * StartNotebookPage(const wxString &Name)
Definition: ShuttleGui.cpp:904
wxString GetCreditsByRole(AboutDialog::Role role)
void StartVerticalLay(int iProp=1)
void AboutDialog::PopulateInformationPage ( ShuttleGui S)
private

: Fills out the "Information" tab of the preferences dialogue

Provides as much information as possible about build-time options and the libraries used, to try and make Linux support easier. Basically anything about the build we might wish to know should be visible here

Definition at line 441 of file AboutDialog.cpp.

References _(), ABOUT_DIALOG_WIDTH, AddBuildinfoRow(), ShuttleGuiBase::AddWindow(), FileNames::DataDir(), ShuttleGuiBase::EndNotebookPage(), ShuttleGuiBase::EndVerticalLay(), FormatHtmlText(), ShuttleGuiBase::GetParent(), ShuttleGui::Prop(), REV_IDENT, safenew, ShuttleGuiBase::StartNotebookPage(), ShuttleGuiBase::StartVerticalLay(), and VerCheckHtml().

Referenced by AboutDialog().

442 {
443  wxString informationStr; // string to build up list of information in
444  S.StartNotebookPage( _("Build Information") ); // start the tab
445  S.StartVerticalLay(2); // create the window
446  HtmlWindow *html = safenew LinkingHtmlWindow(S.GetParent(), -1, wxDefaultPosition,
447  wxSize(ABOUT_DIALOG_WIDTH, 264),
448  wxHW_SCROLLBAR_AUTO | wxSUNKEN_BORDER);
449  // create a html pane in it to put the content in.
450  wxString enabled = _("Enabled");
451  wxString disabled = _("Disabled");
452  wxString blank = wxT("");
453 
454  /* this builds up the list of information to go in the window in the string
455  * informationStr */
456  informationStr = wxT("<h2><center>");
457  informationStr += _("Build Information");
458  informationStr += wxT("</center></h2>\n");
459  informationStr += VerCheckHtml();
460  // top level heading
461  informationStr += wxT("<h3>");
462  informationStr += _("File Format Support");
463  informationStr += wxT("</h3>\n<p>");
464  // 2nd level headings to split things up a bit
465 
466 
467  informationStr += wxT("<table>"); // start table of libraries
468 
469 
470  #ifdef USE_LIBMAD
471  /* i18n-hint: This is what the library (libmad) does - imports MP3 files */
472  AddBuildinfoRow(&informationStr, wxT("libmad"), _("MP3 Importing"), enabled);
473  #else
474  AddBuildinfoRow(&informationStr, wxT("libmad"), _("MP3 Importing"), disabled);
475  #endif
476 
477  /* i18n-hint: Ogg is the container format. Vorbis is the compression codec.
478  * Both are proper nouns and shouldn't be translated */
479  #ifdef USE_LIBVORBIS
480  AddBuildinfoRow(&informationStr, wxT("libvorbis"),
481  _("Ogg Vorbis Import and Export"), enabled);
482  #else
483  AddBuildinfoRow(&informationStr, wxT("libvorbis"),
484  _("Ogg Vorbis Import and Export"), disabled);
485  #endif
486 
487  #ifdef USE_LIBID3TAG
488  AddBuildinfoRow(&informationStr, wxT("libid3tag"), _("ID3 tag support"),
489  enabled);
490  #else
491  AddBuildinfoRow(&informationStr, wxT("libid3tag"), _("ID3 tag support"),
492  disabled);
493  #endif
494 
495  /* i18n-hint: FLAC stands for Free Lossless Audio Codec, but is effectively
496  * a proper noun and so shouldn't be translated */
497  # if USE_LIBFLAC
498  AddBuildinfoRow(&informationStr, wxT("libflac"), _("FLAC import and export"),
499  enabled);
500  # else
501  AddBuildinfoRow(&informationStr, wxT("libflac"), _("FLAC import and export"),
502  disabled);
503  # endif
504 
505  # if USE_LIBTWOLAME
506  AddBuildinfoRow(&informationStr, wxT("libtwolame"), _("MP2 export"),
507  enabled);
508  # else
509  AddBuildinfoRow(&informationStr, wxT("libtwolame"), _("MP2 export"),
510  disabled);
511  # endif
512 
513  # if USE_QUICKTIME
514  AddBuildinfoRow(&informationStr, wxT("QuickTime"), _("Import via QuickTime"),
515  enabled);
516  # else
517  AddBuildinfoRow(&informationStr, wxT("QuickTime"), _("Import via QuickTime"),
518  disabled);
519  # endif
520 
521  #ifdef USE_FFMPEG
522  AddBuildinfoRow(&informationStr, wxT("ffmpeg"), _("FFmpeg Import/Export"), enabled);
523  #else
524  AddBuildinfoRow(&informationStr, wxT("ffmpeg"), _("FFmpeg Import/Export"), disabled);
525  #endif
526 
527  #ifdef USE_GSTREAMER
528  AddBuildinfoRow(&informationStr, wxT("gstreamer"), _("Import via GStreamer"), enabled);
529  #else
530  AddBuildinfoRow(&informationStr, wxT("gstreamer"), _("Import via GStreamer"), disabled);
531  #endif
532 
533  informationStr += wxT("</table>\n"); //end table of file format libraries
534  informationStr += wxT("<h3>");
535  /* i18n-hint: Libraries that are essential to audacity */
536  informationStr += _("Core Libraries");
537  informationStr += wxT("</h3>\n<table>"); // start table of features
538 
539  AddBuildinfoRow(&informationStr, wxT("libsoxr"),
540  _("Sample rate conversion"), enabled);
541 
542  AddBuildinfoRow(&informationStr, wxT("PortAudio"),
543  _("Audio playback and recording"), wxString(wxT("v19")));
544 
545  AddBuildinfoRow(&informationStr, wxT("wxWidgets"),
546  _("Cross-platform GUI library"), wxVERSION_NUM_DOT_STRING_T);
547 
548  informationStr += wxT("</table>\n"); //end table of libraries
549  informationStr += wxT("<h3>");
550  informationStr += _("Features");
551  informationStr += wxT("</h3>\n<table>"); // start table of features
552 
553 #ifdef EXPERIMENTAL_DA
554  AddBuildinfoRow(&informationStr, wxT("Theme"), _("Dark Theme Extras"), enabled);
555 #else
556  AddBuildinfoRow(&informationStr, wxT("Theme"), _("Dark Theme Extras"), disabled);
557 #endif
558 
559  # if USE_NYQUIST
560  AddBuildinfoRow(&informationStr, wxT("Nyquist"), _("Plug-in support"),
561  enabled);
562  # else
563  AddBuildinfoRow(&informationStr, wxT("Nyquist"), _("Plug-in support"),
564  disabled);
565  # endif
566 
567  # if USE_LADSPA
568  AddBuildinfoRow(&informationStr, wxT("LADSPA"), _("Plug-in support"),
569  enabled);
570  # else
571  AddBuildinfoRow(&informationStr, wxT("LADSPA"), _("Plug-in support"),
572  disabled);
573  # endif
574 
575  # if USE_VAMP
576  AddBuildinfoRow(&informationStr, wxT("Vamp"), _("Plug-in support"),
577  enabled);
578  # else
579  AddBuildinfoRow(&informationStr, wxT("Vamp"), _("Plug-in support"),
580  disabled);
581  # endif
582 
583  # if USE_AUDIO_UNITS
584  AddBuildinfoRow(&informationStr, wxT("Audio Units"), _("Plug-in support"),
585  enabled);
586  # else
587  AddBuildinfoRow(&informationStr, wxT("Audio Units"), _("Plug-in support"),
588  disabled);
589  # endif
590 
591  # if USE_VST
592  AddBuildinfoRow(&informationStr, wxT("VST"), _("Plug-in support"),
593  enabled);
594  # else
595  AddBuildinfoRow(&informationStr, wxT("VST"), _("Plug-in support"),
596  disabled);
597  # endif
598 
599  # if USE_LV2
600  AddBuildinfoRow(&informationStr, wxT("LV2"), _("Plug-in support"),
601  enabled);
602  # else
603  AddBuildinfoRow(&informationStr, wxT("LV2"), _("Plug-in support"),
604  disabled);
605  # endif
606 
607  # if USE_PORTMIXER
608  AddBuildinfoRow(&informationStr, wxT("PortMixer"), _("Sound card mixer support"),
609  enabled);
610  # else
611  AddBuildinfoRow(&informationStr, wxT("PortMixer"), _("Sound card mixer support"),
612  disabled);
613  # endif
614 
615  # if USE_SOUNDTOUCH
616  AddBuildinfoRow(&informationStr, wxT("SoundTouch"), _("Pitch and Tempo Change support"),
617  enabled);
618  # else
619  AddBuildinfoRow(&informationStr, wxT("SoundTouch"), _("Pitch and Tempo Change support"),
620  disabled);
621  # endif
622 
623  # if USE_SBSMS
624  AddBuildinfoRow(&informationStr, wxT("SBSMS"), _("Extreme Pitch and Tempo Change support"),
625  enabled);
626  # else
627  AddBuildinfoRow(&informationStr, wxT("SBSMS"), _("Extreme Pitch and Tempo Change support"),
628  disabled);
629  # endif
630 
631  informationStr += wxT("</table>\n"); // end of table of features
632 
633  informationStr += wxT("<h3>");
634  /* i18n-hint: Information about when audacity was compiled */
635  informationStr += _("Build Information");
636  informationStr += wxT("</h3>\n<table>");
637 
638  // Current date
639  AddBuildinfoRow(&informationStr, _("Program build date: "), __TDATE__);
640  AddBuildinfoRow(&informationStr, _("Commit Id:"), REV_IDENT );
641 #ifdef __WXDEBUG__
642  AddBuildinfoRow(&informationStr, _("Build type:"), _("Debug build"));
643 #else
644  AddBuildinfoRow(&informationStr, _("Build type:"), _("Release build"));
645 #endif
646 
647 #ifdef _MSC_FULL_VER
648  AddBuildinfoRow(&informationStr, _("Compiler:"),
649  wxString::Format(wxT("MSVC %02d.%02d.%05d.%02d"), _MSC_VER / 100, _MSC_VER % 100, _MSC_FULL_VER % 100000, _MSC_BUILD));
650 #endif
651 
652 #ifdef __GNUC_PATCHLEVEL__
653 #ifdef __MINGW32__
654  AddBuildinfoRow(&informationStr, _("Compiler:"), wxT("MinGW ") wxMAKE_VERSION_DOT_STRING_T(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__));
655 #else
656  AddBuildinfoRow(&informationStr, _("Compiler:"), wxT("GCC ") wxMAKE_VERSION_DOT_STRING_T(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__));
657 #endif
658 #endif
659 
660 #ifdef __clang_version__
661  AddBuildinfoRow(&informationStr, _("Compiler:"), wxT("clang ") __clang_version__);
662 #endif
663 
664  // Install prefix
665  /* i18n-hint: The directory audacity is installed into (on *nix systems) */
666 #ifdef __WXGTK__
667  AddBuildinfoRow(&informationStr, _("Installation Prefix: "), \
668  wxT(INSTALL_PREFIX));
669 #endif
670 
671  // Location of settings
672  AddBuildinfoRow(&informationStr,_("Settings folder: "), \
674  // end of table
675  informationStr += wxT("</table>\n");
676 
677  informationStr = FormatHtmlText( informationStr );
678 
679  html->SetPage(informationStr); // push the page into the html renderer
680  S.Prop(2).AddWindow( html, wxEXPAND ); // make it fill the page
681  // I think the 2 here goes with the StartVerticalLay() call above?
682  S.EndVerticalLay(); // end window
683  S.EndNotebookPage(); // end the tab
684 }
wxWindow * AddWindow(wxWindow *pWindow, int Flags=wxALIGN_CENTRE|wxALL)
Definition: ShuttleGui.cpp:288
void EndNotebookPage()
Definition: ShuttleGui.cpp:948
const wxString VerCheckHtml()
Definition: AboutDialog.cpp:96
#define safenew
Definition: Audacity.h:230
#define REV_IDENT
Definition: AboutDialog.cpp:67
void AddBuildinfoRow(wxString *htmlstring, const wxChar *libname, const wxChar *libdesc, const wxString &status)
Add a table row saying if a library is used or not.
void EndVerticalLay()
wxString FormatHtmlText(const wxString &Text)
Definition: HelpText.cpp:318
wxWindow * GetParent()
Definition: ShuttleGui.h:294
HtmlWindow Class.
Definition: HtmlWindow.h:39
_("Move Track &Down")+wxT("\t")+(GetActiveProject() -> GetCommandManager() ->GetKeyFromName(wxT("TrackMoveDown")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveTopID, _("Move Track to &Top")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveTop")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveBottomID, _("Move Track to &Bottom")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveBottom")).Raw()), OnMoveTrack)#define SET_TRACK_NAME_PLUGIN_SYMBOLclass SetTrackNameCommand:public AudacityCommand
static wxString DataDir()
Audacity user data directory.
Definition: FileNames.cpp:130
ShuttleGui & Prop(int iProp)
Definition: ShuttleGui.h:418
#define ABOUT_DIALOG_WIDTH
wxNotebookPage * StartNotebookPage(const wxString &Name)
Definition: ShuttleGui.cpp:904
void StartVerticalLay(int iProp=1)
void AboutDialog::PopulateLicensePage ( ShuttleGui S)
private

Definition at line 687 of file AboutDialog.cpp.

References _(), ABOUT_DIALOG_WIDTH, ShuttleGuiBase::AddWindow(), ShuttleGuiBase::EndNotebookPage(), ShuttleGuiBase::EndVerticalLay(), FormatHtmlText(), ShuttleGuiBase::GetParent(), ShuttleGui::Prop(), safenew, ShuttleGuiBase::StartNotebookPage(), and ShuttleGuiBase::StartVerticalLay().

Referenced by AboutDialog().

688 {
689  S.StartNotebookPage( _("GPL License") );
690  S.StartVerticalLay(1);
692  wxDefaultPosition,
693  wxSize(ABOUT_DIALOG_WIDTH, 264),
694  wxHW_SCROLLBAR_AUTO | wxSUNKEN_BORDER);
695 
696 // I tried using <pre> here to get a monospaced font,
697 // as is normally used for the GPL.
698 // However can't reduce the font size in that case. It looks
699 // better proportionally spaced.
700 //
701 // The GPL is not to be translated....
702  wxString PageText= FormatHtmlText(
703 wxT(" <center>GNU GENERAL PUBLIC LICENSE\n</center>")
704 wxT(" <center>Version 2, June 1991\n</center>")
705 wxT("<p><p>")
706 wxT(" Copyright (C) 1989, 1991 Free Software Foundation, Inc.\n")
707 wxT(" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\n")
708 wxT(" Everyone is permitted to copy and distribute verbatim copies\n")
709 wxT(" of this license document, but changing it is not allowed.\n")
710 wxT("\n")
711 wxT(" <center>Preamble\n</center>")
712 wxT("<p><p>\n")
713 wxT(" The licenses for most software are designed to take away your\n")
714 wxT("freedom to share and change it. By contrast, the GNU General Public\n")
715 wxT("License is intended to guarantee your freedom to share and change free\n")
716 wxT("software--to make sure the software is free for all its users. This\n")
717 wxT("General Public License applies to most of the Free Software\n")
718 wxT("Foundation's software and to any other program whose authors commit to\n")
719 wxT("using it. (Some other Free Software Foundation software is covered by\n")
720 wxT("the GNU Library General Public License instead.) You can apply it to\n")
721 wxT("your programs, too.\n")
722 wxT("<p><p>\n")
723 wxT(" When we speak of free software, we are referring to freedom, not\n")
724 wxT("price. Our General Public Licenses are designed to make sure that you\n")
725 wxT("have the freedom to distribute copies of free software (and charge for\n")
726 wxT("this service if you wish), that you receive source code or can get it\n")
727 wxT("if you want it, that you can change the software or use pieces of it\n")
728 wxT("in new free programs; and that you know you can do these things.\n")
729 wxT("<p><p>\n")
730 wxT(" To protect your rights, we need to make restrictions that forbid\n")
731 wxT("anyone to deny you these rights or to ask you to surrender the rights.\n")
732 wxT("These restrictions translate to certain responsibilities for you if you\n")
733 wxT("distribute copies of the software, or if you modify it.\n")
734 wxT("<p><p>\n")
735 wxT(" For example, if you distribute copies of such a program, whether\n")
736 wxT("gratis or for a fee, you must give the recipients all the rights that\n")
737 wxT("you have. You must make sure that they, too, receive or can get the\n")
738 wxT("source code. And you must show them these terms so they know their\n")
739 wxT("rights.\n")
740 wxT("<p><p>\n")
741 wxT(" We protect your rights with two steps: (1) copyright the software, and\n")
742 wxT("(2) offer you this license which gives you legal permission to copy,\n")
743 wxT("distribute and/or modify the software.\n")
744 wxT("<p><p>\n")
745 wxT(" Also, for each author's protection and ours, we want to make certain\n")
746 wxT("that everyone understands that there is no warranty for this free\n")
747 wxT("software. If the software is modified by someone else and passed on, we\n")
748 wxT("want its recipients to know that what they have is not the original, so\n")
749 wxT("that any problems introduced by others will not reflect on the original\n")
750 wxT("authors' reputations.\n")
751 wxT("<p><p>\n")
752 wxT(" Finally, any free program is threatened constantly by software\n")
753 wxT("patents. We wish to avoid the danger that redistributors of a free\n")
754 wxT("program will individually obtain patent licenses, in effect making the\n")
755 wxT("program proprietary. To prevent this, we have made it clear that any\n")
756 wxT("patent must be licensed for everyone's free use or not licensed at all.\n")
757 wxT("<p><p>\n")
758 wxT(" The precise terms and conditions for copying, distribution and\n")
759 wxT("modification follow.\n")
760 wxT("<p><p>\n")
761 wxT(" <center>GNU GENERAL PUBLIC LICENSE\n</center>")
762 wxT(" <center>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n</center>")
763 wxT("<p><p>\n")
764 wxT(" 0. This License applies to any program or other work which contains\n")
765 wxT("a notice placed by the copyright holder saying it may be distributed\n")
766 wxT("under the terms of this General Public License. The \"Program\", below,\n")
767 wxT("refers to any such program or work, and a \"work based on the Program\"\n")
768 wxT("means either the Program or any derivative work under copyright law:\n")
769 wxT("that is to say, a work containing the Program or a portion of it,\n")
770 wxT("either verbatim or with modifications and/or translated into another\n")
771 wxT("language. (Hereinafter, translation is included without limitation in\n")
772 wxT("the term \"modification\".) Each licensee is addressed as \"you\".\n")
773 wxT("<p><p>\n")
774 wxT("Activities other than copying, distribution and modification are not\n")
775 wxT("covered by this License; they are outside its scope. The act of\n")
776 wxT("running the Program is not restricted, and the output from the Program\n")
777 wxT("is covered only if its contents constitute a work based on the\n")
778 wxT("Program (independent of having been made by running the Program).\n")
779 wxT("Whether that is true depends on what the Program does.\n")
780 wxT("<p><p>\n")
781 wxT(" 1. You may copy and distribute verbatim copies of the Program's\n")
782 wxT("source code as you receive it, in any medium, provided that you\n")
783 wxT("conspicuously and appropriately publish on each copy an appropriate\n")
784 wxT("copyright notice and disclaimer of warranty; keep intact all the\n")
785 wxT("notices that refer to this License and to the absence of any warranty;\n")
786 wxT("and give any other recipients of the Program a copy of this License\n")
787 wxT("along with the Program.\n")
788 wxT("<p><p>\n")
789 wxT("You may charge a fee for the physical act of transferring a copy, and\n")
790 wxT("you may at your option offer warranty protection in exchange for a fee.\n")
791 wxT("<p><p>\n")
792 wxT(" 2. You may modify your copy or copies of the Program or any portion\n")
793 wxT("of it, thus forming a work based on the Program, and copy and\n")
794 wxT("distribute such modifications or work under the terms of Section 1\n")
795 wxT("above, provided that you also meet all of these conditions:\n")
796 wxT("<p><p>\n")
797 wxT("<blockquote>")
798 wxT(" a) You must cause the modified files to carry prominent notices\n")
799 wxT(" stating that you changed the files and the date of any change.\n")
800 wxT("<p><p>\n")
801 wxT(" b) You must cause any work that you distribute or publish, that in\n")
802 wxT(" whole or in part contains or is derived from the Program or any\n")
803 wxT(" part thereof, to be licensed as a whole at no charge to all third\n")
804 wxT(" parties under the terms of this License.\n")
805 wxT("<p><p>\n")
806 wxT(" c) If the modified program normally reads commands interactively\n")
807 wxT(" when run, you must cause it, when started running for such\n")
808 wxT(" interactive use in the most ordinary way, to print or display an\n")
809 wxT(" announcement including an appropriate copyright notice and a\n")
810 wxT(" notice that there is no warranty (or else, saying that you provide\n")
811 wxT(" a warranty) and that users may redistribute the program under\n")
812 wxT(" these conditions, and telling the user how to view a copy of this\n")
813 wxT(" License. (Exception: if the Program itself is interactive but\n")
814 wxT(" does not normally print such an announcement, your work based on\n")
815 wxT(" the Program is not required to print an announcement.)\n")
816 wxT("</blockquote>")
817 wxT("<p><p>\n")
818 wxT("These requirements apply to the modified work as a whole. If\n")
819 wxT("identifiable sections of that work are not derived from the Program,\n")
820 wxT("and can be reasonably considered independent and separate works in\n")
821 wxT("themselves, then this License, and its terms, do not apply to those\n")
822 wxT("sections when you distribute them as separate works. But when you\n")
823 wxT("distribute the same sections as part of a whole which is a work based\n")
824 wxT("on the Program, the distribution of the whole must be on the terms of\n")
825 wxT("this License, whose permissions for other licensees extend to the\n")
826 wxT("entire whole, and thus to each and every part regardless of who wrote it.\n")
827 wxT("<p><p>\n")
828 wxT("Thus, it is not the intent of this section to claim rights or contest\n")
829 wxT("your rights to work written entirely by you; rather, the intent is to\n")
830 wxT("exercise the right to control the distribution of derivative or\n")
831 wxT("collective works based on the Program.\n")
832 wxT("<p><p>\n")
833 wxT("In addition, mere aggregation of another work not based on the Program\n")
834 wxT("with the Program (or with a work based on the Program) on a volume of\n")
835 wxT("a storage or distribution medium does not bring the other work under\n")
836 wxT("the scope of this License.\n")
837 wxT("<p><p>\n")
838 wxT(" 3. You may copy and distribute the Program (or a work based on it,\n")
839 wxT("under Section 2) in object code or executable form under the terms of\n")
840 wxT("Sections 1 and 2 above provided that you also do one of the following:\n")
841 wxT("<p><p>\n")
842 wxT("<blockquote>")
843 wxT(" a) Accompany it with the complete corresponding machine-readable\n")
844 wxT(" source code, which must be distributed under the terms of Sections\n")
845 wxT(" 1 and 2 above on a medium customarily used for software interchange; or,\n")
846 wxT("<p><p>\n")
847 wxT(" b) Accompany it with a written offer, valid for at least three\n")
848 wxT(" years, to give any third party, for a charge no more than your\n")
849 wxT(" cost of physically performing source distribution, a complete\n")
850 wxT(" machine-readable copy of the corresponding source code, to be\n")
851 wxT(" distributed under the terms of Sections 1 and 2 above on a medium\n")
852 wxT(" customarily used for software interchange; or,\n")
853 wxT("<p><p>\n")
854 wxT(" c) Accompany it with the information you received as to the offer\n")
855 wxT(" to distribute corresponding source code. (This alternative is\n")
856 wxT(" allowed only for noncommercial distribution and only if you\n")
857 wxT(" received the program in object code or executable form with such\n")
858 wxT(" an offer, in accord with Subsection b above.)\n")
859 wxT("</blockquote>")
860 wxT("<p><p>\n")
861 wxT("The source code for a work means the preferred form of the work for\n")
862 wxT("making modifications to it. For an executable work, complete source\n")
863 wxT("code means all the source code for all modules it contains, plus any\n")
864 wxT("associated interface definition files, plus the scripts used to\n")
865 wxT("control compilation and installation of the executable. However, as a\n")
866 wxT("special exception, the source code distributed need not include\n")
867 wxT("anything that is normally distributed (in either source or binary\n")
868 wxT("form) with the major components (compiler, kernel, and so on) of the\n")
869 wxT("operating system on which the executable runs, unless that component\n")
870 wxT("itself accompanies the executable.\n")
871 wxT("<p><p>\n")
872 wxT("If distribution of executable or object code is made by offering\n")
873 wxT("access to copy from a designated place, then offering equivalent\n")
874 wxT("access to copy the source code from the same place counts as\n")
875 wxT("distribution of the source code, even though third parties are not\n")
876 wxT("compelled to copy the source along with the object code.\n")
877 wxT("<p><p>\n")
878 wxT(" 4. You may not copy, modify, sublicense, or distribute the Program\n")
879 wxT("except as expressly provided under this License. Any attempt\n")
880 wxT("otherwise to copy, modify, sublicense or distribute the Program is\n")
881 wxT("void, and will automatically terminate your rights under this License.\n")
882 wxT("However, parties who have received copies, or rights, from you under\n")
883 wxT("this License will not have their licenses terminated so long as such\n")
884 wxT("parties remain in full compliance.\n")
885 wxT("<p><p>\n")
886 wxT(" 5. You are not required to accept this License, since you have not\n")
887 wxT("signed it. However, nothing else grants you permission to modify or\n")
888 wxT("distribute the Program or its derivative works. These actions are\n")
889 wxT("prohibited by law if you do not accept this License. Therefore, by\n")
890 wxT("modifying or distributing the Program (or any work based on the\n")
891 wxT("Program), you indicate your acceptance of this License to do so, and\n")
892 wxT("all its terms and conditions for copying, distributing or modifying\n")
893 wxT("the Program or works based on it.\n")
894 wxT("<p><p>\n")
895 wxT(" 6. Each time you redistribute the Program (or any work based on the\n")
896 wxT("Program), the recipient automatically receives a license from the\n")
897 wxT("original licensor to copy, distribute or modify the Program subject to\n")
898 wxT("these terms and conditions. You may not impose any further\n")
899 wxT("restrictions on the recipients' exercise of the rights granted herein.\n")
900 wxT("You are not responsible for enforcing compliance by third parties to\n")
901 wxT("this License.\n")
902 wxT("<p><p>\n")
903 wxT(" 7. If, as a consequence of a court judgment or allegation of patent\n")
904 wxT("infringement or for any other reason (not limited to patent issues),\n")
905 wxT("conditions are imposed on you (whether by court order, agreement or\n")
906 wxT("otherwise) that contradict the conditions of this License, they do not\n")
907 wxT("excuse you from the conditions of this License. If you cannot\n")
908 wxT("distribute so as to satisfy simultaneously your obligations under this\n")
909 wxT("License and any other pertinent obligations, then as a consequence you\n")
910 wxT("may not distribute the Program at all. For example, if a patent\n")
911 wxT("license would not permit royalty-free redistribution of the Program by\n")
912 wxT("all those who receive copies directly or indirectly through you, then\n")
913 wxT("the only way you could satisfy both it and this License would be to\n")
914 wxT("refrain entirely from distribution of the Program.\n")
915 wxT("<p><p>\n")
916 wxT("If any portion of this section is held invalid or unenforceable under\n")
917 wxT("any particular circumstance, the balance of the section is intended to\n")
918 wxT("apply and the section as a whole is intended to apply in other\n")
919 wxT("circumstances.\n")
920 wxT("<p><p>\n")
921 wxT("It is not the purpose of this section to induce you to infringe any\n")
922 wxT("patents or other property right claims or to contest validity of any\n")
923 wxT("such claims; this section has the sole purpose of protecting the\n")
924 wxT("integrity of the free software distribution system, which is\n")
925 wxT("implemented by public license practices. Many people have made\n")
926 wxT("generous contributions to the wide range of software distributed\n")
927 wxT("through that system in reliance on consistent application of that\n")
928 wxT("system; it is up to the author/donor to decide if he or she is willing\n")
929 wxT("to distribute software through any other system and a licensee cannot\n")
930 wxT("impose that choice.\n")
931 wxT("<p><p>\n")
932 wxT("This section is intended to make thoroughly clear what is believed to\n")
933 wxT("be a consequence of the rest of this License.\n")
934 wxT("<p><p>\n")
935 wxT(" 8. If the distribution and/or use of the Program is restricted in\n")
936 wxT("certain countries either by patents or by copyrighted interfaces, the\n")
937 wxT("original copyright holder who places the Program under this License\n")
938 wxT("may add an explicit geographical distribution limitation excluding\n")
939 wxT("those countries, so that distribution is permitted only in or among\n")
940 wxT("countries not thus excluded. In such case, this License incorporates\n")
941 wxT("the limitation as if written in the body of this License.\n")
942 wxT("<p><p>\n")
943 wxT(" 9. The Free Software Foundation may publish revised and/or new versions\n")
944 wxT("of the General Public License from time to time. Such new versions will\n")
945 wxT("be similar in spirit to the present version, but may differ in detail to\n")
946 wxT("address new problems or concerns.\n")
947 wxT("<p><p>\n")
948 wxT("Each version is given a distinguishing version number. If the Program\n")
949 wxT("specifies a version number of this License which applies to it and \"any\n")
950 wxT("later version\", you have the option of following the terms and conditions\n")
951 wxT("either of that version or of any later version published by the Free\n")
952 wxT("Software Foundation. If the Program does not specify a version number of\n")
953 wxT("this License, you may choose any version ever published by the Free Software\n")
954 wxT("Foundation.\n")
955 wxT("<p><p>\n")
956 wxT(" 10. If you wish to incorporate parts of the Program into other free\n")
957 wxT("programs whose distribution conditions are different, write to the author\n")
958 wxT("to ask for permission. For software which is copyrighted by the Free\n")
959 wxT("Software Foundation, write to the Free Software Foundation; we sometimes\n")
960 wxT("make exceptions for this. Our decision will be guided by the two goals\n")
961 wxT("of preserving the free status of all derivatives of our free software and\n")
962 wxT("of promoting the sharing and reuse of software generally.\n")
963 wxT("<p><p>\n")
964 wxT(" <center>NO WARRANTY\n</center>")
965 wxT("<p><p>\n")
966 wxT(" 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\n")
967 wxT("FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\n")
968 wxT("OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n")
969 wxT("PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\n")
970 wxT("OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n")
971 wxT("MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\n")
972 wxT("TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\n")
973 wxT("PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\n")
974 wxT("REPAIR OR CORRECTION.\n")
975 wxT("<p><p>\n")
976 wxT(" 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n")
977 wxT("WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\n")
978 wxT("REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\n")
979 wxT("INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\n")
980 wxT("OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\n")
981 wxT("TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\n")
982 wxT("YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\n")
983 wxT("PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\n")
984 wxT("POSSIBILITY OF SUCH DAMAGES.\n"));
985 
986  html->SetPage( PageText );
987 
988  S.Prop(1).AddWindow( html, wxEXPAND );
989 
990  S.EndVerticalLay();
991  S.EndNotebookPage();
992 }
wxWindow * AddWindow(wxWindow *pWindow, int Flags=wxALIGN_CENTRE|wxALL)
Definition: ShuttleGui.cpp:288
void EndNotebookPage()
Definition: ShuttleGui.cpp:948
#define safenew
Definition: Audacity.h:230
void EndVerticalLay()
wxString FormatHtmlText(const wxString &Text)
Definition: HelpText.cpp:318
wxWindow * GetParent()
Definition: ShuttleGui.h:294
HtmlWindow Class.
Definition: HtmlWindow.h:39
_("Move Track &Down")+wxT("\t")+(GetActiveProject() -> GetCommandManager() ->GetKeyFromName(wxT("TrackMoveDown")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveTopID, _("Move Track to &Top")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveTop")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveBottomID, _("Move Track to &Bottom")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveBottom")).Raw()), OnMoveTrack)#define SET_TRACK_NAME_PLUGIN_SYMBOLclass SetTrackNameCommand:public AudacityCommand
ShuttleGui & Prop(int iProp)
Definition: ShuttleGui.h:418
#define ABOUT_DIALOG_WIDTH
wxNotebookPage * StartNotebookPage(const wxString &Name)
Definition: ShuttleGui.cpp:904
void StartVerticalLay(int iProp=1)

Member Data Documentation

AboutDialogCreditItemsList AboutDialog::creditItems
private

Definition at line 77 of file AboutDialog.h.

Referenced by AddCredit(), and GetCreditsByRole().

wxStaticBitmap* AboutDialog::icon

Definition at line 62 of file AboutDialog.h.

Referenced by AboutDialog(), and PopulateAudacityPage().


The documentation for this class was generated from the following files: