diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/dktools/DkWxBmepsApp.cpt |
Initial commit
Diffstat (limited to 'support/dktools/DkWxBmepsApp.cpt')
-rw-r--r-- | support/dktools/DkWxBmepsApp.cpt | 746 |
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)); +} + |