home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l410 / 1.ddi / CDK / PUSH / PUSH.H$ / PUSH.bin
Encoding:
Text File  |  1992-02-13  |  6.1 KB  |  197 lines

  1. //---------------------------------------------------------------------------
  2. // Push.h
  3. //---------------------------------------------------------------------------
  4.  
  5. //---------------------------------------------------------------------------
  6. // Helpful Macros
  7. //---------------------------------------------------------------------------
  8. #define OFFSETIN( struc, field )  ( (USHORT)&( ((struc *)0)->field ) )
  9.  
  10.  
  11. //---------------------------------------------------------------------------
  12. // Resource ID's
  13. //---------------------------------------------------------------------------
  14. // Toolbox bitmap resource IDs.
  15. //---------------------------------------------------------------------------
  16. #define IDBMP_PUSH        8000
  17. #define IDBMP_PUSHDOWN        8001
  18. #define IDBMP_PUSHMONO        8003
  19. #define IDBMP_PUSHEGA        8006
  20.  
  21.  
  22. //---------------------------------------------------------------------------
  23. // PUSH control data and structs
  24. //---------------------------------------------------------------------------
  25. typedef struct tagPUSH
  26. {
  27.     HPIC    hpicUp;
  28.     HPIC    hpicDown;
  29. } PUSH;
  30.  
  31. typedef PUSH FAR * PPUSH;
  32.  
  33. #define PUSHDEREF(hctl)     ((PPUSH)VBDerefControl(hctl))
  34.  
  35.  
  36. //---------------------------------------------------------------------------
  37. // Control Procedure
  38. //---------------------------------------------------------------------------
  39. LONG FAR PASCAL _export PushCtlProc(HCTL, HWND, USHORT, USHORT, LONG);
  40.  
  41.  
  42. #ifndef RC_INVOKED
  43. //---------------------------------------------------------------------------
  44. // Property list
  45. //---------------------------------------------------------------------------
  46. // Define the consecutive indicies for the properties
  47. //---------------------------------------------------------------------------
  48. #define IPROP_PUSH_NAME       0x0000
  49. #define IPROP_PUSH_INDEX      0x0001
  50. #define IPROP_PUSH_PARENT      0x0002
  51. #define IPROP_PUSH_BACKCOLOR      0x0003
  52. #define IPROP_PUSH_LEFT       0x0004
  53. #define IPROP_PUSH_TOP          0x0005
  54. #define IPROP_PUSH_WIDTH      0x0006
  55. #define IPROP_PUSH_HEIGHT      0x0007
  56. #define IPROP_PUSH_ENABLED      0x0008
  57. #define IPROP_PUSH_VISIBLE      0x0009
  58. #define IPROP_PUSH_MOUSEPOINTER   0x000A
  59. #define IPROP_PUSH_CAPTION      0x000B
  60. #define IPROP_PUSH_FONTNAME      0x000C
  61. #define IPROP_PUSH_FONTSIZE      0x000D
  62. #define IPROP_PUSH_FONTBOLD      0x000E
  63. #define IPROP_PUSH_FONTITALIC      0x000F
  64. #define IPROP_PUSH_FONTSTRIKE      0x0010
  65. #define IPROP_PUSH_FONTUNDER      0x0011
  66. #define IPROP_PUSH_DRAG       0x0012
  67. #define IPROP_PUSH_DRAGICON      0x0013
  68. #define IPROP_PUSH_TABINDEX      0x0014
  69. #define IPROP_PUSH_TABSTOP      0x0015
  70. #define IPROP_PUSH_TAG          0x0016
  71. #define IPROP_PUSH_PICTUREUP      0x0017
  72. #define IPROP_PUSH_PICTUREDOWN      0x0018
  73.  
  74. #ifdef CTL_DATA
  75. PROPINFO propinfoPictureUp =
  76. {
  77.     "PictureUp",
  78.     DT_PICTURE | PF_fGetData | PF_fSetCheck | PF_fSetData | PF_fSaveData,
  79.     OFFSETIN(PUSH,hpicUp), 0
  80. };
  81.  
  82. PROPINFO propinfoPictureDown =
  83. {
  84.     "PictureDown",
  85.     DT_PICTURE | PF_fGetData | PF_fSetCheck | PF_fSetData | PF_fSaveData,
  86.     OFFSETIN(PUSH,hpicDown), 0
  87. };
  88.  
  89. PPROPINFO proplistPush[] =
  90. {
  91.     PPROPINFO_STD_CTLNAME,
  92.     PPROPINFO_STD_INDEX,
  93.     PPROPINFO_STD_PARENT,
  94.     PPROPINFO_STD_BACKCOLOR,
  95.     PPROPINFO_STD_LEFT,
  96.     PPROPINFO_STD_TOP,
  97.     PPROPINFO_STD_WIDTH,
  98.     PPROPINFO_STD_HEIGHT,
  99.     PPROPINFO_STD_ENABLED,
  100.     PPROPINFO_STD_VISIBLE,
  101.     PPROPINFO_STD_MOUSEPOINTER,
  102.     PPROPINFO_STD_CAPTION,
  103.     PPROPINFO_STD_FONTNAME,
  104.     PPROPINFO_STD_FONTSIZE,
  105.     PPROPINFO_STD_FONTBOLD,
  106.     PPROPINFO_STD_FONTITALIC,
  107.     PPROPINFO_STD_FONTSTRIKE,
  108.     PPROPINFO_STD_FONTUNDER,
  109.     PPROPINFO_STD_DRAGMODE,
  110.     PPROPINFO_STD_DRAGICON,
  111.     PPROPINFO_STD_TABINDEX,
  112.     PPROPINFO_STD_TABSTOP,
  113.     PPROPINFO_STD_TAG,
  114.     &propinfoPictureUp,
  115.     &propinfoPictureDown,
  116.     NULL
  117. };
  118. #endif    // CTL_DATA
  119.  
  120.  
  121.  
  122. //---------------------------------------------------------------------------
  123. // Event procedure parameter prototypes
  124. //---------------------------------------------------------------------------
  125. #ifdef CTL_DATA
  126. WORD Parms_I2[]   = {ET_I2};            // 1 x I2 parm
  127. WORD Parms_2xI2[] = {ET_I2, ET_I2};        // 2 x I2 parm
  128. WORD Parms_SD[]   = {ET_SD};            // 1 x SD parm
  129.  
  130. EVENTINFO Event_Click =
  131. {
  132.     "Click",
  133.     1,
  134.     2,
  135.     Parms_SD,
  136.     "ButtonCaption as String"
  137. };
  138. #endif    // CTL_DATA
  139.  
  140.  
  141. //---------------------------------------------------------------------------
  142. // Event list
  143. //---------------------------------------------------------------------------
  144. // Define the consecutive indicies for the events
  145. //---------------------------------------------------------------------------
  146. #define EVENT_PUSH_CLICK    0
  147. #define EVENT_PUSH_DRAGDROP    1
  148. #define EVENT_PUSH_DRAGOVER    2
  149. #define EVENT_PUSH_GOTFOCUS    3
  150. #define EVENT_PUSH_KEYDOWN    4
  151. #define EVENT_PUSH_KEYPRESS    5
  152. #define EVENT_PUSH_KEYUP    6
  153. #define EVENT_PUSH_LOSTFOCUS    7
  154.  
  155. #ifdef CTL_DATA
  156. PEVENTINFO eventlistPush[] =
  157. {
  158.     &Event_Click,
  159.     PEVENTINFO_STD_DRAGDROP,
  160.     PEVENTINFO_STD_DRAGOVER,
  161.     PEVENTINFO_STD_GOTFOCUS,
  162.     PEVENTINFO_STD_KEYDOWN,
  163.     PEVENTINFO_STD_KEYPRESS,
  164.     PEVENTINFO_STD_KEYUP,
  165.     PEVENTINFO_STD_LOSTFOCUS,
  166.     NULL
  167. };
  168. #endif    // CTL_DATA
  169.  
  170.  
  171. //---------------------------------------------------------------------------
  172. // Model struct
  173. //---------------------------------------------------------------------------
  174. // Define the control model (using the event and property structures).
  175. //---------------------------------------------------------------------------
  176. #ifdef CTL_DATA
  177. MODEL modelPush =
  178. {
  179.     VB_VERSION,             // VB version being used
  180.     MODEL_fFocusOk | MODEL_fMnemonic,    // MODEL flags
  181.     (PCTLPROC)PushCtlProc,        // Control procedure
  182.     CS_VREDRAW | CS_HREDRAW,        // Class style
  183.     BS_PUSHBUTTON | BS_OWNERDRAW,    // Default Window style
  184.     sizeof(PUSH),            // cbCtlExtra for PUSH structure
  185.     IDBMP_PUSH,             // Palette bitmap ID
  186.     "Push",                // Default control name
  187.     "PushButton",            // Visual Basic class name
  188.     "Button",                // Parent class name
  189.     proplistPush,            // Properties list
  190.     eventlistPush            // Events list
  191. };
  192. #endif    // CTL_DATA
  193.  
  194. #endif  // RC_INVOKED
  195.  
  196. //---------------------------------------------------------------------------
  197.