home *** CD-ROM | disk | FTP | other *** search
/ swCHIP 1991 January / swCHIP_95-1.bin / chip / tvgencpp / demo3cpp.exe / TEMPLATE / APP.ATF next >
Encoding:
Text File  |  1994-12-06  |  12.7 KB  |  561 lines

  1. \ ********************************************************
  2. \     Standard application template file for TVGen 3.0
  3. \               (c) 1994 BOCIAN Software
  4. \ ********************************************************
  5.  
  6. \ Procedures LineProc and ObjParams are used in dialogs. Placing them
  7. \ here eliminates redefining when each dialog is about to be generated
  8.  
  9. \ Recursively called procedure building up the cluster string lists
  10. @DEFPROC LineProc
  11. @IF!EQUAL %_LINETEXT% ''
  12.          new TSItem("%_LINETEXT%",
  13. @NEXTLINE Lines
  14. @CALL LineProc
  15. @NOCR )
  16. @ELSE
  17. @NOCR             0
  18. @ENDIF
  19. @ENDPROC
  20. \ End of procedure LineProc
  21.  
  22. \ Recursively called procedure building up the cluster hints list
  23. @DEFPROC HintsProc
  24. @IF!EQUAL %_LINETEXT% ''
  25.   @IFOPTION HELP
  26.     @IF!EQUAL %__HELPFLAG% 0
  27.       @PUSHFILE 4
  28.       @NOCR ,%_SUBSTR(__HCVAL,1,2)%%__HCCOUNTER%
  29.       @POPFILE
  30.     @ENDIF (if!equal)
  31.   @ENDIF
  32.   Hints[%__HINTCOUNTER%]=new THint(hc_D_%_DLGFUNC(_DLGNUM)%+%__HCCOUNTER%,"%_LINETEXT%");
  33.     @INC __HCCOUNTER  
  34.     @INC __HINTCOUNTER
  35.   @NEXTLINE Hints
  36.   @CALL HintsProc
  37. @ENDIF (if!equal)
  38. @ENDPROC
  39. \ End of procedure HintsProc
  40.  
  41. \ Procedure for object flags redefinition
  42. @DEFPROC ObjParams
  43. @IF!DEFAULT Options
  44.       %_PARAMETER(1)%options=%OPTIONS%;
  45. @ENDIF
  46. @IF!DEFAULT DragMode
  47.       %_PARAMETER(1)%dragMode=%DRAGMODE%;
  48. @ENDIF
  49. @IF!DEFAULT GrowMode
  50.       %_PARAMETER(1)%growMode=%GROWMODE%;
  51. @ENDIF
  52. @IF!DEFAULT EventMask
  53.       %_PARAMETER(1)%eventMask=%EVENTMASK%;
  54. @ENDIF
  55. \ Has the object defined HINT field?
  56. @IFFIELD HINT
  57.   @IFOPTION HELP
  58.     @IF!EQUAL %__HELPFLAG% 0
  59.       @PUSHFILE 4
  60.       @NOCR ,%_SUBSTR(__HCVAL,1,2)%%__HCCOUNTER%
  61.       @POPFILE
  62.     @ENDIF (if!equal)
  63.   @ENDIF
  64.   \ Differs hint-text from the null string?
  65.   @IF!EQUAL %HINT% ''
  66.       %_PARAMETER(1)%helpCtx=hc_D_%_DLGFUNC(_DLGNUM)%+%__HCCOUNTER%;
  67.     \ File @5 is the application resource maker
  68.     @PUSHFILE 5
  69.   Hints[%__HINTCOUNTER%]=new THint(hc_D_%_DLGFUNC(_DLGNUM)%+%__HCCOUNTER%,%HINT%);
  70.     @INC __HCCOUNTER  
  71.     @INC __HINTCOUNTER
  72.     @POPFILE
  73.   @ENDIF (if!equal)
  74. @ENDIF (iffield)
  75. \ Has the object defined HINTS field?
  76. @IFFIELD HINTS
  77.       %_PARAMETER(1)%helpCtx=hc_D_%_DLGFUNC(_DLGNUM)%+%__HCCOUNTER%;
  78.   @FIRSTLINE Hints
  79.   @PUSHFILE 5
  80.   @CALL HintsProc
  81.   @POPFILE
  82. @ENDIF
  83. @ENDPROC
  84. \ End of procedure ObjParams
  85. \
  86. @DEFPROC AppDialogCall
  87.   @ASSIGN __DLGNUMBER %_GETDLGNUM(_PARAMETER(1))%
  88.   @IF!EQUAL %__DLGNUMBER% 0
  89.     @IFEQUAL %_DLGDATAFLAG(__DLGNUMBER)% 0
  90.   Result = %_DLGFUNC(__DLGNUMBER)%();
  91.     @ELSE
  92.   Result = %_DLGFUNC(__DLGNUMBER)%(%_PARAMETER(2)%,False);
  93.     @ENDIF
  94.   @ENDIF  
  95. @ENDPROC
  96. \ End of procedure AppDialogCall
  97. \
  98. @DEFPROC AppDialogData
  99.   @ASSIGN __DLGNUMBER %_GETDLGNUM(_PARAMETER(1))%
  100.   @IF!EQUAL %__DLGNUMBER% 0
  101.     @IF!EQUAL %_DLGDATAFLAG(__DLGNUMBER)% 0
  102.   T%_DLGFUNC(__DLGNUMBER)%Data %_PARAMETER(2)%;
  103.   ushort Result;
  104.     @ENDIF
  105.   @ENDIF  
  106. @ENDPROC
  107. \ End of procedure AppDialogData
  108. \
  109. \                           END OF PROCEDURE SECTION
  110. \
  111. \
  112. @QUOTES "
  113. @ORSYMBOL |
  114. @ASSIGN __HINTCOUNTER 0
  115. @ASSIGN __MAKEIDLE 0
  116. @ASSIGN __LOADGADGETS 0
  117. @ASSIGN __APPFILE %_SUBSTR(_OUTFILE,1,6)%
  118. @IFOPTION CLOCK
  119.   @INC __MAKEIDLE
  120.   @INC __LOADGADGETS
  121. @ENDIF
  122. @IFOPTION HEAPVIEW
  123.   @INC __MAKEIDLE
  124.   @INC __LOADGADGETS
  125. @ENDIF
  126. @IFOPTION ScreenSaver
  127.   @INC __MAKEIDLE
  128. @ENDIF
  129. @IFOPTION ASK_FOR_UNITS
  130.   @ASSIGN __MODULES 0
  131.   @LOOP
  132.     @ASKFOR __MOD[__MODULES] '' 'Enter header file (blank line ends)'
  133.     @IFEQUAL __MOD[__MODULES] ''
  134.       @EXIT
  135.     @ELSE
  136.       @INC __MODULES
  137.     @ENDIF  
  138.   @ENDLOOP
  139. @ENDIF
  140. @DEFINEFILE 2 %_OUTFILE%.CPP
  141. @DEFINEFILE 3 %__APPFILE%_D.H
  142. @IFOPTION HELP
  143.   @DEFINEFILE 4 %_OUTFILE%.TXT
  144. @ENDIF
  145. @DEFINEFILE 5 %__APPFILE%_N.INC
  146. @DEFINEFILE 6 %_OUTFILE%.RSP
  147. \ Dialog data exchange types
  148. @FILE 3
  149. \ Dialogs
  150. @DEFINEFILE 7 %__APPFILE%_K.H
  151. @FORALLDIALOGS
  152.   @DIALOG
  153. @ENDFOR
  154. @CLOSEFILE 7
  155. \ Main program file
  156. @FILE 2
  157. #define Uses_TApplication
  158. #define Uses_TMenuBar
  159. #define Uses_TMenu
  160. #define Uses_TMenuItem
  161. #define Uses_TSubMenu
  162. #define Uses_TStatusLine
  163. #define Uses_THintStatusLine
  164. #define Uses_TStatusDef
  165. #define Uses_TStatusItem
  166. #define Uses_TKeys
  167. #define Uses_TEvent
  168. #define Uses_TDeskTop
  169. #define Uses_TCollection
  170. @IFOPTION ScreenSaver
  171. #define Uses_TScreenSaver
  172. @ENDIF
  173. #define Uses_THint
  174. #define Uses_MsgBox
  175. @IFOPTION HELP
  176. #define Uses_TPalette
  177. #define Uses_fpstream
  178. @ENDIF
  179.  
  180. @IFOPTION HELP
  181. #if __BORLANDC__ < 0x452 && !defined(__WIN32__)
  182. #include <help.h>
  183. #else
  184. #include <tvision\help.h>
  185. #endif
  186. @ELSE
  187. #if __BORLANDC__ < 0x452 && !defined(__WIN32__)
  188. #include <tv.h>
  189. #else
  190. #include <tvision\tv.h>
  191. #endif
  192. @ENDIF
  193. @IF!EQUAL %__LOADGADGETS% 0
  194. #include "gadgets.h"
  195. @ENDIF
  196.  
  197. @IFOPTION ASK_FOR_UNITS
  198.   @ASSIGN __COUNTER 0
  199.   @LOOP
  200.     @IFEQUAL %__MODULES% %__COUNTER%
  201.       @EXIT
  202.     @ELSE
  203. #include "%__MOD[__COUNTER]%"
  204.       @INC __COUNTER
  205.     @ENDIF  
  206.   @ENDLOOP
  207.  
  208. @ENDIF
  209. #include <string.h>
  210.  
  211. #include "%__APPFILE%_H.H"
  212. #include "%__APPFILE%_C.H"
  213. #include "%__APPFILE%_D.H"
  214.  
  215. #include "supply.h"
  216.  
  217. char **argv;
  218.  
  219.      class %_APPTYPE% : public TApplication
  220.        {
  221. @IFOPTION Clock
  222.         TClockView *Clock;
  223. @ENDIF
  224. @IFOPTION HeapView
  225.         THeapView  *HeapView;
  226. @ENDIF
  227. @IFOPTION ScreenSaver
  228.         TScreenSaver *ScreenSaver;
  229. @ENDIF
  230.         static THint *Hints[300];
  231.  
  232.         public:
  233.         %_APPTYPE%();
  234. \ AdditionalInit method handles setup of Clock, HeapView, ScreenSaver, etc.
  235.         void additionalInit();
  236.         void additionalDone();
  237. @IFSNIPPET MTD_DONE
  238.         ~%_APPTYPE%();
  239. @ENDIF
  240. \ Always override HandleEvent and InitStatusLine methods
  241.         void handleEvent(TEvent &event);
  242.         static TStatusLine *initStatusLine(TRect r);
  243. @IFMENUBAR
  244.         static TMenuBar *initMenuBar(TRect r);
  245. @ENDIF
  246. @IFOPTION HELP
  247.         void getEvent(TEvent &event);
  248. @ELSE
  249.   @IFOPTION ScreenSaver
  250.         void getEvent(TEvent &event);
  251.   @ENDIF
  252. @ENDIF
  253. @IF!EQUAL %__MAKEIDLE% 0
  254.         void idle();
  255. @ENDIF
  256. @IFOPTION HELP
  257.         TPalette &getPalette() const;
  258. @ELSE
  259.   @IFOPTION COLOR
  260.         TPalette &getPalette() const;
  261.   @ENDIF        
  262. @ENDIF
  263. @FORCALLEDDIALOGS
  264.         void Call%_DLGFUNC(_DLGNUM)%();
  265. @ENDFOR
  266. @ASSIGN __SECTION 'HEADER'
  267. @SNIPPETS LIKE USR_*
  268. @ASSIGN __SECTION 'MAIN'
  269.       };
  270.  
  271. THint *TMyApp::Hints[300];
  272.  
  273. \ Generate Constructor
  274. @IFSNIPPET MTD_INIT
  275. @ELSE
  276. %_APPTYPE%::%_APPTYPE%() : TProgInit(&%_APPTYPE%::initStatusLine,
  277.                                      &%_APPTYPE%::initMenuBar,
  278.                                      &%_APPTYPE%::initDeskTop)
  279. {
  280. }
  281.  
  282. @ENDIF
  283.  
  284. \ Generate StatusLine
  285. @IFSTATUS
  286.   @STATUSLINE
  287. @ELSE
  288. \ StatusLine is not defined - initialize THintStatusLine with standard keys
  289. TStatusLine *%_APPTYPE%::initStatusLine(TRect r)
  290. {
  291.   r.a.y=r.b.y-1;
  292.   return new THintStatusLine(r,
  293.     *new TStatusDef(0, 0xFFFF)+
  294.       *new TStatusItem("~Alt-X~ Exit", kbAltX, cmQuit)+
  295.       *new TStatusItem("~F10~ Menu", kbF10, cmMenu)+
  296.       *new TStatusItem(0, kbAltF3, cmClose)+
  297.       *new TStatusItem(0, kbF5, cmZoom)+
  298.       *new TStatusItem(0, kbCtrlF5, cmResize),Hints);
  299. }
  300.  
  301. @ENDIF (ifstatus)
  302. \ Generate MenuBar
  303. @IFMENUBAR
  304.   @MENUBAR
  305. @ENDIF (ifmenubar)
  306.  
  307. @IF!EQUAL %__MAKEIDLE% 0
  308. void %_APPTYPE%::idle()
  309. {
  310.   TApplication::idle();
  311.   @IFOPTION CLOCK
  312.   Clock->update();
  313.   @ENDIF
  314.   @IFOPTION HEAPVIEW
  315.   HeapView->update();
  316.   @ENDIF
  317.   @IFOPTION ScreenSaver
  318.   ScreenSaver->update();
  319.   @ENDIF
  320. }
  321. @ENDIF
  322.  
  323. void %_APPTYPE%::additionalInit()
  324. {
  325. #include "%_SUBSTR(_OUTFILE,1,6)%_N.INC"
  326.   Hints[%__HINTCOUNTER%]=NULL;
  327.  
  328. @IFOPTION ScreenSaver
  329.   TRect r=getExtent();
  330.   @ASKFOR __SSDelay '60' 'Screen saver delay in seconds'
  331.   @IFEQUAL %__SSDelay% ''
  332.   ScreenSaver=new TScreenSaver(r,60);
  333.   @ELSE
  334.   ScreenSaver=new TScreenSaver(r,%__SSDELAY%);
  335.   @ENDIF
  336.   insert(ScreenSaver);
  337. @ENDIF
  338. @IFOPTION CLOCK
  339.   r=getExtent();
  340.   r.a.x=r.b.x-9;
  341.   r.b.y=r.a.y+1;
  342.   Clock=new TClockView(r);
  343.   insert(Clock);
  344. @ENDIF
  345. @IFOPTION HEAPVIEW
  346.   r=getExtent();
  347.   r.a.x=r.b.x-13;
  348.   r.a.y=r.b.y-1;
  349.   HeapView=new THeapView(r);
  350.   insert(HeapView);
  351. @ENDIF
  352. }
  353.  
  354. void %_APPTYPE%::additionalDone()
  355. {
  356.   int loop=0;
  357.  
  358.   while (Hints[loop]!=NULL) delete Hints[loop++];
  359. }
  360.  
  361. @IFOPTION HELP
  362. void %_APPTYPE%::getEvent(TEvent &event)
  363. {
  364.   TApplication::getEvent(event);
  365. @IFOPTION ScreenSaver
  366.   ScreenSaver->checkEvent(event);
  367. @ENDIF
  368.  
  369.   if (event.what==evCommand && event.message.command==cmHelp)
  370.   {
  371.     TWindow *w;
  372.     THelpFile *hFile;
  373.     fpstream *helpStrm;
  374.     static Boolean helpInUse = False;
  375.  
  376.     char HelpFile[128];
  377.     strcpy(HelpFile,argv[0]);
  378.     while(HelpFile[strlen(HelpFile)-1]!='\\') HelpFile[strlen(HelpFile)-1]='\0';
  379.     strcat(HelpFile,"%_OUTFILE%.HLP");
  380.  
  381.     if (helpInUse == False)
  382.     {
  383.       helpInUse = True;
  384.       helpStrm = new fpstream(HelpFile, ios::in|ios::binary|ios::nocreate);
  385.       hFile = new THelpFile(*helpStrm);
  386.       if (!helpStrm)
  387.       {
  388.         messageBox("Nemohu otevrit soubor s napovedou", mfError | mfOKButton);
  389.         delete hFile;
  390.       }
  391.       else
  392.       {
  393.         w = new THelpWindow(hFile, getHelpCtx());
  394.         TRect r=w->getBounds();
  395.         r.grow(8,1);
  396.         w->changeBounds(r);
  397.         strcpy((char *) w->title,"Napoveda");
  398.         w->flags &= ~wfGrow & ~wfZoom;
  399.         w->helpCtx=hcHelpWindowActive;
  400.         if (validView(w)!=0) execView(w);
  401.         destroy(w);
  402.       }
  403.       helpInUse = False;
  404.     }
  405.     clearEvent(event);
  406.   }
  407. }
  408.  
  409. TPalette &%_APPTYPE%::getPalette() const
  410. {
  411. @IF!OPTION COLOR
  412. #if _TV_VERSION < 0x0200
  413.   static TPalette newcolor ( cpColor cHelpColor, sizeof( cpColor cHelpColor )-1 );
  414.   static TPalette newblackwhite( cpBlackWhite cHelpBlackWhite, sizeof( cpBlackWhite cHelpBlackWhite)-1 );
  415.   static TPalette newmonochrome( cpMonochrome cHelpMonochrome, sizeof( cpMonochrome cHelpMonochrome)-1 );
  416.   static TPalette *palettes[] =  {&newcolor, &newblackwhite, &newmonochrome};
  417.  
  418.   return *(palettes[appPalette]);
  419. #else
  420.   return TApplication::getPalette();
  421. #endif
  422. @ELSE
  423.   @NOCR static TPalette newcolor (
  424.   @CPPCOLORS 2 ''
  425. ,135);
  426.   static TPalette *palettes[] =  {&newcolor, &newcolor, &newcolor};
  427.  
  428.   return *(palettes[appPalette]);
  429.  
  430. @ENDIF
  431. }
  432.  
  433. @ELSE
  434.   @IFOPTION ScreenSaver
  435. void %_APPTYPE%::getEvent(TEvent &event)
  436. {
  437.   TApplication::getEvent(event);
  438.   ScreenSaver->checkEvent(event);
  439. }
  440.   @ENDIF
  441. @ENDIF
  442. @SNIPPETS LIKE MTD_*
  443. @IF!SNIPPET MTD_HAND
  444. void %_APPTYPE%::handleEvent(TEvent &event)
  445. {
  446.   TApplication::handleEvent(event);
  447.   if (event.what == evCommand) 
  448.     {
  449.       switch (event.message.command) 
  450.          {
  451. @ASSIGN __SECTION 'CALLING'
  452. @FORCALLEDITEMS
  453.   @IFEQUAL %_APPITEMTYPE% 'DLG'
  454.           case %_PADR(_APPITEMCOMMAND,25,' ')% : Call%_DLGFUNC(_DLGNUM)%(); break;
  455.   @ENDIF
  456.   @IFEQUAL %_APPITEMTYPE% 'MTD'
  457.     @NOCR           case %_PADR(_APPITEMCOMMAND,25,' ')% : 
  458.     @SNIPPET %_APPITEMFILE%
  459.           break;
  460.   @ENDIF
  461. @ENDFOR
  462. @ASSIGN __SECTION 'MAIN'
  463.           default : return;
  464.         }
  465.       }
  466.     clearEvent(event); 
  467. }
  468.  
  469. @ENDIF
  470. @SNIPPETS LIKE USR_*
  471.  
  472. \ RSP includes
  473. @PUSHFILE 6
  474. %_OUTFILE%.CPP
  475. @FORALLDIALOGS
  476. %__DLGFILE[_DLGNUM]%
  477. @ENDFOR
  478. @IF!EQUAL %__LOADGADGETS% 0
  479. GADGETS.CPP
  480. @ENDIF
  481. @ASSIGN __COUNTER 0
  482. @LOOP
  483.   @IFEQUAL %_UNIT(__COUNTER)% ''
  484.     @EXIT
  485.   @ELSE
  486. %_UNIT(__COUNTER)%
  487.     @INC __COUNTER
  488.   @ENDIF
  489. @ENDLOOP
  490. TV.LIB
  491. SUPPLY.CPP
  492. @IFOPTION ASK_FOR_UNITS
  493. @ASKFOR __MODULE '' 'Modules in RSP (delimited by blanks)'
  494. %__MODULE%
  495. @ENDIF
  496. @POPFILE
  497.  
  498. @FORCALLEDDIALOGS
  499.  
  500. @IFSNIPPET %_CALLINGSNIPPET%
  501.   @SNIPPET %_CALLINGSNIPPET%
  502. @ELSE
  503. void %_APPTYPE%::Call%_DLGFUNC(_DLGNUM)%()
  504. {
  505. @IFEQUAL %_DLGDATAFLAG(_DLGNUM)% 0
  506.     ushort Result = %_DLGFUNC(_DLGNUM)%();
  507.   @ELSE
  508.     T%_DLGFUNC(_DLGNUM)%Data D;
  509.     ushort Result = %_DLGFUNC(_DLGNUM)%(D,False);
  510. @ENDIF
  511. }
  512. @ENDIF
  513. @ENDFOR
  514. @FILE 2
  515.  
  516. #pragma -wpar
  517.  
  518. void main(int argc, char *argv[])
  519. {
  520.   ::argv=argv;
  521.  
  522.   %_APPTYPE% AppInstance;
  523.  
  524.   AppInstance.additionalInit();
  525.   AppInstance.run();
  526.   AppInstance.additionalDone();
  527. }
  528.  
  529. // ************ Generated by TVGen 3.0 **************
  530. \ Close main program file
  531. @CLOSEFILE 2
  532. @FILE 3
  533.  
  534. // ************ Generated by TVGen 3.0 **************
  535. @DEFINEFILE 3 %_SUBSTR(_OUTFILE,1,6)%_H.H
  536. @FILE 3
  537. @HELPCONSTANTS   const ushort %_PAdR([NAME],50,' ')%  =  [VALUE];
  538.  
  539. // ************ Generated by TVGen 3.0 **************
  540. \ Close Help Constants Unit file and open file for Command Constants
  541. @DEFINEFILE 3 %_SUBSTR(_OUTFILE,1,6)%_C.H
  542. @FILE 3
  543. @ASSIGN _APPCMDORIGIN 100
  544.  
  545. @CMDCONSTANTS    const ushort %_PADR([NAME],50,' ')%  =  [VALUE];
  546.  
  547. // ************ Generated by TVGen 3.0 **************
  548. \ Close Command Constants Unit file
  549. @CLOSEFILE 3
  550. \ Close help text file
  551. @IFOPTION HELP
  552.   @CLOSEFILE 4
  553. @ENDIF
  554. \ Create batch file
  555. @DEFINEFILE 3 %_OUTFILE%.BAT
  556. @FILE 3
  557. BCC -P -ml @%_OUTFILE%.RSP
  558. @IFOPTION HELP
  559. TVHC %_OUTFILE%.TXT %_OUTFILE%.HLP %_SUBSTR(_OUTFILE,1,6)%_X.XXX
  560. @ENDIF
  561. @CLOSEFILE 3