Initial community commit

This commit is contained in:
Jef 2024-09-24 14:54:57 +02:00
parent 537bcbc862
commit fc06254474
16440 changed files with 4239995 additions and 2 deletions

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,182 @@
; Winamp Skin Development Pack Installer
;--------------------------------
;Include Modern UI
!include "MUI.nsh"
;--------------------------------
; The name of the installer
Name "Winamp Skin Development Pack v5.9"
; The file to write
OutFile "WinampSDP_59.exe"
; The default installation directory
InstallDir $PROFILE\WinampSDP
; The text to prompt the user to enter a directory
DirText "Select the installation folder for the Winamp Skin Development Pack:"
; automatically close the installer when done.
AutoCloseWindow false
; hide the "show details" box
ShowInstDetails show
SetCompressor /SOLID lzma
;--------------------------------
;Interface Configuration
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_RIGHT
!define MUI_HEADERIMAGE_BITMAP "modern-header.BMP"
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\classic-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\classic-uninstall.ico"
;--------------------------------
Function .onInit
# the plugins dir is automatically deleted when the installer exits
InitPluginsDir
File /oname=$PLUGINSDIR\splash.bmp "splash.BMP"
advsplash::show 1000 600 400 0x04025C $PLUGINSDIR\splash
Pop $0
Delete $PLUGINSDIR\splash.bmp
FunctionEnd
;--------------------------------
;Pages
!insertmacro MUI_PAGE_LICENSE "License.txt"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
;--------------------------------
;Languages
!insertmacro MUI_LANGUAGE "English"
;--------------------------------
; The stuff to install
Section "Maki Compiler" SecCompiler
DetailPrint "Installing Maki Compiler..."
SetOutPath "$INSTDIR\"
File "..\..\Wasabi\mc.exe"
File "..\..\Wasabi\nscrt.dll"
SectionEnd
Section "Maki Standard Libraries" SecLibs
DetailPrint "Installing Maki Standard Libraries..."
SetOutPath "$INSTDIR\lib"
File /x "private.mi" "..\..\Wasabi\lib\*.m*"
SectionEnd
Section "Maki Community Scripts" SecLibsCom
DetailPrint "Installing Maki Community Scripts..."
SetOutPath "$INSTDIR\lib\com"
File /x "private.mi" "..\..\Wasabi\lib\com\*.m*"
SectionEnd
Section "Winamp Bento Source" SecSkinBento
DetailPrint "Installing Winamp Bento Source Code..."
SetOutPath "$INSTDIR\Skins\Big Bento"
File /r /x "about.m" /x "nibbles.m" "..\skins\Big Bento\*.m"
SetOutPath "$INSTDIR\Skins\Bento"
File /r "..\skins\Bento\*.m"
SectionEnd
Section "Winamp Modern Source" SecSkinModern
DetailPrint "Installing Winamp Modern Source Code..."
SetOutPath "$INSTDIR\Skins\Winamp Modern"
File /r "..\skins\Winamp Modern\*.m"
SectionEnd
# Where is the source code for ConsoleFile.w5s? This old version does not work with 5.9 :-(
/* Section "Wasabi Debugger" SecDebugger
DetailPrint "Installing Wasabi Debugger..."
SetOutPath "$INSTDIR\system"
File "ConsoleFile.w5s"
SectionEnd */
Section "Edit Plus Syntax Libs" SecEditplus
DetailPrint "Installing Edit Plus Syntax..."
SetOutPath "$INSTDIR"
File "Maki.*"
SectionEnd
Section ""
SetOutPath "$INSTDIR"
File "wasdp_readme.txt"
;Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall_WaSDP.exe"
ExecShell "open" "$INSTDIR\wasdp_readme.txt"
SectionEnd
;--------------------------------
;Descriptions
;Language strings
;Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecCompiler} "This tool (mc.exe) is needed to compile *.m files to *.maki files."
!insertmacro MUI_DESCRIPTION_TEXT ${SecLibs} "Standard Maki Libraries."
!insertmacro MUI_DESCRIPTION_TEXT ${SecLibsCom} "Some maki scripts done by the Winamp community."
!insertmacro MUI_DESCRIPTION_TEXT ${SecSkinModern} "Install Winamp Modern Skin Maki source code."
!insertmacro MUI_DESCRIPTION_TEXT ${SecSkinBento} "Install Winamp Bento Maki source code."
;!insertmacro MUI_DESCRIPTION_TEXT ${SecDebugger} "Wasabi Debugger will print debug strings to c:\wasabi.log"
!insertmacro MUI_DESCRIPTION_TEXT ${SecEditplus} "This will install Edit Plus Syntax Libs. For more info see readme.txt"
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;--------------------------------
;Uninstaller Section
Section "Uninstall"
Delete "$INSTDIR\mc.exe"
Delete "$INSTDIR\Maki.*"
Delete "$INSTDIR\wasdp_readme.txt"
Delete "$INSTDIR\system\ConsoleFile.w5s"
Delete "$INSTDIR\Skins\Winamp Modern\scripts\*.m"
Delete "$INSTDIR\Skins\Big Bento\scripts\*.m"
Delete "$INSTDIR\Skins\Bento\scripts\*.m"
Delete "$INSTDIR\Skins\Big Bento\about\*.m"
RMDir /r "$INSTDIR\lib"
RMDir /r "$INSTDIR\Skins\Bento\scripts\mcvcore"
RMDir /r "$INSTDIR\Skins\Big Bento\scripts\mcvcore"
RMDir /r "$INSTDIR\Skins\Big Bento\scripts\lib"
RMDir /r "$INSTDIR\Skins\Big Bento\scripts\suicore"
RMDir /r "$INSTDIR\Skins\Big Bento\scripts\attribs"
Delete "$INSTDIR\Uninstall_WaSDP.exe"
SectionEnd

View file

@ -0,0 +1,13 @@
Winamp Skin Development Pack (WaSDP) - v5.9 (Aug/22/2022)
Designed for Winamp 5.9
Copyright © 2007-2013 Martin Poehlmann / NULLSOFT
Copyright © 2013-2022 Winamp SA
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any distribution.

