12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- class MainMenuButtonEffect : ScriptedWidgetEventHandler
- {
- reference float speed;
- reference float amount;
- protected float m_textProportion;
- protected float m_textProportion2;
- protected ButtonWidget m_root;
- protected ref AnimatorTimer m_anim;
-
- // -----------------------------------------------------------
- void MainMenuButtonEffect()
- {
- if ( GetGame() )
- {
- GetGame().GetUpdateQueue(CALL_CATEGORY_GUI).Insert(this.Update);
- }
- m_anim = new AnimatorTimer();
- }
-
- // -----------------------------------------------------------
- void ~MainMenuButtonEffect()
- {
- if ( GetGame() && GetGame().GetUpdateQueue(CALL_CATEGORY_GUI) )
- {
- GetGame().GetUpdateQueue(CALL_CATEGORY_GUI).Remove(this.Update);
- }
- }
-
- // -----------------------------------------------------------
- void OnWidgetScriptInit(ButtonWidget w)
- {
- m_root = w;
- m_root.SetHandler(this);
- }
-
- // -----------------------------------------------------------
- protected void Update(float tDelta)
- {
- m_anim.Tick(tDelta);
- float p = amount * m_anim.GetValue();
- //m_root.SetTextProportion( m_textProportion + (p * 0.5) );
- m_root.SetTextOffset( p * 4, 0 );
-
- float c = 1.0 - m_anim.GetValue();
- m_root.SetTextColor(ARGBF(1, 1, c, c));
- }
-
- // -----------------------------------------------------------
- override bool OnFocus(Widget w, int x, int y)
- {
- //if ( !m_anim.IsRunning() ) m_textProportion = m_root.GetTextProportion();
- if ( !m_anim.IsRunning() )
- {
- m_root.GetPos( m_textProportion, m_textProportion2 );
- }
- m_anim.Animate(1.0, speed);
- return false;
- }
-
- // -----------------------------------------------------------
- override bool OnFocusLost(Widget w, int x, int y)
- {
- m_anim.Animate(0.0, speed);
- return false;
- }
- };
|