forked from audacity/audacity
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHelpSystem.h
More file actions
158 lines (124 loc) · 5.59 KB
/
Copy pathHelpSystem.h
File metadata and controls
158 lines (124 loc) · 5.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
/**********************************************************************
Audacity: A Digital Audio Editor
HelpSystem.h
Jimmy Johnson
James Crook
was merged with LinkingHtmlWindow.h
Vaughan Johnson
Dominic Mazzoni
utility fn and
descendant of HtmlWindow that opens links in the user's
default browser
**********************************************************************/
#ifndef __AUDACITY_HELPSYSTEM__
#define __AUDACITY_HELPSYSTEM__
#include "../Audacity.h"
#include <wx/defs.h>
#include "wxPanelWrapper.h" // to inherit
class AudacityProject;
/** @brief Class which contains static methods and data needed for implementing
* help buttons
*
* This class should be the only place in the codebase where the location of
* the online copy of the Audacity manual is stored, so that it can be
* changed if required
*/
class HelpSystem
{
public:
/// Displays cuttable information in a text ctrl, with an OK button.
static void ShowInfoDialog( wxWindow *parent,
const TranslatableString &dlogTitle,
const TranslatableString &shortMsg,
const wxString &message,
const int xSize, const int ySize);
/// Displays a NEW window with wxHTML help.
/// @param HtmlText Either the literal HTML code to go into the window,
/// or the name of the file to read said HTML code from (see below).
/// @param bIsFile If true, treat HtmlText argument as a file name, if false
/// (default), then it is the HTML code to display.
/// @param bModal Whether the resulting window should be modal or not.
/// Default is modeless dialogue
static void ShowHtmlText( wxWindow * pParent,
const TranslatableString &Title,
const wxString &HtmlText,
bool bIsFile = false,
bool bModal = false);
/// Displays a file in your browser, if it's available locally,
/// OR else links to the internet. Generally using this outside this class
/// is depreciated in favour of the "smarter" overload below, unless there
/// is a good reason for using this form.
/// @param localFileName Name and path of the file on the local machine
/// file system to be opened. file.name#anchor syntax is allowed, and therefore
/// file names containing a '#' are not (on any platform).
/// @param bModal Whether the resulting dialogue should be modal or not.
/// Default is modeless dialogue
/// @param alwaysDefaultBrowser Force use of default web browser.
/// Default allows built in browser for local files.
static void ShowHelp(wxWindow *parent,
const wxString &localFileName,
const wxString &remoteURL,
bool bModal = false,
bool alwaysDefaultBrowser = false);
/// Displays a page from the Audacity manual in your browser, if
/// it's available locally, OR else links to the internet.
/// @param PageName The name of the manual page to display as it is in
/// _development version_ of the manual (i.e. in MediaWiki), _not_ the
/// converted file name used for offline and released manuals.
/// @param bModal Whether the resulting dialogue should be modal or not.
/// Default is modeless dialogue
static void ShowHelp(wxWindow *parent,
const wxString &PageName,
bool bModal = false);
/// Hostname (domain name including subdomain) of the server on which the
/// online help is available
static const wxString HelpHostname;
/// URL path on the help server to the root directory of the manual.
/// index and quick_help are here in the on-line release manual.
/// Must both start and end with '/' characters.
static const wxString HelpServerHomeDir;
/// Path to sub-directory where the manual pages are located.
/// index and quick_help are here only in the alpha manual.
/// Must both start and end with '/' characters.
static const wxString HelpServerManDir;
/// Sub-directory for local help pages (but not index.html
/// or quick_help.html)
/// Must both start and end with '/' characters.
static const wxString LocalHelpManDir;
/// The string which is appended to the development manual page name in order
/// obtain the file name in the local and release web copies of the manual
static const wxString ReleaseSuffix;
};
class ShuttleGui;
#include "HtmlWindow.h" // to inherit
void OpenInDefaultBrowser(const wxHtmlLinkInfo& link);
/// \brief An HtmlWindow that handles linked clicked - usually the
/// link will go to our own local copy of the manual, but it could
/// launch a new browser window.
class AUDACITY_DLL_API LinkingHtmlWindow final : public HtmlWindow
{
public:
LinkingHtmlWindow(wxWindow *parent, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxHW_SCROLLBAR_AUTO);
void OnLinkClicked(const wxHtmlLinkInfo& link) override;
//void OnSetTitle(const wxString& title) override;
};
/// Adds some event handling to an HtmlWindow
class BrowserDialog /* not final */ : public wxDialogWrapper
{
public:
enum { ID = 0 };
BrowserDialog(wxWindow *pParent, const TranslatableString &title);
void OnForward(wxCommandEvent & event);
void OnBackward(wxCommandEvent & event);
void OnClose(wxCommandEvent & event);
void OnKeyDown(wxKeyEvent & event);
void UpdateButtons();
//void SetLabel(const wxString& label) override;
HtmlWindow * mpHtml;
bool mDismissed{};
DECLARE_EVENT_TABLE()
};
#endif // __AUDACITY_HELPSYSTEM__