From 7deac40cb12d3206be113864bb43bd20412a7da8 Mon Sep 17 00:00:00 2001 From: Massimo Malerba Date: Sat, 11 May 2019 10:57:29 +0200 Subject: [PATCH 01/15] Minor improvements do buttons and added "danger/warning" colors --- MaterialSkin/ColorScheme.cs | 17 ++- MaterialSkin/Controls/MaterialFlatButton.cs | 26 ++-- MaterialSkin/Controls/MaterialForm.cs | 40 +++++- MaterialSkin/Controls/MaterialLabel.cs | 40 +++++- MaterialSkin/Controls/MaterialRaisedButton.cs | 133 +++++++++++++++--- MaterialSkin/MaterialSkin.csproj | 6 +- MaterialSkin/MaterialSkinManager.cs | 41 +++++- MaterialSkinExample/MainForm.Designer.cs | 5 +- MaterialSkinExample/MainForm.cs | 6 +- 9 files changed, 272 insertions(+), 42 deletions(-) diff --git a/MaterialSkin/ColorScheme.cs b/MaterialSkin/ColorScheme.cs index 4794dd04..72b381b6 100644 --- a/MaterialSkin/ColorScheme.cs +++ b/MaterialSkin/ColorScheme.cs @@ -4,9 +4,9 @@ namespace MaterialSkin { public class ColorScheme { - public readonly Color PrimaryColor, DarkPrimaryColor, LightPrimaryColor, AccentColor, TextColor; - public readonly Pen PrimaryPen, DarkPrimaryPen, LightPrimaryPen, AccentPen, TextPen; - public readonly Brush PrimaryBrush, DarkPrimaryBrush, LightPrimaryBrush, AccentBrush, TextBrush; + public readonly Color PrimaryColor, DarkPrimaryColor, LightPrimaryColor, AccentColor, TextColor, DangerColor, WarningColor; + public readonly Pen PrimaryPen, DarkPrimaryPen, LightPrimaryPen, AccentPen, TextPen, DangerPen, WarningPen; + public readonly Brush PrimaryBrush, DarkPrimaryBrush, LightPrimaryBrush, AccentBrush, TextBrush, DangerBrush, WarningBrush; /// /// Defines the Color Scheme to be used for all forms. @@ -16,7 +16,7 @@ public class ColorScheme /// A lighter version of the primary color, a -100 color is suggested here. /// The accent color, a -200 color is suggested here. /// The text color, the one with the highest contrast is suggested. - public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, Accent accent, TextShade textShade) + public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, Accent accent, TextShade textShade, Accent danger = Accent.Red400, Accent warning = Accent.Orange400) { //Color PrimaryColor = ((int)primary).ToColor(); @@ -24,6 +24,9 @@ public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, A LightPrimaryColor = ((int)lightPrimary).ToColor(); AccentColor = ((int)accent).ToColor(); TextColor = ((int)textShade).ToColor(); + DangerColor = ((int)danger).ToColor(); + WarningColor = ((int)warning).ToColor(); + //Pen PrimaryPen = new Pen(PrimaryColor); @@ -31,6 +34,8 @@ public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, A LightPrimaryPen = new Pen(LightPrimaryColor); AccentPen = new Pen(AccentColor); TextPen = new Pen(TextColor); + DangerPen = new Pen(DangerColor); + WarningPen = new Pen(WarningColor); //Brush PrimaryBrush = new SolidBrush(PrimaryColor); @@ -38,6 +43,10 @@ public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, A LightPrimaryBrush = new SolidBrush(LightPrimaryColor); AccentBrush = new SolidBrush(AccentColor); TextBrush = new SolidBrush(TextColor); + DangerBrush = new SolidBrush(DangerColor); + WarningBrush = new SolidBrush(WarningColor); + + } } diff --git a/MaterialSkin/Controls/MaterialFlatButton.cs b/MaterialSkin/Controls/MaterialFlatButton.cs index d9526716..0cd99c0a 100644 --- a/MaterialSkin/Controls/MaterialFlatButton.cs +++ b/MaterialSkin/Controls/MaterialFlatButton.cs @@ -2,6 +2,7 @@ using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; +using System.Drawing.Imaging; using System.Drawing.Text; using System.Windows.Forms; using MaterialSkin.Animations; @@ -103,16 +104,23 @@ protected override void OnPaint(PaintEventArgs pevent) g.SmoothingMode = SmoothingMode.None; } - //Icon - var iconRect = new Rectangle(8, 6, 24, 24); - - if (string.IsNullOrEmpty(Text)) - // Center Icon - iconRect.X += 2; + //Icon if (Icon != null) - g.DrawImage(Icon, iconRect); + { + var iconRect = new Rectangle(8, (Height/2)- Icon.Height/2, Icon.Width, Icon.Height); + + //create a color matrix object & set the opacity + var matrix = new ColorMatrix { Matrix33 = (float) 0.75 }; + //set the color(opacity) of the image + var attributes = new ImageAttributes(); + attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + + // Draw the image + g.DrawImage(Icon, iconRect, 0, 0, Icon.Width, Icon.Height, GraphicsUnit.Pixel, attributes ); + } + //Text var textRect = ClientRectangle; @@ -139,8 +147,8 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.ROBOTO_MEDIUM_10, Enabled ? (Primary ? SkinManager.ColorScheme.PrimaryBrush : SkinManager.GetPrimaryTextBrush()) : SkinManager.GetFlatButtonDisabledTextBrush(), textRect, - new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center } - ); + new StringFormat { Alignment = MaterialRaisedButton.ContentToTextHAlignment(TextAlign), LineAlignment = MaterialRaisedButton.ContentToTextVAlignment(TextAlign) }); + } private Size GetPreferredSize() diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index b94c4e7c..071333aa 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -20,6 +20,18 @@ public class MaterialForm : Form, IMaterialControl public new FormBorderStyle FormBorderStyle { get { return base.FormBorderStyle; } set { base.FormBorderStyle = value; } } public bool Sizable { get; set; } + public Shades StatusBarColor + { + get => _statusBarColor; + set { _statusBarColor = value; Invalidate(new Rectangle(0,0,Width, STATUS_BAR_HEIGHT));} + } + + public Shades ActionBarColor + { + get => _actionBarColor; + set { _actionBarColor = value; Invalidate(new Rectangle(0,STATUS_BAR_HEIGHT,Width, ACTION_BAR_HEIGHT));} + } + [DllImport("user32.dll")] public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); @@ -154,6 +166,8 @@ private enum ButtonState private Size _previousSize; private Point _previousLocation; private bool _headerMouseDown; + private Shades _actionBarColor; + private Shades _statusBarColor; public MaterialForm() { @@ -474,10 +488,10 @@ protected override void OnPaint(PaintEventArgs e) { var g = e.Graphics; g.TextRenderingHint = TextRenderingHint.AntiAlias; - + g.Clear(SkinManager.GetApplicationBackgroundColor()); - g.FillRectangle(SkinManager.ColorScheme.DarkPrimaryBrush, _statusBarBounds); - g.FillRectangle(SkinManager.ColorScheme.PrimaryBrush, _actionBarBounds); + g.FillRectangle(MaterialSkinManager.GetMaterialBrush(StatusBarColor), _statusBarBounds); + DrawActionBar(g); //Draw border using (var borderPen = new Pen(SkinManager.GetDividersColor(), 1)) @@ -562,7 +576,25 @@ protected override void OnPaint(PaintEventArgs e) } //Form title - g.DrawString(Text, SkinManager.ROBOTO_MEDIUM_12, SkinManager.ColorScheme.TextBrush, new Rectangle(SkinManager.FORM_PADDING, STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT), new StringFormat { LineAlignment = StringAlignment.Center }); + g.DrawString(Text, SkinManager.ROBOTO_REGULAR_11, SkinManager.ColorScheme.TextBrush, new Rectangle(SkinManager.FORM_PADDING, STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT), new StringFormat { LineAlignment = StringAlignment.Center }); + } + + private void DrawActionBar(Graphics g) + { + g.FillRectangle(MaterialSkinManager.GetMaterialBrush(ActionBarColor), _actionBarBounds); + } + + private void InitializeComponent() + { + this.SuspendLayout(); + // + // MaterialForm + // + this.ClientSize = new System.Drawing.Size(284, 262); + this.ControlBox = false; + this.Name = "MaterialForm"; + this.ResumeLayout(false); + } } diff --git a/MaterialSkin/Controls/MaterialLabel.cs b/MaterialSkin/Controls/MaterialLabel.cs index bf2efdcb..9242128e 100644 --- a/MaterialSkin/Controls/MaterialLabel.cs +++ b/MaterialSkin/Controls/MaterialLabel.cs @@ -1,8 +1,19 @@ -using System.ComponentModel; +using System; +using System.ComponentModel; +using System.Drawing.Drawing2D; +using System.Drawing.Text; +using System.Runtime.CompilerServices; using System.Windows.Forms; namespace MaterialSkin.Controls { + public enum Style + { + Body, + Title, + Title1, + } + public class MaterialLabel : Label, IMaterialControl { [Browsable(false)] @@ -11,14 +22,37 @@ public class MaterialLabel : Label, IMaterialControl public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; [Browsable(false)] public MouseState MouseState { get; set; } + public Style Style { get; set; } + + protected override void OnCreateControl() { base.OnCreateControl(); ForeColor = SkinManager.GetPrimaryTextColor(); - Font = SkinManager.ROBOTO_REGULAR_11; + switch (Style) + { + case Style.Body: + Font = SkinManager.ROBOTO_REGULAR_11; + break; + case Style.Title: + Font = SkinManager.ROBOTO_TITLE; + break; + case Style.Title1: + Font = SkinManager.ROBOTO_TITLE1; + break; + default: + throw new ArgumentOutOfRangeException(); + } + + BackColorChanged += (sender, args) => ForeColor = SkinManager.GetPrimaryTextColor(); + } - BackColorChanged += (sender, args) => ForeColor = SkinManager.GetPrimaryTextColor(); + protected override void OnPaint(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.HighQuality; + e.Graphics.TextRenderingHint = TextRenderingHint.SystemDefault; + base.OnPaint(e); } } } diff --git a/MaterialSkin/Controls/MaterialRaisedButton.cs b/MaterialSkin/Controls/MaterialRaisedButton.cs index e826597b..2545251d 100644 --- a/MaterialSkin/Controls/MaterialRaisedButton.cs +++ b/MaterialSkin/Controls/MaterialRaisedButton.cs @@ -5,9 +5,20 @@ using System.Windows.Forms; using MaterialSkin.Animations; using System; +using System.Drawing.Imaging; +using System.Runtime.CompilerServices; namespace MaterialSkin.Controls { + public enum Shades + { + Primary, + PrimaryDark, + PrimaryLight, + Accent, + Danger, + Warning, + } public class MaterialRaisedButton : Button, IMaterialControl { [Browsable(false)] @@ -17,12 +28,25 @@ public class MaterialRaisedButton : Button, IMaterialControl [Browsable(false)] public MouseState MouseState { get; set; } public bool Primary { get; set; } + public Shades Shade { get; set; } + + public bool IsWidget + { + get => _isWidget; + set + { + _isWidget = value; + Text = Text; + } + } private readonly AnimationManager _animationManager; private SizeF _textSize; private Image _icon; + private bool _isWidget; + public Image Icon { get { return _icon; } @@ -38,6 +62,7 @@ public Image Icon public MaterialRaisedButton() { Primary = true; + Shade = Shades.PrimaryDark; _animationManager = new AnimationManager(false) { @@ -56,18 +81,23 @@ public override string Text set { base.Text = value; - _textSize = CreateGraphics().MeasureString(value.ToUpper(), SkinManager.ROBOTO_MEDIUM_10); + var font = IsWidget ? SkinManager.ROBOTO_TITLE : SkinManager.ROBOTO_MEDIUM_10; + + _textSize = CreateGraphics().MeasureString(value.ToUpper(), font); if (AutoSize) Size = GetPreferredSize(); Invalidate(); } } - protected override void OnMouseUp(MouseEventArgs mevent) + protected override void OnClick(EventArgs e) { - base.OnMouseUp(mevent); - - _animationManager.StartNewAnimation(AnimationDirection.In, mevent.Location); + var mevent = e as MouseEventArgs; + if (mevent != null) + { + _animationManager.StartNewAnimation(AnimationDirection.In, mevent.Location); + } + base.OnClick(e); } protected override void OnPaint(PaintEventArgs pevent) @@ -75,7 +105,7 @@ protected override void OnPaint(PaintEventArgs pevent) var g = pevent.Graphics; g.SmoothingMode = SmoothingMode.AntiAlias; g.TextRenderingHint = TextRenderingHint.AntiAlias; - + g.Clear(Parent.BackColor); using (var backgroundPath = DrawHelper.CreateRoundRect(ClientRectangle.X, @@ -84,7 +114,9 @@ protected override void OnPaint(PaintEventArgs pevent) ClientRectangle.Height - 1, 1f)) { - g.FillPath(Primary ? SkinManager.ColorScheme.PrimaryBrush : SkinManager.GetRaisedButtonBackgroundBrush(), backgroundPath); + // g.FillPath(Primary ? SkinManager.ColorScheme.PrimaryBrush : SkinManager.GetRaisedButtonBackgroundBrush(), backgroundPath); + Brush fillBrush = MaterialSkinManager.GetMaterialBrush(Shade); + g.FillPath(fillBrush, backgroundPath); } if (_animationManager.IsAnimating()) @@ -100,14 +132,21 @@ protected override void OnPaint(PaintEventArgs pevent) } //Icon - var iconRect = new Rectangle(8, 6, 24, 24); - - if (string.IsNullOrEmpty(Text)) - // Center Icon - iconRect.X += 2; if (Icon != null) - g.DrawImage(Icon, iconRect); + { + var iconRect = new Rectangle(8, (Height/2)- Icon.Height/2, Icon.Width, Icon.Height); + + //create a color matrix object & set the opacity + var matrix = new ColorMatrix { Matrix33 = (float) 0.75 }; + + //set the color(opacity) of the image + var attributes = new ImageAttributes(); + attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + + // Draw the image + g.DrawImage(Icon, iconRect, 0, 0, Icon.Width, Icon.Height, GraphicsUnit.Pixel, attributes ); + } //Text var textRect = ClientRectangle; @@ -127,15 +166,77 @@ protected override void OnPaint(PaintEventArgs pevent) // First 8: left padding // 24: icon width // Second 4: space between Icon and Text - textRect.X += 8 + 24 + 4; + textRect.X += 8 + 24 + 4; } + textRect.Y = Height / 2 - (int) Math.Round(_textSize.Height / 2)+2; + textRect.Height = (int)Math.Round(_textSize.Height); + var font = IsWidget ? SkinManager.ROBOTO_TITLE : SkinManager.ROBOTO_MEDIUM_10; g.DrawString( Text.ToUpper(), - SkinManager.ROBOTO_MEDIUM_10, + font, SkinManager.GetRaisedButtonTextBrush(Primary), textRect, - new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + new StringFormat { Alignment = ContentToTextHAlignment(TextAlign), LineAlignment = ContentToTextVAlignment(TextAlign) }); + + if (Enabled == false) + { + + } + } + + public static StringAlignment ContentToTextHAlignment(ContentAlignment textAlign) + { + switch (textAlign) + { + case ContentAlignment.TopLeft: + return StringAlignment.Near; + case ContentAlignment.TopCenter: + return StringAlignment.Center; + case ContentAlignment.TopRight: + return StringAlignment.Far; + case ContentAlignment.MiddleLeft: + return StringAlignment.Near; + case ContentAlignment.MiddleCenter: + return StringAlignment.Center; + case ContentAlignment.MiddleRight: + return StringAlignment.Far; + case ContentAlignment.BottomLeft: + return StringAlignment.Near; + case ContentAlignment.BottomCenter: + return StringAlignment.Center; + case ContentAlignment.BottomRight: + return StringAlignment.Far; + default: + throw new ArgumentOutOfRangeException(nameof(textAlign), textAlign, null); + } + } + + public static StringAlignment ContentToTextVAlignment(ContentAlignment textAlign) + { + switch (textAlign) + { + case ContentAlignment.TopLeft: + return StringAlignment.Near; + case ContentAlignment.TopCenter: + return StringAlignment.Near; + case ContentAlignment.TopRight: + return StringAlignment.Near; + case ContentAlignment.MiddleLeft: + return StringAlignment.Center; + case ContentAlignment.MiddleCenter: + return StringAlignment.Center; + case ContentAlignment.MiddleRight: + return StringAlignment.Center; + case ContentAlignment.BottomLeft: + return StringAlignment.Far; + case ContentAlignment.BottomCenter: + return StringAlignment.Far; + case ContentAlignment.BottomRight: + return StringAlignment.Far; + default: + throw new ArgumentOutOfRangeException(nameof(textAlign), textAlign, null); + } } private Size GetPreferredSize() diff --git a/MaterialSkin/MaterialSkin.csproj b/MaterialSkin/MaterialSkin.csproj index 890aa1c6..4f91bd49 100644 --- a/MaterialSkin/MaterialSkin.csproj +++ b/MaterialSkin/MaterialSkin.csproj @@ -17,7 +17,7 @@ true full false - bin\Debug\ + ..\..\simonerom\albatros\Libs\MaterialSkin\ DEBUG;TRACE prompt 4 @@ -91,9 +91,13 @@ + + MaterialForm.cs + ResXFileCodeGenerator Resources.Designer.cs + Designer diff --git a/MaterialSkin/MaterialSkinManager.cs b/MaterialSkin/MaterialSkinManager.cs index 52662d91..db2739f8 100644 --- a/MaterialSkin/MaterialSkinManager.cs +++ b/MaterialSkin/MaterialSkinManager.cs @@ -230,6 +230,8 @@ public Color GetApplicationBackgroundColor() public Font ROBOTO_REGULAR_11; public Font ROBOTO_MEDIUM_11; public Font ROBOTO_MEDIUM_10; + public Font ROBOTO_TITLE; + public Font ROBOTO_TITLE1; //Other constants public int FORM_PADDING = 14; @@ -243,6 +245,9 @@ private MaterialSkinManager() ROBOTO_MEDIUM_10 = new Font(LoadFont(Resources.Roboto_Medium), 10f); ROBOTO_REGULAR_11 = new Font(LoadFont(Resources.Roboto_Regular), 11f); ROBOTO_MEDIUM_11 = new Font(LoadFont(Resources.Roboto_Medium), 11f); + ROBOTO_TITLE = new Font(LoadFont(Resources.Roboto_Medium), 24f, FontStyle.Bold); + ROBOTO_TITLE1 = new Font(LoadFont(Resources.Roboto_Medium), 18f, FontStyle.Bold); + Theme = Themes.LIGHT; ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.LightBlue200, TextShade.WHITE); } @@ -329,7 +334,7 @@ private void UpdateControl(Control controlToUpdate, Color newBackColor) controlToUpdate.BackColor = newBackColor; } - + //recursive call foreach (Control control in controlToUpdate.Controls) { @@ -338,5 +343,39 @@ private void UpdateControl(Control controlToUpdate, Color newBackColor) controlToUpdate.Invalidate(); } + + public static Color GetMaterialColor(Shades shade) + { + Color fillBrush; + switch (shade) + { + case Shades.Primary: + fillBrush = _instance.ColorScheme.PrimaryColor; + break; + case Shades.PrimaryDark: + fillBrush = _instance.ColorScheme.DarkPrimaryColor; + break; + case Shades.PrimaryLight: + fillBrush = _instance.ColorScheme.LightPrimaryColor; + break; + case Shades.Accent: + fillBrush = _instance.ColorScheme.AccentColor; + break; + case Shades.Danger: + fillBrush = _instance.ColorScheme.DangerColor; + break; + case Shades.Warning: + fillBrush = _instance.ColorScheme.WarningColor; + break; + default: + throw new ArgumentOutOfRangeException(); + } + + return fillBrush; + } + public static Brush GetMaterialBrush(Shades shade) + { + return new SolidBrush(GetMaterialColor(shade)); + } } } diff --git a/MaterialSkinExample/MainForm.Designer.cs b/MaterialSkinExample/MainForm.Designer.cs index bd7b5220..6704c76b 100644 --- a/MaterialSkinExample/MainForm.Designer.cs +++ b/MaterialSkinExample/MainForm.Designer.cs @@ -322,6 +322,7 @@ private void InitializeComponent() this.materialButton1.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton1.Name = "materialButton1"; this.materialButton1.Primary = true; + this.materialButton1.Shade = MaterialSkin.Controls.Shades.PrimaryDark; this.materialButton1.Size = new System.Drawing.Size(125, 36); this.materialButton1.TabIndex = 0; this.materialButton1.Text = "Change Theme"; @@ -422,6 +423,7 @@ private void InitializeComponent() this.materialRaisedButton1.MouseState = MaterialSkin.MouseState.HOVER; this.materialRaisedButton1.Name = "materialRaisedButton1"; this.materialRaisedButton1.Primary = true; + this.materialRaisedButton1.Shade = MaterialSkin.Controls.Shades.PrimaryLight; this.materialRaisedButton1.Size = new System.Drawing.Size(181, 36); this.materialRaisedButton1.TabIndex = 21; this.materialRaisedButton1.Text = "Change color scheme"; @@ -517,7 +519,7 @@ private void InitializeComponent() this.columnHeader4}); this.materialListView1.Depth = 0; this.materialListView1.Dock = System.Windows.Forms.DockStyle.Fill; - this.materialListView1.Font = new System.Drawing.Font("Roboto", 32F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.World); + this.materialListView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F); this.materialListView1.FullRowSelect = true; this.materialListView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; this.materialListView1.Location = new System.Drawing.Point(3, 3); @@ -607,6 +609,7 @@ private void InitializeComponent() this.materialRaisedButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialRaisedButton2.Name = "materialRaisedButton2"; this.materialRaisedButton2.Primary = true; + this.materialRaisedButton2.Shade = MaterialSkin.Controls.Shades.PrimaryDark; this.materialRaisedButton2.Size = new System.Drawing.Size(76, 36); this.materialRaisedButton2.TabIndex = 1; this.materialRaisedButton2.Text = "Add"; diff --git a/MaterialSkinExample/MainForm.cs b/MaterialSkinExample/MainForm.cs index 2ff9a768..c24be526 100644 --- a/MaterialSkinExample/MainForm.cs +++ b/MaterialSkinExample/MainForm.cs @@ -1,7 +1,7 @@ -using System; -using System.Windows.Forms; -using MaterialSkin; +using MaterialSkin; using MaterialSkin.Controls; +using System; +using System.Windows.Forms; namespace MaterialSkinExample { From a12db0f60c6d63f5b8c7efec920d2c3135e6bb9a Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Sat, 11 May 2019 11:03:33 +0200 Subject: [PATCH 02/15] No changes --- .vs/MaterialSkin/v16/Server/sqlite3/db.lock | 0 .../v16/Server/sqlite3/storage.ide | Bin 0 -> 606208 bytes MaterialSkin/Controls/MaterialForm.resx | 120 ++++++++++++++++++ 3 files changed, 120 insertions(+) create mode 100644 .vs/MaterialSkin/v16/Server/sqlite3/db.lock create mode 100644 .vs/MaterialSkin/v16/Server/sqlite3/storage.ide create mode 100644 MaterialSkin/Controls/MaterialForm.resx diff --git a/.vs/MaterialSkin/v16/Server/sqlite3/db.lock b/.vs/MaterialSkin/v16/Server/sqlite3/db.lock new file mode 100644 index 00000000..e69de29b diff --git a/.vs/MaterialSkin/v16/Server/sqlite3/storage.ide b/.vs/MaterialSkin/v16/Server/sqlite3/storage.ide new file mode 100644 index 0000000000000000000000000000000000000000..62c0fcee24c0498ab822d9b8fa11f3b40b5b3f51 GIT binary patch literal 606208 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
?e6;DYCEFlh<<;v=dSCoN?rN<`g{JcV95om zCyf93(ue%_PL>KbpF#~zY#Ob+TBp`n%?E+xAWltXu=cmD&cQRIF_;= zq@u2(9G_6u`IGDADRk#lL1kt3G*?yy*NSo5555BE%W}+OG4R`-y>R6ZQ{5iDI9)t_{JBql?LF$!bNiTD>FUle$GN(C} zW&zjyF>fD@Bbr_xB=xIuXCWu=WmT!VRk^wm>OqPHZy62-EJch7AMb>hJK+^h_=E^I zLsHs_PWU7ze6kZhB?#xBapu>QzgN|(F2#9(yHPgQC*ynZ*QM_RzMwQ}B$U!*z(=hQ zf;$hHv?W)Lp{W$#ueb-5&1q|KB@8PH%3*%pSXn3K;zz)hM~$&8Mf_JPp*)WHEkH9& z*G+R2wngjjR%OmZ>Y(?zGT~@Dpyl^^Ln<$nPCM0g#CGygXon$bOQ7*mKGq0pg6)v4 zVN_{gSXnEsy;G&hd7BV71j-(TVNTdy4To-0lZx}CG{%zNjfrcAAvuqnL>n{u15 zDX|IbvdR!kX~L#_CTvP(!lq0ntV_dQXBfF3!~fY2WzeQbq07v+N(zofY`L2h^&m!b$xkQ<=w3eK!jLPzcryeaZ+ zl8;}TYHDa}Z7d^s0MVC&)MlZs9I22^hF8E)N5Odf*^P-*d}VV}W4bMwUXy5TFPHhx z;^mibVto9$``{2MG4~IFZ?573-xRCJsAd-91-Xp26_F$FQjprBPH$M#)NndB#HQO; ztx97XuHK8Tw0!{H|3Yn-5;}6%gWPI+c7)s(Hk!bXz!7R>9~@3f^YKz^HBuAhiziRF z=JIvWVUa>TxT8^)6n5ZR;rpP*XC_Tu7o|4UOExS19K3&96R5Au;N<>Eu+^J%W+mf^ z6znG0e7zElV|B8vL+@f%wXhD=YSlWY61kJc55UB4HGF(04b`rq6|ofSES1s-$(=MV z1Cvc-W;A1pDWa@BptjmQyaKh8LJO9K_=TL0KW|lYyuDOUX|?snvE1K)ah~S${Du2x zbkf}jqgiO!kF3Cc2DW{(=AxSX3s{ddtcyPktCRM{XmN{;fH_itX+&X#SWBFURUBIt zkqnnIIq6*wR-56uGQH3i106@|b0)eF+Xffxm(NM{Zg4L!rJP@Z+h{nF?lD-IoNqW6 zeF#n`<;TIl$nYO7`6H@|q}hbkO>2jd+?Mb-sXYTuo7=jE7M`>)EnHiU)~&6{A+!d_x_U$z=+(sAToPOLce@g$+k#lH>O; zBN81dkw?-Vi9yOrJk+JNlLagL%b*XnTan&LWjDC2b`Mqyl7rdq!WJ%usZEf^5y23$ z)Pkr(Jp^)7ncjS^Pf8AnZ-SlMqLvUll21XOV~J-#vf1m| zR^WBoD$}9pU7)r#T}ti9z8b2q)V!G{I1^uVq&C+JW0Q1_yx&SXD$KY)XzTBHM2@0g zi|AI6I#MTLl(D3Q-QhQ3QrKL>n+0MoN}FYlo$~9$>`+sFnlz!Bgy$_N07SZF66QA6tI$ObUM%sM0;eK!)5>Sn! z3ruzxnqInLJhstLRxK6pPKS&X1~=g-gu1IcKRg_s1yeKpZ-Ul#qp{|EH@2ncMsZI< z&z8~5`VA^|9#O#BQ@Bf@COBQu-8;0gkRQwS6?M_sPx#A4l~2`#))|C9eW8Vy;8sYu i?bIoZ!#%1iMEQdA8^ISgoI?p9m+4n0>TkJ7*!wr2@Jd|( literal 0 HcmV?d00001 diff --git a/MaterialSkin/Controls/MaterialForm.resx b/MaterialSkin/Controls/MaterialForm.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/MaterialSkin/Controls/MaterialForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file From 9d818adf4343d8582601183a2fda0bbd6d1583e4 Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Mon, 13 May 2019 16:02:13 +0200 Subject: [PATCH 03/15] Improved RaisedButton appearance and added success color --- MaterialSkin/ColorScheme.cs | 15 +++++++++------ MaterialSkin/Controls/MaterialRaisedButton.cs | 17 ++++++++++------- MaterialSkin/MaterialSkinManager.cs | 5 +++++ 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/MaterialSkin/ColorScheme.cs b/MaterialSkin/ColorScheme.cs index 72b381b6..6f1e9f3c 100644 --- a/MaterialSkin/ColorScheme.cs +++ b/MaterialSkin/ColorScheme.cs @@ -4,9 +4,9 @@ namespace MaterialSkin { public class ColorScheme { - public readonly Color PrimaryColor, DarkPrimaryColor, LightPrimaryColor, AccentColor, TextColor, DangerColor, WarningColor; - public readonly Pen PrimaryPen, DarkPrimaryPen, LightPrimaryPen, AccentPen, TextPen, DangerPen, WarningPen; - public readonly Brush PrimaryBrush, DarkPrimaryBrush, LightPrimaryBrush, AccentBrush, TextBrush, DangerBrush, WarningBrush; + public readonly Color PrimaryColor, DarkPrimaryColor, LightPrimaryColor, AccentColor, TextColor, DangerColor, WarningColor, SuccessColor; + public readonly Pen PrimaryPen, DarkPrimaryPen, LightPrimaryPen, AccentPen, TextPen, DangerPen, WarningPen, SuccessPen; + public readonly Brush PrimaryBrush, DarkPrimaryBrush, LightPrimaryBrush, AccentBrush, TextBrush, DangerBrush, WarningBrush, SuccessBrush; ///

/// Defines the Color Scheme to be used for all forms. @@ -16,7 +16,9 @@ public class ColorScheme /// A lighter version of the primary color, a -100 color is suggested here. /// The accent color, a -200 color is suggested here. /// The text color, the one with the highest contrast is suggested. - public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, Accent accent, TextShade textShade, Accent danger = Accent.Red400, Accent warning = Accent.Orange400) + public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, Accent accent, + TextShade textShade, Accent danger = Accent.Red400, Accent warning = Accent.Orange400, + Accent success = Accent.Green700) { //Color PrimaryColor = ((int)primary).ToColor(); @@ -26,7 +28,7 @@ public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, A TextColor = ((int)textShade).ToColor(); DangerColor = ((int)danger).ToColor(); WarningColor = ((int)warning).ToColor(); - + SuccessColor = ((int)success).ToColor(); //Pen PrimaryPen = new Pen(PrimaryColor); @@ -36,6 +38,7 @@ public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, A TextPen = new Pen(TextColor); DangerPen = new Pen(DangerColor); WarningPen = new Pen(WarningColor); + SuccessPen = new Pen(SuccessColor); //Brush PrimaryBrush = new SolidBrush(PrimaryColor); @@ -45,7 +48,7 @@ public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, A TextBrush = new SolidBrush(TextColor); DangerBrush = new SolidBrush(DangerColor); WarningBrush = new SolidBrush(WarningColor); - + SuccessBrush = new SolidBrush(SuccessColor); } } diff --git a/MaterialSkin/Controls/MaterialRaisedButton.cs b/MaterialSkin/Controls/MaterialRaisedButton.cs index 2545251d..3a01be36 100644 --- a/MaterialSkin/Controls/MaterialRaisedButton.cs +++ b/MaterialSkin/Controls/MaterialRaisedButton.cs @@ -29,7 +29,9 @@ public class MaterialRaisedButton : Button, IMaterialControl public MouseState MouseState { get; set; } public bool Primary { get; set; } public Shades Shade { get; set; } - + public bool IsSmall { get; set; } + public Shades BorderShade { get; set; } + public bool IsWidget { get => _isWidget; @@ -71,8 +73,8 @@ public MaterialRaisedButton() }; _animationManager.OnAnimationProgress += sender => Invalidate(); - AutoSizeMode = AutoSizeMode.GrowAndShrink; - AutoSize = true; + // AutoSizeMode = AutoSizeMode.GrowAndShrink; + // AutoSize = true; } public override string Text @@ -107,16 +109,17 @@ protected override void OnPaint(PaintEventArgs pevent) g.TextRenderingHint = TextRenderingHint.AntiAlias; g.Clear(Parent.BackColor); - + var radius = IsSmall ? 3f : 6f; using (var backgroundPath = DrawHelper.CreateRoundRect(ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width - 1, ClientRectangle.Height - 1, - 1f)) + radius)) { // g.FillPath(Primary ? SkinManager.ColorScheme.PrimaryBrush : SkinManager.GetRaisedButtonBackgroundBrush(), backgroundPath); - Brush fillBrush = MaterialSkinManager.GetMaterialBrush(Shade); + var fillBrush = MaterialSkinManager.GetMaterialBrush(Shade); g.FillPath(fillBrush, backgroundPath); + g.DrawPath(MaterialSkinManager.GetMaterialPen(BorderShade), backgroundPath); } if (_animationManager.IsAnimating()) @@ -254,7 +257,7 @@ public override Size GetPreferredSize(Size proposedSize) // 4 is for the space between icon & text extra += 24 + 4; - return new Size((int)Math.Ceiling(_textSize.Width) + extra, 36); + return new Size((int)Math.Ceiling(_textSize.Width) + extra, IsSmall ? 24 : 36); } } } diff --git a/MaterialSkin/MaterialSkinManager.cs b/MaterialSkin/MaterialSkinManager.cs index db2739f8..fe6882a5 100644 --- a/MaterialSkin/MaterialSkinManager.cs +++ b/MaterialSkin/MaterialSkinManager.cs @@ -377,5 +377,10 @@ public static Brush GetMaterialBrush(Shades shade) { return new SolidBrush(GetMaterialColor(shade)); } + + public static Pen GetMaterialPen(Shades shade) + { + return new Pen(GetMaterialColor(shade)); + } } } From 1b6e901c94436421b36359df45b5ee09d12eef41 Mon Sep 17 00:00:00 2001 From: Massimo Malerba Date: Mon, 13 May 2019 16:04:04 +0200 Subject: [PATCH 04/15] Improved FlatButton --- MaterialSkin/Controls/MaterialFlatButton.cs | 9 +++++++-- MaterialSkin/Controls/MaterialRaisedButton.cs | 10 +++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/MaterialSkin/Controls/MaterialFlatButton.cs b/MaterialSkin/Controls/MaterialFlatButton.cs index 0cd99c0a..7b6c4f4c 100644 --- a/MaterialSkin/Controls/MaterialFlatButton.cs +++ b/MaterialSkin/Controls/MaterialFlatButton.cs @@ -104,6 +104,7 @@ protected override void OnPaint(PaintEventArgs pevent) g.SmoothingMode = SmoothingMode.None; } + //Icon if (Icon != null) @@ -111,7 +112,7 @@ protected override void OnPaint(PaintEventArgs pevent) var iconRect = new Rectangle(8, (Height/2)- Icon.Height/2, Icon.Width, Icon.Height); //create a color matrix object & set the opacity - var matrix = new ColorMatrix { Matrix33 = (float) 0.75 }; + var matrix = new ColorMatrix { Matrix33 = Enabled ? (float) 0.75 : (float) 0.30 }; //set the color(opacity) of the image var attributes = new ImageAttributes(); @@ -142,10 +143,14 @@ protected override void OnPaint(PaintEventArgs pevent) textRect.X += 8 + 24 + 4; } + var fontColor = Enabled + ? (Primary ? SkinManager.ColorScheme.PrimaryBrush : SkinManager.GetPrimaryTextBrush()) + : SkinManager.GetFlatButtonDisabledTextBrush(); + g.DrawString( Text.ToUpper(), SkinManager.ROBOTO_MEDIUM_10, - Enabled ? (Primary ? SkinManager.ColorScheme.PrimaryBrush : SkinManager.GetPrimaryTextBrush()) : SkinManager.GetFlatButtonDisabledTextBrush(), + fontColor, textRect, new StringFormat { Alignment = MaterialRaisedButton.ContentToTextHAlignment(TextAlign), LineAlignment = MaterialRaisedButton.ContentToTextVAlignment(TextAlign) }); diff --git a/MaterialSkin/Controls/MaterialRaisedButton.cs b/MaterialSkin/Controls/MaterialRaisedButton.cs index 2545251d..009993ab 100644 --- a/MaterialSkin/Controls/MaterialRaisedButton.cs +++ b/MaterialSkin/Controls/MaterialRaisedButton.cs @@ -29,6 +29,7 @@ public class MaterialRaisedButton : Button, IMaterialControl public MouseState MouseState { get; set; } public bool Primary { get; set; } public Shades Shade { get; set; } + public bool IsSmall { get; set; } public bool IsWidget { @@ -138,7 +139,7 @@ protected override void OnPaint(PaintEventArgs pevent) var iconRect = new Rectangle(8, (Height/2)- Icon.Height/2, Icon.Width, Icon.Height); //create a color matrix object & set the opacity - var matrix = new ColorMatrix { Matrix33 = (float) 0.75 }; + var matrix = new ColorMatrix { Matrix33 = Enabled ? (float)0.75 : (float)0.30 }; //set the color(opacity) of the image var attributes = new ImageAttributes(); @@ -172,10 +173,13 @@ protected override void OnPaint(PaintEventArgs pevent) textRect.Y = Height / 2 - (int) Math.Round(_textSize.Height / 2)+2; textRect.Height = (int)Math.Round(_textSize.Height); var font = IsWidget ? SkinManager.ROBOTO_TITLE : SkinManager.ROBOTO_MEDIUM_10; + var fontColor = Enabled + ? (Primary ? SkinManager.GetRaisedButtonTextBrush(Primary) : SkinManager.ColorScheme.PrimaryBrush) + : SkinManager.GetFlatButtonDisabledTextBrush(); g.DrawString( Text.ToUpper(), font, - SkinManager.GetRaisedButtonTextBrush(Primary), + fontColor, textRect, new StringFormat { Alignment = ContentToTextHAlignment(TextAlign), LineAlignment = ContentToTextVAlignment(TextAlign) }); @@ -254,7 +258,7 @@ public override Size GetPreferredSize(Size proposedSize) // 4 is for the space between icon & text extra += 24 + 4; - return new Size((int)Math.Ceiling(_textSize.Width) + extra, 36); + return new Size((int)Math.Ceiling(_textSize.Width) + extra, IsSmall ? 24 : 36); } } } From 27f96a8a5ea88fef0df8a2197157b6fc77cd8f51 Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Tue, 14 May 2019 13:27:56 +0200 Subject: [PATCH 05/15] Improved materialLabel appearance, added small style, allowed autoresize for buttoins --- MaterialSkin/Controls/MaterialFlatButton.cs | 4 ++-- MaterialSkin/Controls/MaterialLabel.cs | 12 +++++++++--- MaterialSkin/Controls/MaterialRaisedButton.cs | 1 + MaterialSkin/MaterialSkinManager.cs | 5 +++++ 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/MaterialSkin/Controls/MaterialFlatButton.cs b/MaterialSkin/Controls/MaterialFlatButton.cs index 0cd99c0a..a6ebcecf 100644 --- a/MaterialSkin/Controls/MaterialFlatButton.cs +++ b/MaterialSkin/Controls/MaterialFlatButton.cs @@ -55,8 +55,8 @@ public MaterialFlatButton() _hoverAnimationManager.OnAnimationProgress += sender => Invalidate(); _animationManager.OnAnimationProgress += sender => Invalidate(); - AutoSizeMode = AutoSizeMode.GrowAndShrink; - AutoSize = true; + //AutoSizeMode = AutoSizeMode.GrowAndShrink; + //AutoSize = true; Margin = new Padding(4, 6, 4, 6); Padding = new Padding(0); } diff --git a/MaterialSkin/Controls/MaterialLabel.cs b/MaterialSkin/Controls/MaterialLabel.cs index 9242128e..4ebb3c9d 100644 --- a/MaterialSkin/Controls/MaterialLabel.cs +++ b/MaterialSkin/Controls/MaterialLabel.cs @@ -1,5 +1,6 @@ using System; using System.ComponentModel; +using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Text; using System.Runtime.CompilerServices; @@ -10,6 +11,7 @@ namespace MaterialSkin.Controls public enum Style { Body, + Small, Title, Title1, } @@ -35,6 +37,9 @@ protected override void OnCreateControl() case Style.Body: Font = SkinManager.ROBOTO_REGULAR_11; break; + case Style.Small: + Font = SkinManager.ROBOTO_REGULAR_8; + break; case Style.Title: Font = SkinManager.ROBOTO_TITLE; break; @@ -50,9 +55,10 @@ protected override void OnCreateControl() protected override void OnPaint(PaintEventArgs e) { - e.Graphics.SmoothingMode = SmoothingMode.HighQuality; - e.Graphics.TextRenderingHint = TextRenderingHint.SystemDefault; - base.OnPaint(e); + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias; + + e.Graphics.DrawString(this.Text, this.Font, MaterialSkinManager.Instance.GetPrimaryTextBrush(), new Point(0, 0)); } } } diff --git a/MaterialSkin/Controls/MaterialRaisedButton.cs b/MaterialSkin/Controls/MaterialRaisedButton.cs index 3a01be36..f8b56517 100644 --- a/MaterialSkin/Controls/MaterialRaisedButton.cs +++ b/MaterialSkin/Controls/MaterialRaisedButton.cs @@ -18,6 +18,7 @@ public enum Shades Accent, Danger, Warning, + Success } public class MaterialRaisedButton : Button, IMaterialControl { diff --git a/MaterialSkin/MaterialSkinManager.cs b/MaterialSkin/MaterialSkinManager.cs index fe6882a5..0990323e 100644 --- a/MaterialSkin/MaterialSkinManager.cs +++ b/MaterialSkin/MaterialSkinManager.cs @@ -228,6 +228,7 @@ public Color GetApplicationBackgroundColor() //Roboto font public Font ROBOTO_MEDIUM_12; public Font ROBOTO_REGULAR_11; + public Font ROBOTO_REGULAR_8; public Font ROBOTO_MEDIUM_11; public Font ROBOTO_MEDIUM_10; public Font ROBOTO_TITLE; @@ -243,6 +244,7 @@ private MaterialSkinManager() { ROBOTO_MEDIUM_12 = new Font(LoadFont(Resources.Roboto_Medium), 12f); ROBOTO_MEDIUM_10 = new Font(LoadFont(Resources.Roboto_Medium), 10f); + ROBOTO_REGULAR_8 = new Font(LoadFont(Resources.Roboto_Regular), 8f); ROBOTO_REGULAR_11 = new Font(LoadFont(Resources.Roboto_Regular), 11f); ROBOTO_MEDIUM_11 = new Font(LoadFont(Resources.Roboto_Medium), 11f); ROBOTO_TITLE = new Font(LoadFont(Resources.Roboto_Medium), 24f, FontStyle.Bold); @@ -367,6 +369,9 @@ public static Color GetMaterialColor(Shades shade) case Shades.Warning: fillBrush = _instance.ColorScheme.WarningColor; break; + case Shades.Success: + fillBrush = _instance.ColorScheme.SuccessColor; + break; default: throw new ArgumentOutOfRangeException(); } From f986177527b78903ac0727a03bf9609da56f4c7b Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Thu, 16 May 2019 11:26:20 +0200 Subject: [PATCH 06/15] Added Shade = None and minor fixes to flatbutton --- MaterialSkin/Controls/MaterialFlatButton.cs | 4 ++++ MaterialSkin/Controls/MaterialRaisedButton.cs | 5 ++++- MaterialSkin/MaterialSkinManager.cs | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/MaterialSkin/Controls/MaterialFlatButton.cs b/MaterialSkin/Controls/MaterialFlatButton.cs index 3f7b527d..e14741ce 100644 --- a/MaterialSkin/Controls/MaterialFlatButton.cs +++ b/MaterialSkin/Controls/MaterialFlatButton.cs @@ -18,6 +18,7 @@ public class MaterialFlatButton : Button, IMaterialControl [Browsable(false)] public MouseState MouseState { get; set; } public bool Primary { get; set; } + public Shades Shade { get; set; } private readonly AnimationManager _animationManager; private readonly AnimationManager _hoverAnimationManager; @@ -147,6 +148,9 @@ protected override void OnPaint(PaintEventArgs pevent) ? (Primary ? SkinManager.ColorScheme.PrimaryBrush : SkinManager.GetPrimaryTextBrush()) : SkinManager.GetFlatButtonDisabledTextBrush(); + if (Shade != Shades.None) fontColor = MaterialSkinManager.GetMaterialBrush(Shade); + + g.DrawString( Text.ToUpper(), SkinManager.ROBOTO_MEDIUM_10, diff --git a/MaterialSkin/Controls/MaterialRaisedButton.cs b/MaterialSkin/Controls/MaterialRaisedButton.cs index f8b56517..f9d8a195 100644 --- a/MaterialSkin/Controls/MaterialRaisedButton.cs +++ b/MaterialSkin/Controls/MaterialRaisedButton.cs @@ -12,6 +12,7 @@ namespace MaterialSkin.Controls { public enum Shades { + None, Primary, PrimaryDark, PrimaryLight, @@ -110,7 +111,7 @@ protected override void OnPaint(PaintEventArgs pevent) g.TextRenderingHint = TextRenderingHint.AntiAlias; g.Clear(Parent.BackColor); - var radius = IsSmall ? 3f : 6f; + var radius = IsSmall ? 1f : 1f; using (var backgroundPath = DrawHelper.CreateRoundRect(ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width - 1, @@ -118,7 +119,9 @@ protected override void OnPaint(PaintEventArgs pevent) radius)) { // g.FillPath(Primary ? SkinManager.ColorScheme.PrimaryBrush : SkinManager.GetRaisedButtonBackgroundBrush(), backgroundPath); + var fillBrush = MaterialSkinManager.GetMaterialBrush(Shade); + g.FillPath(fillBrush, backgroundPath); g.DrawPath(MaterialSkinManager.GetMaterialPen(BorderShade), backgroundPath); } diff --git a/MaterialSkin/MaterialSkinManager.cs b/MaterialSkin/MaterialSkinManager.cs index 0990323e..e15d2f2f 100644 --- a/MaterialSkin/MaterialSkinManager.cs +++ b/MaterialSkin/MaterialSkinManager.cs @@ -373,7 +373,8 @@ public static Color GetMaterialColor(Shades shade) fillBrush = _instance.ColorScheme.SuccessColor; break; default: - throw new ArgumentOutOfRangeException(); + fillBrush = _instance.ColorScheme.PrimaryColor; + break; } return fillBrush; From 2bccf0fad99bf049bb3e60bb683ac09d81d38c48 Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Thu, 16 May 2019 14:05:43 +0200 Subject: [PATCH 07/15] Added shades to material label --- MaterialSkin/ColorScheme.cs | 14 ++++++++------ MaterialSkin/Controls/MaterialLabel.cs | 11 ++++++++--- MaterialSkin/Controls/MaterialRaisedButton.cs | 3 ++- MaterialSkin/MaterialSkinManager.cs | 5 +++++ 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/MaterialSkin/ColorScheme.cs b/MaterialSkin/ColorScheme.cs index 6f1e9f3c..4707a8ac 100644 --- a/MaterialSkin/ColorScheme.cs +++ b/MaterialSkin/ColorScheme.cs @@ -4,9 +4,9 @@ namespace MaterialSkin { public class ColorScheme { - public readonly Color PrimaryColor, DarkPrimaryColor, LightPrimaryColor, AccentColor, TextColor, DangerColor, WarningColor, SuccessColor; - public readonly Pen PrimaryPen, DarkPrimaryPen, LightPrimaryPen, AccentPen, TextPen, DangerPen, WarningPen, SuccessPen; - public readonly Brush PrimaryBrush, DarkPrimaryBrush, LightPrimaryBrush, AccentBrush, TextBrush, DangerBrush, WarningBrush, SuccessBrush; + public readonly Color PrimaryColor, DarkPrimaryColor, LightPrimaryColor, AccentColor, TextColor, DangerColor, WarningColor, SuccessColor, LightGrayColor; + public readonly Pen PrimaryPen, DarkPrimaryPen, LightPrimaryPen, AccentPen, TextPen, DangerPen, WarningPen, SuccessPen, LightGrayPen; + public readonly Brush PrimaryBrush, DarkPrimaryBrush, LightPrimaryBrush, AccentBrush, TextBrush, DangerBrush, WarningBrush, SuccessBrush, LightGrayBrush; /// /// Defines the Color Scheme to be used for all forms. @@ -18,10 +18,10 @@ public class ColorScheme /// The text color, the one with the highest contrast is suggested. public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, Accent accent, TextShade textShade, Accent danger = Accent.Red400, Accent warning = Accent.Orange400, - Accent success = Accent.Green700) + Accent success = Accent.Green700, Primary lightGray = Primary.Grey100) { //Color - PrimaryColor = ((int)primary).ToColor(); + PrimaryColor = ((int)primary).ToColor(); DarkPrimaryColor = ((int)darkPrimary).ToColor(); LightPrimaryColor = ((int)lightPrimary).ToColor(); AccentColor = ((int)accent).ToColor(); @@ -29,6 +29,7 @@ public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, A DangerColor = ((int)danger).ToColor(); WarningColor = ((int)warning).ToColor(); SuccessColor = ((int)success).ToColor(); + LightGrayColor = ((int)lightGray).ToColor(); //Pen PrimaryPen = new Pen(PrimaryColor); @@ -39,6 +40,7 @@ public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, A DangerPen = new Pen(DangerColor); WarningPen = new Pen(WarningColor); SuccessPen = new Pen(SuccessColor); + LightGrayPen = new Pen(LightGrayColor); //Brush PrimaryBrush = new SolidBrush(PrimaryColor); @@ -49,7 +51,7 @@ public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, A DangerBrush = new SolidBrush(DangerColor); WarningBrush = new SolidBrush(WarningColor); SuccessBrush = new SolidBrush(SuccessColor); - + LightGrayBrush = new SolidBrush(LightGrayColor); } } diff --git a/MaterialSkin/Controls/MaterialLabel.cs b/MaterialSkin/Controls/MaterialLabel.cs index 4ebb3c9d..a69d267f 100644 --- a/MaterialSkin/Controls/MaterialLabel.cs +++ b/MaterialSkin/Controls/MaterialLabel.cs @@ -12,6 +12,7 @@ public enum Style { Body, Small, + GrayCounter, Title, Title1, } @@ -25,6 +26,7 @@ public class MaterialLabel : Label, IMaterialControl [Browsable(false)] public MouseState MouseState { get; set; } public Style Style { get; set; } + public Shades Shade { get; set; } protected override void OnCreateControl() @@ -45,7 +47,7 @@ protected override void OnCreateControl() break; case Style.Title1: Font = SkinManager.ROBOTO_TITLE1; - break; + break; default: throw new ArgumentOutOfRangeException(); } @@ -57,8 +59,11 @@ protected override void OnPaint(PaintEventArgs e) { e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias; - - e.Graphics.DrawString(this.Text, this.Font, MaterialSkinManager.Instance.GetPrimaryTextBrush(), new Point(0, 0)); + + Brush b = Shade == Shades.None + ? MaterialSkinManager.Instance.GetPrimaryTextBrush() + : MaterialSkinManager.GetMaterialBrush(Shade); + e.Graphics.DrawString(this.Text, this.Font, b, new Point(0, 0)); } } } diff --git a/MaterialSkin/Controls/MaterialRaisedButton.cs b/MaterialSkin/Controls/MaterialRaisedButton.cs index f9d8a195..921f73ca 100644 --- a/MaterialSkin/Controls/MaterialRaisedButton.cs +++ b/MaterialSkin/Controls/MaterialRaisedButton.cs @@ -19,7 +19,8 @@ public enum Shades Accent, Danger, Warning, - Success + Success, + LightGray } public class MaterialRaisedButton : Button, IMaterialControl { diff --git a/MaterialSkin/MaterialSkinManager.cs b/MaterialSkin/MaterialSkinManager.cs index e15d2f2f..ce683837 100644 --- a/MaterialSkin/MaterialSkinManager.cs +++ b/MaterialSkin/MaterialSkinManager.cs @@ -247,6 +247,7 @@ private MaterialSkinManager() ROBOTO_REGULAR_8 = new Font(LoadFont(Resources.Roboto_Regular), 8f); ROBOTO_REGULAR_11 = new Font(LoadFont(Resources.Roboto_Regular), 11f); ROBOTO_MEDIUM_11 = new Font(LoadFont(Resources.Roboto_Medium), 11f); + ROBOTO_TITLE = new Font(LoadFont(Resources.Roboto_Medium), 24f, FontStyle.Bold); ROBOTO_TITLE1 = new Font(LoadFont(Resources.Roboto_Medium), 18f, FontStyle.Bold); @@ -350,6 +351,7 @@ public static Color GetMaterialColor(Shades shade) { Color fillBrush; switch (shade) + { case Shades.Primary: fillBrush = _instance.ColorScheme.PrimaryColor; @@ -372,6 +374,9 @@ public static Color GetMaterialColor(Shades shade) case Shades.Success: fillBrush = _instance.ColorScheme.SuccessColor; break; + case Shades.LightGray: + fillBrush = _instance.ColorScheme.LightGrayColor; + break; default: fillBrush = _instance.ColorScheme.PrimaryColor; break; From 2e1e17ed34c19a57ef3a9938ba9b92f2a3d9bf35 Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Fri, 17 May 2019 17:57:27 +0200 Subject: [PATCH 08/15] Added form resize from TOP edge --- MaterialSkin/Controls/MaterialForm.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index 071333aa..1325fcc7 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -140,6 +140,7 @@ private enum ResizeDirection Right, BottomRight, Bottom, + Top, None } @@ -304,7 +305,12 @@ protected override void OnMouseMove(MouseEventArgs e) //True if the mouse is hovering over a child control var isChildUnderMouse = GetChildAtPoint(e.Location) != null; - if (e.Location.X < BORDER_WIDTH && e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_maximized) + if (e.Location.Y < BORDER_WIDTH && !isChildUnderMouse && !_maximized) + { + _resizeDir = ResizeDirection.Top; + Cursor = Cursors.SizeNS; + } + else if (e.Location.X < BORDER_WIDTH && e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_maximized) { _resizeDir = ResizeDirection.BottomLeft; Cursor = Cursors.SizeNESW; @@ -464,6 +470,9 @@ private void ResizeForm(ResizeDirection direction) case ResizeDirection.Bottom: dir = HTBOTTOM; break; + case ResizeDirection.Top: + dir = HTTOP; + break; } ReleaseCapture(); From c20672237472eab5b3549ebdd6ed9e7366c78d65 Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Fri, 24 May 2019 15:47:44 +0200 Subject: [PATCH 09/15] Improved customization of form and improved checkbox --- MaterialSkin/Controls/MaterialCheckbox.cs | 30 ++++++++++++++++++----- MaterialSkin/Controls/MaterialForm.cs | 20 +++++++++++++-- MaterialSkin/Controls/MaterialLabel.cs | 12 +++++++-- 3 files changed, 52 insertions(+), 10 deletions(-) diff --git a/MaterialSkin/Controls/MaterialCheckbox.cs b/MaterialSkin/Controls/MaterialCheckbox.cs index 1b7e1208..891a4194 100644 --- a/MaterialSkin/Controls/MaterialCheckbox.cs +++ b/MaterialSkin/Controls/MaterialCheckbox.cs @@ -38,6 +38,9 @@ public bool Ripple } } + public Shades CheckShade { get; set; } + public Shades Shade { get; set; } + private readonly AnimationManager _animationManager; private readonly AnimationManager _rippleAnimationManager; @@ -88,7 +91,7 @@ public override Size GetPreferredSize(Size proposedSize) } private static readonly Point[] CheckmarkLine = { new Point(3, 8), new Point(7, 12), new Point(14, 5) }; - private const int TEXT_OFFSET = 22; + private const int TEXT_OFFSET = 20; protected override void OnPaint(PaintEventArgs pevent) { var g = pevent.Graphics; @@ -105,8 +108,22 @@ protected override void OnPaint(PaintEventArgs pevent) var colorAlpha = Enabled ? (int)(animationProgress * 255.0) : SkinManager.GetCheckBoxOffDisabledColor().A; var backgroundAlpha = Enabled ? (int)(SkinManager.GetCheckboxOffColor().A * (1.0 - animationProgress)) : SkinManager.GetCheckBoxOffDisabledColor().A; - var brush = new SolidBrush(Color.FromArgb(colorAlpha, Enabled ? SkinManager.ColorScheme.AccentColor : SkinManager.GetCheckBoxOffDisabledColor())); - var brush3 = new SolidBrush(Enabled ? SkinManager.ColorScheme.AccentColor : SkinManager.GetCheckBoxOffDisabledColor()); + var checkColor = SkinManager.ColorScheme.AccentColor; + if (CheckShade != Shades.None) + { + checkColor = MaterialSkinManager.GetMaterialColor(CheckShade); + } + + var shadeBrush = SkinManager.GetCheckboxOffBrush(); + var shadeColor = SkinManager.GetCheckboxOffColor(); + if (Shade != Shades.None) + { + shadeBrush = MaterialSkinManager.GetMaterialBrush(Shade); + shadeColor = MaterialSkinManager.GetMaterialColor(Shade); + } + + var brush = new SolidBrush(Color.FromArgb(colorAlpha, Enabled ? checkColor : SkinManager.GetCheckBoxOffDisabledColor())); + var brush3 = new SolidBrush(Enabled ? checkColor : SkinManager.GetCheckBoxOffDisabledColor()); var pen = new Pen(brush.Color); // draw ripple animation @@ -133,7 +150,7 @@ protected override void OnPaint(PaintEventArgs pevent) var checkMarkLineFill = new Rectangle(_boxOffset, _boxOffset, (int)(17.0 * animationProgress), 17); using (var checkmarkPath = DrawHelper.CreateRoundRect(_boxOffset, _boxOffset, 17, 17, 1f)) { - var brush2 = new SolidBrush(DrawHelper.BlendColor(Parent.BackColor, Enabled ? SkinManager.GetCheckboxOffColor() : SkinManager.GetCheckBoxOffDisabledColor(), backgroundAlpha)); + var brush2 = new SolidBrush(DrawHelper.BlendColor(Parent.BackColor, Enabled ? shadeColor : SkinManager.GetCheckBoxOffDisabledColor(), backgroundAlpha)); var pen2 = new Pen(brush2.Color); g.FillPath(brush2, checkmarkPath); g.DrawPath(pen2, checkmarkPath); @@ -159,12 +176,13 @@ protected override void OnPaint(PaintEventArgs pevent) g.DrawImageUnscaledAndClipped(DrawCheckMarkBitmap(), checkMarkLineFill); } - // draw checkbox text + // draw checkbox text + SizeF stringSize = g.MeasureString(Text, SkinManager.ROBOTO_MEDIUM_10); g.DrawString( Text, SkinManager.ROBOTO_MEDIUM_10, - Enabled ? SkinManager.GetPrimaryTextBrush() : SkinManager.GetDisabledOrHintBrush(), + Enabled ? shadeBrush : SkinManager.GetDisabledOrHintBrush(), _boxOffset + TEXT_OFFSET, Height / 2 - stringSize.Height / 2); // dispose used paint objects diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index 1325fcc7..1b2e1f59 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -19,6 +19,7 @@ public class MaterialForm : Form, IMaterialControl public MouseState MouseState { get; set; } public new FormBorderStyle FormBorderStyle { get { return base.FormBorderStyle; } set { base.FormBorderStyle = value; } } public bool Sizable { get; set; } + public Image Logo { get; set; } public Shades StatusBarColor { @@ -93,6 +94,7 @@ public Shades ActionBarColor private const int STATUS_BAR_BUTTON_WIDTH = STATUS_BAR_HEIGHT; private const int STATUS_BAR_HEIGHT = 24; private const int ACTION_BAR_HEIGHT = 40; + private const int LOGO_SIZE = 32; private const uint TPM_LEFTALIGN = 0x0000; private const uint TPM_RETURNCMD = 0x0100; @@ -162,6 +164,7 @@ private enum ButtonState private Rectangle _xButtonBounds; private Rectangle _actionBarBounds; private Rectangle _statusBarBounds; + private Rectangle _textLabelBounds; private bool _maximized; private Size _previousSize; @@ -491,6 +494,9 @@ protected override void OnResize(EventArgs e) _xButtonBounds = new Rectangle((Width - SkinManager.FORM_PADDING / 2) - STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); _statusBarBounds = new Rectangle(0, 0, Width, STATUS_BAR_HEIGHT); _actionBarBounds = new Rectangle(0, STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT); + _textLabelBounds = Logo != null + ? new Rectangle(SkinManager.FORM_PADDING + LOGO_SIZE + 5, STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT) + : new Rectangle(SkinManager.FORM_PADDING, STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT); } protected override void OnPaint(PaintEventArgs e) @@ -584,8 +590,18 @@ protected override void OnPaint(PaintEventArgs e) } } - //Form title - g.DrawString(Text, SkinManager.ROBOTO_REGULAR_11, SkinManager.ColorScheme.TextBrush, new Rectangle(SkinManager.FORM_PADDING, STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT), new StringFormat { LineAlignment = StringAlignment.Center }); + // Logo + if (Logo != null) + { + int logoY = STATUS_BAR_HEIGHT + (ACTION_BAR_HEIGHT - LOGO_SIZE) / 2; + g.DrawImage(Logo, + new Rectangle( SkinManager.FORM_PADDING, logoY,Logo.Width, LOGO_SIZE), + new Rectangle(0,0,Logo.Width, Logo.Height), GraphicsUnit.Pixel); + } + + + // Form title + g.DrawString(Text, SkinManager.ROBOTO_REGULAR_11, SkinManager.ColorScheme.TextBrush, _textLabelBounds, new StringFormat { LineAlignment = StringAlignment.Center }); } private void DrawActionBar(Graphics g) diff --git a/MaterialSkin/Controls/MaterialLabel.cs b/MaterialSkin/Controls/MaterialLabel.cs index a69d267f..6b8b011b 100644 --- a/MaterialSkin/Controls/MaterialLabel.cs +++ b/MaterialSkin/Controls/MaterialLabel.cs @@ -56,14 +56,22 @@ protected override void OnCreateControl() } protected override void OnPaint(PaintEventArgs e) - { + { e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias; + e.Graphics.Clear(Parent.BackColor); Brush b = Shade == Shades.None ? MaterialSkinManager.Instance.GetPrimaryTextBrush() : MaterialSkinManager.GetMaterialBrush(Shade); - e.Graphics.DrawString(this.Text, this.Font, b, new Point(0, 0)); + + + e.Graphics.FillRectangle(new SolidBrush(BackColor), 0,0, Width, Height); + + e.Graphics.DrawString(this.Text, this.Font, b, e.ClipRectangle, + new StringFormat { + Alignment = MaterialRaisedButton.ContentToTextHAlignment(TextAlign), + LineAlignment = MaterialRaisedButton.ContentToTextVAlignment(TextAlign) }); } } } From bfc9d355b3d93e0fae8805393a6e12d35ae13262 Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Fri, 31 May 2019 12:20:28 +0200 Subject: [PATCH 10/15] Added ROBOOTO 10 Regular --- MaterialSkin/MaterialSkinManager.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MaterialSkin/MaterialSkinManager.cs b/MaterialSkin/MaterialSkinManager.cs index ce683837..c2147847 100644 --- a/MaterialSkin/MaterialSkinManager.cs +++ b/MaterialSkin/MaterialSkinManager.cs @@ -229,6 +229,7 @@ public Color GetApplicationBackgroundColor() public Font ROBOTO_MEDIUM_12; public Font ROBOTO_REGULAR_11; public Font ROBOTO_REGULAR_8; + public Font ROBOTO_REGULAR_10; public Font ROBOTO_MEDIUM_11; public Font ROBOTO_MEDIUM_10; public Font ROBOTO_TITLE; @@ -245,6 +246,7 @@ private MaterialSkinManager() ROBOTO_MEDIUM_12 = new Font(LoadFont(Resources.Roboto_Medium), 12f); ROBOTO_MEDIUM_10 = new Font(LoadFont(Resources.Roboto_Medium), 10f); ROBOTO_REGULAR_8 = new Font(LoadFont(Resources.Roboto_Regular), 8f); + ROBOTO_REGULAR_10 = new Font(LoadFont(Resources.Roboto_Regular), 10f); ROBOTO_REGULAR_11 = new Font(LoadFont(Resources.Roboto_Regular), 11f); ROBOTO_MEDIUM_11 = new Font(LoadFont(Resources.Roboto_Medium), 11f); From 3dac50bdefbba13a3bd244af8294f1a2392c7b5d Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Fri, 31 May 2019 18:46:08 +0200 Subject: [PATCH 11/15] added "Shade" colors to radiobutton --- MaterialSkin/Controls/MaterialFlatButton.cs | 8 ++++++-- MaterialSkin/Controls/MaterialForm.cs | 7 ++++++- MaterialSkin/Controls/MaterialRadioButton.cs | 16 +++++++++++++--- MaterialSkin/Controls/MaterialRaisedButton.cs | 9 +++++++-- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/MaterialSkin/Controls/MaterialFlatButton.cs b/MaterialSkin/Controls/MaterialFlatButton.cs index e14741ce..809cbc6f 100644 --- a/MaterialSkin/Controls/MaterialFlatButton.cs +++ b/MaterialSkin/Controls/MaterialFlatButton.cs @@ -83,8 +83,12 @@ protected override void OnPaint(PaintEventArgs pevent) g.Clear(Parent.BackColor); //Hover - Color c = SkinManager.GetFlatButtonHoverBackgroundColor(); - using (Brush b = new SolidBrush(Color.FromArgb((int)(_hoverAnimationManager.GetProgress() * c.A), c.RemoveAlpha()))) + Color c = Shade != Shades.None + ? MaterialSkinManager.GetMaterialColor(Shade) + : SkinManager.GetFlatButtonHoverBackgroundColor(); + using (Brush b = Shade != Shades.None + ? new SolidBrush(c) + : new SolidBrush(Color.FromArgb((int)(_hoverAnimationManager.GetProgress() * c.A), c.RemoveAlpha()))) g.FillRectangle(b, ClientRectangle); //Ripple diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index 1b2e1f59..7fcbbc28 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -20,6 +20,7 @@ public class MaterialForm : Form, IMaterialControl public new FormBorderStyle FormBorderStyle { get { return base.FormBorderStyle; } set { base.FormBorderStyle = value; } } public bool Sizable { get; set; } public Image Logo { get; set; } + public bool ShowActionBar { get; set; } = true; public Shades StatusBarColor { @@ -165,6 +166,7 @@ private enum ButtonState private Rectangle _actionBarBounds; private Rectangle _statusBarBounds; private Rectangle _textLabelBounds; + private Rectangle _logoBounds; private bool _maximized; private Size _previousSize; @@ -494,9 +496,11 @@ protected override void OnResize(EventArgs e) _xButtonBounds = new Rectangle((Width - SkinManager.FORM_PADDING / 2) - STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); _statusBarBounds = new Rectangle(0, 0, Width, STATUS_BAR_HEIGHT); _actionBarBounds = new Rectangle(0, STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT); + _textLabelBounds = Logo != null ? new Rectangle(SkinManager.FORM_PADDING + LOGO_SIZE + 5, STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT) : new Rectangle(SkinManager.FORM_PADDING, STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT); + _logoBounds = new Rectangle(0, _textLabelBounds.Y, _textLabelBounds.X + _textLabelBounds.Width, _textLabelBounds.Height); } protected override void OnPaint(PaintEventArgs e) @@ -506,7 +510,7 @@ protected override void OnPaint(PaintEventArgs e) g.Clear(SkinManager.GetApplicationBackgroundColor()); g.FillRectangle(MaterialSkinManager.GetMaterialBrush(StatusBarColor), _statusBarBounds); - DrawActionBar(g); + if (ShowActionBar) DrawActionBar(g); //Draw border using (var borderPen = new Pen(SkinManager.GetDividersColor(), 1)) @@ -593,6 +597,7 @@ protected override void OnPaint(PaintEventArgs e) // Logo if (Logo != null) { + g.FillRectangle(SkinManager.ColorScheme.LightGrayBrush, _logoBounds); int logoY = STATUS_BAR_HEIGHT + (ACTION_BAR_HEIGHT - LOGO_SIZE) / 2; g.DrawImage(Logo, new Rectangle( SkinManager.FORM_PADDING, logoY,Logo.Width, LOGO_SIZE), diff --git a/MaterialSkin/Controls/MaterialRadioButton.cs b/MaterialSkin/Controls/MaterialRadioButton.cs index aef9d711..b0cc91c7 100644 --- a/MaterialSkin/Controls/MaterialRadioButton.cs +++ b/MaterialSkin/Controls/MaterialRadioButton.cs @@ -38,6 +38,8 @@ public bool Ripple } } + public Shades Shade { get; set; } + // animation managers private readonly AnimationManager _animationManager; private readonly AnimationManager _rippleAnimationManager; @@ -108,7 +110,15 @@ protected override void OnPaint(PaintEventArgs pevent) float animationSizeHalf = animationSize / 2; animationSize = (float)(animationProgress * 9f); - var brush = new SolidBrush(Color.FromArgb(colorAlpha, Enabled ? SkinManager.ColorScheme.AccentColor : SkinManager.GetCheckBoxOffDisabledColor())); + var shadeBrush = SkinManager.GetCheckboxOffBrush(); + var shadeColor = SkinManager.GetCheckboxOffColor(); + if (Shade != Shades.None) + { + shadeBrush = MaterialSkinManager.GetMaterialBrush(Shade); + shadeColor = MaterialSkinManager.GetMaterialColor(Shade); + } + + var brush = new SolidBrush(Color.FromArgb(colorAlpha, Enabled ? shadeColor : SkinManager.GetCheckBoxOffDisabledColor())); var pen = new Pen(brush.Color); // draw ripple animation @@ -131,7 +141,7 @@ protected override void OnPaint(PaintEventArgs pevent) } // draw radiobutton circle - Color uncheckedColor = DrawHelper.BlendColor(Parent.BackColor, Enabled ? SkinManager.GetCheckboxOffColor() : SkinManager.GetCheckBoxOffDisabledColor(), backgroundAlpha); + Color uncheckedColor = DrawHelper.BlendColor(Parent.BackColor, Enabled ? shadeColor : SkinManager.GetCheckBoxOffDisabledColor(), backgroundAlpha); using (var path = DrawHelper.CreateRoundRect(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE, 9f)) { @@ -158,7 +168,7 @@ protected override void OnPaint(PaintEventArgs pevent) } } SizeF stringSize = g.MeasureString(Text, SkinManager.ROBOTO_MEDIUM_10); - g.DrawString(Text, SkinManager.ROBOTO_MEDIUM_10, Enabled ? SkinManager.GetPrimaryTextBrush() : SkinManager.GetDisabledOrHintBrush(), _boxOffset + 22, Height / 2 - stringSize.Height / 2); + g.DrawString(Text, SkinManager.ROBOTO_MEDIUM_10, Enabled ? shadeBrush : SkinManager.GetDisabledOrHintBrush(), _boxOffset + 22, Height / 2 - stringSize.Height / 2); brush.Dispose(); pen.Dispose(); diff --git a/MaterialSkin/Controls/MaterialRaisedButton.cs b/MaterialSkin/Controls/MaterialRaisedButton.cs index 921f73ca..5eb4c158 100644 --- a/MaterialSkin/Controls/MaterialRaisedButton.cs +++ b/MaterialSkin/Controls/MaterialRaisedButton.cs @@ -143,8 +143,13 @@ protected override void OnPaint(PaintEventArgs pevent) if (Icon != null) { - var iconRect = new Rectangle(8, (Height/2)- Icon.Height/2, Icon.Width, Icon.Height); - + float imgRatio = (float)Icon.Width / Icon.Height; + float buttonRatio = (float)Width / Height; + Rectangle iconRect; + if (imgRatio>buttonRatio) + iconRect = new Rectangle(8, 6, Width-16, (int)((Width)/buttonRatio)-16); + else + iconRect = new Rectangle(8, 6, (int)((Width)/imgRatio)-16, (Height-16)); //create a color matrix object & set the opacity var matrix = new ColorMatrix { Matrix33 = (float) 0.75 }; From 8426305e0cb9cd85cb897c2622f8c2e7c6fc75fa Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Fri, 14 Jun 2019 15:35:45 +0200 Subject: [PATCH 12/15] fixed icon size ratio on material button --- MaterialSkin/Controls/MaterialFlatButton.cs | 2 +- MaterialSkin/Controls/MaterialRaisedButton.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MaterialSkin/Controls/MaterialFlatButton.cs b/MaterialSkin/Controls/MaterialFlatButton.cs index 809cbc6f..ad28cc15 100644 --- a/MaterialSkin/Controls/MaterialFlatButton.cs +++ b/MaterialSkin/Controls/MaterialFlatButton.cs @@ -89,7 +89,7 @@ protected override void OnPaint(PaintEventArgs pevent) using (Brush b = Shade != Shades.None ? new SolidBrush(c) : new SolidBrush(Color.FromArgb((int)(_hoverAnimationManager.GetProgress() * c.A), c.RemoveAlpha()))) - g.FillRectangle(b, ClientRectangle); + // g.FillRectangle(b, ClientRectangle); //Ripple if (_animationManager.IsAnimating()) diff --git a/MaterialSkin/Controls/MaterialRaisedButton.cs b/MaterialSkin/Controls/MaterialRaisedButton.cs index 5eb4c158..28ceebbe 100644 --- a/MaterialSkin/Controls/MaterialRaisedButton.cs +++ b/MaterialSkin/Controls/MaterialRaisedButton.cs @@ -149,7 +149,7 @@ protected override void OnPaint(PaintEventArgs pevent) if (imgRatio>buttonRatio) iconRect = new Rectangle(8, 6, Width-16, (int)((Width)/buttonRatio)-16); else - iconRect = new Rectangle(8, 6, (int)((Width)/imgRatio)-16, (Height-16)); + iconRect = new Rectangle(8, 6, (int)((Width)/buttonRatio)-16, (Height-16)); //create a color matrix object & set the opacity var matrix = new ColorMatrix { Matrix33 = (float) 0.75 }; From b74886866abe98750487e654d366f36531784519 Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Thu, 11 Jul 2019 17:36:31 +0200 Subject: [PATCH 13/15] Added shades of colors to materialprogressbar --- MaterialSkin/Controls/MaterialProgressBar.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/MaterialSkin/Controls/MaterialProgressBar.cs b/MaterialSkin/Controls/MaterialProgressBar.cs index c59d0d54..61f01f9d 100644 --- a/MaterialSkin/Controls/MaterialProgressBar.cs +++ b/MaterialSkin/Controls/MaterialProgressBar.cs @@ -1,4 +1,5 @@ using System.ComponentModel; +using System.Drawing; using System.Windows.Forms; namespace MaterialSkin.Controls @@ -8,6 +9,9 @@ namespace MaterialSkin.Controls /// public class MaterialProgressBar : ProgressBar, IMaterialControl { + + public Shades Shade { get; set; } + /// /// Initializes a new instance of the class. /// @@ -64,7 +68,11 @@ protected override void SetBoundsCore(int x, int y, int width, int height, Bound protected override void OnPaint(PaintEventArgs e) { var doneProgress = (int)(e.ClipRectangle.Width * ((double)Value / Maximum)); - e.Graphics.FillRectangle(SkinManager.ColorScheme.PrimaryBrush, 0, 0, doneProgress, e.ClipRectangle.Height); + Brush b = Shade != Shades.None + ? MaterialSkinManager.GetMaterialBrush(Shade) + : SkinManager.ColorScheme.PrimaryBrush; + + e.Graphics.FillRectangle(b, 0, 0, doneProgress, e.ClipRectangle.Height); e.Graphics.FillRectangle(SkinManager.GetDisabledOrHintBrush(), doneProgress, 0, e.ClipRectangle.Width, e.ClipRectangle.Height); } } From ce332242d55f27c4c53efb9db8cb6b3c2958e2ad Mon Sep 17 00:00:00 2001 From: Simone Romano Date: Thu, 26 Sep 2019 11:17:20 +0200 Subject: [PATCH 14/15] Fixed MaterialLabel paint bug --- MaterialSkin/Controls/MaterialForm.cs | 2 +- MaterialSkin/Controls/MaterialLabel.cs | 61 ++++++++++++++++---------- MaterialSkin/MaterialSkinManager.cs | 34 ++++++++++---- 3 files changed, 65 insertions(+), 32 deletions(-) diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index 7fcbbc28..ef630979 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -93,7 +93,7 @@ public Shades ActionBarColor }; private const int STATUS_BAR_BUTTON_WIDTH = STATUS_BAR_HEIGHT; - private const int STATUS_BAR_HEIGHT = 24; + private const int STATUS_BAR_HEIGHT = 36; private const int ACTION_BAR_HEIGHT = 40; private const int LOGO_SIZE = 32; diff --git a/MaterialSkin/Controls/MaterialLabel.cs b/MaterialSkin/Controls/MaterialLabel.cs index 6b8b011b..a8deed82 100644 --- a/MaterialSkin/Controls/MaterialLabel.cs +++ b/MaterialSkin/Controls/MaterialLabel.cs @@ -3,6 +3,7 @@ using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Text; +using System.IO; using System.Runtime.CompilerServices; using System.Windows.Forms; @@ -19,13 +20,28 @@ public enum Style public class MaterialLabel : Label, IMaterialControl { + private Style _style; + private FontStyle _fontweight; + [Browsable(false)] public int Depth { get; set; } [Browsable(false)] public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; [Browsable(false)] public MouseState MouseState { get; set; } - public Style Style { get; set; } + + public Style Style + { + get => _style; + set { _style = value; ApplyStyle();} + } + + public FontStyle FontWeight + { + get => _fontweight; + set { _fontweight = value; ApplyStyle();} + } + public Shades Shade { get; set; } @@ -34,44 +50,43 @@ protected override void OnCreateControl() base.OnCreateControl(); ForeColor = SkinManager.GetPrimaryTextColor(); + + ApplyStyle(); + + BackColorChanged += (sender, args) => ForeColor = SkinManager.GetPrimaryTextColor(); + } + + private void ApplyStyle() + { switch (Style) { case Style.Body: - Font = SkinManager.ROBOTO_REGULAR_11; + Font = FontWeight == FontStyle.Bold ? SkinManager.ROBOTO_MEDIUM_11 : SkinManager.ROBOTO_REGULAR_11; break; case Style.Small: - Font = SkinManager.ROBOTO_REGULAR_8; + Font = FontWeight == FontStyle.Bold ? SkinManager.ROBOTO_MEDIUM_8 : SkinManager.ROBOTO_REGULAR_8; break; case Style.Title: Font = SkinManager.ROBOTO_TITLE; break; case Style.Title1: Font = SkinManager.ROBOTO_TITLE1; - break; + break; + case Style.GrayCounter: + Font = FontWeight == FontStyle.Bold + ? SkinManager.ROBOTO_BOLD_HUGE + : SkinManager.ROBOTO_REGULAR_HUGE; + break; default: throw new ArgumentOutOfRangeException(); } - BackColorChanged += (sender, args) => ForeColor = SkinManager.GetPrimaryTextColor(); - } - - protected override void OnPaint(PaintEventArgs e) - { - e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; - e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias; - e.Graphics.Clear(Parent.BackColor); - - Brush b = Shade == Shades.None - ? MaterialSkinManager.Instance.GetPrimaryTextBrush() - : MaterialSkinManager.GetMaterialBrush(Shade); + ForeColor = Shade == Shades.None + ? MaterialSkinManager.Instance.GetPrimaryTextColor() + : MaterialSkinManager.GetMaterialColor(Shade); - - e.Graphics.FillRectangle(new SolidBrush(BackColor), 0,0, Width, Height); - - e.Graphics.DrawString(this.Text, this.Font, b, e.ClipRectangle, - new StringFormat { - Alignment = MaterialRaisedButton.ContentToTextHAlignment(TextAlign), - LineAlignment = MaterialRaisedButton.ContentToTextVAlignment(TextAlign) }); } + + } } diff --git a/MaterialSkin/MaterialSkinManager.cs b/MaterialSkin/MaterialSkinManager.cs index c2147847..cc45d05e 100644 --- a/MaterialSkin/MaterialSkinManager.cs +++ b/MaterialSkin/MaterialSkinManager.cs @@ -226,14 +226,22 @@ public Color GetApplicationBackgroundColor() } //Roboto font - public Font ROBOTO_MEDIUM_12; - public Font ROBOTO_REGULAR_11; public Font ROBOTO_REGULAR_8; + public Font ROBOTO_MEDIUM_8; + public Font ROBOTO_REGULAR_10; - public Font ROBOTO_MEDIUM_11; public Font ROBOTO_MEDIUM_10; + + public Font ROBOTO_REGULAR_11; + public Font ROBOTO_MEDIUM_11; + + public Font ROBOTO_REGULAR_12; + public Font ROBOTO_MEDIUM_12; + public Font ROBOTO_TITLE; public Font ROBOTO_TITLE1; + public Font ROBOTO_REGULAR_HUGE; + public Font ROBOTO_BOLD_HUGE; //Other constants public int FORM_PADDING = 14; @@ -243,18 +251,28 @@ public Color GetApplicationBackgroundColor() private MaterialSkinManager() { - ROBOTO_MEDIUM_12 = new Font(LoadFont(Resources.Roboto_Medium), 12f); - ROBOTO_MEDIUM_10 = new Font(LoadFont(Resources.Roboto_Medium), 10f); ROBOTO_REGULAR_8 = new Font(LoadFont(Resources.Roboto_Regular), 8f); + ROBOTO_MEDIUM_8 = new Font(LoadFont(Resources.Roboto_Medium), 8f); + ROBOTO_REGULAR_10 = new Font(LoadFont(Resources.Roboto_Regular), 10f); + ROBOTO_MEDIUM_10 = new Font(LoadFont(Resources.Roboto_Medium), 10f); + ROBOTO_REGULAR_11 = new Font(LoadFont(Resources.Roboto_Regular), 11f); - ROBOTO_MEDIUM_11 = new Font(LoadFont(Resources.Roboto_Medium), 11f); + ROBOTO_MEDIUM_11 = new Font(LoadFont(Resources.Roboto_Medium), 11f, FontStyle.Bold); + + ROBOTO_REGULAR_12 = new Font(LoadFont(Resources.Roboto_Regular), 12f); + ROBOTO_MEDIUM_12 = new Font(LoadFont(Resources.Roboto_Medium), 12f); - ROBOTO_TITLE = new Font(LoadFont(Resources.Roboto_Medium), 24f, FontStyle.Bold); - ROBOTO_TITLE1 = new Font(LoadFont(Resources.Roboto_Medium), 18f, FontStyle.Bold); + ROBOTO_TITLE = new Font(LoadFont(Resources.Roboto_Medium), 20f, FontStyle.Bold); + + ROBOTO_TITLE1 = new Font(LoadFont(Resources.Roboto_Medium), 16f, FontStyle.Bold); + + ROBOTO_REGULAR_HUGE = new Font(LoadFont(Resources.Roboto_Medium), 56f, FontStyle.Regular); + ROBOTO_BOLD_HUGE = new Font(LoadFont(Resources.Roboto_Medium), 56f, FontStyle.Bold); Theme = Themes.LIGHT; ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.LightBlue200, TextShade.WHITE); + } public static MaterialSkinManager Instance => _instance ?? (_instance = new MaterialSkinManager()); From 17e1d18637ab7d31692888e07416a6d1e535ef06 Mon Sep 17 00:00:00 2001 From: Simone Date: Fri, 17 Jan 2020 13:15:01 +0100 Subject: [PATCH 15/15] Fixed font size in HUGE font - reduced to 42 --- MaterialSkin/MaterialSkin.csproj | 2 +- MaterialSkin/MaterialSkinManager.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MaterialSkin/MaterialSkin.csproj b/MaterialSkin/MaterialSkin.csproj index 4f91bd49..647cfb9d 100644 --- a/MaterialSkin/MaterialSkin.csproj +++ b/MaterialSkin/MaterialSkin.csproj @@ -17,7 +17,7 @@ true full false - ..\..\simonerom\albatros\Libs\MaterialSkin\ + ..\..\Repos\albatros\Libs\MaterialSkin\ DEBUG;TRACE prompt 4 diff --git a/MaterialSkin/MaterialSkinManager.cs b/MaterialSkin/MaterialSkinManager.cs index cc45d05e..f124ae11 100644 --- a/MaterialSkin/MaterialSkinManager.cs +++ b/MaterialSkin/MaterialSkinManager.cs @@ -267,8 +267,8 @@ private MaterialSkinManager() ROBOTO_TITLE1 = new Font(LoadFont(Resources.Roboto_Medium), 16f, FontStyle.Bold); - ROBOTO_REGULAR_HUGE = new Font(LoadFont(Resources.Roboto_Medium), 56f, FontStyle.Regular); - ROBOTO_BOLD_HUGE = new Font(LoadFont(Resources.Roboto_Medium), 56f, FontStyle.Bold); + ROBOTO_REGULAR_HUGE = new Font(LoadFont(Resources.Roboto_Medium), 42f, FontStyle.Regular); + ROBOTO_BOLD_HUGE = new Font(LoadFont(Resources.Roboto_Medium), 42f, FontStyle.Bold); Theme = Themes.LIGHT; ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.LightBlue200, TextShade.WHITE);