summaryrefslogtreecommitdiff
path: root/support/dktools/Dk4FcsApp.cpt
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/dktools/Dk4FcsApp.cpt
Initial commit
Diffstat (limited to 'support/dktools/Dk4FcsApp.cpt')
-rw-r--r--support/dktools/Dk4FcsApp.cpt418
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));
+}
+