mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-24 04:54:52 +01:00
177 lines
3.4 KiB
Mathematica
177 lines
3.4 KiB
Mathematica
|
/**
|
||
|
* glowobject.m
|
||
|
*
|
||
|
* @package com.winamp.maki.lib.community.glowobject
|
||
|
* @author mpdeimos
|
||
|
* @date 18/10/01
|
||
|
* @version 1.0
|
||
|
*/
|
||
|
|
||
|
|
||
|
#ifndef included
|
||
|
#error This script can only be compiled as a #include
|
||
|
#endif
|
||
|
|
||
|
#define GLOW_TYPE_HOLD 0
|
||
|
#define GLOW_TYPE_FLASH 1
|
||
|
#define GLOW_TYPE_BOUNCE 2
|
||
|
|
||
|
Class GuiObject GlowLayer;
|
||
|
// {
|
||
|
Member GuiObject GlowLayer.trigger;
|
||
|
// }
|
||
|
|
||
|
Class GuiObject GlowObject;
|
||
|
// {
|
||
|
Member float GlowObject.fadeInSpeed;
|
||
|
Member float GlowObject.fadeOutSpeed;
|
||
|
Member int GlowObject.glowType;
|
||
|
Member boolean GlowObject.glowing;
|
||
|
|
||
|
Member GuiObject GlowObject.glow;
|
||
|
|
||
|
/**
|
||
|
* constructor
|
||
|
*
|
||
|
* @param GuiObject that will be used to trigger the glow on mouse entering it's region
|
||
|
* @param the glowing object
|
||
|
* @ret GlowObject object
|
||
|
*/
|
||
|
Function GlowObject GlowObject_construct(GlowObject trigger, GlowLayer glow);
|
||
|
|
||
|
/**
|
||
|
* sets fade in time
|
||
|
*
|
||
|
* @param GlowObject to act on
|
||
|
* @param milliseconds till the glow is at alpha 255
|
||
|
*/
|
||
|
Function GlowObject_setFadeInSpeed(GlowObject go, float ms);
|
||
|
|
||
|
/**
|
||
|
* sets fade out time
|
||
|
*
|
||
|
* @param GlowObject to act on
|
||
|
* @param milliseconds till the glow is at alpha 0
|
||
|
*/
|
||
|
Function GlowObject_setFadeOutSpeed(GlowObject go, float ms);
|
||
|
|
||
|
/**
|
||
|
* sets the glowtype used by this glow button.
|
||
|
*
|
||
|
* @param GlowObject to act on
|
||
|
* @param glowType defined via GLOW_TYPE_*
|
||
|
*/
|
||
|
Function GlowObject_setGlowType(GlowObject go, int glowType);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* IMPLEMENTATION
|
||
|
*/
|
||
|
|
||
|
GlowObject GlowObject_construct(GlowObject trigger, GlowLayer glow)
|
||
|
{
|
||
|
if (trigger == null)
|
||
|
{
|
||
|
debug("trigger");
|
||
|
}
|
||
|
if (glow == NULL)
|
||
|
{
|
||
|
debug("glow");
|
||
|
}
|
||
|
|
||
|
GlowObject go = trigger;
|
||
|
go.fadeInSpeed = 0.3;
|
||
|
go.fadeOutSpeed = 0.5;
|
||
|
go.glow = glow;
|
||
|
go.glowType = GLOW_TYPE_HOLD;
|
||
|
go.glowing = false;
|
||
|
glow.trigger = trigger;
|
||
|
return go;
|
||
|
}
|
||
|
|
||
|
GlowObject_setFadeInSpeed(GlowObject go, float ms)
|
||
|
{
|
||
|
go.fadeInSpeed = ms;
|
||
|
}
|
||
|
|
||
|
GlowObject_setFadeOutSpeed(GlowObject go, float ms)
|
||
|
{
|
||
|
go.fadeOutSpeed = ms;
|
||
|
}
|
||
|
|
||
|
GlowObject_setGlowType(GlowObject go, int glowType)
|
||
|
{
|
||
|
go.glowType = glowType;
|
||
|
}
|
||
|
|
||
|
GlowObject.onEnterArea ()
|
||
|
{
|
||
|
GlowObject.glowing = true;
|
||
|
GlowObject.glow.cancelTarget();
|
||
|
GlowObject.glow.setTargetA(255);
|
||
|
GlowObject.glow.setTargetSpeed(GlowObject.fadeInSpeed);
|
||
|
GlowObject.glow.gotoTarget();
|
||
|
}
|
||
|
|
||
|
GlowObject.onLeaveArea ()
|
||
|
{
|
||
|
GlowObject.glowing = false;
|
||
|
if (GlowObject.glowType != GLOW_TYPE_FLASH)
|
||
|
{
|
||
|
GlowObject.glow.cancelTarget();
|
||
|
GlowObject.glow.setTargetA(0);
|
||
|
GlowObject.glow.setTargetSpeed(GlowObject.fadeOutSpeed);
|
||
|
GlowObject.glow.gotoTarget();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
GlowLayer.onTargetReached ()
|
||
|
{
|
||
|
GlowObject go = GlowLayer.trigger;
|
||
|
if (go.glowType == GLOW_TYPE_HOLD)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
else if (go.glowType == GLOW_TYPE_FLASH)
|
||
|
{
|
||
|
if (GlowLayer.getAlpha() == 255)
|
||
|
{
|
||
|
GlowLayer.cancelTarget();
|
||
|
GlowLayer.setTargetA(0);
|
||
|
GlowLayer.setTargetSpeed(GlowObject.fadeOutSpeed);
|
||
|
GlowLayer.gotoTarget();
|
||
|
}
|
||
|
}
|
||
|
else if (go.glowType == GLOW_TYPE_BOUNCE)
|
||
|
{
|
||
|
if (GlowLayer.getAlpha() == 255)
|
||
|
{
|
||
|
GlowLayer.cancelTarget();
|
||
|
GlowLayer.setTargetA(0);
|
||
|
GlowLayer.setTargetSpeed(GlowObject.fadeOutSpeed);
|
||
|
GlowLayer.gotoTarget();
|
||
|
}
|
||
|
else if (GlowLayer.getAlpha() == 0 && go.glowing)
|
||
|
{
|
||
|
GlowLayer.cancelTarget();
|
||
|
GlowLayer.setTargetA(255);
|
||
|
GlowLayer.setTargetSpeed(GlowObject.fadeInSpeed);
|
||
|
GlowLayer.gotoTarget();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
GlowObject.onSetVisible (Boolean onoff)
|
||
|
{
|
||
|
if (onoff)
|
||
|
{
|
||
|
GlowObject.glow.show();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
GlowObject.glow.hide();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
// }
|