home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 July / Chip_2003-07_cd1.bin / sharewar / zoom / zplay280.exe / Skin / plasticblue.skn < prev    next >
Text File  |  2002-09-05  |  34KB  |  671 lines

  1. Plastic Blue Media Skin (sample) by Blight
  2. // First line must be the description... don't put any comments before it.
  3. //
  4. //
  5. // This file is file is a semi-tutorial on how to create Zoom Player skins.
  6. // It shows you the exact structure used to create the default media skin.
  7. // It is only a sample file and is not required for Zoom Player to operate.
  8. //
  9. //
  10. // Constants:
  11. //
  12. // <WinWidth>       - Width in Pixels of Window
  13. // <WinHeight>      - Height in Pixels of Window
  14. // <WinHalfWidth>   - Width in Pixels of Window divided by 2 (useful for screen-centering)
  15. // <WinHalfHeight>  - Height in Pixels of Window divided by 2 (useful for screen-centering)
  16. // <VidWidth>       - Width in Pixels of Video Area
  17. // <VidHeight>      - Height in Pixels of Video Area
  18. // <ARWidth>        - Width in Pixels of Video Area with Aspect Ratio Adjustment
  19. // <ARHeight>       - Height in Pixels of Video Area with Aspect Ratio Adjustment
  20. // <FileName>       - Name of Currently loaded file (full path)
  21. // <FileTitle>      - Name of Currently loaded file (file name+extension)
  22. // <FileBase>       - Name of Currently loaded file (file name only, no extension or path)
  23. // <cBarWidth>      - Width in Pixels of Control Bar after deducting the space used by the buttons
  24. // <cBarHeight>     - Height in Pixels of Control Bar
  25. // <cBarHalfWidth>  - Width in Pixels of Control Bar after deducting the space used by the buttons divided by 2
  26. // <cBarHalfHeight> - Height in Pixels of Control Bar divided by 3
  27. // <ovColor>        - Overlay Color RGB (can be used for transparency with the Control Bar)
  28. // <Time>           - Current Time Display
  29. // <TimeRemain>     - Time Remaining
  30. // <Duration>       - Total Duration of playing content
  31. // <DVDChapter>     - Current DVD Chapter
  32. // <DVDTitle>       - Current DVD Title
  33. //
  34. // Vars:
  35. //
  36. // SkinFileName   - Name of non-compressed (8bit/24bit) BMP image that contains all the skin graphics
  37. // iWinWidth      - Initial Window Width
  38. // iWinHeight     - Initial Window Height
  39. // iVidWidth      - Initial Video Width
  40. // iVidHeight     - Initial Video Height
  41. // iVidLeft       - Initial Video Position in pixels from left position of Window
  42. // iVidTop        - Initial Video Position in pixels from top position of Window
  43. // iMinWidth      - Minimum Video Width (It's recommended keep the minimum Width/Height to a 4:3 aspect ratio)
  44. // iMinHeight     - Minimum Video Height
  45. // iTransColor    - Hex RGB Value of the color used for Window Transparency
  46. // VolLeft        - Left Position of Volume bar witin window
  47. // VolTop         - Top Position of Volume bar witin window
  48. // RateLeft       - Left Position of Rate bar witin window
  49. // RateTop        - Top Position of Rate bar witin window
  50. // tLineWidth     - TimeLine Width
  51. // tLineHeight    - TimeLine Height
  52. // tLineLeft      - TimeLine position in pixels from left position of Window
  53. // tLineTop       - TimeLine position in pixels from top position of Window
  54. // tLineColor     - TimeLine Color (Hex RGB Value, like on web pages.  Not required if a bitmap is set using TimeLineFG)
  55. // tLineFontSize  - TimeLine Font Size
  56. // tLineFontYOfs  - TimeLine Font Y-Offset in pixels (can be negative value)
  57. // tLineFontFace  - TimeLine Font Name
  58. // tLineFontColor - TimeLine Font Color
  59. // tLineFontStyle - Bold and Italic, example : tLineFontStyle = (Bold|Italic), To disable style use (None) as value.
  60. // cBarFontSize   - Control Bar Font Size
  61. // cBarFontYOfs   - Control Bar Font Y-Offset in pixels (can be negative value)
  62. // cBarFontFace   - Control Bar Font Name
  63. // cBarFontColor  - Control Bar Font Color
  64. // cBarFontStyle  - Bold and Italic, example : CBarFontStyle = (Bold|Italic), To disable style use (None) as value.
  65. // cBarButWidth   - Control Bar Button Width (must be set before any buttons are added to the control bar)
  66. // cBarButHeight  - Control Bar Button Height (same as width, but also sets the height of the control bar)
  67. // cBarTLColor    - Control Bar TimeLine Color (Not required if a bitmap is set using TimeLineCBarFG)
  68. // cBarTLWidth    - Width of the Control Bar time line
  69. // cBarTLHeight   - Height of the Control Bar time line
  70. // cBarTLLeft     - Control Bar TimeLine position in pixels from left position of Control Bar
  71. // cBarTLTop      - Control Bar TimeLine position in pixels from top position of Control Bar
  72. //
  73. //
  74. //
  75. // Functions:
  76. //
  77. //
  78. // CopyBitmap(SrcX,SrcY,Width,Height,DestX,DestY)
  79. //
  80. //   - Copy a bitmap from the skin image to the user interface.
  81. //
  82. //
  83. // CopyStretchedBitmap(SrcX,SrcY,SrcWidth,SrcHeight,DestX,DestY,SrcWidth,SrcHeight)
  84. //
  85. //   - Copy a bitmap from the skin image to the user interface stretching it to fit the specified rectangle.
  86. //     This function is rather CPU intensive.
  87. //
  88. //
  89. // CopyTransBitmap(SrcX,SrcY,Width,Height,DestX,DestY,RGBColor)
  90. //
  91. //   - Copy a Color Keyed transparent bitmap from the skin image to the user interface.
  92. //     The color specified by the RGBColor is considered transparent and won't be copied
  93. //     This function can be CPU intensive if used extensively.
  94. //
  95. //
  96. // CopyMaskedBitmap(SrcX,SrcY,Width,Height,DestX,DestY)
  97. //
  98. //   - Copy an Alpha Masked bitmap from the skin image to the user interface.
  99. //     An Alpha mask is a gray representation of the image where black means no
  100. //     copying to be done and white means full copying.  Any gray value in between
  101. //     determines what percentage to mix between the background and foreground bitmaps.
  102. //     The Alpha mask must the aligned to the right of the source image and match it's size.
  103. //     This function can be CPU intensive if used extensively.
  104. //
  105. //
  106. // TileBitmapV(SrcX,SrcY,Width,Height,DestX,DestY,FillHeight)
  107. //
  108. //   - Tile bitmap vertically to fill a specific number of pixels.
  109. //
  110. //
  111. // TileBitmapH(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth)
  112. //
  113. //   - Tile bitmap horizontally to fill a specific number of pixels.
  114. //
  115. //
  116. // TileBitmapA(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth,FillHeight)
  117. //
  118. //   - Tile bitmap to fill an area of specific number of pixels.
  119. //
  120. //
  121. // FillRect(DestX,DestY,Width,Height,RGBColor)
  122. //
  123. //   - Fill a rectangle with a specific Hex RGB color
  124. //     (000000=Black, FF0000=Red, 00FF00=Green, 0000FF=Blue, FFFFFF=White, exactly like in HTML).
  125. //
  126. //
  127. // GradientRectH(DestX,DestY,Width,Height,RGBColor1,RGBColor2)
  128. //
  129. //   - Fill a rectangle with a horizontal gradient from RGBColor1 to RGBColor2
  130. //     Doing gradient fills may be CPU intensive.
  131. //
  132. //
  133. // GradientRectV(DestX,DestY,Width,Height,RGBColor1,RGBColor2)
  134. //
  135. //   - Fill a rectangle with a vertical gradient from RGBColor1 to RGBColor2
  136. //     Doing gradient fills may be CPU intensive.
  137. //
  138. //
  139. // TimeLineBG(SrcX,SrcY,Width)
  140. //
  141. //   - Bitmap positioning used for the User Interface TimeLine background, height must be the same as tLineHeight.
  142. //
  143. //
  144. // TimeLineFG(SrcX,SrcY,Width)
  145. //
  146. //   - Bitmap positioning used for the User Interface TimeLine foreground, height must be the same as tLineHeight.
  147. //     Using this function enables the Time Line (makes it visible) on the main user interface.
  148. //     Using this function means that a bitmap will be used instead of a color for the action portion of the timeline.
  149. //
  150. //
  151. // TimeLineActive(SrcX,SrcY,Width,Height,XOffset,YOffset)
  152. //
  153. //   - This is an optional function if bitmapped TimeLine is used.  It allows you to specify a bitmap to be drawn
  154. //     at the currently active timeline position.  SrcX, SrcY and Width are pretty self explanetory.  The XOffset
  155. //     and YOffset allows you to specify how many pixels to move the bitmap to the right and down (by default the
  156. //     bitmap is drawn at the top of the timeline and to the left of the currently active position (taking into
  157. //     account the width of the bitmap).
  158. //
  159. //
  160. // TimeLineStart(SrcX,SrcY,Width)
  161. //
  162. //   - Specify a start bitmap for the timeline, the bitmap height should match the timeline bitmap height and like
  163. //     with buttons, it should actually be comprised of two bitmaps drawn next to each other (on the right) of the
  164. //     active and inactive timeline states (highlighted/non-highlighted).  The width specified is only of the first
  165. //     image, the inactive image on the right should be the same width and height.
  166. //
  167. //
  168. // TimeLineEnd(SrcX,SrcY,Width)
  169. //
  170. //   - Same as TimeLineStart, but for the end (right side) of the timeline.
  171. //
  172. //
  173. // VolumeData(SrcX,SrcY,Width,Height)
  174. //
  175. //   - Bitmap positioning used for the User Interface Volume Bar,
  176. //     Using this function enables the Volume Bar (makes it visible).
  177. //     This function has been replaced by "VolumeExData" and only listed for backward compatibility.
  178. //
  179. //
  180. // VolumeExData(SrcX=Value,SrcY=Value,Width=Value,Height=Value,Images=Value,Vertical=True/False)
  181. //
  182. //   - Parameters:
  183. //     SrcX          : X-Offset from source image to the location Bitmap data.
  184. //     SrcY          : Y-Offset from source image to the location Bitmap data.
  185. //     Width         : Width of a Single Volume Image.
  186. //     Height        : Width of a Single Volume Image.
  187. //     Images        : Number of Volume Images, Image are expected to be drawn aligned to the bottom of each image.
  188. //     Vertical      : Can be either "True" or "False", determines how the volume reacts to a user click (horizontally or vertically).
  189. //
  190. //     The Parameter order isn't important, just that the values are being passed.  The Vertical
  191. //     parameter is optional, by default the volume bar is horizontal.
  192. //     Example:
  193. //     VolumeExData(SrcX=208,SrcY=0,Width=42,Height=14,Images=12,Vertical=False)
  194. //
  195. //
  196. // RateData(SrcX,SrcY,Width,Height)
  197. //
  198. //   - Bitmap positioning used for the User Interface Rate Bar,
  199. //     make sure you have 7 images drawn for the various volume
  200. //     levels, as seen in the defaultskin.bmp file.
  201. //     Using this function enables the Rate Bar (makes it visible).
  202. //
  203. //
  204. // ResizeBox(XOfs,YOfs,Width,Height,CursorType)
  205. //   - If you have transparent skin where the edges of the window are transparent,
  206. //     you may want to define a "ResizeBox".  When the mouse moves over the
  207. //     ResizeBox designated area, the cursor will change to a resize cursor and
  208. //     allow the forum to be resized from that position.
  209. //     The Values of CursorType can be:
  210. //     0 - Bottom Right Corner
  211. //     1 - Bottom Left Corner
  212. //     2 - Top Right Corner
  213. //     3 - Top Left Corner
  214. //
  215. //     Example:
  216. //     ResizeBox(<WinWidth>-40,<WinHeight>-40,10,10,0)
  217. //
  218. //
  219. // DrawText(DestX,DestY,FontName,FontSize,FontColorRGB,FontStyle,Text,Case)
  220. //
  221. //   - This function has been replaced with "DrawExText", see below.
  222. //     This function doesn't support dynamic constants properly, so make sure you use "DrawExText".
  223. //   - Draw text anywhere on the user interface.
  224. //     The FontStyle has the same format as the tLineFontStyle.
  225. //
  226. //     The Case entry can have the following values:
  227. //     0 - Text unchanged
  228. //     1 - Text converted to lowercase
  229. //     2 - Text converted to uppercase
  230. //     3 - First letter of text converted to uppercase, rest lowercase.
  231. //
  232. //
  233. // DrawExText(DestX=Value,DestY=Value,Width=Value,Height=Value,Align=Value,Case=Value,WordWrap=Value
  234. //           ,FontName=Value,FontSize=Value,FontColor=Value,FontStyle=Value,Text=Value)
  235. //
  236. //   - Parameters:
  237. //     DestX         : Destination X-Offset on the Skin.
  238. //     DestY         : Destination Y-Offset on the Skin.
  239. //     Width         : Maximum Width of Text (used for clipping).
  240. //     Height        : Maximum Height of Text (used for clipping).
  241. //     Align         : Text Alignment, values can be "Left, Center or Right" (Default "Left").
  242. //     Case          : Uppercase/Lowercase Structure, values can be "None,Lower,Upper,UpFirst" (Default "None").
  243. //     WordWrap      : Value can be True or False, if True and the text doesn't fit the width, it is word wrapped (Default "False").
  244. //     FontName      : The Name of the Font, i.e. Arial, Times New Romand, etc...
  245. //     FontSize      : Size of Font (approximate height in pixels).
  246. //     FontColor     : RGB value indicating the Font Color.
  247. //     FontStyle     : Bold, Italic, Both or None, if both then separated by "|" (i.e. "Bold|Italic") (Default "None").
  248. //     Text          : String that should be displayed, can including dynamic content by using Constants (see above).
  249. //
  250. //   - This function allows you to draw text anywhere on the user interface.  The Text content is
  251. //     updated every time the user interface is resized and once per second (while not in fullscreen).
  252. //     This allows you to draw dynamic text such as Time, DVD Chapter, etc...
  253. //     Example:
  254. //     DrawExText(DestX=5,DestY=5,Width=<WinWidth>-10,Height=20,Align=Center,Case=UpFirst,FontName=Arial,FontSize=11,FontColor=FFFFFF,FontStyle=Bold,Text=<FileName>)
  255. //
  256. //
  257. // CreateButton(SrcX,SrcY,Width,Height,DestX,DestY,Function,Hint,Transparent)
  258. //
  259. //   - This function has been replaced with "CreateExButton", see below.
  260. //   - Creates a button with a function assigned with the function setting,
  261. //     possible function values are:
  262. //     000 - fnPlay           - Play / Pause
  263. //     001 - fnPause          - Pause
  264. //     002 - fnStop           - Stop
  265. //     003 - fnStopToFirst    - Stop to First Track
  266. //     004 - fnNextChapter    - Go to Next Chapter (Internal or OGM in Media mode and DVD Bookmark in DVD mode)
  267. //     005 - fnPrevChapter    - Go to Previous Chapter (Internal or OGM or OGM in Media mode and DVD Bookmark in DVD mode)
  268. //     006 - fnNextTrack      - Go to Next Track
  269. //     007 - fnPrevTrack      - Go to Previous Track
  270. //     008 - fnNextFrame      - Frame Step Forward
  271. //     009 - fnPrevFrame      - Frame Step Backward
  272. //     010 - fnNextVid        - Play Next Video in current directory
  273. //     011 - fnPrevVid        - Play Previous Video in current directory
  274. //     012 - fnSkipForward    - Skip forward a specified number of seconds
  275. //     013 - fnSkipBackward   - Skip backward a specified number of seconds
  276. //     014 - fnJumpForward    - Jump forward a specified number of seconds
  277. //     015 - fnJumpBackward   - Jump backward a specified number of seconds
  278. //     016 - fnSeekForward    - Seek forward a specified number of seconds
  279. //     017 - fnSeekBackward   - Seek backward a specified number of seconds
  280. //     018 - fnFastForward    - Play in Fast Forward
  281. //     019 - fnRewind         - Rewind Playback (only in DVD mode)
  282. //     020 - fnSlowMotion     - Play in Slow Motion
  283. //     021 - fnHalfFF         - Half Fast forward speed
  284. //     022 - fnHalfSM         - Half Slow Motion speed
  285. //     023 - fnVolUp          - Increase Volume
  286. //     024 - fnVolDown        - Decrease Volume
  287. //     025 - fnMute           - Mute Volume (ON/OFF)
  288. //     026 - fnABRepeat       - Start, Stop and Cancel AB-Repeat
  289. //     027 - fnPlayEndCycle   - Cycle through the "On Play Complete" values
  290. //     028 - fnZoomAxis       - Toggles the Zoom Axis (used with Zoom-In / Zoom-Out)
  291. //     029 - fnZoomIn         - Zoom into video (enlarge video area)
  292. //     030 - fnZoomOut        - Zoom out of video (shrink video area)
  293. //     031 - fnZoomInWidth    - Stretch the video width
  294. //     032 - fnZoomOutWidth   - Shrink the video width
  295. //     033 - fnZoomInHeight   - Stretch the video height
  296. //     034 - fnZoomOutHeight  - Shrink the video height
  297. //     035 - fnZoom           - Zoom Mode
  298. //     036 - fnFullScreen     - Fullscreen Mode
  299. //     037 - fnFitSource      - Resize video to the original source size
  300. //     038 - fnMax            - Maximize video/window to fullscreen
  301. //     039 - fnMinimize       - Minimize Player
  302. //     040 - fnARCycle        - Cycle through Aspect Ratio settings
  303. //     041 - fnRevARCycle     - Reverse Cycle through Aspect Ratio settings
  304. //     042 - fnBar            - Control Bar Show / Hide
  305. //     043 - fnOSD            - On Screen Display Toggle (ON/OFF)
  306. //     044 - fnOpen           - Open File
  307. //     045 - fnOpenDir        - Open Directory
  308. //     046 - fnInfo           - Playback Information Dialog
  309. //     047 - fnOptions        - Options Dialog
  310. //     048 - fnPresets        - Presets Dialog
  311. //     049 - fnPlayList       - PlayList Dialog
  312. //     050 - fnChapter        - Chapter / Bookmark Editor Dialog
  313. //     051 - fnSkin           - Skin Selector
  314. //     052 - fnKeyHelp        - Opens the Keyboard Hotkey Dialog
  315. //     053 - fnExit           - Exit application
  316. //     054 - fnAddChapter     - Add Current Position to Chapter Editor
  317. //     055 - fnSaveChapter    - Save Chapter List
  318. //     056 - fnDVDMode        - Switch between the Media and DVD Modes
  319. //     057 - fnDVDRootMenu    - Go to the DVD's Root Menu
  320. //     058 - fnDVDTitleMenu   - Go to the DVD's Title Menu
  321. //     059 - fnDVDSubMenu     - Go to the DVD's Subtitle Menu
  322. //     060 - fnDVDAudioMenu   - Go to the DVD's Audio Menu
  323. //     061 - fnDVDAngleMenu   - Go to the DVD's Angle Menu
  324. //     062 - fnDVDChapterMenu - Go to the DVD's Chapter Menu
  325. //     063 - fnDVDMenuLeft    - Move left on a DVD Menu
  326. //     064 - fnDVDMenuRight   - Move right on a DVD Menu
  327. //     065 - fnDVDMenuUp      - Move up on a DVD Menu
  328. //     066 - fnDVDMenuDown    - Move down on a DVD Menu
  329. //     067 - fnDVDMenuSelect  - Activate selected Menu item
  330. //     068 - fnDVDCC          - Closed Captions ON/OFF
  331. //     069 - fnDVDAngle       - Cycle through DVD Angles or OGG Video Tracks when in Media mode.
  332. //     070 - fnDVDSub         - Cycle through DVD Subtitles or VobSub/OGG Subtitle Tracks when in Media mode.
  333. //     071 - fnAudioTrack     - Cycle through Media or DVD Audio Tracks
  334. //     072 - fnStayOnTop      - Stay On Top (ON / OFF)
  335. //     073 - fnMPEG4          - MPEG4/DivX/Video Decoder Dialog (if filter is in use)
  336. //     074 - fnSub            - Opens the VobSub dialog (if filter is in use)
  337. //     075 - fnAudioFilter    - TFM/DeDynamic Audio Filter Dialog (if filter is in use)
  338. //     076 - fnIncRate        - Increase Play rate
  339. //     077 - fnDecRate        - Decrease Play rate
  340. //     078 - fnPrevFilterFile - Previous Manual Filter File
  341. //     079 - fnNextFilterFile - Next Manual Filter File
  342. //     080 - fnSaveDF         - Save Definition File for the currently open media
  343. //     081 - fnFrameCapture   - Frame capture (filter must be manually enabled)
  344. //     082 - fnPattern        - Cycle Pattern Modes
  345. //     083 - fnEject          - Eject the selected drive (ZIP,JAZ,Sparq, SyJet, etc. plus any CD-Roms)
  346. //     084 - fnOverlayControl - Show/Hide Overlay Color Control Interface
  347. //     085 - fnOverlayApply   - Apply the Overlay Color Controls (same as button in options)
  348. //     086 - fnOverlayReset   - Reset the Overlay Color Controls back to their default settings
  349. //     087 - fnIncBrightness  - Increase Overlay Brightness
  350. //     088 - fnDecBrightness  - Decrease Overlay Brightness
  351. //     089 - fnIncContrast    - Increase Overlay Contrast
  352. //     090 - fnDecContrast    - Decrease Overlay Contrast
  353. //     091 - fnIncGamma       - Increase Overlay Gamma
  354. //     092 - fnDecGamma       - Decrease Overlay Gamma
  355. //     093 - fnIncHue         - Increase Overlay Hue
  356. //     094 - fnDecHue         - Decrease Overlay Hue
  357. //     095 - fnIncSaturation  - Increase Overlay Saturation
  358. //     096 - fnDecSaturation  - Decrease Overlay Saturation
  359. //     097 - fnUnpause        - Unpause the video (Discrete Play)
  360. //     098 - fnAddALBookmark  - Add DVD Auto-Load Bookmark (DVD Only)
  361. //     099 - fnSeekToStart    - Seek to start of Video
  362. //     100 - fnAudioDecoder   - Pop the property dialog of filters with "Audio Decoder" in their titles
  363. //     101 - fnDVDMenuPrev    - Return from DVD Sub-Menu.  If on Top Menu then Resume playback.
  364. //     102 - fnChapterNav     - Show/Hide the Chapter/Bookmark Navigator dialog
  365. //     103 - fnPlayListNav    - Show/Hide the Play List Navigator dialog
  366. //     104 - fnFileNav        - Show/Hide the File Navigator dialog
  367. //     105 - fnBlankingNav    - Show/Hide the Blanking Navigator dialog
  368. //     106 - fnBlankingPreset - Show/Hide the Blanking Presets dialog
  369. //     107 - fnBlanking       - Show/Hide the Video Blanking
  370. //     108 - fnRandomPlay     - Turns Random (shuffle) Play ON/OFF
  371. //     109 - fnResizeNav      - Show/Hide the Resize Navigator dialog
  372. //     110 - fnDisableDVDSub  - Disable DVD Subtitle in DVD mode or VobSub/OGG Subtitles in Media mode
  373. //     111 - fnPresetCycle    - Cycle through Video Position Presets
  374. //     112 - fnRevPresetCycle - Reverse Cycle through Video Position Presets
  375. //     113 - fnBlankCycle     - Cycle through Blanking Position Presets
  376. //     114 - fnRevBlankCycle  - Reverse Cycle through Blanking Position Presets
  377. //     115 - fnDVDPlayStart   - Play DVD bypassing Auto-Bookmark loading features
  378. //     116 - fnNextArrowFunc  - Next Active Arrow Control function
  379. //     117 - fnPrevArrowFunc  - Previous Active Arrow Control function
  380. //     118 - fnAutoARToggle   - Enable/Disable Automatic DVD Aspect Ratio
  381. //     119 - fnFrameZeroALBM  - Attempt setting a DVD Auto-Load bookmark at frame zero (DVD Only)
  382. //     120 - fnPauseAtEOF     - Pause Playback at end of currently playing file (Media Only)
  383. //     121 - fnSceneCut       - Show/Hide the Scene Cut Editor
  384. //     122 - fnGoTo           - Show/Hide the GoTo Timeline dialog
  385. //     123 - fnGoToNav        - Show/Hide the GoTo Timeline Navigator interface
  386. //     124 - fnMWFuncNav      - Show/Hide the Mouse Wheel Function Navigator interface
  387. //     125 - fnLoop           - Switch between Do Nothing and Auto Reply on Play Complete
  388. //
  389. //     The numbers to the left of the function names can be used with a remote control device
  390. //     to relay the command to zoom player.  The message number is "32817", the value to the
  391. //     left should be assigned to the WParam as the function you want to execute and the LParam
  392. //     should be set to "0".  For more information on message control see the "default.key" file.
  393. //
  394. //     When specifying the source, you need to make sure that the button "up" image
  395. //     is at the specified location, and the button "down" image, is directly to it's
  396. //     right (no spacing), and of course, it must be the same width and height.
  397. //
  398. //     The Hint setting is what pop-up hint will show when the mouse is over the
  399. //     button for a few seconds.  The setting is optional but must be entered if you plan
  400. //     to use the transparency setting.
  401. //
  402. //     The transparent RGB value determines if a certain color in the button image is to
  403. //     be considered transparent.  Transparency makes for non-rectangular buttons.  The Button Up
  404. //     image is used to generate the transparent area.  This setting is optional.
  405. //
  406. //
  407. // CreateExButton(Type=Value,SrcX=Value,SrcY=Value,Width=Value,Height=Value,HoverX=Value,HoverY=Value,
  408. //                AlphaX=Value,AlphaY=Value,DestX=Value,DestY=Value,Function=Value,FunctionParam=Value,
  409. //                StringParam=Value,TransColor=Value,Hint=Value)
  410. //
  411. //   - Parameters:
  412. //     Type          : Type of Button (see below) (Default = "Normal")
  413. //     SrcX          : X-Offset from source image to the location Bitmap data, Button Up graphics with Button Down aligned on the right.
  414. //     SrcY          : Y-Offset from source image to the location Bitmap data
  415. //     HoverX        : X-Offset from source image to the location of the Hover (mouse-over) Bitmap (also enables Hover Bitmap)
  416. //     HoverY        : Y-Offset from source image to the location of the Hover (mouse-over) Bitmap
  417. //     AlphaX        : X-Offset from source image to the location of the Alpha (Alpha Masking) Bitmap (also enables Alpha Masking)
  418. //     AlphaY        : Y-Offset from source image to the location of the Alpha (Alpha Masking) Bitmap
  419. //     Width         : Width of Button
  420. //     Height        : Height of Button
  421. //     DestX         : Destination X-Offset on the Skin
  422. //     DestY         : Destination Y-Offset on the Skin
  423. //     Function      : Either "fn" function (list above) or "ex" function (see default.key file) depending on "type" parameter.
  424. //     FunctionParam : Used in combination with "ex" functions to pass a parameter to the function.
  425. //     StringParam   : A string parameter passed to certain button types.
  426. //     TransColor    : A color-keyed transparent button, an RGB value indicating the transparent colorkey.
  427. //     Hint          : A string containing the pop-up description of the button.
  428. //
  429. //   - This function replaces the standard "CreateButton" function in newer skin.  Instead of entering
  430. //     parameters in a specific order, you can use any order but the value tag must be used, for example:
  431. //     CreateExButton(Type=Normal,Function=fnMax,Hint=Maximize Window,SrcX=20,SrcY=10,DestX=100,DestY=<WinWidth>-100,Width=25,Height=25,TransColor=FF00FF)
  432. //
  433. //     As you can see, the order of the other parameters isn't important.  Furthermore, not all parameters
  434. //     are needed, some parameters have different requirements depending on the button "Type" and some
  435. //     (like Hint and AlphaX/Y) are optional altogether.
  436. //
  437. //     Here are the possible values of the "Type" parameter:
  438. //     "Normal"   - Standard Button, accepts usual "fn" functions (see list above).
  439. //     "Filter"   - Instead of calling a function, this button opens a filter's property dialog.
  440. //                  The filter name is passed in the "StringParam" value and can contain multiple
  441. //                  sub-strings so that you could open different filters with one button (such as
  442. //                  all Video Decoders).   Example "StringParam=DIVX|XVID|MPEG4".
  443. //     "Extended" - Extended buttons are similar to the normal buttons with the exception that they
  444. //                  use the Extended functions (see default.key file for a list).  In addition to
  445. //                  the "Function" value, you must also supply the "FunctionParam" value so that it
  446. //                  could be passed on to the Function.  For example, when "Function=exSetAR", setting
  447. //                  "FunctionParam=1" will set the Aspect Ratio mode to "Source Aspect Ratio".
  448. //
  449. //     Note, Alpha blending by default is disabled,  if you enable Alpha blended buttons by using the "AlphaX"
  450. //     parameter, you should make sure that the button is listed toward the end of the skin file after the
  451. //     background it should  be blended against has already been drawn!  Another thing is that Alpha Blending
  452. //     only works against the background and not against other buttons.  Using Alpha Blended icons is quite CPU
  453. //     intensive when the skin is drawn/resized.
  454. //
  455. //     See "brownish.skn" and "brownishdvd.skn" files for multiple examples of this function.  Using this
  456. //     function is slightly faster loading than "CreateButton".
  457. //
  458. //
  459. // AddBarButton(SrcX,SrcY,Function,Hint)
  460. //
  461. //   - Unlike the CreateButton function, this button adds optional buttons to the Control Bar.
  462. //     Every button you add can be turned ON/OFF by the user through the Bar Button options dialog.
  463. //     However, only buttons you skinned are accessible to the user.  Due to this, I request that
  464. //     at the very least skin the control bar buttons used by this sample skin.
  465. //     The function parameter can contain the same values as specified in the CreateButton function.
  466. //   - The Hint Value is optional, not entering a paramater means that there isn't a hint.
  467. //
  468. //
  469. // The following commands perform the exact function as the above, but apply to the Control Bar.
  470. //
  471. // CopyCBarBitmap(SrcX,SrcY,Width,Height,DestX,DestY)
  472. // CopyCBarStretchedBitmap(SrcX,SrcY,SrcWidth,SrcHeight,DestX,DestY,SrcWidth,SrcHeight)
  473. // CopyCBarTransBitmap(SrcX,SrcY,Width,Height,DestX,DestY,RGBColor)
  474. // CopyCBarMaskedBitmap(SrcX,SrcY,Width,Height,DestX,DestY)
  475. // TileCBarBitmapV(SrcX,SrcY,Width,Height,DestX,DestY,FillHeight)
  476. // TileCBarBitmapH(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth)
  477. // TileCBarBitmapA(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth,FillHeight)
  478. // FillCBarRect(DestX,DestY,Width,Height,RGBColor)
  479. // TimeLineCBarBG(SrcX,SrcY,Width)
  480. // TimeLineCBarFG(SrcX,SrcY,Width)
  481. // TimeLineCBarActive(SrcX,SrcY,Width,Height,XOffset,YOffset)
  482. // TimeLineCBarStart(SrcX,SrcY,Width)
  483. // TimeLineCBarEnd(SrcX,SrcY,Width)
  484. //
  485. //
  486. // Comments:
  487. //
  488. // All the dynamic settings and functions can accept SIMPLE 2 item math.  Basically you
  489. // can do addition and subtraction, nothing else.  This is only used so you can position
  490. // items relative to the window size.
  491. //
  492. // Make sure you set all variables, otherwise when switching skins, some data will
  493. // remain from the older skin.
  494. //
  495. // Double check for Typos and corruct structure (as shown in the sample below), when
  496. // loading the skin, not a lot of error checking is performed, and you can easily
  497. // cause the player to crash!
  498. //
  499.  
  500. // Base Information used when loading the skin:
  501. SkinFileName    = (plasticblue.bmp)
  502.  
  503. // Initial settings:
  504. iWinWidth       = (397)
  505. iWinHeight      = (327)
  506. iVidWidth       = (352)
  507. iVidHeight      = (264)
  508. iVidLeft        = (6)
  509. iVidTop         = (6)
  510. iMinWidth       = (210)
  511. iMinHeight      = (158)
  512. //tLineColor      = (008000)     <- this isn't required since we're using a bitmap instead
  513. tLineFontSize   = (10)
  514. tLineFontYOfs   = (-1)
  515. tLineFontFace   = (Tahoma)
  516. tLineFontColor  = (FFFFFF)
  517. tLineFontStyle  = (Bold)
  518. cBarFontSize    = (10)
  519. cBarFontYOfs    = (0)
  520. cBarFontFace    = (Tahoma)
  521. cBarFontColor   = (FFFFFF)
  522. cBarFontStyle   = (Bold)
  523. cBarButWidth    = (20)
  524. cBarButHeight   = (20)
  525. //cBarTLColor     = (008000)     <- this isn't required since we're using a bitmap instead
  526.  
  527. // Dynamic settings (items with window-size relative positioning):
  528. tLineWidth      = (<WinWidth>-134)
  529. tLineHeight     = (12)
  530. tLineLeft       = (6)
  531. tLineTop        = (<WinHeight>-51)
  532.  
  533. VolLeft         = (<WinWidth>-81)
  534. VolTop          = (<WinHeight>-53)
  535. RateLeft        = (<WinWidth>-125)
  536. RateTop         = (<WinHeight>-53)
  537.  
  538. cBarTLWidth     = (<cBarWidth>-6)
  539. cBarTLHeight    = (14)
  540. cBarTLLeft      = (3)
  541. cBarTLTop       = (3)
  542.  
  543. // TimeLine background and foreground source bitmap position
  544. TimeLineBG(0,65,32)
  545. TimeLineFG(0,111,32)
  546. VolumeData(235,0,44,16)
  547. RateData(280,0,44,16)
  548.  
  549. // Control Bar TimeLine background source bitmap position
  550. TimeLineCBarBG(0,65,32)
  551. TimeLineCBarFG(0,111,32)
  552.  
  553. // Top Left Control Bar Corner
  554. CopyCBarBitmap(0,127,3,3,0,0)
  555.  
  556. // Top Right Control Bar Corner
  557. CopyCBarBitmap(3,127,3,3,<cBarWidth>-3,0)
  558.  
  559. // Bottom Left Control Bar Corner
  560. CopyCBarBitmap(0,130,3,3,0,<cBarHeight>-3)
  561.  
  562. // Bottom Right Control Bar Corner
  563. CopyCBarBitmap(3,130,3,3,<cBarWidth>-3,<cBarHeight>-3)
  564.  
  565. // Top Control Bar Bar
  566. TileCBarBitmapH(8,127,40,3,3,0,<cBarWidth>-6)
  567.  
  568. // Bottom Control Bar Bar
  569. TileCBarBitmapH(8,127,40,3,3,<cBarHeight>-3,<cBarWidth>-6)
  570.  
  571. // Left Control Bar Bar
  572. TileCBarBitmapV(0,133,3,6,0,3,<cBarHeight>-6)
  573.  
  574. // Right Control Bar Bar
  575. TileCBarBitmapV(0,133,3,6,<cBarWidth>-3,3,<cBarHeight>-6)
  576.  
  577. // Control Bar Button queue,
  578. // buttons will appear in the order they are added (left to right)
  579. // Any button in this list can be manually hidden by the user
  580. AddBarButton(0,140,fnPlay)
  581. AddBarButton(40,140,fnPause)
  582. AddBarButton(80,140,fnSlowMotion)
  583. AddBarButton(120,140,fnFastForward)
  584. AddBarButton(160,140,fnPrevChapter)
  585. AddBarButton(200,140,fnNextChapter)
  586. AddBarButton(240,140,fnStop)
  587. AddBarButton(280,140,fnPrevTrack)
  588. AddBarButton(0,160,fnNextTrack)
  589. AddBarButton(40,160,fnZoom)
  590. AddBarButton(80,160,fnZoomIn)
  591. AddBarButton(120,160,fnZoomOut)
  592. AddBarButton(160,160,fnFitSource)
  593. AddBarButton(200,160,fnMax)
  594. AddBarButton(240,160,fnFullscreen)
  595. AddBarButton(160,180,fnARCycle)
  596. AddBarButton(40,200,fnVolUp)
  597. AddBarButton(80,200,fnVolDown)
  598. AddBarButton(280,160,fnOpen)
  599. AddBarButton(0,180,fnPresets)
  600. AddBarButton(280,180,fnMPEG4)
  601. AddBarButton(240,180,fnSub)
  602. AddBarButton(200,180,fnAudioFilter)
  603. AddBarButton(0,200,fnPattern)
  604. AddBarButton(120,200,fnEject)
  605. AddBarButton(40,180,fnExit)
  606.  
  607. // User Interface Buttons
  608. CreateButton(49,23,23,23,8,<WinHeight>-31,fnPlay,Play / Pause Video)
  609. CreateButton(49,46,23,23,33,<WinHeight>-31,fnPause,Pause Video)
  610. CreateButton(95,0,23,23,58,<WinHeight>-31,fnStop,Stop Playback)
  611. CreateButton(95,23,23,23,87,<WinHeight>-31,fnZoom,Go into Zoom Mode)
  612. CreateButton(95,46,23,23,112,<WinHeight>-31,fnFullScreen,Switch to Fullscreen)
  613. CreateButton(141,0,23,23,137,<WinHeight>-31,fnOpen,Open a file)
  614. CreateButton(141,23,23,23,162,<WinHeight>-31,fnBar,Show / Hide Control Bar)
  615. CreateButton(141,46,23,23,191,<WinHeight>-31,fnMinimize,Minimize Window)
  616.  
  617. CreateButton(49,0,23,23,<WinWidth>-31,8,fnExit,Exit Program)
  618. CreateButton(187,0,23,23,<WinWidth>-31,53,fnPlayList,Open Play List)
  619. CreateButton(187,23,23,23,<WinWidth>-31,78,fnChapter,Open Chapter Editor)
  620. CreateButton(187,46,23,23,<WinWidth>-31,103,fnPresets,Open Preset Dialog)
  621. CreateButton(187,69,23,23,<WinWidth>-31,128,fnSkin,Skin Selector)
  622. CreateButton(187,92,23,23,<WinWidth>-31,157,fnOptions,Open Options Dialog)
  623.  
  624. // Example of transparent button (disabled since we don't use it)
  625. //CreateButton(141,46,23,23,<WinWidth>-31,<WinHeight>-64,fnMinimize,Minimize Window,5A8EC6)
  626.  
  627. // Top Left corner
  628. CopyBitmap(33,67,6,6,0,0)
  629.  
  630. // Top Right corner
  631. CopyBitmap(0,59,39,6,<WinWidth>-39,0)
  632.  
  633. // Bottom Left corner
  634. CopyBitmap(41,0,6,57,0,<WinHeight>-57)
  635.  
  636. // Bottom Right Corner
  637. CopyBitmap(0,0,39,57,<WinWidth>-39,<WinHeight>-57)
  638.  
  639. // Video Area
  640. FillRect(6,6,<VidWidth>,<VidHeight>,000000)
  641.  
  642. // Left bar
  643. TileBitmapV(41,59,6,60,0,6,<WinHeight>-63)
  644.  
  645. // Right-Inner bar
  646. TileBitmapV(41,59,6,60,<WinWidth>-39,6,<WinHeight>-63)
  647.  
  648. // Right bar
  649. TileBitmapV(41,59,6,60,<WinWidth>-6,6,<WinHeight>-63)
  650.  
  651. // Top Bar
  652. TileBitmapH(5,59,28,6,6,0,<WinWidth>-45)
  653.  
  654. // TimeLine upper bar
  655. TileBitmapH(5,59,28,6,6,<WinHeight>-57,<WinWidth>-45)
  656.  
  657. // TimeLine lower bar
  658. TileBitmapH(5,59,28,6,6,<WinHeight>-39,<WinWidth>-45)
  659.  
  660. // TimeLine rate divider
  661. CopyBitmap(0,4,4,16,<WinWidth>-128,<WinHeight>-53)
  662.  
  663. // Bottom Bar
  664. TileBitmapH(5,59,20,6,6,<WinHeight>-6,<WinWidth>-45)
  665.  
  666. // Lower Button Background
  667. TileBitmapH(0,81,40,27,6,<WinHeight>-33,<WinWidth>-45)
  668.  
  669. // Right Button Background
  670. TileBitmapV(0,81,27,28,<WinWidth>-33,6,<WinHeight>-45)
  671.