diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/dktools/Dk4FcsApp.cpt |
Initial commit
Diffstat (limited to 'support/dktools/Dk4FcsApp.cpt')
-rw-r--r-- | support/dktools/Dk4FcsApp.cpt | 418 |
1 files changed, 418 insertions, 0 deletions
diff --git a/support/dktools/Dk4FcsApp.cpt b/support/dktools/Dk4FcsApp.cpt new file mode 100644 index 0000000000..a1fc98f48e --- /dev/null +++ b/support/dktools/Dk4FcsApp.cpt @@ -0,0 +1,418 @@ +%% options + +copyright owner = Dirk Krause +copyright year = 2015-xxxx +license = bsd + + + +%% header + +/** @file Dk4FcsApp.h The Dk4FcsApp class. +*/ + + + +/** Application class, derived from wxApp, one instance per program. +*/ +class Dk4FcsApp : public wxApp +{ + protected: + + /** Helper object. + */ + Dk4WxApplicationHelper *pAh; + + /** Controller fr online help. + */ + Dk4WxHelpController *pHc; + + protected: + + /** Show error message if not sufficient memory available. + */ + void + ShowMemoryErrorMessage(void); + + public: + + /** Application initialization. + @return true on success, false on error. + */ + virtual + bool + OnInit(); + + /** Application shutdown. + @return 0 on success, any other value indicates an error. + */ + virtual + int + OnExit(); +}; + + + +/** Declaration as the wxApp object. +*/ +DECLARE_APP(Dk4FcsApp) + + + +%% module + +#include "wxdkfcs.h" + + + +$!trace-include + + + +/** Localized wxChar texts. +*/ +static wxChar const * wxdkfcs_texts[] = { +$!string-table macro=wxT +# +# 0: Menu "File" +# +File +# +# 1: Menu item "File/Exit" +# +Quit +# +# 2: Tool tip text for menu item "File/Exit" +# +Exit the application +# +# 3: Menu "Help" +# +Help +# +# 4: Menu item "Help/About" +# +About +# +# 5: Tooltip text for menu item "Help/About" +# +Show version information +# +# 6: Menu item "Help/Contents" +# +Contents +# +# 7: Tooltip text for menu item "Help/Contents" +# +Open table of contents +# +# 8: Initial status text +# +Ready +# +# 9: Copyright notice. +# +Copyright (c) +# +# 10: Dialog box title "About ..." +# +About +# +# 11: This program uses the following libraries +# +This program uses the following libraries: +# +# 12: See +# +See: +# +# 13: __CHANGE__ 015: Text for dummy label, can be reused if lDummy removed. +# +File: +# +# 14 ... 20: Label MD5 +# +MD5 +RIPEMD-160 +SHA-1 +SHA-224 +SHA-256 +SHA-384 +SHA-512 +# +# 21: Column head +# +Checksum +# +# 22: wxFileDialog header line +# +Choose a file +# +# 23 24: Menu item File/Open +# +Open +Open a file +$!end +}; + + + +/** Non-localized wxChar texts. +*/ +static wxChar const * wxdkfcs_nl_wx[] = { +$!string-table macro=wxT +# +# 0: Program name. +# +wxdkfcs +# +# 1: Program version. +# +4.0.0 +# +# 2: Copyright owner name. +# +Dirk Krause +# +# 3: Software vendor name. +# +DKrause +# +# 4: Resource name of Windows icon +# +aaaaa +# +# 5: Empty string to reset table cells +# + +# +# 6: UNUSED (previously non-Windows htb help file name) +# + +# +# 7: Space +# + +# +# 8: Newline +# +\n +# +# 9 10 11 12 13 14 15 16: List of libraries used. +# +DK tools, wxWidgets, OpenSSL, libpng, libjpeg, libtiff, zlib. +http://dktools.sourceforge.net +http://www.wxwidgets.org +http://www.openssl.org +http://www.libpng.org/pub/png/libpng.html +http://www.ijg.org +http://www.remotesensing.org/libtiff +http://www.zlib.net +# +# 17 Default string for values. +# +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +# +# 18 - 22 OpenSSL license text. +# +This product includes software developed by the OpenSSL Project for use in +the OpenSSL Toolkit (http://www.openssl.org/). +This product includes cryptographic software written by +Eric Young (eay@cryptsoft.com). +This product includes software written by Tim Hudson (tjh@cryptsoft.com). +# +# 23 24 +# +Error +Not enough memory (RAM)! +$!end +}; + + + +/** Non-localized dkChar texts. +*/ +static dkChar const * wxdkfcs_nl_dk[] = { +$!string-table macro=dkT +# +# 0: Program group name. +# +dktools +# +# 1: String table name. +# +wxdkfcs.str +# +# 2: CHM help file name +# +wxdkfcs.chm +# +# 3: HTB help file name +# +wxdkfcs.htb +$!end +}; + + + +/** Implementation of the wxApp functionality. +*/ +IMPLEMENT_APP(Dk4FcsApp) + + +bool +Dk4FcsApp::OnInit() +{ + Dk4FcsFrame *frame = NULL; + wxChar const * const *localizedTexts = NULL; + wxPNGHandler *phPng = NULL; + wxXPMHandler *phXpm = NULL; + wxICOHandler *phIco = NULL; + wxArchiveFSHandler *phArchiveFs = NULL; + bool back = false; + + $? "+ OnInit" + /* Initialize members. */ + pAh = NULL; + pHc = NULL; + + /* Initialize further members here. + */ + + /* Set up helper object. */ + pAh = new Dk4WxApplicationHelper(); + if (NULL == pAh) { + ShowMemoryErrorMessage(); + goto finished; + } + if (!(pAh->Initialize(argv[0], wxdkfcs_nl_wx[3], wxdkfcs_nl_dk[0]))) + { + goto finished; + } + $? ". app helper ok" + + /* Add image and file system handlers for online help. */ + phPng = new wxPNGHandler(); + if (NULL != phPng) { + wxImage::AddHandler(phPng); + } else { + ShowMemoryErrorMessage(); + goto finished; + } + phXpm = new wxXPMHandler(); + if (NULL != phXpm) { + wxImage::AddHandler(phXpm); + } else { + ShowMemoryErrorMessage(); + goto finished; + } + phIco = new wxICOHandler(); + if (NULL != phIco) { + wxImage::AddHandler(phIco); + } else { + ShowMemoryErrorMessage(); + goto finished; + } + $? ". image handlers ok" + phArchiveFs = new wxArchiveFSHandler(); + if (NULL != phArchiveFs) { + wxFileSystem::AddHandler(phArchiveFs); + } else { + ShowMemoryErrorMessage(); + goto finished; + } + + pHc = new Dk4WxHelpController(); + if (NULL == pHc) { + ShowMemoryErrorMessage(); + goto finished; + } + if (!(pHc->Initialize(pAh, wxdkfcs_nl_dk[2], wxdkfcs_nl_dk[3]))) + { + goto finished; + } + $? ". help controller ok" + + localizedTexts = pAh->GetStringTable(wxdkfcs_nl_dk[1], wxdkfcs_texts); + if(!(localizedTexts)) { localizedTexts = wxdkfcs_texts; } + + $? ". localized texts ok" + /* Create and show frame. */ + frame = new Dk4FcsFrame( + Dk4FcsFrame_MainWindow, + pAh, + pHc, + argc, + argv, + localizedTexts, + wxdkfcs_nl_wx, + wxdkfcs_nl_dk + ); + if(!(frame)) { + ShowMemoryErrorMessage(); + goto finished; + } + + $? ". frame created" + frame->Show(); + frame->RestorePosition(); + $? ". frame shown" + back = true; + + /* Release resources if initialization failed. */ + finished: + if(!(back)) { $? "! errors, clean up" + if (NULL != pHc) { + pHc->Cleanup(); delete(pHc); pHc = NULL; + } + if (NULL != pAh) { + pAh->Cleanup(); delete(pAh); pAh = NULL; + } + } + $? "- OnInit %d", (int)back + return back; +} + + + +int +Dk4FcsApp::OnExit() +{ + int back = 0; + + /* Release resources allocated by further members. + */ + + /* Release resources. */ + if (NULL != pHc) { + pHc->Cleanup(); delete(pHc); pHc = NULL; + } + if (NULL != pAh) { + pAh->Cleanup(); delete(pAh); pAh = NULL; + } + + /* Set back to exit status code. + */ + return back; +} + + +void +Dk4FcsApp::ShowMemoryErrorMessage(void) +{ + const wxChar *s_title = NULL; + const wxChar *s_text = NULL; + + if (NULL != pAh) { + s_title = pAh->GetBasicString(6); + s_text = pAh->GetBasicString(7); + } + if (NULL == s_title) { + s_title = wxdkfcs_nl_wx[23]; + } + if (NULL == s_text) { + s_text = wxdkfcs_nl_wx[24]; + } + wxMessageBox(s_text, s_title, (wxOK | wxCENTRE | wxICON_ERROR)); +} + |