local t = Def.ActorFrame{
	LoadActor("_base")..{
		SetMessageCommand=function(self,params)
			if params.HasFocus then
				self:diffuseshift();
				self:effectclock("bgm");
				self:effectcolor1(color("#FFFFFF"));
				self:effectcolor2(color("#FFCCAA"));
			else
				self:stopeffect();
				self:diffusecolor(color("#FFFFFF"));
			end;
		end;
	};
	
	LoadActor( THEME:GetPathG("Common","WheelItemOutline") )..{
		SetMessageCommand=function(self,params)
			if(params.HasFocus) then self:play();
			else
				self:setstate(0);
				self:pause();
			end;
		end;
	};
	
	--[[
	-- fun debugging exercise (useful later)
	LoadFont("","_helvblack")..{
		InitCommand=cmd(x,80;y,10;horizalign,right;zoom,0.4;diffusealpha,0.8);
		SetMessageCommand=function(self,params)
			self:settext(params.Index);
		end;
	};
	]]
	
	--[[
	-- this is a more practical example
	LoadFont("","_helvblack")..{
		Text="2 Stages";
		InitCommand=cmd(x,80;y,10;horizalign,right;zoom,0.4;diffusealpha,0.8);
		SetMessageCommand=function(self,params)
			if( params.Song:IsLong() ) then
				self:visible(true);
			else self:visible(false);
			end;
		end;
	};
	]]
};

return t;

-- code: synikal