home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2003 July
/
Chip_2003-07_cd1.bin
/
sharewar
/
zoom
/
zplay280.exe
/
Skin
/
plasticblue.skn
< prev
next >
Wrap
Text File
|
2002-09-05
|
34KB
|
671 lines
Plastic Blue 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)
// <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
// <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
// <TimeRemain> - Time Remaining
// <Duration> - Total Duration of playing content
// <DVDChapter> - Current DVD Chapter
// <DVDTitle> - Current DVD Title
//
// Vars:
//
// SkinFileName - Name of non-compressed (8bit/24bit) BMP image that contains all the skin graphics
// 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
// VolLeft - Left Position of Volume bar witin window
// VolTop - Top Position of Volume bar witin window
// 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)
// 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
//
//
//
// Functions:
//
//
// 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,SrcWidth,SrcHeight)
//
// - 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.
//
//
// FillRect(DestX,DestY,Width,Height,RGBColor)
//
// - Fill a rectangle with a specific Hex RGB color
// (000000=Black, FF0000=Red, 00FF00=Green, 0000FF=Blue, FFFFFF=White, exactly like in HTML).
//
//
// 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.
//
//
// 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.
//
//
// VolumeData(SrcX,SrcY,Width,Height)
//
// - Bitmap positioning used for the User Interface Volume Bar,
// Using this function enables the Volume Bar (makes it visible).
// This function has been replaced by "VolumeExData" and only listed for backward compatibility.
//
//
// VolumeExData(SrcX=Value,SrcY=Value,Width=Value,Height=Value,Images=Value,Vertical=True/False)
//
// - Parameters:
// SrcX : X-Offset from source image to the location Bitmap data.
// SrcY : Y-Offset from source image to the location Bitmap data.
// Width : Width of a Single Volume Image.
// Height : Width 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,Width=42,Height=14,Images=12,Vertical=False)
//
//
// RateData(SrcX,SrcY,Width,Height)
//
// - Bitmap positioning used for the User Interface Rate Bar,
// make sure you have 7 images drawn for the various volume
// levels, as seen in the defaultskin.bmp file.
// Using this function enables the Rate Bar (makes it visible).
//
//
// 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
//
// Example:
// ResizeBox(<WinWidth>-40,<WinHeight>-40,10,10,0)
//
//
// DrawText(DestX,DestY,FontName,FontSize,FontColorRGB,FontStyle,Text,Case)
//
// - This function has been replaced with "DrawExText", see below.
// This function doesn't support dynamic constants properly, so make sure you use "DrawExText".
// - Draw text anywhere on the user interface.
// The FontStyle has the same format as the tLineFontStyle.
//
// The Case entry can have the following values:
// 0 - Text unchanged
// 1 - Text converted to lowercase
// 2 - Text converted to uppercase
// 3 - First letter of text converted to uppercase, rest lowercase.
//
//
// DrawExText(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:
// 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").
// 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 - Play / Pause
// 001 - fnPause - Pause
// 002 - fnStop - Stop
// 003 - fnStopToFirst - Stop to First Track
// 004 - fnNextChapter - Go to Next Chapter (Internal or OGM in Media mode and DVD Bookmark in DVD mode)
// 005 - fnPrevChapter - Go to Previous Chapter (Internal or OGM or OGM in Media mode and DVD Bookmark in DVD mode)
// 006 - fnNextTrack - Go to Next Track
// 007 - fnPrevTrack - Go to Previous Track
// 008 - fnNextFrame - Frame Step Forward
// 009 - fnPrevFrame - Frame Step Backward
// 010 - fnNextVid - Play Next Video in current directory
// 011 - fnPrevVid - Play Previous Video in current directory
// 012 - fnSkipForward - Skip forward a specified number of seconds
// 013 - fnSkipBackward - Skip backward a specified number of seconds
// 014 - fnJumpForward - Jump forward a specified number of seconds
// 015 - fnJumpBackward - Jump backward a specified number of seconds
// 016 - fnSeekForward - Seek forward a specified number of seconds
// 017 - fnSeekBackward - Seek backward a specified number of seconds
// 018 - fnFastForward - Play in Fast Forward
// 019 - fnRewind - Rewind Playback (only in DVD mode)
// 020 - fnSlowMotion - Play in Slow Motion
// 021 - fnHalfFF - Half Fast forward speed
// 022 - fnHalfSM - Half Slow Motion speed
// 023 - fnVolUp - Increase Volume
// 024 - fnVolDown - Decrease Volume
// 025 - fnMute - Mute Volume (ON/OFF)
// 026 - fnABRepeat - Start, Stop and Cancel AB-Repeat
// 027 - fnPlayEndCycle - Cycle through the "On Play Complete" values
// 028 - fnZoomAxis - Toggles the Zoom Axis (used with Zoom-In / Zoom-Out)
// 029 - fnZoomIn - Zoom into video (enlarge video area)
// 030 - fnZoomOut - Zoom out of video (shrink video area)
// 031 - fnZoomInWidth - Stretch the video width
// 032 - fnZoomOutWidth - Shrink the video width
// 033 - fnZoomInHeight - Stretch the video height
// 034 - fnZoomOutHeight - Shrink the video height
// 035 - fnZoom - Zoom Mode
// 036 - fnFullScreen - Fullscreen Mode
// 037 - fnFitSource - Resize video to the original source size
// 038 - fnMax - Maximize video/window to fullscreen
// 039 - fnMinimize - Minimize Player
// 040 - fnARCycle - Cycle through Aspect Ratio settings
// 041 - fnRevARCycle - Reverse Cycle through Aspect Ratio settings
// 042 - fnBar - Control Bar Show / Hide
// 043 - fnOSD - On Screen Display Toggle (ON/OFF)
// 044 - fnOpen - Open File
// 045 - fnOpenDir - Open Directory
// 046 - fnInfo - Playback Information Dialog
// 047 - fnOptions - Options Dialog
// 048 - fnPresets - Presets Dialog
// 049 - fnPlayList - PlayList Dialog
// 050 - fnChapter - Chapter / Bookmark Editor Dialog
// 051 - fnSkin - Skin Selector
// 052 - fnKeyHelp - Opens the Keyboard Hotkey Dialog
// 053 - fnExit - Exit application
// 054 - fnAddChapter - Add Current Position to Chapter Editor
// 055 - fnSaveChapter - Save Chapter List
// 056 - fnDVDMode - Switch between the Media and DVD Modes
// 057 - fnDVDRootMenu - Go to the DVD's Root Menu
// 058 - fnDVDTitleMenu - Go to the DVD's Title Menu
// 059 - fnDVDSubMenu - Go to the DVD's Subtitle Menu
// 060 - fnDVDAudioMenu - Go to the DVD's Audio Menu
// 061 - fnDVDAngleMenu - Go to the DVD's Angle Menu
// 062 - fnDVDChapterMenu - Go to the DVD's Chapter Menu
// 063 - fnDVDMenuLeft - Move left on a DVD Menu
// 064 - fnDVDMenuRight - Move right on a DVD Menu
// 065 - fnDVDMenuUp - Move up on a DVD Menu
// 066 - fnDVDMenuDown - Move down on a DVD Menu
// 067 - fnDVDMenuSelect - Activate selected Menu item
// 068 - fnDVDCC - Closed Captions ON/OFF
// 069 - fnDVDAngle - Cycle through DVD Angles or OGG Video Tracks when in Media mode.
// 070 - fnDVDSub - Cycle through DVD Subtitles or VobSub/OGG Subtitle Tracks when in Media mode.
// 071 - fnAudioTrack - Cycle through Media or DVD Audio Tracks
// 072 - fnStayOnTop - Stay On Top (ON / OFF)
// 073 - fnMPEG4 - MPEG4/DivX/Video Decoder Dialog (if filter is in use)
// 074 - fnSub - Opens the VobSub dialog (if filter is in use)
// 075 - fnAudioFilter - TFM/DeDynamic Audio Filter Dialog (if filter is in use)
// 076 - fnIncRate - Increase Play rate
// 077 - fnDecRate - Decrease Play rate
// 078 - fnPrevFilterFile - Previous Manual Filter File
// 079 - fnNextFilterFile - Next Manual Filter File
// 080 - fnSaveDF - Save Definition File for the currently open media
// 081 - fnFrameCapture - Frame capture (filter must be manually enabled)
// 082 - fnPattern - Cycle Pattern Modes
// 083 - fnEject - Eject the selected drive (ZIP,JAZ,Sparq, SyJet, etc. plus any CD-Roms)
// 084 - fnOverlayControl - Show/Hide Overlay Color Control Interface
// 085 - fnOverlayApply - Apply the Overlay Color Controls (same as button in options)
// 086 - fnOverlayReset - Reset the Overlay Color Controls back to their default settings
// 087 - fnIncBrightness - Increase Overlay Brightness
// 088 - fnDecBrightness - Decrease Overlay Brightness
// 089 - fnIncContrast - Increase Overlay Contrast
// 090 - fnDecContrast - Decrease Overlay Contrast
// 091 - fnIncGamma - Increase Overlay Gamma
// 092 - fnDecGamma - Decrease Overlay Gamma
// 093 - fnIncHue - Increase Overlay Hue
// 094 - fnDecHue - Decrease Overlay Hue
// 095 - fnIncSaturation - Increase Overlay Saturation
// 096 - fnDecSaturation - Decrease Overlay Saturation
// 097 - fnUnpause - Unpause the video (Discrete Play)
// 098 - fnAddALBookmark - Add DVD Auto-Load Bookmark (DVD Only)
// 099 - fnSeekToStart - Seek to start of Video
// 100 - fnAudioDecoder - Pop the property dialog of filters with "Audio Decoder" in their titles
// 101 - fnDVDMenuPrev - Return from DVD Sub-Menu. If on Top Menu then Resume playback.
// 102 - fnChapterNav - Show/Hide the Chapter/Bookmark Navigator dialog
// 103 - fnPlayListNav - Show/Hide the Play List Navigator dialog
// 104 - fnFileNav - Show/Hide the File Navigator dialog
// 105 - fnBlankingNav - Show/Hide the Blanking Navigator dialog
// 106 - fnBlankingPreset - Show/Hide the Blanking Presets dialog
// 107 - fnBlanking - Show/Hide the Video Blanking
// 108 - fnRandomPlay - Turns Random (shuffle) Play ON/OFF
// 109 - fnResizeNav - Show/Hide the Resize Navigator dialog
// 110 - fnDisableDVDSub - Disable DVD Subtitle in DVD mode or VobSub/OGG Subtitles in Media mode
// 111 - fnPresetCycle - Cycle through Video Position Presets
// 112 - fnRevPresetCycle - Reverse Cycle through Video Position Presets
// 113 - fnBlankCycle - Cycle through Blanking Position Presets
// 114 - fnRevBlankCycle - Reverse Cycle through Blanking Position Presets
// 115 - fnDVDPlayStart - Play DVD bypassing Auto-Bookmark loading features
// 116 - fnNextArrowFunc - Next Active Arrow Control function
// 117 - fnPrevArrowFunc - Previous Active Arrow Control function
// 118 - fnAutoARToggle - Enable/Disable Automatic DVD Aspect Ratio
// 119 - fnFrameZeroALBM - Attempt setting a DVD Auto-Load bookmark at frame zero (DVD Only)
// 120 - fnPauseAtEOF - Pause Playback at end of currently playing file (Media Only)
// 121 - fnSceneCut - Show/Hide the Scene Cut Editor
// 122 - fnGoTo - Show/Hide the GoTo Timeline dialog
// 123 - fnGoToNav - Show/Hide the GoTo Timeline Navigator interface
// 124 - fnMWFuncNav - Show/Hide the Mouse Wheel Function Navigator interface
// 125 - fnLoop - Switch between Do Nothing and Auto Reply on Play Complete
//
// 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,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)
//
// - Parameters:
// Type : Type of Button (see below) (Default = "Normal")
// SrcX : X-Offset from source image to the location Bitmap data, Button Up graphics with Button Down aligned on the right.
// SrcY : Y-Offset from source image to the location Bitmap data
// 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
// 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.
//
// - 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".
//
// 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 Bar Button 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.
//
//
// 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)
// 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)
// TimeLineCBarStart(SrcX,SrcY,Width)
// TimeLineCBarEnd(SrcX,SrcY,Width)
//
//
// 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 = (plasticblue.bmp)
// Initial settings:
iWinWidth = (397)
iWinHeight = (327)
iVidWidth = (352)
iVidHeight = (264)
iVidLeft = (6)
iVidTop = (6)
iMinWidth = (210)
iMinHeight = (158)
//tLineColor = (008000) <- this isn't required since we're using a bitmap instead
tLineFontSize = (10)
tLineFontYOfs = (-1)
tLineFontFace = (Tahoma)
tLineFontColor = (FFFFFF)
tLineFontStyle = (Bold)
cBarFontSize = (10)
cBarFontYOfs = (0)
cBarFontFace = (Tahoma)
cBarFontColor = (FFFFFF)
cBarFontStyle = (Bold)
cBarButWidth = (20)
cBarButHeight = (20)
//cBarTLColor = (008000) <- this isn't required since we're using a bitmap instead
// Dynamic settings (items with window-size relative positioning):
tLineWidth = (<WinWidth>-134)
tLineHeight = (12)
tLineLeft = (6)
tLineTop = (<WinHeight>-51)
VolLeft = (<WinWidth>-81)
VolTop = (<WinHeight>-53)
RateLeft = (<WinWidth>-125)
RateTop = (<WinHeight>-53)
cBarTLWidth = (<cBarWidth>-6)
cBarTLHeight = (14)
cBarTLLeft = (3)
cBarTLTop = (3)
// TimeLine background and foreground source bitmap position
TimeLineBG(0,65,32)
TimeLineFG(0,111,32)
VolumeData(235,0,44,16)
RateData(280,0,44,16)
// Control Bar TimeLine background source bitmap position
TimeLineCBarBG(0,65,32)
TimeLineCBarFG(0,111,32)
// Top Left Control Bar Corner
CopyCBarBitmap(0,127,3,3,0,0)
// Top Right Control Bar Corner
CopyCBarBitmap(3,127,3,3,<cBarWidth>-3,0)
// Bottom Left Control Bar Corner
CopyCBarBitmap(0,130,3,3,0,<cBarHeight>-3)
// Bottom Right Control Bar Corner
CopyCBarBitmap(3,130,3,3,<cBarWidth>-3,<cBarHeight>-3)
// Top Control Bar Bar
TileCBarBitmapH(8,127,40,3,3,0,<cBarWidth>-6)
// Bottom Control Bar Bar
TileCBarBitmapH(8,127,40,3,3,<cBarHeight>-3,<cBarWidth>-6)
// Left Control Bar Bar
TileCBarBitmapV(0,133,3,6,0,3,<cBarHeight>-6)
// Right Control Bar Bar
TileCBarBitmapV(0,133,3,6,<cBarWidth>-3,3,<cBarHeight>-6)
// Control Bar Button queue,
// buttons will appear in the order they are added (left to right)
// Any button in this list can be manually hidden by the user
AddBarButton(0,140,fnPlay)
AddBarButton(40,140,fnPause)
AddBarButton(80,140,fnSlowMotion)
AddBarButton(120,140,fnFastForward)
AddBarButton(160,140,fnPrevChapter)
AddBarButton(200,140,fnNextChapter)
AddBarButton(240,140,fnStop)
AddBarButton(280,140,fnPrevTrack)
AddBarButton(0,160,fnNextTrack)
AddBarButton(40,160,fnZoom)
AddBarButton(80,160,fnZoomIn)
AddBarButton(120,160,fnZoomOut)
AddBarButton(160,160,fnFitSource)
AddBarButton(200,160,fnMax)
AddBarButton(240,160,fnFullscreen)
AddBarButton(160,180,fnARCycle)
AddBarButton(40,200,fnVolUp)
AddBarButton(80,200,fnVolDown)
AddBarButton(280,160,fnOpen)
AddBarButton(0,180,fnPresets)
AddBarButton(280,180,fnMPEG4)
AddBarButton(240,180,fnSub)
AddBarButton(200,180,fnAudioFilter)
AddBarButton(0,200,fnPattern)
AddBarButton(120,200,fnEject)
AddBarButton(40,180,fnExit)
// User Interface Buttons
CreateButton(49,23,23,23,8,<WinHeight>-31,fnPlay,Play / Pause Video)
CreateButton(49,46,23,23,33,<WinHeight>-31,fnPause,Pause Video)
CreateButton(95,0,23,23,58,<WinHeight>-31,fnStop,Stop Playback)
CreateButton(95,23,23,23,87,<WinHeight>-31,fnZoom,Go into Zoom Mode)
CreateButton(95,46,23,23,112,<WinHeight>-31,fnFullScreen,Switch to Fullscreen)
CreateButton(141,0,23,23,137,<WinHeight>-31,fnOpen,Open a file)
CreateButton(141,23,23,23,162,<WinHeight>-31,fnBar,Show / Hide Control Bar)
CreateButton(141,46,23,23,191,<WinHeight>-31,fnMinimize,Minimize Window)
CreateButton(49,0,23,23,<WinWidth>-31,8,fnExit,Exit Program)
CreateButton(187,0,23,23,<WinWidth>-31,53,fnPlayList,Open Play List)
CreateButton(187,23,23,23,<WinWidth>-31,78,fnChapter,Open Chapter Editor)
CreateButton(187,46,23,23,<WinWidth>-31,103,fnPresets,Open Preset Dialog)
CreateButton(187,69,23,23,<WinWidth>-31,128,fnSkin,Skin Selector)
CreateButton(187,92,23,23,<WinWidth>-31,157,fnOptions,Open Options Dialog)
// Example of transparent button (disabled since we don't use it)
//CreateButton(141,46,23,23,<WinWidth>-31,<WinHeight>-64,fnMinimize,Minimize Window,5A8EC6)
// Top Left corner
CopyBitmap(33,67,6,6,0,0)
// Top Right corner
CopyBitmap(0,59,39,6,<WinWidth>-39,0)
// Bottom Left corner
CopyBitmap(41,0,6,57,0,<WinHeight>-57)
// Bottom Right Corner
CopyBitmap(0,0,39,57,<WinWidth>-39,<WinHeight>-57)
// Video Area
FillRect(6,6,<VidWidth>,<VidHeight>,000000)
// Left bar
TileBitmapV(41,59,6,60,0,6,<WinHeight>-63)
// Right-Inner bar
TileBitmapV(41,59,6,60,<WinWidth>-39,6,<WinHeight>-63)
// Right bar
TileBitmapV(41,59,6,60,<WinWidth>-6,6,<WinHeight>-63)
// Top Bar
TileBitmapH(5,59,28,6,6,0,<WinWidth>-45)
// TimeLine upper bar
TileBitmapH(5,59,28,6,6,<WinHeight>-57,<WinWidth>-45)
// TimeLine lower bar
TileBitmapH(5,59,28,6,6,<WinHeight>-39,<WinWidth>-45)
// TimeLine rate divider
CopyBitmap(0,4,4,16,<WinWidth>-128,<WinHeight>-53)
// Bottom Bar
TileBitmapH(5,59,20,6,6,<WinHeight>-6,<WinWidth>-45)
// Lower Button Background
TileBitmapH(0,81,40,27,6,<WinHeight>-33,<WinWidth>-45)
// Right Button Background
TileBitmapV(0,81,27,28,<WinWidth>-33,6,<WinHeight>-45)