View file

@ -0,0 +1,770 @@
#TITLE=MAKI
; MAKI files auto-completion. Currently supports the auto-completion of about 100 hookable events
; Completed and adopted to the Skin Consortium Coding Convention (Aug 2006) by Martin Poehlmann
#CASE=n
#T=if
if (^!)
{
}
#T=else
else
{
^!
}
#T=while
while (^!)
{
}
#T=for
for ( int i = 0; i <= ^!; i++ )
{
}
#T=onScriptLoaded
onScriptLoaded ()
{
^!
}
#T=onScriptUnloading
onScriptUnloading ()
{
^!
}
#T=onQuit
onQuit ()
{
^!
}
#T=onSetXuiParam
onSetXuiParam (String param, String value)
{
if ( strlower(stringParam) == "^!" )
}
#T=onKeyDown
onKeyDown (String key)
{
^!
}
#T=onKeyUp
onKeyUp(String key)
{
^!
}
#T=onAccelerator
onAccelerator (String action, String section, String key)
{
/* NOTE:
if you have called System.onAccelerator () take System.onAccelerator (String action, String section, String key)
else if you called GuiObject.onAccelerator () take onAccelerator (String accel) */
^!
}
#T=onChar
onChar (String c)
{
^!
}
#T=onCreateLayout
onCreateLayout (Layout _layout)
{
^!
}
#T=onShowLayout
onShowLayout (Layout _layout)
{
^!
}
#T=onBeforeSwitchToLayout
onBeforeSwitchToLayout (Layout _layout)
{
^!
}
#T=onSwitchToLayout
onSwitchToLayout (Layout _layout)
{
^!
}
#T=onHideLayout
onHideLayout (Layout _layout)
{
^!
}
#T=onStop
onStop ()
{
^!
}
#T=onPlay
onPlay ()
{
^!
}
#T=onPause
onPause ()
{
^!
}
#T=onResume
onResume ()
{
^!
}
#T=onTitleChange
onTitleChange (String newtitle)
{
^!
}
#T=onTitle2Change
onTitle2Change (String newtitle2)
{
^!
}
#T=onInfoChange
onInfoChange (String info)
{
^!
}
#T=onStatusMsg
onStatusMsg (String msg)
{
^!
}
#T=onEqBandChanged
onEqBandChanged (int band, int newvalue)
{
^!
}
#T=onEqPreampChanged
onEqPreampChanged (int newvalue)
{
^!
}
#T=onEqChanged
onEqChanged (int newstatus)
{
^!
}
#T=onVolumeChanged
onVolumeChanged (int newvol)
{
^!
}
#T=onSeek
onSeek (int newpos)
{
^!
}
#T=onFrame
onFrame (Int framenum)
{
/*NOTE:
Use the framenum argument only if you use the method with a animated layer!
for vis use it without argument */
^!
}
#T=onActivate
onActivate (int activated)
{
^!
}
#T=onLeftClick
onActivate ()
{
^!
}
#T=onRightClick
onActivate ()
{
^!
}
#T=onResize
onResize (int x, int y, int w, int h)
{
^!
}
#T=onBeginResize
onBeginResize (int x, int y, int w, int h)
{
^!
}
#T=onEndResize
onEndResize (int x, int y, int w, int h)
{
^!
}
#T=onDock
onDock ()
{
^!
}
#T=onUndock
onUndock ()
{
^!
}
#T=onScale
onScale (Double newscalevalue)
{
^!
}
#T=onShow
onShow ()
{
^!
}
#T=onHide
onHide ()
{
^!
}
#T=onToggle
onToggle (Boolean onoff)
{
^!
}
#T=onTimer
onTimer ()
{
^!
}
#T=onSetPosition
onSetPosition (int newpos)
{
^!
}
#T=onPostedPosition
onPostedPosition (int newpos)
{
^!
}
#T=onSetFinalPosition
onSetFinalPosition (int pos)
{
^!
}
#T=onMouseMove
onMouseMove (int x, int y)
{
^!
}
#T=onLeftClick
onLeftClick ()
{
^!
}
#T=onRightClick
onRightClick ()
{
^!
}
#T=onLeftButtonDown
onLeftButtonDown (int x, int y)
{
^!
}
#T=onLeftButtonUp
onLeftButtonUp (int x, int y)
{
^!
}
#T=onRightButtonDown
onRightButtonDown (int x, int y)
{
^!
}
#T=onRightButtonUp
onRightButtonUp (int x, int y)
{
^!
}
#T=onEnterArea
onEnterArea ()
{
^!
}
#T=onLeaveArea
onLeaveArea ()
{
^!
}
#T=onBeforeNavigate
onBeforeNavigate ()
{
^!
}
#T=onNotify
onNotify (String command, String param, int a, int b)
{
}
#T=onLookForComponent
onLookForComponent (String guid)
{
^!
return __component__
}
#T=onGetCancelComponent
onGetCancelComponent (String guid, boolean goingvisible)
{
if ( guid == ^! )
{
return FALSE
}
return FALSE;
}
#T=onShowNotification
onShowNotification ()
{
^!
return TRUE
}
#T=onSetVisible
onSetVisible (Boolean onoff)
{
if (onoff)
{
^!
}
}
#T=onEnable
onEnable (Boolean onoff)
{
if (onoff)
{
^!
}
}
#T=onRightButtonDblClk
onRightButtonDblClk (int x, int y)
{
^!
}
#T=onLeftButtonDblClk
onLeftButtonDblClk (int x, int y)
{
^!
}
#T=onRightButtonUp
onRightButtonUp (int x, int y)
{
^!
}
#T=onTargetReached
onTargetReached ()
{
^!
}
#T=onStartup
onStartup ()
{
^!
}
#T=onGetFocus
onGetFocus ()
{
^!
}
#T=onKillFocus
onKillFocus ()
{
^!
}
#T=onMove
onMove ()
{
^!
}
#T=onEndMove
onEndMove ()
{
^!
}
#T=onAction
onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
{
^!
}
#T=onUserResize
onUserResize (int x, int y, int w, int h)
{
^!
}
#T=onMouseEnterLayout
onMouseEnterLayout ()
{
^!
}
#T=onMouseLeaveLayout
onMouseLeaveLayout ()
{
^!
}
#T=onSnapAdjustChanged
onSnapAdjustChanged ()
{
^!
}
#T=onFeedChange
onFeedChange (String new_feeddata)
{
^!
}
#T=onGetWac
onGetWac (Wac wacobj)
{
^!
}
#T=onGiveUpWac
onGiveUpWac (Wac wacobj)
{
^!
}
#T=onEnter
onEnter ()
{
^!
}
#T=onAbort
onAbort ()
{
^!
}
#T=onIdleEditUpdate
onIdleEditUpdate ()
{
^!
}
#T=onEditUpdate
onEditUpdate ()
{
^!
}
#T=onDocumentComplete
onDocumentComplete (String url)
{
^!
}
#T=onTextChanged
onTextChanged (String newtxt)
{
^!
}
#T=fx_onInit
fx_onInit ()
{
^!
}
#T=fx_onFrame
fx_onFrame ()
{
^!
}
#T=onResetQuery
onResetQuery ()
{
^!
}
#T=onSelect
onSelect (Int id, Int hover)
{
^!
}
#T=onSelectAll
onSelectAll ()
{
^!
}
#T=onDelete
onDelete ()
{
^!
}
#T=onDoubleClick
onDoubleClick (Int itemnum)
{
^!
}
#T=onLeftClick
onLeftClick (Int itemnum)
{
^!
}
#T=onSecondLeftClick
onSecondLeftClick (Int itemnum)
{
^!
}
#T=onRightClick
onRightClick (Int itemnum)
{
^!
}
#T=onColumnDblClick
onColumnDblClick (Int col, Int x, Int y)
{
^!
}
#T=onColumnLabelClick
onColumnLabelClick (Int col, Int x, Int y)
{
^!
}
#T=onItemSelection
onItemSelection (Int itemnum, Int selected)
{
^!
}
#T=onWantAutoContextMenu
onWantAutoContextMenu ()
{
^!
}
#T=onMouseWheelUp
onMouseWheelUp (Int clicked, Int lines)
{
^!
}
#T=onMouseWheelDown
onMouseWheelDown (Int clicked, Int lines)
{
^!
}
#T=onContextMenu
onContextMenu (Int x, Int y)
{
^!
}
#T=onItemRecvDrop
onItemRecvDrop (TreeItem item)
{
^!
}
#T=onLabelChange
onLabelChange (TreeItem item)
{
^!
}
#T=onItemSelected
onItemSelected (TreeItem item)
{
^!
}
#T=onItemDeselected
onItemDeselected (TreeItem item)
{
^!
}
#T=onTreeAdd
onTreeAdd ()
{
^!
}
#T=onTreeRemove
onTreeRemove ()
{
^!
}
#T=onSelect
onSelect ()
{
^!
}
#T=onDeselect
onDeselect ()
{
^!
}
#T=onLeftDoubleClick
onLeftDoubleClick ()
{
^!
}
#T=onRightDoubleClick
onRightDoubleClick ()
{
^!
}
#T=onChar
onChar (Int key)
{
^!
}
#T=onExpand
onExpand ()
{
^!
}
#T=onCollapse
onCollapse ()
{
^!
}
#T=onBeginLabelEdit
onBeginLabelEdit ()
{
^!
}
#T=onEndLabelEdit
onEndLabelEdit (String newlabel)
{
^!
}
#T=onContextMenu
onContextMenu (Int x, Int y)
{
^!
}
#T=onOpenMenu
onOpenMenu ()
{
^!
}
#T=onCloseMenu
onCloseMenu ()
{
^!
}
#T=onSelectItem
onSelectItem (String item)
{
^!
}
#T=onDataChanged
onDataChanged ()
{
^!
}
;-------------------
#T=messageBox
messageBox ("^!", "Title" , Flag, "");

