160 lines
5.6 KiB
C++
160 lines
5.6 KiB
C++
/**********************************************************************
|
|
|
|
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 <wx/defs.h>
|
|
#include "wxPanelWrapper.h" // to inherit
|
|
#include "../HelpText.h"
|
|
|
|
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 AUDACITY_DLL_API 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 parent Parent window for the dialog
|
|
/// @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 remoteURL use instead of file if nonempty, and user preferences specify remote,
|
|
/// or localFileName is invalid
|
|
/// @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 FilePath &localFileName,
|
|
const URLString &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 parent Parent window for the dialog
|
|
/// @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 ManualPageID &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;
|
|
|
|
};
|
|
|
|
class ShuttleGui;
|
|
|
|
#include "HtmlWindow.h" // to inherit
|
|
|
|
AUDACITY_DLL_API void OpenInDefaultBrowser(const URLString& 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__
|