home *** CD-ROM | disk | FTP | other *** search
/ swCHIP 1991 January / swCHIP_95-1.bin / chip / tvgencpp / demo3cpp.exe / TEMPLATE / MENUBOX.MTF < prev    next >
Text File  |  1994-12-02  |  4KB  |  139 lines

  1. \ ********************************************************
  2. \       Standard menubox template file for TVGen 3.0
  3. \               (c) 1994 BOCIAN Software
  4. \ ********************************************************
  5. \
  6. \ Recursively called procedure building up the menu source
  7. \
  8. @DEFPROC MenuProc
  9. @IFEQUAL %_PARAMETER(2)% %_LEVELID%
  10.   \ Follows menu item
  11.   @IFEQUAL %_PARAMETER(1)% ITEM
  12.     @IFEQUAL %__FIRSTFLAG% YES
  13.       @ASSIGN __FIRSTFLAG NO    
  14.     @ELSE
  15. +  
  16.     @ENDIF
  17.     @IFEQUAL %_PARAM% ''
  18.       @NOCR       *new TMenuItem("%_TEXT%",%_COMMAND%,%_HOTKEY%,%_HELPCTX%)
  19.     @ELSE
  20.       @NOCR       *new TMenuItem("%_TEXT%",%_COMMAND%,%_HOTKEY%,%_HELPCTX%,"%_PARAM%")
  21.     @ENDIF
  22.     @ASSIGN __LEVEL %_LEVELID%
  23.     @NEXTITEM
  24.     @CALL MenuProc %_ITEMTYPE% %__LEVEL%
  25.   @ENDIF (ifequal %_parameter(1)%)
  26.   \ Follows submenu
  27.   @IFEQUAL %_PARAMETER(1)% SUBMENU
  28.     @IFEQUAL %__FIRSTFLAG% YES
  29.  
  30.     @ELSE
  31. +  
  32.     @ENDIF
  33.     *new TMenuItem("%_TEXT%",kbNoKey, new TMenu(
  34.     @ASSIGN __MENUHC[_PARAMETER(2)] %_HELPCTX%
  35.     @ASSIGN __LEVEL %_ITEMID%
  36.     @ASSIGN __FIRSTFLAG YES
  37.     @NEXTITEM
  38.     @CALL MenuProc %_ITEMTYPE% %__LEVEL%
  39. @NOCR     ),%__MENUHC[_PARAMETER(2)]%)
  40.     @ASSIGN __LEVEL %_PARAMETER(2)%
  41.     @CALL MenuProc %_ITEMTYPE% %__LEVEL%
  42.   @ENDIF (ifequal %_parameter(1)%)
  43.   \ Follows divider line
  44.   @IFEQUAL %_PARAMETER(1)% LINE
  45.     @IFEQUAL %__FIRSTFLAG% YES
  46.  
  47.       @ASSIGN __FIRSTFLAG NO    
  48.     @ELSE
  49. +  
  50.     @ENDIF
  51.     @NOCR       newLine()
  52.     @ASSIGN __LEVEL %_LEVELID%
  53.     @NEXTITEM
  54.     @CALL MenuProc %_ITEMTYPE% %__LEVEL%
  55.   @ENDIF (ifequal %_parameter(1)%)
  56. @ELSE
  57.  
  58. @ENDIF (ifequal %_parameter(2)%)
  59. @ENDPROC
  60.  
  61. @DEFPROC MainMenuProc
  62. @IFEQUAL %_PARAMETER(2)% %_LEVELID%
  63.   \ Follows menu item
  64.   @IFEQUAL %_PARAMETER(1)% ITEM
  65.   TMenuItem *top%__COUNTER% = new TMenuItem("%_TEXT%",%_COMMAND%,%_HOTKEY%,%_HELPCTX%);
  66.  
  67.     @ASSIGN __LEVEL %_LEVELID%
  68.     @NEXTITEM
  69.     @INC __COUNTER
  70.     @CALL MainMenuProc %_ITEMTYPE% %_LEVELID%
  71.   @ENDIF
  72.   @IFEQUAL %_PARAMETER(1)% LINE
  73.   TMenuItem *top%__COUNTER% = newLine();
  74.  
  75.     @ASSIGN __LEVEL %_LEVELID%
  76.     @NEXTITEM
  77.     @INC __COUNTER
  78.     @CALL MainMenuProc %_ITEMTYPE% %_LEVELID%
  79.   @ENDIF
  80.   @IFEQUAL %_PARAMETER(1)% SUBMENU
  81.   TMenuItem *top%__COUNTER% = new TMenuItem("%_TEXT%",kbNoKey, new TMenu(
  82.     @ASSIGN __LEVEL %_ITEMID%
  83.     @ASSIGN __MENUHC[_PARAMETER(2)] %_HELPCTX%
  84.     @ASSIGN __FIRSTFLAG YES
  85.     @NEXTITEM
  86.     @CALL MenuProc %_ITEMTYPE% %__LEVEL%
  87.   ),%__MENUHC[_PARAMETER(2)]%);
  88.     @ASSIGN __LEVEL %_PARAMETER(2)%
  89.     @INC __COUNTER
  90.  
  91.     @CALL MainMenuProc %_ITEMTYPE% %__LEVEL%
  92.   @ENDIF
  93. @ENDPROC
  94. \
  95. \
  96. \ Main template sequence
  97. @ASSIGN __MENUFILE %_OUTFILE%.%_EXT%
  98. @ASSIGN __COUNTER 1
  99. @FIRSTITEM
  100. @DEFINEFILE 1 %_OUTFILE%.%_EXT%
  101. @FILE 1
  102. TMenuItem& operator +(TMenuItem& menuItem1, TMenuItem& menuItem2)
  103. {
  104.   TMenuItem *p=&menuItem1;
  105.   while(p->next!=NULL) p=p->next;
  106.   p->next=&menuItem2;
  107.   return menuItem1;
  108. }
  109.  
  110. @ASKFOR __FUNCNAME 'MakeMenuBox' 'MenuBox function name'
  111. TMenuBox *%__FUNCNAME%(TRect r)
  112. {
  113. @CALL MainMenuProc %_ITEMTYPE% %_LEVELID%
  114.  
  115. @DEC __COUNTER
  116. @ASSIGN __LOOPCOUNTER 1
  117.   return (new TMenuBox(r, new TMenu(
  118. @LOOP
  119.   @IFEQUAL %__LOOPCOUNTER% %__COUNTER%
  120.     @IFEQUAL %__LOOPCOUNTER% 1
  121.      *top%__LOOPCOUNTER%),0));
  122.     @ELSE
  123.    + *top%__LOOPCOUNTER%),0));
  124.     @ENDIF
  125.     @EXIT
  126.   @ELSE
  127.     @IFEQUAL %__LOOPCOUNTER% 1
  128.      *top%__LOOPCOUNTER%
  129.     @ELSE
  130.    + *top%__LOOPCOUNTER%
  131.     @ENDIF
  132.     @INC __LOOPCOUNTER
  133.   @ENDIF
  134. @ENDLOOP
  135. }
  136.  
  137. // ************ Generated by TVGen 3.0 **************
  138. @CLOSEFILE 1
  139.