View file

@ -0,0 +1,630 @@
#TITLE=MAKI Classes and Objects
#INFO
MAKI Cliptext Library for general MAKI classes that can be found in std.mi and other objects.
#SORT=n
#T=Global
Global
#T=Button
Button
#T=AnimatedLayer
AnimatedLayer
#T=Text
Text
#T=Vis
Vis
#T=GroupList
GroupList
#T=Object
Object
#T=GuiObject
GuiObject
#T=Int
Int
#T=Boolean
Boolean
#T=Double
Double
#T=Float
Float
#T=ToggleButton
ToggleButton
#T=EqVis
EqVis
#T=System
System
#T=Container
Container
#T=Wac
Wac
#T=List
List
#T=Map
Map
#T=PopUpMenu
PopUpMenu
#T=Region
Region
#T=Timer
Timer
#T=Group
Group
#T=Layout
Layout
#T=Component
Component
#T=Edit
Edit
#T=Slider
Slider
#T=Browser
Browser
#T=Layer
Layer
#T=CfgList
CfgList
#T=QueryList
QueryList
#T=ConfigAttribute
ConfigAttribute
#T=PLDir
PLDir
#T=MouseRedir
MouseRedir
#T=Dropdown
Dropdown
#T=LayoutStatus
LayoutStatus
#T=---------------
---------------
#T=acos
acos
#T=add
add
#T=addCommand
addCommand
#T=addItem
addItem
#T=addSeparator
addSeparator
#T=addSubMenu
addSubMenu
#T=asin
asin
#T=atan
atan
#T=atan2
atan2
#T=back
back
#T=getStatusBar
getStatusBar
#T=callme
callme
#T=cfgGetFloat
cfgGetFloat
#T=cfgGetGuid
cfgGetGuid
#T=cfgGetInt
cfgGetInt
#T=cfgGetName
cfgGetName
#T=cfgGetString
cfgGetString
#T=cfgSetFloat
cfgSetFloat
#T=cfgSetInt
cfgSetInt
#T=cfgSetString
cfgSetString
#T=checkCommand
checkCommand
#T=Chr
Chr
#T=copy
copy
#T=cos
cos
#T=ddeSend
ddeSend
#T=debugString
debugString
#T=deselectAll
deselectAll
#T=disableCommand
disableCommand
#T=eject
eject
#T=enumContainer
enumContainer
#T=enumItem
enumItem
#T=enumItem
enumItem
#T=enumLayout
enumLayout
#T=enumObject
enumObject
#T=findItem
findItem
#T=floatToString
floatToString
#T=forward
forward
#T=fx_getAlphaMode
fx_getAlphaMode
#T=fx_getBgFx
fx_getBgFx
#T=fx_getBilinear
fx_getBilinear
#T=fx_getClear
fx_getClear
#T=fx_getEnabled
fx_getEnabled
#T=fx_getLocalized
fx_getLocalized
#T=fx_getRealtime
fx_getRealtime
#T=fx_getRect
fx_getRect
#T=fx_getWrap
fx_getWrap
#T=fx_onFrame
fx_onFrame
#T=fx_onGetPixelA
fx_onGetPixelA
#T=fx_onGetPixelD
fx_onGetPixelD
#T=fx_onGetPixelR
fx_onGetPixelR
#T=fx_onGetPixelX
fx_onGetPixelX
#T=fx_onGetPixelY
fx_onGetPixelY
#T=fx_onInit
fx_onInit
#T=fx_restart
fx_restart
#T=fx_setAlphaMode
fx_setAlphaMode
#T=fx_setBgFx
fx_setBgFx
#T=fx_setBilinear
fx_setBilinear
#T=fx_setClear
fx_setClear
#T=fx_setEnabled
fx_setEnabled
#T=fx_setGridSize
fx_setGridSize
#T=fx_setLocalized
fx_setLocalized
#T=fx_setRealtime
fx_setRealtime
#T=fx_setRect
fx_setRect
#T=fx_setSpeed
fx_setSpeed
#T=fx_setWrap
fx_setWrap
#T=fx_update
fx_update
#T=getActivated
getActivated
#T=getAutoReplay
getAutoReplay
#T=getBoundingBoxH
getBoundingBoxH
#T=getBoundingBoxW
getBoundingBoxW
#T=getBoundingBoxX
getBoundingBoxX
#T=getBoundingBoxY
getBoundingBoxY
#T=getClassName
getClassName
#T=getContainer
getContainer
#T=getCurAppHeight
getCurAppHeight
#T=getCurAppLeft
getCurAppLeft
#T=getCurAppTop
getCurAppTop
#T=getCurAppWidth
getCurAppWidth
#T=getCurFrame
getCurFrame
#T=getDelay
getDelay
#T=getDirection
getDirection
#T=getEndFrame
getEndFrame
#T=getEq
getEq
#T=getEqBand
getEqBand
#T=getEqPreamp
getEqPreamp
#T=getGuid
getGuid
#T=getGuid
getGuid
#T=getHeight
getHeight
#T=getId
getId
#T=getItemSelected
getItemSelected
#T=getItemText
getItemText
#T=getLayout
getLayout
#T=getLeftVuMeter
getLeftVuMeter
#T=getLength
getLength
#T=getMainBrowser
getMainBrowser
#T=getMode
getMode
#T=getMousePosX
getMousePosX
#T=getMousePosX
getMousePosX
#T=getMousePosY
getMousePosY
#T=getMousePosY
getMousePosY
#T=getName
getName
#T=getNumCommands
getNumCommands
#T=getNumContainers
getNumContainers
#T=getNumItems
getNumItems
#T=getNumItems
getNumItems
#T=etNumItems
etNumItems
#T=getNumLayouts
getNumLayouts
#T=getNumObjects
getNumObjects
#T=getObject
getObject
#T=getPlayItem
getPlayItem
#T=getPlayItemLength
getPlayItemLength
#T=getPlayItemMetaDataString
getPlayItemMetaDataString
#T=getPlayItemString
getPlayItemString
#T=getPosition
getPosition
#T=getPosition
getPosition
#T=getPrivateInt
getPrivateInt
#T=getPrivateString
getPrivateString
#T=getPublicInt
getPublicInt
#T=getPublicString
getPublicString
#T=getRealtime
getRealtime
#T=getRedirection
getRedirection
#T=getRegion
getRegion
#T=getRightVuMeter
getRightVuMeter
#T=getScriptGroup
getScriptGroup
#T=getSkinName
getSkinName
#T=getStartFrame
getStartFrame
#T=getStatus
getStatus
#T=getText
getText
#T=getText
getText
#T=getText
getText
#T=getTextWidth
getTextWidth
#T=getTextWidth
getTextWidth
#T=getTimeOfDay
getTimeOfDay
#T=getToken
getToken
#T=getValue
getValue
#T=getViewportHeight
getViewportHeight
#T=getViewportLeft
getViewportLeft
#T=getViewportTop
getViewportTop
#T=getViewportWidth
getViewportWidth
#T=getVolume
getVolume
#T=getWac
getWac
#T=getWac
getWac
#T=getWidth
getWidth
#T=getXMLparam
getXMLparam
#T=gotoFrame
gotoFrame
#T=gotoTarget
gotoTarget
#T=hide
hide
#T=hide
hide
#T=hideAllColumns
hideAllColumns
#T=home
home
#T=inRegion
inRegion
#T=instantiate
instantiate
#T=Int fx_getSpeed
Int fx_getSpeed
#T=integer
integer
#T=integerToLongTime
integerToLongTime
#T=integerToString
integerToString
#T=integerToTime
integerToTime
#T=isAppActive
isAppActive
#T=isDynamic
isDynamic
#T=isItemSelected
isItemSelected
#T=isKeyDown
isKeyDown
#T=isLayout
isLayout
#T=isObjectValid
isObjectValid
#T=isPaused
isPaused
#T=isPlaying
isPlaying
#T=isRunning
isRunning
#T=isStopped
isStopped
#T=isVisible
isVisible
#T=leftClick
leftClick
#T=loadFromBitmap
loadFromBitmap
#T=loadFromMap
loadFromMap
#T=loadMap
loadMap
#T=lock
lock
#T=messageBox
messageBox
#T=navigateUrl
navigateUrl
#T=navigateUrl
navigateUrl
#T=newDynamicContainer
newDynamicContainer
#T=newGroup
newGroup
#T=newGroupAsLayout
newGroupAsLayout
#T=next
next
#T=nextMode
nextMode
#T=offset
offset
#T=openSubtable
openSubtable
#T=openTable
openTable
#T=pause
pause
#T=pause
pause
#T=play
play
#T=play
play
#T=playFile
playFile
#T=playSelection
playSelection
#T=popAtMouse
popAtMouse
#T=popAtXY
popAtXY
#T=popMainBrowser
popMainBrowser
#T=pow
pow
#T=previous
previous
#T=random
random
#T=refresh
refresh
#T=removeAll
removeAll
#T=removeAll
removeAll
#T=removeItem
removeItem
#T=removePath
removePath
#T=rightClick
rightClick
#T=runQuery
runQuery
#T=scrollToPercent
scrollToPercent
#T=seekTo
seekTo
#T=selectItem
selectItem
#T=sendCommand
sendCommand
#T=setAcceptWac
setAcceptWac
#T=setActivated
setActivated
#T=setActivatedNoCallback
setActivatedNoCallback
#T=setAlpha
setAlpha
#T=setAlternateText
setAlternateText
#T=setAlternateText
setAlternateText
#T=setAutoEnter
setAutoEnter
#T=setAutoReplay
setAutoReplay
#T=setClipboardText
setClipboardText
#T=setColumnVisible
setColumnVisible
#T=setDelay
setDelay
#T=setEndFrame
setEndFrame
#T=setEq
setEq
#T=setEqBand
setEqBand
#T=setEqPreamp
setEqPreamp
#T=setMenuTransparency
setMenuTransparency
#T=setMode
setMode
#T=setPosition
setPosition
#T=setPrivateInt
setPrivateInt
#T=setPrivateString
setPrivateString
#T=setPublicInt
setPublicInt
#T=setPublicString
setPublicString
#T=setRealtime
setRealtime
#T=setRedirection
setRedirection
#T=setRegion
setRegion
#T=setRegionFromMap
setRegionFromMap
#T=setSpeed
setSpeed
#T=setStartFrame
setStartFrame
#T=setStatusBar
setStatusBar
#T=setTargetA
setTargetA
#T=setTargetH
setTargetH
#T=setTargetName
setTargetName
#T=setTargetSpeed
setTargetSpeed
#T=setTargetW
setTargetW
#T=setTargetX
setTargetX
#T=setTargetY
setTargetY
#T=setText
setText
#T=setText
setText
#T=setText
setText
#T=setTopItem
setTopItem
#T=setVolume
setVolume
#T=setXMLparam
setXMLparam
#T=show
show
#T=show
show
#T=sin
sin
#T=sqr
sqr
#T=sqrt
sqrt
#T=start
start
#T=stop
stop
#T=stop
stop
#T=stop
stop
#T=stop
stop
#T=stretch
stretch
#T=stringToFloat
stringToFloat
#T=StringToInteger
StringToInteger
#T=Strleft
Strleft
#T=strlen
strlen
#T=strlower
strlower
#T=strmid
strmid
#T=strright
strright
#T=strsearch
strsearch
#T=strupper
strupper
#T=sub
sub
#T=switchToLayout
switchToLayout
#T=tan
tan
#T=toggle
toggle
#T=unlock
unlock
#T=urlEncode
urlEncode
#

