summaryrefslogtreecommitdiff
path: root/support/dktools/DkWxBmepsApp.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/DkWxBmepsApp.cpt
Initial commit
Diffstat (limited to 'support/dktools/DkWxBmepsApp.cpt')
-rw-r--r--support/dktools/DkWxBmepsApp.cpt746
1 files changed, 746 insertions, 0 deletions
diff --git a/support/dktools/DkWxBmepsApp.cpt b/support/dktools/DkWxBmepsApp.cpt
new file mode 100644
index 0000000000..2755bcdbd3
--- /dev/null
+++ b/support/dktools/DkWxBmepsApp.cpt
@@ -0,0 +1,746 @@
+%% options
+
+copyright owner = Dirk Krause
+copyright year = 2011-xxxx
+license = bsd
+
+
+
+%% header
+
+/** Application class for wxbmeps.
+*/
+class DkWxBmepsApp : public wxApp
+{
+ protected:
+
+ /** Helper object.
+ */
+ DkWxAppHelper *pHelper;
+
+ /** Help controller.
+ */
+ DkWxHelpController *helpController;
+
+ protected:
+
+ /** Show error message if there is not sufficient memory available.
+ */
+ void
+ ShowMemoryErrorMessage(void);
+
+ public:
+ /** Initialize application.
+ */
+ virtual bool OnInit();
+
+ /** Clean up after running.
+ */
+ virtual int OnExit();
+};
+
+DECLARE_APP(DkWxBmepsApp)
+
+
+
+%% module
+
+
+#include "wxbmeps.h"
+
+
+$!trace-include
+
+
+/** Implementation of DkWxBmepsApp.
+*/
+IMPLEMENT_APP(DkWxBmepsApp)
+
+
+
+/** Default texts, replaced by localized versions.
+*/
+wxChar const * const defaultTexts[] = {
+$!string-table macro=wxT
+#
+# 0: Program name
+#
+wxbmpp
+#
+# 1: Application group name
+#
+dktools
+#
+# 2: Software vendor name
+#
+Dirk Krause
+#
+# 3: Empty text.
+#
+
+#
+# 4: Toolbar button text: Directory
+#
+Directory
+#
+# 5: Toolbar button tip text: Choose the directory to process.
+#
+Choose the directory to process
+#
+# 6: Toolbar button text: Options
+#
+Options
+#
+# 7: Toolbar button tip text: Set conversion options.
+#
+Set conversion options
+#
+# 8: Toolbar button text: Run
+#
+Run
+#
+# 9: Toolbar button tip text: Run conversion
+#
+Run conversion
+#
+# 10: Toolbar button text: Exit
+#
+Exit
+#
+# 11: Toolbar button tip text: Exit the application
+#
+Exit the application
+#
+# 12: Menu text: File
+#
+&File
+#
+# 13: Menu text: Help
+#
+&Help
+#
+# 14: Menu item text: Directory
+#
+&Directory... Alt-D
+#
+# 15: Menu item tip text: Choose directory
+#
+Choose directory
+#
+# 16: Menu item text: Options
+#
+&Options Alt-O
+#
+# 17: Menu item tip text: Set conversion options
+#
+Conversion options
+#
+# 18: Menu item text: Run
+#
+&Run Alt-R
+#
+# 19: Menu item tip text: Run conversion
+#
+Run conversion
+#
+# 20: Menu item text: Exit
+#
+E&xit Alt-X
+#
+# 21: Menu item tip text: Exit the application
+#
+Exit the application
+#
+# 22: Menu item: Contents
+#
+&Contents F1
+#
+# 23: Menu item tip text: Show table of contents
+#
+Show table of contents
+#
+# 24: Menu item text: About
+#
+&About Alt-A
+#
+# 25: Menu item tip text: Show version number
+#
+Show version number
+#
+# 26: Label text: Directory:
+#
+Directory:
+#
+# 27: Empty string to indicate no directory name available
+#
+
+#
+# 28: Empty string for initial status text
+#
+
+#
+# 29: Directory dialog title: Choose directory
+#
+Choose Directory
+#
+# 30: Autorun result: Processing succeeded, application will exit.
+#
+Processing succeeded, application will exit.
+#
+# 31: ERROR: Automatic run canceled due to errors.
+#
+Automatic run canceled due to errors!
+#
+# 32: Progress dialog title: Conversion progress
+#
+Conversion progress
+#
+# 33: Progress dialog button title: Cancel
+#
+Cancel
+#
+# 34: Progress dialog button tool tip: Abort after current file
+#
+Abort conversion after finishing current file
+#
+# 35: Notification text: Cancel command scheduled... wait, please!
+#
+Cancel command scheduled... wait, please!
+#
+# 36: Options dialog box title
+#
+Conversion Options
+#
+# 37: Options dialog box paragraph: General
+#
+General
+#
+# 38: Checkbox: Make mode
+#
+Make mode
+#
+# 39: Tool tip for checkbox make mode
+#
+Run conversion only if destination file is not up to date.
+#
+# 40: Dialog box paragraph: Output
+#
+Output
+#
+# 41: Label output format
+#
+Output format:
+#
+# 42: Output format PS
+#
+PS
+#
+# 43: Output format EPS
+#
+EPS
+#
+# 44: Output format PDF
+#
+PDF
+#
+# 45: Output format: Bounding box
+#
+Bounding Box
+#
+# 46: Label output type
+#
+Output mode:
+#
+# 47: Output mode image
+#
+Image
+#
+# 48: Output mode object
+#
+Object
+#
+# 49: Output mode document
+#
+Document
+#
+# 50: Label finishing
+#
+Finishing:
+#
+# 51: Finishing Single-side
+#
+Single-side
+#
+# 52: Finishing duplex, no tumble
+#
+Duplex (book)
+#
+# 53: Finishing duplex and tumble
+#
+Duplex (calendar)
+#
+# 54: Checkbox draft mode
+#
+Draft mode
+#
+# 55: Tool tip text for draft checkbox
+#
+Create placeholder image only
+#
+# 56: Checkbox color
+#
+Color
+#
+# 57: Tool tip text for checkbox color
+#
+Enable colored output
+#
+# 58: Paragraph output size
+#
+Output size
+#
+# 59: label resolution
+#
+Resolution:
+#
+# 60: Resolution 1 pixel = 1 point
+#
+1px=1pt
+#
+# 61: Resolution as specified in input file
+#
+input file
+#
+# 62: Resolution as specified
+#
+as specified:
+#
+# 63: Label paper size
+#
+Paper size:
+#
+# 64: Paragraph image quality
+#
+Image quality
+#
+# 65: Checkbox image interpolation
+#
+Image interpolation
+#
+# 66: Tool tip text for checkbox image interpolation
+#
+Enable image interpolation
+#
+# 67: Checkbox image interpolation for JPEG
+#
+Image interpolation for JPEG files
+#
+# 68: Tool tip text for checkbox image interpolation for JPEG files
+#
+Enable image interpolation for JPEG files too
+#
+# 69: Paragraph transparency
+#
+Transparency
+#
+# 70: Label background color
+#
+Background color:
+#
+# 71: Checkbox Force background color
+#
+Force background color
+#
+# 72: Tool tip text for checkbox force background
+#
+Always use the specified background color, ignore background color chunks
+#
+# 73: Paragraph output format details
+#
+Output format details
+#
+# 74: Label PS level
+#
+PS level:
+#
+# 75: Label predictor
+#
+Predictor:
+#
+# 76: Predictor none
+#
+None
+#
+# 77: Predictor tiff
+#
+TIFF
+#
+# 78: Predictor sub
+#
+PNG-SUB
+#
+# 79: Predictor up
+#
+PNG-UP
+#
+# 80: Predictor average
+#
+PNG-AVERAGE
+#
+# 81: Predictor paeth
+#
+PNG-PAETH
+#
+# 82: Checkbox DSC
+#
+DSC
+#
+# 83: Tool tip text for checkbox dsc
+#
+Write DSC comments to PS output
+#
+# 84: Button text OK
+#
+OK
+#
+# 85: Tool tip for OK button
+#
+Confirm settings, leave this dialog box
+#
+# 86: Button Cancel
+#
+Cancel
+#
+# 87: Tool tip for cancel button
+#
+Discard settings, leave this dialog box
+#
+# 88: Tool tip for color viewer.
+#
+Click to change the default background color
+#
+# 89: Check box: Use DCT compressed data from JPEGs directly
+#
+Re-use JPEG DCT data
+#
+# 90: Tool tip text: Allow direct re-usse of DCT compressed data from JPEGs
+#
+Allow direct re-use of DCT compressed data from JPEG files instead of decoding and re-encoding it
+#
+# 91: Tool tip: Choose output format
+#
+Choose an output format: PS / EPS / PDF or Bounding Box
+#
+# 92: Tool tip: Choose output type
+#
+Choose an output type: Image for standalone viewing / Object for use with LaTeX / Document for print jobs or multipage images
+#
+# 93: Tool tip: Choose finishing
+#
+Choose finishing: Single-sided / Duplex like a book / Duplex like a calendar
+#
+# 94: Tool tip: Choose resolution handling
+#
+Choose resolution handling: 1 pixel = 1 PS point / Specify a resolution / Fit image to a paper size
+#
+# 95: Tool tip: Choose a paper size
+#
+Choose a paper size. Difference between A4 and a4: A4 uses the entire page without leaving a border, a4 leaves some border unused
+#
+# 96: Tool tip: Choose a PS level
+#
+Choose a PS level (2 or 3)
+#
+# 97: Tool tip: Choose a predictor for flate compression
+#
+Choose a predictor for flate compression
+#
+# 98: Tool tip: Specify a resolution in dpi
+#
+Specify the resolution in dpi
+#
+# 99: Menu item: Setup...
+#
+Setup... Alt-S
+#
+# 100: Tool tip for menu item Setup
+#
+Set conversion options
+#
+# 101: Menu item: Reset options
+#
+Reset... Alt-R
+#
+# 102: Tool tip for menu item Reset options
+#
+Reset conversion options to default values
+#
+# 103: Question: Do you really want to reset all options to default values?
+#
+Do you really want to reset all conversion options to default values?
+#
+# 104: Message box title: Reset all conversion options to default values
+#
+Are you sure?
+#
+# 105: Error: Not enough memory!
+#
+Not enough memory!
+#
+# 106/107: Message: Processing directory "..." (start).
+#
+Processing directory "
+" (start).
+#
+# 108/109: Message: Processing directory "..." (finished).
+#
+Processing directory "
+" (finished).
+#
+# 110: Newline
+#
+\n
+#
+# 111/112: Error: File name too long!
+#
+File name too long:\n"
+"!
+#
+# 113: Error: No file found to convert
+#
+No conversion candidate files found!
+#
+# 114/115: Message: Processing file "..." (start).
+#
+Processing file "
+".
+#
+# 116/117: Message: Processing file "..." (finished).
+#
+Processing file "
+" (finished).
+#
+# 118/119: Error: File name "..." contains unconvertable characters!
+#
+File name "
+" contains unconvertable characters!
+#
+# 120: Checkbox: Reduce bits per components
+#
+Reduce bits per components
+#
+# 121: Tool tip text: Reduce bits per component if possible
+#
+Reduce bits per components if possible
+#
+# 122: About dialog box title
+#
+About wxbmpp
+#
+# 123: This program uses libraries from the following projects:
+#
+This program uses libraries from the following projects:\n
+#
+# 124: See
+#
+See:
+$!end
+};
+
+
+/** Constant texts, not localized.
+*/
+static wxChar const * const wxbmpp_nl_wx[] = {
+$!string-table macro=wxT
+Error
+Not enough memory (RAM)!
+$!end
+};
+
+/** 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;
+
+ $!trace-init wxbmpp.deb
+ $? "+ DkWxBmepsApp::OnInit"
+
+ /* 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;
+ }
+ }
+
+ $? "- DkWxBmepsApp::OnInit %d", ((back) ? 1 : 0)
+ return back;
+}
+
+
+
+int
+DkWxBmepsApp::OnExit()
+{
+ int back = 0;
+ $? "+ DkWxBmepsApp::OnExit"
+ /*
+ Release elements.
+ */
+ if(helpController) {
+ delete(helpController); helpController = NULL;
+ }
+ if(pHelper) {
+ delete(pHelper); pHelper = NULL;
+ }
+ $? "- DkWxBmepsApp::OnExit %d", back
+ $!trace-end
+ 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));
+}
+