home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 2003-11-09 | 64.8 KB | 1,061 lines
Future Brownish Media Skin (sample) by Blight // First line must be the description... don't put any comments before it. // // // This file is file is a semi-tutorial on how to create Zoom Player skins. // It shows you the exact structure used to create the default media skin. // It is only a sample file and is not required for Zoom Player to operate. // // // Constants: // // <WinWidth> - Width in Pixels of Window // <WinHeight> - Height in Pixels of Window // <WinHalfWidth> - Width in Pixels of Window divided by 2 (useful for screen-centering) // <WinHalfHeight> - Height in Pixels of Window divided by 2 (useful for screen-centering) // <PLWinWidth> - Width in Pixels of Play List Window // <PLWinHeight> - Height in Pixels of Play List Window // <PLWinHalfWidth> - Width in Pixels of Play List Window divided by 2 (useful for screen-centering) // <PLWinHalfHeight> - Height in Pixels of Play List Window divided by 2 (useful for screen-centering) // <VidWidth> - Width in Pixels of Video Area // <VidHeight> - Height in Pixels of Video Area // <ARWidth> - Width in Pixels of Video Area with Aspect Ratio Adjustment // <ARHeight> - Height in Pixels of Video Area with Aspect Ratio Adjustment // <FileName> - Name of Currently loaded file (full path) // <FileTitle> - Name of Currently loaded file (file name+extension) // <FileBase> - Name of Currently loaded file (file name only, no extension or path) // <cBarWidth> - Width in Pixels of Control Bar after deducting the space used by the buttons and Right Margin // <cBarFullWidth> - Width in Pixels of the entire Control Bar // <cBarHeight> - Height in Pixels of Control Bar // <cBarHalfWidth> - Width in Pixels of Control Bar after deducting the space used by the buttons divided by 2 // <cBarHalfHeight> - Height in Pixels of Control Bar divided by 3 // <ovColor> - Overlay Color RGB (can be used for transparency with the Control Bar) // <Time> - Current Time Display (playing media) // <TimeRemain> - Time Remaining // <Duration> - Total Duration of playing content // <DVDChapter> - Current DVD Chapter // <DVDTitle> - Current DVD Title // <DVDVolume> - Current DVD Volume Label // <PlayListItems> - Number of items in the current play list // <PlayListTotal> - Total Time used by currently loaded Play List Items. // <Clock> - The Current Time (Clock) // <Date> - The Current Date // // Vars: // // ActiveGroups - Determines which Skin Groups are active by Default (see below for more information on skin groups) // SkinFileName - Name of non-compressed (8bit/24bit) BMP image that contains all the skin graphics // TimelineCursor - Name of a Cursor file that will be used for timeline seeking // iWinWidth - Initial Window Width // iWinHeight - Initial Window Height // iVidWidth - Initial Video Width // iVidHeight - Initial Video Height // iVidLeft - Initial Video Position in pixels from left position of Window // iVidTop - Initial Video Position in pixels from top position of Window // iMinWidth - Minimum Video Width (It's recommended keep the minimum Width/Height to a 4:3 aspect ratio) // iMinHeight - Minimum Video Height // iTransColor - Hex RGB Value of the color used for Window Transparency on the main user interface // RateLeft - Left Position of Rate bar witin window // RateTop - Top Position of Rate bar witin window // tLineWidth - TimeLine Width // tLineHeight - TimeLine Height // tLineLeft - TimeLine position in pixels from left position of Window // tLineTop - TimeLine position in pixels from top position of Window // tLineColor - TimeLine Color (Hex RGB Value, like on web pages. Not required if a bitmap is set using TimeLineFG) // tLineFontSize - TimeLine Font Size // tLineFontYOfs - TimeLine Font Y-Offset in pixels (can be negative value) // tLineFontFace - TimeLine Font Name // tLineFontColor - TimeLine Font Color // tLineFontStyle - Bold and Italic, example : tLineFontStyle = (Bold|Italic), To disable style use (None) as value. // cBarFontSize - Control Bar Font Size // cBarFontYOfs - Control Bar Font Y-Offset in pixels (can be negative value) // cBarFontFace - Control Bar Font Name // cBarFontColor - Control Bar Font Color // cBarFontStyle - Bold and Italic, example : CBarFontStyle = (Bold|Italic), To disable style use (None) as value. // cBarButWidth - Control Bar Button Width (must be set before any buttons are added to the control bar) // cBarButHeight - Control Bar Button Height (same as width, but also sets the height of the control bar) // cBarRightMargin- Number of pixels to save on the right side of skin // cBarTLColor - Control Bar TimeLine Color (Not required if a bitmap is set using TimeLineCBarFG) // cBarTLWidth - Width of the Control Bar time line // cBarTLHeight - Height of the Control Bar time line // cBarTLLeft - Control Bar TimeLine position in pixels from left position of Control Bar // cBarTLTop - Control Bar TimeLine position in pixels from top position of Control Bar // cTransColor - Hex RGB Value of the color used for Window Transparency on the Control Bar // pTransColor - Hex RGB Value of the color used for Window Transparency on the Play List // // // // Functions: // // // FillRect(DestX,DestY,Width,Height,RGBColor) // FillRectNT(DestX,DestY,Width,Height,RGBColor) // // - Fill a rectangle with a specific Hex RGB color (The NT version prevents skin tinting which // is important when you fill the background area of the video). // (000000=Black, FF0000=Red, 00FF00=Green, 0000FF=Blue, FFFFFF=White, exactly like in HTML). // // // FillMask(SrcX,SrcY,Width,Height,DestX,DestY,SrcRGBColor,DestRGBColor) // // - Fill a mask by filling any color that doesn't match the SrcRGBColor with // the DestRGBColor. This can be used on non-rectangular buttons that have // a transparent background and thus should have a masked drawn behind them // so that they don't become transparent themselves. // // // CopyBitmap(SrcX,SrcY,Width,Height,DestX,DestY) // // - Copy a bitmap from the skin image to the user interface. // // // CopyStretchedBitmap(SrcX,SrcY,SrcWidth,SrcHeight,DestX,DestY,DestWidth,DestHeight) // // - Copy a bitmap from the skin image to the user interface stretching it to fit the specified rectangle. // This function is rather CPU intensive. // // // CopyTransBitmap(SrcX,SrcY,Width,Height,DestX,DestY,RGBColor) // // - Copy a Color Keyed transparent bitmap from the skin image to the user interface. // The color specified by the RGBColor is considered transparent and won't be copied // This function can be CPU intensive if used extensively. // // // CopyMaskedBitmap(SrcX,SrcY,Width,Height,DestX,DestY) // // - Copy an Alpha Masked bitmap from the skin image to the user interface. // An Alpha mask is a gray representation of the image where black means no // copying to be done and white means full copying. Any gray value in between // determines what percentage to mix between the background and foreground bitmaps. // The Alpha mask must the aligned to the right of the source image and match it's size. // This function can be CPU intensive if used extensively. // // // TileBitmapV(SrcX,SrcY,Width,Height,DestX,DestY,FillHeight) // // - Tile bitmap vertically to fill a specific number of pixels. // // // TileBitmapH(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth) // // - Tile bitmap horizontally to fill a specific number of pixels. // // // TileBitmapA(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth,FillHeight) // // - Tile bitmap to fill an area of specific number of pixels. // // // GradientRectH(DestX,DestY,Width,Height,RGBColor1,RGBColor2) // // - Fill a rectangle with a horizontal gradient from RGBColor1 to RGBColor2 // Doing gradient fills may be CPU intensive. // // // GradientRectV(DestX,DestY,Width,Height,RGBColor1,RGBColor2) // // - Fill a rectangle with a vertical gradient from RGBColor1 to RGBColor2 // Doing gradient fills may be CPU intensive. // // // TimeLineBG(SrcX,SrcY,Width) // // - Bitmap positioning used for the User Interface TimeLine background, height must be the same as tLineHeight. // // // TimeLineFG(SrcX,SrcY,Width) // // - Bitmap positioning used for the User Interface TimeLine foreground, height must be the same as tLineHeight. // Using this function enables the Time Line (makes it visible) on the main user interface. // Using this function means that a bitmap will be used instead of a color for the action portion of the timeline. // // // TimeLineFontShade(Left,Right,Top,Bottom) // - This function allows you to shade (shadow/outline) the TimeLine font. All four parameters are RGB vlaues // representing the shading colors around the font. Use a value of "-1" in order for shading to be disabled // on a particular side. // // // TimeLineActive(SrcX,SrcY,Width,Height,XOffset,YOffset) // // - This is an optional function if bitmapped TimeLine is used. It allows you to specify a bitmap to be drawn // at the currently active timeline position. SrcX, SrcY and Width are pretty self explanetory. The XOffset // and YOffset allows you to specify how many pixels to move the bitmap to the right and down (by default the // bitmap is drawn at the top of the timeline and to the left of the currently active position (taking into // account the width of the bitmap). // // // TimeLineStart(SrcX,SrcY,Width) // // - Specify a start bitmap for the timeline, the bitmap height should match the timeline bitmap height and like // with buttons, it should actually be comprised of two bitmaps drawn next to each other (on the right) of the // active and inactive timeline states (highlighted/non-highlighted). The width specified is only of the first // image, the inactive image on the right should be the same width and height. // // // TimeLineEnd(SrcX,SrcY,Width) // // - Same as TimeLineStart, but for the end (right side) of the timeline. // // // PlayListData(DestX=Value,DestY=Value,Width=Value,Height=Value,Border=Value,Background=Value,Foreground=Value, // SelectBG=Value,SelectFG=Value,Highlight=Value) // // - This function sets all the neccessery data to position and color the Play List file listing. // - Parameters: // DestX : Destination X-Offset on the Skin. // DestY : Destination Y-Offset on the Skin. // Width : Width of File List area. // Height : Height of File List area. // Border : RGB Value representing the list border color. // Background : RGB Value representing the list background color. // Foreground : RGB Value representing the list foreground color. // SelectBG : RGB Value representing the selected item background color. // SelectFG : RGB Value representing the selected item foreground color. // Highlight : RGB Value representing the playing item color. // // VolumeExData(SrcX=Value,SrcY=Value,DestX=Value,DestY=Value,Width=Value,Height=Value,Images=Value,Vertical=True/False) // // - This function sets all the neccessery data to enable the user-interface volume controls. // - Parameters: // SrcX : X-Offset from source image to the location Bitmap data. // SrcY : Y-Offset from source image to the location Bitmap data. // DestX : Destination X-Offset on the Skin. // DestY : Destination Y-Offset on the Skin. // Width : Width of a Single Volume Image. // Height : Height of a Single Volume Image. // Images : Number of Volume Images, Image are expected to be drawn aligned to the bottom of each image. // Vertical : Can be either "True" or "False", determines how the volume reacts to a user click (horizontally or vertically). // // The Parameter order isn't important, just that the values are being passed. The Vertical // parameter is optional, by default the volume bar is horizontal. // Example: // VolumeExData(SrcX=208,SrcY=0,DestX=<WinWidth>-50,DestY=<WinHeight>-50,Width=42,Height=14,Images=12,Vertical=False) // // // RateExData(SrcX=Value,SrcY=Value,DestX=Value,DestY=Value,Width=Value,Height=Value,Images=Value,Vertical=True/False) // // - This function sets all the neccessery data to enable the user-interface play rate controls. // Make sure you have 7 images drawn for rate positions, as seen in the brownish.bmp file. // - Parameters: // SrcX : X-Offset from source image to the location Bitmap data. // SrcY : Y-Offset from source image to the location Bitmap data. // DestX : Destination X-Offset on the Skin. // DestY : Destination Y-Offset on the Skin. // Width : Width of a Single Volume Image. // Height : Width of a Single Volume Image. // // The Parameter order isn't important, just that the values are being passed. The Vertical // parameter is optional, by default the volume bar is horizontal. // Example: // RateExData(SrcX=208,SrcY=0,DestX=<WinWidth>-50,DestY=<WinHeight>-50,Width=42,Height=14) // // // ResizeBox(XOfs,YOfs,Width,Height,CursorType) // - If you have transparent skin where the edges of the window are transparent, // you may want to define a "ResizeBox". When the mouse moves over the // ResizeBox designated area, the cursor will change to a resize cursor and // allow the forum to be resized from that position. // The Values of CursorType can be: // 0 - Bottom Right Corner // 1 - Bottom Left Corner // 2 - Top Right Corner // 3 - Top Left Corner // 4 - Left Side // 5 - Right Side // 6 - Top Side // 7 - Bottom Side // // Example: // ResizeBox(<WinWidth>-40,<WinHeight>-40,10,10,0) // // // DrawExText(Target=Value,DestX=Value,DestY=Value,Width=Value,Height=Value,Align=Value,Case=Value,WordWrap=Value // ,FontName=Value,FontSize=Value,FontColor=Value,FontStyle=Value,Text=Value) // // - Parameters: // Target : Target Window, Can be either "Main" or "PlayList" (Default = "Main") // DestX : Destination X-Offset on the Skin. // DestY : Destination Y-Offset on the Skin. // Width : Maximum Width of Text (used for clipping). // Height : Maximum Height of Text (used for clipping). // Align : Text Alignment, values can be "Left, Center or Right" (Default "Left"). // Case : Uppercase/Lowercase Structure, values can be "None,Lower,Upper,UpFirst" (Default "None"). // WordWrap : Value can be True or False, if True and the text doesn't fit the width, it is word wrapped (Default "False"). // FontName : The Name of the Font, i.e. Arial, Times New Romand, etc... // FontSize : Size of Font (approximate height in pixels). // FontColor : RGB value indicating the Font Color. // FontStyle : Bold, Italic, Both or None, if both then separated by "|" (i.e. "Bold|Italic") (Default "None"). // ShadeLeft : RGB value represting the shadow color on the left side (set to -1 to disable) // ShadeRight : RGB value represting the shadow color on the right side (set to -1 to disable) // ShadeTop : RGB value represting the shadow color on the top side (set to -1 to disable) // ShadeBottom : RGB value represting the shadow color on the bottom side (set to -1 to disable) // Text : String that should be displayed, can including dynamic content by using Constants (see above). // // - This function allows you to draw text anywhere on the user interface. The Text content is // updated every time the user interface is resized and once per second (while not in fullscreen). // This allows you to draw dynamic text such as Time, DVD Chapter, etc... // Example: // DrawExText(DestX=5,DestY=5,Width=<WinWidth>-10,Height=20,Align=Center,Case=UpFirst,FontName=Arial,FontSize=11,FontColor=FFFFFF,FontStyle=Bold,Text=<FileName>) // // // CreateButton(SrcX,SrcY,Width,Height,DestX,DestY,Function,Hint,Transparent) // // - This function has been replaced with "CreateExButton", see below. // - Creates a button with a function assigned with the function setting, // possible function values are: // 000 - fnPlay - All : Starts playback and toggles between Play & Pause states. // 001 - fnPause - All : Pauses video and frame advances when already paused. // 002 - fnStop - Media : Stops playback and goes to the beginning of the video. // DVD : Stops playback and closes DVD. // 003 - fnStopToFirst - Media : Stop to First Item in a Play List. // 004 - fnNextChapter - Media : Go to Next Chapter (Internal or OGM), if no chapters are // specified, advance to the next item in the Play List. // DVD : Open the Next Bookmark. // 005 - fnPrevChapter - Media : Go to Previous Chapter (Internal or OGM), if no chapters are // specified, go back to the previous item in the Play List. // DVD : Open the Previous Bookmark. // 006 - fnNextTrack - Media : Go to the Next item on the Play List // DVD : Go to the Next Chapter. // 007 - fnPrevTrack - Media : Go to the Previous item on the Play List. // DVD : Go to the Next Chapter. // 008 - fnNextFrame - All : Frame Step Forward. // 009 - fnPrevFrame - All : Frame Step Backward. // 010 - fnNextVid - Media : Play the Next Video in the current directory. // 011 - fnPrevVid - Media : Play the Previous Video in the current directory. // 012 - fnSkipForward - All : Skip forward a specified number of seconds. // 013 - fnSkipBackward - All : Skip backward a specified number of seconds. // 014 - fnJumpForward - All : Jump forward a specified number of seconds. // 015 - fnJumpBackward - All : Jump backward a specified number of seconds. // 016 - fnSeekForward - All : Seek forward a specified number of seconds. // 017 - fnSeekBackward - All : Seek backward a specified number of seconds. // 018 - fnFastForward - All : Play in Fast Forward. // 019 - fnRewind - All : Rewind Playback. // 020 - fnSlowMotion - All : Play in Slow Motion. // 021 - fnHalfFF - All : Half Fast forward speed. // 022 - fnHalfSM - All : Half Slow Motion speed. // 023 - fnVolUp - All : Increase Volume. // 024 - fnVolDown - All : Decrease Volume. // 025 - fnMute - All : Mute Volume (ON/OFF). // 026 - fnABRepeat - All : Start, Stop and Cancel AB-Repeat. // 027 - fnPlayEndCycle - All : Cycle through the "On Play Complete" values. // 028 - fnZoomAxis - All : Toggles the Zoom Axis (used with Zoom-In / Zoom-Out). // 029 - fnZoomIn - All : Zoom into video (enlarge video area). // 030 - fnZoomOut - All : Zoom out of video (shrink video area). // 031 - fnZoomInWidth - All : Stretch the video width. // 032 - fnZoomOutWidth - All : Shrink the video width. // 033 - fnZoomInHeight - All : Stretch the video height. // 034 - fnZoomOutHeight - All : Shrink the video height. // 035 - fnZoom - All : Go into Zoom Mode. // 036 - fnFullScreen - All : Go Into Fullscreen Mode. // 037 - fnFitSource - All : Resize video area to the original video source size.. // 038 - fnMax - All : Maximize user interface to cover work area or if in fullscreen maximize // video area to cover screen. // 039 - fnMinimize - All : Minimize the user interface. // 040 - fnARCycle - All : Cycle through Aspect Ratio modes. // 041 - fnRevARCycle - All : Reverse Cycle through Aspect Ratio modes. // 042 - fnBar - All : Show / Hide the Control Bar. // 043 - fnOSD - All : Turn the On Screen Display ON / OFF. // 044 - fnOpen - All : Open File(s) for playback. // 045 - fnOpenDir - All : Open a Directory for playback. // 046 - fnInfo - All : Playback Information Dialog (some information on the playing media). // 047 - fnOptions - All : Open the Options Dialog. // 048 - fnPresets - All : Open the Video Position Preset Dialog. // 049 - fnPlayList - All : Show / Hide the Play List Editor. // 050 - fnChapter - Media : Show / Hide the Chapter Editor. // - DVD : Show / Hide the Bookmark Editor. // 051 - fnSkin - All : Show / Hide the Skin Selection dialog. // 052 - fnKeyHelp - All : Opens the Keyboard Hotkey Dialog (key list). // 053 - fnExit - All : Exit application. // 054 - fnAddChapter - Media : Add Current Position to the Chapter Editor. // DVD : Save Current Position as a Bookmark. // 055 - fnSaveChapter - Media : Save Chapter List. // 056 - fnDVDMode - All : Switch between the Media and DVD Modes. // 057 - fnDVDRootMenu - DVD : Go to the DVD's Root Menu. // 058 - fnDVDTitleMenu - DVD : Go to the DVD's Title Menu. // 059 - fnDVDSubMenu - DVD : Go to the DVD's Subtitle Menu. // 060 - fnDVDAudioMenu - DVD : Go to the DVD's Audio Menu. // 061 - fnDVDAngleMenu - DVD : Go to the DVD's Angle Menu. // 062 - fnDVDChapterMenu - DVD : Go to the DVD's Chapter Menu. // 063 - fnDVDMenuLeft - DVD : Move left on a DVD Menu. // 064 - fnDVDMenuRight - DVD : Move right on a DVD Menu. // 065 - fnDVDMenuUp - DVD : Move up on a DVD Menu. // 066 - fnDVDMenuDown - DVD : Move down on a DVD Menu. // 067 - fnDVDMenuSelect - DVD : Activate selected Menu item. // 068 - fnDVDCC - DVD : Closed Captions ON / OFF. // 069 - fnDVDAngle - Media : Cycle through OGM Video Tracks. // - DVD : Cycle through DVD Angles. // 070 - fnDVDSub - Media : Cycle through VobSub/OGM Subtitle Tracks. // DVD : Cycle through DVD Subtitle Tracks. // 071 - fnAudioTrack - Media : Cycle through Media Audio Tracks. // DVD : Cycle through DVD Audio Tracks. // 072 - fnStayOnTop - All : Stay On Top ON / OFF. // 073 - fnMPEG4 - All : MPEG4/DivX/Video Decoder Dialog (if filter is in use). // 074 - fnSub - All : Opens the VobSub dialog (if filter is in use). // 075 - fnAudioFilter - All : TFM/DeDynamic Audio Filter Dialog (if filter is in use). // 076 - fnIncRate - All : Increase Play rate. // 077 - fnDecRate - All : Decrease Play rate. // 078 - fnPrevFilterFile - None : Previous Manual Filter File ** disabled ** // 079 - fnNextFilterFile - None : Next Manual Filter File ** disabled ** // 080 - fnSaveDF - All : Save Definition File for the currently open media. // 081 - fnFrameCapture - All : Screenshot / Frame Capture. // 082 - fnPattern - All : Cycle Pattern Modes. // 083 - fnEject - All : Eject the specified CD drive. // 084 - fnOverlayControl - All : Show / Hide the Overlay Color Control Interface. // 085 - fnOverlayApply - All : Apply the Overlay Color Controls (same as button in options). // 086 - fnOverlayReset - All : Reset the Overlay Color Controls back to their default settings. // 087 - fnIncBrightness - All : Increase Overlay Brightness. // 088 - fnDecBrightness - All : Decrease Overlay Brightness. // 089 - fnIncContrast - All : Increase Overlay Contrast. // 090 - fnDecContrast - All : Decrease Overlay Contrast. // 091 - fnIncGamma - All : Increase Overlay Gamma. // 092 - fnDecGamma - All : Decrease Overlay Gamma. // 093 - fnIncHue - All : Increase Overlay Hue. // 094 - fnDecHue - All : Decrease Overlay Hue. // 095 - fnIncSaturation - All : Increase Overlay Saturation. // 096 - fnDecSaturation - All : Decrease Overlay Saturation. // 097 - fnUnpause - All : Unpause the video (Discrete Play). // 098 - fnAddALBookmark - DVD : Add DVD Auto-Load Bookmark. // 099 - fnSeekToStart - All : Seek to start of Video. // 100 - fnAudioDecoder - All : Pop the property dialog of filters with "Audio Decoder" in their titles. // 101 - fnDVDMenuPrev - DVD : Return from DVD Sub-Menu. If on Top Menu then Resume playback. // 102 - fnChapterNav - Media : Show / Hide the Chapter Navigator dialog. // - DVD : Show / Hide the Bookmark Navigator dialog. // 103 - fnPlayListNav - All : Show / Hide the Play List Navigator dialog. // 104 - fnFileNav - All : Show / Hide the File Navigator dialog. // 105 - fnBlankingNav - All : Show / Hide the Blanking Navigator dialog. // 106 - fnBlankingPreset - All : Show / Hide the Blanking Presets dialog. // 107 - fnBlanking - All : Show / Hide Video Blanking. // 108 - fnRandomPlay - Media : Turns Random (shuffle) Play ON / OFF. // 109 - fnResizeNav - All : Show / Hide the Resize Navigator dialog. // 110 - fnDisableDVDSub - Media : Disable VobSub / OGG Subtitles. // DVD : Disable DVD Subtitle. // 111 - fnPresetCycle - All : Cycle through Video Position Presets. // 112 - fnRevPresetCycle - All : Reverse Cycle through Video Position Presets. // 113 - fnBlankCycle - All : Cycle through Blanking Position Presets. // 114 - fnRevBlankCycle - All : Reverse Cycle through Blanking Position Presets. // 115 - fnDVDPlayStart - DVD : Play DVD bypassing Auto-Bookmark loading features. // 116 - fnNextArrowFunc - All : Next Active Arrow Control function. // 117 - fnPrevArrowFunc - All : Previous Active Arrow Control function. // 118 - fnAutoARToggle - DVD : Enable / Disable Automatic DVD Aspect Ratio. // 119 - fnFrameZeroALBM - DVD : Attempt setting a DVD Auto-Load bookmark at frame zero. // 120 - fnPauseAtEOF - Media : Pause Playback at end of currently playing file. // 121 - fnSceneCut - All : Show / Hide the Scene Cut Editor. // 122 - fnGoTo - All : Show / Hide the GoTo Timeline dialog. // 123 - fnGoToNav - All : Show / Hide the GoTo Timeline Navigator interface. // 124 - fnMWFuncNav - All : Show / Hide the Mouse Wheel Function Navigator interface. // 125 - fnLoop - Media : Switch between Do Nothing and Auto Reply on Play Complete. // 126 - fnBalanceLeft - All : Move Audio Balance to the Left. // 127 - fnBalanceRight - All : Move Audio Balance to the Right. // 128 - fnOpenDrive - All : Open an entire drive. // 129 - fnMediaNav - All : Show / Hide the Media Library Navigator. // 130 - fnMediaPathEdit - All : Show / Hide the Media Library Path and Category Editor. // 131 - fnSrcRelStretch - All : Enable / Disable Source Relative User Interface Stretch. // 132 - fnZoom50 - All : Set video to default to 50%. // 133 - fnZoom100 - All : Set video to default to 100%. // 134 - fnZoom200 - All : Set video to default to 200%. // 135 - fnZoom400 - All : Set video to default to 400%. // 136 - fnZoom800 - All : Set video to default to 800%. // 137 - fnWebNav - All : Show / Hide the Web URL Navigator. // 138 - fnBringToFront - All : Bring Player Window to Front. // 139 - fnLoopPlay - Media : Enable / Disable looping of currently playing track. // 140 - fnPLAddFiles - All : Add Files to Play List. // 141 - fnPLAddDir - All : Add Directory to Play List. // 142 - fnPLRemove - All : Remove Selected Items from Play List. // 143 - fnPLClear - All : Clear the entire Play List. // 144 - fnPLLoadList - All : Load a Play List. // 145 - fnPLSaveList - All : Save the Play List. // 146 - fnPLSort - All : Sort the Play List Items. // 147 - fnPLItemUp - All : Move Selected Play List Items Up. // 148 - fnPLItemDown - All : Move Selected Play List Items Down. // 149 - fnPLMax - All : Maximize the Play List Window. // 150 - fnLoadDF - All : Load Definition File for the currently open media. // 151 - fnRadioManager - Media : Show/Hide the Radio Station Manager Dialog. // 152 - fnContextNav - Both : Show/Hide the Context Navigator. // 153 - fnPlayHistory - Media : Show/Hide the Play History Interface. // 154 - fnPLGetDuration - Media : Get Duration of Media Files in the current Play list // 155 - fnEqualizer - All : Show/Hide the Internal Equalizer Window // 156 - fnEQEditor - All : Show/Hide the Equalizer Profile Selector/Editor // 157 - fnEQReset - All : Reset the current Equalizer Values // 158 - fnEQToggle - All : Enable/Disable the Equalizer // 159 - fnResyncAhead - All : Resynchronize Audio Ahead // 160 - fnResyncBack - All : Resynchronize Audio Back // 161 - fnFastPlay - Media : Fast Playback with Audio // 162 - fnVobSubSelect - All : DirectVobSub Subtitle File Selection // 163 - fnOpenURL - All : Open URL // // The numbers to the left of the function names can be used with a remote control device // to relay the command to zoom player. The message number is "32817", the value to the // left should be assigned to the WParam as the function you want to execute and the LParam // should be set to "0". For more information on message control see the "default.key" file. // // When specifying the source, you need to make sure that the button "up" image // is at the specified location, and the button "down" image, is directly to it's // right (no spacing), and of course, it must be the same width and height. // // The Hint setting is what pop-up hint will show when the mouse is over the // button for a few seconds. The setting is optional but must be entered if you plan // to use the transparency setting. // // The transparent RGB value determines if a certain color in the button image is to // be considered transparent. Transparency makes for non-rectangular buttons. The Button Up // image is used to generate the transparent area. This setting is optional. // // // CreateExButton(Type=Value,Target=Value,SrcX=Value,SrcY=Value,Width=Value,Height=Value,HoverX=Value,HoverY=Value, // AlphaX=Value,AlphaY=Value,DestX=Value,DestY=Value,Function=Value,FunctionParam=Value, // StringParam=Value,TransColor=Value,Hint=Value,AniSpeed=Value) // // - Parameters: // Type : Type of Button (see below) (Default = "Normal") // Target : Target Window, Can be either "Main" or "PlayList" (Default = "Main") // SrcX : X-Offset from source image to the location Bitmap data, Button Up graphics. // SrcY : Y-Offset from source image to the location Bitmap data // DownX : X-Offset from source image to the location of the Button Down Bitmap (Optional, by default it's SrcX+Width) // DownY : Y-Offset from source image to the location of the Button Down Bitmap (Optional, by default it's SrcY) // HoverX : X-Offset from source image to the location of the Hover (mouse-over) Bitmap (also enables Hover Bitmap) // HoverY : Y-Offset from source image to the location of the Hover (mouse-over) Bitmap // AlphaX : X-Offset from source image to the location of the Alpha (Alpha Masking) Bitmap (also enables Alpha Masking) // AlphaY : Y-Offset from source image to the location of the Alpha (Alpha Masking) Bitmap // ActiveX : X-Offset from source image to the location of the Activate (Special Event) Bitmap // ActiveY : Y-Offset from source image to the location of the Activate (Special Event) Bitmap // Activate : Draws the Active Bitmap when a Special Event is called, See Below for available values. // Width : Width of Button // Height : Height of Button // DestX : Destination X-Offset on the Skin // DestY : Destination Y-Offset on the Skin // Function : Either "fn" function (list above) or "ex" function (see default.key file) depending on "type" parameter. // FunctionParam : Used in combination with "ex" functions to pass a parameter to the function. // StringParam : A string parameter passed to certain button types. // TransColor : A color-keyed transparent button, an RGB value indicating the transparent colorkey. // Hint : A string containing the pop-up description of the button. // AniSpeed : If Animated buttons are enabled, the speed of animation (value from 20-1000, default = 50) // // Also, when no image is specified: // Color : Background color // Text : A string containing a caption // FontName : The Name of the Font, i.e. Arial, Times New Romand, etc... // FontSize : Size of Font (approximate height in pixels). // FontColor : RGB value indicating the Font Color. // FontStyle : Bold, Italic, Both or None, if both then separated by "|" (i.e. "Bold|Italic") (Default "None"). // // - This function replaces the standard "CreateButton" function in newer skin. Instead of entering // parameters in a specific order, you can use any order but the value tag must be used, for example: // CreateExButton(Type=Normal,Function=fnMax,Hint=Maximize Window,SrcX=20,SrcY=10,DestX=100,DestY=<WinWidth>-100,Width=25,Height=25,TransColor=FF00FF) // // As you can see, the order of the other parameters isn't important. Furthermore, not all parameters // are needed, some parameters have different requirements depending on the button "Type" and some // (like Hint and AlphaX/Y) are optional altogether. // // Here are the possible values of the "Type" parameter: // "Normal" - Standard Button, accepts usual "fn" functions (see list above). // "Filter" - Instead of calling a function, this button opens a filter's property dialog. // The filter name is passed in the "StringParam" value and can contain multiple // sub-strings so that you could open different filters with one button (such as // all Video Decoders). Example "StringParam=DIVX|XVID|MPEG4". // "Extended" - Extended buttons are similar to the normal buttons with the exception that they // use the Extended functions (see default.key file for a list). In addition to // the "Function" value, you must also supply the "FunctionParam" value so that it // could be passed on to the Function. For example, when "Function=exSetAR", setting // "FunctionParam=1" will set the Aspect Ratio mode to "Source Aspect Ratio". // "Skin" - Use this button-type to replace the Zoom Player skin with a single button. // The StringParam value is assigned the new skin name (i.e. "brownish.skn"). // // Here are the possible values of the "Activate" parameter: // "Closed" - Draw the Active bitmap when the current play state is "Closed". // "Stop" - Draw the Active bitmap when the current play state is "Stopped". // "Play" - Draw the Active bitmap when the current play state is "Playing". // "Pause" - Draw the Active bitmap when the current play state is "Paused". // "Mute" - Draw the Active bitmap when the Audio is muted. // "RandomPlay" - Draw the Active bitmap when Random Play is enabled. // "LoopPlay" - Draw the Active bitmap when playback is set to loop on the current track. // "EQState" - Draw the Active bitmap when the Equalizer is ON // // Note, Alpha blending by default is disabled, if you enable Alpha blended buttons by using the "AlphaX" // parameter, you should make sure that the button is listed toward the end of the skin file after the // background it should be blended against has already been drawn! Another thing is that Alpha Blending // only works against the background and not against other buttons. Using Alpha Blended icons is quite CPU // intensive when the skin is drawn/resized. // // See "brownish.skn" and "brownishdvd.skn" files for multiple examples of this function. Using this // function is slightly faster loading than "CreateButton". // // // AddBarButton(SrcX,SrcY,Function,Hint) // // - Unlike the CreateButton function, this button adds optional buttons to the Control Bar. // Every button you add can be turned ON/OFF by the user through the Control Bar options dialog. // However, only buttons you skinned are accessible to the user. Due to this, I request that // at the very least skin the control bar buttons used by this sample skin. // The function parameter can contain the same values as specified in the CreateButton function. // - The Hint Value is optional, not entering a paramater means that there isn't a hint. // // // PlayListData(DestX=Value,DestY=Value,Width=Value,Height=Value,MinWidth=Value,MinHeight=Value, // Border=RGBValue,Background=RGBValue,BackgroundGrad=RGBValue,Foreground=RGBValue,SelectBG=RGBValue, // SelectFG=RGBValue,Highlight=RGBValue,ScrollBG=RGBValue,ScrollBGGrad=RGBValue,ScrollFace=RGBValue, // ScrollDark=RGBValue,ScrollLight=RGBValue,BGSrcX=Value,BGSrcY=Value,BGSrcW=Value,BGSrcH=Value, // ScrollWidth=Value,ScrollBGX=Value,ScrollBGY=Value,ScrollBGW=Value,ScrollBGH=Value,ScrollFGX=Value, // ScrollFGY=Value,ScrollFGW=Value,ScrollFGH=Value) // // - Parameters: // DestX : X Offset in which to position the Item List within the Play List Form. // DestY : Y Offset in which to position the Item List within the Play List Form. // Width : Width of Item List within the Play List Form. // Height : Height of Item List within the Play List Form. // MinWidth : Minimum Width of Play List Form as a whole. // MinHeight : Minimum Height of Play List Form as a whole. // Border : RGB Value representing the Item List Border Color. // Background : RGB Value representing the Item List Background Color. // BackgroundGrad : RGB Value representing the Item List Background Gradient (only if you want gradient shading). // BackGradHorz : True / False Value if you want a horizontal gradient for the Background (default = False, e.g. Vertical) // Foreground : RGB Value representing the Item List Foreground (Text) Color. // SelectBG : RGB Value representing the Item List Selected Item Background Color. // SelectBorder : RGB Value representing the Item List Selected Item Border Color. // SelectFG : RGB Value representing the Item List Selected Item Foreground (Text) Color. // SearchBG : RGB Value representing the Item List Search Box Background Color. // Highlight : RGB Value representing the Item List Playing Item (Text) Color. // ScrollBG : RGB Value representing the Item List Scrollbar Background Color. // ScrollBGGrad : RGB Value representing the Item List Scrollbar Background Gradient (only if you want gradient shading). // ScrollGradHorz : True / False Value if you want a horizontal gradient for the Scroll Background (default = False, e.g. Vertical) // ScrollFace : RGB Value representing the Item List Scrollbar Thumb Face Color. // ScrollDark : RGB Value representing the Item List Scrollbar Thumb Dark (Shadow) Color. // ScrollLight : RGB Value representing the Item List Scrollbar Thumb Light (Brighter) Color. // ScrollWidth : The Width of the Scroll Bar in Pixels (specifying a Background image overrides this). // ScrollHeight : The Height of the Scroll Bar in Pixels (specifying a Thumb bitmap overrides this). // BGSrcX : Specifies a Source X Offset for a tiled background image to be used instead of the Background parameter. // BGSrcY : Specifies a Source Y Offset for a tiled background image to be used instead of the Background parameter. // BGSrcW : Specifies a Source Width for a tiled background image to be used instead of the Background parameter. // BGSrcH : Specifies a Source Height for a tiled background image to be used instead of the Background parameter. // ScrollBGX : Specifies a Source X Offset for a tiled background image to used instead of the ScrollBG parameter. // ScrollBGY : Specifies a Source Y Offset for a tiled background image to used instead of the ScrollBG parameter. // ScrollBGW : Specifies a Source Width for a tiled background image to used instead of the ScrollBG parameter. // ScrollBGH : Specifies a Source Height for a tiled background image to used instead of the ScrollBG parameter. // ScrollFGX : Specifies a Source X Offset for a bitmap to be used as the Scrollbar Thumb. // ScrollFGY : Specifies a Source Y Offset for a bitmap to be used as the Scrollbar Thumb. // ScrollFGW : Specifies a Source Width for a bitmap to be used as the Scrollbar Thumb. // ScrollFGH : Specifies a Source Height for a bitmap to be used as the Scrollbar Thumb. // // // EQData(Width=Value,Height=Value,BarX=Value,BarY=Value,BarW=Value,BarC=Value, // BarPX=Value,BarPY=Value,Bar[n]X=Value,Bar[n]Y=Value) // // - Parameters: // Width : Width of the Equalizer Window (Equalizer Window has a fixed width). // Height : Height of the Equalizer Window (Equalizer Window has a fixed height). // BarX : Specifies a Source X Offset for the Equalizer Bar Graphics. // BarY : Specifies a Source Y Offset for the Equalizer Bar Graphics. // BarW : Specifies a Width (In Pixels) for the Equalizer Bar Graphics. // BarC : Specifies the number of Bar Stages, this needs to be an uneven number! // BarPX : Specifies a Destination X Offset for the PreAmp Bar. // BarPY : Specifies a Destination Y Offset for the PreAmp Bar. // Bar[n]X : The [n] is replaced by a number from 0 to 9 representing the 10 different // Equalizer Bars (Bands) X Positions from Left to Right (for example Bar2X=100). // Bar[n]Y : The [n] is replaced by a number from 0 to 9 representing the 10 different // Equalizer Bars (Bands) Y Positions from Left to Right (for example Bar5Y=20). // // // OSDPopUp(MinWidth=Value,MinHeight=Value,xMargin=Value,yMargin=Value,TransColor=RGBValue) // // - This procedure enables you to skin the Pop-Up OSD Action window. // You can do the actual skinning using the skinning functions below (similar to skinning the main window). // // - Parameters: // MinWidth : Minimum width required to draw the OSD Background // MinHeight : Minimum height required to draw the OSD Background // xMargin : Number of pixels from the left border of the OSD Window to make room for the font against the edge. // yMargin : Number of pixels from the top border of the OSD Window to make room for the font against the edge. // TransColor : RGB Value representing the transparent color. Don't set this parameter to disable transparency. // // // TintSource(SrcX=Value,SrcY=Value,Width=Value,Height=Value,rTint=Value,gTint=Value,bTint=Value,cIgnore=RGBValue) // // - This procedure allows you to tint the color of regions within the source image. Using it, // you can create different skin files that contain different color schemes from the same // source image. // // - Parameters: // SrcX : X Offset in pixels from where to begin the color tinting. // SrcY : Y Offset in pixels from where to begin the color tinting. // Width : Width of rectangle to tint. // Height : Height of rectangle to tint. // rTint : The intensity of Red tinting (can be a negative value). // gTint : The intensity of Green tinting (can be a negative value). // bTint : The intensity of Blue tinting (can be a negative value). // cIgnore : A Hex RGB value containing the color that shouldn't be tinted (the transparency color usually). // // Example: // TintSource(SrcX=85,SrcY=495,Width=56,Height=28,rTint=-50,gTint=25,bTint=25,cIgnore=FF00FF) // // // // The following commands perform the exact function as the above, but apply to the Control Bar. // // CopyCBarBitmap(SrcX,SrcY,Width,Height,DestX,DestY) // CopyCBarStretchedBitmap(SrcX,SrcY,SrcWidth,SrcHeight,DestX,DestY,SrcWidth,SrcHeight) // CopyCBarTransBitmap(SrcX,SrcY,Width,Height,DestX,DestY,RGBColor) // CopyCBarMaskedBitmap(SrcX,SrcY,Width,Height,DestX,DestY) // GradientCBarRectH(DestX,DestY,Width,Height,RGBColor1,RGBColor2) // GradientCBarRectV(DestX,DestY,Width,Height,RGBColor1,RGBColor2) // TileCBarBitmapV(SrcX,SrcY,Width,Height,DestX,DestY,FillHeight) // TileCBarBitmapH(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth) // TileCBarBitmapA(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth,FillHeight) // FillCBarRect(DestX,DestY,Width,Height,RGBColor) // TimeLineCBarBG(SrcX,SrcY,Width) // TimeLineCBarFG(SrcX,SrcY,Width) // TimeLineCBarActive(SrcX,SrcY,Width,Height,XOffset,YOffset) // TimeLineCBarFontShade(Left,Right,Top,Bottom) // TimeLineCBarStart(SrcX,SrcY,Width) // TimeLineCBarEnd(SrcX,SrcY,Width) // // // The following commands perform the exact function as the above, but apply to the Play List. // // CopyPLBitmap(SrcX,SrcY,Width,Height,DestX,DestY) // CopyPLStretchedBitmap(SrcX,SrcY,SrcWidth,SrcHeight,DestX,DestY,SrcWidth,SrcHeight) // CopyPLTransBitmap(SrcX,SrcY,Width,Height,DestX,DestY,RGBColor) // CopyPLMaskedBitmap(SrcX,SrcY,Width,Height,DestX,DestY) // TilePLBitmapV(SrcX,SrcY,Width,Height,DestX,DestY,FillHeight) // TilePLBitmapH(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth) // TilePLBitmapA(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth,FillHeight) // GradientPLRectH(DestX,DestY,Width,Height,RGBColor1,RGBColor2) // GradientPLRectV(DestX,DestY,Width,Height,RGBColor1,RGBColor2) // FillPLRect(DestX,DestY,Width,Height,RGBColor) // ResizePLBox(XOfs,YOfs,Width,Height,CursorType) // // // The following commands perform the exact function as the above, but apply to the pop-up OSD. // // CopyOSDBitmap(SrcX,SrcY,Width,Height,DestX,DestY) // CopyOSDStretchedBitmap(SrcX,SrcY,SrcWidth,SrcHeight,DestX,DestY,SrcWidth,SrcHeight) // CopyOSDTransBitmap(SrcX,SrcY,Width,Height,DestX,DestY,RGBColor) // CopyOSDMaskedBitmap(SrcX,SrcY,Width,Height,DestX,DestY) // TileOSDBitmapV(SrcX,SrcY,Width,Height,DestX,DestY,FillHeight) // TileOSDBitmapH(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth) // TileOSDBitmapA(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth,FillHeight) // GradientOSDRectH(DestX,DestY,Width,Height,RGBColor1,RGBColor2) // GradientOSDRectV(DestX,DestY,Width,Height,RGBColor1,RGBColor2) // FillOSDRect(DestX,DestY,Width,Height,RGBColor) // // The following commands perform the exact function as the above, but apply to the Equalizer. // // CopyEQBitmap(SrcX,SrcY,Width,Height,DestX,DestY) // CopyEQStretchedBitmap(SrcX,SrcY,SrcWidth,SrcHeight,DestX,DestY,SrcWidth,SrcHeight) // CopyEQTransBitmap(SrcX,SrcY,Width,Height,DestX,DestY,RGBColor) // CopyEQMaskedBitmap(SrcX,SrcY,Width,Height,DestX,DestY) // TileEQBitmapV(SrcX,SrcY,Width,Height,DestX,DestY,FillHeight) // TileEQBitmapH(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth) // TileEQBitmapA(SrcX,SrcY,Width,Height,DestX,DestY,FillWidth,FillHeight) // GradientEQRectH(DestX,DestY,Width,Height,RGBColor1,RGBColor2) // GradientEQRectV(DestX,DestY,Width,Height,RGBColor1,RGBColor2) // FillEQRect(DestX,DestY,Width,Height,RGBColor) // // // // Skin Groups: // // Skin Grouping is a powerful tool for creating multiple skin variations or conditional skin // behavior within the same skin file. What it does is allow you to segment parts of the code // into a group. Anything within the specified segement will only be used if that Group is enabled, // otherwise, that part of the skin is ignored. Using the "exGroupToggle", "exGroupEnable", // "exGroupDisable" and "exGroupSet" functions you can modify which groups are active at any one time // and thus change the appearance of the skin. You can see an example of this in the default skin. // // There are upto 16 skin groups you can define. Each group has a binary bitmask value: // // | Group / Value | Using the table to the left, if you would like to enable "Group #4" and "Group #15", // | 1 1 | you would call the "exGroupEnable" function with a parameter value of 8192+8 = 8200. // | 2 2 | // | 3 4 | To begin a Group within the code you use the "StartGroup" function. For example, to // | 4 8 | begin "Group #15" you would do "StartGroup(8192)". After this line you would type all // | 5 16 | the code belonging to this group and then end with the "EndGroup(8192)" command. // | 6 32 | // | 7 64 | For ease of use, you can have multiple "Start" and "End" statements for the same group // | 8 128 | in different parts of the code. // | 9 256 | // | 10 512 | It is important that you specify the ActiveGroups variable (see above) to determine which // | 12 1024 | is the active group. // | 13 2048 | // | 14 4096 | Any code that isn't within a Group Block is considered shared between all the groups // | 15 8192 | (for example, there may not be a need to change the PlayList,Equalizer or Control Bar code). // | 16 16384 | // // // // Comments: // // All the dynamic settings and functions can accept SIMPLE 2 item math. Basically you // can do addition and subtraction, nothing else. This is only used so you can position // items relative to the window size. // // Make sure you set all variables, otherwise when switching skins, some data will // remain from the older skin. // // Double check for Typos and corruct structure (as shown in the sample below), when // loading the skin, not a lot of error checking is performed, and you can easily // cause the player to crash! // // Base Information used when loading the skin: SkinFileName = (brownish.bmp) // Initial settings: iWinWidth = (430) iWinHeight = (360) iVidWidth = (400) iVidHeight = (300) iVidLeft = (4) iVidTop = (4) iMinWidth = (352) iMinHeight = (264) tLineFontSize = (10) tLineFontYOfs = (0) tLineFontFace = (Tahoma) tLineFontColor = (FFFFFF) tLineFontStyle = (Bold) cBarFontSize = (10) cBarFontYOfs = (0) cBarFontFace = (Tahoma) cBarFontColor = (FFFFFF) cBarFontStyle = (Bold) cBarButWidth = (25) cBarButHeight = (24) //iTransColor = (B5968C) // Dynamic settings (items with window-size relative positioning): tLineWidth = (<WinWidth>-220) tLineHeight = (14) tLineLeft = (21) tLineTop = (<WinHeight>-47) cBarTLWidth = (<cBarWidth>-12) cBarTLHeight = (14) cBarTLLeft = (6) cBarTLTop = (5) // TimeLine background and foreground source bitmap position TimeLineBG(57,4,40) TimeLineFG(17,4,40) // User Interface elements such as Volume and Play Rate Controls VolumeExData(SrcX=208,SrcY=0,DestX=<WinWidth>-155,DestY=<WinHeight>-47,Width=42,Height=14,Images=12) RateExData(SrcX=172,SrcY=0,DestX=<WinWidth>-87,DestY=<WinHeight>-47,Width=35,Height=14) // Control Bar TimeLine background source bitmap position TimeLineCBarBG(113,55,40) TimeLineCBarFG(73,55,40) // Control Bar and Integrated timeline Bitmap Separator (active/inactive areas) TimeLineActive(65,55,2,14,1,0) TimeLineCBarActive(69,55,2,14,1,0) // Left Control Bar Side CopyCBarBitmap(115,0,6,24,0,0) // Right Control Bar Side CopyCBarBitmap(121,0,6,24,<cBarWidth>-6,0) // Top Control Bar Bar TileCBarBitmapH(128,0,40,5,6,0,<cBarWidth>-12) // Bottom Control Bar Bar TileCBarBitmapH(128,5,40,5,6,<cBarHeight>-5,<cBarWidth>-12) // Top Left corner CopyBitmap(0,23,4,4,0,0) // Top Right corner CopyBitmap(0,72,25,1,<WinWidth>-25,0) // Bottom Left corner CopyBitmap(0,99,1,25,0,<WinHeight>-25) // Bottom Left corner top CopyBitmap(0,27,3,31,0,<WinHeight>-57) // Bottom Right Corner CopyBitmap(32,28,26,26,<WinWidth>-26,<WinHeight>-26) // Bottom Right top CopyBitmap(6,28,25,30,<WinWidth>-25,<WinHeight>-56) // Video Bottom bar TileBitmapH(4,26,40,1,3,<WinHeight>-56,<WinWidth>-28) // Bar background FillRect(3,<WinHeight>-55,<WinWidth>-29,29,B4968B) // Bar Bottom Separator FillRect(0,<WinHeight>-26,<WinWidth>-26,1,9E8075) // Bar Right Separator FillRect(<WinWidth>-26,<WinHeight>-55,1,29,9E8075) // Left bar TileBitmapV(0,27,4,40,0,4,<WinHeight>-60) // Right bar TileBitmapV(5,28,26,40,<WinWidth>-26,1,<WinHeight>-57) // Top Bar TileBitmapH(4,23,40,4,4,0,<WinWidth>-29) // Bottom Bar TileBitmapH(59,28,40,25,1,<WinHeight>-25,<WinWidth>-27) // Timeline left side CopyBitmap(0,0,17,22,4,<WinHeight>-51) // Timeline right side CopyBitmap(97,0,17,22,<WinWidth>-199,<WinHeight>-51) // Timeline top TileBitmapH(17,0,40,4,21,<WinHeight>-51,<WinWidth>-220) // Timeline bottom TileBitmapH(17,18,40,4,21,<WinHeight>-33,<WinWidth>-220) // Volume bar left side CopyBitmap(100,28,23,22,<WinWidth>-178,<WinHeight>-51) // Volume bar right side CopyBitmap(124,28,11,22,<WinWidth>-113,<WinHeight>-51) // Volume bar top CopyBitmap(17,0,42,4,<WinWidth>-155,<WinHeight>-51) // Volume bar bottom CopyBitmap(17,18,42,4,<WinWidth>-155,<WinHeight>-33) // Rate bar right side CopyBitmap(148,28,23,22,<WinWidth>-52,<WinHeight>-51) // Rate bar left side CopyBitmap(136,28,11,22,<WinWidth>-98,<WinHeight>-51) // Rate bar top CopyBitmap(17,0,35,4,<WinWidth>-87,<WinHeight>-51) // Rate bar bottom CopyBitmap(17,18,35,4,<WinWidth>-87,<WinHeight>-33) // Video Area FillRectNT(4,4,<VidWidth>,<VidHeight>,000000) // Right Buttons CreateExButton(Type=Normal,SrcX= 0,SrcY= 72,Width=25,Height=27,DestX=<WinWidth>-25,DestY= 0,Function=fnExit,Hint=Exit Program) CreateExButton(Type=Normal,SrcX= 50,SrcY= 72,Width=25,Height=27,DestX=<WinWidth>-25,DestY= 27,Function=fnMax,Hint=Maximize Window) CreateExButton(Type=Normal,SrcX=100,SrcY= 72,Width=25,Height=27,DestX=<WinWidth>-25,DestY= 54,Function=fnMinimize,Hint=Minimize Window) CreateExButton(Type=Normal,SrcX= 0,SrcY= 99,Width=25,Height=27,DestX=<WinWidth>-25,DestY= 81,Function=fnFullScreen,Hint=FullScreen Mode) CreateExButton(Type=Normal,SrcX= 50,SrcY= 99,Width=25,Height=27,DestX=<WinWidth>-25,DestY=108,Function=fnZoom,Hint=Zoom Mode) CreateExButton(Type=Normal,SrcX=250,SrcY=125,Width=25,Height=27,DestX=<WinWidth>-25,DestY=135,Function=fnSceneCut,Hint=Scene Cut Editor) CreateExButton(Type=Normal,SrcX=150,SrcY=125,Width=25,Height=27,DestX=<WinWidth>-25,DestY=162,Function=fnBlankingPreset,Hint=Blanking Preset Editor) CreateExButton(Type=Normal,SrcX=100,SrcY=126,Width=25,Height=27,DestX=<WinWidth>-25,DestY=189,Function=fnPlayList,Hint=Play List Editor) CreateExButton(Type=Normal,SrcX= 0,SrcY=126,Width=25,Height=27,DestX=<WinWidth>-25,DestY=216,Function=fnChapter,Hint=Chapter Editor) CreateExButton(Type=Normal,SrcX= 50,SrcY=126,Width=25,Height=27,DestX=<WinWidth>-25,DestY=243,Function=fnSkin,Hint=Skin Selector) CreateExButton(Type=Normal,SrcX=100,SrcY= 99,Width=25,Height=27,DestX=<WinWidth>-25,DestY=270,Function=fnOptions,Hint=Options) // Right Button divider CopyBitmap(0,72,25,1,<WinWidth>-25,297) // Bottom Buttons CreateExButton(Type=Normal,SrcX= 0,SrcY=203,Width=27,Height=25,DestX= 0,DestY=<WinHeight>-25,Function=fnRewind,Hint=Rewind) CreateExButton(Type=Normal,SrcX= 0,SrcY=153,Width=27,Height=25,DestX= 27,DestY=<WinHeight>-25,Function=fnPlay,Hint=Play / Pause Video) CreateExButton(Type=Normal,SrcX= 0,SrcY=178,Width=27,Height=25,DestX= 54,DestY=<WinHeight>-25,Function=fnFastForward,Hint=Fast Forward) CreateExButton(Type=Normal,SrcX= 54,SrcY=153,Width=27,Height=25,DestX= 81,DestY=<WinHeight>-25,Function=fnStop,Hint=Stop Video) CreateExButton(Type=Normal,SrcX= 54,SrcY=178,Width=27,Height=25,DestX=108,DestY=<WinHeight>-25,Function=fnPrevTrack,Hint=Previous Track) CreateExButton(Type=Normal,SrcX=162,SrcY=178,Width=27,Height=25,DestX=135,DestY=<WinHeight>-25,Function=fnPrevChapter,Hint=Previous Chapter) CreateExButton(Type=Normal,SrcX=216,SrcY=178,Width=27,Height=25,DestX=162,DestY=<WinHeight>-25,Function=fnNextChapter,Hint=Next Chapter) CreateExButton(Type=Normal,SrcX=108,SrcY=178,Width=27,Height=25,DestX=189,DestY=<WinHeight>-25,Function=fnNextTrack,Hint=Next Track) CreateExButton(Type=Normal,SrcX=270,SrcY=203,Width=27,Height=25,DestX=216,DestY=<WinHeight>-25,Function=fnAudioTrack,Hint=Next Audio Track) CreateExButton(Type=Normal,SrcX=270,SrcY=178,Width=27,Height=25,DestX=243,DestY=<WinHeight>-25,Function=fnDVDSub,Hint=Next Subtitle Track) CreateExButton(Type=Normal,SrcX=108,SrcY=153,Width=27,Height=25,DestX=270,DestY=<WinHeight>-25,Function=fnOpen,Hint=Open Media) CreateExButton(Type=Normal,SrcX=108,SrcY=203,Width=27,Height=25,DestX=297,DestY=<WinHeight>-25,Function=fnBar,Hint=Show / Hide Control Bar) // Bottom Button divider CopyBitmap(0,153,1,25,324,<WinHeight>-25) // TimeLine Buttons CreateExButton(Type=Normal,SrcX=151,SrcY=71,Width=8,Height=12,DestX= 10,DestY=<WinHeight>-46,Function=fnSkipBackward,Hint=Skip Backwards) CreateExButton(Type=Normal,SrcX=151,SrcY=84,Width=8,Height=12,DestX=<WinWidth>-196,DestY=<WinHeight>-46,Function=fnSkipForward,Hint=Skip Forward) // Volume bar Buttons CreateExButton(Type=Normal,SrcX=154,SrcY=51,Width=9,Height= 9,DestX=<WinWidth>-112,DestY=<WinHeight>-50,Function=fnVolUp,Hint=Increase Volume) CreateExButton(Type=Normal,SrcX=154,SrcY=61,Width=9,Height= 9,DestX=<WinWidth>-112,DestY=<WinHeight>-39,Function=fnVolDown,Hint=Decrease Volume) // Rate bar Buttons CreateExButton(Type=Normal,SrcX=154,SrcY=51,Width=9,Height= 9,DestX=<WinWidth>- 97,DestY=<WinHeight>-50,Function=fnIncRate,Hint=Increase Play Rate) CreateExButton(Type=Normal,SrcX=154,SrcY=61,Width=9,Height= 9,DestX=<WinWidth>- 97,DestY=<WinHeight>-39,Function=fnDecRate,Hint=Decrease Play Rate) // Control Bar Buttons AddBarButton(0,252,fnPlay,Play / Pause Video) AddBarButton(100,228,fnSlowMotion,Slow Motion) AddBarButton(50,228,fnFastForward,Fast Forward) AddBarButton(100,276,fnPrevChapter,Previous Chapter) AddBarButton(150,276,fnNextChapter,Next Chapter) AddBarButton(50,252,fnStop,Stop Video) AddBarButton(0,276,fnPrevTrack,Previous Track) AddBarButton(50,276,fnNextTrack,Next Track) AddBarButton(250,252,fnAudioTrack,Next Audio Track) AddBarButton(250,228,fnDVDSub,Next Subtitle Track) AddBarButton(200,252,fnZoomIn,Zoom-In) AddBarButton(200,228,fnZoomOut,Zoom-Out) AddBarButton(200,276,fnZoom,Zoom Mode) AddBarButton(150,300,fnFullScreen,FullScreen Mode) AddBarButton(100,300,fnARCycle,Cycle Aspect Ratio Modes) AddBarButton(200,300,fnBlankingNav,Blanking Navigator) AddBarButton(0,300,fnVolUp,Increase Volume) AddBarButton(50,300,fnVolDown,Decrease Volume) AddBarButton(150,228,fnEject,Eject) AddBarButton(150,252,fnOpen,Open Media) AddBarButton(100,252,fnExit,Exit Program) // Example of a Biliniar streched bitmap copy //CopyStretchedBitmap(150,98,52,27,4,4,<VidWidth>,<VidHeight>) // Example of a Gradient fill of the Video Area, Red to White //GradientRectV(4,4,<VidWidth>,<VidHeight>,FF00FF,00FF00) // Example of Transparent bitmap copy //CopyTransBitmap(251,0,32,16,10,10,ECD000) // Example of Alpha Blended Mask Copy, Mask must be aligned to the right of the bitmap (and of the same size) //CopyMaskedBitmap(267,153,16,16,<WinWidth>-24,<WinHeight>-50) // Example of a button using the EX functions (see "default.key" for a list of functions). //CreateExButton(Type=Extended,SrcX=0,SrcY=72,Width=25,Height=27,DestX=0,DestY=0,Function=exSetAR,FunctionParam=1,Hint=Set Aspect Ratio to Source Aspect Ratio) // Example of a filter property opening button //CreateExButton(Type=Filter,SrcX=0,SrcY=72,Width=25,Height=27,DestX=0,DestY=0,StringParam=DivX|XviD|MPEG4|MPEG-4,Hint=Open any MPEG4 based decoder filter) // Example of a Transparent Button //CreateExButton(Type=Normal,SrcX=32,SrcY=55,Width=16,Height=16,DestX=<WinWidth>-22,DestY=<WinHeight>-50,Function=fnInfo,TransColor=ECD000,Hint=File Information) // Example of an Alpha Blended Button with Hovering (Mouse-Over) //CreateExButton(Type=Normal,SrcX=251,SrcY=153,Width=16,Height=16,HoverX=299,HoverY=153,AlphaX=283,AlphaY=153,DestX=<WinHalfWidth>+22,DestY=<WinHeight>-50,Function=fnInfo,Hint=File Information) // Example of Drawing Dynamic Text, First draw the Shadow (One Pixel lower and drawn first) //DrawExText(DestX=5,DestY=<WinHeight>-56,Width=<WinWidth>-10,Height=20,Align=Center,Case=UpFirst,FontName=Arial,FontSize=8,FontColor=000000,FontStyle=Bold,Text=<FileName>) // Then the Actual Text //DrawExText(DestX=5,DestY=<WinHeight>-57,Width=<WinWidth>-10,Height=20,Align=Center,Case=UpFirst,FontName=Arial,FontSize=8,FontColor=FFFFFF,FontStyle=Bold,Text=<FileName>) // Another example of Drawing Dynamic Text (Playing times) //DrawExText(DestX=5,DestY=<WinHeight>-57,Width=<WinWidth>-10,Height=20,Align=Center,Case=UpFirst,FontName=Arial,FontSize=8,FontColor=FFFFFF,FontStyle=Bold,Text=At <Time> out of <Duration> - Remaining: <TimeRemain>) // Example of using the same graphics of the Play Rate Bar for Audio Balance //BalanceExData(SrcX=172,SrcY=0,DestX=<WinWidth>-87,DestY=<WinHeight>-47,Width=35,Height=14) // Play List - Very simplistic, no bitmap is actually used FillPLRect(0,0,<PLWinWidth>,<PLWinHeight>,6F6F6F) FillPLRect(0,0,<PLWinWidth>-1,<PLWinHeight>-1,FFFFFF) FillPLRect(1,1,<PLWinWidth>-2,<PLWinHeight>-2,C0C0C0) FillPLRect(<PLWinWidth>-67,5,62,23,6F6F6F) CreateExButton(Type=Normal,Text=Add Files,FontColor=000000,Color=B0B0B0,Target=PlayList,Width=60,Height=21,DestX=<PLWinWidth>-66,DestY=6,Function=fnPLAddFiles,Hint=Add Files to Play List) FillPLRect(<PLWinWidth>-67,30,62,23,6F6F6F) CreateExButton(Type=Normal,Text=Add Dir,FontColor=000000,Color=B0B0B0,Target=PlayList,Width=60,Height=21,DestX=<PLWinWidth>-66,DestY=31,Function=fnPLAddDir,Hint=Add Directory to Play List) FillPLRect(<PLWinWidth>-67,60,62,23,6F6F6F) CreateExButton(Type=Normal,Text=Remove,FontColor=000000,Color=B0B0B0,Target=PlayList,Width=60,Height=21,DestX=<PLWinWidth>-66,DestY=61,Function=fnPLRemove,Hint=Remove Selected Items) FillPLRect(<PLWinWidth>-67,85,62,23,6F6F6F) CreateExButton(Type=Normal,Text=Clear,FontColor=000000,Color=B0B0B0,Target=PlayList,Width=60,Height=21,DestX=<PLWinWidth>-66,DestY=86,Function=fnPLClear,Hint=Clear Play List) FillPLRect(<PLWinWidth>-67,115,62,23,6F6F6F) CreateExButton(Type=Normal,Text=Load List,FontColor=000000,Color=B0B0B0,Target=PlayList,Width=60,Height=21,DestX=<PLWinWidth>-66,DestY=116,Function=fnPLLoadList,Hint=Load Play List) FillPLRect(<PLWinWidth>-67,140,62,23,6F6F6F) CreateExButton(Type=Normal,Text=Save List,FontColor=000000,Color=B0B0B0,Target=PlayList,Width=60,Height=21,DestX=<PLWinWidth>-66,DestY=141,Function=fnPLSaveList,Hint=Save Play List) FillPLRect(<PLWinWidth>-67,165,62,23,6F6F6F) CreateExButton(Type=Normal,Text=Sort,FontColor=000000,Color=B0B0B0,Target=PlayList,Width=60,Height=21,DestX=<PLWinWidth>-66,DestY=166,Function=fnPLSort,Hint=Sort Play List) FillPLRect(<PLWinWidth>-67,195,28,23,6F6F6F) CreateExButton(Type=Normal,Text=UP,FontColor=000000,Color=B0B0B0,Target=PlayList,Width=26,Height=21,DestX=<PLWinWidth>-66,DestY=196,Function=fnPLItemUp,Hint=Move Selected Items Up) FillPLRect(<PLWinWidth>-33,195,28,23,6F6F6F) CreateExButton(Type=Normal,Text=DN,FontColor=000000,Color=B0B0B0,Target=PlayList,Width=26,Height=21,DestX=<PLWinWidth>-32,DestY=196,Function=fnPLItemDown,Hint=Move Selected Items Down) FillPLRect(<PLWinWidth>-67,<PLWinHeight>-28,62,23,6F6F6F) CreateExButton(Type=Normal,Text=Close,FontColor=000000,Color=B0B0B0,Target=PlayList,Width=60,Height=21,DestX=<PLWinWidth>-66,DestY=<PLWinHeight>-27,Function=fnPlayList,Hint=Close Play List) PlayListData(DestX=5,DestY=5,Width=<PLWinWidth>-76,Height=<PLWinHeight>-10,Border=6F6F6F,Background=9F9F9F,Foreground=000000,SelectBorder=006FDF,SelectBG=008FFF,SelectFG=000000,Highlight=FFFFFF,ScrollBG=8F8F8F,ScrollFace=C0C0C0,ScrollDark=8F8F8F,ScrollLight=EFEFEF)