View file

@ -0,0 +1,806 @@
#TITLE=MAKI
;Made By Rohan Prabhu for Winamp MAKI scripters. A plug-in for EditPlus 2.
;Completed and adopted to the Skin Consortium Coding Convention (Aug 2006) by Martin Poehlmann
;please contribute to make this complete. As of now, it supports about 346 classes and about 37 Objects/Variables and 7 pre-compiler directives.
#DELIMITER=,(){}[]-+*%/="'~!&|<>?:;.
#QUOTATION1='
#QUOTATION2="
#CONTINUE_QUOTE=n
#LINECOMMENT=//
#COMMENTON=/*
#COMMENTOFF=*/
#ESCAPE=\
#NUMBER_PATTERN=cpp
#SPECIAL_STX=maki
#KEYWORD=Global Definitions
Button
AnimatedLayer
Text
Vis
GroupList
Object
GuiObject
Int
String
Boolean
Double
Float
ToggleButton
EqVis
System
Container
Wac
List
Map
PopUpMenu
Region
Timer
Group
Layout
Component
Edit
Slider
Browser
Layer
CfgList
QueryList
PLDir
MouseRedir
Dropdown
LayoutStatus
GuiList
WindowHolder
FeedWatcher
ComponentBucket
Status
Title
CfgGroup
DropDownList
TabSheet
GuiTree
TreeItem
MenuButton
CheckBox
Form
ConfigAttribute
ConfigItem
Config
#KEYWORD=PreCompiler directives
error
^#include
^#define
^#ifdef
^#endif
^#ifndef
^#undef
^#endif
=
>
<
+
-
/
*
!
&
|
OR
AND
#KEYWORD=Reserved words
return
delete
complete
continue
new
break
true
false
Global
Class
Function
_predecl
extern
NULL
#KEYWORD=Methods
if
else
for
while
do
switch
case
onPlay
onPause
onResume
onStop
onFrame
setSpeed
gotoFrame
setStartFrame
setEndFrame
setAutoReplay
play
stop
pause
isPlaying
isPaused
isStopped
getStartFrame
getEndFrame
getLength
getDirection
getAutoReplay
getCurFrame
setRealtime
navigateUrl
back
forward
stop
refresh
home
setTargetName
onBeforeNavigate
onDocumentComplete
onActivate
onLeftClick
onRightClick
setActivated
setActivatedNoCallback
getActivated
leftClick
rightClick
cfgGetInt
cfgSetInt
cfgGetString
cfgGetFloat
cfgSetFloat
cfgSetString
onCfgChanged
cfgGetGuid
cfgGetName
onGetWac
onGiveUpWac
getGuid
getWac
setRegionFromMap
setRegion
setAcceptWac
onSwitchToLayout
onHideLayout
onShowLayout
getLayout
getNumLayouts
enumLayout
switchToLayout
show
hide
toggle
isDynamic
getItemSelected
onEnter
onAbort
onIdleEditUpdate
onEditUpdate
setText
setAutoEnter
getText
getClassName
getId
onNotify
setRedirection
getRedirection
setRegionFromMap
setRegion
getValue
inRegion
loadMap
getWidth
getHeight
getRegion
addItem
removeItem
enumItem
findItem
getNumItems
removeAll
onBeginResize
onEndResize
fx_onInit
fx_onFrame
fx_onGetPixelR
fx_onGetPixelD
fx_onGetPixelX
fx_onGetPixelY
fx_onGetPixelA
setRegionFromMap
setRegion
fx_setEnabled
fx_getEnabled
fx_setWrap
fx_getWrap
fx_setRect
fx_getRect
fx_setBgFx
fx_getBgFx
fx_setClear
fx_getClear
fx_setSpeed
Int fx_getSpeed
fx_setRealtime
fx_getRealtime
fx_setLocalized
fx_getLocalized
fx_setBilinear
fx_getBilinear
fx_setAlphaMode
fx_getAlphaMode
fx_setGridSize
fx_update
fx_restart
instantiate
getNumItems
enumItem
removeAll
scrollToPercent
getObject
getNumObjects
enumObject
onCreateObject
getMousePosX
getMousePosY
isLayout
openTable
openSubtable
runQuery
hideAllColumns
setColumnVisible
playSelection
getPlayItem
getItemText
onItemSelect
setTopItem
selectItem
isItemSelected
getNumItems
deselectAll
add
sub
offset
stretch
copy
loadFromMap
loadFromBitmap
getBoundingBoxX
getBoundingBoxY
getBoundingBoxW
getBoundingBoxH
onSetPosition
onPostedPosition
onSetFinalPosition
setPosition
getPosition
lock
unlock
setText
setAlternateText
getText
getTextWidth
onTextChanged
setText
setAlternateText
getText
getTextWidth
onTextChanged
onTimer
setDelay
getDelay
start
stop
isRunning
onToggle
onFrame
setRealtime
getRealtime
getMode
setMode
nextMode
getGuid
getName
sendCommand
show
hide
isVisible
onNotify
onShow
onHide
setStatusBar
Boolean getStatusBar
addSubMenu
addCommand
addSeparator
popAtXY
popAtMouse
getNumCommands
checkCommand
disableCommand
callme
setTargetX
setTargetY
setTargetA
setTargetW
setTargetH
setTargetSpeed
gotoTarget
setAlpha
setXMLparam
getXMLparam
onScriptLoaded
onScriptUnloading
onQuit
onSetXuiParam
onKeyDown
onAccelerator
onCreateLayout
onShowLayout
onHideLayout
onStop
onPlay
onPause
onResume
onTitleChange
onTitle2Change
onInfoChange
onStatusMsg
onEqBandChanged
onEqPreampChanged
onEqChanged
onVolumeChanged
onSeek
getContainer
newDynamicContainer
newGroup
newGroupAsLayout
getNumContainers
enumContainer
getWac
messageBox
getPlayItemString
getPlayItemLength
getPlayItemMetaDataString
playFile
getLeftVuMeter
getRightVuMeter
getVolume
setVolume
play
stop
pause
next
previous
eject
seekTo
getPosition
setEqBand
setEqPreamp
setEq
getEqBand
getEqPreamp
getEq
getMousePosX
getMousePosY
integerToString
StringToInteger
floatToString
stringToFloat
integerToLongTime
integerToTime
strmid
Strleft
strright
strsearch
strlen
strupper
strlower
urlEncode
removePath
getToken
sin
cos
tan
asin
acos
atan
atan2
pow
sqr
sqrt
random
setPrivateString
setPrivateInt
getPrivateString
getPrivateInt
setPublicString
setPublicInt
getPublicString
getPublicInt
getScriptGroup
getViewportWidth
getViewportHeight
getViewportLeft
getViewportTop
debugString
ddeSend
onLookForComponent
getCurAppLeft
getCurAppTop
getCurAppWidth
getCurAppHeight
isAppActive
getSkinName
getMainBrowser
popMainBrowser
navigateUrl
isObjectValid
integer
getTimeOfDay
setMenuTransparency
onGetCancelComponent
getStatus
isKeyDown
setClipboardText
Chr
onMouseMove
onLeftClick
onRightClick
onLeftButtonDown
onLeftButtonUp
onRightButtonDown
onRightButtonUp
onEnterArea
onLeaveArea
getPlayItemDisplayTitle
getExtFamily
dateToTime
dateToLongTime
formatDate
formatLongDate
getDateYear
getDateMonth
getDateDay
getDateDow
getDateDoy
getDateHour
getDateMin
getDateSec
getDateDst
getDate
getParam
getViewportWidthFromPoint
getViewportHeightFromPoint
getViewportLeftFromPoint
getViewportTopFromPoint
switchSkin
isLoadingSkin
lockUI
unlockUI
frac
selectFile
systemMenu
windowMenu
triggerAction
showWindow
hideWindow
hideNamedWindow
isNamedWindowVisible
invokeDebugger
isVideo
isVideoFullscreen
getIdealVideoWidth
getIdealVideoHeight
isMinimized
minimizeApplication
restoreApplication
activateApplication
getPlaylistLength
getPlaylistIndex
isDesktopAlphaAvailable
isTransparencyAvailable
onShowNotification
getSongInfoText
getVisBand
getRuntimeVersion
onBeforeSwitchToLayout
close
setName
getCurLayout
getStatusBar
onSetVisible
getAlpha
onRightButtonDblClk
onLeftButtonDblClk
setEnabled
getEnabled
onEnable
resize
onResize
isMouseOver
getLeft
getTop
onTargetReached
cancelTarget
reverseTarget
onStartup
isGoingToTarget
init
bringToFront
bringToBack
bringAbove
bringBelow
getGuiX
getGuiY
getGuiW
getGuiH
getGuiRelatX
getGuiRelatY
getGuiRelatW
getGuiRelatH
isActive
getParent
getParentLayout
getTopParent
runModal
endModal
findObject
findObjectXY
clientToScreenX
clientToScreenY
clientToScreenW
clientToScreenH
screenToClientX
screenToClientY
screenToClientW
screenToClientH
getAutoWidth
getAutoHeight
setFocus
onChar
isMouseOverRect
getInterface
onKeyUp
onGetFocus
onKillFocus
sendAction
onAction
onDock
onUndock
onScale
getScale
setScale
setDesktopAlpha
getDesktopAlpha
center
onMove
onEndMove
onUserResize
snapAdjust
getSnapAdjustTop
getSnapAdjustRight
getSnapAdjustLeft
getSnapAdjustBottom
setRedrawOnResize
beforeRedock
redock
isTransparencySafe
isLayoutAnimationSafe
onMouseEnterLayout
onMouseLeaveLayout
onSnapAdjustChanged
getSkipped
setFeed
releaseFeed
onFeedChange
getContent
getAutoEnter
selectAll
enter
setIdleEnabled
getIdleEnabled
getCurCfgVal
onResetQuery
onSelect
setListHeight
openList
closeList
setItems
delItem
getSelected
getSelectedText
getCustomText
deleteAllItems
setNoItemText
getCurPage
setCurPage
getWantAutoDeselect
setWantAutoDeselect
setAutoSort
selectCurrent
selectFirstEntry
pagedown
pageup
end
reset
addColumn
getNumColumns
getColumnWidth
setColumnWidth
getColumnLabel
setColumnLabel
getColumnNumeric
setColumnDynamic
isColumnDynamic
setMinimumSize
insertItem
getLastAddedItemPos
setSubItem
deleteAllItems
deleteByPos
getItemLabel
setItemLabel
isItemFocused
getItemFocused
setItemFocused
ensureItemVisible
invalidateColumns
scrollAbsolute
scrollRelative
scrollLeft
scrollRight
scrollUp
scrollDown
getSubitemText
getFirstItemSelected
getNextItemSelected
selectAll
invertSelection
invalidateItem
getFirstItemVisible
getLastItemVisible
setFontSize
getFontSize
jumpToNext
scrollToItem
resort
getSortDirection
getSortColumn
setSortColumn
setSortDirection
getItemCount
setSelectionStart
setSelectionEnd
setSelected
toggleSelection
getHeaderHeight
getPreventMultipleSelection
setPreventMultipleSelection
moveItem
onSelectAll
onDelete
onDoubleClick
onColumnDblClick
onColumnLabelClick
onItemSelection
onSecondLeftClick
onWantAutoContextMenu
onMouseWheelUp
onMouseWheelDown
onContextMenu
onItemRecvDrop
onLabelChange
onItemSelected
onItemDeselected
getNumRootItems
enumRootItem
getContentsWidth
getContentsHeight
addTreeItem
removeTreeItem
moveTreeItem
expandItem
expandItemDeferred
collapseItem
collapseItemDeferred
selectItemDeferred
delItemDeferred
hiliteItem
unhiliteItem
getCurItem
hitTest
editItemLabel
cancelEditLabel
setAutoEdit
getAutoEdit
getByLabel
setSorted
getSorted
sortTreeItems
getSibling
setAutoCollapse
getNumVisibleChildItems
getNumVisibleItems
enumVisibleItems
enumVisibleChildItems
enumAllItems
getItemRectX
getItemRectY
getItemRectW
getItemRectH
getNumChildren
setLabel
getLabel
ensureVisible
getNthChild
getChild
getChildSibling
getSibling
editLabel
hasSubItems
setSorted
setChildTab
isSorted
isCollapsed
isExpanded
invalidate
isSelected
isHilited
setHilited
collapse
expand
getTree
onTreeAdd
onTreeRemove
onDeselect
onLeftDoubleClick
onRightDoubleClick
onExpand
onCollapse
onBeginLabelEdit
onEndLabelEdit
onContextMenu
onOpenMenu
onCloseMenu
onSelectItem
openMenu
closeMenu
setChecked
isChecked
getContentsHeight
newCell
nextRow
deleteAll
getMaxHeight
getMaxWidth
setScroll
getScroll
getNumChildren
enumChildren
getItem
getItemByGuid
newItem
getAttribute
newAttribute
getGuid
setData
getData
onDataChanged
getParentItem
getAttributeName
#

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

