/* WARNING: This file was generated by dkct. Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: DkWxTraceApp.cpt */ /* Copyright (C) 2011-2017, Dirk Krause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above opyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** @file DkWxTraceApp.cpp The DkWxTraceApp module. */ #line 47 "DkWxTraceApp.cpt" #include "dkwxtrace.h" #line 53 "DkWxTraceApp.cpt" /** Implementation of DkWxTraceApp. */ IMPLEMENT_APP(DkWxTraceApp) /** Default texts, replace by localized texts if available. */ wxChar const * const defaultTexts[] = { /* 0 */ wxT("wxdkct"), /* 1 */ wxT("dktools"), /* 2 */ wxT("Dirk Krause"), /* 3 */ wxT("&File"), /* 4 */ wxT("&Help"), /* 5 */ wxT("E&xit\tAlt-X"), /* 6 */ wxT("&About...\tAlt-A"), /* 7 */ wxT("Exit the program"), /* 8 */ wxT("Show version information"), /* 9 */ wxT("&Contents\tF1"), /* 10 */ wxT("Show online help contents"), /* 11 */ wxT("Directory:"), /* 12 */ wxT("&Directory\tAlt-D"), /* 13 */ wxT("Choose source directory"), /* 14 */ wxT("&Setup\tAlt-S"), /* 15 */ wxT("Set conversion options"), /* 16 */ wxT("yes, to stdout"), /* 17 */ wxT("Directory"), /* 18 */ wxT("Options"), /* 19 */ wxT("Run"), /* 20 */ wxT("Exit"), /* 21 */ wxT("Choose directory"), /* 22 */ wxT("Set options"), /* 23 */ wxT("Run conversion"), /* 24 */ wxT("Exit the application"), /* 25 */ wxT("."), /* 26 */ wxT("OK"), /* 27 */ wxT("Cancel"), /* 28 */ wxT("Close dialog and apply settings"), /* 29 */ wxT("Close dialog and discard settings"), /* 30 */ wxT("Options"), /* 31 */ wxT("Use make mode"), /* 32 */ wxT("Run conversions only if necessary."), /* 33 */ wxT("General options"), /* 34 */ wxT("Output"), /* 35 */ wxT("Line numbers"), /* 36 */ wxT("Debug"), /* 37 */ wxT("Create debug output"), /* 38 */ wxT("Debug to standard output"), /* 39 */ wxT("Include timestamp"), /* 40 */ wxT("Use \"trace\" keyword"), /* 41 */ wxT("Wide-character support"), /* 42 */ wxT("Create line number directives"), /* 43 */ wxT("Generate code for trace/debug messages"), /* 44 */ wxT("Write trace/debug messages to standard output"), /* 45 */ wxT("Include a timestamp into trace/debug messages"), /* 46 */ wxT("Include the \"trace\" keyword into debug messages"), /* 47 */ wxT("Add support for TRACE_WIDE (debug messages in wide characters)"), /* 48 */ wxT("Conversion progress"), /* 49 */ wxT(""), /* 50 */ wxT("Cancel"), /* 51 */ wxT("Abort conversion after finishing current file"), /* 52 */ wxT("Cancel command scheduled... Wait, please!"), /* 53 */ wxT("Choose directory"), /* 54 */ wxT("Directory: "), /* 55 */ wxT("Destination files up to date."), /* 56 */ wxT("Processing succeeded."), /* 57 */ wxT("Processing failed!"), /* 58 */ wxT("ERROR: Can not handle directory name!"), /* 59 */ wxT("ERROR: Failed to open directory \""), /* 60 */ wxT("\"!"), /* 61 */ wxT("ERROR: File name is not plain ASCII text: \""), /* 62 */ wxT("\"!"), /* 63 */ wxT("ERROR: Not enough memory (RAM/swap space)!"), /* 64 */ wxT("&Run\tAlt-R"), /* 65 */ wxT("Start conversion"), /* 66 */ wxT("About wxdkct"), /* 67 */ wxT(""), /* 68 */ wxT("Processing succeeded"), /* 69 */ wxT("Warnings occured"), /* 70 */ wxT("Errors occured"), /* 71 */ wxT("Automatic run cancelled due to errors!"), /* 72 */ wxT("Processing succeeded, application will exit."), /* 73 */ wxT("\n"), /* 74 */ wxT("This program uses libraries from the following projects:\n"), /* 75 */ wxT("See:\n"), /* 76 */ wxT("@"), /* 77 */ wxT("^"), /* 78 */ wxT("°"), /* 79 */ wxT("!"), /* 80 */ wxT("\""), /* 81 */ wxT("§"), /* 82 */ wxT("$"), /* 83 */ wxT("%"), /* 84 */ wxT("&"), /* 85 */ wxT("?"), /* 86 */ wxT("~"), /* 87 */ wxT("#"), /* 88 */ wxT("|"), /* 89 */ wxT(","), /* 90 */ wxT(";"), /* 91 */ wxT("."), /* 92 */ wxT(":"), /* 93 */ wxT("_"), /* 94 */ wxT("Comments for splint"), /* 95 */ wxT("Write comments for splint"), /* 96 */ wxT("Choose the comment character for splint"), /* 97 */ wxT("Portable debug code"), /* 98 */ wxT("Produce portable code for trace messages"), NULL #line 399 "DkWxTraceApp.cpt" }; /** Constant texts, not localized. */ static wxChar const * const wxdkct_nl_wx[] = { /* 0 */ wxT("Error"), /* 1 */ wxT("Not enough memory (RAM)!"), NULL #line 410 "DkWxTraceApp.cpt" }; /** Application group name. */ static dkChar const dkwxtraceapp_groupname[] = { dkT("dktools") }; /** String table file name. */ static dkChar const dkwxtrace_string_table_name[] = { dkT("wxdkct.str") }; /** Help file for use on Windows systems. */ static wxChar const dkwxtrace_chm_helpfile[] = { wxT("wxdkct.chm") }; /** Help file for use on non-Windows systems. */ static wxChar const dkwxtrace_htb_helpfile[] = { wxT("wxdkct.htb") }; bool DkWxTraceApp::OnInit() { bool back = false; wxChar const * const *localizedTexts = defaultTexts; dkChar const * const *msg = NULL; DkWxTraceFrame *frame = NULL; wxPNGHandler *phPng = NULL; wxXPMHandler *phXpm = NULL; wxICOHandler *phIco = NULL; wxZipFSHandler *phZipFs = NULL; /* Initialize elements. */ pHelper = NULL; helpController = NULL; /* Create application helper. */ pHelper = new DkWxAppHelper(argv[0], defaultTexts[2], dkwxtraceapp_groupname); if (NULL == pHelper) { ShowMemoryErrorMessage(); goto finished; } if (!(pHelper->checkSetup())) { goto finished; } /* Get message texts. */ msg = dk3app_messages( pHelper->getApp(), dkct_str_get_string_table_file_name(), (dkChar const **)dkct_str_get_message_texts() ); if (NULL == msg) { ShowMemoryErrorMessage(); goto finished; } localizedTexts = pHelper->getStringTable(defaultTexts, dkwxtrace_string_table_name); if (NULL == localizedTexts) { ShowMemoryErrorMessage(); goto finished; } /* Initialize image handlers and zip fs handler. */ 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; } phZipFs = new wxZipFSHandler(); if (NULL != phZipFs) { wxFileSystem::AddHandler(phZipFs); } else { ShowMemoryErrorMessage(); goto finished; } /* Get help controller. */ helpController = new DkWxHelpController(pHelper,dkwxtrace_chm_helpfile,dkwxtrace_htb_helpfile); if (NULL == helpController) { ShowMemoryErrorMessage(); goto finished; } /* Create main frame. */ frame = new DkWxTraceFrame( defaultTexts[0], localizedTexts, msg, pHelper, DkWxTrace_MainWindow, helpController, argc, argv ); if (NULL == frame) { ShowMemoryErrorMessage(); goto finished; } /* Show frame and indicate success. */ frame->Show(); frame->restorePosition(); back = true; /* Clean up on errors. */ finished: if (!(back)) { if (NULL != helpController) { delete(helpController); helpController = NULL; } if (NULL != pHelper) { delete(pHelper); pHelper = NULL; } } return back; } int DkWxTraceApp::OnExit() { int back = 0; /* Release elements. */ if(helpController) { delete(helpController); helpController = NULL; } if(pHelper) { delete(pHelper); pHelper = NULL; } return back; } void DkWxTraceApp::ShowMemoryErrorMessage(void) { const wxChar *s_title = NULL; const wxChar *s_text = NULL; if (NULL != pHelper) { s_title = pHelper->getBasicString(3); s_text = pHelper->getBasicString(9); } if (NULL == s_title) { s_title = wxdkct_nl_wx[0]; } if (NULL == s_text) { s_text = wxdkct_nl_wx[1]; } wxMessageBox(s_text, s_title, (wxOK | wxCENTRE | wxICON_ERROR)); }