public virtual void Draw(Graphics g, Rectangle bounds, ButtonThemeState state, Color backColor, Color foreColor)
        {
            bool    is_themecolor = backColor.ToArgb() == ThemeEngine.Current.ColorControl.ToArgb() || backColor == Color.Empty ? true : false;
            CPColor cpcolor       = is_themecolor ? CPColor.Empty : ResPool.GetCPColor(backColor);
            Pen     pen;

            switch (state)
            {
            case ButtonThemeState.Normal:
            case ButtonThemeState.Entered:
            case ButtonThemeState.Disabled:
                pen = is_themecolor ? SystemPens.ControlLightLight : ResPool.GetPen(cpcolor.LightLight);
                g.DrawLine(pen, bounds.X, bounds.Y, bounds.X, bounds.Bottom - 2);
                g.DrawLine(pen, bounds.X + 1, bounds.Y, bounds.Right - 2, bounds.Y);

                pen = is_themecolor ? SystemPens.Control : ResPool.GetPen(backColor);
                g.DrawLine(pen, bounds.X + 1, bounds.Y + 1, bounds.X + 1, bounds.Bottom - 3);
                g.DrawLine(pen, bounds.X + 2, bounds.Y + 1, bounds.Right - 3, bounds.Y + 1);

                pen = is_themecolor ? SystemPens.ControlDark : ResPool.GetPen(cpcolor.Dark);
                g.DrawLine(pen, bounds.X + 1, bounds.Bottom - 2, bounds.Right - 2, bounds.Bottom - 2);
                g.DrawLine(pen, bounds.Right - 2, bounds.Y + 1, bounds.Right - 2, bounds.Bottom - 3);

                pen = is_themecolor ? SystemPens.ControlDarkDark : ResPool.GetPen(cpcolor.DarkDark);
                g.DrawLine(pen, bounds.X, bounds.Bottom - 1, bounds.Right - 1, bounds.Bottom - 1);
                g.DrawLine(pen, bounds.Right - 1, bounds.Y, bounds.Right - 1, bounds.Bottom - 2);
                break;

            case ButtonThemeState.Pressed:
                g.DrawRectangle(ResPool.GetPen(foreColor), bounds.X, bounds.Y, bounds.Width - 1, bounds.Height - 1);

                bounds.Inflate(-1, -1);
                pen = is_themecolor ? SystemPens.ControlDark : ResPool.GetPen(cpcolor.Dark);
                g.DrawRectangle(pen, bounds.X, bounds.Y, bounds.Width - 1, bounds.Height - 1);
                break;

            case ButtonThemeState.Default:
                g.DrawRectangle(ResPool.GetPen(foreColor), bounds.X, bounds.Y, bounds.Width - 1, bounds.Height - 1);

                bounds.Inflate(-1, -1);
                pen = is_themecolor ? SystemPens.ControlLightLight : ResPool.GetPen(cpcolor.LightLight);
                g.DrawLine(pen, bounds.X, bounds.Y, bounds.X, bounds.Bottom - 2);
                g.DrawLine(pen, bounds.X + 1, bounds.Y, bounds.Right - 2, bounds.Y);

                pen = is_themecolor ? SystemPens.Control : ResPool.GetPen(backColor);
                g.DrawLine(pen, bounds.X + 1, bounds.Y + 1, bounds.X + 1, bounds.Bottom - 3);
                g.DrawLine(pen, bounds.X + 2, bounds.Y + 1, bounds.Right - 3, bounds.Y + 1);

                pen = is_themecolor ? SystemPens.ControlDark : ResPool.GetPen(cpcolor.Dark);
                g.DrawLine(pen, bounds.X + 1, bounds.Bottom - 2, bounds.Right - 2, bounds.Bottom - 2);
                g.DrawLine(pen, bounds.Right - 2, bounds.Y + 1, bounds.Right - 2, bounds.Bottom - 3);

                pen = is_themecolor ? SystemPens.ControlDarkDark : ResPool.GetPen(cpcolor.DarkDark);
                g.DrawLine(pen, bounds.X, bounds.Bottom - 1, bounds.Right - 1, bounds.Bottom - 1);
                g.DrawLine(pen, bounds.Right - 1, bounds.Y, bounds.Right - 1, bounds.Bottom - 2);
                break;
            }
        }
		public virtual void Draw (Graphics g, Rectangle bounds, ButtonThemeState state, Color backColor, Color foreColor) {
			bool is_themecolor = backColor.ToArgb () == ThemeEngine.Current.ColorControl.ToArgb () || backColor == Color.Empty ? true : false;
			CPColor cpcolor = is_themecolor ? CPColor.Empty : ResPool.GetCPColor (backColor);
			Pen pen;
			
			switch (state) {
				case ButtonThemeState.Normal:
				case ButtonThemeState.Entered:
				case ButtonThemeState.Disabled:
					pen = is_themecolor ? SystemPens.ControlLightLight : ResPool.GetPen (cpcolor.LightLight);
					g.DrawLine (pen, bounds.X, bounds.Y, bounds.X, bounds.Bottom - 2);
					g.DrawLine (pen, bounds.X + 1, bounds.Y, bounds.Right - 2, bounds.Y);

					pen = is_themecolor ? SystemPens.Control : ResPool.GetPen (backColor);
					g.DrawLine (pen, bounds.X + 1, bounds.Y + 1, bounds.X + 1, bounds.Bottom - 3);
					g.DrawLine (pen, bounds.X + 2, bounds.Y + 1, bounds.Right - 3, bounds.Y + 1);

					pen = is_themecolor ? SystemPens.ControlDark : ResPool.GetPen (cpcolor.Dark);
					g.DrawLine (pen, bounds.X + 1, bounds.Bottom - 2, bounds.Right - 2, bounds.Bottom - 2);
					g.DrawLine (pen, bounds.Right - 2, bounds.Y + 1, bounds.Right - 2, bounds.Bottom - 3);

					pen = is_themecolor ? SystemPens.ControlDarkDark : ResPool.GetPen (cpcolor.DarkDark);
					g.DrawLine (pen, bounds.X, bounds.Bottom - 1, bounds.Right - 1, bounds.Bottom - 1);
					g.DrawLine (pen, bounds.Right - 1, bounds.Y, bounds.Right - 1, bounds.Bottom - 2);
					break;
				case ButtonThemeState.Pressed:
					g.DrawRectangle (ResPool.GetPen (foreColor), bounds.X, bounds.Y, bounds.Width - 1, bounds.Height - 1);

					bounds.Inflate (-1, -1);
					pen = is_themecolor ? SystemPens.ControlDark : ResPool.GetPen (cpcolor.Dark);
					g.DrawRectangle (pen, bounds.X, bounds.Y, bounds.Width - 1, bounds.Height - 1);
					break;
				case ButtonThemeState.Default:
					g.DrawRectangle (ResPool.GetPen (foreColor), bounds.X, bounds.Y, bounds.Width - 1, bounds.Height - 1);

					bounds.Inflate (-1, -1);
					pen = is_themecolor ? SystemPens.ControlLightLight : ResPool.GetPen (cpcolor.LightLight);
					g.DrawLine (pen, bounds.X, bounds.Y, bounds.X, bounds.Bottom - 2);
					g.DrawLine (pen, bounds.X + 1, bounds.Y, bounds.Right - 2, bounds.Y);

					pen = is_themecolor ? SystemPens.Control : ResPool.GetPen (backColor);
					g.DrawLine (pen, bounds.X + 1, bounds.Y + 1, bounds.X + 1, bounds.Bottom - 3);
					g.DrawLine (pen, bounds.X + 2, bounds.Y + 1, bounds.Right - 3, bounds.Y + 1);

					pen = is_themecolor ? SystemPens.ControlDark : ResPool.GetPen (cpcolor.Dark);
					g.DrawLine (pen, bounds.X + 1, bounds.Bottom - 2, bounds.Right - 2, bounds.Bottom - 2);
					g.DrawLine (pen, bounds.Right - 2, bounds.Y + 1, bounds.Right - 2, bounds.Bottom - 3);

					pen = is_themecolor ? SystemPens.ControlDarkDark : ResPool.GetPen (cpcolor.DarkDark);
					g.DrawLine (pen, bounds.X, bounds.Bottom - 1, bounds.Right - 1, bounds.Bottom - 1);
					g.DrawLine (pen, bounds.Right - 1, bounds.Y, bounds.Right - 1, bounds.Bottom - 2);
					break;
			}
		}
		public static void DrawPopupButton (Graphics g, Rectangle bounds, ButtonThemeState state, Color backColor, Color foreColor)
		{
			theme.ButtonPainter.DrawPopup (g, bounds, state, backColor, foreColor);
		}
		public static void DrawFlatButton (Graphics g, Rectangle bounds, ButtonThemeState state, Color backColor, Color foreColor, FlatButtonAppearance appearance)
		{
			theme.ButtonPainter.DrawFlat (g, bounds, state, backColor, foreColor, appearance);
		}
		public virtual void DrawFlat (Graphics g, Rectangle bounds, ButtonThemeState state, Color backColor, Color foreColor, FlatButtonAppearance appearance) {
			bool is_themecolor = backColor.ToArgb () == ThemeEngine.Current.ColorControl.ToArgb () || backColor == Color.Empty ? true : false;
			CPColor cpcolor = is_themecolor ? CPColor.Empty : ResPool.GetCPColor (backColor);
			Pen pen;
			
			switch (state) {
				case ButtonThemeState.Normal:
				case ButtonThemeState.Disabled:
					// This will just use the BackColor
					break;
				case ButtonThemeState.Entered:
				case ButtonThemeState.Default | ButtonThemeState.Entered:
					if (appearance.MouseOverBackColor != Color.Empty)
						g.FillRectangle (ResPool.GetSolidBrush (appearance.MouseOverBackColor), bounds);
					else
						g.FillRectangle (ResPool.GetSolidBrush (ChangeIntensity (backColor, .9F)), bounds);
					break;
				case ButtonThemeState.Pressed:
					if (appearance.MouseDownBackColor != Color.Empty)
						g.FillRectangle (ResPool.GetSolidBrush (appearance.MouseDownBackColor), bounds);
					else
						g.FillRectangle (ResPool.GetSolidBrush (ChangeIntensity (backColor, .95F)), bounds);
					break;
				case ButtonThemeState.Default:
					if (appearance.CheckedBackColor != Color.Empty)
						g.FillRectangle (ResPool.GetSolidBrush (appearance.CheckedBackColor), bounds);
					break;
			}
			
			if (appearance.BorderColor == Color.Empty)
				pen = is_themecolor ? SystemPens.ControlDarkDark : ResPool.GetSizedPen (cpcolor.DarkDark, appearance.BorderSize);
			else
				pen = ResPool.GetSizedPen (appearance.BorderColor, appearance.BorderSize);
				
			bounds.Width -= 1;
			bounds.Height -= 1;
				
			if (appearance.BorderSize > 0)
				g.DrawRectangle (pen, bounds);
		}
 public static void DrawPopupButton(Graphics g, Rectangle bounds, ButtonThemeState state, Color backColor, Color foreColor)
 {
     theme.ButtonPainter.DrawPopup(g, bounds, state, backColor, foreColor);
 }
 public static void DrawFlatButton(Graphics g, Rectangle bounds, ButtonThemeState state, Color backColor, Color foreColor, FlatButtonAppearance appearance)
 {
     theme.ButtonPainter.DrawFlat(g, bounds, state, backColor, foreColor, appearance);
 }
        public virtual void DrawFlat(Graphics g, Rectangle bounds, ButtonThemeState state, Color backColor, Color foreColor, FlatButtonAppearance appearance)
        {
            bool    is_themecolor = backColor.ToArgb() == ThemeEngine.Current.ColorControl.ToArgb() || backColor == Color.Empty ? true : false;
            CPColor cpcolor       = is_themecolor ? CPColor.Empty : ResPool.GetCPColor(backColor);
            Pen     pen;

            switch (state)
            {
            case ButtonThemeState.Normal:
            case ButtonThemeState.Disabled:
                // This will just use the BackColor
                break;

            case ButtonThemeState.Entered:
            case ButtonThemeState.Default | ButtonThemeState.Entered:
                if (appearance.MouseOverBackColor != Color.Empty)
                {
                    g.FillRectangle(ResPool.GetSolidBrush(appearance.MouseOverBackColor), bounds);
                }
                else
                {
                    g.FillRectangle(ResPool.GetSolidBrush(ChangeIntensity(backColor, .9F)), bounds);
                }
                break;

            case ButtonThemeState.Pressed:
                if (appearance.MouseDownBackColor != Color.Empty)
                {
                    g.FillRectangle(ResPool.GetSolidBrush(appearance.MouseDownBackColor), bounds);
                }
                else
                {
                    g.FillRectangle(ResPool.GetSolidBrush(ChangeIntensity(backColor, .95F)), bounds);
                }
                break;

            case ButtonThemeState.Default:
                if (appearance.CheckedBackColor != Color.Empty)
                {
                    g.FillRectangle(ResPool.GetSolidBrush(appearance.CheckedBackColor), bounds);
                }
                break;
            }

            if (appearance.BorderColor == Color.Empty)
            {
                pen = is_themecolor ? SystemPens.ControlDarkDark : ResPool.GetSizedPen(cpcolor.DarkDark, appearance.BorderSize);
            }
            else
            {
                pen = ResPool.GetSizedPen(appearance.BorderColor, appearance.BorderSize);
            }

            bounds.Width  -= 1;
            bounds.Height -= 1;

            if (appearance.BorderSize > 0)
            {
                g.DrawRectangle(pen, bounds);
            }
        }
Example #9
0
 public static void DrawButton(Graphics g, Rectangle_ bounds, ButtonThemeState state, Color_ backColor, Color_ foreColor)
 {
     theme.ButtonPainter.Draw(g, bounds, state, backColor, foreColor);
 }