View file

@ -0,0 +1,162 @@
Winamp Skin Development Pack (WaSDP) ~ Version 5.9 (2022/08/22)
Copyright © 2007-2013 Martin Poehlmann / NULLSOFT
Copyright © 2013-2022 Winamp SA
~ README ~
Well, this is again one of those README files you might not want to read, but in three cases it is recommended to read it:
I You are new to Skinning
II) You want some information about Bento scripts
III) You are wondering why you have no m files in Bento/Wa Modern Skin dir after reinstallig Winamp
~ CONTENTS ~
1) Preludium... Wasabi, the Winamp Skinning Engine
2) MC.EXE - The 'ultimative' maki compiler
2.1) How to compile m files to maki files
2.2) Edit Plus 2 - a textbased editor
2.3) Maki Overview
3) Bento Scripts
4) Reinstalling Winamp with WaSDP
5) I want help - got lost within the skinning engine... or can someone make my skin
6) ...Postludium
1) Preludium... Wasabi, the Winamp Skinning Engine
Well, Wasabi is Winamp's own scripting system (WinAmp System Architecture Building Interface).
The Wasabi Skinning Engine was developed along with Winamp3 and then incorporated into gen_ff.dll of Winamp 5. But for creating Skins you need not know how to code Wasabi, you 'just' need some XML experience. If you want a real good skin, you should also be able to write maki (Maki A Killer Interface) scripts.
For beginners you should start looking at the xml code of Winamp Modern and Bento. Try to understand the structure of WasabiXML, button functions, etc.
Here are three pages that share good information about winamp skinning:
http://www.winamp.com/development/skins-modern
http://wiki.skinconsortium.com
the last one i do not remember since i have a local copy of it, hehe; but try to google: Winamp XML Object Reference :)
Last but not least there are also two good forums where you can post questions about skinning, etc.
http://forums.winamp.com
http://forums.skinconsortium.com
Now some info about me: I am Martin, Admin and Skin Dev from skinconsortium.com (known as martin.deimos). I am also the coder of Winamp's new SUI Skin called Bento.
If you have skinning related question please do NOT pm or mail me. post your question at winamp forums or skinconsortium forums!
2) MC.EXE - The 'ultimative' maki compiler
2.1) How to compile m files to maki files
Ok, if you have played with WasabiXML you will most likely do more complex skins. With MAKI scripts you have the power to create new functions (like mute, new visualizations,...) for your skin.
Maki is also a new programming language aligned to JavaScript. The best option to start is, look at the m scripts of Winamp Modern and Bento.
Now it is the right time to configure MC.EXE, the maki compiler which coverts the m files to maki files readable by Wasabi Skinning Engine.
just call MC.EXE [filename]
but calling this everytime from the DOS prompt is really annaying. So i give now a method how you can easyly compile m scripts.
2.2) Edit Plus 2 - a textbased editor
Download Edit Plus (http://www.editplus.com), install and run it.
Goto Tools > Configure User Tools...
Click on Add Program and select Program
Then fill the editboxes:
Menu Text: Compile To Maki
Command: %WinampDir%\mc.exe (replace %WinampDir% by your Winamp Program Path!!!)
Argument: $(FileName)
Initial: $(FileDir)
uncheck close window on exit
Now click apply. you can access this tool in the tools menu. you can also add it as symbol to the titlebar (please figure out yourself if you want to have it this way).
Now we do a first test if everything is working: open from Bento Skin in scripts folder eq.m with editplus and call the maki compiler (with your preferred method).
If everything worked you will get an fine output in the dos window. if not there is either a script error or you havn't configured the user tool in the right way.
If you have installed the Edit Plus Syntax lightning from WaSDP you can enable this feature in editplus according to this procedure:
You add a new filetype under prefs > files > settings & syntax. the extensions are m/mi, now locate the stx/acp files (in your winampdir).
click ok and go to document > refresh ACP/STX. now your file should have nice colors :)
If you want to use the cliptext funstions in Editplus, you must copy maki.ctl to your editplus ini dir. (progs/editplus2) [i am not really sure about this step, since i do not use cliptext :(]
2.3) Maki Overview
Now you should at least be able to compile maki scripts. Learning how to write them is the next step. Again i encourage you to look at the scripts that are delivered with this pack!
They are always build like this:
#include <lib/std.mi> //must always be included!!
//Now you define some functions or globals.
Global String hello;
Global Text myText
//The whole script starts with this function:
System.onScriptLoaded ()
{
//here we define our variables
group sg = getScriptGroup(); //this is the group our script runs in
myText = sg.findObject("the id of a text object in xml");
hello = "Hey, this is my first script";
myText.setText(hello);
}
Your next quetsion might be, what functions can i call?
The answer is easy: all functions that are listed in the *.mi files in WinampDir/lib.
For documentations, use again teh above links or look at other scripts.
3) Bento Scripts
I suggest if you are new in skinning and maki, start with Winamp Modern, since it uses much easier maki scripts.
Bento itself are 2 skins (Bento and Big Bento) Bento uses the same scripts as Big Bento (reads them from the Big Bento/scripts folder). So i need sometimes to submit params within my skin declaration in order to detect which skinn is currently running.
The next difference is that I included some scripts to be applied more than one time in xml (like hoverstimulate.maki). i submit all neccessary params again via the script params.
Last but not least Bento's scripts are communicating with each other via the sendAction function.
for example if you collapse the player window, the normal layout will recieve this function:
normal.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
{
if (action == "sui" && param == "tonocomp" && x == 0)
{
// x is 0 if the window is not collapsed, or 1 if it is already collapsed (on startup)
}
}
here is a (incomplete) list of all calls i remember:
action | param | x
-normal layout:
sui tonocomp 1/0
fromnocomp
load_comp pledit
pledit_posupdate
-playlist/infocomp frame
set_maxwidth
-browser
openurl url
search string
go (if you want to use the editbox text)
-sui group
browser_navigate some site
browser_search some string
...
So you can send "browser_navigate" "http://mysite.com" to the sui group, and it will switch to the browser and open the site, hehe.
Perhaps read through the scripts to see why i added these calls, and how you can manipluate them...
4) Reinstalling Winamp with WaSDP
If you want to install a newer version of winamp and WaSDP is already installed, it might happen that the m files in the default skin dirs are deleted.
Solution: install WaSDP again, hehe.
5) I want help - got lost within the skinning engine... or can someone make my skin
If you have a great skin idea or a great design and you have big problems with coding xml/maki you have some possibilities:
- post at http://forums.winamp.com but ensure to read the "you want someone to make a skin for you"
- post at http://forums.skinconsortium.com and we will decide if we want to code this skin (atm we have lots proposals that are not done... but feel free to post)
- throw your idea/PSDs in the recycle bin
- try with more effort to learn XML/MAKI, hehe
6) ...Postludium
That's all :)
Well, i hope i could help you with this readme in some skinning issues,
-Martin