CPI_InterfacePart.h
上传用户:hxb_1234
上传日期:2010-03-30
资源大小:8328k
文件大小:3k
源码类别:

VC书籍

开发平台:

Visual C++

  1. ////////////////////////////////////////////////////////////////////////////////
  2. ////////////////////////////////////////////////////////////////////////////////
  3. //
  4. // Player verbs
  5. //
  6. // - This will contain all the verbs (commands) for the player - the verb handlers
  7. // are also capable of returning it's skin def name and it's legacy skin def name
  8. //
  9. ////////////////////////////////////////////////////////////////////////////////
  10. ////////////////////////////////////////////////////////////////////////////////
  11. //
  12. typedef void (*wp_Part_Destroy_PrivateData)(CP_HINTERFACEPART hPart);
  13. typedef void (*wp_Part_Draw)(CP_HINTERFACEPART hPart, CPs_DrawContext* pContext);
  14. typedef void (*wp_Part_onMouseIn)(CP_HINTERFACEPART hPart);
  15. typedef void (*wp_Part_onMouseOut)(CP_HINTERFACEPART hPart);
  16. typedef void (*wp_Part_onMouseMove)(CP_HINTERFACEPART hPart, const POINTS ptMouse);
  17. typedef void (*wp_Part_onMouseButton_LDown)(CP_HINTERFACEPART hPart, const POINTS ptMouse);
  18. typedef void (*wp_Part_onMouseButton_LUp)(CP_HINTERFACEPART hPart, const POINTS ptMouse);
  19. typedef void (*wp_Part_onMouseButton_RDown)(CP_HINTERFACEPART hPart, const POINTS ptMouse);
  20. typedef void (*wp_Part_onMouseButton_RUp)(CP_HINTERFACEPART hPart, const POINTS ptMouse);
  21. typedef void (*wp_Part_onTimer)(CP_HINTERFACEPART hPart);
  22. typedef void (*wp_Part_onSongChange)(CP_HINTERFACEPART hPart);
  23. //
  24. #define CPC_IP_ALIGN_LEFT 0x1
  25. #define CPC_IP_ALIGN_RIGHT 0x2
  26. #define CPC_IP_ALIGN_TOP 0x4
  27. #define CPC_IP_ALIGN_BOTTOM 0x8
  28. //
  29. typedef struct _CPs_InterfacePart
  30. {
  31.     // Methods
  32.     wp_Part_Destroy_PrivateData Destroy_PrivateData;
  33.     wp_Part_Draw Draw;
  34.     // Notifies
  35.     wp_Part_onMouseIn onMouseIn;
  36.     wp_Part_onMouseOut onMouseOut;
  37.     wp_Part_onMouseMove onMouseMove;
  38.     wp_Part_onMouseButton_LDown onMouseButton_LDown;
  39.     wp_Part_onMouseButton_LUp onMouseButton_LUp;
  40.     wp_Part_onMouseButton_RDown onMouseButton_RDown;
  41.     wp_Part_onMouseButton_RUp onMouseButton_RUp;
  42.     wp_Part_onTimer onTimer;
  43.     wp_Part_onSongChange onSongChange;
  44.     // Data
  45.     RECT m_rLocation;
  46.     DWORD m_dwAlign;
  47.     BOOL m_bRectAlignMode;
  48.     RECT m_rPosition;
  49.     POINT m_ptOffset;
  50.     SIZE m_szSize;
  51.     CP_HINTERFACE m_hOwner;
  52.     void* m_pPrivateData;
  53.     // Link to next part
  54.     CP_HINTERFACEPART m_hNext;
  55. } CPs_InterfacePart;
  56. //
  57. //
  58. ////////////////////////////////////////////////////////////////////////////////
  59. ////////////////////////////////////////////////////////////////////////////////
  60. //
  61. void IP_Invalidate(CP_HINTERFACEPART hPart);
  62. void IP_Destroy(CP_HINTERFACEPART hPart);
  63. CP_HINTERFACEPART IP_Create_CommandButton(wp_Verb pfnVerb, CPs_Image_WithState* pImageWS);
  64. CP_HINTERFACEPART IP_Create_Indicator(const char* pcName);
  65. //
  66. ////////////////////////////////////////////////////////////////////////////////