%% options # __CHANGE__ 001: Correct copyright owner if necessary. copyright owner = $copyrightowner$ # __CHANGE__ 003: Correct copyright year(s) if necessary. copyright year = $year$ # __CHANGE__ 002: Correct license type if necessary. # Use "bsd", "gpl", "lgpl", or "commercial". license = bsd %% header /** Application class, derived from wxApp, one instance per program. */ class $application$ : public wxApp { protected: /** Helper object. */ DkWxAppHelper *pHelper; /** Controller fr online help. */ DkWxHelpController *helpController; /* __CHANGE__ 009: Add further members here. */ public: /** Application initialization. @return true on success, false on error. */ virtual bool OnInit(); /** Application shutdown. @return 0 on success, any other value indicates an error. */ virtual int OnExit(); }; /** Declaration as the wxApp object. */ DECLARE_APP($application$) %% module #include "$program$.h" $!trace-include /** Localized wxChar texts. */ static wxChar const * $program$_texts[] = { $!string-table macro=wxT,file=$program$.str # # 0: Menu "File" # File # # 1: Menu item "File/Exit" # Exit # # 2: Tool tip text for menu item "File/Exit" # Exit the application # # 3: Menu "Help" # Help # # 4: Menu item "Help/About" # About # # 5: Tooltip text for menu item "Help/About" # Show version information # # 6: Menu item "Help/Contents" # Contents # # 7: Tooltip text for menu item "Help/Contents" # Open table of contents # # 8: Initial status text # Ready # # 9: Copyright notice. # Copyright (c) # # 10: Dialog box title "About ..." # About # # 11: This program uses the following libraries # This program uses the following libraries: # # 12: See # See: # # 13: __CHANGE__ 015: Text for dummy label, can be reused if lDummy removed. # Dummy text to have at least one label in the frame # # __CHANGE__ 016: Add further texts as required. # $!end }; /** Non-localized wxChar texts. */ static wxChar const * $program$_nl_wx[] = { $!string-table macro=wxT # # 0: Program name. __CHANGE__ 004: Correct program name. # $program$ # # 1: Program version. __CHANGE__ 005: Correct program version. # 1.0.0 # # 2: Copyright owner name. __CHANGE__ 001: Correct copyright owner name. # Copyright owner # # 3: Software vendor name. __CHANGE__ 007: Correct software vendor name # if necessary. Must be one # string without spaces. # SoftwareVendor # # 4: Resource name of Windows icon # aaaaa # # 5: Windows chm help file name # $program$.chm # # 6: non-Windows htb help file name # $program$.htb # # 7: Space # # # 8: Newline # \n # # 9 10 11 12 13 14 15: List of libraries used. # DK tools, wxWidgets, libpng, libjpeg, libtiff, zlib. http://dktools.sourceforge.net http://www.wxwidgets.org http://www.libpng.org/pub/png/libpng.html http://www.ijg.org http://www.remotesensing.org/libtiff http://www.zlib.net $!end }; /** Non-localized dkChar texts. */ static dkChar const * $program$_nl_dk[] = { $!string-table macro=dkT # # 0: Program group name. __CHANGE__ 006: Correct program group name. # $program$-group # # 1: String table name. # $program$.str $!end }; /** Implementation of the wxApp functionality. */ IMPLEMENT_APP($application$) bool $application$::OnInit() { $frame$ *frame = NULL; wxChar const * const *localizedTexts; bool back = false; /* Initialize members. */ pHelper = NULL; helpController = NULL; /* __CHANGE__ 009: Initialize further members here. */ /* Set up helper object. */ pHelper = new DkWxAppHelper( argv[0], $program$_nl_wx[3], $program$_nl_dk[0] ); if(!(pHelper)) { goto finished; } if(!(pHelper->checkSetup())) { goto finished; } /* Add image and file system handlers for online help. */ wxImage::AddHandler(new wxPNGHandler); wxImage::AddHandler(new wxXPMHandler); wxImage::AddHandler(new wxICOHandler); wxFileSystem::AddHandler(new wxZipFSHandler); localizedTexts = pHelper->getStringTable($program$_texts, $program$_nl_dk[1]); if(!(localizedTexts)) { localizedTexts = $program$_texts; } /* Set up online help controller. */ helpController = new DkWxHelpController( pHelper, $program$_nl_wx[5], $program$_nl_wx[6] ); if(!(helpController)) { goto finished; } /* Create and show frame. */ frame = new $frame$( $frame$_MainWindow, pHelper, helpController, argc, argv, localizedTexts, $program$_nl_wx, $program$_nl_dk ); if(!(frame)) { goto finished; } frame->Show(); back = true; /* Release resources if initialization failed. */ finished: if(!(back)) { if(helpController) { delete(helpController); helpController = NULL; } if(pHelper) { delete(pHelper); pHelper = NULL; } } return back; } int $application$::OnExit() { int back = 0; /* __CHANGE__ 009: Release resources allocated by further members. */ /* Release resources. */ if(helpController) { delete(helpController); helpController = NULL; } if(pHelper) { delete(pHelper); pHelper = NULL; } /* __CHANGE__ 010: Set back to exit status code. */ return back; }