diff options
Diffstat (limited to 'support/dktools/Dk4WxHelpController.cpt')
-rw-r--r-- | support/dktools/Dk4WxHelpController.cpt | 404 |
1 files changed, 0 insertions, 404 deletions
diff --git a/support/dktools/Dk4WxHelpController.cpt b/support/dktools/Dk4WxHelpController.cpt deleted file mode 100644 index 9bddc56c0b..0000000000 --- a/support/dktools/Dk4WxHelpController.cpt +++ /dev/null @@ -1,404 +0,0 @@ -%% options - -copyright owner = Dirk Krause -copyright year = 2015-xxxx -SPDX-License-Identifier: BSD-3-Clause - - -%% header - -/** @file Dk4WxHelpController.h Help controller class. -*/ - -#ifndef DK4CONF_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "dk4conf.h" -#else -#include <dktools-4/dk4conf.h> -#endif -#endif - -#ifndef DK4TYPES_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "dk4types.h" -#else -#include <dktools-4/dk4types.h> -#endif -#endif - -#ifndef WX_WXPREC_H_INCLUDED -#include <wx/wxprec.h> -#define WX_WXPREC_H_INCLUDED 1 -#endif - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif -#ifndef WX_PRECOMP -#ifndef WX_WX_H_INCLUDED -#include <wx/wx.h> -#define WX_WX_H_INCLUDED 1 -#endif -#endif -#ifndef WX_CONFIG_H_INCLUDED -#include <wx/config.h> -#define WX_CONFIG_H_INCLUDED 1 -#endif -#ifndef WX_FILENAME_H_INCLUDED -#include <wx/filename.h> -#define WX_FILENAME_H_INCLUDED 1 -#endif -#ifndef WX_HELP_H_INCLUDED -#include <wx/help.h> -#define WX_HELP_H_INCLUDED 1 -#endif -#ifndef WX_FS_ZIP_H_INCLUDED -#include <wx/fs_zip.h> -#define WX_FS_ZIP_H_INCLUDED 1 -#endif -#ifndef WX_THREAD_H_INCLUDED -#include <wx/thread.h> -#define WX_THREAD_H_INCLUDED 1 -#endif - -#ifndef DK4WXAPPLICATIONHELPER_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "Dk4WxApplicationHelper.h" -#else -#include <dktools-4/Dk4WxApplicationHelper.h> -#endif -#endif - - -/** Help controller dealing with both CHM and HTB files. -*/ -class Dk4WxHelpController -{ - protected: - - /** Synchronized access. - */ - wxCriticalSection csProtect; - -#ifdef __WXMSW__ - /** Help controller for CHM files used on Windows. - */ - wxCHMHelpController oHelpController; -#else - /** Help controller for HTB files used on non-Windows systems. - */ - wxHtmlHelpController oHelpController; -#endif - - /** Application helper, used for for search. - */ - Dk4WxApplicationHelper *pAppHelp; - - /** Short file name of help file. - */ - dkChar *pdksShortFileName; - - /** Flag: Contents was already loaded. - */ - bool bLoaded; - - /** Flag: Help file was found. - */ - bool bFileFound; - - protected: - - /** Attempt to load the help file. - */ - void - AttemptToLoadFile(void); - - /** Show error message. - */ - void - ShowErrorMessage(size_t i_title = 0, size_t i_text = 1); - - public: - - /** Default constructor. - Just set the pointers to NULL. - */ - Dk4WxHelpController(); - - /** Destructor. - */ - ~Dk4WxHelpController(); - - /** Initialize the controller (keep pointers). - @param ahptr Application helper for file search. - @param chmName CHM help file name for windows. - @param htbName HTB help file name for other systems. - @return True on success, false on error. - */ - bool - Initialize( - Dk4WxApplicationHelper *ahptr, - const dkChar *chmName, - const dkChar *htbName - ); - - /** Clean up. - */ - void - Cleanup(void); - - /** Open help system. - */ - void - DisplayContents(void); - - /** Open help section specified by name. - @param name Section name. - */ - void - DisplaySection(wxString const & name); - - /** Open a help section specified by number. - @param number Section number (context ID). - */ - void - DisplaySection(int number); - -}; - -%% module - -#include "dk4conf.h" -#include "dk4strd.h" -#include "dk4strx.h" -#include "dk4fs.h" -#include "dk4mem.h" -#include "dk4mpl.h" -#include "Dk4WxHelpController.h" - - - -$!trace-include - - - -/** Constant text fragments used by module. -*/ -static const wxChar * const dk4wxhc_kw_def[] = { -$!string-table macro=wxT -Help file not found -The file containing online help text was not found on your computer! -$!end -}; - - - -/** Pointer type, defined to calculate dk4wxhc_kw_def array size. -*/ -typedef const wxChar *PTR_CWXC; - - - -/** Number of array elements in dk4wxhc_kw_def. -*/ -static const size_t sz_dk4wxhc_kw_def = -sizeof(dk4wxhc_kw_def) / sizeof(PTR_CWXC); - - - -Dk4WxHelpController::Dk4WxHelpController() -#ifdef __WXMSW__ - -#else -: oHelpController(wxHF_DEFAULT_STYLE | wxHF_MERGE_BOOKS) -#endif -{ - pAppHelp = NULL; - pdksShortFileName = NULL; - bLoaded = false; - bFileFound = false; -} - - - -Dk4WxHelpController::~Dk4WxHelpController() -{ - dk4mem_release(pdksShortFileName); - pAppHelp = NULL; - bLoaded = false; - bFileFound = false; -} - - - -bool -Dk4WxHelpController::Initialize( - Dk4WxApplicationHelper *ahptr, -#ifdef __WXMSW__ - const dkChar *chmName, -#else - const dkChar * WXUNUSED(chmName), -#endif -#ifdef __WXMSW__ - const dkChar * WXUNUSED(htbName) -#else - const dkChar *htbName -#endif -) -{ - const dkChar *fn = NULL; - bool back = false; -#ifdef __WXMSW__ - fn = chmName; -#else - fn = htbName; -#endif - if ((NULL != ahptr) && (NULL != fn)) { - pAppHelp = ahptr; - bLoaded = false; - bFileFound = false; - pdksShortFileName = dk4str_dup(fn, NULL); - if (NULL != pdksShortFileName) { - back = true; - } else { - /* ERROR: Memory */ - ShowErrorMessage(6, 7); - } - } else { - /* ERROR: Illegal arguments to function */ - ShowErrorMessage(6, 8); - } - return back; -} - - - -void -Dk4WxHelpController::Cleanup(void) -{ - { - wxCriticalSectionLocker lock(csProtect); - dk4mem_release(pdksShortFileName); - pAppHelp = NULL; - bLoaded = false; - bFileFound = false; - } -} - - - -void -Dk4WxHelpController::AttemptToLoadFile(void) -{ - wxChar fnb[DK4_MAX_PATH]; - size_t szfnb = DK4_SIZEOF(fnb,wxChar); - - if (!bLoaded) { - bLoaded = true; - if ((NULL != pAppHelp) && (NULL != pdksShortFileName)) { - if (pAppHelp->FindHelpFile(fnb, szfnb, pdksShortFileName)) { - bFileFound = true; -#ifdef __WXMSW__ - oHelpController.Initialize(fnb); -#else - oHelpController.AddBook(fnb); -#endif - } - } - } -} - - - -void -Dk4WxHelpController::ShowErrorMessage(size_t i_title, size_t i_text) -{ - const wxChar *strTitle = NULL; - const wxChar *strText = NULL; - { - wxCriticalSectionLocker lock(csProtect); - if (NULL != pAppHelp) { - strTitle = pAppHelp->GetBasicString(i_title); - strText = pAppHelp->GetBasicString(i_text); - } - } - if (NULL == strTitle) { - if (i_title < sz_dk4wxhc_kw_def) { - strTitle = dk4wxhc_kw_def[i_title]; - } - } - if (NULL == strText) { - if (i_text < sz_dk4wxhc_kw_def) { - strText = dk4wxhc_kw_def[i_text]; - } - } - wxMessageBox(strText, strTitle, (wxOK | wxCENTRE | wxICON_ERROR)); -} - - - -void -Dk4WxHelpController::DisplayContents() -{ - bool canOpenHelp = false; - { - wxCriticalSectionLocker lock(csProtect); - AttemptToLoadFile(); - if (bLoaded) { - if (bFileFound) { - canOpenHelp = true; - } - } - } - if (canOpenHelp) { - oHelpController.DisplayContents(); - } else { - ShowErrorMessage(); - } -} - - - -void -Dk4WxHelpController::DisplaySection(wxString const & name) -{ - bool canOpenHelp = false; - { - wxCriticalSectionLocker lock(csProtect); - AttemptToLoadFile(); - if (bLoaded) { - if (bFileFound) { - canOpenHelp = true; - } - } - } - if (canOpenHelp) { - oHelpController.DisplaySection(name); - } else { - ShowErrorMessage(); - } -} - - - -void -Dk4WxHelpController::DisplaySection(int number) -{ - bool canOpenHelp = false; - { - wxCriticalSectionLocker lock(csProtect); - AttemptToLoadFile(); - if (bLoaded) { - if (bFileFound) { - canOpenHelp = true; - } - } - } - if (canOpenHelp) { - oHelpController.DisplaySection(number); - } else { - ShowErrorMessage(); - } -} - - |