Esempio n. 1
0
    /// <summary>
    /// Creates a toggle button.
    /// </summary>
    /// <param name="state1TriggerDelegate">Delegate to call when button is switched to state 1.</param>
    /// <param name="state2TriggerDelegate">Delegate to call when button is switched to state 2.</param>
    /// <param name="triggerType">When is button "triggered"?</param>
    /// <param name="initialState">Starting state of toggle button.</param>
    public void Initialize(System.EventHandler <System.EventArgs> state1TriggerDelegate,
                           System.EventHandler <System.EventArgs> state2TriggerDelegate,
                           TriggerType triggerType        = TriggerType.ON_PRESS,
                           ToggleButtonState initialState = ToggleButtonState.STATE1)
    {
        base.InitializeElement();

        // Make sure element has a PressGesture component
        m_pressGesture = this.gameObject.AddComponentNoDupe <PressGesture>();
        // No need for ReleaseGesture - this script has a different implementation for release

        m_triggerType = triggerType;

        switch (triggerType)
        {
        case TriggerType.ON_PRESS:
        default:
            AddPressDelegate(state1TriggerDelegate, ToggleButtonState.STATE1);
            AddPressDelegate(state2TriggerDelegate, ToggleButtonState.STATE2);
            break;

        case TriggerType.ON_RELEASE:
            AddReleaseDelegate(state1TriggerDelegate, ToggleButtonState.STATE1);
            AddReleaseDelegate(state2TriggerDelegate, ToggleButtonState.STATE2);
            break;
        }

        m_toggleButtonState = initialState;
        // Apply button sprite for the starting state
        m_spriteRenderer.sprite = (initialState == ToggleButtonState.STATE1) ?
                                  m_state1UnpressedSprite :
                                  m_state2UnpressedSprite;
    }
