/* 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: DkWxBmepsApp.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 DkWxBmepsApp.cpp The DkWxBmepsApp module. */ #line 47 "DkWxBmepsApp.cpt" #include "wxbmeps.h" #line 53 "DkWxBmepsApp.cpt" /** Implementation of DkWxBmepsApp. */ IMPLEMENT_APP(DkWxBmepsApp) /** 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 548 "DkWxBmepsApp.cpt" }; /** Constant texts, not localized. */ static wxChar const * const wxbmpp_nl_wx[] = { /* 0 */ wxT("Error"), /* 1 */ wxT("Not enough memory (RAM)!"), NULL #line 558 "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; wxZipFSHandler *phZipFs = NULL; #line 597 "DkWxBmepsApp.cpt" #line 598 "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; } 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,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->Show(); frame->restorePosition(); back = true; /* Clean up on problems. */ finished: if (!(back)) { if (NULL != helpController) { delete(helpController); helpController = NULL; } if (NULL != pHelper) { delete(pHelper); pHelper = NULL; } } #line 702 "DkWxBmepsApp.cpt" return back; } int DkWxBmepsApp::OnExit() { int back = 0; #line 712 "DkWxBmepsApp.cpt" /* Release elements. */ if(helpController) { delete(helpController); helpController = NULL; } if(pHelper) { delete(pHelper); pHelper = NULL; } #line 722 "DkWxBmepsApp.cpt" #line 723 "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)); }