home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / powervww / pvcmd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-05  |  11.8 KB  |  313 lines

  1. //  ____________________________________________________
  2. // |                                                    |
  3. // |  Project:     POWER VIEW INTERFACE                 |
  4. // |  File:        PVCMD.H                              |
  5. // |  Compiler:    WPP386 (10.6)                        |
  6. // |                                                    |
  7. // |  Subject:     Commands manager interface           |
  8. // |                                                    |
  9. // |  Author:      Emil Dotchevski                      |
  10. // |____________________________________________________|
  11. //
  12. // E-mail: zajo@geocities.com
  13. // URL:    http://www.geocities.com/SiliconValley/Bay/3577
  14.  
  15. //LOCAL COMMANDS
  16.  
  17. /*
  18.   Description:
  19.     The local commands can be used only inside a window item. Every window
  20.     has its own enable flags set. When you enable or disable a command
  21.     it is enabled/disabled in current window's local set only, and another
  22.     windows will keep their own flags unchanged. It is OK to use commands
  23.     with one and the same code in two or more different windows.
  24.  
  25.   Notes:
  26.     - Local command 0 is special and if disabled, it disables all the local
  27.       commands above or equal to cmUSER00
  28.     - Command codes above 0xD0 are reserved for Power View internal use only.
  29.       It is OK to use some pre-defined commands such as cmOK, cmCANCEL,
  30.       cmYES, etc. but it is not recommended to define new codes above 0xD0.
  31.     - Command codes above 0x7F are 'public' and such codes must be unique
  32.       for entire application.
  33.     - Command codes below 0x80 are 'private' and such codes may not be unique.
  34.     - Use pre-defined cmUSER00..cmUSER99 commands for your private commands.
  35. */
  36.  
  37. #ifndef _PVCMD_H
  38. #define _PVCMD_H
  39.  
  40. #define cmWIN_RESTORE   0x01
  41. #define cmWIN_CLOSE     0x02
  42. #define cmWIN_MOVE      0x03
  43. #define cmWIN_SIZE      0x04
  44. #define cmWIN_MINIMIZE  0x05
  45. #define cmWIN_MAXIMIZE  0x06
  46. #define cmWIN_ON_TOP    0x07
  47.  
  48. #define cmOK            0xD0
  49. #define cmCANCEL        0xD1
  50. #define cmYES           0xD2
  51. #define cmNO            0xD3
  52. #define cmABORT         0xD4
  53. #define cmRETRY         0xD5
  54. #define cmOPEN          0xD6
  55. #define cmCLOSE         0xD7
  56. #define cmDELETE        0xD8
  57. #define cmUNDO          0xD9
  58. #define cmSAVE          0xDA
  59. #define cmSAVE_AS       0xDB
  60. #define cmSTAMP_CHECK   0xDC
  61. #define cmPRINT         0xDD
  62. #define cmCUT           0xDE
  63. #define cmCOPY          0xDF
  64. #define cmPASTE         0xE0
  65. #define cmCLEAR         0xE1
  66. #define cmUP_ARROW      0xE2
  67. #define cmDOWN_ARROW    0xE3
  68. #define cmLEFT_ARROW    0xE4
  69. #define cmRIGHT_ARROW   0xE5
  70. #define cmSCROLL_BAR    0xE6
  71. #define cmLABEL_FOCUSED 0xE7
  72.  
  73. //USER AVAILABLE LOCAL COMMANDS
  74.  
  75. #define cmUSER99        0x7F
  76. #define cmUSER98  ( cmUSER99- 1 )
  77. #define cmUSER97  ( cmUSER99- 2 )
  78. #define cmUSER96  ( cmUSER99- 3 )
  79. #define cmUSER95  ( cmUSER99- 4 )
  80. #define cmUSER94  ( cmUSER99- 5 )
  81. #define cmUSER93  ( cmUSER99- 6 )
  82. #define cmUSER92  ( cmUSER99- 7 )
  83. #define cmUSER91  ( cmUSER99- 8 )
  84. #define cmUSER90  ( cmUSER99- 9 )
  85. #define cmUSER89  ( cmUSER99-10 )
  86. #define cmUSER88  ( cmUSER99-11 )
  87. #define cmUSER87  ( cmUSER99-12 )
  88. #define cmUSER86  ( cmUSER99-13 )
  89. #define cmUSER85  ( cmUSER99-14 )
  90. #define cmUSER84  ( cmUSER99-15 )
  91. #define cmUSER83  ( cmUSER99-16 )
  92. #define cmUSER82  ( cmUSER99-17 )
  93. #define cmUSER81  ( cmUSER99-18 )
  94. #define cmUSER80  ( cmUSER99-19 )
  95. #define cmUSER79  ( cmUSER99-20 )
  96. #define cmUSER78  ( cmUSER99-21 )
  97. #define cmUSER77  ( cmUSER99-22 )
  98. #define cmUSER76  ( cmUSER99-23 )
  99. #define cmUSER75  ( cmUSER99-24 )
  100. #define cmUSER74  ( cmUSER99-25 )
  101. #define cmUSER73  ( cmUSER99-26 )
  102. #define cmUSER72  ( cmUSER99-27 )
  103. #define cmUSER71  ( cmUSER99-28 )
  104. #define cmUSER70  ( cmUSER99-29 )
  105. #define cmUSER69  ( cmUSER99-30 )
  106. #define cmUSER68  ( cmUSER99-31 )
  107. #define cmUSER67  ( cmUSER99-32 )
  108. #define cmUSER66  ( cmUSER99-33 )
  109. #define cmUSER65  ( cmUSER99-34 )
  110. #define cmUSER64  ( cmUSER99-35 )
  111. #define cmUSER63  ( cmUSER99-36 )
  112. #define cmUSER62  ( cmUSER99-37 )
  113. #define cmUSER61  ( cmUSER99-38 )
  114. #define cmUSER60  ( cmUSER99-39 )
  115. #define cmUSER59  ( cmUSER99-40 )
  116. #define cmUSER58  ( cmUSER99-41 )
  117. #define cmUSER57  ( cmUSER99-42 )
  118. #define cmUSER56  ( cmUSER99-43 )
  119. #define cmUSER55  ( cmUSER99-44 )
  120. #define cmUSER54  ( cmUSER99-45 )
  121. #define cmUSER53  ( cmUSER99-46 )
  122. #define cmUSER52  ( cmUSER99-47 )
  123. #define cmUSER51  ( cmUSER99-48 )
  124. #define cmUSER50  ( cmUSER99-49 )
  125. #define cmUSER49  ( cmUSER99-50 )
  126. #define cmUSER48  ( cmUSER99-51 )
  127. #define cmUSER47  ( cmUSER99-52 )
  128. #define cmUSER46  ( cmUSER99-53 )
  129. #define cmUSER45  ( cmUSER99-54 )
  130. #define cmUSER44  ( cmUSER99-55 )
  131. #define cmUSER43  ( cmUSER99-56 )
  132. #define cmUSER42  ( cmUSER99-57 )
  133. #define cmUSER41  ( cmUSER99-58 )
  134. #define cmUSER40  ( cmUSER99-59 )
  135. #define cmUSER39  ( cmUSER99-60 )
  136. #define cmUSER38  ( cmUSER99-61 )
  137. #define cmUSER37  ( cmUSER99-62 )
  138. #define cmUSER36  ( cmUSER99-63 )
  139. #define cmUSER35  ( cmUSER99-64 )
  140. #define cmUSER34  ( cmUSER99-65 )
  141. #define cmUSER33  ( cmUSER99-66 )
  142. #define cmUSER32  ( cmUSER99-67 )
  143. #define cmUSER31  ( cmUSER99-68 )
  144. #define cmUSER30  ( cmUSER99-69 )
  145. #define cmUSER29  ( cmUSER99-70 )
  146. #define cmUSER28  ( cmUSER99-71 )
  147. #define cmUSER27  ( cmUSER99-72 )
  148. #define cmUSER26  ( cmUSER99-73 )
  149. #define cmUSER25  ( cmUSER99-74 )
  150. #define cmUSER24  ( cmUSER99-75 )
  151. #define cmUSER23  ( cmUSER99-76 )
  152. #define cmUSER22  ( cmUSER99-77 )
  153. #define cmUSER21  ( cmUSER99-78 )
  154. #define cmUSER20  ( cmUSER99-79 )
  155. #define cmUSER19  ( cmUSER99-80 )
  156. #define cmUSER18  ( cmUSER99-81 )
  157. #define cmUSER17  ( cmUSER99-82 )
  158. #define cmUSER16  ( cmUSER99-83 )
  159. #define cmUSER15  ( cmUSER99-84 )
  160. #define cmUSER14  ( cmUSER99-85 )
  161. #define cmUSER13  ( cmUSER99-86 )
  162. #define cmUSER12  ( cmUSER99-87 )
  163. #define cmUSER11  ( cmUSER99-88 )
  164. #define cmUSER10  ( cmUSER99-89 )
  165. #define cmUSER09  ( cmUSER99-90 )
  166. #define cmUSER08  ( cmUSER99-91 )
  167. #define cmUSER07  ( cmUSER99-92 )
  168. #define cmUSER06  ( cmUSER99-93 )
  169. #define cmUSER05  ( cmUSER99-94 )
  170. #define cmUSER04  ( cmUSER99-95 )
  171. #define cmUSER03  ( cmUSER99-96 )
  172. #define cmUSER02  ( cmUSER99-97 )
  173. #define cmUSER01  ( cmUSER99-98 )
  174. #define cmUSER00  ( cmUSER99-99 )
  175.  
  176. //GLOBAL COMMANDS
  177.  
  178. /*
  179.   Description:
  180.     A global command differs from a local in the code: local command codes
  181.     are from 0x00 to 0xFF, and the global codes are above or equal to 0x100.
  182.     Only low char is used for identification. Only 256 local and 256 global
  183.     commands are available.
  184.  
  185.   Notes:
  186.     - Global command 0 is special and if disabled, it disables all other
  187.       global commands.
  188.     - Beside the local commands flags, global commands flags are static and
  189.       are valid for all the items, no matter what window is currently active.
  190.     - Global codes above 0xCF (low char!) are reserved for Power View internal
  191.       use only. It is not recommended to disable or use such the commands.
  192.     - You can use pre-defined basic menu commands, such as cmFILE_NEW,
  193.       cmFILE_OPEN, etc. in your application.
  194. */
  195.  
  196. //STANDARD ITEM COMMANDS
  197.  
  198. #define cmVALID                0x10D0 //check window validity
  199. #define cmHELP                 0x10D1 //show help for the item
  200. #define cmSELECT               0x10D2 //select item
  201. #define cmFOCUS                0x10D3 //focus item
  202. #define cmENABLE               0x10D4 //enable item
  203. #define cmDISABLE              0x10D5 //disable item
  204. #define cmHIDE                 0x10D6 //hide item
  205. #define cmSHOW                 0x10D7 //show (unhide) item
  206. #define cmDONE                 0x10D8 //dispose item
  207. #define cmARRANGING            0x10D9 //item is about to be tile/casc
  208. #define cmCAN_DROP             0x10DA //can item handle a drop on it
  209. #define cmDROP                 0x10DB //drop an object on the item
  210.  
  211. //SPECIFIC ITEMS COMMANDS
  212.  
  213. #define cmBTN_GRAB_DEFAULT     0x10DC //button has been selected
  214. #define cmBTN_RELEASE_DEFAULT  0x10DD //non-default btn deselected
  215. #define cmRADIO_DEPRESS        0x10DE //radio btns release command
  216. #define cmDLG_RESET            0x10DF //dialog is about to (re)exec
  217. #define cmDLG_RECORD_HISTORY   0x10E0 //sent to the items if dlg ok
  218.  
  219. //MENU COMMANDS
  220.  
  221. #define cmMENU_SELECTION       0x10E1 //menu entry selected
  222. #define cmMENU_OPEN_SUBMENU    0x10E2 //open hilighted submenu
  223. #define cmMENU_CLOSE_SUBMENU   0x10E3 //close any open submenu
  224. #define cmMENU_SELECTION_MADE  0x10E4 //selection made, close menu
  225. #define cmMENU_CANCELLED       0x10E5 //cancelled, close the menu
  226.  
  227. //APPLICATION COMMANDS
  228.  
  229. #define cmAPP_SCREEN_SAVER     0x10E6 //activate screen saver
  230. #define cmAPP_COMMANDS_CHANGED 0x10E7 //command set has been changed
  231. #define cmAPP_REDRAW           0x10E8 //refresh screen
  232. #define cmAPP_QUIT             0x10E9 //quit the application
  233.  
  234. //STANDARD FILE MENU COMMANDS
  235.  
  236. #define cmFILE_NEW             0x10B0     //open a new file
  237. #define cmFILE_OPEN            0x10B1     //select a file to open
  238. #define cmFILE_SAVE            cmSAVE     //save current file (Local)
  239. #define cmFILE_SAVE_AS         cmSAVE_AS  //save file as... (Local)
  240. #define cmFILE_SAVE_ALL        0x10B2     //save all files
  241. #define cmSAVE_ALL             0x10B2
  242. #define cmFILE_PRINT           cmPRINT    //print current file (Local)
  243. #define cmFILE_PRINTER_SETUP   0x10B3     //printer setup dialog
  244. #define cmFILE_DOS_SHELL       0x10B4     //enter DOS shell
  245. #define cmFILE_EXIT            cmAPP_QUIT //exit the application
  246.  
  247. //STANDARD OPTIONS MENU COMMANDS
  248.  
  249. #define cmOPTIONS_OPEN         0x10B5 //read options from a file
  250. #define cmOPTIONS_SAVE         0x10B6 //save current options
  251. #define cmOPTIONS_SAVE_AS      0x10B7 //save current options as...
  252.  
  253. //STANDARD WINDOW MENU COMMANDS
  254.  
  255. #define cmWINDOW_TILE          0x10B8        //tile windows in desktop
  256. #define cmWINDOW_CASCADE       0x10B9        //cascade windows in desktop
  257. #define cmWINDOW_ARRANGE_ICONS 0x10BA        //arrange iconized windows
  258. #define cmWINDOW_CLOSE_ALL     0x10BB        //close all wins in desktop
  259. #define cmWINDOW_REFRESH       cmAPP_REDRAW  //refresh application screen
  260. #define cmWINDOW_NEXT          0x10BC        //select next win in desktop
  261. #define cmWINDOW_PREVIOUS      0x10BD        //select prev win in desktop
  262. #define cmWINDOW_CLOSE         cmWIN_CLOSE   //close current win (Local)
  263. #define cmWINDOW_LIST          0x10BE        //invoke Windows List dialog
  264. #define cmWINDOW_TITLE         0x10BF        //toggle application title
  265. #define cmWINDOW_TOOLBAR       0x10C0        //toggle application toolbar
  266. #define cmWINDOW_TOOLBOX       0x10C1        //toggle application toolbox
  267.  
  268. //STANDARD HELP MENU COMMANDS
  269.  
  270. #define cmHELP_CONTENTS        0x10C2 //show help contents
  271. #define cmHELP_INDEX           0x10C3 //show help index
  272. #define cmHELP_SEARCH          0x10C4 //invoke Search Topic dialog
  273. #define cmHELP_PREVIOUS        0x10C5 //show previous help topic
  274. #define cmHELP_USING           0x10C6 //show help on using help
  275. #define cmHELP_ABOUT           0x10C7 //invoke About dialog
  276.  
  277. //TETRIS COMMANDS
  278.  
  279. #define cmTETRIS_TIMER         0x10C8 //used by tetris internally
  280.  
  281. class Tcommands: public Tset
  282. {
  283.   public:
  284.     static Tset global;
  285.     Tset *local;
  286.     Tcommands( void );
  287.     Tcommands( Tset &_local );
  288.     void operator ~ ( void ); //clear local commands
  289.     void operator ! ( void ); //[0..255] local commands
  290.  
  291.   friend Tcommands& operator << ( Tcommands &set, uint member );
  292.   friend Tcommands& operator >> ( Tcommands &set, uint member );
  293.   friend Tcommands& operator << ( Tcommands &set, Tcommands &set1 );
  294.   friend Tcommands& operator >> ( Tcommands &set, Tcommands &set1 );
  295.   friend int operator &( Tcommands &set, uint member );
  296.   friend int operator &( uint member, Tcommands &set );
  297. };
  298.  
  299. inline int operator & ( uint member, Tcommands &set )
  300. {
  301.   return set&member;
  302. }
  303.  
  304. #endif //_PVCMD_H
  305.  
  306. boolean cenabled( uint cmd );
  307. boolean cdisabled( uint cmd );
  308. void cenable( uint cmd );
  309. void cdisable( uint cmd );
  310. void cstate( uint cmd, boolean enable );
  311. void set_cmd( Tcommands *cmd );
  312. Tcommands *get_cmd( void );
  313.