public ButtonState(ChromeButton button, ChromeButtonState state, bool draw, Rectangle bounds)
 {
     Button = button;
     State = state;
     Draw = draw;
     Bounds = bounds;
 }
 public ButtonState(ChromeButton button, ChromeButtonState state, bool draw, Rectangle bounds, VisualStudioButton extraButton)
 {
     Button = button;
     State = state;
     Draw = draw;
     Bounds = bounds;
     ExtraButton = extraButton;
 }
 public ButtonState(ChromeButton button, ChromeButtonState state, bool draw, Rectangle bounds, VisualStudioButton extraButton)
 {
     Button      = button;
     State       = state;
     Draw        = draw;
     Bounds      = bounds;
     ExtraButton = extraButton;
 }
        internal Brush GetButtonBackgroundBrush(ChromeButtonState state)
        {
            switch (state)
            {
            case ChromeButtonState.Down: return(_primaryColorBrush);

            case ChromeButtonState.Over: return(Brushes.White);

            default: return(SystemBrushes.Control);
            }
        }
        public void PaintBackground()
        {
            ChromeButtonState state = 0;

            if (Button.IsOver)
            {
                state = ChromeButtonState.Over;
            }
            else if (Button.IsDown)
            {
                state = ChromeButtonState.Down;
            }

            Graphics.FillRectangle(Button.Chrome.GetButtonBackgroundBrush(state), Bounds);
        }
        internal Color GetBackColor(bool enabled, ChromeButtonState state)
        {
            if (!enabled)
            {
                return(SystemColors.Control);
            }

            switch (state)
            {
            case ChromeButtonState.Over: return(Color.White);

            case ChromeButtonState.Down: return(_primaryColor);

            default: return(SystemColors.Control);
            }
        }
        public VisualStudioButtonPaintEventArgs(VisualStudioButton button, Graphics graphics, Rectangle bounds, Region clipRegion, bool isMaximized, bool isActive)
            : base(graphics, bounds, clipRegion, isMaximized, isActive)
        {
            if (button == null)
            {
                throw new ArgumentNullException("button");
            }

            Button = button;

            ChromeButtonState state = 0;

            if (button.IsOver)
            {
                state = ChromeButtonState.Over;
            }
            else if (button.IsDown)
            {
                state = ChromeButtonState.Down;
            }

            ForeColor = button.Chrome.GetForeColor(button.Enabled, state);
            BackColor = button.Chrome.GetBackColor(button.Enabled, state);
        }
        internal Color GetForeColor(bool enabled, ChromeButtonState state)
        {
            if (!enabled)
                return SystemColors.ControlDark;

            switch (state)
            {
                case ChromeButtonState.Over: return _primaryColor;
                case ChromeButtonState.Down: return Color.White;
                default: return Color.Black;
            }
        }
 internal Brush GetButtonBackgroundBrush(ChromeButtonState state)
 {
     switch (state)
     {
         case ChromeButtonState.Down: return _primaryColorBrush;
         case ChromeButtonState.Over: return Brushes.White;
         default: return SystemBrushes.Control;
     }
 }