Esempio n. 2
0
 /// <summary>
 /// Sets button sprites for the specified toggle button state.
 /// </summary>
 /// <param name="state1UnpressedSprite">Unpressed sprite for state 1.</param>
 /// <param name="state1UnpressedSprite">Pressed sprite for state 1.</param>
 /// <param name="state">State to assign button sprites for.</param>
 public void SetSprites(Sprite unpressedSprite, Sprite pressedSprite, ToggleButtonState state)
 {
     if (state == ToggleButtonState.STATE1)
     {
         m_state1UnpressedSprite = unpressedSprite;
         m_state1PressedSprite   = pressedSprite;
     }
     else
     {
         m_state2UnpressedSprite = unpressedSprite;
         m_state2PressedSprite   = pressedSprite;
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Updates the touch that is on this button.
 /// </summary>
 private void UpdateActiveTouch()
 {
     if (m_activeTouch == null)
     {
         return;
     }
     // If touch is released while over this button, trigger the release event
     if (!TouchManager.Instance.ActiveTouches.Contains(m_activeTouch))
     {
         // On release, toggle between state 1 and state 2
         if (IsInState1)
         {
             // Toggle to state 2 (*before* calling release delegates)
             m_toggleButtonState = ToggleButtonState.STATE2;
             // Call release delegates for state 1
             foreach (System.EventHandler <System.EventArgs> releaseDelegate in m_state1ReleaseDelegateSet)
             {
                 releaseDelegate(this, new System.EventArgs());
             }
             // Update press delegates for state 2
             RemoveDelegatesFromPressGesture(m_state1PressDelegateSet);
             AddDelegatesToPressGesture(m_state2PressDelegateSet);
         }
         else
         {
             // Toggle to state 1 (*before* calling release delegates)
             m_toggleButtonState = ToggleButtonState.STATE1;
             // Call release delegates for state 2
             foreach (System.EventHandler <System.EventArgs> releaseDelegate in m_state2ReleaseDelegateSet)
             {
                 releaseDelegate(this, new System.EventArgs());
             }
             // Update press delegates for state 1
             RemoveDelegatesFromPressGesture(m_state2PressDelegateSet);
             AddDelegatesToPressGesture(m_state1PressDelegateSet);
         }
     }
     // If touch is moved off this button, call the OnButtonRelease method only
     else if (m_activeTouch.Hit == null || m_activeTouch.Hit.Transform != this.transform)
     {
         OnButtonRelease(this, new System.EventArgs());
     }
 }
Esempio n. 4
0
    public void DrawSlider(PaintEventArgs e, Point p, ToggleButtonState toggleState, SliderCollection slider, Font font, RightToLeft righttoLeft, bool isMouseMove, bool isMouseHover)
    {
        e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
        Rectangle controlrect = new Rectangle(e.ClipRectangle.X, e.ClipRectangle.Y, slider.Width, slider.Width - 1);
        Rectangle t_sliderRectangle;

        if (!isMouseMove)
        {
            if (toggleState == ToggleButtonState.Inactive)
            {
                t_sliderRectangle = new Rectangle(e.ClipRectangle.X, e.ClipRectangle.Y, e.ClipRectangle.Height - 1, e.ClipRectangle.Height - 1);
            }
            else
            {
                t_sliderRectangle = new Rectangle(e.ClipRectangle.X + e.ClipRectangle.Width - e.ClipRectangle.Height, e.ClipRectangle.Y, e.ClipRectangle.Height - 1, e.ClipRectangle.Height - 1);
            }
        }
        else
        {
            t_sliderRectangle = new Rectangle(p.X, e.ClipRectangle.Y, e.ClipRectangle.Height - 1, e.ClipRectangle.Height - 1);
        }
        if (isMouseHover)
        {
            using (SolidBrush br = new SolidBrush(slider.BackColor))
            {
                e.Graphics.FillEllipse(br, t_sliderRectangle);
                using (Pen pn = new Pen(Color.Gray, 2))
                    e.Graphics.DrawEllipse(pn, t_sliderRectangle);
            }
        }
        else
        {
            using (SolidBrush br = new SolidBrush(slider.BackColor))
            {
                e.Graphics.FillEllipse(br, t_sliderRectangle);
                e.Graphics.DrawEllipse(Pens.Gray, t_sliderRectangle);
            }
        }
    }
Esempio n. 5
0
    /// <summary>
    /// Creates a toggle button with the specified button sprites for the two toggle button states.
    /// </summary>
    /// <param name="state1TriggerDelegate">Delegate to call when button is switched to state 1.</param>
    /// <param name="state2TriggerDelegate">Delegate to call when button is switched to state 2.</param>
    /// <param name="triggerType">When is button "triggered"?</param>
    /// <param name="state1UnpressedSprite">Unpressed sprite for toggle button state 1.</param>
    /// <param name="state1PressedSprite">Pressed sprite for toggle button state 1.</param>
    /// <param name="state2UnpressedSprite">Unpressed sprite for toggle button state 2.</param>
    /// <param name="state2PressedSprite">Pressed sprite for toggle button state 2.</param>
    /// <param name="initialState">Starting state of toggle button.</param>
    public void Initialize(System.EventHandler <System.EventArgs> state1TriggerDelegate,
                           System.EventHandler <System.EventArgs> state2TriggerDelegate,
                           TriggerType triggerType,
                           Sprite state1UnpressedSprite,
                           Sprite state1PressedSprite,
                           Sprite state2UnpressedSprite,
                           Sprite state2PressedSprite,
                           ToggleButtonState initialState = ToggleButtonState.STATE1)
    {
        Initialize(state1TriggerDelegate, state2TriggerDelegate, triggerType);

        // If pressed sprite parameters are left empty, use the unpressed sprite
        if (state1PressedSprite == null)
        {
            state1PressedSprite = state1UnpressedSprite;
        }
        if (state2PressedSprite == null)
        {
            state2PressedSprite = state2UnpressedSprite;
        }
        // Set sprites for the appropriate toggle button states
        SetSprites(state1UnpressedSprite, state1PressedSprite, ToggleButtonState.STATE1);
        SetSprites(state2UnpressedSprite, state2PressedSprite, ToggleButtonState.STATE2);
    }
Esempio n. 6
0
    /// <summary>
    /// Adds button press and release sound delegates for the specified toggle button state.
    /// </summary>
    /// <returns><c>true</c>, if at least one sound delegate was added, <c>false</c> otherwise.</returns>
    /// <param name="pressSoundDelegate">Press sound delegate.</param>
    /// <param name="releaseSoundDelegate">Release sound delegate.</param>
    public bool AddSoundDelegates(System.EventHandler <System.EventArgs> pressSoundDelegate,
                                  System.EventHandler <System.EventArgs> releaseSoundDelegate,
                                  ToggleButtonState state)
    {
        bool delegateAdded = false;

        if (pressSoundDelegate != null && AddPressDelegate(pressSoundDelegate, state))
        {
            delegateAdded = true;
        }
        if (releaseSoundDelegate != null)
        {
            if (state == ToggleButtonState.STATE1)
            {
                m_state1ButtonReleaseSoundDelegate = releaseSoundDelegate;
            }
            else
            {
                m_state2ButtonReleaseSoundDelegate = releaseSoundDelegate;
            }
            delegateAdded = true;
        }
        return(delegateAdded);
    }
            public void SetValueSilently(ToggleButtonState value)
            {
                Control.innerHTML = value.TextOrPercentage;

                var n = new ClassNameLiteralSupport { Control = Control };

                //if (_Value_Old != null)
                //{
                //    n.className -= _Value_Old.StyleClass;

                //}

                //n.className += value.StyleClass;

                _Value_Old = value;
            }
Esempio n. 8
0
    public void DrawButton(PaintEventArgs e, ToggleButtonState toggleState, DisplayType displayMode, Font font, ActiveStateCollection activeState, InactiveStateCollection inactiveState, RightToLeft righttoLeft, bool isMouseHover, ToggleButton togglebutton)
    {
        string    displaytext = toggleState == ToggleButtonState.Active ? activeState.Text : inactiveState.Text;
        SizeF     textsize    = e.Graphics.MeasureString(displaytext, font);
        Rectangle controlrect = new Rectangle(e.ClipRectangle.X + 1, e.ClipRectangle.Y + 1, e.ClipRectangle.Width - 4, e.ClipRectangle.Height - 4);

        e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
        GraphicsPath gp = new GraphicsPath();

        using (LinearGradientBrush br = new LinearGradientBrush(e.ClipRectangle, ColorTranslator.FromHtml("#007feb"), ColorTranslator.FromHtml("#51a7f2"), LinearGradientMode.Vertical))
        {
            if (controlrect.Height > 1)
            {
                gp.AddArc(controlrect.X, controlrect.Y, controlrect.Height, controlrect.Height, 180, 90);
                gp.AddArc(controlrect.X + controlrect.Width - controlrect.Height, controlrect.Y, controlrect.Height, controlrect.Height, 270, 90);
                gp.AddArc(controlrect.X + controlrect.Width - controlrect.Height, controlrect.Y + controlrect.Height - controlrect.Height, controlrect.Height, controlrect.Height, 0, 90);
                gp.AddArc(controlrect.X, controlrect.Y + controlrect.Height - controlrect.Height, controlrect.Height, controlrect.Height, 90, 90);
                gp.CloseFigure();
                e.Graphics.DrawPath(new Pen(ColorTranslator.FromHtml("#002f69"), 2), gp);
            }
        }
        GraphicsPath gp1 = new GraphicsPath();

        using (LinearGradientBrush br = new LinearGradientBrush(e.ClipRectangle, ColorTranslator.FromHtml("#007feb"), ColorTranslator.FromHtml("#51a7f2"), LinearGradientMode.Vertical))
        {
            if (controlrect.Height > 1)
            {
                gp1.AddArc(controlrect.X, controlrect.Y + 1, controlrect.Height + 2, controlrect.Height, 180, 90);
                gp1.AddArc(controlrect.X + controlrect.Width - controlrect.Height, controlrect.Y, controlrect.Height, controlrect.Height, 270, 90);
                gp1.AddArc(controlrect.X + 1 + controlrect.Width - controlrect.Height, controlrect.Y + controlrect.Height - controlrect.Height, controlrect.Height, controlrect.Height, 0, 90);
                gp1.AddArc(controlrect.X, controlrect.Y + controlrect.Height - controlrect.Height, controlrect.Height, controlrect.Height, 90, 90);
                gp1.CloseFigure();
                e.Graphics.FillPath(br, gp1);
                gp1.Dispose();
            }
        }
        GraphicsPath gp2 = new GraphicsPath();

        using (LinearGradientBrush br = new LinearGradientBrush(e.ClipRectangle, ColorTranslator.FromHtml("#51a7f2"), ColorTranslator.FromHtml("#51a7f2"), LinearGradientMode.Vertical))
        {
            if (controlrect.Height > 1)
            {
                gp2.AddArc(controlrect.X + 5, controlrect.Y + controlrect.Height / 2, controlrect.Height - controlrect.Height / 2, controlrect.Height / 2, 180, 90);
                gp2.AddArc(controlrect.X + 5 + controlrect.Width - controlrect.Height, controlrect.Y + controlrect.Height / 2, controlrect.Height - controlrect.Height / 2, controlrect.Height / 2, 270, 90);
                gp2.AddArc(controlrect.X + 5 + controlrect.Width - controlrect.Height, controlrect.Y + controlrect.Height - controlrect.Height + controlrect.Height / 2, controlrect.Height - controlrect.Height / 2, controlrect.Height / 2, 0, 90);
                gp2.AddArc(controlrect.X + 5, controlrect.Y + controlrect.Height - controlrect.Height + controlrect.Height / 2, controlrect.Height - controlrect.Height / 2, controlrect.Height / 2, 90, 90);
                gp2.CloseFigure();
                e.Graphics.FillPath(br, gp2);
                gp2.Dispose();
            }
        }
        if (isMouseHover)
        {
            using (SolidBrush br = new SolidBrush(ColorTranslator.FromHtml("#51a7f2")))
            {
                e.Graphics.FillPath(br, gp);
            }
        }
        PointF pt1 = new PointF(e.ClipRectangle.X + e.ClipRectangle.Width / 2 - textsize.Width / 2, e.ClipRectangle.Y + e.ClipRectangle.Height / 2 - textsize.Height / 2);

        using (SolidBrush br = new SolidBrush(activeState.ForeColor))
        {
            if (displayMode == DisplayType.Text)
            {
                e.Graphics.DrawString(displaytext, font, br, pt1);
            }
        }
        gp.Dispose();
    }
 private void setImgState(ToggleButtonState state)
 {
     imgBrush.Viewbox = imgRects[state];
 }
Esempio n. 10
0
 private void RefreshToggleState(ToggleButtonState state)
 {
     this.ToggleState = state;
     justRefresh      = true;
 }
Esempio n. 11
0
 public ToggleButtonStateEventArgs(ToggleButtonState ButtonState)
 {
 }
Esempio n. 12
0
 /// <summary>
 /// Removes a release delegate for the specified toggle button state.
 /// </summary>
 /// <returns><c>true</c>, if release delegate was removed, <c>false</c> otherwise.</returns>
 /// <param name="releaseDelegate">Release delegate to remove.</param>
 /// <param name="state">State to remove delegate from.</param>
 public bool RemoveReleaseDelegate(System.EventHandler <System.EventArgs> releaseDelegate, ToggleButtonState state)
 {
     if (state == ToggleButtonState.STATE1)
     {
         return(m_state1ReleaseDelegateSet.Remove(releaseDelegate));
     }
     return(m_state2ReleaseDelegateSet.Remove(releaseDelegate));
 }
Esempio n. 13
0
    /// <summary>
    /// Removes a press delegate for the specified toggle button state.
    /// </summary>
    /// <returns><c>true</c>, if press delegate was removed, <c>false</c> otherwise.</returns>
    /// <param name="pressDelegate">Press delegate to remove.</param>
    /// <param name="state">State to remove delegate from.</param>
    public bool RemovePressDelegate(System.EventHandler <System.EventArgs> pressDelegate, ToggleButtonState state)
    {
        switch (state)
        {
        case ToggleButtonState.STATE1:
        default:
            if (m_state1PressDelegateSet.Remove(pressDelegate))
            {
                if (IsInState1)
                {
                    m_pressGesture.Pressed -= pressDelegate;
                }
                return(true);
            }
            break;

        case ToggleButtonState.STATE2:
            if (m_state2PressDelegateSet.Remove(pressDelegate))
            {
                if (IsInState2)
                {
                    m_pressGesture.Pressed -= pressDelegate;
                }
                return(true);
            }
            break;
        }
        return(false);
    }
 public ToggleButtonStateEventArgs(ToggleButtonState ButtonState)
 {
 }
 private void RefreshToggleState(ToggleButtonState state)
 {
     this.ToggleState = state;
     justRefresh = true;
 }
Esempio n. 16
0
        internal override void ParseXEvent(System.IntPtr call, System.IntPtr client)
        {
            var callData = (Native.Motif.XmStruct.XmToggleButtonCallbackStruct)
                Marshal.PtrToStructure(call, typeof(Native.Motif.XmStruct.XmToggleButtonCallbackStruct ));

            Reason = ConvertReason(callData.reason);
            Set = (ToggleButtonState)callData.set;
        }