winamp/Src/resources/skins/Big Bento/scripts/timecontrol.m

89 lines
2.1 KiB
Objective-C

/*---------------------------------------------------
-----------------------------------------------------
Filename: timecontrol.m
Version: 1.0
Type: maki
Date: 29. Jun. 2007 - 00:13
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include <lib/config.mi>
#include <lib/com/AutoRepeatButton.m>
Function updateAttrib (int val);
Global ConfigAttribute timeAttrib;
Global text Display;
Global AutoRepeatButton Increase, Decrease;
Global float multiplier;
Global int maxvalue, step;
Global string suffix;
Global boolean myChange;
System.onScriptLoaded ()
{
AutoRepeat_Load();
string param = getParam();
string objects = getToken(param, "|", 0);
group scriptGroup = getScriptGroup();
Display = scriptGroup.findObject(getToken(objects, ";", 0));
Decrease = scriptGroup.findObject(getToken(objects, ";", 1));
Increase = scriptGroup.findObject(getToken(objects, ";", 2));
objects = getToken(param, "|", 1);
timeAttrib = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
step = stringToInteger(getToken(param, "|", 2));
maxvalue = stringToInteger(getToken(param, "|", 3));
multiplier = stringToFloat(getToken(param, "|", 4));
suffix = getToken(param, "|", 5);
AutoRepeat_SetInitalDelay(250);
AutoRepeat_SetRepeatDelay(125);
updateAttrib (0);
}
System.onScriptUnloading ()
{
AutoRepeat_Unload();
}
Increase.onLeftClick ()
{
if (!AutoRepeat_ClickType) return;
updateAttrib (step);
}
Decrease.onLeftClick ()
{
if (!AutoRepeat_ClickType) return;
updateAttrib (-step);
}
timeAttrib.onDataChanged ()
{
if (myChange) return;
updateAttrib (0);
}
updateAttrib (int val)
{
float i = stringToInteger(timeAttrib.getData());
i += val;
if (i < 0 || i > maxvalue) return;
myChange = 1;
string s = integerToString(i);
if (timeAttrib) timeAttrib.setData(s);
i *= multiplier;
s = floatToString(i,1);
Display.setText(s + suffix);
myChange = 0;
}