Skin.h
上传用户:tuheem
上传日期:2007-05-01
资源大小:21889k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /**************************************************************************************
  2.  *                                                                                    *
  3.  *                                                                                    *
  4.  **************************************************************************************/
  5. #ifndef _SKIN_H
  6. #define _SKIN_H
  7. #include "MediaPlayback.h"
  8. #include "SkinList.h"
  9. #include "SkinFile.h"
  10. #include "Playa.h"
  11. #include <windows.h>
  12. #include <stdio.h>
  13. #include "../build/win32/resource.h"
  14. /*
  15.  * 定义宽度和长度
  16.  */
  17. #define LOGO_WIDTH  265
  18. #define LOGO_HEIGHT 160
  19. /*
  20.  * 动作的枚举类型
  21.  *
  22.  */
  23. enum {
  24. ACTION_NONE,
  25. ACTION_CLOSE,
  26. ACTION_MINIMIZE,
  27. ACTION_MENU,
  28. ACTION_REWIND,
  29. ACTION_STOP,
  30. ACTION_PLAY,
  31. ACTION_PAUSE,
  32. ACTION_FORWARD,
  33. ACTION_LOAD,
  34. ACTION_MOVING,
  35. ACTION_RESIZE,
  36. ACTION_VOLUME_BAR,
  37. ACTION_VOLUME_CURSOR,
  38. ACTION_PROGRESS_BAR,
  39. ACTION_PROGRESS_CURSOR
  40. };
  41. /*
  42.  * Skin类装载和显示外壳
  43.  */
  44. class Skin {
  45. private:
  46. HWND    hwnd;
  47. HBITMAP skin;
  48. HBITMAP controls;
  49. HBITMAP logo;
  50. HBITMAP bottom;
  51. COLORREF skinColor;
  52. DWORD    compactMode;
  53. RECT    menuButton;
  54. RECT    minimizeButton;
  55. RECT    closeButton;
  56. RECT    rewindButton;
  57. RECT    stopButton;
  58. RECT    playButton;
  59. RECT    pauseButton;
  60. RECT    forwardButton;
  61. RECT    loadButton;
  62. RECT    resizeButton;
  63. RECT    progressBar;
  64. RECT    progressCursor;
  65. RECT    volumeBar;
  66. RECT    volumeCursor;
  67. RECT    videoRect;
  68. BOOL isInsideRect(int x, int y, RECT rect);
  69. int SetVolume(HWND hwnd, int volume);
  70. int SetProgress(HWND hwnd, double progress);
  71. public:
  72. /*
  73.  * 从0到100
  74.  */
  75. int volume;
  76. double progress;
  77. Skin(HINSTANCE hIstance, HWND hwnd);
  78. ~Skin();
  79. int   GetDefaultWidth();
  80. int   GetDefaultHeight();
  81. int   GetProgress();
  82. int   GetVolume();
  83. RECT *GetVideoRect();
  84. int   LoadDefault(HINSTANCE hInst, HWND hwnd);
  85. int   Load(char *directory, HWND hwnd);
  86. int   Display(HWND hwnd, MediaPlayback *playback);
  87. int   UpdateSize(HWND hwnd);
  88. int   SetVolumeCursorX(HWND hwnd, int x);
  89. int   SetProgressCursorX(HWND hwnd, int x);
  90. int   SetProgressValue(HWND hwnd, double progress);
  91. int   SetCompact(int compact);
  92. int   SetActionStart(HWND hwnd, int action);
  93. int   SetActionEnd(HWND hwnd, int action);
  94. int   DisplayFps(HWND hwnd, MediaPlayback *playback);
  95. int   DrawBufferingState(HWND hwnd, DWORD state);
  96. int   DrawTime(HWND hwnd, MediaPlayback *playback);
  97. int   GetAction(int x, int y);
  98. };
  99. #endif