/* Copyright (C) 2011-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). 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: DkWxBmepsApp.cpt */ /** @file DkWxBmepsApp.cpp The DkWxBmepsApp module. */ #line 51 "DkWxBmepsApp.cpt" #include "dk3conf.h" #include "wxbmeps.h" #line 57 "DkWxBmepsApp.cpt" /** Implementation of DkWxBmepsApp. */ #if wxCHECK_VERSION(3,0,0) wxIMPLEMENT_APP(DkWxBmepsApp); #else IMPLEMENT_APP(DkWxBmepsApp) #endif /** Default texts, replaced by localized versions. */ wxChar const * const defaultTexts[] = { /* 0 */ wxT("wxbmpp"), /* 1 */ wxT("dktools"), /* 2 */ wxT("Dirk Krause"), /* 3 */ wxT(""), /* 4 */ wxT("Directory"), /* 5 */ wxT("Choose the directory to process"), /* 6 */ wxT("Options"), /* 7 */ wxT("Set conversion options"), /* 8 */ wxT("Run"), /* 9 */ wxT("Run conversion"), /* 10 */ wxT("Exit"), /* 11 */ wxT("Exit the application"), /* 12 */ wxT("&File"), /* 13 */ wxT("&Help"), /* 14 */ wxT("&Directory...\tAlt-D"), /* 15 */ wxT("Choose directory"), /* 16 */ wxT("&Options\tAlt-O"), /* 17 */ wxT("Conversion options"), /* 18 */ wxT("&Run\tAlt-R"), /* 19 */ wxT("Run conversion"), /* 20 */ wxT("E&xit\tAlt-X"), /* 21 */ wxT("Exit the application"), /* 22 */ wxT("&Contents\tF1"), /* 23 */ wxT("Show table of contents"), /* 24 */ wxT("&About\tAlt-A"), /* 25 */ wxT("Show version number"), /* 26 */ wxT("Directory: "), /* 27 */ wxT(""), /* 28 */ wxT(""), /* 29 */ wxT("Choose Directory"), /* 30 */ wxT("Processing succeeded, application will exit."), /* 31 */ wxT("Automatic run canceled due to errors!"), /* 32 */ wxT("Conversion progress"), /* 33 */ wxT("Cancel"), /* 34 */ wxT("Abort conversion after finishing current file"), /* 35 */ wxT("Cancel command scheduled... wait, please!"), /* 36 */ wxT("Conversion Options"), /* 37 */ wxT("General"), /* 38 */ wxT("Make mode"), /* 39 */ wxT("Run conversion only if destination file is not up to date."), /* 40 */ wxT("Output"), /* 41 */ wxT("Output format:"), /* 42 */ wxT("PS"), /* 43 */ wxT("EPS"), /* 44 */ wxT("PDF"), /* 45 */ wxT("Bounding Box"), /* 46 */ wxT("Output mode:"), /* 47 */ wxT("Image"), /* 48 */ wxT("Object"), /* 49 */ wxT("Document"), /* 50 */ wxT("Finishing:"), /* 51 */ wxT("Single-side"), /* 52 */ wxT("Duplex (book)"), /* 53 */ wxT("Duplex (calendar)"), /* 54 */ wxT("Draft mode"), /* 55 */ wxT("Create placeholder image only"), /* 56 */ wxT("Color"), /* 57 */ wxT("Enable colored output"), /* 58 */ wxT("Output size"), /* 59 */ wxT("Resolution:"), /* 60 */ wxT("1px=1pt"), /* 61 */ wxT("input file"), /* 62 */ wxT("as specified:"), /* 63 */ wxT("Paper size:"), /* 64 */ wxT("Image quality"), /* 65 */ wxT("Image interpolation"), /* 66 */ wxT("Enable image interpolation"), /* 67 */ wxT("Image interpolation for JPEG files"), /* 68 */ wxT("Enable image interpolation for JPEG files too"), /* 69 */ wxT("Transparency"), /* 70 */ wxT("Background color:"), /* 71 */ wxT("Force background color"), /* 72 */ wxT("Always use the specified background color, ignore background color chunks"), /* 73 */ wxT("Output format details"), /* 74 */ wxT("PS level:"), /* 75 */ wxT("Predictor:"), /* 76 */ wxT("None"), /* 77 */ wxT("TIFF"), /* 78 */ wxT("PNG-SUB"), /* 79 */ wxT("PNG-UP"), /* 80 */ wxT("PNG-AVERAGE"), /* 81 */ wxT("PNG-PAETH"), /* 82 */ wxT("DSC"), /* 83 */ wxT("Write DSC comments to PS output"), /* 84 */ wxT("OK"), /* 85 */ wxT("Confirm settings, leave this dialog box"), /* 86 */ wxT("Cancel"), /* 87 */ wxT("Discard settings, leave this dialog box"), /* 88 */ wxT("Click to change the default background color"), /* 89 */ wxT("Re-use JPEG DCT data"), /* 90 */ wxT("Allow direct re-use of DCT compressed data from JPEG files instead of decoding and re-encoding it"), /* 91 */ wxT("Choose an output format: PS / EPS / PDF or Bounding Box"), /* 92 */ wxT("Choose an output type: Image for standalone viewing / Object for use with LaTeX / Document for print jobs or multipage images"), /* 93 */ wxT("Choose finishing: Single-sided / Duplex like a book / Duplex like a calendar"), /* 94 */ wxT("Choose resolution handling: 1 pixel = 1 PS point / Specify a resolution / Fit image to a paper size"), /* 95 */ wxT("Choose a paper size. Difference between A4 and a4: A4 uses the entire page without leaving a border, a4 leaves some border unused"), /* 96 */ wxT("Choose a PS level (2 or 3)"), /* 97 */ wxT("Choose a predictor for flate compression"), /* 98 */ wxT("Specify the resolution in dpi"), /* 99 */ wxT("Setup...\tAlt-S"), /* 100 */ wxT("Set conversion options"), /* 101 */ wxT("Reset...\tAlt-R"), /* 102 */ wxT("Reset conversion options to default values"), /* 103 */ wxT("Do you really want to reset all conversion options to default values?"), /* 104 */ wxT("Are you sure?"), /* 105 */ wxT("Not enough memory!"), /* 106 */ wxT("Processing directory \""), /* 107 */ wxT("\" (start)."), /* 108 */ wxT("Processing directory \""), /* 109 */ wxT("\" (finished)."), /* 110 */ wxT("\n"), /* 111 */ wxT("File name too long:\n\""), /* 112 */ wxT("\"!"), /* 113 */ wxT("No conversion candidate files found!"), /* 114 */ wxT("Processing file \""), /* 115 */ wxT("\"."), /* 116 */ wxT("Processing file \""), /* 117 */ wxT("\" (finished)."), /* 118 */ wxT("File name \""), /* 119 */ wxT("\" contains unconvertable characters!"), /* 120 */ wxT("Reduce bits per components"), /* 121 */ wxT("Reduce bits per components if possible"), /* 122 */ wxT("About wxbmpp"), /* 123 */ wxT("This program uses libraries from the following projects:\n"), /* 124 */ wxT("See:"), NULL #line 557 "DkWxBmepsApp.cpt" }; /** Constant texts, not localized. */ static wxChar const * const wxbmpp_nl_wx[] = { /* 0 */ wxT("Error"), /* 1 */ wxT("Not enough memory (RAM)!"), NULL #line 567 "DkWxBmepsApp.cpt" }; /** Application group name. */ static dkChar const dkwxbmepsapp_groupname[] = { dkT("dktools") }; /** Name for string table file to load. */ static dkChar const dkwxbmeps_string_table_name[] = { dkT("wxbmpp.str") }; /** Help file to be used on Windows systems. */ static wxChar const dkwxbmeps_chm_helpfile[] = { wxT("wxbmpp.chm") }; /** Help file to be used on non-Windows systems. */ static wxChar const dkwxbmeps_htb_helpfile[] = { wxT("wxbmpp.htb") }; bool DkWxBmepsApp::OnInit() { bool back = false; wxChar const * const *localizedTexts = defaultTexts; dkChar const * const *msg = NULL; DkWxBmepsFrame *frame = NULL; wxPNGHandler *phPng = NULL; wxXPMHandler *phXpm = NULL; wxICOHandler *phIco = NULL; wxArchiveFSHandler *phArchFs = NULL; #line 606 "DkWxBmepsApp.cpt" #line 607 "DkWxBmepsApp.cpt" /* Initialize elements. */ pHelper = NULL; helpController = NULL; /* Get elements. */ pHelper = new DkWxAppHelper(argv[0],defaultTexts[2],dkwxbmepsapp_groupname); if (NULL == pHelper) { ShowMemoryErrorMessage(); goto finished; } if (!(pHelper->checkSetup())) { goto finished; } msg = dk3app_messages( pHelper->getApp(), dk3bmep_str_get_string_table_name(), (dkChar const **)dk3bmep_str_get_message_texts() ); if (NULL == msg) { ShowMemoryErrorMessage(); goto finished; } localizedTexts = pHelper->getStringTable(defaultTexts, dkwxbmeps_string_table_name); if (NULL == localizedTexts) { ShowMemoryErrorMessage(); goto finished; } /* Set image and zip fs handler for online help. */ phPng = new wxPNGHandler(); if (NULL != phPng) { wxImage::AddHandler(phPng); } else { ShowMemoryErrorMessage(); goto finished; } /* CLANG STATIC ANALYSIS COMPLAINS ABOUT A POTENTIAL MEMORY LEAK, because phPng is set using the new operator but there is no matching delete. The handler object is deleted from within wxImage destructor, there is no memory leak. */ phXpm = new wxXPMHandler(); if (NULL != phXpm) { wxImage::AddHandler(phXpm); } else { ShowMemoryErrorMessage(); goto finished; } /* CLANG STATIC ANALYSIS COMPLAINS ABOUT A POTENTIAL MEMORY LEAK, because phXpm is set using the new operator but there is no matching delete. The handler object is deleted from within wxImage destructor, there is no memory leak. */ phIco = new wxICOHandler(); if (NULL != phIco) { wxImage::AddHandler(phIco); } else { ShowMemoryErrorMessage(); goto finished; } /* CLANG STATIC ANALYSIS COMPLAINS ABOUT A POTENTIAL MEMORY LEAK, because phIco is set using the new operator but there is no matching delete. The handler object is deleted from within wxImage destructor, there is no memory leak. */ phArchFs = new wxArchiveFSHandler(); if (NULL != phArchFs) { wxFileSystem::AddHandler(phArchFs); } else { ShowMemoryErrorMessage(); goto finished; } /* CLANG STATIC ANALYSIS COMPLAINS ABOUT A POTENTIAL MEMORY LEAK, because phArchFs is set using the new operator but there is no matching delete. The handler object is deleted from within wxFileSystem destructor, there is no memory leak. */ /* Get help controller */ helpController = new DkWxHelpController(pHelper,dkwxbmeps_chm_helpfile,dkwxbmeps_htb_helpfile); if (NULL == helpController) { ShowMemoryErrorMessage(); goto finished; } /* Create frame. */ frame = new DkWxBmepsFrame( defaultTexts[0], localizedTexts, msg, pHelper, DkWxBmeps_MainWindow, helpController, argc, argv ); if (NULL == frame) { ShowMemoryErrorMessage(); goto finished; } /* Show frame and inidicate success. */ frame->restorePosition(); frame->Show(); back = true; /* Clean up on problems. */ finished: if (!(back)) { if (NULL != helpController) { delete(helpController); helpController = NULL; } if (NULL != pHelper) { delete(pHelper); pHelper = NULL; } } #line 742 "DkWxBmepsApp.cpt" return back; } int DkWxBmepsApp::OnExit() { int back = 0; #line 752 "DkWxBmepsApp.cpt" /* Release elements. */ if(helpController) { delete(helpController); helpController = NULL; } if(pHelper) { delete(pHelper); pHelper = NULL; } #line 762 "DkWxBmepsApp.cpt" #line 763 "DkWxBmepsApp.cpt" return back; } void DkWxBmepsApp::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 = wxbmpp_nl_wx[0]; } if (NULL == s_text) { s_text = wxbmpp_nl_wx[1]; } wxMessageBox(s_text, s_title, (wxOK | wxCENTRE | wxICON_ERROR)); }