From d25d46dd53c6b81df871078ed40e832efcab5366 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Mon, 29 Jun 2020 13:22:42 -0700 Subject: [PATCH 01/30] fun --- .../Controls/FlexibleMaterialDialog.cs | 1561 ++++++------- MaterialSkin/Controls/MaterialButton.cs | 930 ++++---- MaterialSkin/Controls/MaterialCard.cs | 230 +- MaterialSkin/Controls/MaterialComboBox.cs | 676 +++--- MaterialSkin/Controls/MaterialDrawer.cs | 1308 +++++------ .../Controls/MaterialFloatingActionButton.cs | 484 ++-- MaterialSkin/Controls/MaterialForm.cs | 1966 +++++++++-------- MaterialSkin/Controls/MaterialLabel.cs | 310 +-- MaterialSkin/Controls/MaterialListView.cs | 416 ++-- MaterialSkin/Controls/MaterialMessageBox.cs | 126 +- .../Controls/MaterialMultiLineTextBox.cs | 140 +- MaterialSkin/Controls/MaterialRadioButton.cs | 614 ++--- MaterialSkin/Controls/MaterialSwitch.cs | 700 +++--- MaterialSkin/Controls/MaterialTextBox.cs | 858 +++---- MaterialSkin/DrawHelper.cs | 220 +- MaterialSkin/MaterialSkin.csproj | 6 + MaterialSkin/MaterialSkinManager.cs | 902 ++++---- MaterialSkin/NativeTextRenderer.cs | 952 ++++---- MaterialSkin/Properties/Resources.Designer.cs | 60 + MaterialSkin/Properties/Resources.resx | 18 + MaterialSkin/Resources/IRANSans-Black.ttf | Bin 0 -> 98588 bytes MaterialSkin/Resources/IRANSans-Bold.ttf | Bin 0 -> 100992 bytes MaterialSkin/Resources/IRANSans-Light.ttf | Bin 0 -> 97580 bytes MaterialSkin/Resources/IRANSans-Medium.ttf | Bin 0 -> 92980 bytes MaterialSkin/Resources/IRANSans-Regular.ttf | Bin 0 -> 104668 bytes .../Resources/IRANSans-UltraLight.ttf | Bin 0 -> 102840 bytes ...MaterialSkin.csprojAssemblyReference.cache | Bin 5167 -> 424 bytes MaterialSkinExample/MainForm.Designer.cs | 333 +-- MaterialSkinExample/MainForm.cs | 337 +-- MaterialSkinExample/MainForm.resx | 14 +- .../MaterialSkinExample.csproj | 1 - ...lSkinExample.csprojAssemblyReference.cache | Bin 424 -> 5543 bytes 32 files changed, 6656 insertions(+), 6506 deletions(-) create mode 100644 MaterialSkin/Resources/IRANSans-Black.ttf create mode 100644 MaterialSkin/Resources/IRANSans-Bold.ttf create mode 100644 MaterialSkin/Resources/IRANSans-Light.ttf create mode 100644 MaterialSkin/Resources/IRANSans-Medium.ttf create mode 100644 MaterialSkin/Resources/IRANSans-Regular.ttf create mode 100644 MaterialSkin/Resources/IRANSans-UltraLight.ttf diff --git a/MaterialSkin/Controls/FlexibleMaterialDialog.cs b/MaterialSkin/Controls/FlexibleMaterialDialog.cs index 3c4caae2..b7970343 100644 --- a/MaterialSkin/Controls/FlexibleMaterialDialog.cs +++ b/MaterialSkin/Controls/FlexibleMaterialDialog.cs @@ -1,786 +1,797 @@ -using System; -using System.Diagnostics; -using System.Drawing; -using System.Globalization; -using System.Linq; -using System.Windows.Forms; - -namespace MaterialSkin.Controls -{ - /// - /// The form to show the customized message box. - /// It is defined as an internal class to keep the public interface of the FlexibleMessageBox clean. - /// - public class FlexibleMaterialForm : MaterialForm, IMaterialControl - { +using System; +using System.Diagnostics; +using System.Drawing; +using System.Globalization; +using System.Linq; +using System.Windows.Forms; + +namespace MaterialSkin.Controls +{ + /// + /// The form to show the customized message box. + /// It is defined as an internal class to keep the public interface of the FlexibleMessageBox clean. + /// + public class FlexibleMaterialForm : MaterialForm, IMaterialControl + { private readonly MaterialSkinManager materialSkinManager; - - /// - /// Defines the font for all FlexibleMessageBox instances. - /// - /// Default is: SystemFonts.MessageBoxFont - /// - public static Font FONT; - - /// - /// Defines the maximum width for all FlexibleMessageBox instances in percent of the working area. - /// - /// Allowed values are 0.2 - 1.0 where: - /// 0.2 means: The FlexibleMessageBox can be at most half as wide as the working area. - /// 1.0 means: The FlexibleMessageBox can be as wide as the working area. - /// - /// Default is: 70% of the working area width. - /// - public static double MAX_WIDTH_FACTOR = 0.7; - - /// - /// Defines the maximum height for all FlexibleMessageBox instances in percent of the working area. - /// - /// Allowed values are 0.2 - 1.0 where: - /// 0.2 means: The FlexibleMessageBox can be at most half as high as the working area. - /// 1.0 means: The FlexibleMessageBox can be as high as the working area. - /// - /// Default is: 90% of the working area height. - /// - public static double MAX_HEIGHT_FACTOR = 0.9; - - private MaterialMultiLineTextBox richTextBoxMessage; - - /// - /// Erforderliche Designervariable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Verwendete Ressourcen bereinigen. - /// - /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - /// - /// Erforderliche Methode für die Designerunterstützung. - /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.leftButton = new MaterialSkin.Controls.MaterialButton(); - this.FlexibleMaterialFormBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.messageContainer = new System.Windows.Forms.Panel(); - this.pictureBoxForIcon = new System.Windows.Forms.PictureBox(); - this.richTextBoxMessage = new MaterialSkin.Controls.MaterialMultiLineTextBox(); - this.middleButton = new MaterialSkin.Controls.MaterialButton(); - this.rightButton = new MaterialSkin.Controls.MaterialButton(); - ((System.ComponentModel.ISupportInitialize)(this.FlexibleMaterialFormBindingSource)).BeginInit(); - this.messageContainer.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxForIcon)).BeginInit(); - this.SuspendLayout(); - // - // leftButton - // - this.leftButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.leftButton.AutoSize = false; - this.leftButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.leftButton.Depth = 0; - this.leftButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.leftButton.DrawShadows = true; - this.leftButton.HighEmphasis = false; - this.leftButton.Icon = null; - this.leftButton.Location = new System.Drawing.Point(44, 163); - this.leftButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); - this.leftButton.MinimumSize = new System.Drawing.Size(0, 24); - this.leftButton.MouseState = MaterialSkin.MouseState.HOVER; - this.leftButton.Name = "leftButton"; - this.leftButton.Size = new System.Drawing.Size(108, 36); - this.leftButton.TabIndex = 2; - this.leftButton.Text = "OK"; - this.leftButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; - this.leftButton.UseAccentColor = false; - this.leftButton.UseVisualStyleBackColor = true; - this.leftButton.Visible = false; - // - // messageContainer - // - this.messageContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.messageContainer.BackColor = System.Drawing.Color.White; - this.messageContainer.Controls.Add(this.pictureBoxForIcon); - this.messageContainer.Controls.Add(this.richTextBoxMessage); - this.messageContainer.Location = new System.Drawing.Point(0, 65); - this.messageContainer.Name = "messageContainer"; - this.messageContainer.Size = new System.Drawing.Size(388, 81); - this.messageContainer.TabIndex = 1; - // - // pictureBoxForIcon - // - this.pictureBoxForIcon.BackColor = System.Drawing.Color.Transparent; - this.pictureBoxForIcon.Location = new System.Drawing.Point(15, 19); - this.pictureBoxForIcon.Name = "pictureBoxForIcon"; - this.pictureBoxForIcon.Size = new System.Drawing.Size(32, 32); - this.pictureBoxForIcon.TabIndex = 8; - this.pictureBoxForIcon.TabStop = false; - // - // richTextBoxMessage - // - this.richTextBoxMessage.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.richTextBoxMessage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(237)))), ((int)(((byte)(237)))), ((int)(((byte)(237))))); - this.richTextBoxMessage.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.richTextBoxMessage.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlexibleMaterialFormBindingSource, "MessageText", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.richTextBoxMessage.Depth = 0; - this.richTextBoxMessage.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.richTextBoxMessage.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.richTextBoxMessage.Hint = ""; - this.richTextBoxMessage.Location = new System.Drawing.Point(47, 2); - this.richTextBoxMessage.Margin = new System.Windows.Forms.Padding(0); - this.richTextBoxMessage.MouseState = MaterialSkin.MouseState.HOVER; - this.richTextBoxMessage.Name = "richTextBoxMessage"; - this.richTextBoxMessage.ReadOnly = true; - this.richTextBoxMessage.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; - this.richTextBoxMessage.Size = new System.Drawing.Size(338, 78); - this.richTextBoxMessage.TabIndex = 0; - this.richTextBoxMessage.TabStop = false; - this.richTextBoxMessage.Text = ""; - this.richTextBoxMessage.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.richTextBoxMessage_LinkClicked); - // - // middleButton - // - this.middleButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.middleButton.AutoSize = false; - this.middleButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.middleButton.Depth = 0; - this.middleButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.middleButton.DrawShadows = true; - this.middleButton.HighEmphasis = true; - this.middleButton.Icon = null; - this.middleButton.Location = new System.Drawing.Point(160, 163); - this.middleButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); - this.middleButton.MinimumSize = new System.Drawing.Size(0, 24); - this.middleButton.MouseState = MaterialSkin.MouseState.HOVER; - this.middleButton.Name = "middleButton"; - this.middleButton.Size = new System.Drawing.Size(102, 36); - this.middleButton.TabIndex = 3; - this.middleButton.Text = "OK"; - this.middleButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; - this.middleButton.UseAccentColor = false; - this.middleButton.UseVisualStyleBackColor = true; - this.middleButton.Visible = false; - // - // rightButton - // - this.rightButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.rightButton.AutoSize = false; - this.rightButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.rightButton.Depth = 0; - this.rightButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.rightButton.DrawShadows = true; - this.rightButton.HighEmphasis = true; - this.rightButton.Icon = null; - this.rightButton.Location = new System.Drawing.Point(270, 163); - this.rightButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); - this.rightButton.MinimumSize = new System.Drawing.Size(0, 24); - this.rightButton.MouseState = MaterialSkin.MouseState.HOVER; - this.rightButton.Name = "rightButton"; - this.rightButton.Size = new System.Drawing.Size(106, 36); - this.rightButton.TabIndex = 0; - this.rightButton.Text = "OK"; - this.rightButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; - this.rightButton.UseAccentColor = false; - this.rightButton.UseVisualStyleBackColor = true; - this.rightButton.Visible = false; - // - // FlexibleMaterialForm - // - this.BackColor = System.Drawing.Color.White; - this.ClientSize = new System.Drawing.Size(388, 208); - this.Controls.Add(this.rightButton); - this.Controls.Add(this.middleButton); - this.Controls.Add(this.messageContainer); - this.Controls.Add(this.leftButton); - this.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlexibleMaterialFormBindingSource, "CaptionText", true)); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(276, 140); - this.Name = "FlexibleMaterialForm"; - this.ShowIcon = false; - this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = ""; - this.Load += new System.EventHandler(this.FlexibleMaterialForm_Load); - this.Shown += new System.EventHandler(this.FlexibleMaterialForm_Shown); - ((System.ComponentModel.ISupportInitialize)(this.FlexibleMaterialFormBindingSource)).EndInit(); - this.messageContainer.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxForIcon)).EndInit(); - this.ResumeLayout(false); - } - - private MaterialButton leftButton; - - /// - /// Defines the FlexibleMaterialFormBindingSource - /// - private System.Windows.Forms.BindingSource FlexibleMaterialFormBindingSource; - - /// - /// Defines the panel1 - /// - private System.Windows.Forms.Panel messageContainer; - - /// - /// Defines the pictureBoxForIcon - /// - private System.Windows.Forms.PictureBox pictureBoxForIcon; - - private MaterialButton middleButton; - private MaterialButton rightButton; - - //These separators are used for the "copy to clipboard" standard operation, triggered by Ctrl + C (behavior and clipboard format is like in a standard MessageBox) - /// - /// Defines the STANDARD_MESSAGEBOX_SEPARATOR_LINES - /// - private static readonly String STANDARD_MESSAGEBOX_SEPARATOR_LINES = "---------------------------\n"; - - /// - /// Defines the STANDARD_MESSAGEBOX_SEPARATOR_SPACES - /// - private static readonly String STANDARD_MESSAGEBOX_SEPARATOR_SPACES = " "; - - //These are the possible buttons (in a standard MessageBox) - private enum ButtonID - { /// - /// Defines the OK - /// + + /// + /// Defines the font for all FlexibleMessageBox instances. + /// + /// Default is: SystemFonts.MessageBoxFont + /// + public static Font FONT; + + /// + /// Defines the maximum width for all FlexibleMessageBox instances in percent of the working area. + /// + /// Allowed values are 0.2 - 1.0 where: + /// 0.2 means: The FlexibleMessageBox can be at most half as wide as the working area. + /// 1.0 means: The FlexibleMessageBox can be as wide as the working area. + /// + /// Default is: 70% of the working area width. + /// + public static double MAX_WIDTH_FACTOR = 0.7; + + /// + /// Defines the maximum height for all FlexibleMessageBox instances in percent of the working area. + /// + /// Allowed values are 0.2 - 1.0 where: + /// 0.2 means: The FlexibleMessageBox can be at most half as high as the working area. + /// 1.0 means: The FlexibleMessageBox can be as high as the working area. + /// + /// Default is: 90% of the working area height. + /// + public static double MAX_HEIGHT_FACTOR = 0.9; + + private MaterialMultiLineTextBox richTextBoxMessage; + + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.leftButton = new MaterialSkin.Controls.MaterialButton(); + this.FlexibleMaterialFormBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.messageContainer = new System.Windows.Forms.Panel(); + this.pictureBoxForIcon = new System.Windows.Forms.PictureBox(); + this.richTextBoxMessage = new MaterialSkin.Controls.MaterialMultiLineTextBox(); + this.middleButton = new MaterialSkin.Controls.MaterialButton(); + this.rightButton = new MaterialSkin.Controls.MaterialButton(); + ((System.ComponentModel.ISupportInitialize)(this.FlexibleMaterialFormBindingSource)).BeginInit(); + this.messageContainer.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxForIcon)).BeginInit(); + this.SuspendLayout(); + // + // leftButton + // + this.leftButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.leftButton.AutoSize = false; + this.leftButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.leftButton.Depth = 0; + this.leftButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.leftButton.DrawShadows = true; + this.leftButton.HighEmphasis = false; + this.leftButton.Icon = null; + this.leftButton.Location = new System.Drawing.Point(44, 163); + this.leftButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.leftButton.MinimumSize = new System.Drawing.Size(0, 24); + this.leftButton.MouseState = MaterialSkin.MouseState.HOVER; + this.leftButton.Name = "leftButton"; + this.leftButton.Size = new System.Drawing.Size(108, 36); + this.leftButton.TabIndex = 2; + this.leftButton.Text = "OK"; + this.leftButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; + this.leftButton.UseAccentColor = false; + this.leftButton.UseVisualStyleBackColor = true; + this.leftButton.Visible = false; + // + // messageContainer + // + this.messageContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.messageContainer.BackColor = System.Drawing.Color.White; + this.messageContainer.Controls.Add(this.pictureBoxForIcon); + this.messageContainer.Controls.Add(this.richTextBoxMessage); + this.messageContainer.Location = new System.Drawing.Point(0, 65); + this.messageContainer.Name = "messageContainer"; + this.messageContainer.Size = new System.Drawing.Size(388, 81); + this.messageContainer.TabIndex = 1; + // + // pictureBoxForIcon + // + this.pictureBoxForIcon.BackColor = System.Drawing.Color.Transparent; + this.pictureBoxForIcon.Location = new System.Drawing.Point(15, 19); + this.pictureBoxForIcon.Name = "pictureBoxForIcon"; + this.pictureBoxForIcon.Size = new System.Drawing.Size(32, 32); + this.pictureBoxForIcon.TabIndex = 8; + this.pictureBoxForIcon.TabStop = false; + // + // richTextBoxMessage + // + this.richTextBoxMessage.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.richTextBoxMessage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.richTextBoxMessage.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.richTextBoxMessage.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlexibleMaterialFormBindingSource, "MessageText", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.richTextBoxMessage.Depth = 0; + this.richTextBoxMessage.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.richTextBoxMessage.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.richTextBoxMessage.Hint = ""; + this.richTextBoxMessage.Location = new System.Drawing.Point(47, 2); + this.richTextBoxMessage.Margin = new System.Windows.Forms.Padding(0); + this.richTextBoxMessage.MouseState = MaterialSkin.MouseState.HOVER; + this.richTextBoxMessage.Name = "richTextBoxMessage"; + this.richTextBoxMessage.ReadOnly = true; + this.richTextBoxMessage.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; + this.richTextBoxMessage.Size = new System.Drawing.Size(338, 78); + this.richTextBoxMessage.TabIndex = 0; + this.richTextBoxMessage.TabStop = false; + this.richTextBoxMessage.Text = ""; + this.richTextBoxMessage.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.richTextBoxMessage_LinkClicked); + // + // middleButton + // + this.middleButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.middleButton.AutoSize = false; + this.middleButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.middleButton.Depth = 0; + this.middleButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.middleButton.DrawShadows = true; + this.middleButton.HighEmphasis = true; + this.middleButton.Icon = null; + this.middleButton.Location = new System.Drawing.Point(160, 163); + this.middleButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.middleButton.MinimumSize = new System.Drawing.Size(0, 24); + this.middleButton.MouseState = MaterialSkin.MouseState.HOVER; + this.middleButton.Name = "middleButton"; + this.middleButton.Size = new System.Drawing.Size(102, 36); + this.middleButton.TabIndex = 3; + this.middleButton.Text = "OK"; + this.middleButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; + this.middleButton.UseAccentColor = false; + this.middleButton.UseVisualStyleBackColor = true; + this.middleButton.Visible = false; + // + // rightButton + // + this.rightButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.rightButton.AutoSize = false; + this.rightButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.rightButton.Depth = 0; + this.rightButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.rightButton.DrawShadows = true; + this.rightButton.HighEmphasis = true; + this.rightButton.Icon = null; + this.rightButton.Location = new System.Drawing.Point(270, 163); + this.rightButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.rightButton.MinimumSize = new System.Drawing.Size(0, 24); + this.rightButton.MouseState = MaterialSkin.MouseState.HOVER; + this.rightButton.Name = "rightButton"; + this.rightButton.Size = new System.Drawing.Size(106, 36); + this.rightButton.TabIndex = 0; + this.rightButton.Text = "OK"; + this.rightButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.rightButton.UseAccentColor = false; + this.rightButton.UseVisualStyleBackColor = true; + this.rightButton.Visible = false; + // + // FlexibleMaterialForm + // + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(388, 208); + this.Controls.Add(this.rightButton); + this.Controls.Add(this.middleButton); + this.Controls.Add(this.messageContainer); + this.Controls.Add(this.leftButton); + this.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlexibleMaterialFormBindingSource, "CaptionText", true)); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(276, 140); + this.Name = "FlexibleMaterialForm"; + this.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.RightToLeftLayout = true; + this.ShowIcon = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = ""; + this.Load += new System.EventHandler(this.FlexibleMaterialForm_Load); + this.Shown += new System.EventHandler(this.FlexibleMaterialForm_Shown); + ((System.ComponentModel.ISupportInitialize)(this.FlexibleMaterialFormBindingSource)).EndInit(); + this.messageContainer.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxForIcon)).EndInit(); + this.ResumeLayout(false); + + } + + private MaterialButton leftButton; + + /// + /// Defines the FlexibleMaterialFormBindingSource + /// + private System.Windows.Forms.BindingSource FlexibleMaterialFormBindingSource; + + /// + /// Defines the panel1 + /// + private System.Windows.Forms.Panel messageContainer; + + /// + /// Defines the pictureBoxForIcon + /// + private System.Windows.Forms.PictureBox pictureBoxForIcon; + + private MaterialButton middleButton; + private MaterialButton rightButton; + + //These separators are used for the "copy to clipboard" standard operation, triggered by Ctrl + C (behavior and clipboard format is like in a standard MessageBox) + /// + /// Defines the STANDARD_MESSAGEBOX_SEPARATOR_LINES + /// + private static readonly String STANDARD_MESSAGEBOX_SEPARATOR_LINES = "---------------------------\n"; + + /// + /// Defines the STANDARD_MESSAGEBOX_SEPARATOR_SPACES + /// + private static readonly String STANDARD_MESSAGEBOX_SEPARATOR_SPACES = " "; + + //These are the possible buttons (in a standard MessageBox) + private enum ButtonID + { /// + /// Defines the OK + /// OK = 0, - - /// - /// Defines the CANCEL - /// + + /// + /// Defines the CANCEL + /// CANCEL, - - /// - /// Defines the YES - /// + + /// + /// Defines the YES + /// YES, - - /// - /// Defines the NO - /// + + /// + /// Defines the NO + /// NO, - - /// - /// Defines the ABORT - /// + + /// + /// Defines the ABORT + /// ABORT, - - /// - /// Defines the RETRY - /// + + /// + /// Defines the RETRY + /// RETRY, - - /// - /// Defines the IGNORE - /// - IGNORE - }; - - //These are the buttons texts for different languages. - //If you want to add a new language, add it here and in the GetButtonText-Function - private enum TwoLetterISOLanguageID - { /// - /// Defines the en - /// + + /// + /// Defines the IGNORE + /// + IGNORE + }; + + //These are the buttons texts for different languages. + //If you want to add a new language, add it here and in the GetButtonText-Function + private enum TwoLetterISOLanguageID + { /// + /// Defines the en + /// en, - - /// - /// Defines the de - /// + + /// + /// Defines the de + /// de, - - /// - /// Defines the es - /// + + /// + /// Defines the es + /// es, - - /// - /// Defines the it - /// - it - }; - - /// - /// Defines the BUTTON_TEXTS_ENGLISH_EN - /// - private static readonly String[] BUTTON_TEXTS_ENGLISH_EN = { "OK", "Cancel", "&Yes", "&No", "&Abort", "&Retry", "&Ignore" };//Note: This is also the fallback language - - /// - /// Defines the BUTTON_TEXTS_GERMAN_DE - /// - private static readonly String[] BUTTON_TEXTS_GERMAN_DE = { "OK", "Abbrechen", "&Ja", "&Nein", "&Abbrechen", "&Wiederholen", "&Ignorieren" }; - - /// - /// Defines the BUTTON_TEXTS_SPANISH_ES - /// - private static readonly String[] BUTTON_TEXTS_SPANISH_ES = { "Aceptar", "Cancelar", "&Sí", "&No", "&Abortar", "&Reintentar", "&Ignorar" }; - - /// - /// Defines the BUTTON_TEXTS_ITALIAN_IT - /// - private static readonly String[] BUTTON_TEXTS_ITALIAN_IT = { "OK", "Annulla", "&Sì", "&No", "&Interrompi", "&Riprova", "&Ignora" }; - - /// - /// Defines the defaultButton - /// - private MessageBoxDefaultButton defaultButton; - - /// - /// Defines the visibleButtonsCount - /// - private int visibleButtonsCount; - - /// - /// Defines the languageID - /// - private TwoLetterISOLanguageID languageID = TwoLetterISOLanguageID.en; - - /// - /// Prevents a default instance of the class from being created. - /// - private FlexibleMaterialForm() - { - InitializeComponent(); - - //Try to evaluate the language. If this fails, the fallback language English will be used - Enum.TryParse(CultureInfo.CurrentUICulture.TwoLetterISOLanguageName, out this.languageID); - - this.KeyPreview = true; - this.KeyUp += FlexibleMaterialForm_KeyUp; - - materialSkinManager = MaterialSkinManager.Instance; - materialSkinManager.AddFormToManage(this); - FONT = materialSkinManager.getFontByType(MaterialSkinManager.fontType.Body1); - } - - /// - /// Gets the string rows. - /// - /// The message. - /// The string rows as 1-dimensional array - private static string[] GetStringRows(string message) - { - if (string.IsNullOrEmpty(message)) - { - return null; - } - - var messageRows = message.Split(new char[] { '\n' }, StringSplitOptions.None); - return messageRows; - } - - /// - /// Gets the button text for the CurrentUICulture language. - /// Note: The fallback language is English - /// - /// The ID of the button. - /// The button text - private string GetButtonText(ButtonID buttonID) - { - var buttonTextArrayIndex = Convert.ToInt32(buttonID); - - switch (this.languageID) - { - case TwoLetterISOLanguageID.de: return BUTTON_TEXTS_GERMAN_DE[buttonTextArrayIndex]; - case TwoLetterISOLanguageID.es: return BUTTON_TEXTS_SPANISH_ES[buttonTextArrayIndex]; - case TwoLetterISOLanguageID.it: return BUTTON_TEXTS_ITALIAN_IT[buttonTextArrayIndex]; - - default: return BUTTON_TEXTS_ENGLISH_EN[buttonTextArrayIndex]; - } - } - - /// - /// Ensure the given working area factor in the range of 0.2 - 1.0 where: - /// - /// 0.2 means: 20 percent of the working area height or width. - /// 1.0 means: 100 percent of the working area height or width. - /// - /// The given working area factor. - /// The corrected given working area factor. - private static double GetCorrectedWorkingAreaFactor(double workingAreaFactor) - { - const double MIN_FACTOR = 0.2; - const double MAX_FACTOR = 1.0; - - if (workingAreaFactor < MIN_FACTOR) - { - return MIN_FACTOR; - } - - if (workingAreaFactor > MAX_FACTOR) - { - return MAX_FACTOR; - } - - return workingAreaFactor; - } - - /// - /// Set the dialogs start position when given. - /// Otherwise center the dialog on the current screen. - /// - /// The FlexibleMessageBox dialog. - /// The owner. - private static void SetDialogStartPosition(FlexibleMaterialForm FlexibleMaterialForm, IWin32Window owner) - { - //If no owner given: Center on current screen - if (owner == null) - { - var screen = Screen.FromPoint(Cursor.Position); - FlexibleMaterialForm.StartPosition = FormStartPosition.Manual; - FlexibleMaterialForm.Left = screen.Bounds.Left + screen.Bounds.Width / 2 - FlexibleMaterialForm.Width / 2; - FlexibleMaterialForm.Top = screen.Bounds.Top + screen.Bounds.Height / 2 - FlexibleMaterialForm.Height / 2; - } - } - - /// - /// Calculate the dialogs start size (Try to auto-size width to show longest text row). - /// Also set the maximum dialog size. - /// - /// The FlexibleMessageBox dialog. - /// The text (the longest text row is used to calculate the dialog width). - /// The caption - private static void SetDialogSizes(FlexibleMaterialForm FlexibleMaterialForm, string text, string caption) - { - //First set the bounds for the maximum dialog size - FlexibleMaterialForm.MaximumSize = new Size(Convert.ToInt32(SystemInformation.WorkingArea.Width * FlexibleMaterialForm.GetCorrectedWorkingAreaFactor(MAX_WIDTH_FACTOR)), - Convert.ToInt32(SystemInformation.WorkingArea.Height * FlexibleMaterialForm.GetCorrectedWorkingAreaFactor(MAX_HEIGHT_FACTOR))); - - //Get rows. Exit if there are no rows to render... - var stringRows = GetStringRows(text); - if (stringRows == null) - { - return; - } - - //Calculate whole text height - var textHeight = Math.Min(TextRenderer.MeasureText(text, FONT).Height, 600); - - //Calculate width for longest text line - const int SCROLLBAR_WIDTH_OFFSET = 15; - var longestTextRowWidth = stringRows.Max(textForRow => TextRenderer.MeasureText(textForRow, FONT).Width); - var captionWidth = TextRenderer.MeasureText(caption, SystemFonts.CaptionFont).Width; - var textWidth = Math.Max(longestTextRowWidth + SCROLLBAR_WIDTH_OFFSET, captionWidth); - - //Calculate margins - var marginWidth = FlexibleMaterialForm.Width - FlexibleMaterialForm.richTextBoxMessage.Width; - var marginHeight = FlexibleMaterialForm.Height - FlexibleMaterialForm.richTextBoxMessage.Height; - - //Set calculated dialog size (if the calculated values exceed the maximums, they were cut by windows forms automatically) - FlexibleMaterialForm.Size = new Size(textWidth + marginWidth, - textHeight + marginHeight); - } - - /// - /// Set the dialogs icon. - /// When no icon is used: Correct placement and width of rich text box. - /// - /// The FlexibleMessageBox dialog. - /// The MessageBoxIcon. - private static void SetDialogIcon(FlexibleMaterialForm FlexibleMaterialForm, MessageBoxIcon icon) - { - switch (icon) - { - case MessageBoxIcon.Information: - FlexibleMaterialForm.pictureBoxForIcon.Image = SystemIcons.Information.ToBitmap(); - break; - - case MessageBoxIcon.Warning: - FlexibleMaterialForm.pictureBoxForIcon.Image = SystemIcons.Warning.ToBitmap(); - break; - - case MessageBoxIcon.Error: - FlexibleMaterialForm.pictureBoxForIcon.Image = SystemIcons.Error.ToBitmap(); - break; - - case MessageBoxIcon.Question: - FlexibleMaterialForm.pictureBoxForIcon.Image = SystemIcons.Question.ToBitmap(); - break; - - default: - //When no icon is used: Correct placement and width of rich text box. - FlexibleMaterialForm.pictureBoxForIcon.Visible = false; - FlexibleMaterialForm.richTextBoxMessage.Left -= FlexibleMaterialForm.pictureBoxForIcon.Width; - FlexibleMaterialForm.richTextBoxMessage.Width += FlexibleMaterialForm.pictureBoxForIcon.Width; - break; - } - } - - /// - /// Set dialog buttons visibilities and texts. - /// Also set a default button. - /// - /// The FlexibleMessageBox dialog. - /// The buttons. - /// The default button. - private static void SetDialogButtons(FlexibleMaterialForm FlexibleMaterialForm, MessageBoxButtons buttons, MessageBoxDefaultButton defaultButton) - { - //Set the buttons visibilities and texts - switch (buttons) - { - case MessageBoxButtons.AbortRetryIgnore: - FlexibleMaterialForm.visibleButtonsCount = 3; - - FlexibleMaterialForm.leftButton.Visible = true; - FlexibleMaterialForm.leftButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.ABORT); - FlexibleMaterialForm.leftButton.DialogResult = DialogResult.Abort; - - FlexibleMaterialForm.middleButton.Visible = true; - FlexibleMaterialForm.middleButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.RETRY); - FlexibleMaterialForm.middleButton.DialogResult = DialogResult.Retry; - - FlexibleMaterialForm.rightButton.Visible = true; - FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.IGNORE); - FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Ignore; - - FlexibleMaterialForm.ControlBox = false; - break; - - case MessageBoxButtons.OKCancel: - FlexibleMaterialForm.visibleButtonsCount = 2; - - FlexibleMaterialForm.middleButton.Visible = true; - FlexibleMaterialForm.middleButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.CANCEL); - FlexibleMaterialForm.middleButton.DialogResult = DialogResult.Cancel; - - FlexibleMaterialForm.rightButton.Visible = true; - FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.OK); - FlexibleMaterialForm.rightButton.DialogResult = DialogResult.OK; - - FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.middleButton; - break; - - case MessageBoxButtons.RetryCancel: - FlexibleMaterialForm.visibleButtonsCount = 2; - - FlexibleMaterialForm.middleButton.Visible = true; - FlexibleMaterialForm.middleButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.CANCEL); - FlexibleMaterialForm.middleButton.DialogResult = DialogResult.Cancel; - - FlexibleMaterialForm.rightButton.Visible = true; - FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.RETRY); - FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Retry; - - FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.middleButton; - break; - - case MessageBoxButtons.YesNo: - FlexibleMaterialForm.visibleButtonsCount = 2; - - FlexibleMaterialForm.middleButton.Visible = true; - FlexibleMaterialForm.middleButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.NO); - FlexibleMaterialForm.middleButton.DialogResult = DialogResult.No; - - FlexibleMaterialForm.rightButton.Visible = true; - FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.YES); - FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Yes; - - FlexibleMaterialForm.ControlBox = false; - break; - - case MessageBoxButtons.YesNoCancel: - FlexibleMaterialForm.visibleButtonsCount = 3; - - FlexibleMaterialForm.rightButton.Visible = true; - FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.YES); - FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Yes; - - FlexibleMaterialForm.middleButton.Visible = true; - FlexibleMaterialForm.middleButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.NO); - FlexibleMaterialForm.middleButton.DialogResult = DialogResult.No; - - FlexibleMaterialForm.leftButton.Visible = true; - FlexibleMaterialForm.leftButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.CANCEL); - FlexibleMaterialForm.leftButton.DialogResult = DialogResult.Cancel; - - FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.leftButton; - break; - - case MessageBoxButtons.OK: - default: - FlexibleMaterialForm.visibleButtonsCount = 1; - FlexibleMaterialForm.rightButton.Visible = true; - FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.OK); - FlexibleMaterialForm.rightButton.DialogResult = DialogResult.OK; - - FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.rightButton; - break; - } - - //Set default button (used in FlexibleMaterialForm_Shown) - FlexibleMaterialForm.defaultButton = defaultButton; - } - - /// - /// Handles the Shown event of the FlexibleMaterialForm control. - /// - /// The source of the event. - /// The instance containing the event data. - private void FlexibleMaterialForm_Shown(object sender, EventArgs e) - { - int buttonIndexToFocus = 1; - Button buttonToFocus; - - //Set the default button... - switch (this.defaultButton) - { - case MessageBoxDefaultButton.Button1: - default: - buttonIndexToFocus = 1; - break; - - case MessageBoxDefaultButton.Button2: - buttonIndexToFocus = 2; - break; - - case MessageBoxDefaultButton.Button3: - buttonIndexToFocus = 3; - break; - } - - if (buttonIndexToFocus > this.visibleButtonsCount) - { - buttonIndexToFocus = this.visibleButtonsCount; - } - - if (buttonIndexToFocus == 3) - { - buttonToFocus = this.rightButton; - } - else if (buttonIndexToFocus == 2) - { - buttonToFocus = this.middleButton; - } - else - { - buttonToFocus = this.leftButton; - } - - buttonToFocus.Focus(); - } - - /// - /// Handles the LinkClicked event of the richTextBoxMessage control. - /// - /// The source of the event. - /// The instance containing the event data. - private void richTextBoxMessage_LinkClicked(object sender, LinkClickedEventArgs e) - { - try - { - Cursor.Current = Cursors.WaitCursor; - Process.Start(e.LinkText); - } - catch (Exception) - { - //Let the caller of FlexibleMaterialForm decide what to do with this exception... - throw; - } - finally - { - Cursor.Current = Cursors.Default; - } - } - - /// - /// Handles the KeyUp event of the richTextBoxMessage control. - /// - /// The source of the event. - /// The instance containing the event data. - internal void FlexibleMaterialForm_KeyUp(object sender, KeyEventArgs e) - { - //Handle standard key strikes for clipboard copy: "Ctrl + C" and "Ctrl + Insert" - if (e.Control && (e.KeyCode == Keys.C || e.KeyCode == Keys.Insert)) - { - var buttonsTextLine = (this.leftButton.Visible ? this.leftButton.Text + STANDARD_MESSAGEBOX_SEPARATOR_SPACES : string.Empty) - + (this.middleButton.Visible ? this.middleButton.Text + STANDARD_MESSAGEBOX_SEPARATOR_SPACES : string.Empty) - + (this.rightButton.Visible ? this.rightButton.Text + STANDARD_MESSAGEBOX_SEPARATOR_SPACES : string.Empty); - - //Build same clipboard text like the standard .Net MessageBox - var textForClipboard = STANDARD_MESSAGEBOX_SEPARATOR_LINES - + this.Text + Environment.NewLine - + STANDARD_MESSAGEBOX_SEPARATOR_LINES - + this.richTextBoxMessage.Text + Environment.NewLine - + STANDARD_MESSAGEBOX_SEPARATOR_LINES - + buttonsTextLine.Replace("&", string.Empty) + Environment.NewLine - + STANDARD_MESSAGEBOX_SEPARATOR_LINES; - - //Set text in clipboard - Clipboard.SetText(textForClipboard); - } - } - - /// - /// Gets or sets the CaptionText - /// The text that is been used for the heading. - /// - public string CaptionText { get; set; } - - /// - /// Gets or sets the MessageText - /// The text that is been used in the FlexibleMaterialForm. - /// - public string MessageText { get; set; } - - /// - /// Shows the specified message box. - /// - /// The owner. - /// The text. - /// The caption. - /// The buttons. - /// The icon. - /// The default button. - /// The dialog result. - public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) - { - //Create a new instance of the FlexibleMessageBox form - var FlexibleMaterialForm = new FlexibleMaterialForm(); - FlexibleMaterialForm.ShowInTaskbar = false; - - //Bind the caption and the message text - FlexibleMaterialForm.CaptionText = caption; - FlexibleMaterialForm.MessageText = text; - FlexibleMaterialForm.FlexibleMaterialFormBindingSource.DataSource = FlexibleMaterialForm; - - //Set the buttons visibilities and texts. Also set a default button. - SetDialogButtons(FlexibleMaterialForm, buttons, defaultButton); - - //Set the dialogs icon. When no icon is used: Correct placement and width of rich text box. - SetDialogIcon(FlexibleMaterialForm, icon); - - //Set the font for all controls - FlexibleMaterialForm.Font = FONT; - FlexibleMaterialForm.richTextBoxMessage.Font = FONT; - - //Calculate the dialogs start size (Try to auto-size width to show longest text row). Also set the maximum dialog size. - SetDialogSizes(FlexibleMaterialForm, text, caption); - - //Set the dialogs start position when given. Otherwise center the dialog on the current screen. - SetDialogStartPosition(FlexibleMaterialForm, owner); - - //Show the dialog - return FlexibleMaterialForm.ShowDialog(owner); - } - - private void FlexibleMaterialForm_Load(object sender, EventArgs e) - { - } - } + + /// + /// Defines the it + /// + it, + /// + /// Define the fa + /// + fa + }; + + /// + /// Defines the BUTTON_TEXTS_ENGLISH_EN + /// + private static readonly String[] BUTTON_TEXTS_ENGLISH_EN = { "OK", "Cancel", "&Yes", "&No", "&Abort", "&Retry", "&Ignore" };//Note: This is also the fallback language + + /// + /// Defines the BUTTON_TEXTS_GERMAN_DE + /// + private static readonly String[] BUTTON_TEXTS_GERMAN_DE = { "OK", "Abbrechen", "&Ja", "&Nein", "&Abbrechen", "&Wiederholen", "&Ignorieren" }; + + /// + /// Defines the BUTTON_TEXTS_SPANISH_ES + /// + private static readonly String[] BUTTON_TEXTS_SPANISH_ES = { "Aceptar", "Cancelar", "&Sí", "&No", "&Abortar", "&Reintentar", "&Ignorar" }; + + /// + /// Defines the BUTTON_TEXTS_ITALIAN_IT + /// + private static readonly String[] BUTTON_TEXTS_ITALIAN_IT = { "OK", "Annulla", "&Sì", "&No", "&Interrompi", "&Riprova", "&Ignora" }; + + /// + /// Defines the BUTTON_TEXTS_ITALIAN_FA + /// + private static readonly String[] BUTTON_TEXTS_PERSIAN_FA = { "حله", "انصراف", "&بله", "&خیر", "&بیخیال", "&تلاش مجدد", "&ولش‌کن" }; + /// + /// Defines the defaultButton + /// + private MessageBoxDefaultButton defaultButton; + + /// + /// Defines the visibleButtonsCount + /// + private int visibleButtonsCount; + + /// + /// Defines the languageID + /// + private TwoLetterISOLanguageID languageID = TwoLetterISOLanguageID.fa; + + /// + /// Prevents a default instance of the class from being created. + /// + private FlexibleMaterialForm() + { + InitializeComponent(); + + //Try to evaluate the language. If this fails, the fallback language English will be used + Enum.TryParse(CultureInfo.CurrentUICulture.TwoLetterISOLanguageName, out this.languageID); + + this.KeyPreview = true; + this.KeyUp += FlexibleMaterialForm_KeyUp; + + materialSkinManager = MaterialSkinManager.Instance; + materialSkinManager.AddFormToManage(this); + FONT = materialSkinManager.getFontByType(MaterialSkinManager.fontType.Body1); + } + + /// + /// Gets the string rows. + /// + /// The message. + /// The string rows as 1-dimensional array + private static string[] GetStringRows(string message) + { + if (string.IsNullOrEmpty(message)) + { + return null; + } + + var messageRows = message.Split(new char[] { '\n' }, StringSplitOptions.None); + return messageRows; + } + + /// + /// Gets the button text for the CurrentUICulture language. + /// Note: The fallback language is English + /// + /// The ID of the button. + /// The button text + private string GetButtonText(ButtonID buttonID) + { + var buttonTextArrayIndex = Convert.ToInt32(buttonID); + + switch (this.languageID) + { + case TwoLetterISOLanguageID.de: return BUTTON_TEXTS_GERMAN_DE[buttonTextArrayIndex]; + case TwoLetterISOLanguageID.es: return BUTTON_TEXTS_SPANISH_ES[buttonTextArrayIndex]; + case TwoLetterISOLanguageID.it: return BUTTON_TEXTS_ITALIAN_IT[buttonTextArrayIndex]; + case TwoLetterISOLanguageID.fa: return BUTTON_TEXTS_PERSIAN_FA[buttonTextArrayIndex]; + default: return BUTTON_TEXTS_ENGLISH_EN[buttonTextArrayIndex]; + } + } + + /// + /// Ensure the given working area factor in the range of 0.2 - 1.0 where: + /// + /// 0.2 means: 20 percent of the working area height or width. + /// 1.0 means: 100 percent of the working area height or width. + /// + /// The given working area factor. + /// The corrected given working area factor. + private static double GetCorrectedWorkingAreaFactor(double workingAreaFactor) + { + const double MIN_FACTOR = 0.2; + const double MAX_FACTOR = 1.0; + + if (workingAreaFactor < MIN_FACTOR) + { + return MIN_FACTOR; + } + + if (workingAreaFactor > MAX_FACTOR) + { + return MAX_FACTOR; + } + + return workingAreaFactor; + } + + /// + /// Set the dialogs start position when given. + /// Otherwise center the dialog on the current screen. + /// + /// The FlexibleMessageBox dialog. + /// The owner. + private static void SetDialogStartPosition(FlexibleMaterialForm FlexibleMaterialForm, IWin32Window owner) + { + //If no owner given: Center on current screen + if (owner == null) + { + var screen = Screen.FromPoint(Cursor.Position); + FlexibleMaterialForm.StartPosition = FormStartPosition.Manual; + FlexibleMaterialForm.Left = screen.Bounds.Left + screen.Bounds.Width / 2 - FlexibleMaterialForm.Width / 2; + FlexibleMaterialForm.Top = screen.Bounds.Top + screen.Bounds.Height / 2 - FlexibleMaterialForm.Height / 2; + } + } + + /// + /// Calculate the dialogs start size (Try to auto-size width to show longest text row). + /// Also set the maximum dialog size. + /// + /// The FlexibleMessageBox dialog. + /// The text (the longest text row is used to calculate the dialog width). + /// The caption + private static void SetDialogSizes(FlexibleMaterialForm FlexibleMaterialForm, string text, string caption) + { + //First set the bounds for the maximum dialog size + FlexibleMaterialForm.MaximumSize = new Size(Convert.ToInt32(SystemInformation.WorkingArea.Width * FlexibleMaterialForm.GetCorrectedWorkingAreaFactor(MAX_WIDTH_FACTOR)), + Convert.ToInt32(SystemInformation.WorkingArea.Height * FlexibleMaterialForm.GetCorrectedWorkingAreaFactor(MAX_HEIGHT_FACTOR))); + + //Get rows. Exit if there are no rows to render... + var stringRows = GetStringRows(text); + if (stringRows == null) + { + return; + } + + //Calculate whole text height + var textHeight = Math.Min(TextRenderer.MeasureText(text, FONT).Height, 600); + + //Calculate width for longest text line + const int SCROLLBAR_WIDTH_OFFSET = 15; + var longestTextRowWidth = stringRows.Max(textForRow => TextRenderer.MeasureText(textForRow, FONT).Width); + var captionWidth = TextRenderer.MeasureText(caption, SystemFonts.CaptionFont).Width; + var textWidth = Math.Max(longestTextRowWidth + SCROLLBAR_WIDTH_OFFSET, captionWidth); + + //Calculate margins + var marginWidth = FlexibleMaterialForm.Width - FlexibleMaterialForm.richTextBoxMessage.Width; + var marginHeight = FlexibleMaterialForm.Height - FlexibleMaterialForm.richTextBoxMessage.Height; + + //Set calculated dialog size (if the calculated values exceed the maximums, they were cut by windows forms automatically) + FlexibleMaterialForm.Size = new Size(textWidth + marginWidth, + textHeight + marginHeight); + } + + /// + /// Set the dialogs icon. + /// When no icon is used: Correct placement and width of rich text box. + /// + /// The FlexibleMessageBox dialog. + /// The MessageBoxIcon. + private static void SetDialogIcon(FlexibleMaterialForm FlexibleMaterialForm, MessageBoxIcon icon) + { + switch (icon) + { + case MessageBoxIcon.Information: + FlexibleMaterialForm.pictureBoxForIcon.Image = SystemIcons.Information.ToBitmap(); + break; + + case MessageBoxIcon.Warning: + FlexibleMaterialForm.pictureBoxForIcon.Image = SystemIcons.Warning.ToBitmap(); + break; + + case MessageBoxIcon.Error: + FlexibleMaterialForm.pictureBoxForIcon.Image = SystemIcons.Error.ToBitmap(); + break; + + case MessageBoxIcon.Question: + FlexibleMaterialForm.pictureBoxForIcon.Image = SystemIcons.Question.ToBitmap(); + break; + + default: + //When no icon is used: Correct placement and width of rich text box. + FlexibleMaterialForm.pictureBoxForIcon.Visible = false; + FlexibleMaterialForm.richTextBoxMessage.Left -= FlexibleMaterialForm.pictureBoxForIcon.Width; + FlexibleMaterialForm.richTextBoxMessage.Width += FlexibleMaterialForm.pictureBoxForIcon.Width; + break; + } + } + + /// + /// Set dialog buttons visibilities and texts. + /// Also set a default button. + /// + /// The FlexibleMessageBox dialog. + /// The buttons. + /// The default button. + private static void SetDialogButtons(FlexibleMaterialForm FlexibleMaterialForm, MessageBoxButtons buttons, MessageBoxDefaultButton defaultButton) + { + //Set the buttons visibilities and texts + switch (buttons) + { + case MessageBoxButtons.AbortRetryIgnore: + FlexibleMaterialForm.visibleButtonsCount = 3; + + FlexibleMaterialForm.leftButton.Visible = true; + FlexibleMaterialForm.leftButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.ABORT); + FlexibleMaterialForm.leftButton.DialogResult = DialogResult.Abort; + + FlexibleMaterialForm.middleButton.Visible = true; + FlexibleMaterialForm.middleButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.RETRY); + FlexibleMaterialForm.middleButton.DialogResult = DialogResult.Retry; + + FlexibleMaterialForm.rightButton.Visible = true; + FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.IGNORE); + FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Ignore; + + FlexibleMaterialForm.ControlBox = false; + break; + + case MessageBoxButtons.OKCancel: + FlexibleMaterialForm.visibleButtonsCount = 2; + + FlexibleMaterialForm.middleButton.Visible = true; + FlexibleMaterialForm.middleButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.CANCEL); + FlexibleMaterialForm.middleButton.DialogResult = DialogResult.Cancel; + + FlexibleMaterialForm.rightButton.Visible = true; + FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.OK); + FlexibleMaterialForm.rightButton.DialogResult = DialogResult.OK; + + FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.middleButton; + break; + + case MessageBoxButtons.RetryCancel: + FlexibleMaterialForm.visibleButtonsCount = 2; + + FlexibleMaterialForm.middleButton.Visible = true; + FlexibleMaterialForm.middleButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.CANCEL); + FlexibleMaterialForm.middleButton.DialogResult = DialogResult.Cancel; + + FlexibleMaterialForm.rightButton.Visible = true; + FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.RETRY); + FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Retry; + + FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.middleButton; + break; + + case MessageBoxButtons.YesNo: + FlexibleMaterialForm.visibleButtonsCount = 2; + + FlexibleMaterialForm.middleButton.Visible = true; + FlexibleMaterialForm.middleButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.NO); + FlexibleMaterialForm.middleButton.DialogResult = DialogResult.No; + + FlexibleMaterialForm.rightButton.Visible = true; + FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.YES); + FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Yes; + + FlexibleMaterialForm.ControlBox = false; + break; + + case MessageBoxButtons.YesNoCancel: + FlexibleMaterialForm.visibleButtonsCount = 3; + + FlexibleMaterialForm.rightButton.Visible = true; + FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.YES); + FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Yes; + + FlexibleMaterialForm.middleButton.Visible = true; + FlexibleMaterialForm.middleButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.NO); + FlexibleMaterialForm.middleButton.DialogResult = DialogResult.No; + + FlexibleMaterialForm.leftButton.Visible = true; + FlexibleMaterialForm.leftButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.CANCEL); + FlexibleMaterialForm.leftButton.DialogResult = DialogResult.Cancel; + + FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.leftButton; + break; + + case MessageBoxButtons.OK: + default: + FlexibleMaterialForm.visibleButtonsCount = 1; + FlexibleMaterialForm.rightButton.Visible = true; + FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.OK); + FlexibleMaterialForm.rightButton.DialogResult = DialogResult.OK; + + FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.rightButton; + break; + } + + //Set default button (used in FlexibleMaterialForm_Shown) + FlexibleMaterialForm.defaultButton = defaultButton; + } + + /// + /// Handles the Shown event of the FlexibleMaterialForm control. + /// + /// The source of the event. + /// The instance containing the event data. + private void FlexibleMaterialForm_Shown(object sender, EventArgs e) + { + int buttonIndexToFocus = 1; + Button buttonToFocus; + + //Set the default button... + switch (this.defaultButton) + { + case MessageBoxDefaultButton.Button1: + default: + buttonIndexToFocus = 1; + break; + + case MessageBoxDefaultButton.Button2: + buttonIndexToFocus = 2; + break; + + case MessageBoxDefaultButton.Button3: + buttonIndexToFocus = 3; + break; + } + + if (buttonIndexToFocus > this.visibleButtonsCount) + { + buttonIndexToFocus = this.visibleButtonsCount; + } + + if (buttonIndexToFocus == 3) + { + buttonToFocus = this.rightButton; + } + else if (buttonIndexToFocus == 2) + { + buttonToFocus = this.middleButton; + } + else + { + buttonToFocus = this.leftButton; + } + + buttonToFocus.Focus(); + } + + /// + /// Handles the LinkClicked event of the richTextBoxMessage control. + /// + /// The source of the event. + /// The instance containing the event data. + private void richTextBoxMessage_LinkClicked(object sender, LinkClickedEventArgs e) + { + try + { + Cursor.Current = Cursors.WaitCursor; + Process.Start(e.LinkText); + } + catch (Exception) + { + //Let the caller of FlexibleMaterialForm decide what to do with this exception... + throw; + } + finally + { + Cursor.Current = Cursors.Default; + } + } + + /// + /// Handles the KeyUp event of the richTextBoxMessage control. + /// + /// The source of the event. + /// The instance containing the event data. + internal void FlexibleMaterialForm_KeyUp(object sender, KeyEventArgs e) + { + //Handle standard key strikes for clipboard copy: "Ctrl + C" and "Ctrl + Insert" + if (e.Control && (e.KeyCode == Keys.C || e.KeyCode == Keys.Insert)) + { + var buttonsTextLine = (this.leftButton.Visible ? this.leftButton.Text + STANDARD_MESSAGEBOX_SEPARATOR_SPACES : string.Empty) + + (this.middleButton.Visible ? this.middleButton.Text + STANDARD_MESSAGEBOX_SEPARATOR_SPACES : string.Empty) + + (this.rightButton.Visible ? this.rightButton.Text + STANDARD_MESSAGEBOX_SEPARATOR_SPACES : string.Empty); + + //Build same clipboard text like the standard .Net MessageBox + var textForClipboard = STANDARD_MESSAGEBOX_SEPARATOR_LINES + + this.Text + Environment.NewLine + + STANDARD_MESSAGEBOX_SEPARATOR_LINES + + this.richTextBoxMessage.Text + Environment.NewLine + + STANDARD_MESSAGEBOX_SEPARATOR_LINES + + buttonsTextLine.Replace("&", string.Empty) + Environment.NewLine + + STANDARD_MESSAGEBOX_SEPARATOR_LINES; + + //Set text in clipboard + Clipboard.SetText(textForClipboard); + } + } + + /// + /// Gets or sets the CaptionText + /// The text that is been used for the heading. + /// + public string CaptionText { get; set; } + + /// + /// Gets or sets the MessageText + /// The text that is been used in the FlexibleMaterialForm. + /// + public string MessageText { get; set; } + + /// + /// Shows the specified message box. + /// + /// The owner. + /// The text. + /// The caption. + /// The buttons. + /// The icon. + /// The default button. + /// The dialog result. + public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) + { + //Create a new instance of the FlexibleMessageBox form + var FlexibleMaterialForm = new FlexibleMaterialForm(); + FlexibleMaterialForm.ShowInTaskbar = false; + + //Bind the caption and the message text + FlexibleMaterialForm.CaptionText = caption; + FlexibleMaterialForm.MessageText = text; + FlexibleMaterialForm.FlexibleMaterialFormBindingSource.DataSource = FlexibleMaterialForm; + + //Set the buttons visibilities and texts. Also set a default button. + SetDialogButtons(FlexibleMaterialForm, buttons, defaultButton); + + //Set the dialogs icon. When no icon is used: Correct placement and width of rich text box. + SetDialogIcon(FlexibleMaterialForm, icon); + + //Set the font for all controls + FlexibleMaterialForm.Font = FONT; + FlexibleMaterialForm.richTextBoxMessage.Font = FONT; + + //Calculate the dialogs start size (Try to auto-size width to show longest text row). Also set the maximum dialog size. + SetDialogSizes(FlexibleMaterialForm, text, caption); + + //Set the dialogs start position when given. Otherwise center the dialog on the current screen. + SetDialogStartPosition(FlexibleMaterialForm, owner); + + //Show the dialog + return FlexibleMaterialForm.ShowDialog(owner); + } + + private void FlexibleMaterialForm_Load(object sender, EventArgs e) + { + } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialButton.cs b/MaterialSkin/Controls/MaterialButton.cs index bfda5089..8ed4c334 100644 --- a/MaterialSkin/Controls/MaterialButton.cs +++ b/MaterialSkin/Controls/MaterialButton.cs @@ -1,468 +1,468 @@ -namespace MaterialSkin.Controls -{ - using MaterialSkin.Animations; - using System; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Drawing2D; - using System.Drawing.Text; - using System.Windows.Forms; - - /// - /// Defines the - /// - public class MaterialButton : Button, IMaterialControl - { - /// - /// Gets or sets the Depth - /// - [Browsable(false)] - public int Depth { get; set; } - - /// - /// Gets the SkinManager - /// - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - /// - /// Gets or sets the MouseState - /// - [Browsable(false)] - public MouseState MouseState { get; set; } - - public enum MaterialButtonType - { - Text, - Outlined, - Contained - } - - public bool UseAccentColor - { - get { return useAccentColor; } - set { useAccentColor = value; Invalidate(); } - } - - /// - /// Gets or sets a value indicating whether HighEmphasis - /// - public bool HighEmphasis - { - get { return highEmphasis; } - set { highEmphasis = value; Invalidate(); } - } - - public bool DrawShadows - { - get { return drawShadows; } - set { drawShadows = value; Invalidate(); } - } - - /// - /// Gets or sets a value indicating whether HighEmphasis - /// - public MaterialButtonType Type - { - get { return type; } - set { type = value; Invalidate(); } - } - - protected override void InitLayout() - { - base.InitLayout(); - Invalidate(); - LocationChanged += (sender, e) => { if (DrawShadows) Parent?.Invalidate(); }; - } - - protected override void OnParentChanged(EventArgs e) - { - base.OnParentChanged(e); - if (drawShadows && Parent != null) AddShadowPaintEvent(Parent, drawShadowOnParent); - if (_oldParent != null) RemoveShadowPaintEvent(_oldParent, drawShadowOnParent); - _oldParent = Parent; - } - - private Control _oldParent; - - protected override void OnVisibleChanged(EventArgs e) - { - base.OnVisibleChanged(e); - if (Parent == null) return; - if (Visible) - AddShadowPaintEvent(Parent, drawShadowOnParent); - else - RemoveShadowPaintEvent(Parent, drawShadowOnParent); - } - +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Drawing2D; + using System.Drawing.Text; + using System.Windows.Forms; + + /// + /// Defines the + /// + public class MaterialButton : Button, IMaterialControl + { + /// + /// Gets or sets the Depth + /// + [Browsable(false)] + public int Depth { get; set; } + + /// + /// Gets the SkinManager + /// + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + /// + /// Gets or sets the MouseState + /// + [Browsable(false)] + public MouseState MouseState { get; set; } + + public enum MaterialButtonType + { + Text, + Outlined, + Contained + } + + public bool UseAccentColor + { + get { return useAccentColor; } + set { useAccentColor = value; Invalidate(); } + } + + /// + /// Gets or sets a value indicating whether HighEmphasis + /// + public bool HighEmphasis + { + get { return highEmphasis; } + set { highEmphasis = value; Invalidate(); } + } + + public bool DrawShadows + { + get { return drawShadows; } + set { drawShadows = value; Invalidate(); } + } + + /// + /// Gets or sets a value indicating whether HighEmphasis + /// + public MaterialButtonType Type + { + get { return type; } + set { type = value; Invalidate(); } + } + + protected override void InitLayout() + { + base.InitLayout(); + Invalidate(); + LocationChanged += (sender, e) => { if (DrawShadows) Parent?.Invalidate(); }; + } + + protected override void OnParentChanged(EventArgs e) + { + base.OnParentChanged(e); + if (drawShadows && Parent != null) AddShadowPaintEvent(Parent, drawShadowOnParent); + if (_oldParent != null) RemoveShadowPaintEvent(_oldParent, drawShadowOnParent); + _oldParent = Parent; + } + + private Control _oldParent; + + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + if (Parent == null) return; + if (Visible) + AddShadowPaintEvent(Parent, drawShadowOnParent); + else + RemoveShadowPaintEvent(Parent, drawShadowOnParent); + } + private bool _shadowDrawEventSubscribed = false; - - private void AddShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) - { - if (_shadowDrawEventSubscribed) return; - control.Paint += shadowPaintEvent; - control.Invalidate(); - _shadowDrawEventSubscribed = true; + + private void AddShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) + { + if (_shadowDrawEventSubscribed) return; + control.Paint += shadowPaintEvent; + control.Invalidate(); + _shadowDrawEventSubscribed = true; + } + + private void RemoveShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) + { + if (!_shadowDrawEventSubscribed) return; + control.Paint -= shadowPaintEvent; + control.Invalidate(); + _shadowDrawEventSubscribed = false; + } + + private readonly AnimationManager _hoverAnimationManager = null; + private readonly AnimationManager _animationManager = null; + + /// + /// Defines the _textSize + /// + private SizeF _textSize; + + /// + /// Defines the _icon + /// + private Image _icon; + + private bool drawShadows; + private bool highEmphasis; + private bool useAccentColor; + private MaterialButtonType type; + + /// + /// Gets or sets the Icon + /// + public Image Icon + { + get { return _icon; } + set + { + _icon = value; + if (AutoSize) + { + Refresh(); + } + + Invalidate(); + } + } + + [DefaultValue(true)] + public override bool AutoSize + { + get => base.AutoSize; + set => base.AutoSize = value; + } + + /// + /// Initializes a new instance of the class. + /// + public MaterialButton() + { + DrawShadows = true; + HighEmphasis = true; + UseAccentColor = false; + Type = MaterialButtonType.Contained; + + _animationManager = new AnimationManager(false) + { + Increment = 0.03, + AnimationType = AnimationType.EaseOut + }; + _hoverAnimationManager = new AnimationManager + { + Increment = 0.12, + AnimationType = AnimationType.Linear + }; + + _hoverAnimationManager.OnAnimationProgress += sender => Invalidate(); + _animationManager.OnAnimationProgress += sender => Invalidate(); + + AutoSizeMode = AutoSizeMode.GrowAndShrink; + AutoSize = true; + Margin = new Padding(4, 6, 4, 6); + Padding = new Padding(0); + } + + /// + /// Gets or sets the Text + /// + public override string Text + { + get { return base.Text; } + set + { + base.Text = value; + _textSize = CreateGraphics().MeasureString(value.ToUpper(), SkinManager.getFontByType(MaterialSkinManager.fontType.Button)); + if (AutoSize) + { + Refresh(); + } + + Invalidate(); + } + } + + private void drawShadowOnParent(object sender, PaintEventArgs e) + { + if (Parent == null) + { + RemoveShadowPaintEvent((Control)sender, drawShadowOnParent); + return; + } + + if (!DrawShadows || Type != MaterialButtonType.Contained || Parent == null) return; + + // paint shadow on parent + Graphics gp = e.Graphics; + Rectangle rect = new Rectangle(Location, ClientRectangle.Size); + gp.SmoothingMode = SmoothingMode.AntiAlias; + DrawHelper.DrawSquareShadow(gp, rect); + } + + /// + /// The OnPaint + /// + /// The pevent + protected override void OnPaint(PaintEventArgs pevent) + { + var g = pevent.Graphics; + + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + g.SmoothingMode = SmoothingMode.AntiAlias; + + double hoverAnimProgress = _hoverAnimationManager.GetProgress(); + + g.Clear(Parent.BackColor); + + // button rectand path + RectangleF buttonRectF = new RectangleF(ClientRectangle.Location, ClientRectangle.Size); + buttonRectF.X -= 0.5f; + buttonRectF.Y -= 0.5f; + GraphicsPath buttonPath = DrawHelper.CreateRoundRect(buttonRectF, 4); + + // button shadow (blend with form shadow) + DrawHelper.DrawSquareShadow(g, ClientRectangle); + + if (Type == MaterialButtonType.Contained) + { + // draw button rect + // Disabled + if (!Enabled) + { + using (SolidBrush disabledBrush = new SolidBrush(DrawHelper.BlendColor(Parent.BackColor, SkinManager.BackgroundDisabledColor, SkinManager.BackgroundDisabledColor.A))) + { + g.FillPath(disabledBrush, buttonPath); + } + } + // High emphasis + else if (HighEmphasis) + { + g.FillPath(UseAccentColor ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, buttonPath); + } + // Mormal + else + { + using (SolidBrush normalBrush = new SolidBrush(SkinManager.BackgroundColor)) + { + g.FillPath(normalBrush, buttonPath); + } + } + } + else + { + g.Clear(Parent.BackColor); + } + + //Hover + using (SolidBrush hoverBrush = new SolidBrush(Color.FromArgb( + (int)(hoverAnimProgress * SkinManager.BackgroundFocusColor.A), (UseAccentColor ? (HighEmphasis && Type == MaterialButtonType.Contained ? + SkinManager.ColorScheme.AccentColor.Lighten(0.5f) : // Contained with Emphasis - with accent + SkinManager.ColorScheme.AccentColor) : // Not Contained Or Low Emphasis - with accent + (Type == MaterialButtonType.Contained && HighEmphasis ? SkinManager.ColorScheme.LightPrimaryColor : // Contained with Emphasis without accent + SkinManager.ColorScheme.PrimaryColor)).RemoveAlpha()))) // Normal or Emphasis without accent + { + g.FillPath(hoverBrush, buttonPath); + } + + if (Type == MaterialButtonType.Outlined) + { + using (Pen outlinePen = new Pen(Enabled ? SkinManager.DividersAlternativeColor : SkinManager.DividersColor, 1)) + { + buttonRectF.X += 0.5f; + buttonRectF.Y += 0.5f; + g.DrawPath(outlinePen, buttonPath); + } + } + + //Ripple + if (_animationManager.IsAnimating()) + { + g.Clip = new Region(buttonRectF); + for (var i = 0; i < _animationManager.GetAnimationCount(); i++) + { + var animationValue = _animationManager.GetProgress(i); + var animationSource = _animationManager.GetSource(i); + + using (Brush rippleBrush = new SolidBrush( + Color.FromArgb((int)(100 - (animationValue * 100)), // Alpha animation + (Type == MaterialButtonType.Contained && HighEmphasis ? (UseAccentColor ? + SkinManager.ColorScheme.AccentColor.Lighten(0.5f) : // Emphasis with accent + SkinManager.ColorScheme.LightPrimaryColor) : // Emphasis + (UseAccentColor ? SkinManager.ColorScheme.AccentColor : // Normal with accent + SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : SkinManager.ColorScheme.LightPrimaryColor))))) // Normal + { + var rippleSize = (int)(animationValue * Width * 2); + g.FillEllipse(rippleBrush, new Rectangle(animationSource.X - rippleSize / 2, animationSource.Y - rippleSize / 2, rippleSize, rippleSize)); + } + } + g.ResetClip(); + } + + //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); + } + + //Text + var textRect = ClientRectangle; + if (Icon != null) + { + textRect.Width -= 8 + 24 + 4 + 8; // left padding + icon width + space between Icon and Text + right padding + textRect.X += 8 + 24 + 4; // left padding + icon width + space between Icon and Text + } + + Color textColor = Enabled ? (HighEmphasis ? (Type == MaterialButtonType.Text || Type == MaterialButtonType.Outlined) ? + (UseAccentColor ? SkinManager.ColorScheme.AccentColor : // Outline or Text and accent and emphasis + SkinManager.ColorScheme.PrimaryColor) : // Outline or Text and emphasis + SkinManager.ColorScheme.TextColor : // Contained and Emphasis + SkinManager.TextHighEmphasisColor) : // Cointained and accent + SkinManager.TextDisabledOrHintColor; // Disabled + + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText(Text.ToUpper(), SkinManager.getLogFontByType(MaterialSkinManager.fontType.Button), + textColor, + textRect.Location, + textRect.Size, + NativeTextRenderer.TextAlignFlags.Center | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + /// + /// The GetPreferredSize + /// + /// The + private Size GetPreferredSize() + { + return GetPreferredSize(Size); + } + + /// + /// The GetPreferredSize + /// + /// The proposedSize + /// The + public override Size GetPreferredSize(Size proposedSize) + { + Size s = base.GetPreferredSize(proposedSize); + + // Provides extra space for proper padding for content + var extra = 16; + + if (Icon != null) + { + // 24 is for icon size + // 4 is for the space between icon & text + extra += 24 + 4; + } + + if (AutoSize) + { + s.Width = (int)Math.Ceiling(_textSize.Width); + s.Width += extra; + s.Height = 36; + } + else + { + s.Width += extra; + s.Height = 36; + } + + return s; + } + + /// + /// The OnCreateControl + /// + protected override void OnCreateControl() + { + base.OnCreateControl(); + if (DesignMode) + { + return; + } + + MouseState = MouseState.OUT; + MouseEnter += (sender, args) => + { + MouseState = MouseState.HOVER; + _hoverAnimationManager.StartNewAnimation(AnimationDirection.In); + Invalidate(); + }; + MouseLeave += (sender, args) => + { + MouseState = MouseState.OUT; + _hoverAnimationManager.StartNewAnimation(AnimationDirection.Out); + Invalidate(); + }; + MouseDown += (sender, args) => + { + if (args.Button == MouseButtons.Left) + { + MouseState = MouseState.DOWN; + + _animationManager.StartNewAnimation(AnimationDirection.In, args.Location); + Invalidate(); + } + }; + MouseUp += (sender, args) => + { + MouseState = MouseState.HOVER; + + Invalidate(); + }; + + GotFocus += (sender, args) => + { + _hoverAnimationManager.StartNewAnimation(AnimationDirection.In); + Invalidate(); + }; + LostFocus += (sender, args) => + { + _hoverAnimationManager.StartNewAnimation(AnimationDirection.Out); + Invalidate(); + }; + + KeyDown += (object sender, KeyEventArgs e) => + { + if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Space) + { + _animationManager.StartNewAnimation(AnimationDirection.In, new Point(ClientRectangle.Width >> 1, ClientRectangle.Height >> 1)); + Invalidate(); + } + }; } - - private void RemoveShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) - { - if (!_shadowDrawEventSubscribed) return; - control.Paint -= shadowPaintEvent; - control.Invalidate(); - _shadowDrawEventSubscribed = false; - } - - private readonly AnimationManager _hoverAnimationManager = null; - private readonly AnimationManager _animationManager = null; - - /// - /// Defines the _textSize - /// - private SizeF _textSize; - - /// - /// Defines the _icon - /// - private Image _icon; - - private bool drawShadows; - private bool highEmphasis; - private bool useAccentColor; - private MaterialButtonType type; - - /// - /// Gets or sets the Icon - /// - public Image Icon - { - get { return _icon; } - set - { - _icon = value; - if (AutoSize) - { - Refresh(); - } - - Invalidate(); - } - } - - [DefaultValue(true)] - public override bool AutoSize - { - get => base.AutoSize; - set => base.AutoSize = value; - } - - /// - /// Initializes a new instance of the class. - /// - public MaterialButton() - { - DrawShadows = true; - HighEmphasis = true; - UseAccentColor = false; - Type = MaterialButtonType.Contained; - - _animationManager = new AnimationManager(false) - { - Increment = 0.03, - AnimationType = AnimationType.EaseOut - }; - _hoverAnimationManager = new AnimationManager - { - Increment = 0.12, - AnimationType = AnimationType.Linear - }; - - _hoverAnimationManager.OnAnimationProgress += sender => Invalidate(); - _animationManager.OnAnimationProgress += sender => Invalidate(); - - AutoSizeMode = AutoSizeMode.GrowAndShrink; - AutoSize = true; - Margin = new Padding(4, 6, 4, 6); - Padding = new Padding(0); - } - - /// - /// Gets or sets the Text - /// - public override string Text - { - get { return base.Text; } - set - { - base.Text = value; - _textSize = CreateGraphics().MeasureString(value.ToUpper(), SkinManager.getFontByType(MaterialSkinManager.fontType.Button)); - if (AutoSize) - { - Refresh(); - } - - Invalidate(); - } - } - - private void drawShadowOnParent(object sender, PaintEventArgs e) - { - if (Parent == null) - { - RemoveShadowPaintEvent((Control)sender, drawShadowOnParent); - return; - } - - if (!DrawShadows || Type != MaterialButtonType.Contained || Parent == null) return; - - // paint shadow on parent - Graphics gp = e.Graphics; - Rectangle rect = new Rectangle(Location, ClientRectangle.Size); - gp.SmoothingMode = SmoothingMode.AntiAlias; - DrawHelper.DrawSquareShadow(gp, rect); - } - - /// - /// The OnPaint - /// - /// The pevent - protected override void OnPaint(PaintEventArgs pevent) - { - var g = pevent.Graphics; - - g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; - g.SmoothingMode = SmoothingMode.AntiAlias; - - double hoverAnimProgress = _hoverAnimationManager.GetProgress(); - - g.Clear(Parent.BackColor); - - // button rectand path - RectangleF buttonRectF = new RectangleF(ClientRectangle.Location, ClientRectangle.Size); - buttonRectF.X -= 0.5f; - buttonRectF.Y -= 0.5f; - GraphicsPath buttonPath = DrawHelper.CreateRoundRect(buttonRectF, 4); - - // button shadow (blend with form shadow) - DrawHelper.DrawSquareShadow(g, ClientRectangle); - - if (Type == MaterialButtonType.Contained) - { - // draw button rect - // Disabled - if (!Enabled) - { - using (SolidBrush disabledBrush = new SolidBrush(DrawHelper.BlendColor(Parent.BackColor, SkinManager.BackgroundDisabledColor, SkinManager.BackgroundDisabledColor.A))) - { - g.FillPath(disabledBrush, buttonPath); - } - } - // High emphasis - else if (HighEmphasis) - { - g.FillPath(UseAccentColor ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, buttonPath); - } - // Mormal - else - { - using (SolidBrush normalBrush = new SolidBrush(SkinManager.BackgroundColor)) - { - g.FillPath(normalBrush, buttonPath); - } - } - } - else - { - g.Clear(Parent.BackColor); - } - - //Hover - using (SolidBrush hoverBrush = new SolidBrush(Color.FromArgb( - (int)(hoverAnimProgress * SkinManager.BackgroundFocusColor.A), (UseAccentColor ? (HighEmphasis && Type == MaterialButtonType.Contained ? - SkinManager.ColorScheme.AccentColor.Lighten(0.5f) : // Contained with Emphasis - with accent - SkinManager.ColorScheme.AccentColor) : // Not Contained Or Low Emphasis - with accent - (Type == MaterialButtonType.Contained && HighEmphasis ? SkinManager.ColorScheme.LightPrimaryColor : // Contained with Emphasis without accent - SkinManager.ColorScheme.PrimaryColor)).RemoveAlpha()))) // Normal or Emphasis without accent - { - g.FillPath(hoverBrush, buttonPath); - } - - if (Type == MaterialButtonType.Outlined) - { - using (Pen outlinePen = new Pen(Enabled ? SkinManager.DividersAlternativeColor : SkinManager.DividersColor, 1)) - { - buttonRectF.X += 0.5f; - buttonRectF.Y += 0.5f; - g.DrawPath(outlinePen, buttonPath); - } - } - - //Ripple - if (_animationManager.IsAnimating()) - { - g.Clip = new Region(buttonRectF); - for (var i = 0; i < _animationManager.GetAnimationCount(); i++) - { - var animationValue = _animationManager.GetProgress(i); - var animationSource = _animationManager.GetSource(i); - - using (Brush rippleBrush = new SolidBrush( - Color.FromArgb((int)(100 - (animationValue * 100)), // Alpha animation - (Type == MaterialButtonType.Contained && HighEmphasis ? (UseAccentColor ? - SkinManager.ColorScheme.AccentColor.Lighten(0.5f) : // Emphasis with accent - SkinManager.ColorScheme.LightPrimaryColor) : // Emphasis - (UseAccentColor ? SkinManager.ColorScheme.AccentColor : // Normal with accent - SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : SkinManager.ColorScheme.LightPrimaryColor))))) // Normal - { - var rippleSize = (int)(animationValue * Width * 2); - g.FillEllipse(rippleBrush, new Rectangle(animationSource.X - rippleSize / 2, animationSource.Y - rippleSize / 2, rippleSize, rippleSize)); - } - } - g.ResetClip(); - } - - //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); - } - - //Text - var textRect = ClientRectangle; - if (Icon != null) - { - textRect.Width -= 8 + 24 + 4 + 8; // left padding + icon width + space between Icon and Text + right padding - textRect.X += 8 + 24 + 4; // left padding + icon width + space between Icon and Text - } - - Color textColor = Enabled ? (HighEmphasis ? (Type == MaterialButtonType.Text || Type == MaterialButtonType.Outlined) ? - (UseAccentColor ? SkinManager.ColorScheme.AccentColor : // Outline or Text and accent and emphasis - SkinManager.ColorScheme.PrimaryColor) : // Outline or Text and emphasis - SkinManager.ColorScheme.TextColor : // Contained and Emphasis - SkinManager.TextHighEmphasisColor) : // Cointained and accent - SkinManager.TextDisabledOrHintColor; // Disabled - - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - NativeText.DrawTransparentText(Text.ToUpper(), SkinManager.getLogFontByType(MaterialSkinManager.fontType.Button), - textColor, - textRect.Location, - textRect.Size, - NativeTextRenderer.TextAlignFlags.Center | NativeTextRenderer.TextAlignFlags.Middle); - } - } - - /// - /// The GetPreferredSize - /// - /// The - private Size GetPreferredSize() - { - return GetPreferredSize(Size); - } - - /// - /// The GetPreferredSize - /// - /// The proposedSize - /// The - public override Size GetPreferredSize(Size proposedSize) - { - Size s = base.GetPreferredSize(proposedSize); - - // Provides extra space for proper padding for content - var extra = 16; - - if (Icon != null) - { - // 24 is for icon size - // 4 is for the space between icon & text - extra += 24 + 4; - } - - if (AutoSize) - { - s.Width = (int)Math.Ceiling(_textSize.Width); - s.Width += extra; - s.Height = 36; - } - else - { - s.Width += extra; - s.Height = 36; - } - - return s; - } - - /// - /// The OnCreateControl - /// - protected override void OnCreateControl() - { - base.OnCreateControl(); - if (DesignMode) - { - return; - } - - MouseState = MouseState.OUT; - MouseEnter += (sender, args) => - { - MouseState = MouseState.HOVER; - _hoverAnimationManager.StartNewAnimation(AnimationDirection.In); - Invalidate(); - }; - MouseLeave += (sender, args) => - { - MouseState = MouseState.OUT; - _hoverAnimationManager.StartNewAnimation(AnimationDirection.Out); - Invalidate(); - }; - MouseDown += (sender, args) => - { - if (args.Button == MouseButtons.Left) - { - MouseState = MouseState.DOWN; - - _animationManager.StartNewAnimation(AnimationDirection.In, args.Location); - Invalidate(); - } - }; - MouseUp += (sender, args) => - { - MouseState = MouseState.HOVER; - - Invalidate(); - }; - - GotFocus += (sender, args) => - { - _hoverAnimationManager.StartNewAnimation(AnimationDirection.In); - Invalidate(); - }; - LostFocus += (sender, args) => - { - _hoverAnimationManager.StartNewAnimation(AnimationDirection.Out); - Invalidate(); - }; - - KeyDown += (object sender, KeyEventArgs e) => - { - if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Space) - { - _animationManager.StartNewAnimation(AnimationDirection.In, new Point(ClientRectangle.Width >> 1, ClientRectangle.Height >> 1)); - Invalidate(); - } - }; - } - } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialCard.cs b/MaterialSkin/Controls/MaterialCard.cs index f72aea07..19b6334c 100644 --- a/MaterialSkin/Controls/MaterialCard.cs +++ b/MaterialSkin/Controls/MaterialCard.cs @@ -1,118 +1,118 @@ -namespace MaterialSkin.Controls -{ - using System; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Drawing2D; - using System.Windows.Forms; - - public class MaterialCard : Panel, IMaterialControl - { - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - public MaterialCard() - { - SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true); - Paint += new PaintEventHandler(paintControl); - BackColor = SkinManager.BackgroundColor; - ForeColor = SkinManager.TextHighEmphasisColor; - Margin = new Padding(SkinManager.FORM_PADDING); - Padding = new Padding(SkinManager.FORM_PADDING); - } - - private void drawShadowOnParent(object sender, PaintEventArgs e) - { - if (Parent == null) - { - RemoveShadowPaintEvent((Control)sender, drawShadowOnParent); - return; - } - - // paint shadow on parent - Graphics gp = e.Graphics; - Rectangle rect = new Rectangle(Location, ClientRectangle.Size); - gp.SmoothingMode = SmoothingMode.AntiAlias; - DrawHelper.DrawSquareShadow(gp, rect); - } - - protected override void InitLayout() - { - LocationChanged += (sender, e) => { Parent?.Invalidate(); }; - ForeColor = SkinManager.TextHighEmphasisColor; - } - - protected override void OnParentChanged(EventArgs e) - { - base.OnParentChanged(e); - if (Parent != null) AddShadowPaintEvent(Parent, drawShadowOnParent); - if (_oldParent != null) RemoveShadowPaintEvent(_oldParent, drawShadowOnParent); - _oldParent = Parent; - } - - private Control _oldParent; - - protected override void OnVisibleChanged(EventArgs e) - { - base.OnVisibleChanged(e); - if (Parent == null) return; - if (Visible) - AddShadowPaintEvent(Parent, drawShadowOnParent); - else - RemoveShadowPaintEvent(Parent, drawShadowOnParent); - } - +namespace MaterialSkin.Controls +{ + using System; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Drawing2D; + using System.Windows.Forms; + + public class MaterialCard : Panel, IMaterialControl + { + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + public MaterialCard() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true); + Paint += new PaintEventHandler(paintControl); + BackColor = SkinManager.BackgroundColor; + ForeColor = SkinManager.TextHighEmphasisColor; + Margin = new Padding(SkinManager.FORM_PADDING); + Padding = new Padding(SkinManager.FORM_PADDING); + } + + private void drawShadowOnParent(object sender, PaintEventArgs e) + { + if (Parent == null) + { + RemoveShadowPaintEvent((Control)sender, drawShadowOnParent); + return; + } + + // paint shadow on parent + Graphics gp = e.Graphics; + Rectangle rect = new Rectangle(Location, ClientRectangle.Size); + gp.SmoothingMode = SmoothingMode.AntiAlias; + DrawHelper.DrawSquareShadow(gp, rect); + } + + protected override void InitLayout() + { + LocationChanged += (sender, e) => { Parent?.Invalidate(); }; + ForeColor = SkinManager.TextHighEmphasisColor; + } + + protected override void OnParentChanged(EventArgs e) + { + base.OnParentChanged(e); + if (Parent != null) AddShadowPaintEvent(Parent, drawShadowOnParent); + if (_oldParent != null) RemoveShadowPaintEvent(_oldParent, drawShadowOnParent); + _oldParent = Parent; + } + + private Control _oldParent; + + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + if (Parent == null) return; + if (Visible) + AddShadowPaintEvent(Parent, drawShadowOnParent); + else + RemoveShadowPaintEvent(Parent, drawShadowOnParent); + } + private bool _shadowDrawEventSubscribed = false; - - private void AddShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) - { - if (_shadowDrawEventSubscribed) return; - control.Paint += shadowPaintEvent; - control.Invalidate(); - _shadowDrawEventSubscribed = true; + + private void AddShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) + { + if (_shadowDrawEventSubscribed) return; + control.Paint += shadowPaintEvent; + control.Invalidate(); + _shadowDrawEventSubscribed = true; + } + + private void RemoveShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) + { + if (!_shadowDrawEventSubscribed) return; + control.Paint -= shadowPaintEvent; + control.Invalidate(); + _shadowDrawEventSubscribed = false; + } + + protected override void OnBackColorChanged(EventArgs e) + { + base.OnBackColorChanged(e); + BackColor = SkinManager.BackgroundColor; + } + + private void paintControl(Object sender, PaintEventArgs e) + { + Graphics g = e.Graphics; + g.SmoothingMode = SmoothingMode.AntiAlias; + + g.Clear(Parent.BackColor); + + // card rectangle path + RectangleF cardRectF = new RectangleF(ClientRectangle.Location, ClientRectangle.Size); + cardRectF.X -= 0.5f; + cardRectF.Y -= 0.5f; + GraphicsPath cardPath = DrawHelper.CreateRoundRect(cardRectF, 4); + + // button shadow (blend with form shadow) + DrawHelper.DrawSquareShadow(g, ClientRectangle); + + // Draw card + using (SolidBrush normalBrush = new SolidBrush(BackColor)) + { + g.FillPath(normalBrush, cardPath); + } } - - private void RemoveShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) - { - if (!_shadowDrawEventSubscribed) return; - control.Paint -= shadowPaintEvent; - control.Invalidate(); - _shadowDrawEventSubscribed = false; - } - - protected override void OnBackColorChanged(EventArgs e) - { - base.OnBackColorChanged(e); - BackColor = SkinManager.BackgroundColor; - } - - private void paintControl(Object sender, PaintEventArgs e) - { - Graphics g = e.Graphics; - g.SmoothingMode = SmoothingMode.AntiAlias; - - g.Clear(Parent.BackColor); - - // card rectangle path - RectangleF cardRectF = new RectangleF(ClientRectangle.Location, ClientRectangle.Size); - cardRectF.X -= 0.5f; - cardRectF.Y -= 0.5f; - GraphicsPath cardPath = DrawHelper.CreateRoundRect(cardRectF, 4); - - // button shadow (blend with form shadow) - DrawHelper.DrawSquareShadow(g, ClientRectangle); - - // Draw card - using (SolidBrush normalBrush = new SolidBrush(BackColor)) - { - g.FillPath(normalBrush, cardPath); - } - } - } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialComboBox.cs b/MaterialSkin/Controls/MaterialComboBox.cs index 6599fe2a..cbb86864 100644 --- a/MaterialSkin/Controls/MaterialComboBox.cs +++ b/MaterialSkin/Controls/MaterialComboBox.cs @@ -1,342 +1,342 @@ -namespace MaterialSkin.Controls -{ - using MaterialSkin.Animations; - using System; - using System.ComponentModel; - using System.Drawing; - using System.Linq; - using System.Windows.Forms; - - public class MaterialComboBox : ComboBox, IMaterialControl - { - // For some reason, even when overriding the AutoSize property, it doesn't appear on the properties panel, so we have to create a new one. +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.ComponentModel; + using System.Drawing; + using System.Linq; + using System.Windows.Forms; + + public class MaterialComboBox : ComboBox, IMaterialControl + { + // For some reason, even when overriding the AutoSize property, it doesn't appear on the properties panel, so we have to create a new one. [Browsable(true), EditorBrowsable(EditorBrowsableState.Always), Category("Layout")] - private bool _AutoResize; - - public bool AutoResize - { - get { return _AutoResize; } - set - { - _AutoResize = value; - recalculateAutoSize(); - } - } - - //Properties for managing the material design properties - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - + private bool _AutoResize; + + public bool AutoResize + { + get { return _AutoResize; } + set + { + _AutoResize = value; + recalculateAutoSize(); + } + } + + //Properties for managing the material design properties + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + private bool _UseTallSize; - - [Category("Material Skin"), DefaultValue(true), Description("Using a larger size enables the hint to always be visible")] - public bool UseTallSize - { - get { return _UseTallSize; } - set - { - _UseTallSize = value; - setHeightVars(); - Invalidate(); - } - } - - [Category("Material Skin"), DefaultValue(true)] - public bool UseAccent { get; set; } - + + [Category("Material Skin"), DefaultValue(true), Description("Using a larger size enables the hint to always be visible")] + public bool UseTallSize + { + get { return _UseTallSize; } + set + { + _UseTallSize = value; + setHeightVars(); + Invalidate(); + } + } + + [Category("Material Skin"), DefaultValue(true)] + public bool UseAccent { get; set; } + private string _hint = string.Empty; - - [Category("Material Skin"), DefaultValue("")] - public string Hint - { - get { return _hint; } - set - { - _hint = value; - hasHint = !String.IsNullOrEmpty(Hint); - Invalidate(); - } - } - - private const int TEXT_SMALL_SIZE = 18; - private const int TEXT_SMALL_Y = 4; - private const int BOTTOM_PADDING = 3; - private int HEIGHT = 50; - private int LINE_Y; - - private bool hasHint; - - private readonly AnimationManager _animationManager; - - public MaterialComboBox() - { - SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true); - - // Material Properties - Hint = ""; - UseAccent = true; - UseTallSize = true; - MaxDropDownItems = 4; - - Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle2); - BackColor = SkinManager.BackgroundColor; - ForeColor = SkinManager.TextHighEmphasisColor; - DrawMode = DrawMode.OwnerDrawVariable; - DropDownStyle = ComboBoxStyle.DropDownList; - DropDownWidth = Width; - - // Animations - _animationManager = new AnimationManager(true) - { - Increment = 0.08, - AnimationType = AnimationType.EaseInOut - }; - _animationManager.OnAnimationProgress += sender => Invalidate(); - - DropDownClosed += (sender, args) => - { - MouseState = MouseState.OUT; - if (SelectedIndex < 0 && !Focused) _animationManager.StartNewAnimation(AnimationDirection.Out); - }; - LostFocus += (sender, args) => - { - MouseState = MouseState.OUT; - if (SelectedIndex < 0) _animationManager.StartNewAnimation(AnimationDirection.Out); - }; - DropDown += (sender, args) => - { - _animationManager.StartNewAnimation(AnimationDirection.In); - }; - GotFocus += (sender, args) => - { - _animationManager.StartNewAnimation(AnimationDirection.In); - }; - MouseEnter += (sender, args) => - { - MouseState = MouseState.HOVER; - Invalidate(); - }; - MouseLeave += (sender, args) => - { - MouseState = MouseState.OUT; - Invalidate(); - }; - } - - protected override void OnPaint(PaintEventArgs pevent) - { - Graphics g = pevent.Graphics; - - g.Clear(Parent.BackColor); - g.FillRectangle(Enabled ? Focused ? - SkinManager.BackgroundFocusBrush : // Focused - MouseState == MouseState.HOVER ? - SkinManager.BackgroundHoverBrush : // Hover - SkinManager.BackgroundAlternativeBrush : // normal - SkinManager.BackgroundDisabledBrush // Disabled - , ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, LINE_Y); - - // Create and Draw the arrow - System.Drawing.Drawing2D.GraphicsPath pth = new System.Drawing.Drawing2D.GraphicsPath(); - PointF TopRight = new PointF(this.Width - 0.5f - SkinManager.FORM_PADDING, (this.Height >> 1) - 2.5f); - PointF MidBottom = new PointF(this.Width - 4.5f - SkinManager.FORM_PADDING, (this.Height >> 1) + 2.5f); - PointF TopLeft = new PointF(this.Width - 8.5f - SkinManager.FORM_PADDING, (this.Height >> 1) - 2.5f); - pth.AddLine(TopLeft, TopRight); - pth.AddLine(TopRight, MidBottom); - - g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; - g.FillPath((SolidBrush)(DroppedDown || Focused ? UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush : SkinManager.TextHighEmphasisBrush), pth); - g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; - - // HintText - bool userTextPresent = SelectedIndex >= 0; - Rectangle hintRect = new Rectangle(SkinManager.FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); - int hintTextSize = 16; - - // bottom line base - g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, Width, 1); - - if (!_animationManager.IsAnimating()) - { - // No animation - if (hasHint && UseTallSize && (DroppedDown || Focused || SelectedIndex >= 0)) - { - // hint text - hintRect = new Rectangle(SkinManager.FORM_PADDING, TEXT_SMALL_Y, Width, TEXT_SMALL_SIZE); - hintTextSize = 12; - } - - // bottom line - if (DroppedDown || Focused) - { - g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, 0, LINE_Y, Width, 2); - } - } - else - { - // Animate - Focus got/lost - double animationProgress = _animationManager.GetProgress(); - - // hint Animation - if (hasHint && UseTallSize) - { - hintRect = new Rectangle( - SkinManager.FORM_PADDING, - userTextPresent && !_animationManager.IsAnimating() ? (TEXT_SMALL_Y) : ClientRectangle.Y + (int)((TEXT_SMALL_Y - ClientRectangle.Y) * animationProgress), - Width, - userTextPresent && !_animationManager.IsAnimating() ? (TEXT_SMALL_SIZE) : (int)(LINE_Y + (TEXT_SMALL_SIZE - LINE_Y) * animationProgress)); - hintTextSize = userTextPresent && !_animationManager.IsAnimating() ? 12 : (int)(16 + (12 - 16) * animationProgress); - } - - // Line Animation - int LineAnimationWidth = (int)(Width * animationProgress); - int LineAnimationX = (Width / 2) - (LineAnimationWidth / 2); - g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); - } - - // Calc text Rect - Rectangle textRect = new Rectangle( - SkinManager.FORM_PADDING, - hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, - ClientRectangle.Width - SkinManager.FORM_PADDING * 3 - 8, - hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); - - g.Clip = new Region(textRect); - - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - // Draw user text - NativeText.DrawTransparentText( - Text, - SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1), - Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, - textRect.Location, - textRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - } - - g.ResetClip(); - - // Draw hint text - if (hasHint && (UseTallSize || String.IsNullOrEmpty(Text))) - { - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - NativeText.DrawTransparentText( - Hint, - SkinManager.getTextBoxFontBySize(hintTextSize), - Enabled ? DroppedDown || Focused ? UseAccent ? - SkinManager.ColorScheme.AccentColor : // Focus Accent - SkinManager.ColorScheme.PrimaryColor : // Focus Primary - SkinManager.TextMediumEmphasisColor : // not focused - SkinManager.TextDisabledOrHintColor, // Disabled - hintRect.Location, - hintRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - } - } - } - - private void CustomMeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e) - { - e.ItemHeight = HEIGHT - 7; - } - - private void CustomDrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) - { - if (e.Index < 0 || e.Index > Items.Count || !Focused) return; - - Graphics g = e.Graphics; - - // Draw the background of the item. - g.FillRectangle(SkinManager.BackgroundBrush, e.Bounds); - - // Hover - if (e.State.HasFlag(DrawItemState.Focus)) // Focus == hover - { - g.FillRectangle(SkinManager.BackgroundHoverBrush, e.Bounds); - } - - string Text = ""; - if (!string.IsNullOrWhiteSpace(DisplayMember)) - { - Text = Items[e.Index].GetType().GetProperty(DisplayMember).GetValue(Items[e.Index], null).ToString(); - } - else - { - Text = Items[e.Index].ToString(); - } - - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - NativeText.DrawTransparentText( - Text, - SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1), - SkinManager.TextHighEmphasisColor, - new Point(e.Bounds.Location.X + SkinManager.FORM_PADDING, e.Bounds.Location.Y), - new Size(e.Bounds.Size.Width - SkinManager.FORM_PADDING * 2, e.Bounds.Size.Height), - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); ; - } - } - - protected override void OnCreateControl() - { - base.OnCreateControl(); - MouseState = MouseState.OUT; - MeasureItem += CustomMeasureItem; - DrawItem += CustomDrawItem; - DropDownStyle = ComboBoxStyle.DropDownList; - DrawMode = DrawMode.OwnerDrawVariable; - recalculateAutoSize(); - setHeightVars(); - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - recalculateAutoSize(); - setHeightVars(); - } - - private void setHeightVars() - { - HEIGHT = UseTallSize ? 50 : 36; - Size = new Size(Size.Width, HEIGHT); - LINE_Y = HEIGHT - BOTTOM_PADDING; - ItemHeight = HEIGHT - 7; - DropDownHeight = ItemHeight * MaxDropDownItems + 2; - } - - public void recalculateAutoSize() - { - if (!AutoResize) return; - - int w = DropDownWidth; - int padding = SkinManager.FORM_PADDING * 3; - int vertScrollBarWidth = (Items.Count > MaxDropDownItems) ? SystemInformation.VerticalScrollBarWidth : 0; - - Graphics g = CreateGraphics(); - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - var itemsList = this.Items.Cast().Select(item => item.ToString()); - foreach (string s in itemsList) - { - int newWidth = NativeText.MeasureLogString(s, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width + vertScrollBarWidth + padding; - if (w < newWidth) w = newWidth; - } - } - - if (Width != w) - { - DropDownWidth = w; - Width = w; - } - } - } + + [Category("Material Skin"), DefaultValue("")] + public string Hint + { + get { return _hint; } + set + { + _hint = value; + hasHint = !String.IsNullOrEmpty(Hint); + Invalidate(); + } + } + + private const int TEXT_SMALL_SIZE = 18; + private const int TEXT_SMALL_Y = 4; + private const int BOTTOM_PADDING = 3; + private int HEIGHT = 50; + private int LINE_Y; + + private bool hasHint; + + private readonly AnimationManager _animationManager; + + public MaterialComboBox() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true); + + // Material Properties + Hint = ""; + UseAccent = true; + UseTallSize = true; + MaxDropDownItems = 4; + + Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1); + BackColor = SkinManager.BackgroundColor; + ForeColor = SkinManager.TextHighEmphasisColor; + DrawMode = DrawMode.OwnerDrawVariable; + DropDownStyle = ComboBoxStyle.DropDownList; + DropDownWidth = Width; + + // Animations + _animationManager = new AnimationManager(true) + { + Increment = 0.08, + AnimationType = AnimationType.EaseInOut + }; + _animationManager.OnAnimationProgress += sender => Invalidate(); + + DropDownClosed += (sender, args) => + { + MouseState = MouseState.OUT; + if (SelectedIndex < 0 && !Focused) _animationManager.StartNewAnimation(AnimationDirection.Out); + }; + LostFocus += (sender, args) => + { + MouseState = MouseState.OUT; + if (SelectedIndex < 0) _animationManager.StartNewAnimation(AnimationDirection.Out); + }; + DropDown += (sender, args) => + { + _animationManager.StartNewAnimation(AnimationDirection.In); + }; + GotFocus += (sender, args) => + { + _animationManager.StartNewAnimation(AnimationDirection.In); + }; + MouseEnter += (sender, args) => + { + MouseState = MouseState.HOVER; + Invalidate(); + }; + MouseLeave += (sender, args) => + { + MouseState = MouseState.OUT; + Invalidate(); + }; + } + + protected override void OnPaint(PaintEventArgs pevent) + { + Graphics g = pevent.Graphics; + + g.Clear(Parent.BackColor); + g.FillRectangle(Enabled ? Focused ? + SkinManager.BackgroundFocusBrush : // Focused + MouseState == MouseState.HOVER ? + SkinManager.BackgroundHoverBrush : // Hover + SkinManager.BackgroundAlternativeBrush : // normal + SkinManager.BackgroundDisabledBrush // Disabled + , ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, LINE_Y); + + // Create and Draw the arrow + System.Drawing.Drawing2D.GraphicsPath pth = new System.Drawing.Drawing2D.GraphicsPath(); + PointF TopRight = new PointF(this.Width - 0.5f - SkinManager.FORM_PADDING, (this.Height >> 1) - 2.5f); + PointF MidBottom = new PointF(this.Width - 4.5f - SkinManager.FORM_PADDING, (this.Height >> 1) + 2.5f); + PointF TopLeft = new PointF(this.Width - 8.5f - SkinManager.FORM_PADDING, (this.Height >> 1) - 2.5f); + pth.AddLine(TopLeft, TopRight); + pth.AddLine(TopRight, MidBottom); + + g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + g.FillPath((SolidBrush)(DroppedDown || Focused ? UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush : SkinManager.TextHighEmphasisBrush), pth); + g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + + // HintText + bool userTextPresent = SelectedIndex >= 0; + Rectangle hintRect = new Rectangle(SkinManager.FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); + int hintTextSize = 16; + + // bottom line base + g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, Width, 1); + + if (!_animationManager.IsAnimating()) + { + // No animation + if (hasHint && UseTallSize && (DroppedDown || Focused || SelectedIndex >= 0)) + { + // hint text + hintRect = new Rectangle(SkinManager.FORM_PADDING, TEXT_SMALL_Y, Width, TEXT_SMALL_SIZE); + hintTextSize = 12; + } + + // bottom line + if (DroppedDown || Focused) + { + g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, 0, LINE_Y, Width, 2); + } + } + else + { + // Animate - Focus got/lost + double animationProgress = _animationManager.GetProgress(); + + // hint Animation + if (hasHint && UseTallSize) + { + hintRect = new Rectangle( + SkinManager.FORM_PADDING, + userTextPresent && !_animationManager.IsAnimating() ? (TEXT_SMALL_Y) : ClientRectangle.Y + (int)((TEXT_SMALL_Y - ClientRectangle.Y) * animationProgress), + Width, + userTextPresent && !_animationManager.IsAnimating() ? (TEXT_SMALL_SIZE) : (int)(LINE_Y + (TEXT_SMALL_SIZE - LINE_Y) * animationProgress)); + hintTextSize = userTextPresent && !_animationManager.IsAnimating() ? 12 : (int)(16 + (12 - 16) * animationProgress); + } + + // Line Animation + int LineAnimationWidth = (int)(Width * animationProgress); + int LineAnimationX = (Width / 2) - (LineAnimationWidth / 2); + g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); + } + + // Calc text Rect + Rectangle textRect = new Rectangle( + SkinManager.FORM_PADDING, + hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, + ClientRectangle.Width - SkinManager.FORM_PADDING * 3 - 8, + hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); + + g.Clip = new Region(textRect); + + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + // Draw user text + NativeText.DrawTransparentText( + Text, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1), + Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, + textRect.Location, + textRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + + g.ResetClip(); + + // Draw hint text + if (hasHint && (UseTallSize || String.IsNullOrEmpty(Text))) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + Hint, + SkinManager.getTextBoxFontBySize(hintTextSize), + Enabled ? DroppedDown || Focused ? UseAccent ? + SkinManager.ColorScheme.AccentColor : // Focus Accent + SkinManager.ColorScheme.PrimaryColor : // Focus Primary + SkinManager.TextMediumEmphasisColor : // not focused + SkinManager.TextDisabledOrHintColor, // Disabled + hintRect.Location, + hintRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + } + + private void CustomMeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e) + { + e.ItemHeight = HEIGHT - 7; + } + + private void CustomDrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) + { + if (e.Index < 0 || e.Index > Items.Count || !Focused) return; + + Graphics g = e.Graphics; + + // Draw the background of the item. + g.FillRectangle(SkinManager.BackgroundBrush, e.Bounds); + + // Hover + if (e.State.HasFlag(DrawItemState.Focus)) // Focus == hover + { + g.FillRectangle(SkinManager.BackgroundHoverBrush, e.Bounds); + } + + string Text = ""; + if (!string.IsNullOrWhiteSpace(DisplayMember)) + { + Text = Items[e.Index].GetType().GetProperty(DisplayMember).GetValue(Items[e.Index], null).ToString(); + } + else + { + Text = Items[e.Index].ToString(); + } + + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + Text, + SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1), + SkinManager.TextHighEmphasisColor, + new Point(e.Bounds.Location.X + SkinManager.FORM_PADDING, e.Bounds.Location.Y), + new Size(e.Bounds.Size.Width - SkinManager.FORM_PADDING * 2, e.Bounds.Size.Height), + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); ; + } + } + + protected override void OnCreateControl() + { + base.OnCreateControl(); + MouseState = MouseState.OUT; + MeasureItem += CustomMeasureItem; + DrawItem += CustomDrawItem; + DropDownStyle = ComboBoxStyle.DropDownList; + DrawMode = DrawMode.OwnerDrawVariable; + recalculateAutoSize(); + setHeightVars(); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + recalculateAutoSize(); + setHeightVars(); + } + + private void setHeightVars() + { + HEIGHT = UseTallSize ? 50 : 36; + Size = new Size(Size.Width, HEIGHT); + LINE_Y = HEIGHT - BOTTOM_PADDING; + ItemHeight = HEIGHT - 7; + DropDownHeight = ItemHeight * MaxDropDownItems + 2; + } + + public void recalculateAutoSize() + { + if (!AutoResize) return; + + int w = DropDownWidth; + int padding = SkinManager.FORM_PADDING * 3; + int vertScrollBarWidth = (Items.Count > MaxDropDownItems) ? SystemInformation.VerticalScrollBarWidth : 0; + + Graphics g = CreateGraphics(); + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + var itemsList = this.Items.Cast().Select(item => item.ToString()); + foreach (string s in itemsList) + { + int newWidth = NativeText.MeasureLogString(s, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width + vertScrollBarWidth + padding; + if (w < newWidth) w = newWidth; + } + } + + if (Width != w) + { + DropDownWidth = w; + Width = w; + } + } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialDrawer.cs b/MaterialSkin/Controls/MaterialDrawer.cs index c4fcd7f2..8e9a98f9 100644 --- a/MaterialSkin/Controls/MaterialDrawer.cs +++ b/MaterialSkin/Controls/MaterialDrawer.cs @@ -1,665 +1,665 @@ -namespace MaterialSkin.Controls -{ - using MaterialSkin.Animations; - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Drawing2D; - using System.Drawing.Imaging; - using System.Drawing.Text; - using System.Windows.Forms; - - public class MaterialDrawer : Control, IMaterialControl - { - // TODO: Invalidate when changing custom properties - - private bool _showIconsWhenHidden; - - [Category("Drawer")] - public bool ShowIconsWhenHidden - { - get - { - return _showIconsWhenHidden; - } - set - { - if (_showIconsWhenHidden != value) - { - _showIconsWhenHidden = value; - UpdateTabRects(); - preProcessIcons(); - showHideAnimation(); - Paint(new PaintEventArgs(CreateGraphics(), ClientRectangle)); - DrawerShowIconsWhenHiddenChanged?.Invoke(this); - } - } - } - - private bool _isOpen; - - [Category("Drawer")] - public bool IsOpen - { - get - { - return _isOpen; - } - set - { - _isOpen = value; - if (value) - Show(); - else - Hide(); - } - } - - [Category("Drawer")] - public bool AutoHide { get; set; } - - [Category("Drawer")] - private bool _useColors; - - public bool UseColors - { - get - { - return _useColors; - } - set - { - _useColors = value; - preProcessIcons(); - Invalidate(); - } - } - - [Category("Drawer")] - private bool _highlightWithAccent; - - public bool HighlightWithAccent - { - get - { - return _highlightWithAccent; - } - set - { - _highlightWithAccent = value; - preProcessIcons(); - Invalidate(); - } - } - - [Category("Drawer")] - private bool _backgroundWithAccent; - - public bool BackgroundWithAccent - { - get - { - return _backgroundWithAccent; - } - set - { - _backgroundWithAccent = value; - Invalidate(); - } - } - - [Category("Drawer")] - public int IndicatorWidth { get; set; } - - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - public delegate void DrawerStateHandler(object sender); +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Drawing2D; + using System.Drawing.Imaging; + using System.Drawing.Text; + using System.Windows.Forms; + + public class MaterialDrawer : Control, IMaterialControl + { + // TODO: Invalidate when changing custom properties + + private bool _showIconsWhenHidden; + + [Category("Drawer")] + public bool ShowIconsWhenHidden + { + get + { + return _showIconsWhenHidden; + } + set + { + if (_showIconsWhenHidden != value) + { + _showIconsWhenHidden = value; + UpdateTabRects(); + preProcessIcons(); + showHideAnimation(); + Paint(new PaintEventArgs(CreateGraphics(), ClientRectangle)); + DrawerShowIconsWhenHiddenChanged?.Invoke(this); + } + } + } + + private bool _isOpen; + + [Category("Drawer")] + public bool IsOpen + { + get + { + return _isOpen; + } + set + { + _isOpen = value; + if (value) + Show(); + else + Hide(); + } + } + + [Category("Drawer")] + public bool AutoHide { get; set; } + + [Category("Drawer")] + private bool _useColors; + + public bool UseColors + { + get + { + return _useColors; + } + set + { + _useColors = value; + preProcessIcons(); + Invalidate(); + } + } + + [Category("Drawer")] + private bool _highlightWithAccent; + + public bool HighlightWithAccent + { + get + { + return _highlightWithAccent; + } + set + { + _highlightWithAccent = value; + preProcessIcons(); + Invalidate(); + } + } + + [Category("Drawer")] + private bool _backgroundWithAccent; + + public bool BackgroundWithAccent + { + get + { + return _backgroundWithAccent; + } + set + { + _backgroundWithAccent = value; + Invalidate(); + } + } + + [Category("Drawer")] + public int IndicatorWidth { get; set; } + + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + public delegate void DrawerStateHandler(object sender); public event DrawerStateHandler DrawerStateChanged; - + public event DrawerStateHandler DrawerBeginOpen; - + public event DrawerStateHandler DrawerEndOpen; - + public event DrawerStateHandler DrawerBeginClose; - + public event DrawerStateHandler DrawerEndClose; - - public event DrawerStateHandler DrawerShowIconsWhenHiddenChanged; - - // icons - private Dictionary iconsBrushes; - - private Dictionary iconsSelectedBrushes; - private Dictionary iconsSize; - private int prevLocation; - - private int rippleSize = 0; - - private MaterialTabControl _baseTabControl; - - [Category("Behavior")] - public MaterialTabControl BaseTabControl - { - get { return _baseTabControl; } - set - { - _baseTabControl = value; - if (_baseTabControl == null) - return; - - UpdateTabRects(); - preProcessIcons(); - - // Other helpers - - _previousSelectedTabIndex = _baseTabControl.SelectedIndex; - _baseTabControl.Deselected += (sender, args) => - { - _previousSelectedTabIndex = _baseTabControl.SelectedIndex; - }; - _baseTabControl.SelectedIndexChanged += (sender, args) => - { - _clickAnimManager.SetProgress(0); - _clickAnimManager.StartNewAnimation(AnimationDirection.In); - }; - _baseTabControl.ControlAdded += delegate - { - Invalidate(); - }; - _baseTabControl.ControlRemoved += delegate - { - Invalidate(); - }; - } - } - - private void preProcessIcons() - { - // pre-process and pre-allocate texture brushes (icons) - if (_baseTabControl == null || _baseTabControl.TabCount == 0 || _baseTabControl.ImageList == null || _drawerItemRects == null || _drawerItemRects.Count == 0) - return; - - // Calculate lightness and color - float l = UseColors ? SkinManager.ColorScheme.TextColor.R / 255 : SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? 0f : 1f; - float r = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.R : SkinManager.ColorScheme.PrimaryColor.R) / 255f; - float g = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.G : SkinManager.ColorScheme.PrimaryColor.G) / 255f; - float b = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.B : SkinManager.ColorScheme.PrimaryColor.B) / 255f; - - // Create matrices - float[][] matrixGray = { - new float[] { 0, 0, 0, 0, 0}, // Red scale factor - new float[] { 0, 0, 0, 0, 0}, // Green scale factor - new float[] { 0, 0, 0, 0, 0}, // Blue scale factor - new float[] { 0, 0, 0, .7f, 0}, // alpha scale factor - new float[] { l, l, l, 0, 1}};// offset - - float[][] matrixColor = { - new float[] { 0, 0, 0, 0, 0}, // Red scale factor - new float[] { 0, 0, 0, 0, 0}, // Green scale factor - new float[] { 0, 0, 0, 0, 0}, // Blue scale factor - new float[] { 0, 0, 0, 1, 0}, // alpha scale factor - new float[] { r, g, b, 0, 1}};// offset - - ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); - ColorMatrix colorMatrixColor = new ColorMatrix(matrixColor); - - ImageAttributes grayImageAttributes = new ImageAttributes(); - ImageAttributes colorImageAttributes = new ImageAttributes(); - - // Set color matrices - grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); - colorImageAttributes.SetColorMatrix(colorMatrixColor, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); - - // Create brushes - iconsBrushes = new Dictionary(_baseTabControl.TabPages.Count); - iconsSelectedBrushes = new Dictionary(_baseTabControl.TabPages.Count); - iconsSize = new Dictionary(_baseTabControl.TabPages.Count); - - foreach (TabPage tabPage in _baseTabControl.TabPages) - { - // skip items without image - if (String.IsNullOrEmpty(tabPage.ImageKey) || _drawerItemRects == null) - continue; - - // Image Rect - Rectangle destRect = new Rectangle(0, 0, _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); - - // Create a pre-processed copy of the image (GRAY) - Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); - using (Graphics gGray = Graphics.FromImage(bgray)) - { - gGray.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], - new Point[] { - new Point(0, 0), - new Point(destRect.Width, 0), - new Point(0, destRect.Height), - }, - destRect, GraphicsUnit.Pixel, grayImageAttributes); - } - - // Create a pre-processed copy of the image (PRIMARY COLOR) - Bitmap bcolor = new Bitmap(destRect.Width, destRect.Height); - using (Graphics gColor = Graphics.FromImage(bcolor)) - { - gColor.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], - new Point[] { - new Point(0, 0), - new Point(destRect.Width, 0), - new Point(0, destRect.Height), - }, - destRect, GraphicsUnit.Pixel, colorImageAttributes); - } - - // added processed image to brush for drawing - TextureBrush textureBrushGray = new TextureBrush(bgray); - TextureBrush textureBrushColor = new TextureBrush(bcolor); - - textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; - textureBrushColor.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; - - // Translate the brushes to the correct positions - var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); - - Rectangle iconRect = new Rectangle( - _drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2), - _drawerItemRects[currentTabIndex].Y + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2), - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); - - textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, - iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); - textureBrushColor.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, - iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); - - // add to dictionary - iconsBrushes.Add(tabPage.ImageKey, textureBrushGray); - iconsSelectedBrushes.Add(tabPage.ImageKey, textureBrushColor); - iconsSize.Add(tabPage.ImageKey, new Rectangle(0, 0, iconRect.Width, iconRect.Height)); - } - } - - private int _previousSelectedTabIndex; - - private Point _animationSource; - - private readonly AnimationManager _clickAnimManager; - - private readonly AnimationManager _showHideAnimManager; - - private List _drawerItemRects; - private List _drawerItemPaths; - - private const int TAB_HEADER_PADDING = 24; - - private int drawerItemHeight; - + + public event DrawerStateHandler DrawerShowIconsWhenHiddenChanged; + + // icons + private Dictionary iconsBrushes; + + private Dictionary iconsSelectedBrushes; + private Dictionary iconsSize; + private int prevLocation; + + private int rippleSize = 0; + + private MaterialTabControl _baseTabControl; + + [Category("Behavior")] + public MaterialTabControl BaseTabControl + { + get { return _baseTabControl; } + set + { + _baseTabControl = value; + if (_baseTabControl == null) + return; + + UpdateTabRects(); + preProcessIcons(); + + // Other helpers + + _previousSelectedTabIndex = _baseTabControl.SelectedIndex; + _baseTabControl.Deselected += (sender, args) => + { + _previousSelectedTabIndex = _baseTabControl.SelectedIndex; + }; + _baseTabControl.SelectedIndexChanged += (sender, args) => + { + _clickAnimManager.SetProgress(0); + _clickAnimManager.StartNewAnimation(AnimationDirection.In); + }; + _baseTabControl.ControlAdded += delegate + { + Invalidate(); + }; + _baseTabControl.ControlRemoved += delegate + { + Invalidate(); + }; + } + } + + private void preProcessIcons() + { + // pre-process and pre-allocate texture brushes (icons) + if (_baseTabControl == null || _baseTabControl.TabCount == 0 || _baseTabControl.ImageList == null || _drawerItemRects == null || _drawerItemRects.Count == 0) + return; + + // Calculate lightness and color + float l = UseColors ? SkinManager.ColorScheme.TextColor.R / 255 : SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? 0f : 1f; + float r = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.R : SkinManager.ColorScheme.PrimaryColor.R) / 255f; + float g = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.G : SkinManager.ColorScheme.PrimaryColor.G) / 255f; + float b = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.B : SkinManager.ColorScheme.PrimaryColor.B) / 255f; + + // Create matrices + float[][] matrixGray = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, .7f, 0}, // alpha scale factor + new float[] { l, l, l, 0, 1}};// offset + + float[][] matrixColor = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, 1, 0}, // alpha scale factor + new float[] { r, g, b, 0, 1}};// offset + + ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); + ColorMatrix colorMatrixColor = new ColorMatrix(matrixColor); + + ImageAttributes grayImageAttributes = new ImageAttributes(); + ImageAttributes colorImageAttributes = new ImageAttributes(); + + // Set color matrices + grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + colorImageAttributes.SetColorMatrix(colorMatrixColor, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + + // Create brushes + iconsBrushes = new Dictionary(_baseTabControl.TabPages.Count); + iconsSelectedBrushes = new Dictionary(_baseTabControl.TabPages.Count); + iconsSize = new Dictionary(_baseTabControl.TabPages.Count); + + foreach (TabPage tabPage in _baseTabControl.TabPages) + { + // skip items without image + if (String.IsNullOrEmpty(tabPage.ImageKey) || _drawerItemRects == null) + continue; + + // Image Rect + Rectangle destRect = new Rectangle(0, 0, _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); + + // Create a pre-processed copy of the image (GRAY) + Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gGray = Graphics.FromImage(bgray)) + { + gGray.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, grayImageAttributes); + } + + // Create a pre-processed copy of the image (PRIMARY COLOR) + Bitmap bcolor = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gColor = Graphics.FromImage(bcolor)) + { + gColor.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, colorImageAttributes); + } + + // added processed image to brush for drawing + TextureBrush textureBrushGray = new TextureBrush(bgray); + TextureBrush textureBrushColor = new TextureBrush(bcolor); + + textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + textureBrushColor.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + + // Translate the brushes to the correct positions + var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); + + Rectangle iconRect = new Rectangle( + _drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2), + _drawerItemRects[currentTabIndex].Y + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2), + _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); + + textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, + iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); + textureBrushColor.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, + iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); + + // add to dictionary + iconsBrushes.Add(tabPage.ImageKey, textureBrushGray); + iconsSelectedBrushes.Add(tabPage.ImageKey, textureBrushColor); + iconsSize.Add(tabPage.ImageKey, new Rectangle(0, 0, iconRect.Width, iconRect.Height)); + } + } + + private int _previousSelectedTabIndex; + + private Point _animationSource; + + private readonly AnimationManager _clickAnimManager; + + private readonly AnimationManager _showHideAnimManager; + + private List _drawerItemRects; + private List _drawerItemPaths; + + private const int TAB_HEADER_PADDING = 24; + + private int drawerItemHeight; + public int MinWidth; - - public MaterialDrawer() - { - SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); - Height = 120; - Width = 250; - IndicatorWidth = 0; - _isOpen = true; - ShowIconsWhenHidden = false; - AutoHide = false; - HighlightWithAccent = true; - BackgroundWithAccent = false; - - _showHideAnimManager = new AnimationManager - { - AnimationType = AnimationType.EaseInOut, - Increment = 0.04 - }; - _showHideAnimManager.OnAnimationProgress += sender => - { - Invalidate(); - showHideAnimation(); - }; - _showHideAnimManager.OnAnimationFinished += sender => - { - if (_baseTabControl != null && _drawerItemRects.Count > 0) - rippleSize = _drawerItemRects[_baseTabControl.SelectedIndex].Width; - if (_isOpen) - { - DrawerEndOpen?.Invoke(this); - } - else - { - DrawerEndClose?.Invoke(this); - } - }; - - SkinManager.ColorSchemeChanged += sender => - { - preProcessIcons(); - }; - - SkinManager.ThemeChanged += sender => - { - preProcessIcons(); - }; - - _clickAnimManager = new AnimationManager - { - AnimationType = AnimationType.EaseOut, - Increment = 0.04 - }; - _clickAnimManager.OnAnimationProgress += sender => Invalidate(); - } - - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected override void InitLayout() - { - drawerItemHeight = TAB_HEADER_PADDING * 2 - SkinManager.FORM_PADDING / 2; - MinWidth = (int)(SkinManager.FORM_PADDING * 1.5 + drawerItemHeight); - _showHideAnimManager.SetProgress(_isOpen ? 0 : 1); - showHideAnimation(); - Invalidate(); - - base.InitLayout(); - } - - private void showHideAnimation() - { - var showHideAnimProgress = _showHideAnimManager.GetProgress(); - if (_showHideAnimManager.IsAnimating()) - { - if (ShowIconsWhenHidden) - { - Location = new Point((int)((-Width + MinWidth) * showHideAnimProgress), Location.Y); - } - else - { - Location = new Point((int)(-Width * showHideAnimProgress), Location.Y); - } - } - else - { - if (_isOpen) - { - Location = new Point(0, Location.Y); - } - else - { - if (ShowIconsWhenHidden) - { - Location = new Point((int)(-Width + MinWidth), Location.Y); - } - else - { - Location = new Point(-Width, Location.Y); - } - } - } - UpdateTabRects(); - } - - protected override void OnPaint(PaintEventArgs e) - { - Paint(e); - } - - private new void Paint(PaintEventArgs e) - { - var g = e.Graphics; - g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; - - // redraw stuff - g.Clear(UseColors ? SkinManager.ColorScheme.PrimaryColor : SkinManager.BackdropColor); - - if (_baseTabControl == null) - return; - - if (!_clickAnimManager.IsAnimating() || _drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) - UpdateTabRects(); - - if (_drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) - return; - - // Click Animation - var clickAnimProgress = _clickAnimManager.GetProgress(); - // Show/Hide Drawer Animation - var showHideAnimProgress = _showHideAnimManager.GetProgress(); - var rSize = (int)(clickAnimProgress * rippleSize * 1.75); - - int dx = prevLocation - Location.X; - prevLocation = Location.X; - - // Ripple - if (_clickAnimManager.IsAnimating()) - { - var rippleBrush = new SolidBrush(Color.FromArgb((int)(70 - (clickAnimProgress * 70)), - UseColors ? SkinManager.ColorScheme.AccentColor : // Using colors - SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // light theme - SkinManager.ColorScheme.LightPrimaryColor)); // dark theme - - g.SetClip(_drawerItemPaths[_baseTabControl.SelectedIndex]); - g.FillEllipse(rippleBrush, new Rectangle(_animationSource.X + dx - (rSize / 2), _animationSource.Y - rSize / 2, rSize, rSize)); - g.ResetClip(); - rippleBrush.Dispose(); - } - - // Draw menu items - foreach (TabPage tabPage in _baseTabControl.TabPages) - { - var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); - - // Background - Brush bgBrush = new SolidBrush(Color.FromArgb(CalculateAlpha(60, 0, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), - UseColors ? _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.LightPrimaryColor : // using colors - _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : // defaul accent - SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // default light - SkinManager.ColorScheme.LightPrimaryColor)); // default dark - g.FillPath(bgBrush, _drawerItemPaths[currentTabIndex]); - bgBrush.Dispose(); - - // Text - Color textColor = Color.FromArgb(CalculateAlphaZeroWhenClosed(SkinManager.TextHighEmphasisColor.A, UseColors ? SkinManager.TextMediumEmphasisColor.A : 255, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), // alpha - UseColors ? (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) // Use colors - selected - : SkinManager.ColorScheme.TextColor) : // Use colors - not selected - (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) : // selected - SkinManager.TextHighEmphasisColor)); - - IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2); - - Rectangle textRect = _drawerItemRects[currentTabIndex]; - textRect.X += _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); - textRect.Width -= SkinManager.FORM_PADDING << 2; - - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - NativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - } - - // Icons - if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) - { - Rectangle iconRect = new Rectangle( - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1), - _drawerItemRects[currentTabIndex].Y + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Height >> 1), - iconsSize[tabPage.ImageKey].Width, iconsSize[tabPage.ImageKey].Height); - - if (ShowIconsWhenHidden) - { - iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); - iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); - } - - g.FillRectangle(currentTabIndex == _baseTabControl.SelectedIndex ? iconsSelectedBrushes[tabPage.ImageKey] : iconsBrushes[tabPage.ImageKey], iconRect); - } - } - - // Draw divider if not using colors - if (!UseColors) - { - using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) - { - g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); - } - } - - // Animate tab indicator - var previousSelectedTabIndexIfHasOne = _previousSelectedTabIndex == -1 ? _baseTabControl.SelectedIndex : _previousSelectedTabIndex; - var previousActiveTabRect = _drawerItemRects[previousSelectedTabIndexIfHasOne]; - var activeTabPageRect = _drawerItemRects[_baseTabControl.SelectedIndex]; - - var y = previousActiveTabRect.Y + (int)((activeTabPageRect.Y - previousActiveTabRect.Y) * clickAnimProgress); - var x = ShowIconsWhenHidden ? -Location.X : 0; - var height = drawerItemHeight; - - g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, IndicatorWidth, height); - } - - public new void Show() - { - _isOpen = true; - DrawerStateChanged?.Invoke(this); - DrawerBeginOpen?.Invoke(this); - _showHideAnimManager.StartNewAnimation(AnimationDirection.Out); - } - - public new void Hide() - { - _isOpen = false; - DrawerStateChanged?.Invoke(this); - DrawerBeginClose?.Invoke(this); - _showHideAnimManager.StartNewAnimation(AnimationDirection.In); - } - - public void Toggle() - { - if (_isOpen) - Hide(); - else - Show(); - } - - private int CalculateAlphaZeroWhenClosed(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) - { - // Drawer is closed - if (!_isOpen && !_showHideAnimManager.IsAnimating()) - { - return 0; - } - // Active menu (no change) - if (tabIndex == _baseTabControl.SelectedIndex && (!_clickAnimManager.IsAnimating() || _showHideAnimManager.IsAnimating())) - { - return (int)(primaryA * showHideAnimProgress); - } - // Previous menu (changing) - if (tabIndex == _previousSelectedTabIndex && !_showHideAnimManager.IsAnimating()) - { - return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); - } - // Inactive menu (no change) - if (tabIndex != _baseTabControl.SelectedIndex) - { - return (int)(secondaryA * showHideAnimProgress); - } - // Active menu (changing) - return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); - } - - private int CalculateAlpha(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) - { - if (tabIndex == _baseTabControl.SelectedIndex && !_clickAnimManager.IsAnimating()) - { - return (int)(primaryA); - } - if (tabIndex != _previousSelectedTabIndex && tabIndex != _baseTabControl.SelectedIndex) - { - return secondaryA; - } - if (tabIndex == _previousSelectedTabIndex) - { - return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); - } - return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); - } - - protected override void OnMouseClick(MouseEventArgs e) - { - base.OnMouseClick(e); - - if (_drawerItemRects == null) - UpdateTabRects(); - for (var i = 0; i < _drawerItemRects.Count; i++) - { - if (_drawerItemRects[i].Contains(e.Location)) - { - _baseTabControl.SelectedIndex = i; - if (AutoHide) - Hide(); - } - } - - _animationSource = e.Location; - } - - protected override void OnMouseMove(MouseEventArgs e) - { - base.OnMouseMove(e); - - if (DesignMode) - return; - - if (_drawerItemRects == null) - UpdateTabRects(); - for (var i = 0; i < _drawerItemRects.Count; i++) - { - if (_drawerItemRects[i].Contains(e.Location)) - { - Cursor = Cursors.Hand; - return; - } - } - Cursor = Cursors.Arrow; - } - - private void UpdateTabRects() - { - //If there isn't a base tab control, the rects shouldn't be calculated - //or if there aren't tab pages in the base tab control, the list should just be empty - if (_baseTabControl == null || _baseTabControl.TabCount == 0 || SkinManager == null || _drawerItemRects == null) - { - _drawerItemRects = new List(); - _drawerItemPaths = new List(); - return; - } - - if (_drawerItemRects.Count != _baseTabControl.TabCount) - { - _drawerItemRects = new List(_baseTabControl.TabCount); - _drawerItemPaths = new List(_baseTabControl.TabCount); - - for (var i = 0; i < _baseTabControl.TabCount; i++) - { - _drawerItemRects.Add(new Rectangle()); - _drawerItemPaths.Add(new GraphicsPath()); - } + + public MaterialDrawer() + { + SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); + Height = 120; + Width = 250; + IndicatorWidth = 0; + _isOpen = true; + ShowIconsWhenHidden = false; + AutoHide = false; + HighlightWithAccent = true; + BackgroundWithAccent = false; + + _showHideAnimManager = new AnimationManager + { + AnimationType = AnimationType.EaseInOut, + Increment = 0.04 + }; + _showHideAnimManager.OnAnimationProgress += sender => + { + Invalidate(); + showHideAnimation(); + }; + _showHideAnimManager.OnAnimationFinished += sender => + { + if (_baseTabControl != null && _drawerItemRects.Count > 0) + rippleSize = _drawerItemRects[_baseTabControl.SelectedIndex].Width; + if (_isOpen) + { + DrawerEndOpen?.Invoke(this); + } + else + { + DrawerEndClose?.Invoke(this); + } + }; + + SkinManager.ColorSchemeChanged += sender => + { + preProcessIcons(); + }; + + SkinManager.ThemeChanged += sender => + { + preProcessIcons(); + }; + + _clickAnimManager = new AnimationManager + { + AnimationType = AnimationType.EaseOut, + Increment = 0.04 + }; + _clickAnimManager.OnAnimationProgress += sender => Invalidate(); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + protected override void InitLayout() + { + drawerItemHeight = TAB_HEADER_PADDING * 2 - SkinManager.FORM_PADDING / 2; + MinWidth = (int)(SkinManager.FORM_PADDING * 1.5 + drawerItemHeight); + _showHideAnimManager.SetProgress(_isOpen ? 0 : 1); + showHideAnimation(); + Invalidate(); + + base.InitLayout(); + } + + private void showHideAnimation() + { + var showHideAnimProgress = _showHideAnimManager.GetProgress(); + if (_showHideAnimManager.IsAnimating()) + { + if (ShowIconsWhenHidden) + { + Location = new Point((int)((-Width + MinWidth) * showHideAnimProgress), Location.Y); + } + else + { + Location = new Point((int)(-Width * showHideAnimProgress), Location.Y); + } + } + else + { + if (_isOpen) + { + Location = new Point(0, Location.Y); + } + else + { + if (ShowIconsWhenHidden) + { + Location = new Point((int)(-Width + MinWidth), Location.Y); + } + else + { + Location = new Point(-Width, Location.Y); + } + } + } + UpdateTabRects(); + } + + protected override void OnPaint(PaintEventArgs e) + { + Paint(e); + } + + private new void Paint(PaintEventArgs e) + { + var g = e.Graphics; + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + // redraw stuff + g.Clear(UseColors ? SkinManager.ColorScheme.PrimaryColor : SkinManager.BackdropColor); + + if (_baseTabControl == null) + return; + + if (!_clickAnimManager.IsAnimating() || _drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) + UpdateTabRects(); + + if (_drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) + return; + + // Click Animation + var clickAnimProgress = _clickAnimManager.GetProgress(); + // Show/Hide Drawer Animation + var showHideAnimProgress = _showHideAnimManager.GetProgress(); + var rSize = (int)(clickAnimProgress * rippleSize * 1.75); + + int dx = prevLocation - Location.X; + prevLocation = Location.X; + + // Ripple + if (_clickAnimManager.IsAnimating()) + { + var rippleBrush = new SolidBrush(Color.FromArgb((int)(70 - (clickAnimProgress * 70)), + UseColors ? SkinManager.ColorScheme.AccentColor : // Using colors + SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // light theme + SkinManager.ColorScheme.LightPrimaryColor)); // dark theme + + g.SetClip(_drawerItemPaths[_baseTabControl.SelectedIndex]); + g.FillEllipse(rippleBrush, new Rectangle(_animationSource.X + dx - (rSize / 2), _animationSource.Y - rSize / 2, rSize, rSize)); + g.ResetClip(); + rippleBrush.Dispose(); + } + + // Draw menu items + foreach (TabPage tabPage in _baseTabControl.TabPages) + { + var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); + + // Background + Brush bgBrush = new SolidBrush(Color.FromArgb(CalculateAlpha(60, 0, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), + UseColors ? _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.LightPrimaryColor : // using colors + _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : // defaul accent + SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // default light + SkinManager.ColorScheme.LightPrimaryColor)); // default dark + g.FillPath(bgBrush, _drawerItemPaths[currentTabIndex]); + bgBrush.Dispose(); + + // Text + Color textColor = Color.FromArgb(CalculateAlphaZeroWhenClosed(SkinManager.TextHighEmphasisColor.A, UseColors ? SkinManager.TextMediumEmphasisColor.A : 255, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), // alpha + UseColors ? (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) // Use colors - selected + : SkinManager.ColorScheme.TextColor) : // Use colors - not selected + (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) : // selected + SkinManager.TextHighEmphasisColor)); + + IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2); + + Rectangle textRect = _drawerItemRects[currentTabIndex]; + textRect.X += _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); + textRect.Width -= SkinManager.FORM_PADDING << 2; + + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + + // Icons + if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) + { + Rectangle iconRect = new Rectangle( + _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1), + _drawerItemRects[currentTabIndex].Y + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Height >> 1), + iconsSize[tabPage.ImageKey].Width, iconsSize[tabPage.ImageKey].Height); + + if (ShowIconsWhenHidden) + { + iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + } + + g.FillRectangle(currentTabIndex == _baseTabControl.SelectedIndex ? iconsSelectedBrushes[tabPage.ImageKey] : iconsBrushes[tabPage.ImageKey], iconRect); + } + } + + // Draw divider if not using colors + if (!UseColors) + { + using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) + { + g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); + } + } + + // Animate tab indicator + var previousSelectedTabIndexIfHasOne = _previousSelectedTabIndex == -1 ? _baseTabControl.SelectedIndex : _previousSelectedTabIndex; + var previousActiveTabRect = _drawerItemRects[previousSelectedTabIndexIfHasOne]; + var activeTabPageRect = _drawerItemRects[_baseTabControl.SelectedIndex]; + + var y = previousActiveTabRect.Y + (int)((activeTabPageRect.Y - previousActiveTabRect.Y) * clickAnimProgress); + var x = ShowIconsWhenHidden ? -Location.X : 0; + var height = drawerItemHeight; + + g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, IndicatorWidth, height); + } + + public new void Show() + { + _isOpen = true; + DrawerStateChanged?.Invoke(this); + DrawerBeginOpen?.Invoke(this); + _showHideAnimManager.StartNewAnimation(AnimationDirection.Out); + } + + public new void Hide() + { + _isOpen = false; + DrawerStateChanged?.Invoke(this); + DrawerBeginClose?.Invoke(this); + _showHideAnimManager.StartNewAnimation(AnimationDirection.In); + } + + public void Toggle() + { + if (_isOpen) + Hide(); + else + Show(); + } + + private int CalculateAlphaZeroWhenClosed(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) + { + // Drawer is closed + if (!_isOpen && !_showHideAnimManager.IsAnimating()) + { + return 0; + } + // Active menu (no change) + if (tabIndex == _baseTabControl.SelectedIndex && (!_clickAnimManager.IsAnimating() || _showHideAnimManager.IsAnimating())) + { + return (int)(primaryA * showHideAnimProgress); + } + // Previous menu (changing) + if (tabIndex == _previousSelectedTabIndex && !_showHideAnimManager.IsAnimating()) + { + return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); + } + // Inactive menu (no change) + if (tabIndex != _baseTabControl.SelectedIndex) + { + return (int)(secondaryA * showHideAnimProgress); + } + // Active menu (changing) + return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); + } + + private int CalculateAlpha(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) + { + if (tabIndex == _baseTabControl.SelectedIndex && !_clickAnimManager.IsAnimating()) + { + return (int)(primaryA); + } + if (tabIndex != _previousSelectedTabIndex && tabIndex != _baseTabControl.SelectedIndex) + { + return secondaryA; + } + if (tabIndex == _previousSelectedTabIndex) + { + return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); + } + return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); + } + + protected override void OnMouseClick(MouseEventArgs e) + { + base.OnMouseClick(e); + + if (_drawerItemRects == null) + UpdateTabRects(); + for (var i = 0; i < _drawerItemRects.Count; i++) + { + if (_drawerItemRects[i].Contains(e.Location)) + { + _baseTabControl.SelectedIndex = i; + if (AutoHide) + Hide(); + } + } + + _animationSource = e.Location; + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + if (DesignMode) + return; + + if (_drawerItemRects == null) + UpdateTabRects(); + for (var i = 0; i < _drawerItemRects.Count; i++) + { + if (_drawerItemRects[i].Contains(e.Location)) + { + Cursor = Cursors.Hand; + return; + } + } + Cursor = Cursors.Arrow; + } + + private void UpdateTabRects() + { + //If there isn't a base tab control, the rects shouldn't be calculated + //or if there aren't tab pages in the base tab control, the list should just be empty + if (_baseTabControl == null || _baseTabControl.TabCount == 0 || SkinManager == null || _drawerItemRects == null) + { + _drawerItemRects = new List(); + _drawerItemPaths = new List(); + return; + } + + if (_drawerItemRects.Count != _baseTabControl.TabCount) + { + _drawerItemRects = new List(_baseTabControl.TabCount); + _drawerItemPaths = new List(_baseTabControl.TabCount); + + for (var i = 0; i < _baseTabControl.TabCount; i++) + { + _drawerItemRects.Add(new Rectangle()); + _drawerItemPaths.Add(new GraphicsPath()); + } } //Calculate the bounds of each tab header specified in the base tab control - for (int i = 0; i < _baseTabControl.TabPages.Count; i++) - { - _drawerItemRects[i] = (new Rectangle( - (int)(SkinManager.FORM_PADDING * 0.75) - (ShowIconsWhenHidden ? Location.X : 0), - (TAB_HEADER_PADDING * 2) * i + (int)(SkinManager.FORM_PADDING >> 1), - (Width + (ShowIconsWhenHidden ? Location.X : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, - drawerItemHeight)); - - _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, _drawerItemRects[i].Width, _drawerItemRects[i].Height), 4); - } - } - } + for (int i = 0; i < _baseTabControl.TabPages.Count; i++) + { + _drawerItemRects[i] = (new Rectangle( + (int)(SkinManager.FORM_PADDING * 0.75) - (ShowIconsWhenHidden ? Location.X : 0), + (TAB_HEADER_PADDING * 2) * i + (int)(SkinManager.FORM_PADDING >> 1), + (Width + (ShowIconsWhenHidden ? Location.X : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, + drawerItemHeight)); + + _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, _drawerItemRects[i].Width, _drawerItemRects[i].Height), 4); + } + } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialFloatingActionButton.cs b/MaterialSkin/Controls/MaterialFloatingActionButton.cs index 411a2abb..b165228c 100644 --- a/MaterialSkin/Controls/MaterialFloatingActionButton.cs +++ b/MaterialSkin/Controls/MaterialFloatingActionButton.cs @@ -1,245 +1,245 @@ -namespace MaterialSkin.Controls -{ - using MaterialSkin.Animations; - using System; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Drawing2D; - using System.Windows.Forms; - - public class MaterialFloatingActionButton : Button, IMaterialControl - { - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - private const int FAB_SIZE = 56; - private const int FAB_MINI_SIZE = 40; - private const int FAB_ICON_MARGIN = 16; - private const int FAB_MINI_ICON_MARGIN = 8; - private const int FAB_ICON_SIZE = 24; - - public bool DrawShadows { get; set; } - - public bool Mini - { - get { return _mini; } - set - { - if (Parent != null) - Parent.Invalidate(); - setSize(value); - } - } - - private bool _mini = false; - - public bool AnimateShowHideButton - { - get { return _animateShowButton; } - set { _animateShowButton = value; } - } - - private bool _animateShowButton; - - public Image Icon - { - get { return _icon; } - set { _icon = value; } - } - - private Image _icon; - - private bool _isHiding = false; - - private readonly AnimationManager _animationManager; - - private readonly AnimationManager _showAnimationManager; - - public MaterialFloatingActionButton() - { - DrawShadows = true; - SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); - - Size = new Size(FAB_SIZE, FAB_SIZE); - _animationManager = new AnimationManager(false) - { - Increment = 0.03, - AnimationType = AnimationType.EaseOut - }; - _animationManager.OnAnimationProgress += sender => Invalidate(); - - _showAnimationManager = new AnimationManager(true) - { - Increment = 0.1, - AnimationType = AnimationType.EaseOut - }; - _showAnimationManager.OnAnimationProgress += sender => Invalidate(); - _showAnimationManager.OnAnimationFinished += _showAnimationManager_OnAnimationFinished; - } - - protected override void InitLayout() - { - LocationChanged += (sender, e) => { if (DrawShadows) Parent?.Invalidate(); }; - } - - protected override void OnParentChanged(EventArgs e) - { - base.OnParentChanged(e); - if (DrawShadows && Parent != null) AddShadowPaintEvent(Parent, drawShadowOnParent); - if (_oldParent != null) RemoveShadowPaintEvent(_oldParent, drawShadowOnParent); - _oldParent = Parent; - } - - private Control _oldParent; - - protected override void OnVisibleChanged(EventArgs e) - { - base.OnVisibleChanged(e); - if (Parent == null) return; - if (Visible) - AddShadowPaintEvent(Parent, drawShadowOnParent); - else - RemoveShadowPaintEvent(Parent, drawShadowOnParent); - } - +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Drawing2D; + using System.Windows.Forms; + + public class MaterialFloatingActionButton : Button, IMaterialControl + { + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + private const int FAB_SIZE = 56; + private const int FAB_MINI_SIZE = 40; + private const int FAB_ICON_MARGIN = 16; + private const int FAB_MINI_ICON_MARGIN = 8; + private const int FAB_ICON_SIZE = 24; + + public bool DrawShadows { get; set; } + + public bool Mini + { + get { return _mini; } + set + { + if (Parent != null) + Parent.Invalidate(); + setSize(value); + } + } + + private bool _mini = false; + + public bool AnimateShowHideButton + { + get { return _animateShowButton; } + set { _animateShowButton = value; } + } + + private bool _animateShowButton; + + public Image Icon + { + get { return _icon; } + set { _icon = value; } + } + + private Image _icon; + + private bool _isHiding = false; + + private readonly AnimationManager _animationManager; + + private readonly AnimationManager _showAnimationManager; + + public MaterialFloatingActionButton() + { + DrawShadows = true; + SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); + + Size = new Size(FAB_SIZE, FAB_SIZE); + _animationManager = new AnimationManager(false) + { + Increment = 0.03, + AnimationType = AnimationType.EaseOut + }; + _animationManager.OnAnimationProgress += sender => Invalidate(); + + _showAnimationManager = new AnimationManager(true) + { + Increment = 0.1, + AnimationType = AnimationType.EaseOut + }; + _showAnimationManager.OnAnimationProgress += sender => Invalidate(); + _showAnimationManager.OnAnimationFinished += _showAnimationManager_OnAnimationFinished; + } + + protected override void InitLayout() + { + LocationChanged += (sender, e) => { if (DrawShadows) Parent?.Invalidate(); }; + } + + protected override void OnParentChanged(EventArgs e) + { + base.OnParentChanged(e); + if (DrawShadows && Parent != null) AddShadowPaintEvent(Parent, drawShadowOnParent); + if (_oldParent != null) RemoveShadowPaintEvent(_oldParent, drawShadowOnParent); + _oldParent = Parent; + } + + private Control _oldParent; + + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + if (Parent == null) return; + if (Visible) + AddShadowPaintEvent(Parent, drawShadowOnParent); + else + RemoveShadowPaintEvent(Parent, drawShadowOnParent); + } + private bool _shadowDrawEventSubscribed = false; - - private void AddShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) - { - if (_shadowDrawEventSubscribed) return; - control.Paint += shadowPaintEvent; - control.Invalidate(); - _shadowDrawEventSubscribed = true; - } - - private void RemoveShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) - { - if (!_shadowDrawEventSubscribed) return; - control.Paint -= shadowPaintEvent; - control.Invalidate(); - _shadowDrawEventSubscribed = false; - } - - private void setSize(bool mini) - { - _mini = mini; - Size = _mini ? new Size(FAB_MINI_SIZE, FAB_MINI_SIZE) : new Size(FAB_SIZE, FAB_SIZE); - fabBounds = _mini ? new Rectangle(0, 0, FAB_MINI_SIZE, FAB_MINI_SIZE) : new Rectangle(0, 0, FAB_SIZE, FAB_SIZE); - fabBounds.Width -= 1; - fabBounds.Height -= 1; - } - - private void _showAnimationManager_OnAnimationFinished(object sender) - { - if (_isHiding) - { - Visible = false; - _isHiding = false; - } - } - - private void drawShadowOnParent(object sender, PaintEventArgs e) - { - if (Parent == null) - { - RemoveShadowPaintEvent((Control)sender, drawShadowOnParent); - return; - } - - // paint shadow on parent - Graphics gp = e.Graphics; - Rectangle rect = new Rectangle(Location, fabBounds.Size); - gp.SmoothingMode = SmoothingMode.AntiAlias; - DrawHelper.DrawRoundShadow(gp, rect); - } - + + private void AddShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) + { + if (_shadowDrawEventSubscribed) return; + control.Paint += shadowPaintEvent; + control.Invalidate(); + _shadowDrawEventSubscribed = true; + } + + private void RemoveShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) + { + if (!_shadowDrawEventSubscribed) return; + control.Paint -= shadowPaintEvent; + control.Invalidate(); + _shadowDrawEventSubscribed = false; + } + + private void setSize(bool mini) + { + _mini = mini; + Size = _mini ? new Size(FAB_MINI_SIZE, FAB_MINI_SIZE) : new Size(FAB_SIZE, FAB_SIZE); + fabBounds = _mini ? new Rectangle(0, 0, FAB_MINI_SIZE, FAB_MINI_SIZE) : new Rectangle(0, 0, FAB_SIZE, FAB_SIZE); + fabBounds.Width -= 1; + fabBounds.Height -= 1; + } + + private void _showAnimationManager_OnAnimationFinished(object sender) + { + if (_isHiding) + { + Visible = false; + _isHiding = false; + } + } + + private void drawShadowOnParent(object sender, PaintEventArgs e) + { + if (Parent == null) + { + RemoveShadowPaintEvent((Control)sender, drawShadowOnParent); + return; + } + + // paint shadow on parent + Graphics gp = e.Graphics; + Rectangle rect = new Rectangle(Location, fabBounds.Size); + gp.SmoothingMode = SmoothingMode.AntiAlias; + DrawHelper.DrawRoundShadow(gp, rect); + } + private Rectangle fabBounds; - - protected override void OnPaint(PaintEventArgs pevent) - { - var g = pevent.Graphics; - - g.Clear(Parent.BackColor); - g.SmoothingMode = SmoothingMode.AntiAlias; - - // Paint shadow on element to blend with the parent shadow - DrawHelper.DrawRoundShadow(g, fabBounds); - - // draw fab - g.FillEllipse(SkinManager.ColorScheme.AccentBrush, fabBounds); - - if (_animationManager.IsAnimating()) - { - GraphicsPath regionPath = new GraphicsPath(); - regionPath.AddEllipse(new Rectangle(fabBounds.X - 1, fabBounds.Y - 1, fabBounds.Width + 3, fabBounds.Height + 2)); - Region fabRegion = new Region(regionPath); - - GraphicsContainer gcont = g.BeginContainer(); - g.SetClip(fabRegion, CombineMode.Replace); - - for (int i = 0; i < _animationManager.GetAnimationCount(); i++) - { - var animationValue = _animationManager.GetProgress(i); - var animationSource = _animationManager.GetSource(i); - var rippleBrush = new SolidBrush(Color.FromArgb((int)(51 - (animationValue * 50)), Color.White)); - var rippleSize = (int)(animationValue * Width * 2); - g.FillEllipse(rippleBrush, new Rectangle(animationSource.X - rippleSize / 2, animationSource.Y - rippleSize / 2, rippleSize, rippleSize)); - } - - g.EndContainer(gcont); - } - - if (Icon != null) - { - g.DrawImage(Icon, new Rectangle(fabBounds.Width / 2 - 11, fabBounds.Height / 2 - 11, 24, 24)); - } - - if (_showAnimationManager.IsAnimating()) - { - int target = Convert.ToInt32((_mini ? FAB_MINI_SIZE : FAB_SIZE) * _showAnimationManager.GetProgress()); - fabBounds.Width = target == 0 ? 1 : target; - fabBounds.Height = target == 0 ? 1 : target; - fabBounds.X = Convert.ToInt32(((_mini ? FAB_MINI_SIZE : FAB_SIZE) / 2) - (((_mini ? FAB_MINI_SIZE : FAB_SIZE) / 2) * _showAnimationManager.GetProgress())); - fabBounds.Y = Convert.ToInt32(((_mini ? FAB_MINI_SIZE : FAB_SIZE) / 2) - (((_mini ? FAB_MINI_SIZE : FAB_SIZE) / 2) * _showAnimationManager.GetProgress())); - } - - // Clip to a round shape with a 1px padding - GraphicsPath clipPath = new GraphicsPath(); - clipPath.AddEllipse(new Rectangle(fabBounds.X - 1, fabBounds.Y - 1, fabBounds.Width + 3, fabBounds.Height + 3)); - Region = new Region(clipPath); - } - - protected override void OnMouseClick(MouseEventArgs mevent) - { - base.OnMouseClick(mevent); - _animationManager.StartNewAnimation(AnimationDirection.In, mevent.Location); - } - - private Point origin; - - public new void Hide() - { - if (Visible) - { - _isHiding = true; - _showAnimationManager.StartNewAnimation(AnimationDirection.Out); - } - } - - public new void Show() - { - if (!Visible) - { - origin = Location; - _showAnimationManager.StartNewAnimation(AnimationDirection.In); - Visible = true; - } - } - } + + protected override void OnPaint(PaintEventArgs pevent) + { + var g = pevent.Graphics; + + g.Clear(Parent.BackColor); + g.SmoothingMode = SmoothingMode.AntiAlias; + + // Paint shadow on element to blend with the parent shadow + DrawHelper.DrawRoundShadow(g, fabBounds); + + // draw fab + g.FillEllipse(SkinManager.ColorScheme.AccentBrush, fabBounds); + + if (_animationManager.IsAnimating()) + { + GraphicsPath regionPath = new GraphicsPath(); + regionPath.AddEllipse(new Rectangle(fabBounds.X - 1, fabBounds.Y - 1, fabBounds.Width + 3, fabBounds.Height + 2)); + Region fabRegion = new Region(regionPath); + + GraphicsContainer gcont = g.BeginContainer(); + g.SetClip(fabRegion, CombineMode.Replace); + + for (int i = 0; i < _animationManager.GetAnimationCount(); i++) + { + var animationValue = _animationManager.GetProgress(i); + var animationSource = _animationManager.GetSource(i); + var rippleBrush = new SolidBrush(Color.FromArgb((int)(51 - (animationValue * 50)), Color.White)); + var rippleSize = (int)(animationValue * Width * 2); + g.FillEllipse(rippleBrush, new Rectangle(animationSource.X - rippleSize / 2, animationSource.Y - rippleSize / 2, rippleSize, rippleSize)); + } + + g.EndContainer(gcont); + } + + if (Icon != null) + { + g.DrawImage(Icon, new Rectangle(fabBounds.Width / 2 - 11, fabBounds.Height / 2 - 11, 24, 24)); + } + + if (_showAnimationManager.IsAnimating()) + { + int target = Convert.ToInt32((_mini ? FAB_MINI_SIZE : FAB_SIZE) * _showAnimationManager.GetProgress()); + fabBounds.Width = target == 0 ? 1 : target; + fabBounds.Height = target == 0 ? 1 : target; + fabBounds.X = Convert.ToInt32(((_mini ? FAB_MINI_SIZE : FAB_SIZE) / 2) - (((_mini ? FAB_MINI_SIZE : FAB_SIZE) / 2) * _showAnimationManager.GetProgress())); + fabBounds.Y = Convert.ToInt32(((_mini ? FAB_MINI_SIZE : FAB_SIZE) / 2) - (((_mini ? FAB_MINI_SIZE : FAB_SIZE) / 2) * _showAnimationManager.GetProgress())); + } + + // Clip to a round shape with a 1px padding + GraphicsPath clipPath = new GraphicsPath(); + clipPath.AddEllipse(new Rectangle(fabBounds.X - 1, fabBounds.Y - 1, fabBounds.Width + 3, fabBounds.Height + 3)); + Region = new Region(clipPath); + } + + protected override void OnMouseClick(MouseEventArgs mevent) + { + base.OnMouseClick(mevent); + _animationManager.StartNewAnimation(AnimationDirection.In, mevent.Location); + } + + private Point origin; + + public new void Hide() + { + if (Visible) + { + _isHiding = true; + _showAnimationManager.StartNewAnimation(AnimationDirection.Out); + } + } + + public new void Show() + { + if (!Visible) + { + origin = Location; + _showAnimationManager.StartNewAnimation(AnimationDirection.In); + Visible = true; + } + } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index 890b3805..b0654c8d 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -1,988 +1,990 @@ -namespace MaterialSkin.Controls -{ - using MaterialSkin.Animations; - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Text; - using System.Linq; - using System.Runtime.InteropServices; - using System.Windows.Forms; - - public class MaterialForm : Form, IMaterialControl - { - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - public new FormBorderStyle FormBorderStyle - { - get { return base.FormBorderStyle; } - set { base.FormBorderStyle = value; } - } - - [Category("Layout")] - public bool Sizable { get; set; } - - [DllImport("user32.dll")] - public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); - - [DllImport("user32.dll")] - public static extern bool ReleaseCapture(); - - [DllImport("user32.dll")] - public static extern int TrackPopupMenuEx(IntPtr hmenu, uint fuFlags, int x, int y, IntPtr hwnd, IntPtr lptpm); - - [DllImport("user32.dll")] - public static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert); - - [DllImport("user32.dll")] - public static extern IntPtr MonitorFromWindow(IntPtr hwnd, uint dwFlags); - - [DllImport("User32.dll", CharSet = CharSet.Auto)] - public static extern bool GetMonitorInfo(HandleRef hmonitor, [In, Out] MONITORINFOEX info); - - public const int WM_NCLBUTTONDOWN = 0xA1; - public const int HT_CAPTION = 0x2; - public const int WM_MOUSEMOVE = 0x0200; - public const int WM_LBUTTONDOWN = 0x0201; - public const int WM_LBUTTONUP = 0x0202; - public const int WM_LBUTTONDBLCLK = 0x0203; - public const int WM_RBUTTONDOWN = 0x0204; - private const int HTBOTTOMLEFT = 16; - private const int HTBOTTOMRIGHT = 17; - private const int HTLEFT = 10; - private const int HTRIGHT = 11; - private const int HTBOTTOM = 15; - private const int HTTOP = 12; - private const int HTTOPLEFT = 13; - private const int HTTOPRIGHT = 14; - private const int BORDER_WIDTH = 7; - - private ResizeDirection _resizeDir; - private ButtonState _buttonState = ButtonState.None; - - private const int WMSZ_TOP = 3; - private const int WMSZ_TOPLEFT = 4; - private const int WMSZ_TOPRIGHT = 5; - private const int WMSZ_LEFT = 1; - private const int WMSZ_RIGHT = 2; - private const int WMSZ_BOTTOM = 6; - private const int WMSZ_BOTTOMLEFT = 7; - private const int WMSZ_BOTTOMRIGHT = 8; - - private readonly Dictionary _resizingLocationsToCmd = new Dictionary - { - {HTTOP, WMSZ_TOP}, - {HTTOPLEFT, WMSZ_TOPLEFT}, - {HTTOPRIGHT, WMSZ_TOPRIGHT}, - {HTLEFT, WMSZ_LEFT}, - {HTRIGHT, WMSZ_RIGHT}, - {HTBOTTOM, WMSZ_BOTTOM}, - {HTBOTTOMLEFT, WMSZ_BOTTOMLEFT}, - {HTBOTTOMRIGHT, WMSZ_BOTTOMRIGHT} - }; - - 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 uint TPM_LEFTALIGN = 0x0000; - private const uint TPM_RETURNCMD = 0x0100; - private const int WM_SYSCOMMAND = 0x0112; - private const int WS_MINIMIZEBOX = 0x20000; - private const int WS_SYSMENU = 0x00080000; - private const int MONITOR_DEFAULTTONEAREST = 2; - - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 4)] - public class MONITORINFOEX - { - public int cbSize = Marshal.SizeOf(typeof(MONITORINFOEX)); - public RECT rcMonitor = new RECT(); - public RECT rcWork = new RECT(); +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Text; + using System.Linq; + using System.Runtime.InteropServices; + using System.Windows.Forms; + + public class MaterialForm : Form, IMaterialControl + { + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + public new FormBorderStyle FormBorderStyle + { + get { return base.FormBorderStyle; } + set { base.FormBorderStyle = value; } + } + + [Category("Layout")] + public bool Sizable { get; set; } + + [DllImport("user32.dll")] + public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + + [DllImport("user32.dll")] + public static extern bool ReleaseCapture(); + + [DllImport("user32.dll")] + public static extern int TrackPopupMenuEx(IntPtr hmenu, uint fuFlags, int x, int y, IntPtr hwnd, IntPtr lptpm); + + [DllImport("user32.dll")] + public static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert); + + [DllImport("user32.dll")] + public static extern IntPtr MonitorFromWindow(IntPtr hwnd, uint dwFlags); + + [DllImport("User32.dll", CharSet = CharSet.Auto)] + public static extern bool GetMonitorInfo(HandleRef hmonitor, [In, Out] MONITORINFOEX info); + + public const int WM_NCLBUTTONDOWN = 0xA1; + public const int HT_CAPTION = 0x2; + public const int WM_MOUSEMOVE = 0x0200; + public const int WM_LBUTTONDOWN = 0x0201; + public const int WM_LBUTTONUP = 0x0202; + public const int WM_LBUTTONDBLCLK = 0x0203; + public const int WM_RBUTTONDOWN = 0x0204; + private const int HTBOTTOMLEFT = 16; + private const int HTBOTTOMRIGHT = 17; + private const int HTLEFT = 10; + private const int HTRIGHT = 11; + private const int HTBOTTOM = 15; + private const int HTTOP = 12; + private const int HTTOPLEFT = 13; + private const int HTTOPRIGHT = 14; + private const int BORDER_WIDTH = 7; + + private ResizeDirection _resizeDir; + private ButtonState _buttonState = ButtonState.None; + + private const int WMSZ_TOP = 3; + private const int WMSZ_TOPLEFT = 4; + private const int WMSZ_TOPRIGHT = 5; + private const int WMSZ_LEFT = 1; + private const int WMSZ_RIGHT = 2; + private const int WMSZ_BOTTOM = 6; + private const int WMSZ_BOTTOMLEFT = 7; + private const int WMSZ_BOTTOMRIGHT = 8; + + private readonly Dictionary _resizingLocationsToCmd = new Dictionary + { + {HTTOP, WMSZ_TOP}, + {HTTOPLEFT, WMSZ_TOPLEFT}, + {HTTOPRIGHT, WMSZ_TOPRIGHT}, + {HTLEFT, WMSZ_LEFT}, + {HTRIGHT, WMSZ_RIGHT}, + {HTBOTTOM, WMSZ_BOTTOM}, + {HTBOTTOMLEFT, WMSZ_BOTTOMLEFT}, + {HTBOTTOMRIGHT, WMSZ_BOTTOMRIGHT} + }; + + 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 uint TPM_LEFTALIGN = 0x0000; + private const uint TPM_RETURNCMD = 0x0100; + private const int WM_SYSCOMMAND = 0x0112; + private const int WS_MINIMIZEBOX = 0x20000; + private const int WS_SYSMENU = 0x00080000; + private const int MONITOR_DEFAULTTONEAREST = 2; + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 4)] + public class MONITORINFOEX + { + public int cbSize = Marshal.SizeOf(typeof(MONITORINFOEX)); + public RECT rcMonitor = new RECT(); + public RECT rcWork = new RECT(); public int dwFlags = 0; - - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] - public char[] szDevice = new char[32]; - } - - [StructLayout(LayoutKind.Sequential)] - public struct RECT - { - public int left; - public int top; - public int right; - public int bottom; - - public int Width() - { - return right - left; - } - - public int Height() - { - return bottom - top; - } - } - - private enum ResizeDirection - { - BottomLeft, - Left, - Right, - BottomRight, - Bottom, - None - } - - private enum ButtonState - { - XOver, - MaxOver, - MinOver, - XDown, - MaxDown, - MinDown, - None - } - - private readonly Cursor[] _resizeCursors = { Cursors.SizeNESW, Cursors.SizeWE, Cursors.SizeNWSE, Cursors.SizeWE, Cursors.SizeNS }; - - private Rectangle _minButtonBounds; - private Rectangle _maxButtonBounds; - private Rectangle _xButtonBounds; - private Rectangle _actionBarBounds; - - public Rectangle UserArea - { - get - { - return new Rectangle(0, STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT, Width, Height - (STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT)); - } - } - - private Rectangle _statusBarBounds; - private bool _maximized; - private Size _previousSize; - private Point _previousLocation; - private bool _headerMouseDown; - - private Padding originalPadding; - - public MaterialForm() - { - DrawerWidth = 200; - DrawerIsOpen = false; - DrawerShowIconsWhenHidden = false; - DrawerAutoHide = true; - DrawerIndicatorWidth = 0; - DrawerHighlightWithAccent = true; - DrawerBackgroundWithAccent = false; - - FormBorderStyle = FormBorderStyle.None; - Sizable = true; - DoubleBuffered = true; - SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true); - - // This enables the form to trigger the MouseMove event even when mouse is over another control - Application.AddMessageFilter(new MouseMessageFilter()); - MouseMessageFilter.MouseMove += OnGlobalMouseMove; - - _clickAnimManager = new AnimationManager() - { - AnimationType = AnimationType.EaseOut, - Increment = 0.04 - }; - _clickAnimManager.OnAnimationProgress += sender => Invalidate(); - - // Drawer - Shown += (sender, e) => - { - if (DesignMode || IsDisposed) - return; - AddDrawerOverlayForm(); - }; - } - - // Drawer overlay and speed improvements - private bool _drawerShowIconsWhenHidden; - - [Category("Drawer")] - public bool DrawerShowIconsWhenHidden - { - get { return _drawerShowIconsWhenHidden; } - set - { - _drawerShowIconsWhenHidden = value; - if (drawerControl != null) - { - drawerControl.ShowIconsWhenHidden = _drawerShowIconsWhenHidden; - drawerControl.Refresh(); - } - } - } - - [Category("Drawer")] - public int DrawerWidth { get; set; } - - [Category("Drawer")] - public bool DrawerAutoHide { get; set; } - - [Category("Drawer")] - public int DrawerIndicatorWidth { get; set; } - + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] + public char[] szDevice = new char[32]; + } + + [StructLayout(LayoutKind.Sequential)] + public struct RECT + { + public int left; + public int top; + public int right; + public int bottom; + + public int Width() + { + return right - left; + } + + public int Height() + { + return bottom - top; + } + } + + private enum ResizeDirection + { + BottomLeft, + Left, + Right, + BottomRight, + Bottom, + None + } + + private enum ButtonState + { + XOver, + MaxOver, + MinOver, + XDown, + MaxDown, + MinDown, + None + } + + private readonly Cursor[] _resizeCursors = { Cursors.SizeNESW, Cursors.SizeWE, Cursors.SizeNWSE, Cursors.SizeWE, Cursors.SizeNS }; + + private Rectangle _minButtonBounds; + private Rectangle _maxButtonBounds; + private Rectangle _xButtonBounds; + private Rectangle _actionBarBounds; + + public Rectangle UserArea + { + get + { + return new Rectangle(0, STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT, Width, Height - (STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT)); + } + } + + private Rectangle _statusBarBounds; + private bool _maximized; + private Size _previousSize; + private Point _previousLocation; + private bool _headerMouseDown; + private Padding originalPadding; + + public MaterialForm() + { + DrawerWidth = 200; + DrawerIsOpen = false; + DrawerShowIconsWhenHidden = false; + DrawerAutoHide = true; + DrawerIndicatorWidth = 0; + DrawerHighlightWithAccent = true; + DrawerBackgroundWithAccent = false; + + FormBorderStyle = FormBorderStyle.None; + Sizable = true; + DoubleBuffered = true; + SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true); + + // This enables the form to trigger the MouseMove event even when mouse is over another control + Application.AddMessageFilter(new MouseMessageFilter()); + MouseMessageFilter.MouseMove += OnGlobalMouseMove; + + _clickAnimManager = new AnimationManager() + { + AnimationType = AnimationType.EaseOut, + Increment = 0.04 + }; + _clickAnimManager.OnAnimationProgress += sender => Invalidate(); + + // Drawer + Shown += (sender, e) => + { + if (DesignMode || IsDisposed) + return; + AddDrawerOverlayForm(); + }; + } + + // Drawer overlay and speed improvements + private bool _drawerShowIconsWhenHidden; + + [Category("Drawer")] + public bool DrawerShowIconsWhenHidden + { + get { return _drawerShowIconsWhenHidden; } + set + { + _drawerShowIconsWhenHidden = value; + if (drawerControl != null) + { + drawerControl.ShowIconsWhenHidden = _drawerShowIconsWhenHidden; + drawerControl.Refresh(); + } + } + } + + [Category("Drawer")] + public int DrawerWidth { get; set; } + + [Category("Drawer")] + public bool DrawerAutoHide { get; set; } + + [Category("Drawer")] + public int DrawerIndicatorWidth { get; set; } + private bool _drawerIsOpen; - - [Category("Drawer")] - public bool DrawerIsOpen - { - get - { - return _drawerIsOpen; - } - set - { - _drawerIsOpen = value; - if (drawerControl != null) - { - if (value) - drawerControl.Show(); - else - drawerControl.Hide(); - } - } - } - + + [Category("Drawer")] + public bool DrawerIsOpen + { + get + { + return _drawerIsOpen; + } + set + { + _drawerIsOpen = value; + if (drawerControl != null) + { + if (value) + drawerControl.Show(); + else + drawerControl.Hide(); + } + } + } + private bool _drawerUseColors; - - [Category("Drawer")] - public bool DrawerUseColors - { - get - { - return _drawerUseColors; - } - set - { - _drawerUseColors = value; - if (drawerControl != null) - { - drawerControl.UseColors = value; - drawerControl.Refresh(); - } - } - } - + + [Category("Drawer")] + public bool DrawerUseColors + { + get + { + return _drawerUseColors; + } + set + { + _drawerUseColors = value; + if (drawerControl != null) + { + drawerControl.UseColors = value; + drawerControl.Refresh(); + } + } + } + private bool _drawerHighlightWithAccent; - - [Category("Drawer")] - public bool DrawerHighlightWithAccent - { - get - { - return _drawerHighlightWithAccent; - } - set - { - _drawerHighlightWithAccent = value; - if (drawerControl != null) - { - drawerControl.HighlightWithAccent = value; - drawerControl.Refresh(); - } - } - } - + + [Category("Drawer")] + public bool DrawerHighlightWithAccent + { + get + { + return _drawerHighlightWithAccent; + } + set + { + _drawerHighlightWithAccent = value; + if (drawerControl != null) + { + drawerControl.HighlightWithAccent = value; + drawerControl.Refresh(); + } + } + } + private bool _backgroundWithAccent; - - [Category("Drawer")] - public bool DrawerBackgroundWithAccent - { - get - { - return _backgroundWithAccent; - } - set - { - _backgroundWithAccent = value; - if (drawerControl != null) - { - drawerControl.BackgroundWithAccent = value; - drawerControl.Refresh(); - } - } - } - - private MaterialDrawer drawerControl = new MaterialDrawer(); - - [Category("Drawer")] - public MaterialTabControl DrawerTabControl { get; set; } - - private AnimationManager _drawerShowHideAnimManager; - - protected void AddDrawerOverlayForm() - { - Form drawerOverlay = new Form(); - Form drawerForm = new Form(); - - if (DrawerTabControl == null) - return; - - // Form opacity fade animation; - _drawerShowHideAnimManager = new AnimationManager - { - AnimationType = AnimationType.EaseInOut, - Increment = 0.04 - }; - - _drawerShowHideAnimManager.OnAnimationProgress += (sender) => - { - drawerOverlay.Opacity = (float)(_drawerShowHideAnimManager.GetProgress() * 0.55f); - }; - - int H = Size.Height - _statusBarBounds.Height - _actionBarBounds.Height; - int Y = Location.Y + _statusBarBounds.Height + _actionBarBounds.Height; - - // Drawer Form definitions - drawerForm.BackColor = Color.LimeGreen; - drawerForm.TransparencyKey = Color.LimeGreen; - drawerForm.MinimizeBox = false; - drawerForm.MaximizeBox = false; - drawerForm.Text = ""; - drawerForm.ShowIcon = false; - drawerForm.ControlBox = false; - drawerForm.FormBorderStyle = FormBorderStyle.None; - drawerForm.Visible = true; - drawerForm.Size = new Size(DrawerWidth, H); - drawerForm.Location = new Point(Location.X, Y); - drawerForm.ShowInTaskbar = false; - drawerForm.Owner = drawerOverlay; - drawerForm.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; - - // Add drawer to overlay form - drawerForm.Controls.Add(drawerControl); - drawerControl.Location = new Point(0, 0); - drawerControl.Size = new Size(DrawerWidth, H); - drawerControl.Anchor = (AnchorStyles.Top | AnchorStyles.Bottom); - drawerControl.BaseTabControl = DrawerTabControl; - drawerControl.ShowIconsWhenHidden = true; - // Init Options - drawerControl.IsOpen = DrawerIsOpen; - drawerControl.ShowIconsWhenHidden = DrawerShowIconsWhenHidden; - drawerControl.AutoHide = DrawerAutoHide; - drawerControl.IndicatorWidth = DrawerIndicatorWidth; - drawerControl.HighlightWithAccent = DrawerHighlightWithAccent; - drawerControl.BackgroundWithAccent = DrawerBackgroundWithAccent; - - // Changing colors or theme - SkinManager.ThemeChanged += sender => - { - drawerForm.Refresh(); - }; - SkinManager.ColorSchemeChanged += sender => - { - drawerForm.Refresh(); - }; - - // Overlay Form definitions - drawerOverlay.BackColor = Color.Black; - drawerOverlay.Opacity = 0; - drawerOverlay.MinimizeBox = false; - drawerOverlay.MaximizeBox = false; - drawerOverlay.Text = ""; - drawerOverlay.ShowIcon = false; - drawerOverlay.ControlBox = false; - drawerOverlay.FormBorderStyle = FormBorderStyle.None; - drawerOverlay.Visible = true; - drawerOverlay.Size = new Size(Size.Width, H); - drawerOverlay.Location = new Point(Location.X, Y); - drawerOverlay.ShowInTaskbar = false; - drawerOverlay.Owner = this; - drawerOverlay.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; - - // Visible, Resize and move events - VisibleChanged += (sender, e) => - { - drawerForm.Visible = Visible; - drawerOverlay.Visible = Visible; - }; - - Resize += (sender, e) => - { - H = Size.Height - _statusBarBounds.Height - _actionBarBounds.Height; - drawerForm.Size = new Size(DrawerWidth, H); - drawerOverlay.Size = new Size(Size.Width, H); - }; - - Move += (sender, e) => - { - Point pos = new Point(Location.X, Location.Y + _statusBarBounds.Height + _actionBarBounds.Height); - drawerForm.Location = pos; - drawerOverlay.Location = pos; - }; - - // Close when click outside menu - drawerOverlay.Click += (sender, e) => - { - drawerControl.Hide(); - }; - - // Animation and visibility - drawerControl.DrawerBeginOpen += (sender) => - { - _drawerShowHideAnimManager.StartNewAnimation(AnimationDirection.In); - }; - - drawerControl.DrawerBeginClose += (sender) => - { - _drawerShowHideAnimManager.StartNewAnimation(AnimationDirection.Out); - }; - - // Form Padding corrections - - if (Padding.Top < (_statusBarBounds.Height + _actionBarBounds.Height)) - Padding = new Padding(Padding.Left, (_statusBarBounds.Height + _actionBarBounds.Height), Padding.Right, Padding.Bottom); - - originalPadding = Padding; - - drawerControl.DrawerShowIconsWhenHiddenChanged += FixFormPadding; - FixFormPadding(this); - } - - private void FixFormPadding(object sender) - { - if (drawerControl.ShowIconsWhenHidden && - Padding.Left < drawerControl.MinWidth) Padding = new Padding(drawerControl.MinWidth, originalPadding.Top, originalPadding.Right, originalPadding.Bottom); - else - Padding = originalPadding; - } - - protected override void WndProc(ref Message m) - { - base.WndProc(ref m); - if (DesignMode || IsDisposed) - return; - - // Drawer - if (DrawerTabControl != null && (m.Msg == WM_LBUTTONDOWN || m.Msg == WM_LBUTTONDBLCLK) && _drawerIconRect.Contains(PointToClient(Cursor.Position))) - { - drawerControl.Toggle(); - _clickAnimManager.SetProgress(0); - _clickAnimManager.StartNewAnimation(AnimationDirection.In); - _animationSource = (PointToClient(Cursor.Position)); - } - // Double click to maximize - else if (m.Msg == WM_LBUTTONDBLCLK) - { - MaximizeWindow(!_maximized); - } - // move a maximized window - else if (m.Msg == WM_MOUSEMOVE && _maximized && - (_statusBarBounds.Contains(PointToClient(Cursor.Position)) || _actionBarBounds.Contains(PointToClient(Cursor.Position))) && - !(_minButtonBounds.Contains(PointToClient(Cursor.Position)) || _maxButtonBounds.Contains(PointToClient(Cursor.Position)) || _xButtonBounds.Contains(PointToClient(Cursor.Position)))) - { - if (_headerMouseDown) - { - _maximized = false; - _headerMouseDown = false; - - var mousePoint = PointToClient(Cursor.Position); - if (mousePoint.X < Width / 2) - Location = mousePoint.X < _previousSize.Width / 2 ? - new Point(Cursor.Position.X - mousePoint.X, Cursor.Position.Y - mousePoint.Y) : - new Point(Cursor.Position.X - _previousSize.Width / 2, Cursor.Position.Y - mousePoint.Y); - else - Location = Width - mousePoint.X < _previousSize.Width / 2 ? - new Point(Cursor.Position.X - _previousSize.Width + Width - mousePoint.X, Cursor.Position.Y - mousePoint.Y) : - new Point(Cursor.Position.X - _previousSize.Width / 2, Cursor.Position.Y - mousePoint.Y); - - Size = _previousSize; - ReleaseCapture(); - SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); - } - } - // Status bar buttons - else if (m.Msg == WM_LBUTTONDOWN && - (_statusBarBounds.Contains(PointToClient(Cursor.Position)) || _actionBarBounds.Contains(PointToClient(Cursor.Position))) && - !(_minButtonBounds.Contains(PointToClient(Cursor.Position)) || _maxButtonBounds.Contains(PointToClient(Cursor.Position)) || _xButtonBounds.Contains(PointToClient(Cursor.Position)))) - { - if (!_maximized) - { - ReleaseCapture(); - SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); - } - else - { - _headerMouseDown = true; - } - } - // Default context menu - else if (m.Msg == WM_RBUTTONDOWN) - { - Point cursorPos = PointToClient(Cursor.Position); - - if (_statusBarBounds.Contains(cursorPos) && !_minButtonBounds.Contains(cursorPos) && - !_maxButtonBounds.Contains(cursorPos) && !_xButtonBounds.Contains(cursorPos)) - { - // Show default system menu when right clicking titlebar - var id = TrackPopupMenuEx(GetSystemMenu(Handle, false), TPM_LEFTALIGN | TPM_RETURNCMD, Cursor.Position.X, Cursor.Position.Y, Handle, IntPtr.Zero); - - // Pass the command as a WM_SYSCOMMAND message - SendMessage(Handle, WM_SYSCOMMAND, id, 0); - } - } - else if (m.Msg == WM_NCLBUTTONDOWN) - { - // This re-enables resizing by letting the application know when the - // user is trying to resize a side. This is disabled by default when using WS_SYSMENU. - if (!Sizable) - return; - - byte bFlag = 0; - - // Get which side to resize from - if (_resizingLocationsToCmd.ContainsKey((int)m.WParam)) - bFlag = (byte)_resizingLocationsToCmd[(int)m.WParam]; - - if (bFlag != 0) - SendMessage(Handle, WM_SYSCOMMAND, 0xF000 | bFlag, (int)m.LParam); - } - else if (m.Msg == WM_LBUTTONUP) - { - _headerMouseDown = false; - } - } - - protected override CreateParams CreateParams - { - get - { - var par = base.CreateParams; - // WS_SYSMENU: Trigger the creation of the system menu - // WS_MINIMIZEBOX: Allow minimizing from taskbar - par.Style = par.Style | WS_MINIMIZEBOX | WS_SYSMENU; // Turn on the WS_MINIMIZEBOX style flag - return par; - } - } - - protected override void OnMouseDown(MouseEventArgs e) - { - if (DesignMode) - return; - UpdateButtons(e); - - if (e.Button == MouseButtons.Left && !_maximized) - ResizeForm(_resizeDir); - base.OnMouseDown(e); - } - - protected override void OnMouseLeave(EventArgs e) - { - base.OnMouseLeave(e); - if (DesignMode) - return; - _buttonState = ButtonState.None; - Invalidate(); - } - - protected override void OnMouseMove(MouseEventArgs e) - { - base.OnMouseMove(e); - - if (DesignMode) - return; - - if (Sizable) - { - //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) - { - _resizeDir = ResizeDirection.BottomLeft; - Cursor = Cursors.SizeNESW; - } - else if (e.Location.X < BORDER_WIDTH && !isChildUnderMouse && !_maximized) - { - _resizeDir = ResizeDirection.Left; - Cursor = Cursors.SizeWE; - } - else if (e.Location.X > Width - BORDER_WIDTH && e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_maximized) - { - _resizeDir = ResizeDirection.BottomRight; - Cursor = Cursors.SizeNWSE; - } - else if (e.Location.X > Width - BORDER_WIDTH && !isChildUnderMouse && !_maximized) - { - _resizeDir = ResizeDirection.Right; - Cursor = Cursors.SizeWE; - } - else if (e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_maximized) - { - _resizeDir = ResizeDirection.Bottom; - Cursor = Cursors.SizeNS; - } - else - { - _resizeDir = ResizeDirection.None; - - //Only reset the cursor when needed, this prevents it from flickering when a child control changes the cursor to its own needs - if (_resizeCursors.Contains(Cursor)) - { - Cursor = Cursors.Default; - } - } - } - - UpdateButtons(e); - } - - protected void OnGlobalMouseMove(object sender, MouseEventArgs e) - { - if (IsDisposed) - return; - // Convert to client position and pass to Form.MouseMove - var clientCursorPos = PointToClient(e.Location); - var newE = new MouseEventArgs(MouseButtons.None, 0, clientCursorPos.X, clientCursorPos.Y, 0); - OnMouseMove(newE); - } - - private void UpdateButtons(MouseEventArgs e, bool up = false) - { - if (DesignMode) - return; - var oldState = _buttonState; - bool showMin = MinimizeBox && ControlBox; - bool showMax = MaximizeBox && ControlBox; - - if (e.Button == MouseButtons.Left && !up) - { - if (showMin && !showMax && _maxButtonBounds.Contains(e.Location)) - _buttonState = ButtonState.MinDown; - else if (showMin && showMax && _minButtonBounds.Contains(e.Location)) - _buttonState = ButtonState.MinDown; - else if (showMax && _maxButtonBounds.Contains(e.Location)) - _buttonState = ButtonState.MaxDown; - else if (ControlBox && _xButtonBounds.Contains(e.Location)) - _buttonState = ButtonState.XDown; - else - _buttonState = ButtonState.None; - } - else - { - if (showMin && !showMax && _maxButtonBounds.Contains(e.Location)) - { - _buttonState = ButtonState.MinOver; - - if (oldState == ButtonState.MinDown && up) - WindowState = FormWindowState.Minimized; - } - else if (showMin && showMax && _minButtonBounds.Contains(e.Location)) - { - _buttonState = ButtonState.MinOver; - - if (oldState == ButtonState.MinDown && up) - WindowState = FormWindowState.Minimized; - } - else if (MaximizeBox && ControlBox && _maxButtonBounds.Contains(e.Location)) - { - _buttonState = ButtonState.MaxOver; - - if (oldState == ButtonState.MaxDown && up) - MaximizeWindow(!_maximized); - } - else if (ControlBox && _xButtonBounds.Contains(e.Location)) - { - _buttonState = ButtonState.XOver; - - if (oldState == ButtonState.XDown && up) - Close(); - } - else - _buttonState = ButtonState.None; - } - - if (oldState != _buttonState) - Invalidate(); - } - - private void MaximizeWindow(bool maximize) - { - if (!MaximizeBox || !ControlBox) - return; - - _maximized = maximize; - - if (maximize) - { - var monitorHandle = MonitorFromWindow(Handle, MONITOR_DEFAULTTONEAREST); - var monitorInfo = new MONITORINFOEX(); - GetMonitorInfo(new HandleRef(null, monitorHandle), monitorInfo); - _previousSize = Size; - _previousLocation = Location; - Size = new Size(monitorInfo.rcWork.Width(), monitorInfo.rcWork.Height()); - Location = new Point(monitorInfo.rcWork.left, monitorInfo.rcWork.top); - } - else - { - Size = _previousSize; - Location = _previousLocation; - } - } - - protected override void OnMouseUp(MouseEventArgs e) - { - if (DesignMode) - return; - UpdateButtons(e, true); - - base.OnMouseUp(e); - ReleaseCapture(); - } - - private void ResizeForm(ResizeDirection direction) - { - if (DesignMode) - return; - var dir = -1; - switch (direction) - { - case ResizeDirection.BottomLeft: - dir = HTBOTTOMLEFT; - break; - - case ResizeDirection.Left: - dir = HTLEFT; - break; - - case ResizeDirection.Right: - dir = HTRIGHT; - break; - - case ResizeDirection.BottomRight: - dir = HTBOTTOMRIGHT; - break; - - case ResizeDirection.Bottom: - dir = HTBOTTOM; - break; - } - - ReleaseCapture(); - if (dir != -1) - { - SendMessage(Handle, WM_NCLBUTTONDOWN, dir, 0); - } - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - _minButtonBounds = new Rectangle((Width) - 3 * STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); - _maxButtonBounds = new Rectangle((Width) - 2 * STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); - _xButtonBounds = new Rectangle((Width) - 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); - } - - protected override void OnPaint(PaintEventArgs e) - { - var g = e.Graphics; - g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; - - g.Clear(SkinManager.BackdropColor); - g.FillRectangle(SkinManager.ColorScheme.DarkPrimaryBrush, _statusBarBounds); - g.FillRectangle(SkinManager.ColorScheme.PrimaryBrush, _actionBarBounds); - - //Draw border - using (var borderPen = new Pen(SkinManager.DividersColor, 1)) - { - g.DrawLine(borderPen, new Point(0, _actionBarBounds.Bottom), new Point(0, Height - 2)); - g.DrawLine(borderPen, new Point(Width - 1, _actionBarBounds.Bottom), new Point(Width - 1, Height - 2)); - g.DrawLine(borderPen, new Point(0, Height - 1), new Point(Width - 1, Height - 1)); - } - - // Determine whether or not we even should be drawing the buttons. - bool showMin = MinimizeBox && ControlBox; - bool showMax = MaximizeBox && ControlBox; - var hoverBrush = SkinManager.BackgroundHoverBrush; - var downBrush = SkinManager.BackgroundFocusBrush; - - // When MaximizeButton == false, the minimize button will be painted in its place - if (_buttonState == ButtonState.MinOver && showMin) - g.FillRectangle(hoverBrush, showMax ? _minButtonBounds : _maxButtonBounds); - - if (_buttonState == ButtonState.MinDown && showMin) - g.FillRectangle(downBrush, showMax ? _minButtonBounds : _maxButtonBounds); - - if (_buttonState == ButtonState.MaxOver && showMax) - g.FillRectangle(hoverBrush, _maxButtonBounds); - - if (_buttonState == ButtonState.MaxDown && showMax) - g.FillRectangle(downBrush, _maxButtonBounds); - - if (_buttonState == ButtonState.XOver && ControlBox) - g.FillRectangle(hoverBrush, _xButtonBounds); - - if (_buttonState == ButtonState.XDown && ControlBox) - g.FillRectangle(downBrush, _xButtonBounds); - - using (var formButtonsPen = new Pen(SkinManager.ColorScheme.TextColor, 2)) - { - // Minimize button. - if (showMin) - { - int x = showMax ? _minButtonBounds.X : _maxButtonBounds.X; - int y = showMax ? _minButtonBounds.Y : _maxButtonBounds.Y; - - g.DrawLine( - formButtonsPen, - x + (int)(_minButtonBounds.Width * 0.33), - y + (int)(_minButtonBounds.Height * 0.66), - x + (int)(_minButtonBounds.Width * 0.66), - y + (int)(_minButtonBounds.Height * 0.66) - ); - } - - // Maximize button - if (showMax) - { - g.DrawRectangle( - formButtonsPen, - _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.33), - _maxButtonBounds.Y + (int)(_maxButtonBounds.Height * 0.36), - (int)(_maxButtonBounds.Width * 0.39), - (int)(_maxButtonBounds.Height * 0.31) - ); - } - - // Close button - if (ControlBox) - { - g.DrawLine( - formButtonsPen, - _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.33), - _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.33), - _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.66), - _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.66) - ); - - g.DrawLine( - formButtonsPen, - _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.66), - _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.33), - _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.33), - _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.66)); - } - } - - // Drawer Icon - if (DrawerTabControl != null) - { - _drawerIconRect = new Rectangle(SkinManager.FORM_PADDING / 2, STATUS_BAR_HEIGHT, 24 + SkinManager.FORM_PADDING + SkinManager.FORM_PADDING / 2, ACTION_BAR_HEIGHT); - // Ripple - if (_clickAnimManager.IsAnimating()) - { - var clickAnimProgress = _clickAnimManager.GetProgress(); - - var rippleBrush = new SolidBrush(Color.FromArgb((int)(51 - (clickAnimProgress * 50)), Color.White)); - var rippleSize = (int)(clickAnimProgress * _drawerIconRect.Width * 1.75); - - g.SetClip(_drawerIconRect); - g.FillEllipse(rippleBrush, new Rectangle(_animationSource.X - rippleSize / 2, _animationSource.Y - rippleSize / 2, rippleSize, rippleSize)); - g.ResetClip(); - rippleBrush.Dispose(); - } - - using (var formButtonsPen = new Pen(SkinManager.ColorScheme.TextColor, 2)) - { - // Middle line - g.DrawLine( - formButtonsPen, - _drawerIconRect.X + (int)(SkinManager.FORM_PADDING), - _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2), - _drawerIconRect.X + (int)(SkinManager.FORM_PADDING) + 18, - _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2)); - - // Bottom line - g.DrawLine( - formButtonsPen, - _drawerIconRect.X + (int)(SkinManager.FORM_PADDING), - _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2) - 6, - _drawerIconRect.X + (int)(SkinManager.FORM_PADDING) + 18, - _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2) - 6); - - // Top line - g.DrawLine( - formButtonsPen, - _drawerIconRect.X + (int)(SkinManager.FORM_PADDING), - _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2) + 6, - _drawerIconRect.X + (int)(SkinManager.FORM_PADDING) + 18, - _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2) + 6); - } - } - - //Form title - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - Rectangle textLocation = new Rectangle(SkinManager.FORM_PADDING + (DrawerTabControl != null ? 24 + (int)(SkinManager.FORM_PADDING * 1.5) : 0), STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT); - NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.H6), - SkinManager.ColorScheme.TextColor, - textLocation.Location, - textLocation.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - } - } - - private readonly AnimationManager _clickAnimManager; - - private Rectangle _drawerIconRect; - - private Point _animationSource; - - private void InitializeComponent() - { - this.SuspendLayout(); - // - // MaterialForm - // - this.ClientSize = new System.Drawing.Size(284, 261); - this.MinimumSize = new System.Drawing.Size(300, 200); - this.Name = "MaterialForm"; - this.Padding = new System.Windows.Forms.Padding(3, 64, 3, 3); - this.Load += new System.EventHandler(this.MaterialForm_Load); - this.ResumeLayout(false); - } - - private void MaterialForm_Load(object sender, EventArgs e) - { - } - } - - public class MouseMessageFilter : IMessageFilter - { - private const int WM_MOUSEMOVE = 0x0200; - - public static event MouseEventHandler MouseMove; - - public bool PreFilterMessage(ref Message m) - { - if (m.Msg == WM_MOUSEMOVE) - { - if (MouseMove != null) - { - int x = Control.MousePosition.X, y = Control.MousePosition.Y; - - MouseMove(null, new MouseEventArgs(MouseButtons.None, 0, x, y, 0)); - } - } - return false; - } - } + + [Category("Drawer")] + public bool DrawerBackgroundWithAccent + { + get + { + return _backgroundWithAccent; + } + set + { + _backgroundWithAccent = value; + if (drawerControl != null) + { + drawerControl.BackgroundWithAccent = value; + drawerControl.Refresh(); + } + } + } + + private MaterialDrawer drawerControl = new MaterialDrawer(); + + [Category("Drawer")] + public MaterialTabControl DrawerTabControl { get; set; } + + private AnimationManager _drawerShowHideAnimManager; + + protected void AddDrawerOverlayForm() + { + Form drawerOverlay = new Form(); + Form drawerForm = new Form(); + + if (DrawerTabControl == null) + return; + + // Form opacity fade animation; + _drawerShowHideAnimManager = new AnimationManager + { + AnimationType = AnimationType.EaseInOut, + Increment = 0.04 + }; + + _drawerShowHideAnimManager.OnAnimationProgress += (sender) => + { + drawerOverlay.Opacity = (float)(_drawerShowHideAnimManager.GetProgress() * 0.55f); + }; + + int H = Size.Height - _statusBarBounds.Height - _actionBarBounds.Height; + int Y = Location.Y + _statusBarBounds.Height + _actionBarBounds.Height; + + // Drawer Form definitions + drawerForm.BackColor = Color.LimeGreen; + drawerForm.TransparencyKey = Color.LimeGreen; + drawerForm.MinimizeBox = false; + drawerForm.MaximizeBox = false; + drawerForm.Text = ""; + drawerForm.ShowIcon = false; + drawerForm.ControlBox = false; + drawerForm.FormBorderStyle = FormBorderStyle.None; + drawerForm.Visible = true; + drawerForm.Size = new Size(DrawerWidth, H); + drawerForm.Location = new Point(Location.X, Y); + drawerForm.ShowInTaskbar = false; + drawerForm.Owner = drawerOverlay; + drawerForm.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; + + // Add drawer to overlay form + drawerForm.Controls.Add(drawerControl); + drawerControl.Location = new Point(0, 0); + drawerControl.Size = new Size(DrawerWidth, H); + drawerControl.Anchor = (AnchorStyles.Top | AnchorStyles.Bottom); + drawerControl.BaseTabControl = DrawerTabControl; + drawerControl.ShowIconsWhenHidden = true; + // Init Options + drawerControl.IsOpen = DrawerIsOpen; + drawerControl.ShowIconsWhenHidden = DrawerShowIconsWhenHidden; + drawerControl.AutoHide = DrawerAutoHide; + drawerControl.IndicatorWidth = DrawerIndicatorWidth; + drawerControl.HighlightWithAccent = DrawerHighlightWithAccent; + drawerControl.BackgroundWithAccent = DrawerBackgroundWithAccent; + + // Changing colors or theme + SkinManager.ThemeChanged += sender => + { + drawerForm.Refresh(); + }; + SkinManager.ColorSchemeChanged += sender => + { + drawerForm.Refresh(); + }; + + // Overlay Form definitions + drawerOverlay.BackColor = Color.Black; + drawerOverlay.Opacity = 0; + drawerOverlay.MinimizeBox = false; + drawerOverlay.MaximizeBox = false; + drawerOverlay.Text = ""; + drawerOverlay.ShowIcon = false; + drawerOverlay.ControlBox = false; + drawerOverlay.FormBorderStyle = FormBorderStyle.None; + drawerOverlay.Visible = true; + drawerOverlay.Size = new Size(Size.Width, H); + drawerOverlay.Location = new Point(Location.X, Y); + drawerOverlay.ShowInTaskbar = false; + drawerOverlay.Owner = this; + drawerOverlay.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; + + // Visible, Resize and move events + VisibleChanged += (sender, e) => + { + drawerForm.Visible = Visible; + drawerOverlay.Visible = Visible; + }; + + Resize += (sender, e) => + { + H = Size.Height - _statusBarBounds.Height - _actionBarBounds.Height; + drawerForm.Size = new Size(DrawerWidth, H); + drawerOverlay.Size = new Size(Size.Width, H); + }; + + Move += (sender, e) => + { + Point pos = new Point(Location.X, Location.Y + _statusBarBounds.Height + _actionBarBounds.Height); + drawerForm.Location = pos; + drawerOverlay.Location = pos; + }; + + // Close when click outside menu + drawerOverlay.Click += (sender, e) => + { + drawerControl.Hide(); + }; + + // Animation and visibility + drawerControl.DrawerBeginOpen += (sender) => + { + _drawerShowHideAnimManager.StartNewAnimation(AnimationDirection.In); + }; + + drawerControl.DrawerBeginClose += (sender) => + { + _drawerShowHideAnimManager.StartNewAnimation(AnimationDirection.Out); + }; + + // Form Padding corrections + + if (Padding.Top < (_statusBarBounds.Height + _actionBarBounds.Height)) + Padding = new Padding(Padding.Left, (_statusBarBounds.Height + _actionBarBounds.Height), Padding.Right, Padding.Bottom); + + originalPadding = Padding; + + drawerControl.DrawerShowIconsWhenHiddenChanged += FixFormPadding; + FixFormPadding(this); + } + + private void FixFormPadding(object sender) + { + if (drawerControl.ShowIconsWhenHidden && + Padding.Left < drawerControl.MinWidth) Padding = new Padding(drawerControl.MinWidth, originalPadding.Top, originalPadding.Right, originalPadding.Bottom); + else + Padding = originalPadding; + } + + protected override void WndProc(ref Message m) + { + base.WndProc(ref m); + if (DesignMode || IsDisposed) + return; + + // Drawer + if (DrawerTabControl != null && (m.Msg == WM_LBUTTONDOWN || m.Msg == WM_LBUTTONDBLCLK) && _drawerIconRect.Contains(PointToClient(Cursor.Position))) + { + drawerControl.Toggle(); + _clickAnimManager.SetProgress(0); + _clickAnimManager.StartNewAnimation(AnimationDirection.In); + _animationSource = (PointToClient(Cursor.Position)); + } + // Double click to maximize + else if (m.Msg == WM_LBUTTONDBLCLK) + { + MaximizeWindow(!_maximized); + } + // move a maximized window + else if (m.Msg == WM_MOUSEMOVE && _maximized && + (_statusBarBounds.Contains(PointToClient(Cursor.Position)) || _actionBarBounds.Contains(PointToClient(Cursor.Position))) && + !(_minButtonBounds.Contains(PointToClient(Cursor.Position)) || _maxButtonBounds.Contains(PointToClient(Cursor.Position)) || _xButtonBounds.Contains(PointToClient(Cursor.Position)))) + { + if (_headerMouseDown) + { + _maximized = false; + _headerMouseDown = false; + + var mousePoint = PointToClient(Cursor.Position); + if (mousePoint.X < Width / 2) + Location = mousePoint.X < _previousSize.Width / 2 ? + new Point(Cursor.Position.X - mousePoint.X, Cursor.Position.Y - mousePoint.Y) : + new Point(Cursor.Position.X - _previousSize.Width / 2, Cursor.Position.Y - mousePoint.Y); + else + Location = Width - mousePoint.X < _previousSize.Width / 2 ? + new Point(Cursor.Position.X - _previousSize.Width + Width - mousePoint.X, Cursor.Position.Y - mousePoint.Y) : + new Point(Cursor.Position.X - _previousSize.Width / 2, Cursor.Position.Y - mousePoint.Y); + + Size = _previousSize; + ReleaseCapture(); + SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); + } + } + // Status bar buttons + else if (m.Msg == WM_LBUTTONDOWN && + (_statusBarBounds.Contains(PointToClient(Cursor.Position)) || _actionBarBounds.Contains(PointToClient(Cursor.Position))) && + !(_minButtonBounds.Contains(PointToClient(Cursor.Position)) || _maxButtonBounds.Contains(PointToClient(Cursor.Position)) || _xButtonBounds.Contains(PointToClient(Cursor.Position)))) + { + if (!_maximized) + { + ReleaseCapture(); + SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); + } + else + { + _headerMouseDown = true; + } + } + // Default context menu + else if (m.Msg == WM_RBUTTONDOWN) + { + Point cursorPos = PointToClient(Cursor.Position); + + if (_statusBarBounds.Contains(cursorPos) && !_minButtonBounds.Contains(cursorPos) && + !_maxButtonBounds.Contains(cursorPos) && !_xButtonBounds.Contains(cursorPos)) + { + // Show default system menu when right clicking titlebar + var id = TrackPopupMenuEx(GetSystemMenu(Handle, false), TPM_LEFTALIGN | TPM_RETURNCMD, Cursor.Position.X, Cursor.Position.Y, Handle, IntPtr.Zero); + + // Pass the command as a WM_SYSCOMMAND message + SendMessage(Handle, WM_SYSCOMMAND, id, 0); + } + } + else if (m.Msg == WM_NCLBUTTONDOWN) + { + // This re-enables resizing by letting the application know when the + // user is trying to resize a side. This is disabled by default when using WS_SYSMENU. + if (!Sizable) + return; + + byte bFlag = 0; + + // Get which side to resize from + if (_resizingLocationsToCmd.ContainsKey((int)m.WParam)) + bFlag = (byte)_resizingLocationsToCmd[(int)m.WParam]; + + if (bFlag != 0) + SendMessage(Handle, WM_SYSCOMMAND, 0xF000 | bFlag, (int)m.LParam); + } + else if (m.Msg == WM_LBUTTONUP) + { + _headerMouseDown = false; + } + } + + protected override CreateParams CreateParams + { + get + { + var par = base.CreateParams; + // WS_SYSMENU: Trigger the creation of the system menu + // WS_MINIMIZEBOX: Allow minimizing from taskbar + par.Style = par.Style | WS_MINIMIZEBOX | WS_SYSMENU; // Turn on the WS_MINIMIZEBOX style flag + return par; + } + } + + protected override void OnMouseDown(MouseEventArgs e) + { + if (DesignMode) + return; + UpdateButtons(e); + + if (e.Button == MouseButtons.Left && !_maximized) + ResizeForm(_resizeDir); + base.OnMouseDown(e); + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + if (DesignMode) + return; + _buttonState = ButtonState.None; + Invalidate(); + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + if (DesignMode) + return; + + if (Sizable) + { + //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) + { + _resizeDir = ResizeDirection.BottomLeft; + Cursor = Cursors.SizeNESW; + } + else if (e.Location.X < BORDER_WIDTH && !isChildUnderMouse && !_maximized) + { + _resizeDir = ResizeDirection.Left; + Cursor = Cursors.SizeWE; + } + else if (e.Location.X > Width - BORDER_WIDTH && e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_maximized) + { + _resizeDir = ResizeDirection.BottomRight; + Cursor = Cursors.SizeNWSE; + } + else if (e.Location.X > Width - BORDER_WIDTH && !isChildUnderMouse && !_maximized) + { + _resizeDir = ResizeDirection.Right; + Cursor = Cursors.SizeWE; + } + else if (e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_maximized) + { + _resizeDir = ResizeDirection.Bottom; + Cursor = Cursors.SizeNS; + } + else + { + _resizeDir = ResizeDirection.None; + + //Only reset the cursor when needed, this prevents it from flickering when a child control changes the cursor to its own needs + if (_resizeCursors.Contains(Cursor)) + { + Cursor = Cursors.Default; + } + } + } + + UpdateButtons(e); + } + + protected void OnGlobalMouseMove(object sender, MouseEventArgs e) + { + if (IsDisposed) + return; + // Convert to client position and pass to Form.MouseMove + var clientCursorPos = PointToClient(e.Location); + var newE = new MouseEventArgs(MouseButtons.None, 0, clientCursorPos.X, clientCursorPos.Y, 0); + OnMouseMove(newE); + } + + private void UpdateButtons(MouseEventArgs e, bool up = false) + { + if (DesignMode) + return; + var oldState = _buttonState; + bool showMin = MinimizeBox && ControlBox; + bool showMax = MaximizeBox && ControlBox; + + if (e.Button == MouseButtons.Left && !up) + { + if (showMin && !showMax && _maxButtonBounds.Contains(e.Location)) + _buttonState = ButtonState.MinDown; + else if (showMin && showMax && _minButtonBounds.Contains(e.Location)) + _buttonState = ButtonState.MinDown; + else if (showMax && _maxButtonBounds.Contains(e.Location)) + _buttonState = ButtonState.MaxDown; + else if (ControlBox && _xButtonBounds.Contains(e.Location)) + _buttonState = ButtonState.XDown; + else + _buttonState = ButtonState.None; + } + else + { + if (showMin && !showMax && _maxButtonBounds.Contains(e.Location)) + { + _buttonState = ButtonState.MinOver; + + if (oldState == ButtonState.MinDown && up) + WindowState = FormWindowState.Minimized; + } + else if (showMin && showMax && _minButtonBounds.Contains(e.Location)) + { + _buttonState = ButtonState.MinOver; + + if (oldState == ButtonState.MinDown && up) + WindowState = FormWindowState.Minimized; + } + else if (MaximizeBox && ControlBox && _maxButtonBounds.Contains(e.Location)) + { + _buttonState = ButtonState.MaxOver; + + if (oldState == ButtonState.MaxDown && up) + MaximizeWindow(!_maximized); + } + else if (ControlBox && _xButtonBounds.Contains(e.Location)) + { + _buttonState = ButtonState.XOver; + + if (oldState == ButtonState.XDown && up) + Close(); + } + else + _buttonState = ButtonState.None; + } + + if (oldState != _buttonState) + Invalidate(); + } + + private void MaximizeWindow(bool maximize) + { + if (!MaximizeBox || !ControlBox) + return; + + _maximized = maximize; + + if (maximize) + { + var monitorHandle = MonitorFromWindow(Handle, MONITOR_DEFAULTTONEAREST); + var monitorInfo = new MONITORINFOEX(); + GetMonitorInfo(new HandleRef(null, monitorHandle), monitorInfo); + _previousSize = Size; + _previousLocation = Location; + Size = new Size(monitorInfo.rcWork.Width(), monitorInfo.rcWork.Height()); + Location = new Point(monitorInfo.rcWork.left, monitorInfo.rcWork.top); + } + else + { + Size = _previousSize; + Location = _previousLocation; + } + } + + protected override void OnMouseUp(MouseEventArgs e) + { + if (DesignMode) + return; + UpdateButtons(e, true); + + base.OnMouseUp(e); + ReleaseCapture(); + } + + private void ResizeForm(ResizeDirection direction) + { + if (DesignMode) + return; + var dir = -1; + switch (direction) + { + case ResizeDirection.BottomLeft: + dir = HTBOTTOMLEFT; + break; + + case ResizeDirection.Left: + dir = HTLEFT; + break; + + case ResizeDirection.Right: + dir = HTRIGHT; + break; + + case ResizeDirection.BottomRight: + dir = HTBOTTOMRIGHT; + break; + + case ResizeDirection.Bottom: + dir = HTBOTTOM; + break; + } + + ReleaseCapture(); + if (dir != -1) + { + SendMessage(Handle, WM_NCLBUTTONDOWN, dir, 0); + } + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + _minButtonBounds = new Rectangle((Width) - 3 * STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); + _maxButtonBounds = new Rectangle((Width) - 2 * STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); + _xButtonBounds = new Rectangle((Width) - 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); + } + + protected override void OnPaint(PaintEventArgs e) + { + var g = e.Graphics; + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + g.Clear(SkinManager.BackdropColor); + g.FillRectangle(SkinManager.ColorScheme.DarkPrimaryBrush, _statusBarBounds); + g.FillRectangle(SkinManager.ColorScheme.PrimaryBrush, _actionBarBounds); + + //Draw border + using (var borderPen = new Pen(SkinManager.DividersColor, 1)) + { + g.DrawLine(borderPen, new Point(0, _actionBarBounds.Bottom), new Point(0, Height - 2)); + g.DrawLine(borderPen, new Point(Width - 1, _actionBarBounds.Bottom), new Point(Width - 1, Height - 2)); + g.DrawLine(borderPen, new Point(0, Height - 1), new Point(Width - 1, Height - 1)); + } + + // Determine whether or not we even should be drawing the buttons. + bool showMin = MinimizeBox && ControlBox; + bool showMax = MaximizeBox && ControlBox; + var hoverBrush = SkinManager.BackgroundHoverBrush; + var downBrush = SkinManager.BackgroundFocusBrush; + + // When MaximizeButton == false, the minimize button will be painted in its place + if (_buttonState == ButtonState.MinOver && showMin) + g.FillRectangle(hoverBrush, showMax ? _minButtonBounds : _maxButtonBounds); + + if (_buttonState == ButtonState.MinDown && showMin) + g.FillRectangle(downBrush, showMax ? _minButtonBounds : _maxButtonBounds); + + if (_buttonState == ButtonState.MaxOver && showMax) + g.FillRectangle(hoverBrush, _maxButtonBounds); + + if (_buttonState == ButtonState.MaxDown && showMax) + g.FillRectangle(downBrush, _maxButtonBounds); + + if (_buttonState == ButtonState.XOver && ControlBox) + g.FillRectangle(hoverBrush, _xButtonBounds); + + if (_buttonState == ButtonState.XDown && ControlBox) + g.FillRectangle(downBrush, _xButtonBounds); + + using (var formButtonsPen = new Pen(SkinManager.ColorScheme.TextColor, 2)) + { + // Minimize button. + if (showMin) + { + int x = showMax ? _minButtonBounds.X : _maxButtonBounds.X; + int y = showMax ? _minButtonBounds.Y : _maxButtonBounds.Y; + + g.DrawLine( + formButtonsPen, + x + (int)(_minButtonBounds.Width * 0.33), + y + (int)(_minButtonBounds.Height * 0.66), + x + (int)(_minButtonBounds.Width * 0.66), + y + (int)(_minButtonBounds.Height * 0.66) + ); + } + + // Maximize button + if (showMax) + { + g.DrawRectangle( + formButtonsPen, + _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.33), + _maxButtonBounds.Y + (int)(_maxButtonBounds.Height * 0.36), + (int)(_maxButtonBounds.Width * 0.39), + (int)(_maxButtonBounds.Height * 0.31) + ); + } + + // Close button + if (ControlBox) + { + g.DrawLine( + formButtonsPen, + _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.33), + _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.33), + _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.66), + _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.66) + ); + + g.DrawLine( + formButtonsPen, + _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.66), + _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.33), + _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.33), + _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.66)); + } + } + + // Drawer Icon + if (DrawerTabControl != null) + { + _drawerIconRect = new Rectangle(SkinManager.FORM_PADDING / 2, STATUS_BAR_HEIGHT, 24 + SkinManager.FORM_PADDING + SkinManager.FORM_PADDING / 2, ACTION_BAR_HEIGHT); + // Ripple + if (_clickAnimManager.IsAnimating()) + { + var clickAnimProgress = _clickAnimManager.GetProgress(); + + var rippleBrush = new SolidBrush(Color.FromArgb((int)(51 - (clickAnimProgress * 50)), Color.White)); + var rippleSize = (int)(clickAnimProgress * _drawerIconRect.Width * 1.75); + + g.SetClip(_drawerIconRect); + g.FillEllipse(rippleBrush, new Rectangle(_animationSource.X - rippleSize / 2, _animationSource.Y - rippleSize / 2, rippleSize, rippleSize)); + g.ResetClip(); + rippleBrush.Dispose(); + } + + using (var formButtonsPen = new Pen(SkinManager.ColorScheme.TextColor, 2)) + { + // Middle line + g.DrawLine( + formButtonsPen, + _drawerIconRect.X + (int)(SkinManager.FORM_PADDING), + _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2), + _drawerIconRect.X + (int)(SkinManager.FORM_PADDING) + 18, + _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2)); + + // Bottom line + g.DrawLine( + formButtonsPen, + _drawerIconRect.X + (int)(SkinManager.FORM_PADDING), + _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2) - 6, + _drawerIconRect.X + (int)(SkinManager.FORM_PADDING) + 18, + _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2) - 6); + + // Top line + g.DrawLine( + formButtonsPen, + _drawerIconRect.X + (int)(SkinManager.FORM_PADDING), + _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2) + 6, + _drawerIconRect.X + (int)(SkinManager.FORM_PADDING) + 18, + _drawerIconRect.Y + (int)(ACTION_BAR_HEIGHT / 2) + 6); + } + } + + //Form title + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + Rectangle textLocation = new Rectangle(SkinManager.FORM_PADDING + (DrawerTabControl != null ? 24 + (int)(SkinManager.FORM_PADDING * 1.5) : 0), STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT); + NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.H6), + SkinManager.ColorScheme.TextColor, + textLocation.Location, + textLocation.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + private readonly AnimationManager _clickAnimManager; + + private Rectangle _drawerIconRect; + + private Point _animationSource; + + private void InitializeComponent() + { + this.SuspendLayout(); + // + // MaterialForm + // + this.ClientSize = new System.Drawing.Size(284, 261); + this.MinimumSize = new System.Drawing.Size(300, 200); + this.Name = "MaterialForm"; + this.Padding = new System.Windows.Forms.Padding(3, 64, 3, 3); + this.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.RightToLeftLayout = true; + this.Load += new System.EventHandler(this.MaterialForm_Load); + this.ResumeLayout(false); + + } + + private void MaterialForm_Load(object sender, EventArgs e) + { + } + } + + public class MouseMessageFilter : IMessageFilter + { + private const int WM_MOUSEMOVE = 0x0200; + + public static event MouseEventHandler MouseMove; + + public bool PreFilterMessage(ref Message m) + { + if (m.Msg == WM_MOUSEMOVE) + { + if (MouseMove != null) + { + int x = Control.MousePosition.X, y = Control.MousePosition.Y; + + MouseMove(null, new MouseEventArgs(MouseButtons.None, 0, x, y, 0)); + } + } + return false; + } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialLabel.cs b/MaterialSkin/Controls/MaterialLabel.cs index a816e50a..63b83060 100644 --- a/MaterialSkin/Controls/MaterialLabel.cs +++ b/MaterialSkin/Controls/MaterialLabel.cs @@ -1,161 +1,161 @@ -namespace MaterialSkin.Controls -{ - using System.ComponentModel; - using System.Drawing; - using System.Windows.Forms; - - public class MaterialLabel : Label, IMaterialControl - { - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - +namespace MaterialSkin.Controls +{ + using System.ComponentModel; + using System.Drawing; + using System.Windows.Forms; + + public class MaterialLabel : Label, IMaterialControl + { + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + private ContentAlignment _TextAlign = ContentAlignment.TopLeft; - - [DefaultValue(typeof(ContentAlignment), "TopLeft")] + + [DefaultValue(typeof(ContentAlignment), "TopLeft")] public override ContentAlignment TextAlign - { - get - { - return _TextAlign; - } - set - { - _TextAlign = value; - updateAligment(); - Invalidate(); - } - } - - [Category("Material Skin"), - DefaultValue(false)] - public bool HighEmphasis { get; set; } - + { + get + { + return _TextAlign; + } + set + { + _TextAlign = value; + updateAligment(); + Invalidate(); + } + } + [Category("Material Skin"), - DefaultValue(false)] - public bool UseAccent { get; set; } - + DefaultValue(false)] + public bool HighEmphasis { get; set; } + + [Category("Material Skin"), + DefaultValue(false)] + public bool UseAccent { get; set; } + private MaterialSkinManager.fontType _fontType = MaterialSkinManager.fontType.Body1; - - [Category("Material Skin"), - DefaultValue(typeof(MaterialSkinManager.fontType), "Body1")] - public MaterialSkinManager.fontType FontType - { - get - { - return _fontType; - } - set - { - _fontType = value; - Font = SkinManager.getFontByType(_fontType); - Refresh(); - } - } - - public MaterialLabel() - { - FontType = MaterialSkinManager.fontType.Body1; - TextAlign = ContentAlignment.TopLeft; - } - - public override Size GetPreferredSize(Size proposedSize) - { - if (AutoSize) - { - Size strSize; - using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) - { - strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(_fontType)); - strSize.Width += 1; // necessary to avoid a bug when autosize = true - } - return strSize; - } - else - { - return proposedSize; - } - } - + + [Category("Material Skin"), + DefaultValue(typeof(MaterialSkinManager.fontType), "Body1")] + public MaterialSkinManager.fontType FontType + { + get + { + return _fontType; + } + set + { + _fontType = value; + Font = SkinManager.getFontByType(_fontType); + Refresh(); + } + } + + public MaterialLabel() + { + FontType = MaterialSkinManager.fontType.Body1; + TextAlign = ContentAlignment.TopLeft; + } + + public override Size GetPreferredSize(Size proposedSize) + { + if (AutoSize) + { + Size strSize; + using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) + { + strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(_fontType)); + strSize.Width += 1; // necessary to avoid a bug when autosize = true + } + return strSize; + } + else + { + return proposedSize; + } + } + private NativeTextRenderer.TextAlignFlags Alignment; - - private void updateAligment() - { - switch (_TextAlign) - { - case ContentAlignment.TopLeft: - Alignment = NativeTextRenderer.TextAlignFlags.Top | NativeTextRenderer.TextAlignFlags.Left; - break; - - case ContentAlignment.TopCenter: - Alignment = NativeTextRenderer.TextAlignFlags.Top | NativeTextRenderer.TextAlignFlags.Center; - break; - - case ContentAlignment.TopRight: - Alignment = NativeTextRenderer.TextAlignFlags.Top | NativeTextRenderer.TextAlignFlags.Right; - break; - - case ContentAlignment.MiddleLeft: - Alignment = NativeTextRenderer.TextAlignFlags.Middle | NativeTextRenderer.TextAlignFlags.Left; - break; - - case ContentAlignment.MiddleCenter: - Alignment = NativeTextRenderer.TextAlignFlags.Middle | NativeTextRenderer.TextAlignFlags.Center; - break; - - case ContentAlignment.MiddleRight: - Alignment = NativeTextRenderer.TextAlignFlags.Middle | NativeTextRenderer.TextAlignFlags.Right; - break; - - case ContentAlignment.BottomLeft: - Alignment = NativeTextRenderer.TextAlignFlags.Bottom | NativeTextRenderer.TextAlignFlags.Left; - break; - - case ContentAlignment.BottomCenter: - Alignment = NativeTextRenderer.TextAlignFlags.Bottom | NativeTextRenderer.TextAlignFlags.Center; - break; - - case ContentAlignment.BottomRight: - Alignment = NativeTextRenderer.TextAlignFlags.Bottom | NativeTextRenderer.TextAlignFlags.Right; - break; - - default: - Alignment = NativeTextRenderer.TextAlignFlags.Top | NativeTextRenderer.TextAlignFlags.Left; - break; - } - } - - protected override void OnPaint(PaintEventArgs e) - { - Graphics g = e.Graphics; - g.Clear(Parent.BackColor); - - // Draw Text - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - NativeText.DrawMultilineTransparentText( - Text, - SkinManager.getLogFontByType(_fontType), - Enabled ? HighEmphasis ? UseAccent ? - SkinManager.ColorScheme.AccentColor : // High emphasis, accent - SkinManager.ColorScheme.PrimaryColor : // High emphasis, primary - SkinManager.TextHighEmphasisColor : // Normal - SkinManager.TextDisabledOrHintColor, // Disabled - ClientRectangle.Location, - ClientRectangle.Size, - Alignment); - } - } - - protected override void InitLayout() - { - Font = SkinManager.getFontByType(_fontType); - BackColorChanged += (sender, args) => Refresh(); - } - } + + private void updateAligment() + { + switch (_TextAlign) + { + case ContentAlignment.TopLeft: + Alignment = NativeTextRenderer.TextAlignFlags.Top | NativeTextRenderer.TextAlignFlags.Left; + break; + + case ContentAlignment.TopCenter: + Alignment = NativeTextRenderer.TextAlignFlags.Top | NativeTextRenderer.TextAlignFlags.Center; + break; + + case ContentAlignment.TopRight: + Alignment = NativeTextRenderer.TextAlignFlags.Top | NativeTextRenderer.TextAlignFlags.Right; + break; + + case ContentAlignment.MiddleLeft: + Alignment = NativeTextRenderer.TextAlignFlags.Middle | NativeTextRenderer.TextAlignFlags.Left; + break; + + case ContentAlignment.MiddleCenter: + Alignment = NativeTextRenderer.TextAlignFlags.Middle | NativeTextRenderer.TextAlignFlags.Center; + break; + + case ContentAlignment.MiddleRight: + Alignment = NativeTextRenderer.TextAlignFlags.Middle | NativeTextRenderer.TextAlignFlags.Right; + break; + + case ContentAlignment.BottomLeft: + Alignment = NativeTextRenderer.TextAlignFlags.Bottom | NativeTextRenderer.TextAlignFlags.Left; + break; + + case ContentAlignment.BottomCenter: + Alignment = NativeTextRenderer.TextAlignFlags.Bottom | NativeTextRenderer.TextAlignFlags.Center; + break; + + case ContentAlignment.BottomRight: + Alignment = NativeTextRenderer.TextAlignFlags.Bottom | NativeTextRenderer.TextAlignFlags.Right; + break; + + default: + Alignment = NativeTextRenderer.TextAlignFlags.Top | NativeTextRenderer.TextAlignFlags.Left; + break; + } + } + + protected override void OnPaint(PaintEventArgs e) + { + Graphics g = e.Graphics; + g.Clear(Parent.BackColor); + + // Draw Text + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawMultilineTransparentText( + Text, + SkinManager.getLogFontByType(_fontType), + Enabled ? HighEmphasis ? UseAccent ? + SkinManager.ColorScheme.AccentColor : // High emphasis, accent + SkinManager.ColorScheme.PrimaryColor : // High emphasis, primary + SkinManager.TextHighEmphasisColor : // Normal + SkinManager.TextDisabledOrHintColor, // Disabled + ClientRectangle.Location, + ClientRectangle.Size, + Alignment); + } + } + + protected override void InitLayout() + { + Font = SkinManager.getFontByType(_fontType); + BackColorChanged += (sender, args) => Refresh(); + } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialListView.cs b/MaterialSkin/Controls/MaterialListView.cs index 51633f9d..8e53efe5 100644 --- a/MaterialSkin/Controls/MaterialListView.cs +++ b/MaterialSkin/Controls/MaterialListView.cs @@ -1,215 +1,215 @@ -namespace MaterialSkin.Controls -{ - using System; - using System.ComponentModel; - using System.Drawing; - using System.Windows.Forms; - - public class MaterialListView : ListView, IMaterialControl - { - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - [Browsable(false)] - public Point MouseLocation { get; set; } - +namespace MaterialSkin.Controls +{ + using System; + using System.ComponentModel; + using System.Drawing; + using System.Windows.Forms; + + public class MaterialListView : ListView, IMaterialControl + { + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + [Browsable(false)] + public Point MouseLocation { get; set; } + private bool _autoSizeTable; - - [Category("Appearance"), Browsable(true)] + + [Category("Appearance"), Browsable(true)] public bool AutoSizeTable - { + { get - { - return _autoSizeTable; - } + { + return _autoSizeTable; + } set - { - _autoSizeTable = value; - Scrollable = !value; - } - } - - [Browsable(false)] - private ListViewItem HoveredItem { get; set; } - - private const int PAD = 16; - private const int ITEMS_HEIGHT = 52; - - public MaterialListView() - { - GridLines = false; - FullRowSelect = true; - View = View.Details; - OwnerDraw = true; - ResizeRedraw = true; - BorderStyle = BorderStyle.None; - MinimumSize = new Size(200, 100); - - SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer, true); - BackColor = SkinManager.BackgroundColor; - - // Fix for hovers, by default it doesn't redraw - MouseLocation = new Point(-1, -1); - MouseState = MouseState.OUT; - MouseEnter += delegate - { - MouseState = MouseState.HOVER; - }; - MouseLeave += delegate - { - MouseState = MouseState.OUT; - MouseLocation = new Point(-1, -1); - HoveredItem = null; - Invalidate(); - }; - MouseDown += delegate - { - MouseState = MouseState.DOWN; - }; - MouseUp += delegate - { - MouseState = MouseState.HOVER; - }; - MouseMove += delegate (object sender, MouseEventArgs args) - { - MouseLocation = args.Location; - var currentHoveredItem = GetItemAt(MouseLocation.X, MouseLocation.Y); - if (HoveredItem != currentHoveredItem) - { - HoveredItem = currentHoveredItem; - Invalidate(); - } - }; - } - - protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e) - { - Graphics g = e.Graphics; - - g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; - - g.FillRectangle(new SolidBrush(BackColor), e.Bounds); - // Draw Text - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - NativeText.DrawTransparentText( - e.Header.Text, - SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2), - Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, - new Point(e.Bounds.Location.X + PAD, e.Bounds.Location.Y), - new Size(e.Bounds.Size.Width - PAD * 2, e.Bounds.Size.Height), - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - } - } - - protected override void OnDrawItem(DrawListViewItemEventArgs e) - { - Graphics g = e.Graphics; - - g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; - - // Always draw default background - g.FillRectangle(SkinManager.BackgroundBrush, e.Bounds); - - if (e.Item.Selected) - { - // Selected background - g.FillRectangle(SkinManager.BackgroundFocusBrush, e.Bounds); - } - else if (e.Bounds.Contains(MouseLocation) && MouseState == MouseState.HOVER) - { - // Hover background - g.FillRectangle(SkinManager.BackgroundHoverBrush, e.Bounds); - } - - // Draw separator line - g.DrawLine(new Pen(SkinManager.DividersColor), e.Bounds.Left, e.Bounds.Y, e.Bounds.Right, e.Bounds.Y); - - foreach (ListViewItem.ListViewSubItem subItem in e.Item.SubItems) - { - // Draw Text - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - NativeText.DrawTransparentText( - subItem.Text, - SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body2), - Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, - new Point(subItem.Bounds.X + PAD, subItem.Bounds.Y), - new Size(subItem.Bounds.Width - PAD * 2, subItem.Bounds.Height), - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - } - } - } - - // Resize - protected override void OnColumnWidthChanging(ColumnWidthChangingEventArgs e) - { - base.OnColumnWidthChanging(e); - AutoResize(); - } - - protected override void OnColumnWidthChanged(ColumnWidthChangedEventArgs e) - { - base.OnColumnWidthChanged(e); - AutoResize(); + { + _autoSizeTable = value; + Scrollable = !value; + } } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - AutoResize(); - } - - private void AutoResize() - { - if (!AutoSizeTable) return; - - // Width - int w = 0; - foreach (ColumnHeader col in Columns) - { - w += col.Width; - } - - // Height - int h = 50; //Header size - if (Items.Count > 0) h = TopItem.Bounds.Top; - foreach (ListViewItem item in Items) - { - h += item.Bounds.Height; - } - - Size = new Size(w, h); - } - - protected override void InitLayout() - { - base.InitLayout(); - - // enforce settings - GridLines = false; - FullRowSelect = true; - View = View.Details; - OwnerDraw = true; - ResizeRedraw = true; - BorderStyle = BorderStyle.None; + + [Browsable(false)] + private ListViewItem HoveredItem { get; set; } + + private const int PAD = 16; + private const int ITEMS_HEIGHT = 52; + + public MaterialListView() + { + GridLines = false; + FullRowSelect = true; + View = View.Details; + OwnerDraw = true; + ResizeRedraw = true; + BorderStyle = BorderStyle.None; + MinimumSize = new Size(200, 100); + + SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer, true); + BackColor = SkinManager.BackgroundColor; + + // Fix for hovers, by default it doesn't redraw + MouseLocation = new Point(-1, -1); + MouseState = MouseState.OUT; + MouseEnter += delegate + { + MouseState = MouseState.HOVER; + }; + MouseLeave += delegate + { + MouseState = MouseState.OUT; + MouseLocation = new Point(-1, -1); + HoveredItem = null; + Invalidate(); + }; + MouseDown += delegate + { + MouseState = MouseState.DOWN; + }; + MouseUp += delegate + { + MouseState = MouseState.HOVER; + }; + MouseMove += delegate (object sender, MouseEventArgs args) + { + MouseLocation = args.Location; + var currentHoveredItem = GetItemAt(MouseLocation.X, MouseLocation.Y); + if (HoveredItem != currentHoveredItem) + { + HoveredItem = currentHoveredItem; + Invalidate(); + } + }; } - - protected override void OnCreateControl() - { - base.OnCreateControl(); - } - - protected override void OnBackColorChanged(EventArgs e) - { - base.OnBackColorChanged(e); - BackColor = SkinManager.BackgroundColor; - } - } + + protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e) + { + Graphics g = e.Graphics; + + g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + + g.FillRectangle(new SolidBrush(BackColor), e.Bounds); + // Draw Text + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + e.Header.Text, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2), + Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, + new Point(e.Bounds.Location.X + PAD, e.Bounds.Location.Y), + new Size(e.Bounds.Size.Width - PAD * 2, e.Bounds.Size.Height), + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + protected override void OnDrawItem(DrawListViewItemEventArgs e) + { + Graphics g = e.Graphics; + + g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + + // Always draw default background + g.FillRectangle(SkinManager.BackgroundBrush, e.Bounds); + + if (e.Item.Selected) + { + // Selected background + g.FillRectangle(SkinManager.BackgroundFocusBrush, e.Bounds); + } + else if (e.Bounds.Contains(MouseLocation) && MouseState == MouseState.HOVER) + { + // Hover background + g.FillRectangle(SkinManager.BackgroundHoverBrush, e.Bounds); + } + + // Draw separator line + g.DrawLine(new Pen(SkinManager.DividersColor), e.Bounds.Left, e.Bounds.Y, e.Bounds.Right, e.Bounds.Y); + + foreach (ListViewItem.ListViewSubItem subItem in e.Item.SubItems) + { + // Draw Text + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + subItem.Text, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body2), + Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, + new Point(subItem.Bounds.X + PAD, subItem.Bounds.Y), + new Size(subItem.Bounds.Width - PAD * 2, subItem.Bounds.Height), + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + } + + // Resize + protected override void OnColumnWidthChanging(ColumnWidthChangingEventArgs e) + { + base.OnColumnWidthChanging(e); + AutoResize(); + } + + protected override void OnColumnWidthChanged(ColumnWidthChangedEventArgs e) + { + base.OnColumnWidthChanged(e); + AutoResize(); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + AutoResize(); + } + + private void AutoResize() + { + if (!AutoSizeTable) return; + + // Width + int w = 0; + foreach (ColumnHeader col in Columns) + { + w += col.Width; + } + + // Height + int h = 50; //Header size + if (Items.Count > 0) h = TopItem.Bounds.Top; + foreach (ListViewItem item in Items) + { + h += item.Bounds.Height; + } + + Size = new Size(w, h); + } + + protected override void InitLayout() + { + base.InitLayout(); + + // enforce settings + GridLines = false; + FullRowSelect = true; + View = View.Details; + OwnerDraw = true; + ResizeRedraw = true; + BorderStyle = BorderStyle.None; + } + + protected override void OnCreateControl() + { + base.OnCreateControl(); + } + + protected override void OnBackColorChanged(EventArgs e) + { + base.OnBackColorChanged(e); + BackColor = SkinManager.BackgroundColor; + } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialMessageBox.cs b/MaterialSkin/Controls/MaterialMessageBox.cs index e6070612..6bb258db 100644 --- a/MaterialSkin/Controls/MaterialMessageBox.cs +++ b/MaterialSkin/Controls/MaterialMessageBox.cs @@ -1,74 +1,74 @@ using System.ComponentModel; using System.Drawing; -using System.Windows.Forms; +using System.Windows.Forms; namespace MaterialSkin.Controls { - ///TODO: Break this out into a MaterialDialog then extend into the MaterialMsgBox + ///TODO: Break this out into a MaterialDialog then extend into the MaterialMsgBox ///Adapted from http://www.codeproject.com/Articles/601900/FlexibleMessageBox - public class MaterialMessageBox : IMaterialControl - { - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - [Browsable(false)] + public class MaterialMessageBox : IMaterialControl + { + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + [Browsable(false)] public Point MouseLocation { get; set; } - public static DialogResult Show(string text) - { - return FlexibleMaterialForm.Show(null, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); - } - - public static DialogResult Show(IWin32Window owner, string text) - { - return FlexibleMaterialForm.Show(owner, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); - } - - public static DialogResult Show(string text, string caption) - { - return FlexibleMaterialForm.Show(null, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); - } - - public static DialogResult Show(IWin32Window owner, string text, string caption) - { - return FlexibleMaterialForm.Show(owner, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); - } - - public static DialogResult Show(string text, string caption, MessageBoxButtons buttons) - { - return FlexibleMaterialForm.Show(null, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); - } - - public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons) - { - return FlexibleMaterialForm.Show(owner, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); - } - - public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) - { - return FlexibleMaterialForm.Show(null, text, caption, buttons, icon, MessageBoxDefaultButton.Button1); - } - - public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) - { - return FlexibleMaterialForm.Show(owner, text, caption, buttons, icon, MessageBoxDefaultButton.Button1); - } - - public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) - { - return FlexibleMaterialForm.Show(null, text, caption, buttons, icon, defaultButton); - } - - public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) - { - return FlexibleMaterialForm.Show(owner, text, caption, buttons, icon, defaultButton); + public static DialogResult Show(string text) + { + return FlexibleMaterialForm.Show(null, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + } + + public static DialogResult Show(IWin32Window owner, string text) + { + return FlexibleMaterialForm.Show(owner, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + } + + public static DialogResult Show(string text, string caption) + { + return FlexibleMaterialForm.Show(null, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + } + + public static DialogResult Show(IWin32Window owner, string text, string caption) + { + return FlexibleMaterialForm.Show(owner, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + } + + public static DialogResult Show(string text, string caption, MessageBoxButtons buttons) + { + return FlexibleMaterialForm.Show(null, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + } + + public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons) + { + return FlexibleMaterialForm.Show(owner, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + } + + public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) + { + return FlexibleMaterialForm.Show(null, text, caption, buttons, icon, MessageBoxDefaultButton.Button1); + } + + public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) + { + return FlexibleMaterialForm.Show(owner, text, caption, buttons, icon, MessageBoxDefaultButton.Button1); + } + + public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) + { + return FlexibleMaterialForm.Show(null, text, caption, buttons, icon, defaultButton); + } + + public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) + { + return FlexibleMaterialForm.Show(owner, text, caption, buttons, icon, defaultButton); } - } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialMultiLineTextBox.cs b/MaterialSkin/Controls/MaterialMultiLineTextBox.cs index 6957b132..592db765 100644 --- a/MaterialSkin/Controls/MaterialMultiLineTextBox.cs +++ b/MaterialSkin/Controls/MaterialMultiLineTextBox.cs @@ -1,73 +1,73 @@ -namespace MaterialSkin.Controls -{ - using System; - using System.ComponentModel; - using System.Runtime.InteropServices; - using System.Windows.Forms; - - public class MaterialMultiLineTextBox : RichTextBox, IMaterialControl - { - //Properties for managing the material design properties - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - [DllImport("user32.dll", CharSet = CharSet.Auto)] - private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, string lParam); - - private const int EM_SETCUEBANNER = 0x1501; - - private const char EmptyChar = (char)0; - - private const char VisualStylePasswordChar = '\u25CF'; - - private const char NonVisualStylePasswordChar = '\u002A'; - - private string hint = string.Empty; - - public string Hint - { - get { return hint; } - set - { - hint = value; - SendMessage(Handle, EM_SETCUEBANNER, (int)IntPtr.Zero, Hint); - } - } - - public new void SelectAll() - { - BeginInvoke((MethodInvoker)delegate () - { - base.Focus(); - base.SelectAll(); - }); - } - - public new void Focus() - { - BeginInvoke((MethodInvoker)delegate () - { - base.Focus(); - }); +namespace MaterialSkin.Controls +{ + using System; + using System.ComponentModel; + using System.Runtime.InteropServices; + using System.Windows.Forms; + + public class MaterialMultiLineTextBox : RichTextBox, IMaterialControl + { + //Properties for managing the material design properties + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + [DllImport("user32.dll", CharSet = CharSet.Auto)] + private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, string lParam); + + private const int EM_SETCUEBANNER = 0x1501; + + private const char EmptyChar = (char)0; + + private const char VisualStylePasswordChar = '\u25CF'; + + private const char NonVisualStylePasswordChar = '\u002A'; + + private string hint = string.Empty; + + public string Hint + { + get { return hint; } + set + { + hint = value; + SendMessage(Handle, EM_SETCUEBANNER, (int)IntPtr.Zero, Hint); + } + } + + public new void SelectAll() + { + BeginInvoke((MethodInvoker)delegate () + { + base.Focus(); + base.SelectAll(); + }); } - public MaterialMultiLineTextBox() - { - base.OnCreateControl(); - this.Multiline = true; - - BorderStyle = BorderStyle.None; - Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1); - BackColor = SkinManager.BackgroundColor; - ForeColor = SkinManager.TextHighEmphasisColor; - BackColorChanged += (sender, args) => BackColor = SkinManager.BackgroundColor; - ForeColorChanged += (sender, args) => ForeColor = SkinManager.TextHighEmphasisColor; - } - } + public new void Focus() + { + BeginInvoke((MethodInvoker)delegate () + { + base.Focus(); + }); + } + + public MaterialMultiLineTextBox() + { + base.OnCreateControl(); + this.Multiline = true; + + BorderStyle = BorderStyle.None; + Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1); + BackColor = SkinManager.BackgroundColor; + ForeColor = SkinManager.TextHighEmphasisColor; + BackColorChanged += (sender, args) => BackColor = SkinManager.BackgroundColor; + ForeColorChanged += (sender, args) => ForeColor = SkinManager.TextHighEmphasisColor; + } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialRadioButton.cs b/MaterialSkin/Controls/MaterialRadioButton.cs index 661796cd..d4e200ae 100644 --- a/MaterialSkin/Controls/MaterialRadioButton.cs +++ b/MaterialSkin/Controls/MaterialRadioButton.cs @@ -1,308 +1,308 @@ -namespace MaterialSkin.Controls -{ - using MaterialSkin.Animations; - using System; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Drawing2D; - using System.Drawing.Text; - using System.Windows.Forms; - - public class MaterialRadioButton : RadioButton, IMaterialControl - { - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - [Browsable(false)] - public Point MouseLocation { get; set; } - - private bool ripple; - - [Category("Behavior")] - public bool Ripple - { - get { return ripple; } - set - { - ripple = value; - AutoSize = AutoSize; //Make AutoSize directly set the bounds. - - if (value) - { - Margin = new Padding(0); - } - - Invalidate(); - } - } - - // animation managers - private readonly AnimationManager _checkAM; - - private readonly AnimationManager _rippleAM; - private readonly AnimationManager _hoverAM; - - // size related variables which should be recalculated onsizechanged - private Rectangle _radioButtonBounds; - - private int _boxOffset; - - // size constants - private const int HEIGHT_RIPPLE = 37; - - private const int HEIGHT_NO_RIPPLE = 20; - private const int RADIOBUTTON_SIZE = 18; - private const int RADIOBUTTON_SIZE_HALF = RADIOBUTTON_SIZE / 2; - private const int RADIOBUTTON_OUTER_CIRCLE_WIDTH = 2; - private const int RADIOBUTTON_INNER_CIRCLE_SIZE = RADIOBUTTON_SIZE - (2 * RADIOBUTTON_OUTER_CIRCLE_WIDTH); - private const int TEXT_OFFSET = 26; - - public MaterialRadioButton() - { - SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer, true); - - _checkAM = new AnimationManager - { - AnimationType = AnimationType.EaseInOut, - Increment = 0.06 - }; - _hoverAM = new AnimationManager(true) - { - AnimationType = AnimationType.Linear, - Increment = 0.10 - }; - _rippleAM = new AnimationManager(false) - { - AnimationType = AnimationType.Linear, - Increment = 0.10, - SecondaryIncrement = 0.08 - }; - - _checkAM.OnAnimationProgress += sender => Invalidate(); - _hoverAM.OnAnimationProgress += sender => Invalidate(); - _rippleAM.OnAnimationProgress += sender => Invalidate(); - - TabStopChanged += (sender, e) => TabStop = true; - - CheckedChanged += (sender, args) => - { - if (Ripple) - _checkAM.StartNewAnimation(Checked ? AnimationDirection.In : AnimationDirection.Out); - }; - - SizeChanged += OnSizeChanged; - - Ripple = true; - MouseLocation = new Point(-1, -1); - } - - private void OnSizeChanged(object sender, EventArgs eventArgs) - { - _boxOffset = Height / 2 - (int)(RADIOBUTTON_SIZE / 2); - _radioButtonBounds = new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE); - } - - public override Size GetPreferredSize(Size proposedSize) - { - Size strSize; - - using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) - { - strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1)); - } - - int w = _boxOffset + TEXT_OFFSET + strSize.Width; - return Ripple ? new Size(w, HEIGHT_RIPPLE) : new Size(w, HEIGHT_NO_RIPPLE); - } - - protected override void OnPaint(PaintEventArgs pevent) - { - Graphics g = pevent.Graphics; - g.SmoothingMode = SmoothingMode.AntiAlias; - g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; - - // clear the control - g.Clear(Parent.BackColor); - - int RADIOBUTTON_CENTER = _boxOffset + RADIOBUTTON_SIZE_HALF; - Point animationSource = new Point(RADIOBUTTON_CENTER, RADIOBUTTON_CENTER); - - double animationProgress = _checkAM.GetProgress(); - - int colorAlpha = Enabled ? (int)(animationProgress * 255.0) : SkinManager.CheckBoxOffDisabledColor.A; - int backgroundAlpha = Enabled ? (int)(SkinManager.CheckboxOffColor.A * (1.0 - animationProgress)) : SkinManager.CheckBoxOffDisabledColor.A; - float animationSize = (float)(animationProgress * 9f); - float animationSizeHalf = animationSize / 2; - int rippleHeight = (HEIGHT_RIPPLE % 2 == 0) ? HEIGHT_RIPPLE - 3 : HEIGHT_RIPPLE - 2; - - Color RadioColor = Color.FromArgb(colorAlpha, Enabled ? SkinManager.ColorScheme.AccentColor : SkinManager.CheckBoxOffDisabledColor); - - // draw hover animation - if (Ripple) - { - double animationValue = _hoverAM.GetProgress(); - int rippleSize = (int)(rippleHeight * (0.7 + (0.3 * animationValue))); - - using (SolidBrush rippleBrush = new SolidBrush(Color.FromArgb((int)(40 * animationValue), - !Checked ? (SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? Color.Black : Color.White) : RadioColor))) - { - g.FillEllipse(rippleBrush, new Rectangle(animationSource.X - rippleSize / 2, animationSource.Y - rippleSize / 2, rippleSize - 1, rippleSize - 1)); - } - } - - // draw ripple animation - if (Ripple && _rippleAM.IsAnimating()) - { - for (int i = 0; i < _rippleAM.GetAnimationCount(); i++) - { - double animationValue = _rippleAM.GetProgress(i); - int rippleSize = (_rippleAM.GetDirection(i) == AnimationDirection.InOutIn) ? (int)(rippleHeight * (0.7 + (0.3 * animationValue))) : rippleHeight; - - using (SolidBrush rippleBrush = new SolidBrush(Color.FromArgb((int)((animationValue * 40)), !Checked ? (SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? Color.Black : Color.White) : RadioColor))) - { - g.FillEllipse(rippleBrush, new Rectangle(animationSource.X - rippleSize / 2, animationSource.Y - rippleSize / 2, rippleSize - 1, rippleSize - 1)); - } - } - } - - // draw radiobutton circle - using (Pen pen = new Pen(DrawHelper.BlendColor(Parent.BackColor, Enabled ? SkinManager.CheckboxOffColor : SkinManager.CheckBoxOffDisabledColor, backgroundAlpha), 2)) - { - g.DrawEllipse(pen, new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); - } - - if (Enabled) - { - using (Pen pen = new Pen(RadioColor, 2)) - { - g.DrawEllipse(pen, new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); - } - } - - if (Checked) - { - using (SolidBrush brush = new SolidBrush(RadioColor)) - { - g.FillEllipse(brush, new RectangleF(RADIOBUTTON_CENTER - animationSizeHalf, RADIOBUTTON_CENTER - animationSizeHalf, animationSize, animationSize)); - } - } - - // Text - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - Rectangle textLocation = new Rectangle(_boxOffset + TEXT_OFFSET, 0, Width, Height); - NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1), - Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, - textLocation.Location, - textLocation.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - } - } - - private bool IsMouseInCheckArea() - { - return ClientRectangle.Contains(MouseLocation); - } - - private bool hovered = false; - - protected override void OnCreateControl() - { - base.OnCreateControl(); - - if (DesignMode) return; - - MouseState = MouseState.OUT; - - GotFocus += (sender, AddingNewEventArgs) => - { - if (Ripple && !hovered) - { - _hoverAM.StartNewAnimation(AnimationDirection.In, new object[] { Checked }); - hovered = true; - } - }; - - LostFocus += (sender, args) => - { - if (Ripple && hovered) - { - _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); - hovered = false; - } - }; - - MouseEnter += (sender, args) => - { - MouseState = MouseState.HOVER; - //if (Ripple && !hovered) - //{ - // _hoverAM.StartNewAnimation(AnimationDirection.In, new object[] { Checked }); - // hovered = true; - //} - }; - - MouseLeave += (sender, args) => - { - MouseLocation = new Point(-1, -1); - MouseState = MouseState.OUT; - //if (Ripple && hovered) - //{ - // _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); - // hovered = false; - //} - }; - - MouseDown += (sender, args) => - { - MouseState = MouseState.DOWN; - if (Ripple) - { - _rippleAM.SecondaryIncrement = 0; - _rippleAM.StartNewAnimation(AnimationDirection.InOutIn, new object[] { Checked }); - } - }; - - KeyDown += (sender, args) => - { - if (Ripple && (args.KeyCode == Keys.Space) && _rippleAM.GetAnimationCount() == 0) - { - _rippleAM.SecondaryIncrement = 0; - _rippleAM.StartNewAnimation(AnimationDirection.InOutIn, new object[] { Checked }); - } - }; - - MouseUp += (sender, args) => - { - if (Ripple) - { - MouseState = MouseState.HOVER; - _rippleAM.SecondaryIncrement = 0.08; - _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); - hovered = false; - } - }; - - KeyUp += (sender, args) => - { - if (Ripple && (args.KeyCode == Keys.Space)) - { - MouseState = MouseState.HOVER; - _rippleAM.SecondaryIncrement = 0.08; - } - }; - - MouseMove += (sender, args) => - { - MouseLocation = args.Location; - Cursor = IsMouseInCheckArea() ? Cursors.Hand : Cursors.Default; - }; - } - } +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Drawing2D; + using System.Drawing.Text; + using System.Windows.Forms; + + public class MaterialRadioButton : RadioButton, IMaterialControl + { + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + [Browsable(false)] + public Point MouseLocation { get; set; } + + private bool ripple; + + [Category("Behavior")] + public bool Ripple + { + get { return ripple; } + set + { + ripple = value; + AutoSize = AutoSize; //Make AutoSize directly set the bounds. + + if (value) + { + Margin = new Padding(0); + } + + Invalidate(); + } + } + + // animation managers + private readonly AnimationManager _checkAM; + + private readonly AnimationManager _rippleAM; + private readonly AnimationManager _hoverAM; + + // size related variables which should be recalculated onsizechanged + private Rectangle _radioButtonBounds; + + private int _boxOffset; + + // size constants + private const int HEIGHT_RIPPLE = 37; + + private const int HEIGHT_NO_RIPPLE = 20; + private const int RADIOBUTTON_SIZE = 18; + private const int RADIOBUTTON_SIZE_HALF = RADIOBUTTON_SIZE / 2; + private const int RADIOBUTTON_OUTER_CIRCLE_WIDTH = 2; + private const int RADIOBUTTON_INNER_CIRCLE_SIZE = RADIOBUTTON_SIZE - (2 * RADIOBUTTON_OUTER_CIRCLE_WIDTH); + private const int TEXT_OFFSET = 26; + + public MaterialRadioButton() + { + SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer, true); + + _checkAM = new AnimationManager + { + AnimationType = AnimationType.EaseInOut, + Increment = 0.06 + }; + _hoverAM = new AnimationManager(true) + { + AnimationType = AnimationType.Linear, + Increment = 0.10 + }; + _rippleAM = new AnimationManager(false) + { + AnimationType = AnimationType.Linear, + Increment = 0.10, + SecondaryIncrement = 0.08 + }; + + _checkAM.OnAnimationProgress += sender => Invalidate(); + _hoverAM.OnAnimationProgress += sender => Invalidate(); + _rippleAM.OnAnimationProgress += sender => Invalidate(); + + TabStopChanged += (sender, e) => TabStop = true; + + CheckedChanged += (sender, args) => + { + if (Ripple) + _checkAM.StartNewAnimation(Checked ? AnimationDirection.In : AnimationDirection.Out); + }; + + SizeChanged += OnSizeChanged; + + Ripple = true; + MouseLocation = new Point(-1, -1); + } + + private void OnSizeChanged(object sender, EventArgs eventArgs) + { + _boxOffset = Height / 2 - (int)(RADIOBUTTON_SIZE / 2); + _radioButtonBounds = new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE); + } + + public override Size GetPreferredSize(Size proposedSize) + { + Size strSize; + + using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) + { + strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1)); + } + + int w = _boxOffset + TEXT_OFFSET + strSize.Width; + return Ripple ? new Size(w, HEIGHT_RIPPLE) : new Size(w, HEIGHT_NO_RIPPLE); + } + + protected override void OnPaint(PaintEventArgs pevent) + { + Graphics g = pevent.Graphics; + g.SmoothingMode = SmoothingMode.AntiAlias; + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + // clear the control + g.Clear(Parent.BackColor); + + int RADIOBUTTON_CENTER = _boxOffset + RADIOBUTTON_SIZE_HALF; + Point animationSource = new Point(RADIOBUTTON_CENTER, RADIOBUTTON_CENTER); + + double animationProgress = _checkAM.GetProgress(); + + int colorAlpha = Enabled ? (int)(animationProgress * 255.0) : SkinManager.CheckBoxOffDisabledColor.A; + int backgroundAlpha = Enabled ? (int)(SkinManager.CheckboxOffColor.A * (1.0 - animationProgress)) : SkinManager.CheckBoxOffDisabledColor.A; + float animationSize = (float)(animationProgress * 9f); + float animationSizeHalf = animationSize / 2; + int rippleHeight = (HEIGHT_RIPPLE % 2 == 0) ? HEIGHT_RIPPLE - 3 : HEIGHT_RIPPLE - 2; + + Color RadioColor = Color.FromArgb(colorAlpha, Enabled ? SkinManager.ColorScheme.AccentColor : SkinManager.CheckBoxOffDisabledColor); + + // draw hover animation + if (Ripple) + { + double animationValue = _hoverAM.GetProgress(); + int rippleSize = (int)(rippleHeight * (0.7 + (0.3 * animationValue))); + + using (SolidBrush rippleBrush = new SolidBrush(Color.FromArgb((int)(40 * animationValue), + !Checked ? (SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? Color.Black : Color.White) : RadioColor))) + { + g.FillEllipse(rippleBrush, new Rectangle(animationSource.X - rippleSize / 2, animationSource.Y - rippleSize / 2, rippleSize - 1, rippleSize - 1)); + } + } + + // draw ripple animation + if (Ripple && _rippleAM.IsAnimating()) + { + for (int i = 0; i < _rippleAM.GetAnimationCount(); i++) + { + double animationValue = _rippleAM.GetProgress(i); + int rippleSize = (_rippleAM.GetDirection(i) == AnimationDirection.InOutIn) ? (int)(rippleHeight * (0.7 + (0.3 * animationValue))) : rippleHeight; + + using (SolidBrush rippleBrush = new SolidBrush(Color.FromArgb((int)((animationValue * 40)), !Checked ? (SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? Color.Black : Color.White) : RadioColor))) + { + g.FillEllipse(rippleBrush, new Rectangle(animationSource.X - rippleSize / 2, animationSource.Y - rippleSize / 2, rippleSize - 1, rippleSize - 1)); + } + } + } + + // draw radiobutton circle + using (Pen pen = new Pen(DrawHelper.BlendColor(Parent.BackColor, Enabled ? SkinManager.CheckboxOffColor : SkinManager.CheckBoxOffDisabledColor, backgroundAlpha), 2)) + { + g.DrawEllipse(pen, new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); + } + + if (Enabled) + { + using (Pen pen = new Pen(RadioColor, 2)) + { + g.DrawEllipse(pen, new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); + } + } + + if (Checked) + { + using (SolidBrush brush = new SolidBrush(RadioColor)) + { + g.FillEllipse(brush, new RectangleF(RADIOBUTTON_CENTER - animationSizeHalf, RADIOBUTTON_CENTER - animationSizeHalf, animationSize, animationSize)); + } + } + + // Text + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + Rectangle textLocation = new Rectangle(_boxOffset + TEXT_OFFSET, 0, Width, Height); + NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1), + Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, + textLocation.Location, + textLocation.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + private bool IsMouseInCheckArea() + { + return ClientRectangle.Contains(MouseLocation); + } + + private bool hovered = false; + + protected override void OnCreateControl() + { + base.OnCreateControl(); + + if (DesignMode) return; + + MouseState = MouseState.OUT; + + GotFocus += (sender, AddingNewEventArgs) => + { + if (Ripple && !hovered) + { + _hoverAM.StartNewAnimation(AnimationDirection.In, new object[] { Checked }); + hovered = true; + } + }; + + LostFocus += (sender, args) => + { + if (Ripple && hovered) + { + _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); + hovered = false; + } + }; + + MouseEnter += (sender, args) => + { + MouseState = MouseState.HOVER; + //if (Ripple && !hovered) + //{ + // _hoverAM.StartNewAnimation(AnimationDirection.In, new object[] { Checked }); + // hovered = true; + //} + }; + + MouseLeave += (sender, args) => + { + MouseLocation = new Point(-1, -1); + MouseState = MouseState.OUT; + //if (Ripple && hovered) + //{ + // _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); + // hovered = false; + //} + }; + + MouseDown += (sender, args) => + { + MouseState = MouseState.DOWN; + if (Ripple) + { + _rippleAM.SecondaryIncrement = 0; + _rippleAM.StartNewAnimation(AnimationDirection.InOutIn, new object[] { Checked }); + } + }; + + KeyDown += (sender, args) => + { + if (Ripple && (args.KeyCode == Keys.Space) && _rippleAM.GetAnimationCount() == 0) + { + _rippleAM.SecondaryIncrement = 0; + _rippleAM.StartNewAnimation(AnimationDirection.InOutIn, new object[] { Checked }); + } + }; + + MouseUp += (sender, args) => + { + if (Ripple) + { + MouseState = MouseState.HOVER; + _rippleAM.SecondaryIncrement = 0.08; + _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); + hovered = false; + } + }; + + KeyUp += (sender, args) => + { + if (Ripple && (args.KeyCode == Keys.Space)) + { + MouseState = MouseState.HOVER; + _rippleAM.SecondaryIncrement = 0.08; + } + }; + + MouseMove += (sender, args) => + { + MouseLocation = args.Location; + Cursor = IsMouseInCheckArea() ? Cursors.Hand : Cursors.Default; + }; + } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialSwitch.cs b/MaterialSkin/Controls/MaterialSwitch.cs index 28d78bdc..d23a846f 100644 --- a/MaterialSkin/Controls/MaterialSwitch.cs +++ b/MaterialSkin/Controls/MaterialSwitch.cs @@ -1,352 +1,352 @@ -namespace MaterialSkin.Controls -{ - using MaterialSkin.Animations; - using System; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Drawing2D; - using System.Drawing.Text; - using System.Windows.Forms; - - public class MaterialSwitch : CheckBox, IMaterialControl - { - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - [Browsable(false)] - public Point MouseLocation { get; set; } - - private bool _ripple; - - [Category("Appearance")] - public bool Ripple - { - get { return _ripple; } - set - { - _ripple = value; - AutoSize = AutoSize; //Make AutoSize directly set the bounds. - - if (value) - { - Margin = new Padding(0); - } - - Invalidate(); - } - } - - private readonly AnimationManager _checkAM; - private readonly AnimationManager _hoverAM; - private readonly AnimationManager _rippleAM; - - private const int THUMB_SIZE = 22; - - private const int THUMB_SIZE_HALF = THUMB_SIZE / 2; - - private const int TRACK_SIZE_HEIGHT = (int)(14); - private const int TRACK_SIZE_WIDTH = (int)(36); - private const int TRACK_RADIUS = (int)(TRACK_SIZE_HEIGHT / 2); - - private int TRACK_CENTER_Y; - private int TRACK_CENTER_X_BEGIN; - private int TRACK_CENTER_X_END; - private int TRACK_CENTER_X_DELTA; - - private const int RIPPLE_DIAMETER = 37; - - private int _trackOffsetY; - - public MaterialSwitch() - { - _checkAM = new AnimationManager - { - AnimationType = AnimationType.EaseInOut, - Increment = 0.05 - }; - _hoverAM = new AnimationManager(true) - { - AnimationType = AnimationType.Linear, - Increment = 0.10 - }; - _rippleAM = new AnimationManager(false) - { - AnimationType = AnimationType.Linear, - Increment = 0.10, - SecondaryIncrement = 0.08 - }; - _checkAM.OnAnimationProgress += sender => Invalidate(); - _rippleAM.OnAnimationProgress += sender => Invalidate(); - _hoverAM.OnAnimationProgress += sender => Invalidate(); - - CheckedChanged += (sender, args) => - { - if (Ripple) - _checkAM.StartNewAnimation(Checked ? AnimationDirection.In : AnimationDirection.Out); - }; - - Ripple = true; - MouseLocation = new Point(-1, -1); - } - - protected override void OnSizeChanged(EventArgs e) - { - base.OnSizeChanged(e); - - _trackOffsetY = Height / 2 - THUMB_SIZE_HALF; - - TRACK_CENTER_Y = _trackOffsetY + THUMB_SIZE_HALF - 1; - TRACK_CENTER_X_BEGIN = TRACK_CENTER_Y; - TRACK_CENTER_X_END = TRACK_CENTER_X_BEGIN + TRACK_SIZE_WIDTH - (TRACK_RADIUS * 2); - TRACK_CENTER_X_DELTA = TRACK_CENTER_X_END - TRACK_CENTER_X_BEGIN; - } - - public override Size GetPreferredSize(Size proposedSize) - { - Size strSize; - using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) - { - strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1)); - } - var w = TRACK_SIZE_WIDTH + THUMB_SIZE + strSize.Width; - return Ripple ? new Size(w, RIPPLE_DIAMETER) : new Size(w, THUMB_SIZE); - } - - private static readonly Point[] CheckmarkLine = { new Point(3, 8), new Point(7, 12), new Point(14, 5) }; - - private const int TEXT_OFFSET = THUMB_SIZE; - - protected override void OnPaint(PaintEventArgs pevent) - { - var g = pevent.Graphics; - g.SmoothingMode = SmoothingMode.AntiAlias; - g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; - - g.Clear(Parent.BackColor); - - var animationProgress = _checkAM.GetProgress(); - - // Draw Track - Color thumbColor = DrawHelper.BlendColor( - (Enabled ? SkinManager.SwitchOffThumbColor : SkinManager.SwitchOffDisabledThumbColor), // Off color - (Enabled ? SkinManager.ColorScheme.AccentColor : DrawHelper.BlendColor(SkinManager.ColorScheme.AccentColor, SkinManager.SwitchOffDisabledThumbColor, 197)), // On color - animationProgress * 255); // Blend amount - - using (var path = DrawHelper.CreateRoundRect(new Rectangle(TRACK_CENTER_X_BEGIN - TRACK_RADIUS, TRACK_CENTER_Y - TRACK_SIZE_HEIGHT / 2, TRACK_SIZE_WIDTH, TRACK_SIZE_HEIGHT), TRACK_RADIUS)) - { - using (SolidBrush trackBrush = new SolidBrush( - Color.FromArgb(Enabled ? SkinManager.SwitchOffTrackColor.A : SkinManager.BackgroundDisabledColor.A, // Track alpha - DrawHelper.BlendColor( // animate color - (Enabled ? SkinManager.SwitchOffTrackColor : SkinManager.BackgroundDisabledColor), // Off color - SkinManager.ColorScheme.AccentColor, // On color - animationProgress * 255) // Blend amount - .RemoveAlpha()))) - { - g.FillPath(trackBrush, path); - } - } - - // Calculate animation movement X position - int OffsetX = (int)(TRACK_CENTER_X_DELTA * animationProgress); - - // Ripple - int rippleSize = (Height % 2 == 0) ? Height - 2 : Height - 3; - - Color rippleColor = Color.FromArgb(40, // color alpha - Checked ? SkinManager.ColorScheme.AccentColor : // On color - (SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? Color.Black : Color.White)); // Off color - - if (Ripple && _rippleAM.IsAnimating()) - { - for (int i = 0; i < _rippleAM.GetAnimationCount(); i++) - { - double rippleAnimProgress = _rippleAM.GetProgress(i); - int rippleAnimatedDiameter = (_rippleAM.GetDirection(i) == AnimationDirection.InOutIn) ? (int)(rippleSize * (0.7 + (0.3 * rippleAnimProgress))) : rippleSize; - - using (SolidBrush rippleBrush = new SolidBrush(Color.FromArgb((int)(40 * rippleAnimProgress), rippleColor.RemoveAlpha()))) - { - g.FillEllipse(rippleBrush, new Rectangle(TRACK_CENTER_X_BEGIN + OffsetX - rippleAnimatedDiameter / 2, TRACK_CENTER_Y - rippleAnimatedDiameter / 2, rippleAnimatedDiameter, rippleAnimatedDiameter)); - } - } - } - - // Hover - if (Ripple) - { - double rippleAnimProgress = _hoverAM.GetProgress(); - int rippleAnimatedDiameter = (int)(rippleSize * (0.7 + (0.3 * rippleAnimProgress))); - - using (SolidBrush rippleBrush = new SolidBrush(Color.FromArgb((int)(40 * rippleAnimProgress), rippleColor.RemoveAlpha()))) - { - g.FillEllipse(rippleBrush, new Rectangle(TRACK_CENTER_X_BEGIN + OffsetX - rippleAnimatedDiameter / 2, TRACK_CENTER_Y - rippleAnimatedDiameter / 2, rippleAnimatedDiameter, rippleAnimatedDiameter)); - } - } - - // draw Thumb Shadow - RectangleF thumbBounds = new RectangleF(TRACK_CENTER_X_BEGIN + OffsetX - THUMB_SIZE_HALF, TRACK_CENTER_Y - THUMB_SIZE_HALF, THUMB_SIZE, THUMB_SIZE); - using (SolidBrush shadowBrush = new SolidBrush(Color.FromArgb(12, 0, 0, 0))) - { - g.FillEllipse(shadowBrush, new RectangleF(thumbBounds.X - 2, thumbBounds.Y - 1, thumbBounds.Width + 4, thumbBounds.Height + 6)); - g.FillEllipse(shadowBrush, new RectangleF(thumbBounds.X - 1, thumbBounds.Y - 1, thumbBounds.Width + 2, thumbBounds.Height + 4)); - g.FillEllipse(shadowBrush, new RectangleF(thumbBounds.X - 0, thumbBounds.Y - 0, thumbBounds.Width + 0, thumbBounds.Height + 2)); - g.FillEllipse(shadowBrush, new RectangleF(thumbBounds.X - 0, thumbBounds.Y + 2, thumbBounds.Width + 0, thumbBounds.Height + 0)); - g.FillEllipse(shadowBrush, new RectangleF(thumbBounds.X - 0, thumbBounds.Y + 1, thumbBounds.Width + 0, thumbBounds.Height + 0)); - } - - // draw Thumb - using (SolidBrush thumbBrush = new SolidBrush(thumbColor)) - { - g.FillEllipse(thumbBrush, thumbBounds); - } - - // draw text - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - Rectangle textLocation = new Rectangle(TEXT_OFFSET + TRACK_SIZE_WIDTH, 0, Width - (TEXT_OFFSET + TRACK_SIZE_WIDTH), Height); - NativeText.DrawTransparentText( - Text, - SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1), - Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, - textLocation.Location, - textLocation.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - } - } - - private Bitmap DrawCheckMarkBitmap() - { - var checkMark = new Bitmap(THUMB_SIZE, THUMB_SIZE); - var g = Graphics.FromImage(checkMark); - - // clear everything, transparent - g.Clear(Color.Transparent); - - // draw the checkmark lines - using (var pen = new Pen(Parent.BackColor, 2)) - { - g.DrawLines(pen, CheckmarkLine); - } - - return checkMark; - } - - public override bool AutoSize - { - get { return base.AutoSize; } - set - { - base.AutoSize = value; - if (value) - { - Size = new Size(10, 10); - } - } +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Drawing2D; + using System.Drawing.Text; + using System.Windows.Forms; + + public class MaterialSwitch : CheckBox, IMaterialControl + { + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + [Browsable(false)] + public Point MouseLocation { get; set; } + + private bool _ripple; + + [Category("Appearance")] + public bool Ripple + { + get { return _ripple; } + set + { + _ripple = value; + AutoSize = AutoSize; //Make AutoSize directly set the bounds. + + if (value) + { + Margin = new Padding(0); + } + + Invalidate(); + } } - - private bool IsMouseInCheckArea() - { - return ClientRectangle.Contains(MouseLocation); - } - - private bool hovered = false; - - protected override void OnCreateControl() - { - base.OnCreateControl(); - - if (DesignMode) return; - - MouseState = MouseState.OUT; - - GotFocus += (sender, AddingNewEventArgs) => - { - if (Ripple && !hovered) - { - _hoverAM.StartNewAnimation(AnimationDirection.In, new object[] { Checked }); - hovered = true; - } - }; - - LostFocus += (sender, args) => - { - if (Ripple && hovered) - { - _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); - hovered = false; - } - }; - - MouseEnter += (sender, args) => - { - MouseState = MouseState.HOVER; - //if (Ripple && !hovered) - //{ - // _hoverAM.StartNewAnimation(AnimationDirection.In, new object[] { Checked }); - // hovered = true; - //} - }; - - MouseLeave += (sender, args) => - { - MouseLocation = new Point(-1, -1); - MouseState = MouseState.OUT; - //if (Ripple && hovered) - //{ - // _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); - // hovered = false; - //} - }; - - MouseDown += (sender, args) => - { - MouseState = MouseState.DOWN; - if (Ripple) - { - _rippleAM.SecondaryIncrement = 0; - _rippleAM.StartNewAnimation(AnimationDirection.InOutIn, new object[] { Checked }); - } - }; - - KeyDown += (sender, args) => - { - if (Ripple && (args.KeyCode == Keys.Space) && _rippleAM.GetAnimationCount() == 0) - { - _rippleAM.SecondaryIncrement = 0; - _rippleAM.StartNewAnimation(AnimationDirection.InOutIn, new object[] { Checked }); - } - }; - - MouseUp += (sender, args) => - { - if (Ripple) - { - MouseState = MouseState.HOVER; - _rippleAM.SecondaryIncrement = 0.08; - _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); - hovered = false; - } - }; - - KeyUp += (sender, args) => - { - if (Ripple && (args.KeyCode == Keys.Space)) - { - MouseState = MouseState.HOVER; - _rippleAM.SecondaryIncrement = 0.08; - } - }; - - MouseMove += (sender, args) => - { - MouseLocation = args.Location; - Cursor = IsMouseInCheckArea() ? Cursors.Hand : Cursors.Default; - }; - } - } + + private readonly AnimationManager _checkAM; + private readonly AnimationManager _hoverAM; + private readonly AnimationManager _rippleAM; + + private const int THUMB_SIZE = 22; + + private const int THUMB_SIZE_HALF = THUMB_SIZE / 2; + + private const int TRACK_SIZE_HEIGHT = (int)(14); + private const int TRACK_SIZE_WIDTH = (int)(36); + private const int TRACK_RADIUS = (int)(TRACK_SIZE_HEIGHT / 2); + + private int TRACK_CENTER_Y; + private int TRACK_CENTER_X_BEGIN; + private int TRACK_CENTER_X_END; + private int TRACK_CENTER_X_DELTA; + + private const int RIPPLE_DIAMETER = 37; + + private int _trackOffsetY; + + public MaterialSwitch() + { + _checkAM = new AnimationManager + { + AnimationType = AnimationType.EaseInOut, + Increment = 0.05 + }; + _hoverAM = new AnimationManager(true) + { + AnimationType = AnimationType.Linear, + Increment = 0.10 + }; + _rippleAM = new AnimationManager(false) + { + AnimationType = AnimationType.Linear, + Increment = 0.10, + SecondaryIncrement = 0.08 + }; + _checkAM.OnAnimationProgress += sender => Invalidate(); + _rippleAM.OnAnimationProgress += sender => Invalidate(); + _hoverAM.OnAnimationProgress += sender => Invalidate(); + + CheckedChanged += (sender, args) => + { + if (Ripple) + _checkAM.StartNewAnimation(Checked ? AnimationDirection.In : AnimationDirection.Out); + }; + + Ripple = true; + MouseLocation = new Point(-1, -1); + } + + protected override void OnSizeChanged(EventArgs e) + { + base.OnSizeChanged(e); + + _trackOffsetY = Height / 2 - THUMB_SIZE_HALF; + + TRACK_CENTER_Y = _trackOffsetY + THUMB_SIZE_HALF - 1; + TRACK_CENTER_X_BEGIN = TRACK_CENTER_Y; + TRACK_CENTER_X_END = TRACK_CENTER_X_BEGIN + TRACK_SIZE_WIDTH - (TRACK_RADIUS * 2); + TRACK_CENTER_X_DELTA = TRACK_CENTER_X_END - TRACK_CENTER_X_BEGIN; + } + + public override Size GetPreferredSize(Size proposedSize) + { + Size strSize; + using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) + { + strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1)); + } + var w = TRACK_SIZE_WIDTH + THUMB_SIZE + strSize.Width; + return Ripple ? new Size(w, RIPPLE_DIAMETER) : new Size(w, THUMB_SIZE); + } + + private static readonly Point[] CheckmarkLine = { new Point(3, 8), new Point(7, 12), new Point(14, 5) }; + + private const int TEXT_OFFSET = THUMB_SIZE; + + protected override void OnPaint(PaintEventArgs pevent) + { + var g = pevent.Graphics; + g.SmoothingMode = SmoothingMode.AntiAlias; + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + g.Clear(Parent.BackColor); + + var animationProgress = _checkAM.GetProgress(); + + // Draw Track + Color thumbColor = DrawHelper.BlendColor( + (Enabled ? SkinManager.SwitchOffThumbColor : SkinManager.SwitchOffDisabledThumbColor), // Off color + (Enabled ? SkinManager.ColorScheme.AccentColor : DrawHelper.BlendColor(SkinManager.ColorScheme.AccentColor, SkinManager.SwitchOffDisabledThumbColor, 197)), // On color + animationProgress * 255); // Blend amount + + using (var path = DrawHelper.CreateRoundRect(new Rectangle(TRACK_CENTER_X_BEGIN - TRACK_RADIUS, TRACK_CENTER_Y - TRACK_SIZE_HEIGHT / 2, TRACK_SIZE_WIDTH, TRACK_SIZE_HEIGHT), TRACK_RADIUS)) + { + using (SolidBrush trackBrush = new SolidBrush( + Color.FromArgb(Enabled ? SkinManager.SwitchOffTrackColor.A : SkinManager.BackgroundDisabledColor.A, // Track alpha + DrawHelper.BlendColor( // animate color + (Enabled ? SkinManager.SwitchOffTrackColor : SkinManager.BackgroundDisabledColor), // Off color + SkinManager.ColorScheme.AccentColor, // On color + animationProgress * 255) // Blend amount + .RemoveAlpha()))) + { + g.FillPath(trackBrush, path); + } + } + + // Calculate animation movement X position + int OffsetX = (int)(TRACK_CENTER_X_DELTA * animationProgress); + + // Ripple + int rippleSize = (Height % 2 == 0) ? Height - 2 : Height - 3; + + Color rippleColor = Color.FromArgb(40, // color alpha + Checked ? SkinManager.ColorScheme.AccentColor : // On color + (SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? Color.Black : Color.White)); // Off color + + if (Ripple && _rippleAM.IsAnimating()) + { + for (int i = 0; i < _rippleAM.GetAnimationCount(); i++) + { + double rippleAnimProgress = _rippleAM.GetProgress(i); + int rippleAnimatedDiameter = (_rippleAM.GetDirection(i) == AnimationDirection.InOutIn) ? (int)(rippleSize * (0.7 + (0.3 * rippleAnimProgress))) : rippleSize; + + using (SolidBrush rippleBrush = new SolidBrush(Color.FromArgb((int)(40 * rippleAnimProgress), rippleColor.RemoveAlpha()))) + { + g.FillEllipse(rippleBrush, new Rectangle(TRACK_CENTER_X_BEGIN + OffsetX - rippleAnimatedDiameter / 2, TRACK_CENTER_Y - rippleAnimatedDiameter / 2, rippleAnimatedDiameter, rippleAnimatedDiameter)); + } + } + } + + // Hover + if (Ripple) + { + double rippleAnimProgress = _hoverAM.GetProgress(); + int rippleAnimatedDiameter = (int)(rippleSize * (0.7 + (0.3 * rippleAnimProgress))); + + using (SolidBrush rippleBrush = new SolidBrush(Color.FromArgb((int)(40 * rippleAnimProgress), rippleColor.RemoveAlpha()))) + { + g.FillEllipse(rippleBrush, new Rectangle(TRACK_CENTER_X_BEGIN + OffsetX - rippleAnimatedDiameter / 2, TRACK_CENTER_Y - rippleAnimatedDiameter / 2, rippleAnimatedDiameter, rippleAnimatedDiameter)); + } + } + + // draw Thumb Shadow + RectangleF thumbBounds = new RectangleF(TRACK_CENTER_X_BEGIN + OffsetX - THUMB_SIZE_HALF, TRACK_CENTER_Y - THUMB_SIZE_HALF, THUMB_SIZE, THUMB_SIZE); + using (SolidBrush shadowBrush = new SolidBrush(Color.FromArgb(12, 0, 0, 0))) + { + g.FillEllipse(shadowBrush, new RectangleF(thumbBounds.X - 2, thumbBounds.Y - 1, thumbBounds.Width + 4, thumbBounds.Height + 6)); + g.FillEllipse(shadowBrush, new RectangleF(thumbBounds.X - 1, thumbBounds.Y - 1, thumbBounds.Width + 2, thumbBounds.Height + 4)); + g.FillEllipse(shadowBrush, new RectangleF(thumbBounds.X - 0, thumbBounds.Y - 0, thumbBounds.Width + 0, thumbBounds.Height + 2)); + g.FillEllipse(shadowBrush, new RectangleF(thumbBounds.X - 0, thumbBounds.Y + 2, thumbBounds.Width + 0, thumbBounds.Height + 0)); + g.FillEllipse(shadowBrush, new RectangleF(thumbBounds.X - 0, thumbBounds.Y + 1, thumbBounds.Width + 0, thumbBounds.Height + 0)); + } + + // draw Thumb + using (SolidBrush thumbBrush = new SolidBrush(thumbColor)) + { + g.FillEllipse(thumbBrush, thumbBounds); + } + + // draw text + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + Rectangle textLocation = new Rectangle(TEXT_OFFSET + TRACK_SIZE_WIDTH, 0, Width - (TEXT_OFFSET + TRACK_SIZE_WIDTH), Height); + NativeText.DrawTransparentText( + Text, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1), + Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, + textLocation.Location, + textLocation.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + private Bitmap DrawCheckMarkBitmap() + { + var checkMark = new Bitmap(THUMB_SIZE, THUMB_SIZE); + var g = Graphics.FromImage(checkMark); + + // clear everything, transparent + g.Clear(Color.Transparent); + + // draw the checkmark lines + using (var pen = new Pen(Parent.BackColor, 2)) + { + g.DrawLines(pen, CheckmarkLine); + } + + return checkMark; + } + + public override bool AutoSize + { + get { return base.AutoSize; } + set + { + base.AutoSize = value; + if (value) + { + Size = new Size(10, 10); + } + } + } + + private bool IsMouseInCheckArea() + { + return ClientRectangle.Contains(MouseLocation); + } + + private bool hovered = false; + + protected override void OnCreateControl() + { + base.OnCreateControl(); + + if (DesignMode) return; + + MouseState = MouseState.OUT; + + GotFocus += (sender, AddingNewEventArgs) => + { + if (Ripple && !hovered) + { + _hoverAM.StartNewAnimation(AnimationDirection.In, new object[] { Checked }); + hovered = true; + } + }; + + LostFocus += (sender, args) => + { + if (Ripple && hovered) + { + _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); + hovered = false; + } + }; + + MouseEnter += (sender, args) => + { + MouseState = MouseState.HOVER; + //if (Ripple && !hovered) + //{ + // _hoverAM.StartNewAnimation(AnimationDirection.In, new object[] { Checked }); + // hovered = true; + //} + }; + + MouseLeave += (sender, args) => + { + MouseLocation = new Point(-1, -1); + MouseState = MouseState.OUT; + //if (Ripple && hovered) + //{ + // _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); + // hovered = false; + //} + }; + + MouseDown += (sender, args) => + { + MouseState = MouseState.DOWN; + if (Ripple) + { + _rippleAM.SecondaryIncrement = 0; + _rippleAM.StartNewAnimation(AnimationDirection.InOutIn, new object[] { Checked }); + } + }; + + KeyDown += (sender, args) => + { + if (Ripple && (args.KeyCode == Keys.Space) && _rippleAM.GetAnimationCount() == 0) + { + _rippleAM.SecondaryIncrement = 0; + _rippleAM.StartNewAnimation(AnimationDirection.InOutIn, new object[] { Checked }); + } + }; + + MouseUp += (sender, args) => + { + if (Ripple) + { + MouseState = MouseState.HOVER; + _rippleAM.SecondaryIncrement = 0.08; + _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); + hovered = false; + } + }; + + KeyUp += (sender, args) => + { + if (Ripple && (args.KeyCode == Keys.Space)) + { + MouseState = MouseState.HOVER; + _rippleAM.SecondaryIncrement = 0.08; + } + }; + + MouseMove += (sender, args) => + { + MouseLocation = args.Location; + Cursor = IsMouseInCheckArea() ? Cursors.Hand : Cursors.Default; + }; + } + } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialTextBox.cs b/MaterialSkin/Controls/MaterialTextBox.cs index 1ca6acb2..b8fd9a9b 100644 --- a/MaterialSkin/Controls/MaterialTextBox.cs +++ b/MaterialSkin/Controls/MaterialTextBox.cs @@ -1,438 +1,438 @@ -namespace MaterialSkin.Controls -{ - using MaterialSkin.Animations; - using System; - using System.ComponentModel; - using System.Drawing; - using System.Runtime.InteropServices; - using System.Windows.Forms; - - public class MaterialTextBox : RichTextBox, IMaterialControl - { - //Properties for managing the material design properties - [Browsable(false)] +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.ComponentModel; + using System.Drawing; + using System.Runtime.InteropServices; + using System.Windows.Forms; + + public class MaterialTextBox : RichTextBox, IMaterialControl + { + //Properties for managing the material design properties + [Browsable(false)] public int Depth { get; set; } - - [Browsable(false)] + + [Browsable(false)] public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - [Category("Material Skin"), DefaultValue(false)] - public bool Password { get; set; } - + + [Browsable(false)] + public MouseState MouseState { get; set; } + + [Category("Material Skin"), DefaultValue(false)] + public bool Password { get; set; } + private bool _UseTallSize; - - [Category("Material Skin"), DefaultValue(true), Description("Using a larger size enables the hint to always be visible")] - public bool UseTallSize - { - get { return _UseTallSize; } - set - { - _UseTallSize = value; - HEIGHT = UseTallSize ? 50 : 36; - Size = new Size(Size.Width, HEIGHT); - Invalidate(); - } - } - - [Category("Material Skin"), DefaultValue(true)] - public bool UseAccent { get; set; } - + + [Category("Material Skin"), DefaultValue(true), Description("Using a larger size enables the hint to always be visible")] + public bool UseTallSize + { + get { return _UseTallSize; } + set + { + _UseTallSize = value; + HEIGHT = UseTallSize ? 50 : 36; + Size = new Size(Size.Width, HEIGHT); + Invalidate(); + } + } + + [Category("Material Skin"), DefaultValue(true)] + public bool UseAccent { get; set; } + private string _hint = string.Empty; - - [Category("Material Skin"), DefaultValue("")] - public string Hint - { - get { return _hint; } - set - { - _hint = value; - hasHint = !String.IsNullOrEmpty(Hint); - Invalidate(); - } - } - - private const int HINT_TEXT_SMALL_SIZE = 18; - private const int HINT_TEXT_SMALL_Y = 4; - private const int BOTTOM_PADDING = 3; - private int HEIGHT = 50; - private int LINE_Y; - - private bool hasHint; - - private readonly AnimationManager _animationManager; - - public MaterialTextBox() - { - // Material Properties - Hint = ""; - Password = false; - UseAccent = true; - UseTallSize = true; - - // Properties - TabStop = true; - Multiline = false; - BorderStyle = BorderStyle.None; - - // Animations - _animationManager = new AnimationManager - { - Increment = 0.08, - AnimationType = AnimationType.EaseInOut - }; - _animationManager.OnAnimationProgress += sender => Invalidate(); - - MaterialContextMenuStrip cms = new TextBoxContextMenuStrip(); - cms.Opening += ContextMenuStripOnOpening; - cms.OnItemClickStart += ContextMenuStripOnItemClickStart; - - ContextMenuStrip = cms; - - MaxLength = 50; - } - + + [Category("Material Skin"), DefaultValue("")] + public string Hint + { + get { return _hint; } + set + { + _hint = value; + hasHint = !String.IsNullOrEmpty(Hint); + Invalidate(); + } + } + + private const int HINT_TEXT_SMALL_SIZE = 18; + private const int HINT_TEXT_SMALL_Y = 4; + private const int BOTTOM_PADDING = 3; + private int HEIGHT = 50; + private int LINE_Y; + + private bool hasHint; + + private readonly AnimationManager _animationManager; + + public MaterialTextBox() + { + // Material Properties + Hint = ""; + Password = false; + UseAccent = true; + UseTallSize = true; + + // Properties + TabStop = true; + Multiline = false; + BorderStyle = BorderStyle.None; + + // Animations + _animationManager = new AnimationManager + { + Increment = 0.08, + AnimationType = AnimationType.EaseInOut + }; + _animationManager.OnAnimationProgress += sender => Invalidate(); + + MaterialContextMenuStrip cms = new TextBoxContextMenuStrip(); + cms.Opening += ContextMenuStripOnOpening; + cms.OnItemClickStart += ContextMenuStripOnItemClickStart; + + ContextMenuStrip = cms; + + MaxLength = 50; + } + private const int EM_SETPASSWORDCHAR = 0x00cc; - - [DllImport("user32.dll", CharSet = CharSet.Auto)] - public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); - - protected override void OnCreateControl() - { - base.OnCreateControl(); - base.Font = new Font(SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1).FontFamily, 12f, FontStyle.Regular); - base.AutoSize = false; - - SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true); - - if (Password) SendMessage(Handle, EM_SETPASSWORDCHAR, 'T', 0); - - // Size and padding - HEIGHT = UseTallSize ? 50 : 36; - Size = new Size(Size.Width, HEIGHT); - LINE_Y = HEIGHT - BOTTOM_PADDING; - - // Position the "real" text field - var rect = new Rectangle(SkinManager.FORM_PADDING, UseTallSize ? hasHint ? - (HINT_TEXT_SMALL_Y + HINT_TEXT_SMALL_SIZE) : // Has hint and it's tall - (int)(LINE_Y / 3.5) : // No hint and tall - Height / 5, // not tall - ClientSize.Width - (SkinManager.FORM_PADDING * 2), LINE_Y); - RECT rc = new RECT(rect); - SendMessageRefRect(Handle, EM_SETRECT, 0, ref rc); - - // events - MouseState = MouseState.OUT; - LostFocus += (sender, args) => _animationManager.StartNewAnimation(AnimationDirection.Out); - GotFocus += (sender, args) => - { - _animationManager.StartNewAnimation(AnimationDirection.In); - }; - MouseEnter += (sender, args) => - { - MouseState = MouseState.HOVER; - Invalidate(); - }; - MouseLeave += (sender, args) => - { - MouseState = MouseState.OUT; - Invalidate(); - }; - HScroll += (sender, args) => - { - SendMessage(this.Handle, EM_GETSCROLLPOS, 0, ref scrollPos); - Invalidate(); - }; - KeyDown += (sender, args) => - { - SendMessage(this.Handle, EM_GETSCROLLPOS, 0, ref scrollPos); - }; - } - - private Point scrollPos = Point.Empty; - private const int EM_GETSCROLLPOS = WM_USER + 221; + + [DllImport("user32.dll", CharSet = CharSet.Auto)] + public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + + protected override void OnCreateControl() + { + base.OnCreateControl(); + base.Font = new Font(SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1).FontFamily, 12f, FontStyle.Regular); + base.AutoSize = false; + + SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true); + + if (Password) SendMessage(Handle, EM_SETPASSWORDCHAR, 'T', 0); + + // Size and padding + HEIGHT = UseTallSize ? 50 : 36; + Size = new Size(Size.Width, HEIGHT); + LINE_Y = HEIGHT - BOTTOM_PADDING; + + // Position the "real" text field + var rect = new Rectangle(SkinManager.FORM_PADDING, UseTallSize ? hasHint ? + (HINT_TEXT_SMALL_Y + HINT_TEXT_SMALL_SIZE) : // Has hint and it's tall + (int)(LINE_Y / 3.5) : // No hint and tall + Height / 5, // not tall + ClientSize.Width - (SkinManager.FORM_PADDING * 2), LINE_Y); + RECT rc = new RECT(rect); + SendMessageRefRect(Handle, EM_SETRECT, 0, ref rc); + + // events + MouseState = MouseState.OUT; + LostFocus += (sender, args) => _animationManager.StartNewAnimation(AnimationDirection.Out); + GotFocus += (sender, args) => + { + _animationManager.StartNewAnimation(AnimationDirection.In); + }; + MouseEnter += (sender, args) => + { + MouseState = MouseState.HOVER; + Invalidate(); + }; + MouseLeave += (sender, args) => + { + MouseState = MouseState.OUT; + Invalidate(); + }; + HScroll += (sender, args) => + { + SendMessage(this.Handle, EM_GETSCROLLPOS, 0, ref scrollPos); + Invalidate(); + }; + KeyDown += (sender, args) => + { + SendMessage(this.Handle, EM_GETSCROLLPOS, 0, ref scrollPos); + }; + } + + private Point scrollPos = Point.Empty; + private const int EM_GETSCROLLPOS = WM_USER + 221; private const int WM_USER = 0x400; - - [DllImport("user32.dll")] - private static extern IntPtr SendMessage(IntPtr hWnd, Int32 wMsg, Int32 wParam, ref Point lParam); - - public override Size GetPreferredSize(Size proposedSize) - { - return new Size(proposedSize.Width, HEIGHT); - } - - protected override void OnPaint(PaintEventArgs pevent) - { - base.OnPaint(pevent); - - var g = pevent.Graphics; - - g.Clear(Parent.BackColor); - - SolidBrush backBrush = new SolidBrush(DrawHelper.BlendColor(Parent.BackColor, SkinManager.BackgroundAlternativeColor, SkinManager.BackgroundAlternativeColor.A)); - - g.FillRectangle( - !Enabled ? SkinManager.BackgroundDisabledBrush : // Disabled - Focused ? SkinManager.BackgroundFocusBrush : // Focused - MouseState == MouseState.HOVER ? SkinManager.BackgroundHoverBrush : // Hover - backBrush, // Normal - ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, LINE_Y); - - // HintText - bool userTextPresent = !String.IsNullOrEmpty(Text); - Color textColor = Enabled ? Focused ? - UseAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor : // Focused - SkinManager.TextHighEmphasisColor : // Inactive - SkinManager.TextDisabledOrHintColor; // Disabled - Rectangle hintRect = new Rectangle(SkinManager.FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); - int hintTextSize = 16; - - // bottom line base - g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, Width, 1); - - if (!_animationManager.IsAnimating()) - { - // No animation - if (hasHint && UseTallSize && (Focused || userTextPresent)) - { - // hint text - hintRect = new Rectangle(SkinManager.FORM_PADDING, HINT_TEXT_SMALL_Y, Width, HINT_TEXT_SMALL_SIZE); - hintTextSize = 12; - } - - // bottom line - if (Focused) - { - g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, 0, LINE_Y, Width, 2); - } - } - else - { - // Animate - Focus got/lost - double animationProgress = _animationManager.GetProgress(); - - // hint Animation - if (hasHint && UseTallSize) - { - hintRect = new Rectangle( - SkinManager.FORM_PADDING, - userTextPresent ? (HINT_TEXT_SMALL_Y) : ClientRectangle.Y + (int)((HINT_TEXT_SMALL_Y - ClientRectangle.Y) * animationProgress), - Width, - userTextPresent ? (HINT_TEXT_SMALL_SIZE) : (int)(LINE_Y + (HINT_TEXT_SMALL_SIZE - LINE_Y) * animationProgress)); - hintTextSize = userTextPresent ? 12 : (int)(16 + (12 - 16) * animationProgress); - } - - // Line Animation - int LineAnimationWidth = (int)(Width * animationProgress); - int LineAnimationX = (Width / 2) - (LineAnimationWidth / 2); - g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); - } - - // Text stuff: - string textToDisplay = Password ? Text.ToSecureString() : Text; - string textSelected; - Rectangle textSelectRect; - - // Calc text Rect - Rectangle textRect = new Rectangle( - SkinManager.FORM_PADDING, - hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, - ClientRectangle.Width - SkinManager.FORM_PADDING * 2 + scrollPos.X, - hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); - - g.Clip = new Region(textRect); - textRect.X -= scrollPos.X; - - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - // Selection rects calc - string textBeforeSelection = textToDisplay.Substring(0, SelectionStart); - textSelected = textToDisplay.Substring(SelectionStart, SelectionLength); - - int selectX = NativeText.MeasureLogString(textBeforeSelection, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width; - int selectWidth = NativeText.MeasureLogString(textSelected, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width; - - textSelectRect = new Rectangle( - textRect.X + selectX, UseTallSize ? hasHint ? - textRect.Y + BOTTOM_PADDING : // tall and hint - LINE_Y / 3 - BOTTOM_PADDING : // tall and no hint - BOTTOM_PADDING, // not tall - selectWidth, - UseTallSize ? hasHint ? - textRect.Height - BOTTOM_PADDING * 2 : // tall and hint - (int)(LINE_Y / 2) : // tall and no hint - LINE_Y - BOTTOM_PADDING * 2); // not tall - - // Draw user text - NativeText.DrawTransparentText( - textToDisplay, - SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1), - Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, - textRect.Location, - textRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - } - - if (Focused) - { - // Draw Selection Rectangle - g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.DarkPrimaryBrush, textSelectRect); - - // Draw Selected Text - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - NativeText.DrawTransparentText( - textSelected, - SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1), - SkinManager.ColorScheme.TextColor, - textSelectRect.Location, - textSelectRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - } - } - - g.Clip = new Region(ClientRectangle); - - // Draw hint text - if (hasHint && (UseTallSize || String.IsNullOrEmpty(Text))) - { - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - NativeText.DrawTransparentText( - Hint, - SkinManager.getTextBoxFontBySize(hintTextSize), - Enabled ? Focused ? UseAccent ? - SkinManager.ColorScheme.AccentColor : // Focus Accent - SkinManager.ColorScheme.PrimaryColor : // Focus Primary - SkinManager.TextMediumEmphasisColor : // not focused - SkinManager.TextDisabledOrHintColor, // Disabled - hintRect.Location, - hintRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - } - } - } - - protected override void OnTextChanged(EventArgs e) - { - base.OnTextChanged(e); - Invalidate(); - } - - protected override void OnSelectionChanged(EventArgs e) - { - base.OnSelectionChanged(e); - Invalidate(); - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - Size = new Size(Width, HEIGHT); - LINE_Y = HEIGHT - BOTTOM_PADDING; - } - - private void ContextMenuStripOnItemClickStart(object sender, ToolStripItemClickedEventArgs toolStripItemClickedEventArgs) - { - switch (toolStripItemClickedEventArgs.ClickedItem.Text) - { - case "Cut": - Cut(); - break; - - case "Copy": - Copy(); - break; - - case "Paste": - Paste(); - break; - - case "Delete": - SelectedText = string.Empty; - break; - - case "Select All": - SelectAll(); - break; - } - } - - private void ContextMenuStripOnOpening(object sender, CancelEventArgs cancelEventArgs) - { - var strip = sender as TextBoxContextMenuStrip; - if (strip != null) - { - strip.Cut.Enabled = !string.IsNullOrEmpty(SelectedText); - strip.Copy.Enabled = !string.IsNullOrEmpty(SelectedText); - strip.Paste.Enabled = Clipboard.ContainsText(); - strip.Delete.Enabled = !string.IsNullOrEmpty(SelectedText); - strip.SelectAll.Enabled = !string.IsNullOrEmpty(Text); - } - } - - // Cursor flickering fix - private const int WM_SETCURSOR = 0x0020; - - protected override void WndProc(ref Message m) - { - if (m.Msg == WM_SETCURSOR) - Cursor.Current = this.Cursor; - else - base.WndProc(ref m); - } - - // Padding - private const int EM_SETRECT = 0xB3; - - [DllImport(@"User32.dll", EntryPoint = @"SendMessage", CharSet = CharSet.Auto)] - private static extern int SendMessageRefRect(IntPtr hWnd, uint msg, int wParam, ref RECT rect); - - [StructLayout(LayoutKind.Sequential)] - private struct RECT - { - public readonly int Left; - public readonly int Top; - public readonly int Right; - public readonly int Bottom; - - private RECT(int left, int top, int right, int bottom) - { - Left = left; - Top = top; - Right = right; - Bottom = bottom; - } - + + [DllImport("user32.dll")] + private static extern IntPtr SendMessage(IntPtr hWnd, Int32 wMsg, Int32 wParam, ref Point lParam); + + public override Size GetPreferredSize(Size proposedSize) + { + return new Size(proposedSize.Width, HEIGHT); + } + + protected override void OnPaint(PaintEventArgs pevent) + { + base.OnPaint(pevent); + + var g = pevent.Graphics; + + g.Clear(Parent.BackColor); + + SolidBrush backBrush = new SolidBrush(DrawHelper.BlendColor(Parent.BackColor, SkinManager.BackgroundAlternativeColor, SkinManager.BackgroundAlternativeColor.A)); + + g.FillRectangle( + !Enabled ? SkinManager.BackgroundDisabledBrush : // Disabled + Focused ? SkinManager.BackgroundFocusBrush : // Focused + MouseState == MouseState.HOVER ? SkinManager.BackgroundHoverBrush : // Hover + backBrush, // Normal + ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, LINE_Y); + + // HintText + bool userTextPresent = !String.IsNullOrEmpty(Text); + Color textColor = Enabled ? Focused ? + UseAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor : // Focused + SkinManager.TextHighEmphasisColor : // Inactive + SkinManager.TextDisabledOrHintColor; // Disabled + Rectangle hintRect = new Rectangle(SkinManager.FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); + int hintTextSize = 16; + + // bottom line base + g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, Width, 1); + + if (!_animationManager.IsAnimating()) + { + // No animation + if (hasHint && UseTallSize && (Focused || userTextPresent)) + { + // hint text + hintRect = new Rectangle(SkinManager.FORM_PADDING, HINT_TEXT_SMALL_Y, Width, HINT_TEXT_SMALL_SIZE); + hintTextSize = 12; + } + + // bottom line + if (Focused) + { + g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, 0, LINE_Y, Width, 2); + } + } + else + { + // Animate - Focus got/lost + double animationProgress = _animationManager.GetProgress(); + + // hint Animation + if (hasHint && UseTallSize) + { + hintRect = new Rectangle( + SkinManager.FORM_PADDING, + userTextPresent ? (HINT_TEXT_SMALL_Y) : ClientRectangle.Y + (int)((HINT_TEXT_SMALL_Y - ClientRectangle.Y) * animationProgress), + Width, + userTextPresent ? (HINT_TEXT_SMALL_SIZE) : (int)(LINE_Y + (HINT_TEXT_SMALL_SIZE - LINE_Y) * animationProgress)); + hintTextSize = userTextPresent ? 12 : (int)(16 + (12 - 16) * animationProgress); + } + + // Line Animation + int LineAnimationWidth = (int)(Width * animationProgress); + int LineAnimationX = (Width / 2) - (LineAnimationWidth / 2); + g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); + } + + // Text stuff: + string textToDisplay = Password ? Text.ToSecureString() : Text; + string textSelected; + Rectangle textSelectRect; + + // Calc text Rect + Rectangle textRect = new Rectangle( + SkinManager.FORM_PADDING, + hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, + ClientRectangle.Width - SkinManager.FORM_PADDING * 2 + scrollPos.X, + hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); + + g.Clip = new Region(textRect); + textRect.X -= scrollPos.X; + + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + // Selection rects calc + string textBeforeSelection = textToDisplay.Substring(0, SelectionStart); + textSelected = textToDisplay.Substring(SelectionStart, SelectionLength); + + int selectX = NativeText.MeasureLogString(textBeforeSelection, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width; + int selectWidth = NativeText.MeasureLogString(textSelected, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width; + + textSelectRect = new Rectangle( + textRect.X + selectX, UseTallSize ? hasHint ? + textRect.Y + BOTTOM_PADDING : // tall and hint + LINE_Y / 3 - BOTTOM_PADDING : // tall and no hint + BOTTOM_PADDING, // not tall + selectWidth, + UseTallSize ? hasHint ? + textRect.Height - BOTTOM_PADDING * 2 : // tall and hint + (int)(LINE_Y / 2) : // tall and no hint + LINE_Y - BOTTOM_PADDING * 2); // not tall + + // Draw user text + NativeText.DrawTransparentText( + textToDisplay, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1), + Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, + textRect.Location, + textRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + + if (Focused) + { + // Draw Selection Rectangle + g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.DarkPrimaryBrush, textSelectRect); + + // Draw Selected Text + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + textSelected, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1), + SkinManager.ColorScheme.TextColor, + textSelectRect.Location, + textSelectRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + g.Clip = new Region(ClientRectangle); + + // Draw hint text + if (hasHint && (UseTallSize || String.IsNullOrEmpty(Text))) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + Hint, + SkinManager.getTextBoxFontBySize(hintTextSize), + Enabled ? Focused ? UseAccent ? + SkinManager.ColorScheme.AccentColor : // Focus Accent + SkinManager.ColorScheme.PrimaryColor : // Focus Primary + SkinManager.TextMediumEmphasisColor : // not focused + SkinManager.TextDisabledOrHintColor, // Disabled + hintRect.Location, + hintRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + } + + protected override void OnTextChanged(EventArgs e) + { + base.OnTextChanged(e); + Invalidate(); + } + + protected override void OnSelectionChanged(EventArgs e) + { + base.OnSelectionChanged(e); + Invalidate(); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + Size = new Size(Width, HEIGHT); + LINE_Y = HEIGHT - BOTTOM_PADDING; + } + + private void ContextMenuStripOnItemClickStart(object sender, ToolStripItemClickedEventArgs toolStripItemClickedEventArgs) + { + switch (toolStripItemClickedEventArgs.ClickedItem.Text) + { + case "Cut": + Cut(); + break; + + case "Copy": + Copy(); + break; + + case "Paste": + Paste(); + break; + + case "Delete": + SelectedText = string.Empty; + break; + + case "Select All": + SelectAll(); + break; + } + } + + private void ContextMenuStripOnOpening(object sender, CancelEventArgs cancelEventArgs) + { + var strip = sender as TextBoxContextMenuStrip; + if (strip != null) + { + strip.Cut.Enabled = !string.IsNullOrEmpty(SelectedText); + strip.Copy.Enabled = !string.IsNullOrEmpty(SelectedText); + strip.Paste.Enabled = Clipboard.ContainsText(); + strip.Delete.Enabled = !string.IsNullOrEmpty(SelectedText); + strip.SelectAll.Enabled = !string.IsNullOrEmpty(Text); + } + } + + // Cursor flickering fix + private const int WM_SETCURSOR = 0x0020; + + protected override void WndProc(ref Message m) + { + if (m.Msg == WM_SETCURSOR) + Cursor.Current = this.Cursor; + else + base.WndProc(ref m); + } + + // Padding + private const int EM_SETRECT = 0xB3; + + [DllImport(@"User32.dll", EntryPoint = @"SendMessage", CharSet = CharSet.Auto)] + private static extern int SendMessageRefRect(IntPtr hWnd, uint msg, int wParam, ref RECT rect); + + [StructLayout(LayoutKind.Sequential)] + private struct RECT + { + public readonly int Left; + public readonly int Top; + public readonly int Right; + public readonly int Bottom; + + private RECT(int left, int top, int right, int bottom) + { + Left = left; + Top = top; + Right = right; + Bottom = bottom; + } + public RECT(Rectangle r) : this(r.Left, r.Top, r.Right, r.Bottom) { - } - } - } - - public class TextBoxContextMenuStrip : MaterialContextMenuStrip - { - public readonly ToolStripItem SelectAll = new MaterialToolStripMenuItem { Text = "Select All" }; - public readonly ToolStripItem Separator2 = new ToolStripSeparator(); - public readonly ToolStripItem Paste = new MaterialToolStripMenuItem { Text = "Paste" }; - public readonly ToolStripItem Copy = new MaterialToolStripMenuItem { Text = "Copy" }; - public readonly ToolStripItem Cut = new MaterialToolStripMenuItem { Text = "Cut" }; - public readonly ToolStripItem Delete = new MaterialToolStripMenuItem { Text = "Delete" }; - - public TextBoxContextMenuStrip() - { - Items.AddRange(new[] - { - Cut, - Copy, - Paste, - Delete, - Separator2, - SelectAll - } - ); - } - } + } + } + } + + public class TextBoxContextMenuStrip : MaterialContextMenuStrip + { + public readonly ToolStripItem SelectAll = new MaterialToolStripMenuItem { Text = "Select All" }; + public readonly ToolStripItem Separator2 = new ToolStripSeparator(); + public readonly ToolStripItem Paste = new MaterialToolStripMenuItem { Text = "Paste" }; + public readonly ToolStripItem Copy = new MaterialToolStripMenuItem { Text = "Copy" }; + public readonly ToolStripItem Cut = new MaterialToolStripMenuItem { Text = "Cut" }; + public readonly ToolStripItem Delete = new MaterialToolStripMenuItem { Text = "Delete" }; + + public TextBoxContextMenuStrip() + { + Items.AddRange(new[] + { + Cut, + Copy, + Paste, + Delete, + Separator2, + SelectAll + } + ); + } + } } \ No newline at end of file diff --git a/MaterialSkin/DrawHelper.cs b/MaterialSkin/DrawHelper.cs index a58eb4ec..92f64f08 100644 --- a/MaterialSkin/DrawHelper.cs +++ b/MaterialSkin/DrawHelper.cs @@ -1,112 +1,112 @@ -namespace MaterialSkin -{ - using System.Drawing; - using System.Drawing.Drawing2D; - - /// - /// Defines the - /// - internal static class DrawHelper - { - /// - /// The CreateRoundRect - /// - /// The x - /// The y - /// The width - /// The height - /// The radius - /// The - public static GraphicsPath CreateRoundRect(float x, float y, float width, float height, float radius) - { - var gp = new GraphicsPath(); - gp.AddArc(x + width - (radius * 2), y, radius * 2, radius * 2, 270, 90); - gp.AddArc(x + width - (radius * 2), y + height - (radius * 2), radius * 2, radius * 2, 0, 90); - gp.AddArc(x, y + height - (radius * 2), radius * 2, radius * 2, 90, 90); - gp.AddArc(x, y, radius * 2, radius * 2, 180, 90); - gp.CloseFigure(); - return gp; - } - - /// - /// The CreateRoundRect - /// - /// The rect - /// The radius - /// The - public static GraphicsPath CreateRoundRect(Rectangle rect, float radius) - { - return CreateRoundRect(rect.X, rect.Y, rect.Width, rect.Height, radius); - } - - /// - /// The CreateRoundRect - /// - /// The rect - /// The radius - /// The - public static GraphicsPath CreateRoundRect(RectangleF rect, float radius) - { - return CreateRoundRect(rect.X, rect.Y, rect.Width, rect.Height, radius); - } - - /// - /// The BlendColor - /// - /// The backgroundColor - /// The frontColor - /// The blend - /// The - public static Color BlendColor(Color backgroundColor, Color frontColor, double blend) - { - var ratio = blend / 255d; - var invRatio = 1d - ratio; - var r = (int)((backgroundColor.R * invRatio) + (frontColor.R * ratio)); - var g = (int)((backgroundColor.G * invRatio) + (frontColor.G * ratio)); - var b = (int)((backgroundColor.B * invRatio) + (frontColor.B * ratio)); - return Color.FromArgb(r, g, b); - } - - /// - /// The BlendColor - /// - /// The backgroundColor - /// The frontColor - /// The - public static Color BlendColor(Color backgroundColor, Color frontColor) - { - return BlendColor(backgroundColor, frontColor, frontColor.A); +namespace MaterialSkin +{ + using System.Drawing; + using System.Drawing.Drawing2D; + + /// + /// Defines the + /// + internal static class DrawHelper + { + /// + /// The CreateRoundRect + /// + /// The x + /// The y + /// The width + /// The height + /// The radius + /// The + public static GraphicsPath CreateRoundRect(float x, float y, float width, float height, float radius) + { + var gp = new GraphicsPath(); + gp.AddArc(x + width - (radius * 2), y, radius * 2, radius * 2, 270, 90); + gp.AddArc(x + width - (radius * 2), y + height - (radius * 2), radius * 2, radius * 2, 0, 90); + gp.AddArc(x, y + height - (radius * 2), radius * 2, radius * 2, 90, 90); + gp.AddArc(x, y, radius * 2, radius * 2, 180, 90); + gp.CloseFigure(); + return gp; } - - public static void DrawSquareShadow(Graphics g, Rectangle bounds) - { - using (SolidBrush shadowBrush = new SolidBrush(Color.FromArgb(12, 0, 0, 0))) - { - GraphicsPath path; - path = DrawHelper.CreateRoundRect(new RectangleF(bounds.X - 3.5f, bounds.Y - 1.5f, bounds.Width + 6, bounds.Height + 6), 8); - g.FillPath(shadowBrush, path); - path = DrawHelper.CreateRoundRect(new RectangleF(bounds.X - 2.5f, bounds.Y - 1.5f, bounds.Width + 4, bounds.Height + 4), 6); - g.FillPath(shadowBrush, path); - path = DrawHelper.CreateRoundRect(new RectangleF(bounds.X - 1.5f, bounds.Y - 0.5f, bounds.Width + 2, bounds.Height + 2), 4); - g.FillPath(shadowBrush, path); - path = DrawHelper.CreateRoundRect(new RectangleF(bounds.X - 0.5f, bounds.Y + 1.5f, bounds.Width + 0, bounds.Height + 0), 4); - g.FillPath(shadowBrush, path); - path = DrawHelper.CreateRoundRect(new RectangleF(bounds.X - 0.5f, bounds.Y + 2.5f, bounds.Width + 0, bounds.Height + 0), 4); - g.FillPath(shadowBrush, path); - path.Dispose(); - } - } - - public static void DrawRoundShadow(Graphics g, Rectangle bounds) - { - using (SolidBrush shadowBrush = new SolidBrush(Color.FromArgb(12, 0, 0, 0))) - { - g.FillEllipse(shadowBrush, new Rectangle(bounds.X - 2, bounds.Y - 1, bounds.Width + 4, bounds.Height + 6)); - g.FillEllipse(shadowBrush, new Rectangle(bounds.X - 1, bounds.Y - 1, bounds.Width + 2, bounds.Height + 4)); - g.FillEllipse(shadowBrush, new Rectangle(bounds.X - 0, bounds.Y - 0, bounds.Width + 0, bounds.Height + 2)); - g.FillEllipse(shadowBrush, new Rectangle(bounds.X - 0, bounds.Y + 2, bounds.Width + 0, bounds.Height + 0)); - g.FillEllipse(shadowBrush, new Rectangle(bounds.X - 0, bounds.Y + 1, bounds.Width + 0, bounds.Height + 0)); - } - } - } + + /// + /// The CreateRoundRect + /// + /// The rect + /// The radius + /// The + public static GraphicsPath CreateRoundRect(Rectangle rect, float radius) + { + return CreateRoundRect(rect.X, rect.Y, rect.Width, rect.Height, radius); + } + + /// + /// The CreateRoundRect + /// + /// The rect + /// The radius + /// The + public static GraphicsPath CreateRoundRect(RectangleF rect, float radius) + { + return CreateRoundRect(rect.X, rect.Y, rect.Width, rect.Height, radius); + } + + /// + /// The BlendColor + /// + /// The backgroundColor + /// The frontColor + /// The blend + /// The + public static Color BlendColor(Color backgroundColor, Color frontColor, double blend) + { + var ratio = blend / 255d; + var invRatio = 1d - ratio; + var r = (int)((backgroundColor.R * invRatio) + (frontColor.R * ratio)); + var g = (int)((backgroundColor.G * invRatio) + (frontColor.G * ratio)); + var b = (int)((backgroundColor.B * invRatio) + (frontColor.B * ratio)); + return Color.FromArgb(r, g, b); + } + + /// + /// The BlendColor + /// + /// The backgroundColor + /// The frontColor + /// The + public static Color BlendColor(Color backgroundColor, Color frontColor) + { + return BlendColor(backgroundColor, frontColor, frontColor.A); + } + + public static void DrawSquareShadow(Graphics g, Rectangle bounds) + { + using (SolidBrush shadowBrush = new SolidBrush(Color.FromArgb(12, 0, 0, 0))) + { + GraphicsPath path; + path = DrawHelper.CreateRoundRect(new RectangleF(bounds.X - 3.5f, bounds.Y - 1.5f, bounds.Width + 6, bounds.Height + 6), 8); + g.FillPath(shadowBrush, path); + path = DrawHelper.CreateRoundRect(new RectangleF(bounds.X - 2.5f, bounds.Y - 1.5f, bounds.Width + 4, bounds.Height + 4), 6); + g.FillPath(shadowBrush, path); + path = DrawHelper.CreateRoundRect(new RectangleF(bounds.X - 1.5f, bounds.Y - 0.5f, bounds.Width + 2, bounds.Height + 2), 4); + g.FillPath(shadowBrush, path); + path = DrawHelper.CreateRoundRect(new RectangleF(bounds.X - 0.5f, bounds.Y + 1.5f, bounds.Width + 0, bounds.Height + 0), 4); + g.FillPath(shadowBrush, path); + path = DrawHelper.CreateRoundRect(new RectangleF(bounds.X - 0.5f, bounds.Y + 2.5f, bounds.Width + 0, bounds.Height + 0), 4); + g.FillPath(shadowBrush, path); + path.Dispose(); + } + } + + public static void DrawRoundShadow(Graphics g, Rectangle bounds) + { + using (SolidBrush shadowBrush = new SolidBrush(Color.FromArgb(12, 0, 0, 0))) + { + g.FillEllipse(shadowBrush, new Rectangle(bounds.X - 2, bounds.Y - 1, bounds.Width + 4, bounds.Height + 6)); + g.FillEllipse(shadowBrush, new Rectangle(bounds.X - 1, bounds.Y - 1, bounds.Width + 2, bounds.Height + 4)); + g.FillEllipse(shadowBrush, new Rectangle(bounds.X - 0, bounds.Y - 0, bounds.Width + 0, bounds.Height + 2)); + g.FillEllipse(shadowBrush, new Rectangle(bounds.X - 0, bounds.Y + 2, bounds.Width + 0, bounds.Height + 0)); + g.FillEllipse(shadowBrush, new Rectangle(bounds.X - 0, bounds.Y + 1, bounds.Width + 0, bounds.Height + 0)); + } + } + } } \ No newline at end of file diff --git a/MaterialSkin/MaterialSkin.csproj b/MaterialSkin/MaterialSkin.csproj index 9ac8960a..5df85232 100644 --- a/MaterialSkin/MaterialSkin.csproj +++ b/MaterialSkin/MaterialSkin.csproj @@ -151,6 +151,12 @@ SettingsSingleFileGenerator Settings.Designer.cs + + + + + + hMJ5eUS7w5$f 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 GaQO|$V#aC! literal 0 HcmV?d00001 diff --git a/MaterialSkin/Resources/IRANSans-Light.ttf b/MaterialSkin/Resources/IRANSans-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fe57ae628471f2945b5b3945662a3c68b3b7c5c0 GIT binary patch literal 97580 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 literal 0 HcmV?d00001 diff --git a/MaterialSkin/Resources/IRANSans-Regular.ttf b/MaterialSkin/Resources/IRANSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..10f2a487177cea702dccb6da412705ed165c3028 GIT binary patch literal 104668 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 literal 0 HcmV?d00001 diff --git a/MaterialSkin/Resources/IRANSans-UltraLight.ttf b/MaterialSkin/Resources/IRANSans-UltraLight.ttf new file mode 100644 index 0000000000000000000000000000000000000000..758b923a01d5906c3bb98212431b7e280afea3b2 GIT binary patch literal 102840 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 literal 0 HcmV?d00001 diff --git a/MaterialSkin/obj/Debug/MaterialSkin.csprojAssemblyReference.cache b/MaterialSkin/obj/Debug/MaterialSkin.csprojAssemblyReference.cache index 502f8b25697615a16d2273fcd76c32ad48701b94..dfdfd80507b63c55ed03db7aec9d2b7453afa4c4 100644 GIT binary patch delta 28 ecmZ3lv4VMnKO>{&mYBiDahirksc~Ypv~@!^gaU3>aQ%i%WjLo z9?-|=?x&dwyP2CQTFHSQsQhl`{^Aj45d_N1Foo24+)am>yA>$TTFwBPg#T)4!oYee zcKhqDm&HkYvYuH?cP$P_ZlaP7dAt5q)r2xNFS)^3rG_zMv|6*BdnfaFCh7Z;8%%xv z_4Siy$Ss?IHZNKPs+v^Y#*eF1>?4c=K-exO2i;+MF!nn|{=f z_fls)PQujb2Z7l^$n85B@@(Sn`O$VBOd^fOmmctvwesXVui;6mO-xSMd4Fb8Py!LeyB)DCem;zm%(Iy=?l&=Z8gA6= zt5IsEJbY;@$#zxJ7(|BAXqv*19p_f&?hvP@?@aP=e*>9!?n(1TgOf)Ev0{gAO02!$;_F z->nYZs)G(6rNhVQaR03i+}48*AE(17=yA;3KMlG5fz<)QO}c=*s?fV(_KSOCm(%PDQ{XU@yt!!K!`uOcsN zU&O@`6ui*yN3IhEBh!IqmYQhb<%%!eRP=MjV(AkNb_$cFiYB*d^Zn%$WR$~CP<|P1 za+z?PutGQim}gE<+I->fXKNpZyF5vF1TfFkp|otkp>$-^RsoHQ1Ig$$M7T@#4PPLd$9IsQr=aCoMPaW=Y#m zyF9@bJxAkJkVroa$9bRaBr0@ABh|-=ZZo}%nVCj|3EL2jyC>Cf(os7d(OH=m$Y|hi zj}w=DyDSuFSmovZ+f6EX2Y+s1H*a-6!X4NVCfF-|zTlpxU z6!8MCnt#K`&;K_|9`5!ozYTglgKg7j{uN~JZ}K(HynI;fUY1}furY*r23T(Oq?uas zF(~CKpp<-d;xCvGS4ge+GcGv8DlLnP&4=b$pf%a}XT!jf=b(`5fKm#|KUFFJsG(%3 zvN44D1kfxfE%`Ov$R`1%6m-9@()~_D$D(Ir2y+8?bTY%P^2W%OeM>$AtvnAXrQrQd zmG{>gUe-|?LzrFQ>@?*PWyy=s$Zr5jDL8*s<@}|FlV#b)5azSMd#0R~EBl9yAEHij^_feRDn3*#vBL*;Z;;=6%=wWtXE{&cep ze_A-**d1AN2p8!CN-2WARSo*4CMbKCjUmhcSULV7ZY929rcw~TQ6+p`L&!d8V+iwm zz-cxoxRLmqU@8UOYgM{eHFWH#Hij^Ffw#$!Jv@?E0HqYd*ATK7+8Dz80dTtb>$s6G0!k_9p0Cnf)6lW2+8Dxo30NyOFGC?; z0hCfuUa3;^Me+I0*uy>)5Hvpv+l)WnD<%5(**@oFH8-KXEdFj66@BOgJ zo?P~`NkeZ!W%izSzZ)m`@$q43_VWKk$le9D>+|mlSQs4$O{;SBG2G<=etV|(!u&t1 zQ(_ew2038L4p*CtV7t?rvU}A{*~+x0Y)JJ9usdl@*=OpkY&u#~c8xkKTZq<_t)Ono zzMwT_ZLgcM&}&VH2TWO>wWh4KIcxcj1z(rely$Uj%A%?@WmT-tl_gSZdaX2_PJqQv zYkK{FDGQs{lr^e8R~9U-Da%gXlr>0e%1TmS7R!p(lr^Hx%7URa<%zGe^7v~_d6Mg_ JH*RA(`yZq`(P{ty diff --git a/MaterialSkinExample/MainForm.Designer.cs b/MaterialSkinExample/MainForm.Designer.cs index cde17ce8..7fca63ec 100644 --- a/MaterialSkinExample/MainForm.Designer.cs +++ b/MaterialSkinExample/MainForm.Designer.cs @@ -192,7 +192,7 @@ private void InitializeComponent() this.materialCheckbox3.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckbox3.Name = "materialCheckbox3"; this.materialCheckbox3.Ripple = true; - this.materialCheckbox3.Size = new System.Drawing.Size(171, 37); + this.materialCheckbox3.Size = new System.Drawing.Size(172, 37); this.materialCheckbox3.TabIndex = 2; this.materialCheckbox3.Text = "materialCheckbox3"; this.materialCheckbox3.UseVisualStyleBackColor = true; @@ -211,13 +211,14 @@ private void InitializeComponent() this.materialCheckbox1.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckbox1.Name = "materialCheckbox1"; this.materialCheckbox1.Ripple = true; - this.materialCheckbox1.Size = new System.Drawing.Size(171, 37); + this.materialCheckbox1.Size = new System.Drawing.Size(167, 37); this.materialCheckbox1.TabIndex = 1; this.materialCheckbox1.Text = "materialCheckbox1"; this.materialCheckbox1.UseVisualStyleBackColor = true; // // materialTabControl1 // + this.materialTabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialTabControl1.Controls.Add(this.tabPage1); this.materialTabControl1.Controls.Add(this.tabPage7); this.materialTabControl1.Controls.Add(this.tabPage2); @@ -226,11 +227,11 @@ private void InitializeComponent() this.materialTabControl1.Controls.Add(this.tabPage5); this.materialTabControl1.Controls.Add(this.tabPage6); this.materialTabControl1.Depth = 0; - this.materialTabControl1.Dock = System.Windows.Forms.DockStyle.Fill; this.materialTabControl1.ImageList = this.menuIconList; this.materialTabControl1.Location = new System.Drawing.Point(3, 64); this.materialTabControl1.MouseState = MaterialSkin.MouseState.HOVER; this.materialTabControl1.Name = "materialTabControl1"; + this.materialTabControl1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialTabControl1.SelectedIndex = 0; this.materialTabControl1.Size = new System.Drawing.Size(1023, 555); this.materialTabControl1.TabIndex = 18; @@ -251,24 +252,26 @@ private void InitializeComponent() this.tabPage1.ImageKey = "round_assessment_white_24dp.png"; this.tabPage1.Location = new System.Drawing.Point(4, 31); this.tabPage1.Name = "tabPage1"; + this.tabPage1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.tabPage1.Size = new System.Drawing.Size(1015, 520); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "Home"; // // MaterialButton3 // + this.MaterialButton3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.MaterialButton3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.MaterialButton3.Depth = 0; this.MaterialButton3.DrawShadows = true; this.MaterialButton3.HighEmphasis = true; this.MaterialButton3.Icon = null; - this.MaterialButton3.Location = new System.Drawing.Point(22, 425); + this.MaterialButton3.Location = new System.Drawing.Point(777, 432); this.MaterialButton3.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton3.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton3.Name = "MaterialButton3"; - this.MaterialButton3.Size = new System.Drawing.Size(163, 36); + this.MaterialButton3.Size = new System.Drawing.Size(175, 36); this.MaterialButton3.TabIndex = 36; - this.MaterialButton3.Text = "Open Message box"; + this.MaterialButton3.Text = "بازکـــــــــردن جعبه پیام"; this.MaterialButton3.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.MaterialButton3.UseAccentColor = false; this.MaterialButton3.UseVisualStyleBackColor = true; @@ -276,18 +279,19 @@ private void InitializeComponent() // // materialSwitch8 // + this.materialSwitch8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialSwitch8.AutoSize = true; this.materialSwitch8.Checked = true; this.materialSwitch8.CheckState = System.Windows.Forms.CheckState.Checked; this.materialSwitch8.Depth = 0; this.materialSwitch8.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch8.Location = new System.Drawing.Point(22, 323); + this.materialSwitch8.Location = new System.Drawing.Point(622, 333); this.materialSwitch8.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch8.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch8.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch8.Name = "materialSwitch8"; this.materialSwitch8.Ripple = true; - this.materialSwitch8.Size = new System.Drawing.Size(309, 37); + this.materialSwitch8.Size = new System.Drawing.Size(312, 37); this.materialSwitch8.TabIndex = 37; this.materialSwitch8.Text = "Drawer - Display Icons when hidden"; this.materialSwitch8.UseVisualStyleBackColor = true; @@ -295,29 +299,33 @@ private void InitializeComponent() // // materialLabel24 // + this.materialLabel24.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialLabel24.AutoSize = true; this.materialLabel24.Depth = 0; - this.materialLabel24.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel24.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.materialLabel24.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel24.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel24.Location = new System.Drawing.Point(21, 17); + this.materialLabel24.Location = new System.Drawing.Point(871, 14); this.materialLabel24.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel24.Name = "materialLabel24"; - this.materialLabel24.Size = new System.Drawing.Size(129, 58); + this.materialLabel24.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialLabel24.Size = new System.Drawing.Size(85, 75); this.materialLabel24.TabIndex = 32; - this.materialLabel24.Text = "Home"; + this.materialLabel24.Text = "خانه"; // // materialSwitch6 // + this.materialSwitch6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialSwitch6.AutoSize = true; this.materialSwitch6.Depth = 0; this.materialSwitch6.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch6.Location = new System.Drawing.Point(22, 286); + this.materialSwitch6.Location = new System.Drawing.Point(622, 296); this.materialSwitch6.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch6.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch6.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch6.Name = "materialSwitch6"; this.materialSwitch6.Ripple = true; - this.materialSwitch6.Size = new System.Drawing.Size(291, 37); + this.materialSwitch6.Size = new System.Drawing.Size(294, 37); this.materialSwitch6.TabIndex = 31; this.materialSwitch6.Text = "Drawer - Background with Accent"; this.materialSwitch6.UseVisualStyleBackColor = true; @@ -325,45 +333,52 @@ private void InitializeComponent() // // materialLabel6 // + this.materialLabel6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialLabel6.AutoSize = true; this.materialLabel6.Depth = 0; - this.materialLabel6.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel6.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.materialLabel6.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel6.Location = new System.Drawing.Point(19, 389); + this.materialLabel6.Location = new System.Drawing.Point(810, 401); this.materialLabel6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel6.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel6.Name = "materialLabel6"; - this.materialLabel6.Size = new System.Drawing.Size(154, 19); + this.materialLabel6.Size = new System.Drawing.Size(146, 25); this.materialLabel6.TabIndex = 35; - this.materialLabel6.Text = "Flexible Message Box"; + this.materialLabel6.Text = "جعبه پیام انعطاف پذیر"; // // materialLabel9 // + this.materialLabel9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialLabel9.Depth = 0; - this.materialLabel9.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel9.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.materialLabel9.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel9.Location = new System.Drawing.Point(19, 79); + this.materialLabel9.Location = new System.Drawing.Point(501, 81); this.materialLabel9.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel9.Name = "materialLabel9"; - this.materialLabel9.Size = new System.Drawing.Size(455, 60); + this.materialLabel9.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialLabel9.Size = new System.Drawing.Size(455, 79); this.materialLabel9.TabIndex = 0; - this.materialLabel9.Text = "Welcome to the Material Skin Demo\r\nTo the left is the drawer, use it to see all t" + - "he demos available\r\nTry clicking stuff, you won\'t break it ;)\r\n"; + this.materialLabel9.Text = "خوش آمدید به دمو متریال‌اسکین\r\nمنو در سمت راست است ، از آن استفاده کنید تا همه بخ" + + "ش‌های موجود را ببینید\r\nروی آیتم‌ها کلیک کنید، سعی نکنید آن را بشکنید ؛)"; + this.materialLabel9.Click += new System.EventHandler(this.materialLabel9_Click); // // materialSwitch5 // + this.materialSwitch5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialSwitch5.AutoSize = true; this.materialSwitch5.Checked = true; this.materialSwitch5.CheckState = System.Windows.Forms.CheckState.Checked; this.materialSwitch5.Depth = 0; this.materialSwitch5.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch5.Location = new System.Drawing.Point(22, 250); + this.materialSwitch5.Location = new System.Drawing.Point(622, 260); this.materialSwitch5.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch5.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch5.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch5.Name = "materialSwitch5"; this.materialSwitch5.Ripple = true; - this.materialSwitch5.Size = new System.Drawing.Size(270, 37); + this.materialSwitch5.Size = new System.Drawing.Size(273, 37); this.materialSwitch5.TabIndex = 30; this.materialSwitch5.Text = "Drawer - Highlight with Accent"; this.materialSwitch5.UseVisualStyleBackColor = true; @@ -371,18 +386,19 @@ private void InitializeComponent() // // materialButton7 // + this.materialButton7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialButton7.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.materialButton7.Depth = 0; this.materialButton7.DrawShadows = true; this.materialButton7.HighEmphasis = true; this.materialButton7.Icon = null; - this.materialButton7.Location = new System.Drawing.Point(180, 156); + this.materialButton7.Location = new System.Drawing.Point(661, 166); this.materialButton7.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton7.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton7.Name = "materialButton7"; - this.materialButton7.Size = new System.Drawing.Size(133, 36); + this.materialButton7.Size = new System.Drawing.Size(127, 36); this.materialButton7.TabIndex = 0; - this.materialButton7.Text = "Change Theme"; + this.materialButton7.Text = "تغییـــــــر قالب"; this.materialButton7.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; this.materialButton7.UseAccentColor = false; this.materialButton7.UseVisualStyleBackColor = true; @@ -390,16 +406,18 @@ private void InitializeComponent() // // materialSwitch4 // + this.materialSwitch4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialSwitch4.AutoSize = true; this.materialSwitch4.Depth = 0; this.materialSwitch4.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch4.Location = new System.Drawing.Point(22, 213); + this.materialSwitch4.Location = new System.Drawing.Point(623, 223); this.materialSwitch4.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch4.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch4.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch4.Name = "materialSwitch4"; + this.materialSwitch4.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch4.Ripple = true; - this.materialSwitch4.Size = new System.Drawing.Size(193, 37); + this.materialSwitch4.Size = new System.Drawing.Size(195, 37); this.materialSwitch4.TabIndex = 29; this.materialSwitch4.Text = "Drawer - Use colors"; this.materialSwitch4.UseVisualStyleBackColor = true; @@ -407,18 +425,19 @@ private void InitializeComponent() // // MaterialButton4 // + this.MaterialButton4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.MaterialButton4.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.MaterialButton4.Depth = 0; this.MaterialButton4.DrawShadows = true; this.MaterialButton4.HighEmphasis = true; this.MaterialButton4.Icon = null; - this.MaterialButton4.Location = new System.Drawing.Point(22, 156); + this.MaterialButton4.Location = new System.Drawing.Point(830, 166); this.MaterialButton4.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton4.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton4.Name = "MaterialButton4"; - this.MaterialButton4.Size = new System.Drawing.Size(140, 36); + this.MaterialButton4.Size = new System.Drawing.Size(122, 36); this.MaterialButton4.TabIndex = 22; - this.MaterialButton4.Text = "Change Colors"; + this.MaterialButton4.Text = "تغییـــــــر رنگ"; this.MaterialButton4.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.MaterialButton4.UseAccentColor = false; this.MaterialButton4.UseVisualStyleBackColor = true; @@ -483,13 +502,13 @@ private void InitializeComponent() // this.materialLabel37.AutoSize = true; this.materialLabel37.Depth = 0; - this.materialLabel37.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel37.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel37.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel37.Location = new System.Drawing.Point(519, 183); this.materialLabel37.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel37.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel37.Name = "materialLabel37"; - this.materialLabel37.Size = new System.Drawing.Size(51, 19); + this.materialLabel37.Size = new System.Drawing.Size(51, 25); this.materialLabel37.TabIndex = 63; this.materialLabel37.Text = "Outline"; // @@ -497,13 +516,13 @@ private void InitializeComponent() // this.materialLabel36.AutoSize = true; this.materialLabel36.Depth = 0; - this.materialLabel36.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel36.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel36.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel36.Location = new System.Drawing.Point(277, 183); this.materialLabel36.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel36.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel36.Name = "materialLabel36"; - this.materialLabel36.Size = new System.Drawing.Size(73, 19); + this.materialLabel36.Size = new System.Drawing.Size(73, 25); this.materialLabel36.TabIndex = 62; this.materialLabel36.Text = "Contained"; // @@ -511,13 +530,13 @@ private void InitializeComponent() // this.materialLabel35.AutoSize = true; this.materialLabel35.Depth = 0; - this.materialLabel35.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel35.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel35.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel35.Location = new System.Drawing.Point(42, 183); this.materialLabel35.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel35.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel35.Name = "materialLabel35"; - this.materialLabel35.Size = new System.Drawing.Size(66, 19); + this.materialLabel35.Size = new System.Drawing.Size(67, 25); this.materialLabel35.TabIndex = 61; this.materialLabel35.Text = "Text only"; // @@ -541,13 +560,13 @@ private void InitializeComponent() // this.materialLabel3.AutoSize = true; this.materialLabel3.Depth = 0; - this.materialLabel3.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel3.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel3.Location = new System.Drawing.Point(758, 183); this.materialLabel3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel3.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel3.Name = "materialLabel3"; - this.materialLabel3.Size = new System.Drawing.Size(159, 19); + this.materialLabel3.Size = new System.Drawing.Size(161, 25); this.materialLabel3.TabIndex = 60; this.materialLabel3.Text = "Floating Action Button"; // @@ -555,12 +574,12 @@ private void InitializeComponent() // this.materialLabel25.AutoSize = true; this.materialLabel25.Depth = 0; - this.materialLabel25.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel25.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel25.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel25.Location = new System.Drawing.Point(22, 13); this.materialLabel25.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel25.Name = "materialLabel25"; - this.materialLabel25.Size = new System.Drawing.Size(179, 58); + this.materialLabel25.Size = new System.Drawing.Size(179, 75); this.materialLabel25.TabIndex = 58; this.materialLabel25.Text = "Buttons!"; // @@ -605,7 +624,7 @@ private void InitializeComponent() // materialLabel8 // this.materialLabel8.Depth = 0; - this.materialLabel8.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel8.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel8.Location = new System.Drawing.Point(25, 76); this.materialLabel8.MouseState = MaterialSkin.MouseState.HOVER; @@ -972,7 +991,7 @@ private void InitializeComponent() this.materialComboBox2.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; this.materialComboBox2.DropDownHeight = 174; this.materialComboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.materialComboBox2.DropDownWidth = 435; + this.materialComboBox2.DropDownWidth = 444; this.materialComboBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialComboBox2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialComboBox2.FormattingEnabled = true; @@ -986,7 +1005,7 @@ private void InitializeComponent() this.materialComboBox2.MaxDropDownItems = 4; this.materialComboBox2.MouseState = MaterialSkin.MouseState.OUT; this.materialComboBox2.Name = "materialComboBox2"; - this.materialComboBox2.Size = new System.Drawing.Size(435, 49); + this.materialComboBox2.Size = new System.Drawing.Size(444, 49); this.materialComboBox2.TabIndex = 73; // // materialComboBox5 @@ -1202,7 +1221,7 @@ private void InitializeComponent() "Item 7"}); this.materialComboBox3.Location = new System.Drawing.Point(258, 462); this.materialComboBox3.MaxDropDownItems = 4; - this.materialComboBox3.MouseState = MaterialSkin.MouseState.HOVER; + this.materialComboBox3.MouseState = MaterialSkin.MouseState.OUT; this.materialComboBox3.Name = "materialComboBox3"; this.materialComboBox3.Size = new System.Drawing.Size(190, 35); this.materialComboBox3.TabIndex = 70; @@ -1212,13 +1231,13 @@ private void InitializeComponent() // this.materialLabel5.AutoSize = true; this.materialLabel5.Depth = 0; - this.materialLabel5.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel5.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel5.Location = new System.Drawing.Point(28, 315); this.materialLabel5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel5.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel5.Name = "materialLabel5"; - this.materialLabel5.Size = new System.Drawing.Size(114, 19); + this.materialLabel5.Size = new System.Drawing.Size(114, 25); this.materialLabel5.TabIndex = 69; this.materialLabel5.Text = "CheckedListBox"; // @@ -1270,13 +1289,13 @@ private void InitializeComponent() // this.materialLabel34.AutoSize = true; this.materialLabel34.Depth = 0; - this.materialLabel34.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel34.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel34.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel34.Location = new System.Drawing.Point(255, 315); this.materialLabel34.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel34.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel34.Name = "materialLabel34"; - this.materialLabel34.Size = new System.Drawing.Size(78, 19); + this.materialLabel34.Size = new System.Drawing.Size(78, 25); this.materialLabel34.TabIndex = 66; this.materialLabel34.Text = "Combobox"; // @@ -1284,13 +1303,13 @@ private void InitializeComponent() // this.materialLabel33.AutoSize = true; this.materialLabel33.Depth = 0; - this.materialLabel33.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel33.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel33.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel33.Location = new System.Drawing.Point(502, 90); this.materialLabel33.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel33.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel33.Name = "materialLabel33"; - this.materialLabel33.Size = new System.Drawing.Size(49, 19); + this.materialLabel33.Size = new System.Drawing.Size(48, 25); this.materialLabel33.TabIndex = 65; this.materialLabel33.Text = "Switch"; // @@ -1298,13 +1317,13 @@ private void InitializeComponent() // this.materialLabel32.AutoSize = true; this.materialLabel32.Depth = 0; - this.materialLabel32.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel32.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel32.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel32.Location = new System.Drawing.Point(255, 90); this.materialLabel32.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel32.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel32.Name = "materialLabel32"; - this.materialLabel32.Size = new System.Drawing.Size(101, 19); + this.materialLabel32.Size = new System.Drawing.Size(102, 25); this.materialLabel32.TabIndex = 64; this.materialLabel32.Text = "Radio Buttons"; // @@ -1312,13 +1331,13 @@ private void InitializeComponent() // this.materialLabel31.AutoSize = true; this.materialLabel31.Depth = 0; - this.materialLabel31.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel31.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel31.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel31.Location = new System.Drawing.Point(28, 90); this.materialLabel31.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel31.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel31.Name = "materialLabel31"; - this.materialLabel31.Size = new System.Drawing.Size(70, 19); + this.materialLabel31.Size = new System.Drawing.Size(70, 25); this.materialLabel31.TabIndex = 63; this.materialLabel31.Text = "Checkbox"; // @@ -1350,7 +1369,7 @@ private void InitializeComponent() this.materialRadioButton5.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton5.Name = "materialRadioButton5"; this.materialRadioButton5.Ripple = true; - this.materialRadioButton5.Size = new System.Drawing.Size(190, 37); + this.materialRadioButton5.Size = new System.Drawing.Size(191, 37); this.materialRadioButton5.TabIndex = 10; this.materialRadioButton5.TabStop = true; this.materialRadioButton5.Text = "materialRadioButton5"; @@ -1360,12 +1379,12 @@ private void InitializeComponent() // this.materialLabel26.AutoSize = true; this.materialLabel26.Depth = 0; - this.materialLabel26.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel26.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel26.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel26.Location = new System.Drawing.Point(21, 12); this.materialLabel26.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel26.Name = "materialLabel26"; - this.materialLabel26.Size = new System.Drawing.Size(389, 58); + this.materialLabel26.Size = new System.Drawing.Size(392, 75); this.materialLabel26.TabIndex = 59; this.materialLabel26.Text = "Selection Controls"; // @@ -1401,7 +1420,7 @@ private void InitializeComponent() this.materialRadioButton1.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton1.Name = "materialRadioButton1"; this.materialRadioButton1.Ripple = true; - this.materialRadioButton1.Size = new System.Drawing.Size(190, 37); + this.materialRadioButton1.Size = new System.Drawing.Size(186, 37); this.materialRadioButton1.TabIndex = 6; this.materialRadioButton1.TabStop = true; this.materialRadioButton1.Text = "materialRadioButton1"; @@ -1419,7 +1438,7 @@ private void InitializeComponent() this.materialRadioButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton2.Name = "materialRadioButton2"; this.materialRadioButton2.Ripple = true; - this.materialRadioButton2.Size = new System.Drawing.Size(190, 37); + this.materialRadioButton2.Size = new System.Drawing.Size(189, 37); this.materialRadioButton2.TabIndex = 7; this.materialRadioButton2.TabStop = true; this.materialRadioButton2.Text = "materialRadioButton2"; @@ -1439,7 +1458,7 @@ private void InitializeComponent() this.materialSwitch3.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch3.Name = "materialSwitch3"; this.materialSwitch3.Ripple = true; - this.materialSwitch3.Size = new System.Drawing.Size(273, 37); + this.materialSwitch3.Size = new System.Drawing.Size(276, 37); this.materialSwitch3.TabIndex = 15; this.materialSwitch3.Text = "Switch - Checked and disabled"; this.materialSwitch3.UseVisualStyleBackColor = true; @@ -1490,7 +1509,7 @@ private void InitializeComponent() this.materialCheckBox6.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckBox6.Name = "materialCheckBox6"; this.materialCheckBox6.Ripple = true; - this.materialCheckBox6.Size = new System.Drawing.Size(172, 37); + this.materialCheckBox6.Size = new System.Drawing.Size(171, 37); this.materialCheckBox6.TabIndex = 5; this.materialCheckBox6.Text = "materialCheckBox6"; this.materialCheckBox6.UseVisualStyleBackColor = true; @@ -1510,7 +1529,7 @@ private void InitializeComponent() this.materialCheckBox5.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckBox5.Name = "materialCheckBox5"; this.materialCheckBox5.Ripple = true; - this.materialCheckBox5.Size = new System.Drawing.Size(172, 37); + this.materialCheckBox5.Size = new System.Drawing.Size(173, 37); this.materialCheckBox5.TabIndex = 4; this.materialCheckBox5.Text = "materialCheckBox5"; this.materialCheckBox5.UseVisualStyleBackColor = true; @@ -1557,10 +1576,10 @@ private void InitializeComponent() this.materialTextBox5.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox5.Depth = 0; this.materialTextBox5.Enabled = false; - this.materialTextBox5.Font = new System.Drawing.Font("Roboto", 12F); + this.materialTextBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); this.materialTextBox5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialTextBox5.Hint = "This is Disabled"; - this.materialTextBox5.Location = new System.Drawing.Point(222, 170); + this.materialTextBox5.Location = new System.Drawing.Point(276, 170); this.materialTextBox5.MaxLength = 50; this.materialTextBox5.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox5.Multiline = false; @@ -1575,10 +1594,10 @@ private void InitializeComponent() this.materialTextBox4.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox4.Depth = 0; this.materialTextBox4.Enabled = false; - this.materialTextBox4.Font = new System.Drawing.Font("Roboto", 12F); + this.materialTextBox4.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialTextBox4.Hint = "This is Disabled"; - this.materialTextBox4.Location = new System.Drawing.Point(25, 170); + this.materialTextBox4.Location = new System.Drawing.Point(79, 170); this.materialTextBox4.MaxLength = 50; this.materialTextBox4.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox4.Multiline = false; @@ -1592,10 +1611,10 @@ private void InitializeComponent() this.materialTextBox3.BorderStyle = System.Windows.Forms.BorderStyle.None; this.materialTextBox3.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox3.Depth = 0; - this.materialTextBox3.Font = new System.Drawing.Font("Roboto", 12F); + this.materialTextBox3.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialTextBox3.Hint = "This field has UseTallSize = false"; - this.materialTextBox3.Location = new System.Drawing.Point(25, 338); + this.materialTextBox3.Location = new System.Drawing.Point(79, 338); this.materialTextBox3.MaxLength = 50; this.materialTextBox3.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox3.Multiline = false; @@ -1608,9 +1627,9 @@ private void InitializeComponent() // materialLabel43 // this.materialLabel43.Depth = 0; - this.materialLabel43.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel43.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel43.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel43.Location = new System.Drawing.Point(686, 283); + this.materialLabel43.Location = new System.Drawing.Point(740, 283); this.materialLabel43.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel43.Name = "materialLabel43"; this.materialLabel43.Size = new System.Drawing.Size(245, 103); @@ -1624,13 +1643,13 @@ private void InitializeComponent() this.materialLabel42.AutoSize = true; this.materialLabel42.Depth = 0; this.materialLabel42.Enabled = false; - this.materialLabel42.Font = new System.Drawing.Font("Roboto Medium", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel42.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel42.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel42.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel42.Location = new System.Drawing.Point(629, 468); + this.materialLabel42.Location = new System.Drawing.Point(683, 468); this.materialLabel42.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel42.Name = "materialLabel42"; - this.materialLabel42.Size = new System.Drawing.Size(269, 17); + this.materialLabel42.Size = new System.Drawing.Size(265, 22); this.materialLabel42.TabIndex = 65; this.materialLabel42.Text = "This is a label is disabled (use it for hints!)"; // @@ -1638,14 +1657,14 @@ private void InitializeComponent() // this.materialLabel41.AutoSize = true; this.materialLabel41.Depth = 0; - this.materialLabel41.Font = new System.Drawing.Font("Roboto Medium", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel41.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel41.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel41.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel41.HighEmphasis = true; - this.materialLabel41.Location = new System.Drawing.Point(629, 441); + this.materialLabel41.Location = new System.Drawing.Point(683, 441); this.materialLabel41.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel41.Name = "materialLabel41"; - this.materialLabel41.Size = new System.Drawing.Size(302, 17); + this.materialLabel41.Size = new System.Drawing.Size(301, 22); this.materialLabel41.TabIndex = 64; this.materialLabel41.Text = "This is a label with High Emphasis + Use Accent"; this.materialLabel41.UseAccent = true; @@ -1654,14 +1673,14 @@ private void InitializeComponent() // this.materialLabel40.AutoSize = true; this.materialLabel40.Depth = 0; - this.materialLabel40.Font = new System.Drawing.Font("Roboto Medium", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel40.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel40.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel40.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel40.HighEmphasis = true; - this.materialLabel40.Location = new System.Drawing.Point(629, 415); + this.materialLabel40.Location = new System.Drawing.Point(683, 415); this.materialLabel40.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel40.Name = "materialLabel40"; - this.materialLabel40.Size = new System.Drawing.Size(217, 17); + this.materialLabel40.Size = new System.Drawing.Size(215, 22); this.materialLabel40.TabIndex = 63; this.materialLabel40.Text = "This is a label with High Emphasis"; // @@ -1669,12 +1688,12 @@ private void InitializeComponent() // this.materialLabel27.AutoSize = true; this.materialLabel27.Depth = 0; - this.materialLabel27.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel27.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel27.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel27.Location = new System.Drawing.Point(28, 18); + this.materialLabel27.Location = new System.Drawing.Point(82, 18); this.materialLabel27.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel27.Name = "materialLabel27"; - this.materialLabel27.Size = new System.Drawing.Size(373, 58); + this.materialLabel27.Size = new System.Drawing.Size(379, 75); this.materialLabel27.TabIndex = 62; this.materialLabel27.Text = "Textbox && Label"; // @@ -1682,12 +1701,12 @@ private void InitializeComponent() // this.materialLabel23.AutoSize = true; this.materialLabel23.Depth = 0; - this.materialLabel23.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel23.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel23.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel23.Location = new System.Drawing.Point(35, 89); + this.materialLabel23.Location = new System.Drawing.Point(89, 89); this.materialLabel23.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel23.Name = "materialLabel23"; - this.materialLabel23.Size = new System.Drawing.Size(170, 19); + this.materialLabel23.Size = new System.Drawing.Size(174, 25); this.materialLabel23.TabIndex = 61; this.materialLabel23.Text = "This texbox has no hint!"; // @@ -1696,10 +1715,10 @@ private void InitializeComponent() this.materialTextBox2.BorderStyle = System.Windows.Forms.BorderStyle.None; this.materialTextBox2.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox2.Depth = 0; - this.materialTextBox2.Font = new System.Drawing.Font("Roboto", 12F); + this.materialTextBox2.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialTextBox2.Hint = "Password"; - this.materialTextBox2.Location = new System.Drawing.Point(25, 282); + this.materialTextBox2.Location = new System.Drawing.Point(79, 282); this.materialTextBox2.MaxLength = 50; this.materialTextBox2.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox2.Multiline = false; @@ -1714,26 +1733,28 @@ private void InitializeComponent() this.materialTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; this.materialTextBox1.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox1.Depth = 0; - this.materialTextBox1.Font = new System.Drawing.Font("Roboto", 12F); + this.materialTextBox1.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialTextBox1.Location = new System.Drawing.Point(25, 114); + this.materialTextBox1.Location = new System.Drawing.Point(79, 114); this.materialTextBox1.MaxLength = 50; this.materialTextBox1.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox1.Multiline = false; this.materialTextBox1.Name = "materialTextBox1"; + this.materialTextBox1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialTextBox1.Size = new System.Drawing.Size(406, 50); this.materialTextBox1.TabIndex = 1; this.materialTextBox1.Text = ""; + this.materialTextBox1.TextChanged += new System.EventHandler(this.materialTextBox1_TextChanged); // // materialSingleLineTextField2 // this.materialSingleLineTextField2.BorderStyle = System.Windows.Forms.BorderStyle.None; this.materialSingleLineTextField2.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialSingleLineTextField2.Depth = 0; - this.materialSingleLineTextField2.Font = new System.Drawing.Font("Roboto", 12F); + this.materialSingleLineTextField2.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialSingleLineTextField2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialSingleLineTextField2.Hint = "Type here"; - this.materialSingleLineTextField2.Location = new System.Drawing.Point(25, 226); + this.materialSingleLineTextField2.Location = new System.Drawing.Point(79, 226); this.materialSingleLineTextField2.MaxLength = 50; this.materialSingleLineTextField2.MouseState = MaterialSkin.MouseState.OUT; this.materialSingleLineTextField2.Multiline = false; @@ -1746,13 +1767,13 @@ private void InitializeComponent() // this.materialLabel22.AutoSize = true; this.materialLabel22.Depth = 0; - this.materialLabel22.Font = new System.Drawing.Font("Roboto", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel22.Font = new System.Drawing.Font("IRANSansFaNum", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel22.FontType = MaterialSkin.MaterialSkinManager.fontType.Overline; this.materialLabel22.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel22.Location = new System.Drawing.Point(478, 468); + this.materialLabel22.Location = new System.Drawing.Point(532, 468); this.materialLabel22.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel22.Name = "materialLabel22"; - this.materialLabel22.Size = new System.Drawing.Size(47, 13); + this.materialLabel22.Size = new System.Drawing.Size(47, 15); this.materialLabel22.TabIndex = 57; this.materialLabel22.Text = "OVERLINE"; // @@ -1760,13 +1781,13 @@ private void InitializeComponent() // this.materialLabel21.AutoSize = true; this.materialLabel21.Depth = 0; - this.materialLabel21.Font = new System.Drawing.Font("Roboto", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel21.Font = new System.Drawing.Font("IRANSansFaNum", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel21.FontType = MaterialSkin.MaterialSkinManager.fontType.Caption; this.materialLabel21.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel21.Location = new System.Drawing.Point(478, 448); + this.materialLabel21.Location = new System.Drawing.Point(532, 448); this.materialLabel21.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel21.Name = "materialLabel21"; - this.materialLabel21.Size = new System.Drawing.Size(44, 14); + this.materialLabel21.Size = new System.Drawing.Size(44, 19); this.materialLabel21.TabIndex = 56; this.materialLabel21.Text = "Caption"; // @@ -1774,13 +1795,13 @@ private void InitializeComponent() // this.materialLabel20.AutoSize = true; this.materialLabel20.Depth = 0; - this.materialLabel20.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel20.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel20.FontType = MaterialSkin.MaterialSkinManager.fontType.Button; this.materialLabel20.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel20.Location = new System.Drawing.Point(478, 428); + this.materialLabel20.Location = new System.Drawing.Point(532, 428); this.materialLabel20.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel20.Name = "materialLabel20"; - this.materialLabel20.Size = new System.Drawing.Size(57, 17); + this.materialLabel20.Size = new System.Drawing.Size(55, 22); this.materialLabel20.TabIndex = 55; this.materialLabel20.Text = "BUTTON"; // @@ -1788,13 +1809,13 @@ private void InitializeComponent() // this.materialLabel19.AutoSize = true; this.materialLabel19.Depth = 0; - this.materialLabel19.Font = new System.Drawing.Font("Roboto", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel19.Font = new System.Drawing.Font("IRANSansFaNum", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel19.FontType = MaterialSkin.MaterialSkinManager.fontType.Body2; this.materialLabel19.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel19.Location = new System.Drawing.Point(478, 407); + this.materialLabel19.Location = new System.Drawing.Point(532, 407); this.materialLabel19.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel19.Name = "materialLabel19"; - this.materialLabel19.Size = new System.Drawing.Size(44, 17); + this.materialLabel19.Size = new System.Drawing.Size(44, 22); this.materialLabel19.TabIndex = 54; this.materialLabel19.Text = "Body 2"; // @@ -1802,12 +1823,12 @@ private void InitializeComponent() // this.materialLabel18.AutoSize = true; this.materialLabel18.Depth = 0; - this.materialLabel18.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel18.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel18.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel18.Location = new System.Drawing.Point(478, 384); + this.materialLabel18.Location = new System.Drawing.Point(532, 384); this.materialLabel18.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel18.Name = "materialLabel18"; - this.materialLabel18.Size = new System.Drawing.Size(50, 19); + this.materialLabel18.Size = new System.Drawing.Size(47, 25); this.materialLabel18.TabIndex = 53; this.materialLabel18.Text = "Body 1"; // @@ -1815,13 +1836,13 @@ private void InitializeComponent() // this.materialLabel17.AutoSize = true; this.materialLabel17.Depth = 0; - this.materialLabel17.Font = new System.Drawing.Font("Roboto Medium", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel17.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel17.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel17.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel17.Location = new System.Drawing.Point(478, 365); + this.materialLabel17.Location = new System.Drawing.Point(532, 365); this.materialLabel17.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel17.Name = "materialLabel17"; - this.materialLabel17.Size = new System.Drawing.Size(62, 17); + this.materialLabel17.Size = new System.Drawing.Size(59, 22); this.materialLabel17.TabIndex = 52; this.materialLabel17.Text = "Subtitle 2"; // @@ -1829,13 +1850,13 @@ private void InitializeComponent() // this.materialLabel1.AutoSize = true; this.materialLabel1.Depth = 0; - this.materialLabel1.Font = new System.Drawing.Font("Roboto", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel1.Font = new System.Drawing.Font("IRANSansFaNum", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel1.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle1; this.materialLabel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel1.Location = new System.Drawing.Point(477, 342); + this.materialLabel1.Location = new System.Drawing.Point(531, 342); this.materialLabel1.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel1.Name = "materialLabel1"; - this.materialLabel1.Size = new System.Drawing.Size(68, 19); + this.materialLabel1.Size = new System.Drawing.Size(64, 25); this.materialLabel1.TabIndex = 51; this.materialLabel1.Text = "Subtitle 1"; // @@ -1843,13 +1864,13 @@ private void InitializeComponent() // this.materialLabel16.AutoSize = true; this.materialLabel16.Depth = 0; - this.materialLabel16.Font = new System.Drawing.Font("Roboto Medium", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel16.Font = new System.Drawing.Font("IRANSansFaNum", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel16.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; this.materialLabel16.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel16.Location = new System.Drawing.Point(477, 314); + this.materialLabel16.Location = new System.Drawing.Point(531, 314); this.materialLabel16.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel16.Name = "materialLabel16"; - this.materialLabel16.Size = new System.Drawing.Size(91, 24); + this.materialLabel16.Size = new System.Drawing.Size(91, 31); this.materialLabel16.TabIndex = 50; this.materialLabel16.Text = "Heading 6"; // @@ -1857,13 +1878,13 @@ private void InitializeComponent() // this.materialLabel15.AutoSize = true; this.materialLabel15.Depth = 0; - this.materialLabel15.Font = new System.Drawing.Font("Roboto", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel15.Font = new System.Drawing.Font("IRANSansFaNum", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel15.FontType = MaterialSkin.MaterialSkinManager.fontType.H5; this.materialLabel15.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel15.Location = new System.Drawing.Point(476, 283); + this.materialLabel15.Location = new System.Drawing.Point(530, 283); this.materialLabel15.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel15.Name = "materialLabel15"; - this.materialLabel15.Size = new System.Drawing.Size(109, 29); + this.materialLabel15.Size = new System.Drawing.Size(111, 38); this.materialLabel15.TabIndex = 49; this.materialLabel15.Text = "Heading 5"; // @@ -1871,13 +1892,13 @@ private void InitializeComponent() // this.materialLabel14.AutoSize = true; this.materialLabel14.Depth = 0; - this.materialLabel14.Font = new System.Drawing.Font("Roboto", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel14.Font = new System.Drawing.Font("IRANSansFaNum", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel14.FontType = MaterialSkin.MaterialSkinManager.fontType.H4; this.materialLabel14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel14.Location = new System.Drawing.Point(474, 242); + this.materialLabel14.Location = new System.Drawing.Point(528, 242); this.materialLabel14.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel14.Name = "materialLabel14"; - this.materialLabel14.Size = new System.Drawing.Size(154, 41); + this.materialLabel14.Size = new System.Drawing.Size(155, 53); this.materialLabel14.TabIndex = 48; this.materialLabel14.Text = "Heading 4"; // @@ -1885,13 +1906,13 @@ private void InitializeComponent() // this.materialLabel13.AutoSize = true; this.materialLabel13.Depth = 0; - this.materialLabel13.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel13.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel13.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel13.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel13.Location = new System.Drawing.Point(471, 185); + this.materialLabel13.Location = new System.Drawing.Point(525, 185); this.materialLabel13.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel13.Name = "materialLabel13"; - this.materialLabel13.Size = new System.Drawing.Size(217, 58); + this.materialLabel13.Size = new System.Drawing.Size(223, 75); this.materialLabel13.TabIndex = 47; this.materialLabel13.Text = "Heading 3"; // @@ -1899,13 +1920,13 @@ private void InitializeComponent() // this.materialLabel12.AutoSize = true; this.materialLabel12.Depth = 0; - this.materialLabel12.Font = new System.Drawing.Font("Roboto Light", 60F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel12.Font = new System.Drawing.Font("IRANSansFaNum", 60F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel12.FontType = MaterialSkin.MaterialSkinManager.fontType.H2; this.materialLabel12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel12.Location = new System.Drawing.Point(468, 114); + this.materialLabel12.Location = new System.Drawing.Point(522, 114); this.materialLabel12.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel12.Name = "materialLabel12"; - this.materialLabel12.Size = new System.Drawing.Size(266, 72); + this.materialLabel12.Size = new System.Drawing.Size(273, 94); this.materialLabel12.TabIndex = 46; this.materialLabel12.Text = "Heading 2"; // @@ -1913,13 +1934,13 @@ private void InitializeComponent() // this.materialLabel11.AutoSize = true; this.materialLabel11.Depth = 0; - this.materialLabel11.Font = new System.Drawing.Font("Roboto Light", 96F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel11.Font = new System.Drawing.Font("IRANSansFaNum", 96F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel11.FontType = MaterialSkin.MaterialSkinManager.fontType.H1; this.materialLabel11.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel11.Location = new System.Drawing.Point(461, 18); + this.materialLabel11.Location = new System.Drawing.Point(515, 18); this.materialLabel11.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel11.Name = "materialLabel11"; - this.materialLabel11.Size = new System.Drawing.Size(427, 115); + this.materialLabel11.Size = new System.Drawing.Size(413, 150); this.materialLabel11.TabIndex = 45; this.materialLabel11.Text = "Heading 1"; // @@ -1940,7 +1961,7 @@ private void InitializeComponent() // materialLabel39 // this.materialLabel39.Depth = 0; - this.materialLabel39.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel39.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel39.Location = new System.Drawing.Point(22, 76); this.materialLabel39.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel39.Name = "materialLabel39"; @@ -1954,12 +1975,12 @@ private void InitializeComponent() // this.materialLabel28.AutoSize = true; this.materialLabel28.Depth = 0; - this.materialLabel28.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel28.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel28.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel28.Location = new System.Drawing.Point(28, 18); this.materialLabel28.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel28.Name = "materialLabel28"; - this.materialLabel28.Size = new System.Drawing.Size(120, 58); + this.materialLabel28.Size = new System.Drawing.Size(120, 75); this.materialLabel28.TabIndex = 63; this.materialLabel28.Text = "Table"; // @@ -1975,7 +1996,7 @@ private void InitializeComponent() this.columnHeader3, this.columnHeader4}); this.materialListView1.Depth = 0; - this.materialListView1.Font = new System.Drawing.Font("Roboto", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialListView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialListView1.FullRowSelect = true; this.materialListView1.HideSelection = false; this.materialListView1.Location = new System.Drawing.Point(25, 149); @@ -2050,7 +2071,7 @@ private void InitializeComponent() this.materialLabel2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.materialLabel2.Depth = 0; - this.materialLabel2.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel2.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel2.Location = new System.Drawing.Point(29, 76); this.materialLabel2.MouseState = MaterialSkin.MouseState.HOVER; @@ -2096,12 +2117,12 @@ private void InitializeComponent() // this.materialLabel29.AutoSize = true; this.materialLabel29.Depth = 0; - this.materialLabel29.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel29.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel29.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel29.Location = new System.Drawing.Point(32, 14); this.materialLabel29.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel29.Name = "materialLabel29"; - this.materialLabel29.Size = new System.Drawing.Size(273, 58); + this.materialLabel29.Size = new System.Drawing.Size(276, 75); this.materialLabel29.TabIndex = 64; this.materialLabel29.Text = "Progress bar"; // @@ -2161,12 +2182,12 @@ private void InitializeComponent() // this.materialLabel7.AutoSize = true; this.materialLabel7.Depth = 0; - this.materialLabel7.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel7.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel7.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel7.Location = new System.Drawing.Point(34, 16); this.materialLabel7.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel7.Name = "materialLabel7"; - this.materialLabel7.Size = new System.Drawing.Size(108, 58); + this.materialLabel7.Size = new System.Drawing.Size(108, 75); this.materialLabel7.TabIndex = 67; this.materialLabel7.Text = "Tabs"; // @@ -2209,13 +2230,13 @@ private void InitializeComponent() // this.materialLabel4.AutoSize = true; this.materialLabel4.Depth = 0; - this.materialLabel4.Font = new System.Drawing.Font("Roboto Medium", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel4.Font = new System.Drawing.Font("IRANSansFaNum", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel4.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; this.materialLabel4.HighEmphasis = true; this.materialLabel4.Location = new System.Drawing.Point(17, 14); this.materialLabel4.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel4.Name = "materialLabel4"; - this.materialLabel4.Size = new System.Drawing.Size(229, 24); + this.materialLabel4.Size = new System.Drawing.Size(232, 31); this.materialLabel4.TabIndex = 0; this.materialLabel4.Text = "Cards are also supported!"; // @@ -2225,7 +2246,7 @@ private void InitializeComponent() | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.materialLabel38.Depth = 0; - this.materialLabel38.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel38.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel38.Location = new System.Drawing.Point(17, 52); this.materialLabel38.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel38.Name = "materialLabel38"; @@ -2262,13 +2283,13 @@ private void InitializeComponent() // this.materialLabel45.AutoSize = true; this.materialLabel45.Depth = 0; - this.materialLabel45.Font = new System.Drawing.Font("Roboto Medium", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel45.Font = new System.Drawing.Font("IRANSansFaNum", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel45.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; this.materialLabel45.HighEmphasis = true; this.materialLabel45.Location = new System.Drawing.Point(15, 14); this.materialLabel45.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel45.Name = "materialLabel45"; - this.materialLabel45.Size = new System.Drawing.Size(174, 24); + this.materialLabel45.Size = new System.Drawing.Size(176, 31); this.materialLabel45.TabIndex = 4; this.materialLabel45.Text = "Tabs are supported"; // @@ -2278,7 +2299,7 @@ private void InitializeComponent() | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.materialLabel44.Depth = 0; - this.materialLabel44.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel44.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel44.Location = new System.Drawing.Point(15, 55); this.materialLabel44.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel44.Name = "materialLabel44"; @@ -2302,14 +2323,14 @@ private void InitializeComponent() // this.materialLabel10.AutoSize = true; this.materialLabel10.Depth = 0; - this.materialLabel10.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel10.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel10.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel10.HighEmphasis = true; this.materialLabel10.Location = new System.Drawing.Point(6, 7); this.materialLabel10.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel10.Name = "materialLabel10"; - this.materialLabel10.Size = new System.Drawing.Size(475, 58); + this.materialLabel10.Size = new System.Drawing.Size(481, 75); this.materialLabel10.TabIndex = 1; this.materialLabel10.Text = "Everything is possible!"; this.materialLabel10.UseAccent = true; @@ -2318,7 +2339,7 @@ private void InitializeComponent() // this.materialTabSelector1.BaseTabControl = this.materialTabControl2; this.materialTabSelector1.Depth = 0; - this.materialTabSelector1.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialTabSelector1.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialTabSelector1.Location = new System.Drawing.Point(40, 90); this.materialTabSelector1.Margin = new System.Windows.Forms.Padding(0); this.materialTabSelector1.MouseState = MaterialSkin.MouseState.HOVER; @@ -2331,12 +2352,12 @@ private void InitializeComponent() // this.materialLabel30.AutoSize = true; this.materialLabel30.Depth = 0; - this.materialLabel30.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel30.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel30.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel30.Location = new System.Drawing.Point(562, 16); this.materialLabel30.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel30.Name = "materialLabel30"; - this.materialLabel30.Size = new System.Drawing.Size(126, 58); + this.materialLabel30.Size = new System.Drawing.Size(126, 75); this.materialLabel30.TabIndex = 65; this.materialLabel30.Text = "Cards"; // @@ -2433,10 +2454,14 @@ private void InitializeComponent() this.Controls.Add(this.materialTabControl1); this.DrawerShowIconsWhenHidden = true; this.DrawerTabControl = this.materialTabControl1; + this.IsMdiContainer = true; this.MinimumSize = new System.Drawing.Size(300, 200); this.Name = "MainForm"; this.Padding = new System.Windows.Forms.Padding(3, 64, 3, 3); - this.Text = "MaterialSkin Demo"; + this.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.RightToLeftLayout = true; + this.Text = "دمو متریال‌اسکین"; + this.Load += new System.EventHandler(this.MainForm_Load); this.materialTabControl1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); this.tabPage1.PerformLayout(); diff --git a/MaterialSkinExample/MainForm.cs b/MaterialSkinExample/MainForm.cs index f47d18f6..ea1dcb6f 100644 --- a/MaterialSkinExample/MainForm.cs +++ b/MaterialSkinExample/MainForm.cs @@ -1,168 +1,189 @@ -using MaterialSkin; -using MaterialSkin.Controls; -using System; -using System.Text; -using System.Windows.Forms; - -namespace MaterialSkinExample -{ - public partial class MainForm : MaterialForm - { +using MaterialSkin; +using MaterialSkin.Controls; +using System; +using System.Globalization; +using System.Text; +using System.Windows.Forms; + +namespace MaterialSkinExample +{ + public partial class MainForm : MaterialForm + { private readonly MaterialSkinManager materialSkinManager; - - public MainForm() - { - InitializeComponent(); - - // Initialize MaterialSkinManager - materialSkinManager = MaterialSkinManager.Instance; - - // Set this to false to disable backcolor enforcing on non-materialSkin components - // This HAS to be set before the AddFormToManage() - materialSkinManager.EnforceBackcolorOnAllComponents = true; - - // MaterialSkinManager properties - materialSkinManager.AddFormToManage(this); - materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT; - materialSkinManager.ColorScheme = new ColorScheme(Primary.Indigo500, Primary.Indigo700, Primary.Indigo100, Accent.Pink200, TextShade.WHITE); - - // Add dummy data to the listview - seedListView(); - materialCheckedListBox1.Items.Add("Item1", false); - materialCheckedListBox1.Items.Add("Item2", true); - materialCheckedListBox1.Items.Add("Item3", true); - materialCheckedListBox1.Items.Add("Item4", false); - materialCheckedListBox1.Items.Add("Item5", true); - materialCheckedListBox1.Items.Add("Item6", false); - materialCheckedListBox1.Items.Add("Item7", false); - - materialComboBox6.SelectedIndex = 0; - } - - private void seedListView() - { - //Define - var data = new[] - { - new []{"Lollipop", "392", "0.2", "0"}, - new []{"KitKat", "518", "26.0", "7"}, - new []{"Ice cream sandwich", "237", "9.0", "4.3"}, - new []{"Jelly Bean", "375", "0.0", "0.0"}, - new []{"Honeycomb", "408", "3.2", "6.5"} - }; - - //Add - foreach (string[] version in data) - { - var item = new ListViewItem(version); - materialListView1.Items.Add(item); - } - } - - private void materialButton1_Click(object sender, EventArgs e) - { - materialSkinManager.Theme = materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? MaterialSkinManager.Themes.LIGHT : MaterialSkinManager.Themes.DARK; - updateColor(); - } - + + public MainForm() + { + InitializeComponent(); + + // Initialize MaterialSkinManager + materialSkinManager = MaterialSkinManager.Instance; + + // Set this to false to disable backcolor enforcing on non-materialSkin components + // This HAS to be set before the AddFormToManage() + materialSkinManager.EnforceBackcolorOnAllComponents = true; + + // MaterialSkinManager properties + materialSkinManager.AddFormToManage(this); + materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT; + materialSkinManager.ColorScheme = new ColorScheme(Primary.Indigo500, Primary.Indigo700, Primary.Indigo100, Accent.Pink200, TextShade.WHITE); + + // Add dummy data to the listview + seedListView(); + materialCheckedListBox1.Items.Add("Item1", false); + materialCheckedListBox1.Items.Add("Item2", true); + materialCheckedListBox1.Items.Add("Item3", true); + materialCheckedListBox1.Items.Add("Item4", false); + materialCheckedListBox1.Items.Add("Item5", true); + materialCheckedListBox1.Items.Add("Item6", false); + materialCheckedListBox1.Items.Add("Item7", false); + + materialComboBox6.SelectedIndex = 0; + } + + private void seedListView() + { + //Define + var data = new[] + { + new []{"Lollipop", "392", "0.2", "0"}, + new []{"KitKat", "518", "26.0", "7"}, + new []{"Ice cream sandwich", "237", "9.0", "4.3"}, + new []{"Jelly Bean", "375", "0.0", "0.0"}, + new []{"Honeycomb", "408", "3.2", "6.5"} + }; + + //Add + foreach (string[] version in data) + { + var item = new ListViewItem(version); + materialListView1.Items.Add(item); + } + } + + private void materialButton1_Click(object sender, EventArgs e) + { + materialSkinManager.Theme = materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? MaterialSkinManager.Themes.LIGHT : MaterialSkinManager.Themes.DARK; + updateColor(); + } + private int colorSchemeIndex; - - private void MaterialButton1_Click(object sender, EventArgs e) - { - colorSchemeIndex++; - if (colorSchemeIndex > 2) - colorSchemeIndex = 0; - updateColor(); - } - - private void updateColor() - { - //These are just example color schemes - switch (colorSchemeIndex) - { - case 0: - materialSkinManager.ColorScheme = new ColorScheme( - materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? Primary.Teal500 : Primary.Indigo500, - materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? Primary.Teal700 : Primary.Indigo700, - materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? Primary.Teal200 : Primary.Indigo100, - Accent.Pink200, - TextShade.WHITE); - break; - - case 1: - materialSkinManager.ColorScheme = new ColorScheme( - Primary.Green600, + + private void MaterialButton1_Click(object sender, EventArgs e) + { + colorSchemeIndex++; + if (colorSchemeIndex > 2) + colorSchemeIndex = 0; + updateColor(); + } + + private void updateColor() + { + //These are just example color schemes + switch (colorSchemeIndex) + { + case 0: + materialSkinManager.ColorScheme = new ColorScheme( + materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? Primary.Teal500 : Primary.Indigo500, + materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? Primary.Teal700 : Primary.Indigo700, + materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? Primary.Teal200 : Primary.Indigo100, + Accent.Pink200, + TextShade.WHITE); + break; + + case 1: + materialSkinManager.ColorScheme = new ColorScheme( + Primary.Green600, Primary.Green700, Primary.Green200, Accent.Red100, - TextShade.WHITE); - break; - - case 2: - materialSkinManager.ColorScheme = new ColorScheme( + TextShade.WHITE); + break; + + case 2: + materialSkinManager.ColorScheme = new ColorScheme( Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.LightBlue200, - TextShade.WHITE); - break; - } - Invalidate(); - } - - private void MaterialButton2_Click(object sender, EventArgs e) - { - materialProgressBar1.Value = Math.Min(materialProgressBar1.Value + 10, 100); - } - - private void materialFlatButton4_Click(object sender, EventArgs e) - { - materialProgressBar1.Value = Math.Max(materialProgressBar1.Value - 10, 0); - } - - private void materialSwitch4_CheckedChanged(object sender, EventArgs e) - { - DrawerUseColors = materialSwitch4.Checked; - } - - private void MaterialSwitch5_CheckedChanged(object sender, EventArgs e) - { - DrawerHighlightWithAccent = materialSwitch5.Checked; - } - - private void MaterialSwitch6_CheckedChanged(object sender, EventArgs e) - { - DrawerBackgroundWithAccent = materialSwitch6.Checked; - } - - private void materialSwitch8_CheckedChanged(object sender, EventArgs e) - { - DrawerShowIconsWhenHidden = materialSwitch8.Checked; - } - - private void MaterialButton3_Click(object sender, EventArgs e) - { - var builder = new StringBuilder("Batch operation report:\n\n"); - var random = new Random(); - var result = 0; - - for (int i = 0; i < 200; i++) - { - result = random.Next(1000); - - if (result < 950) - { - builder.AppendFormat(" - Task {0}: Operation completed sucessfully.\n", i); - } - else - { - builder.AppendFormat(" - Task {0}: Operation failed! A very very very very very very very very very very very very serious error has occured during this sub-operation. The errorcode is: {1}).\n", i, result); - } - } - - var batchOperationResults = builder.ToString(); - var mresult = MaterialMessageBox.Show(batchOperationResults, "Batch Operation"); - materialComboBox1.Items.Add("this is a very long string"); - } - } + TextShade.WHITE); + break; + } + Invalidate(); + } + + private void MaterialButton2_Click(object sender, EventArgs e) + { + materialProgressBar1.Value = Math.Min(materialProgressBar1.Value + 10, 100); + } + + private void materialFlatButton4_Click(object sender, EventArgs e) + { + materialProgressBar1.Value = Math.Max(materialProgressBar1.Value - 10, 0); + } + + private void materialSwitch4_CheckedChanged(object sender, EventArgs e) + { + DrawerUseColors = materialSwitch4.Checked; + } + + private void MaterialSwitch5_CheckedChanged(object sender, EventArgs e) + { + DrawerHighlightWithAccent = materialSwitch5.Checked; + } + + private void MaterialSwitch6_CheckedChanged(object sender, EventArgs e) + { + DrawerBackgroundWithAccent = materialSwitch6.Checked; + } + + private void materialSwitch8_CheckedChanged(object sender, EventArgs e) + { + DrawerShowIconsWhenHidden = materialSwitch8.Checked; + } + + private void MaterialButton3_Click(object sender, EventArgs e) + { + var builder = new StringBuilder("گزارش عملیات گروهی :\n\n"); + var random = new Random(); + var result = 0; + + for (int i = 0; i < 200; i++) + { + result = random.Next(1000); + + if (result < 950) + { + builder.AppendFormat(" - عملیات {0}: عملیات با موفقیت انجام شد.\n", i); + } + else + { + builder.AppendFormat(" - عملیات {0}: عملیاتی انجام نشد! یک خطای خیلی خیلی خیلی خیلی خیلی خیلی خیلی خیلی جدی در طول این عملیات رخ داده است. کد خطا: {1}).\n", i, result); + } + } + + var batchOperationResults = builder.ToString(); + var mresult = MaterialMessageBox.Show(batchOperationResults, "عملیات گروهی"); + materialComboBox1.Items.Add("این رشته بسیار طولانی است"); + } + + private void materialLabel9_Click(object sender, EventArgs e) + { + + } + + private void materialLabel46_Click(object sender, EventArgs e) + { + + } + + private void materialTextBox1_TextChanged(object sender, EventArgs e) + { + + } + + private void MainForm_Load(object sender, EventArgs e) + { + CultureInfo.CurrentUICulture = new CultureInfo("fa-IR", false); + } + } } \ No newline at end of file diff --git a/MaterialSkinExample/MainForm.resx b/MaterialSkinExample/MainForm.resx index b4beb2eb..ede1a9f7 100644 --- a/MaterialSkinExample/MainForm.resx +++ b/MaterialSkinExample/MainForm.resx @@ -117,12 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Here is a list of every variant a Material Button can be. Contained button's shadows are only drawn at run-time. -Click on them and checkout those sweet animations. Oh yeah, the buttons follow the theme and colors, try changing those too. -Normally the buttons should be AutoSize = true, but for the sake of my OCD, it's set to false here -If any of the buttons looks weird while designing, change the tab background color from transparent to white. - 219, 17 @@ -131,7 +125,7 @@ If any of the buttons looks weird while designing, change the tab background col AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi - EQAAAk1TRnQBSQFMAgEBCQEAAdgBBQHYAQUBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + EQAAAk1TRnQBSQFMAgEBCQEAARABBgEQAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABSAMAAQEBAAEgBgABbP8A/wD/AP8AzgADSgGKA0oBiv8AdQADSAGECP8DSAGE/wBtAANAAW8Q/wNA AW//AGUAAx4BKxj/AyABLv8AbQAI//8AeQAI//8AeQAI//8AYQADXQHSA10B0hAACP//AGEACP8QAAj/ /wBhAAj/EAAI//8AYQAI/xAAA2AB1ANeAdX/AGEACP//AHkACP//AHkACP//AG0AAx8BLBT/A38B/gMf @@ -206,6 +200,12 @@ If any of the buttons looks weird while designing, change the tab background col AeABAAEHAf4BAAF/AfgB4AH/AfgBAAEfAeABAAEHAf8BAAL/AeEB/wH4AQABHwHgAQABBwT/AeMB/wH4 AQABHwf/Aecc/ws= + + + Here is a list of every variant a Material Button can be. Contained button's shadows are only drawn at run-time. +Click on them and checkout those sweet animations. Oh yeah, the buttons follow the theme and colors, try changing those too. +Normally the buttons should be AutoSize = true, but for the sake of my OCD, it's set to false here +If any of the buttons looks weird while designing, change the tab background color from transparent to white. 17, 17 diff --git a/MaterialSkinExample/MaterialSkinExample.csproj b/MaterialSkinExample/MaterialSkinExample.csproj index daaa7578..3c34b9bd 100644 --- a/MaterialSkinExample/MaterialSkinExample.csproj +++ b/MaterialSkinExample/MaterialSkinExample.csproj @@ -69,7 +69,6 @@ Settings.settings True - diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index 32472c0011c4d1054d9e9246928d9e9cd1847088..2a888d159e813b2ee5b6c181309b11e416587a68 100644 GIT binary patch literal 5543 zcmeHLUvt|;5ZB3)EGcP|Fi=`35dO^o39{Y9O&jQRg4@szB$PT04|OqT>1yh(b%ze+_Wie zNKk)y@mgH-x%&a@?u0ECT&U$&>c#q6y-@IqdAdS%ob2VvbCkO>V(oH7BZj@KI`>)f zmN}jN1*`CV=0>mt>0F_*8PS^0aMe}@n1<{hyBg5J{xGE8CUv7wWPAIWf#sIMc83Zk zOw?QEcbEo3Y3x!zW>QfyimuO?CwlAnNO(M;{$R|5kI!Aagv-!?Enq`OhSO;%`kQgM z%b6-~1Yq0}l}sUI9tWb_$O79btygYHFnVR9e53sK_FBGJDTlFeS>-zGgtD>)wi2BB zu3psC>cU5bNTRe{Gg`x;zVw=7!&}pi2U@$aF)G)c_~i7VCB>7dn;YNMyMzqs43-*@-tmiN)LPI0+6@ zur}>$xO|bAuqxr9qraf;cz4<b`E0S2Q_vU;~=pwrXTG{z((I$&mudC>=d%+kUbA<0b>hE!*Du; zH_VJib&K8(1w1%pL8F?~9IJYr?Qsl#9BKk3U7?M}#ga9Lz(7(7q63vD80tOYq0F8J zwmksmaQVV0f4J(kwnmF?@oeGz$|}pBJFnwDk7S+4DC|`gO{6_WVgC&oxaXj*zs~|F zX>L;A%Pjh=aP#I-vj6hp;ogt-0CVdW;wnv8FF?y|OE(lgui4g%@M^sTtWQa@BKHBW zn6OYveuoAo90am$C*|iAXzCa{Q(*axM^jIpbYQ&-Xy_-)OM>q6pkZ6DfzWy#Sf5gO z{RU_n!0Xp>c)bDLb4=@0IW|b$bK9K*$?9&TZQgAo+GCqn}RF_ zSrO1MGdMO1W?N@LVyyw|Q;Mzchq3kDIJVZI`y3wG@B&2r_D*H@)av~&37+5Za{|9O zhDpa`+LL*%z|a2vRhK!qvntUJb>Z_Hc505@|4g`$=?_FVn0N+8vffFb${e0f5=(x4 zv3hsm7ki!HQDu@P37$yMnn(u$H<|ehINg8g delta 37 mcmZ3ky@GjzKO+}60|Nsm3y@%+9Lea&2V^h^uz^S*;06G3m;?j> From 38a65d89981b9c77c6ffbc4db94ef65d337a4e7e Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Mon, 29 Jun 2020 14:11:11 -0700 Subject: [PATCH 02/30] rtl switch --- MaterialSkin/Controls/MaterialSwitch.cs | 4 +- ...MaterialSkin.csprojAssemblyReference.cache | Bin 424 -> 0 bytes MaterialSkinExample/MainForm.Designer.cs | 161 +++++++++--------- MaterialSkinExample/MainForm.cs | 5 + MaterialSkinExample/MainForm.resx | 12 +- ...lSkinExample.csprojAssemblyReference.cache | Bin 5543 -> 424 bytes 6 files changed, 94 insertions(+), 88 deletions(-) delete mode 100644 MaterialSkin/obj/Debug/MaterialSkin.csprojAssemblyReference.cache diff --git a/MaterialSkin/Controls/MaterialSwitch.cs b/MaterialSkin/Controls/MaterialSwitch.cs index d23a846f..5dd0b0ec 100644 --- a/MaterialSkin/Controls/MaterialSwitch.cs +++ b/MaterialSkin/Controls/MaterialSwitch.cs @@ -102,7 +102,7 @@ protected override void OnSizeChanged(EventArgs e) _trackOffsetY = Height / 2 - THUMB_SIZE_HALF; TRACK_CENTER_Y = _trackOffsetY + THUMB_SIZE_HALF - 1; - TRACK_CENTER_X_BEGIN = TRACK_CENTER_Y; + TRACK_CENTER_X_BEGIN = (RightToLeft == RightToLeft.Yes) ? this.Width- TRACK_SIZE_WIDTH : TRACK_CENTER_Y; TRACK_CENTER_X_END = TRACK_CENTER_X_BEGIN + TRACK_SIZE_WIDTH - (TRACK_RADIUS * 2); TRACK_CENTER_X_DELTA = TRACK_CENTER_X_END - TRACK_CENTER_X_BEGIN; } @@ -208,7 +208,7 @@ protected override void OnPaint(PaintEventArgs pevent) // draw text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { - Rectangle textLocation = new Rectangle(TEXT_OFFSET + TRACK_SIZE_WIDTH, 0, Width - (TEXT_OFFSET + TRACK_SIZE_WIDTH), Height); + Rectangle textLocation = (RightToLeft == RightToLeft.Yes) ? new Rectangle(0, 0, Width - (TEXT_OFFSET + TRACK_SIZE_WIDTH), Height) : new Rectangle(TEXT_OFFSET + TRACK_SIZE_WIDTH, 0, Width - (TEXT_OFFSET + TRACK_SIZE_WIDTH), Height); NativeText.DrawTransparentText( Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1), diff --git a/MaterialSkin/obj/Debug/MaterialSkin.csprojAssemblyReference.cache b/MaterialSkin/obj/Debug/MaterialSkin.csprojAssemblyReference.cache deleted file mode 100644 index dfdfd80507b63c55ed03db7aec9d2b7453afa4c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmaJ-O-sZu5KV2nAJ)U3Jb74;LJ2KP(Mu65h@hggL-pjlR3m9V`9<&k;_B=h_idHM5ddn}IkR4xwSsPv{jp=-a+6Xn2dBJm@@hqKJ zPFkn29MD+}GM(SMMvC?tw@bCgp=`26U-YMao_9qC3y7)N@$WtAt+BYNEm$Pgv= System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Here is a list of every variant a Material Button can be. Contained button's shadows are only drawn at run-time. +Click on them and checkout those sweet animations. Oh yeah, the buttons follow the theme and colors, try changing those too. +Normally the buttons should be AutoSize = true, but for the sake of my OCD, it's set to false here +If any of the buttons looks weird while designing, change the tab background color from transparent to white. + 219, 17 @@ -200,12 +206,6 @@ AeABAAEHAf4BAAF/AfgB4AH/AfgBAAEfAeABAAEHAf8BAAL/AeEB/wH4AQABHwHgAQABBwT/AeMB/wH4 AQABHwf/Aecc/ws= - - - Here is a list of every variant a Material Button can be. Contained button's shadows are only drawn at run-time. -Click on them and checkout those sweet animations. Oh yeah, the buttons follow the theme and colors, try changing those too. -Normally the buttons should be AutoSize = true, but for the sake of my OCD, it's set to false here -If any of the buttons looks weird while designing, change the tab background color from transparent to white. 17, 17 diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index 2a888d159e813b2ee5b6c181309b11e416587a68..89c8c70fdb25d6ba3be6b2350b2eb5f2081b0ba0 100644 GIT binary patch delta 37 mcmZ3ky@GjzKO+}20|Nsm3y@%*9Lea&2V^h^uz^S*;06G2U<3F7 literal 5543 zcmeHLUvt|;5ZB3)EGcP|Fi=`35dO^o39{Y9O&jQRg4@szB$PT04|OqT>1yh(b%ze+_Wie zNKk)y@mgH-x%&a@?u0ECT&U$&>c#q6y-@IqdAdS%ob2VvbCkO>V(oH7BZj@KI`>)f zmN}jN1*`CV=0>mt>0F_*8PS^0aMe}@n1<{hyBg5J{xGE8CUv7wWPAIWf#sIMc83Zk zOw?QEcbEo3Y3x!zW>QfyimuO?CwlAnNO(M;{$R|5kI!Aagv-!?Enq`OhSO;%`kQgM z%b6-~1Yq0}l}sUI9tWb_$O79btygYHFnVR9e53sK_FBGJDTlFeS>-zGgtD>)wi2BB zu3psC>cU5bNTRe{Gg`x;zVw=7!&}pi2U@$aF)G)c_~i7VCB>7dn;YNMyMzqs43-*@-tmiN)LPI0+6@ zur}>$xO|bAuqxr9qraf;cz4<b`E0S2Q_vU;~=pwrXTG{z((I$&mudC>=d%+kUbA<0b>hE!*Du; zH_VJib&K8(1w1%pL8F?~9IJYr?Qsl#9BKk3U7?M}#ga9Lz(7(7q63vD80tOYq0F8J zwmksmaQVV0f4J(kwnmF?@oeGz$|}pBJFnwDk7S+4DC|`gO{6_WVgC&oxaXj*zs~|F zX>L;A%Pjh=aP#I-vj6hp;ogt-0CVdW;wnv8FF?y|OE(lgui4g%@M^sTtWQa@BKHBW zn6OYveuoAo90am$C*|iAXzCa{Q(*axM^jIpbYQ&-Xy_-)OM>q6pkZ6DfzWy#Sf5gO z{RU_n!0Xp>c)bDLb4=@0IW|b$bK9K*$?9&TZQgAo+GCqn}RF_ zSrO1MGdMO1W?N@LVyyw|Q;Mzchq3kDIJVZI`y3wG@B&2r_D*H@)av~&37+5Za{|9O zhDpa`+LL*%z|a2vRhK!qvntUJb>Z_Hc505@|4g`$=?_FVn0N+8vffFb${e0f5=(x4 zv3hsm7ki!HQDu@P37$yMnn(u$H<|ehINg8g From 7e3a3b26dd2706005b08e5bb4cdda49e47be63bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D8=A8=D8=A7=D9=82=D8=B1=DB=8C=D8=A7=D9=86=20-=20=D8=B9?= =?UTF-8?q?=D9=84=DB=8C?= Date: Tue, 30 Jun 2020 14:13:00 +0430 Subject: [PATCH 03/30] rtl btn --- MaterialSkin/Controls/MaterialForm.cs | 12 +- MaterialSkin/Controls/MaterialForm.fa-IR.resx | 124 +++++++++++++++ MaterialSkin/Controls/MaterialForm.resx | 30 ++++ MaterialSkin/Controls/MaterialSwitch.cs | 2 +- MaterialSkin/MaterialSkin.csproj | 3 + MaterialSkinExample/MainForm.Designer.cs | 145 ++++++++++-------- MaterialSkinExample/MainForm.cs | 5 + MaterialSkinExample/MainForm.resx | 14 +- ...lSkinExample.csprojAssemblyReference.cache | Bin 424 -> 5499 bytes 9 files changed, 252 insertions(+), 83 deletions(-) create mode 100644 MaterialSkin/Controls/MaterialForm.fa-IR.resx diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index b0654c8d..01645f49 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -786,8 +786,8 @@ protected override void OnResize(EventArgs e) _minButtonBounds = new Rectangle((Width) - 3 * STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); _maxButtonBounds = new Rectangle((Width) - 2 * STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); _xButtonBounds = new Rectangle((Width) - 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); + _statusBarBounds = new Rectangle(0, 0, Width , STATUS_BAR_HEIGHT); + _actionBarBounds = new Rectangle(0, STATUS_BAR_HEIGHT, Width , ACTION_BAR_HEIGHT); } protected override void OnPaint(PaintEventArgs e) @@ -947,16 +947,14 @@ protected override void OnPaint(PaintEventArgs e) private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MaterialForm)); this.SuspendLayout(); // // MaterialForm // - this.ClientSize = new System.Drawing.Size(284, 261); - this.MinimumSize = new System.Drawing.Size(300, 200); + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; this.Name = "MaterialForm"; - this.Padding = new System.Windows.Forms.Padding(3, 64, 3, 3); - this.RightToLeft = System.Windows.Forms.RightToLeft.Yes; - this.RightToLeftLayout = true; this.Load += new System.EventHandler(this.MaterialForm_Load); this.ResumeLayout(false); diff --git a/MaterialSkin/Controls/MaterialForm.fa-IR.resx b/MaterialSkin/Controls/MaterialForm.fa-IR.resx new file mode 100644 index 00000000..25409080 --- /dev/null +++ b/MaterialSkin/Controls/MaterialForm.fa-IR.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + 300, 261 + + \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialForm.resx b/MaterialSkin/Controls/MaterialForm.resx index 1af7de15..7ac8affe 100644 --- a/MaterialSkin/Controls/MaterialForm.resx +++ b/MaterialSkin/Controls/MaterialForm.resx @@ -117,4 +117,34 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 284, 261 + + + + Yes + + + 3, 64, 3, 3 + + + 300, 200 + + + MaterialForm + + + True + + + fa-IR + \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialSwitch.cs b/MaterialSkin/Controls/MaterialSwitch.cs index 5dd0b0ec..5bb0501b 100644 --- a/MaterialSkin/Controls/MaterialSwitch.cs +++ b/MaterialSkin/Controls/MaterialSwitch.cs @@ -102,7 +102,7 @@ protected override void OnSizeChanged(EventArgs e) _trackOffsetY = Height / 2 - THUMB_SIZE_HALF; TRACK_CENTER_Y = _trackOffsetY + THUMB_SIZE_HALF - 1; - TRACK_CENTER_X_BEGIN = (RightToLeft == RightToLeft.Yes) ? this.Width- TRACK_SIZE_WIDTH : TRACK_CENTER_Y; + TRACK_CENTER_X_BEGIN = (RightToLeft == RightToLeft.Yes) ? this.Width -TRACK_SIZE_WIDTH - (TRACK_RADIUS /2): TRACK_CENTER_Y; TRACK_CENTER_X_END = TRACK_CENTER_X_BEGIN + TRACK_SIZE_WIDTH - (TRACK_RADIUS * 2); TRACK_CENTER_X_DELTA = TRACK_CENTER_X_END - TRACK_CENTER_X_BEGIN; } diff --git a/MaterialSkin/MaterialSkin.csproj b/MaterialSkin/MaterialSkin.csproj index 5df85232..7687c153 100644 --- a/MaterialSkin/MaterialSkin.csproj +++ b/MaterialSkin/MaterialSkin.csproj @@ -124,6 +124,9 @@ FlexibleMaterialDialog.cs + + MaterialForm.cs + MaterialForm.cs diff --git a/MaterialSkinExample/MainForm.Designer.cs b/MaterialSkinExample/MainForm.Designer.cs index 8c31d99a..7d8d162c 100644 --- a/MaterialSkinExample/MainForm.Designer.cs +++ b/MaterialSkinExample/MainForm.Designer.cs @@ -265,11 +265,11 @@ private void InitializeComponent() this.MaterialButton3.DrawShadows = true; this.MaterialButton3.HighEmphasis = true; this.MaterialButton3.Icon = null; - this.MaterialButton3.Location = new System.Drawing.Point(771, 432); + this.MaterialButton3.Location = new System.Drawing.Point(801, 432); this.MaterialButton3.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton3.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton3.Name = "MaterialButton3"; - this.MaterialButton3.Size = new System.Drawing.Size(181, 36); + this.MaterialButton3.Size = new System.Drawing.Size(151, 36); this.MaterialButton3.TabIndex = 36; this.MaterialButton3.Text = "بازکـــــــــردن جعبه پیام"; this.MaterialButton3.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; @@ -377,6 +377,7 @@ private void InitializeComponent() this.materialSwitch5.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch5.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch5.Name = "materialSwitch5"; + this.materialSwitch5.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch5.Ripple = true; this.materialSwitch5.Size = new System.Drawing.Size(281, 37); this.materialSwitch5.TabIndex = 30; @@ -392,11 +393,11 @@ private void InitializeComponent() this.materialButton7.DrawShadows = true; this.materialButton7.HighEmphasis = true; this.materialButton7.Icon = null; - this.materialButton7.Location = new System.Drawing.Point(661, 166); + this.materialButton7.Location = new System.Drawing.Point(686, 166); this.materialButton7.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton7.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton7.Name = "materialButton7"; - this.materialButton7.Size = new System.Drawing.Size(127, 36); + this.materialButton7.Size = new System.Drawing.Size(102, 36); this.materialButton7.TabIndex = 0; this.materialButton7.Text = "تغییـــــــر قالب"; this.materialButton7.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; @@ -431,11 +432,11 @@ private void InitializeComponent() this.MaterialButton4.DrawShadows = true; this.MaterialButton4.HighEmphasis = true; this.MaterialButton4.Icon = null; - this.MaterialButton4.Location = new System.Drawing.Point(830, 166); + this.MaterialButton4.Location = new System.Drawing.Point(852, 166); this.MaterialButton4.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton4.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton4.Name = "MaterialButton4"; - this.MaterialButton4.Size = new System.Drawing.Size(122, 36); + this.MaterialButton4.Size = new System.Drawing.Size(100, 36); this.MaterialButton4.TabIndex = 22; this.MaterialButton4.Text = "تغییـــــــر رنگ"; this.MaterialButton4.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; @@ -487,13 +488,13 @@ private void InitializeComponent() this.materialButton23.DrawShadows = true; this.materialButton23.HighEmphasis = false; this.materialButton23.Icon = global::MaterialSkinExample.Properties.Resources.baseline_fingerprint_black_24dp; - this.materialButton23.Location = new System.Drawing.Point(321, 220); + this.materialButton23.Location = new System.Drawing.Point(267, 220); this.materialButton23.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton23.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton23.Name = "materialButton23"; this.materialButton23.Size = new System.Drawing.Size(168, 36); this.materialButton23.TabIndex = 7; - this.materialButton23.Text = "CONT - ICON"; + this.materialButton23.Text = "برجسته - آیکون"; this.materialButton23.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.materialButton23.UseAccentColor = false; this.materialButton23.UseVisualStyleBackColor = true; @@ -502,43 +503,46 @@ private void InitializeComponent() // this.materialLabel37.AutoSize = true; this.materialLabel37.Depth = 0; + this.materialLabel37.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel37.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel37.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel37.Location = new System.Drawing.Point(560, 182); + this.materialLabel37.Location = new System.Drawing.Point(657, 182); this.materialLabel37.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel37.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel37.Name = "materialLabel37"; - this.materialLabel37.Size = new System.Drawing.Size(51, 25); + this.materialLabel37.Size = new System.Drawing.Size(45, 25); this.materialLabel37.TabIndex = 63; - this.materialLabel37.Text = "Outline"; + this.materialLabel37.Text = "مسطح"; // // materialLabel36 // this.materialLabel36.AutoSize = true; this.materialLabel36.Depth = 0; + this.materialLabel36.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel36.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel36.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel36.Location = new System.Drawing.Point(318, 182); + this.materialLabel36.Location = new System.Drawing.Point(389, 182); this.materialLabel36.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel36.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel36.Name = "materialLabel36"; - this.materialLabel36.Size = new System.Drawing.Size(73, 25); + this.materialLabel36.Size = new System.Drawing.Size(50, 25); this.materialLabel36.TabIndex = 62; - this.materialLabel36.Text = "Contained"; + this.materialLabel36.Text = "برجسته"; // // materialLabel35 // this.materialLabel35.AutoSize = true; this.materialLabel35.Depth = 0; + this.materialLabel35.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel35.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel35.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel35.Location = new System.Drawing.Point(83, 182); + this.materialLabel35.Location = new System.Drawing.Point(901, 182); this.materialLabel35.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel35.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel35.Name = "materialLabel35"; - this.materialLabel35.Size = new System.Drawing.Size(67, 25); + this.materialLabel35.Size = new System.Drawing.Size(63, 25); this.materialLabel35.TabIndex = 61; - this.materialLabel35.Text = "Text only"; + this.materialLabel35.Text = "فقط متنی"; // // materialFloatingActionButton1 // @@ -546,7 +550,7 @@ private void InitializeComponent() this.materialFloatingActionButton1.Depth = 0; this.materialFloatingActionButton1.DrawShadows = true; this.materialFloatingActionButton1.Icon = global::MaterialSkinExample.Properties.Resources.plus; - this.materialFloatingActionButton1.Location = new System.Drawing.Point(802, 220); + this.materialFloatingActionButton1.Location = new System.Drawing.Point(138, 220); this.materialFloatingActionButton1.Margin = new System.Windows.Forms.Padding(2); this.materialFloatingActionButton1.Mini = false; this.materialFloatingActionButton1.MouseState = MaterialSkin.MouseState.HOVER; @@ -560,28 +564,30 @@ private void InitializeComponent() // this.materialLabel3.AutoSize = true; this.materialLabel3.Depth = 0; + this.materialLabel3.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel3.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel3.Location = new System.Drawing.Point(799, 182); + this.materialLabel3.Location = new System.Drawing.Point(127, 182); this.materialLabel3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel3.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel3.Name = "materialLabel3"; - this.materialLabel3.Size = new System.Drawing.Size(161, 25); + this.materialLabel3.Size = new System.Drawing.Size(71, 25); this.materialLabel3.TabIndex = 60; - this.materialLabel3.Text = "Floating Action Button"; + this.materialLabel3.Text = "دکمه شناور"; // // materialLabel25 // this.materialLabel25.AutoSize = true; this.materialLabel25.Depth = 0; + this.materialLabel25.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel25.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel25.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel25.Location = new System.Drawing.Point(66, 3); + this.materialLabel25.Location = new System.Drawing.Point(812, 3); this.materialLabel25.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel25.Name = "materialLabel25"; - this.materialLabel25.Size = new System.Drawing.Size(179, 75); + this.materialLabel25.Size = new System.Drawing.Size(151, 75); this.materialLabel25.TabIndex = 58; - this.materialLabel25.Text = "Buttons!"; + this.materialLabel25.Text = "دکمه‌ها!"; // // materialButton24 // @@ -591,13 +597,13 @@ private void InitializeComponent() this.materialButton24.DrawShadows = true; this.materialButton24.HighEmphasis = false; this.materialButton24.Icon = global::MaterialSkinExample.Properties.Resources.baseline_bluetooth_black_24dp; - this.materialButton24.Location = new System.Drawing.Point(563, 220); + this.materialButton24.Location = new System.Drawing.Point(509, 220); this.materialButton24.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton24.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton24.Name = "materialButton24"; this.materialButton24.Size = new System.Drawing.Size(189, 36); this.materialButton24.TabIndex = 13; - this.materialButton24.Text = "OUTLINE - ICON"; + this.materialButton24.Text = "مسطح - آیکون"; this.materialButton24.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; this.materialButton24.UseAccentColor = false; this.materialButton24.UseVisualStyleBackColor = true; @@ -610,13 +616,13 @@ private void InitializeComponent() this.materialButton22.DrawShadows = true; this.materialButton22.HighEmphasis = false; this.materialButton22.Icon = global::MaterialSkinExample.Properties.Resources.baseline_favorite_border_black_24dp; - this.materialButton22.Location = new System.Drawing.Point(73, 220); + this.materialButton22.Location = new System.Drawing.Point(786, 220); this.materialButton22.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton22.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton22.Name = "materialButton22"; this.materialButton22.Size = new System.Drawing.Size(174, 36); this.materialButton22.TabIndex = 1; - this.materialButton22.Text = "TEXT - ICON"; + this.materialButton22.Text = "متنی - آیکون"; this.materialButton22.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; this.materialButton22.UseAccentColor = false; this.materialButton22.UseVisualStyleBackColor = true; @@ -624,14 +630,16 @@ private void InitializeComponent() // materialLabel8 // this.materialLabel8.Depth = 0; + this.materialLabel8.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel8.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel8.Location = new System.Drawing.Point(66, 75); + this.materialLabel8.Location = new System.Drawing.Point(73, 78); this.materialLabel8.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel8.Name = "materialLabel8"; this.materialLabel8.Size = new System.Drawing.Size(891, 95); this.materialLabel8.TabIndex = 57; this.materialLabel8.Text = resources.GetString("materialLabel8.Text"); + this.materialLabel8.Click += new System.EventHandler(this.materialLabel8_Click); // // materialButton19 // @@ -641,7 +649,7 @@ private void InitializeComponent() this.materialButton19.DrawShadows = true; this.materialButton19.HighEmphasis = false; this.materialButton19.Icon = null; - this.materialButton19.Location = new System.Drawing.Point(563, 364); + this.materialButton19.Location = new System.Drawing.Point(509, 364); this.materialButton19.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton19.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton19.Name = "materialButton19"; @@ -660,7 +668,7 @@ private void InitializeComponent() this.materialButton20.DrawShadows = true; this.materialButton20.HighEmphasis = false; this.materialButton20.Icon = null; - this.materialButton20.Location = new System.Drawing.Point(73, 364); + this.materialButton20.Location = new System.Drawing.Point(786, 364); this.materialButton20.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton20.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton20.Name = "materialButton20"; @@ -679,13 +687,13 @@ private void InitializeComponent() this.materialButton21.DrawShadows = true; this.materialButton21.HighEmphasis = false; this.materialButton21.Icon = null; - this.materialButton21.Location = new System.Drawing.Point(321, 364); + this.materialButton21.Location = new System.Drawing.Point(267, 364); this.materialButton21.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton21.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton21.Name = "materialButton21"; this.materialButton21.Size = new System.Drawing.Size(168, 36); this.materialButton21.TabIndex = 10; - this.materialButton21.Text = "CONT - LOW - NORMAL"; + this.materialButton21.Text = "برجسته - جایگزین - "; this.materialButton21.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.materialButton21.UseAccentColor = false; this.materialButton21.UseVisualStyleBackColor = true; @@ -698,13 +706,13 @@ private void InitializeComponent() this.materialButton5.DrawShadows = true; this.materialButton5.HighEmphasis = true; this.materialButton5.Icon = null; - this.materialButton5.Location = new System.Drawing.Point(563, 268); + this.materialButton5.Location = new System.Drawing.Point(509, 268); this.materialButton5.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton5.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton5.Name = "materialButton5"; this.materialButton5.Size = new System.Drawing.Size(189, 36); this.materialButton5.TabIndex = 14; - this.materialButton5.Text = "OUTLINE - HIGH - NORMAL"; + this.materialButton5.Text = "مسطح - اصلی - عادی"; this.materialButton5.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; this.materialButton5.UseAccentColor = false; this.materialButton5.UseVisualStyleBackColor = true; @@ -717,13 +725,13 @@ private void InitializeComponent() this.materialButton8.DrawShadows = true; this.materialButton8.HighEmphasis = true; this.materialButton8.Icon = null; - this.materialButton8.Location = new System.Drawing.Point(73, 268); + this.materialButton8.Location = new System.Drawing.Point(786, 268); this.materialButton8.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton8.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton8.Name = "materialButton8"; this.materialButton8.Size = new System.Drawing.Size(174, 36); this.materialButton8.TabIndex = 2; - this.materialButton8.Text = "TEXT - HIGH - NORMAL"; + this.materialButton8.Text = "متنی - اصلی - عادی"; this.materialButton8.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; this.materialButton8.UseAccentColor = false; this.materialButton8.UseVisualStyleBackColor = true; @@ -736,13 +744,13 @@ private void InitializeComponent() this.materialButton9.DrawShadows = true; this.materialButton9.HighEmphasis = true; this.materialButton9.Icon = null; - this.materialButton9.Location = new System.Drawing.Point(321, 268); + this.materialButton9.Location = new System.Drawing.Point(267, 268); this.materialButton9.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton9.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton9.Name = "materialButton9"; this.materialButton9.Size = new System.Drawing.Size(168, 36); this.materialButton9.TabIndex = 8; - this.materialButton9.Text = "CONT - HIGH - NORMAL"; + this.materialButton9.Text = "برجسته - اصلی - عادی"; this.materialButton9.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.materialButton9.UseAccentColor = false; this.materialButton9.UseVisualStyleBackColor = true; @@ -756,7 +764,7 @@ private void InitializeComponent() this.materialButton18.Enabled = false; this.materialButton18.HighEmphasis = false; this.materialButton18.Icon = null; - this.materialButton18.Location = new System.Drawing.Point(563, 460); + this.materialButton18.Location = new System.Drawing.Point(509, 460); this.materialButton18.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton18.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton18.Name = "materialButton18"; @@ -775,7 +783,7 @@ private void InitializeComponent() this.materialButton17.DrawShadows = true; this.materialButton17.HighEmphasis = false; this.materialButton17.Icon = null; - this.materialButton17.Location = new System.Drawing.Point(563, 412); + this.materialButton17.Location = new System.Drawing.Point(509, 412); this.materialButton17.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton17.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton17.Name = "materialButton17"; @@ -794,7 +802,7 @@ private void InitializeComponent() this.materialButton16.DrawShadows = true; this.materialButton16.HighEmphasis = true; this.materialButton16.Icon = null; - this.materialButton16.Location = new System.Drawing.Point(563, 316); + this.materialButton16.Location = new System.Drawing.Point(509, 316); this.materialButton16.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton16.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton16.Name = "materialButton16"; @@ -813,7 +821,7 @@ private void InitializeComponent() this.materialButton15.DrawShadows = true; this.materialButton15.HighEmphasis = false; this.materialButton15.Icon = null; - this.materialButton15.Location = new System.Drawing.Point(73, 412); + this.materialButton15.Location = new System.Drawing.Point(786, 412); this.materialButton15.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton15.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton15.Name = "materialButton15"; @@ -832,7 +840,7 @@ private void InitializeComponent() this.materialButton14.DrawShadows = true; this.materialButton14.HighEmphasis = true; this.materialButton14.Icon = null; - this.materialButton14.Location = new System.Drawing.Point(73, 316); + this.materialButton14.Location = new System.Drawing.Point(786, 316); this.materialButton14.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton14.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton14.Name = "materialButton14"; @@ -852,7 +860,7 @@ private void InitializeComponent() this.materialButton13.Enabled = false; this.materialButton13.HighEmphasis = false; this.materialButton13.Icon = null; - this.materialButton13.Location = new System.Drawing.Point(321, 460); + this.materialButton13.Location = new System.Drawing.Point(267, 460); this.materialButton13.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton13.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton13.Name = "materialButton13"; @@ -872,7 +880,7 @@ private void InitializeComponent() this.materialButton12.Enabled = false; this.materialButton12.HighEmphasis = false; this.materialButton12.Icon = null; - this.materialButton12.Location = new System.Drawing.Point(73, 460); + this.materialButton12.Location = new System.Drawing.Point(786, 460); this.materialButton12.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton12.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton12.Name = "materialButton12"; @@ -891,7 +899,7 @@ private void InitializeComponent() this.materialButton11.DrawShadows = true; this.materialButton11.HighEmphasis = false; this.materialButton11.Icon = null; - this.materialButton11.Location = new System.Drawing.Point(321, 412); + this.materialButton11.Location = new System.Drawing.Point(267, 412); this.materialButton11.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton11.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton11.Name = "materialButton11"; @@ -910,7 +918,7 @@ private void InitializeComponent() this.materialButton10.DrawShadows = true; this.materialButton10.HighEmphasis = true; this.materialButton10.Icon = null; - this.materialButton10.Location = new System.Drawing.Point(321, 316); + this.materialButton10.Location = new System.Drawing.Point(267, 316); this.materialButton10.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton10.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton10.Name = "materialButton10"; @@ -1303,15 +1311,16 @@ private void InitializeComponent() // this.materialLabel33.AutoSize = true; this.materialLabel33.Depth = 0; + this.materialLabel33.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel33.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel33.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel33.Location = new System.Drawing.Point(547, 92); + this.materialLabel33.Location = new System.Drawing.Point(757, 92); this.materialLabel33.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel33.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel33.Name = "materialLabel33"; - this.materialLabel33.Size = new System.Drawing.Size(48, 25); + this.materialLabel33.Size = new System.Drawing.Size(44, 25); this.materialLabel33.TabIndex = 65; - this.materialLabel33.Text = "Switch"; + this.materialLabel33.Text = "سوییچ"; // // materialLabel32 // @@ -1346,15 +1355,15 @@ private void InitializeComponent() this.materialSwitch7.AutoSize = true; this.materialSwitch7.Depth = 0; this.materialSwitch7.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch7.Location = new System.Drawing.Point(550, 170); + this.materialSwitch7.Location = new System.Drawing.Point(650, 170); this.materialSwitch7.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch7.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch7.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch7.Name = "materialSwitch7"; this.materialSwitch7.Ripple = true; - this.materialSwitch7.Size = new System.Drawing.Size(168, 37); + this.materialSwitch7.Size = new System.Drawing.Size(147, 37); this.materialSwitch7.TabIndex = 12; - this.materialSwitch7.Text = "Material Switch"; + this.materialSwitch7.Text = "سوییچ متریال"; this.materialSwitch7.UseVisualStyleBackColor = true; // // materialRadioButton5 @@ -1458,9 +1467,9 @@ private void InitializeComponent() this.materialSwitch3.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch3.Name = "materialSwitch3"; this.materialSwitch3.Ripple = true; - this.materialSwitch3.Size = new System.Drawing.Size(276, 37); + this.materialSwitch3.Size = new System.Drawing.Size(247, 37); this.materialSwitch3.TabIndex = 15; - this.materialSwitch3.Text = "Switch - Checked and disabled"; + this.materialSwitch3.Text = "سوییچ - غیرفعال و تیک‌خورده"; this.materialSwitch3.UseVisualStyleBackColor = true; // // materialSwitch2 @@ -1469,15 +1478,15 @@ private void InitializeComponent() this.materialSwitch2.Depth = 0; this.materialSwitch2.Enabled = false; this.materialSwitch2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch2.Location = new System.Drawing.Point(550, 212); + this.materialSwitch2.Location = new System.Drawing.Point(634, 207); this.materialSwitch2.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch2.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch2.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch2.Name = "materialSwitch2"; this.materialSwitch2.Ripple = true; - this.materialSwitch2.Size = new System.Drawing.Size(180, 37); + this.materialSwitch2.Size = new System.Drawing.Size(163, 37); this.materialSwitch2.TabIndex = 14; - this.materialSwitch2.Text = "Switch - Disabled"; + this.materialSwitch2.Text = "سوییچ - غیرفعال"; this.materialSwitch2.UseVisualStyleBackColor = true; // // materialSwitch1 @@ -1485,15 +1494,15 @@ private void InitializeComponent() this.materialSwitch1.AutoSize = true; this.materialSwitch1.Depth = 0; this.materialSwitch1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch1.Location = new System.Drawing.Point(550, 128); + this.materialSwitch1.Location = new System.Drawing.Point(650, 133); this.materialSwitch1.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch1.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch1.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch1.Name = "materialSwitch1"; this.materialSwitch1.Ripple = true; - this.materialSwitch1.Size = new System.Drawing.Size(168, 37); + this.materialSwitch1.Size = new System.Drawing.Size(147, 37); this.materialSwitch1.TabIndex = 11; - this.materialSwitch1.Text = "Material Switch"; + this.materialSwitch1.Text = "سوییچ متریال"; this.materialSwitch1.UseVisualStyleBackColor = true; // // materialCheckBox6 @@ -1576,7 +1585,7 @@ private void InitializeComponent() this.materialTextBox5.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox5.Depth = 0; this.materialTextBox5.Enabled = false; - this.materialTextBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); + this.materialTextBox5.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialTextBox5.Hint = "This is Disabled"; this.materialTextBox5.Location = new System.Drawing.Point(276, 170); @@ -2058,7 +2067,7 @@ private void InitializeComponent() this.materialFlatButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialFlatButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialFlatButton2.Name = "materialFlatButton2"; - this.materialFlatButton2.Size = new System.Drawing.Size(108, 36); + this.materialFlatButton2.Size = new System.Drawing.Size(101, 36); this.materialFlatButton2.TabIndex = 1; this.materialFlatButton2.Text = "Remove"; this.materialFlatButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; @@ -2089,11 +2098,11 @@ private void InitializeComponent() this.MaterialButton2.DrawShadows = true; this.MaterialButton2.HighEmphasis = true; this.MaterialButton2.Icon = global::MaterialSkinExample.Properties.Resources.plus; - this.MaterialButton2.Location = new System.Drawing.Point(813, 156); + this.MaterialButton2.Location = new System.Drawing.Point(816, 156); this.MaterialButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton2.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton2.Name = "MaterialButton2"; - this.MaterialButton2.Size = new System.Drawing.Size(78, 36); + this.MaterialButton2.Size = new System.Drawing.Size(75, 36); this.MaterialButton2.TabIndex = 2; this.MaterialButton2.Text = "Add"; this.MaterialButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; @@ -2216,11 +2225,11 @@ private void InitializeComponent() this.materialButton1.DrawShadows = true; this.materialButton1.HighEmphasis = true; this.materialButton1.Icon = null; - this.materialButton1.Location = new System.Drawing.Point(226, 131); + this.materialButton1.Location = new System.Drawing.Point(230, 131); this.materialButton1.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton1.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton1.Name = "materialButton1"; - this.materialButton1.Size = new System.Drawing.Size(58, 36); + this.materialButton1.Size = new System.Drawing.Size(54, 36); this.materialButton1.TabIndex = 1; this.materialButton1.Text = "Nice!"; this.materialButton1.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; diff --git a/MaterialSkinExample/MainForm.cs b/MaterialSkinExample/MainForm.cs index b90553c0..da604f6a 100644 --- a/MaterialSkinExample/MainForm.cs +++ b/MaterialSkinExample/MainForm.cs @@ -190,5 +190,10 @@ private void materialLabel7_Click(object sender, EventArgs e) { } + + private void materialLabel8_Click(object sender, EventArgs e) + { + + } } } \ No newline at end of file diff --git a/MaterialSkinExample/MainForm.resx b/MaterialSkinExample/MainForm.resx index 96b7cea5..cdff6354 100644 --- a/MaterialSkinExample/MainForm.resx +++ b/MaterialSkinExample/MainForm.resx @@ -117,12 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Here is a list of every variant a Material Button can be. Contained button's shadows are only drawn at run-time. -Click on them and checkout those sweet animations. Oh yeah, the buttons follow the theme and colors, try changing those too. -Normally the buttons should be AutoSize = true, but for the sake of my OCD, it's set to false here -If any of the buttons looks weird while designing, change the tab background color from transparent to white. - 219, 17 @@ -131,7 +125,7 @@ If any of the buttons looks weird while designing, change the tab background col AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi - EQAAAk1TRnQBSQFMAgEBCQEAARABBgEQAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + EQAAAk1TRnQBSQFMAgEBCQEAASABBgEgAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABSAMAAQEBAAEgBgABbP8A/wD/AP8AzgADSgGKA0oBiv8AdQADSAGECP8DSAGE/wBtAANAAW8Q/wNA AW//AGUAAx4BKxj/AyABLv8AbQAI//8AeQAI//8AeQAI//8AYQADXQHSA10B0hAACP//AGEACP8QAAj/ /wBhAAj/EAAI//8AYQAI/xAAA2AB1ANeAdX/AGEACP//AHkACP//AHkACP//AG0AAx8BLBT/A38B/gMf @@ -206,6 +200,12 @@ If any of the buttons looks weird while designing, change the tab background col AeABAAEHAf4BAAF/AfgB4AH/AfgBAAEfAeABAAEHAf8BAAL/AeEB/wH4AQABHwHgAQABBwT/AeMB/wH4 AQABHwf/Aecc/ws= + + + در اینجا لیستی از انواع مختلفی که دکمه‌های Material که می‌توان استفاده کرد وجود دارد. سایه‌های دکمه موجود فقط در زمان اجرا کشیده می شوند. +روی آنها کلیک کنید و انیمیشن های زیبای آن را ببینید. آهان راستی، دکمه ها از تم و رنگ پیروی می کنند ، سعی کنید آن ها را نیز تغییر دهید. +به طور معمول دکمه ها باید AutoSize = true باشند ، اما به خاطر وسواس فکری من در هم‌ترازی، مقدارش false شده است. +اگر در هنگام طراحی هر یک از دکمه ها عجیب به نظر رسید ، رنگ پس زمینه برگه را از شفاف به سفید تغییر دهید. 17, 17 diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index 89c8c70fdb25d6ba3be6b2350b2eb5f2081b0ba0..51654ea1e23698cb55233028ccb96804d4431451 100644 GIT binary patch literal 5499 zcmeHLUys{F5VsxMv3=KGi=ebn;P@v2JvmA5(rXV&b>w=qf*z%*%0pYi#@^(XICiwQ zuUucsE8m6(q<#c=0SN&T1tj_b%4dN2*-4sQ4(LH2S}7xCc0Jh{@6P^aX1$84D9WEi zXhE|Yv5zkZPeyUnO5Ar+5%}(97I$K|7D>J^e}&6fMB(X5)vdT?x4bZ4OM@hp{B+3E zM6zIE{$kn;g!dlbz8rOUc)D3$Y*ky!txCnOmf0dR@Uj%_6b4*H*4IF7aLzU%NnFk%9&FjtIvenj~1`&9prxcKskY zfC*%-w5Vf%9s5_;A6p-|-J$V?ZshCq>u4<0ecp@B7~2vXGTGu%YlTKDBroc%@Vsxf zx)){C!kSH0DX6M#E$n<2GbC#I1wM6(`EH740srEid_Y>RaZk)ZmE@@6TBH1zL zNTe9h-qSLkfYv69S2y&KOliGNq1QxnFixDJmw(CnqFWW*NTZkmOGC3%Kk|C@H8zXo;=x(3OXBSD4YW$} z#7e1DT3adQ;aVD9-1q~9YbguYF)_l`F%OZk+NkRNlzW^q?(ql7xM3OuWX351@tG%) zQuIAR7`tRY4R#pp2-q`V&k{R`C<5sSoE^wQwlfu(BxDjP&4iEroDsTYf8Cv=+HOlN!VjDvUj+P|E^Mh5S>`6p#ax3xJZA50{km=xIOo4^}9Tz;^k#EyUvqODp#-WCC@L+?;QPb4<*;H16O%! zdX9QlH})bKh^AvdPmlHs#0He5CG{@h6{!hQ^>^wZwE)PDlNFkmsB0j0roal?52tcG z?!bDP&@f1rYm(g%VcW4^A));$u>s}q`i0Omgx8%(c)do$4P@mhyr%HV^VaKx1~X5+ zj{OEb*vE(sD2LULqp_q^H&ExNu$sauhgFHt@MOQDe9>&I7d!FHU(J@vMQlrW_WCr+_6uP#9k&gpd4G@jAHBSNo=jq z@HrgWaMhvRzIpA+k)^v|s5rmja{^x+qh#Qi_IREv@PR+LzOsh*P&L+L9(`!jO09{T zo?Wh928!4Q3uj=E{bt@Ob2y!3p8WDm09iP1IX OI^F#!sz!gSGk*aavU3># delta 37 mcmeyZwSswrKO+}20|Nsm3y@%*9Lea&2V^h^uz^S*;06GEU<6A5 From 4d7c6e1682f8866e5fe7e6bf5316dba6550e6e81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D8=A8=D8=A7=D9=82=D8=B1=DB=8C=D8=A7=D9=86=20-=20=D8=B9?= =?UTF-8?q?=D9=84=DB=8C?= Date: Tue, 30 Jun 2020 14:41:51 +0430 Subject: [PATCH 04/30] aa --- MaterialSkin/Controls/MaterialRadioButton.cs | 7 +++++-- ...lSkinExample.csprojAssemblyReference.cache | Bin 5499 -> 5499 bytes 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/MaterialSkin/Controls/MaterialRadioButton.cs b/MaterialSkin/Controls/MaterialRadioButton.cs index d4e200ae..7cf5499b 100644 --- a/MaterialSkin/Controls/MaterialRadioButton.cs +++ b/MaterialSkin/Controls/MaterialRadioButton.cs @@ -174,14 +174,16 @@ protected override void OnPaint(PaintEventArgs pevent) // draw radiobutton circle using (Pen pen = new Pen(DrawHelper.BlendColor(Parent.BackColor, Enabled ? SkinManager.CheckboxOffColor : SkinManager.CheckBoxOffDisabledColor, backgroundAlpha), 2)) { - g.DrawEllipse(pen, new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); + var x = RightToLeft == RightToLeft.Yes ? Width- _boxOffset : _boxOffset; + g.DrawEllipse(pen, new Rectangle(x, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); } if (Enabled) { using (Pen pen = new Pen(RadioColor, 2)) { - g.DrawEllipse(pen, new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); + var x = RightToLeft == RightToLeft.Yes ? Width - _boxOffset : _boxOffset; + g.DrawEllipse(pen, new Rectangle(x, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); } } @@ -189,6 +191,7 @@ protected override void OnPaint(PaintEventArgs pevent) { using (SolidBrush brush = new SolidBrush(RadioColor)) { + var x = RightToLeft == RightToLeft.Yes ? Width - (RADIOBUTTON_CENTER + animationSizeHalf) : _boxOffset; g.FillEllipse(brush, new RectangleF(RADIOBUTTON_CENTER - animationSizeHalf, RADIOBUTTON_CENTER - animationSizeHalf, animationSize, animationSize)); } } diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index 51654ea1e23698cb55233028ccb96804d4431451..e947c3f989e985c3864306a63a269535be1c5f58 100644 GIT binary patch delta 25 hcmeyZ^;>I$KO>{W<^aYXM%HQhT8Hj#e#kUS2mpdP3JL%K delta 25 hcmeyZ^;>I$KO>{)<^aYXM%LSRwwGSq{E%su5CDpj3he*@ From f9f7e7cbf8fb5fb133764099334ded160cc9b3f3 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Wed, 1 Jul 2020 22:32:16 -0700 Subject: [PATCH 05/30] rtl MaterialComboBox --- MaterialSkin/Controls/MaterialCheckBox.cs | 18 +- .../Controls/MaterialCheckedListBox.cs | 1 + MaterialSkin/Controls/MaterialComboBox.cs | 48 +- MaterialSkin/Controls/MaterialRadioButton.cs | 16 +- MaterialSkinExample/MainForm.Designer.cs | 581 ++++++++++-------- MaterialSkinExample/MainForm.cs | 19 +- MaterialSkinExample/MainForm.resx | 2 +- ...lSkinExample.csprojAssemblyReference.cache | Bin 5499 -> 8929 bytes 8 files changed, 371 insertions(+), 314 deletions(-) diff --git a/MaterialSkin/Controls/MaterialCheckBox.cs b/MaterialSkin/Controls/MaterialCheckBox.cs index 06e5fb18..2ec76697 100644 --- a/MaterialSkin/Controls/MaterialCheckBox.cs +++ b/MaterialSkin/Controls/MaterialCheckBox.cs @@ -115,8 +115,9 @@ protected override void OnPaint(PaintEventArgs pevent) // clear the control g.Clear(Parent.BackColor); - int CHECKBOX_CENTER = _boxOffset + CHECKBOX_SIZE_HALF - 1; - Point animationSource = new Point(CHECKBOX_CENTER, CHECKBOX_CENTER); + int CHECKBOX_CENTER_X = RightToLeft==RightToLeft.Yes?Width - (_boxOffset + CHECKBOX_SIZE_HALF +1) : _boxOffset + CHECKBOX_SIZE_HALF - 1; + int CHECKBOX_CENTER_Y = _boxOffset + CHECKBOX_SIZE_HALF - 1; + Point animationSource = new Point(CHECKBOX_CENTER_X, CHECKBOX_CENTER_Y); double animationProgress = _checkAM.GetProgress(); int colorAlpha = Enabled ? (int)(animationProgress * 255.0) : SkinManager.CheckBoxOffDisabledColor.A; @@ -154,8 +155,9 @@ protected override void OnPaint(PaintEventArgs pevent) } } - Rectangle checkMarkLineFill = new Rectangle(_boxOffset, _boxOffset, (int)(CHECKBOX_SIZE * animationProgress), CHECKBOX_SIZE); - using (GraphicsPath checkmarkPath = DrawHelper.CreateRoundRect(_boxOffset - 0.5f, _boxOffset - 0.5f, CHECKBOX_SIZE, CHECKBOX_SIZE, 1)) + var boxOffset_x = RightToLeft == RightToLeft.Yes ? Width - CHECKBOX_SIZE - _boxOffset : _boxOffset; + Rectangle checkMarkLineFill = new Rectangle(boxOffset_x , _boxOffset, (int)(CHECKBOX_SIZE * animationProgress), CHECKBOX_SIZE); + using (GraphicsPath checkmarkPath = DrawHelper.CreateRoundRect(boxOffset_x - 0.5f, _boxOffset - 0.5f, CHECKBOX_SIZE, CHECKBOX_SIZE, 1)) { if (Enabled) { @@ -177,16 +179,18 @@ protected override void OnPaint(PaintEventArgs pevent) g.DrawImageUnscaledAndClipped(DrawCheckMarkBitmap(), checkMarkLineFill); } - + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; // draw checkbox text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { - Rectangle textLocation = new Rectangle(_boxOffset + TEXT_OFFSET, 0, Width - (_boxOffset + TEXT_OFFSET), HEIGHT_RIPPLE); + var x = RightToLeft == RightToLeft.Yes ? 0 : _boxOffset + TEXT_OFFSET; + var w = RightToLeft == RightToLeft.Yes ? Width - (_boxOffset + TEXT_OFFSET) : Width; + Rectangle textLocation = new Rectangle(x, 0, w, HEIGHT_RIPPLE); NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textLocation.Location, textLocation.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } // dispose used paint objects diff --git a/MaterialSkin/Controls/MaterialCheckedListBox.cs b/MaterialSkin/Controls/MaterialCheckedListBox.cs index eabc44ec..81bd372f 100644 --- a/MaterialSkin/Controls/MaterialCheckedListBox.cs +++ b/MaterialSkin/Controls/MaterialCheckedListBox.cs @@ -71,6 +71,7 @@ public void Add(string text, bool defaultValue) Add(cb); cb.Checked = defaultValue; cb.Text = text; + cb.RightToLeft = RightToLeft.Inherit; } public new void Add(MaterialSkin.Controls.MaterialCheckbox value) diff --git a/MaterialSkin/Controls/MaterialComboBox.cs b/MaterialSkin/Controls/MaterialComboBox.cs index cbb86864..a5491e63 100644 --- a/MaterialSkin/Controls/MaterialComboBox.cs +++ b/MaterialSkin/Controls/MaterialComboBox.cs @@ -133,6 +133,9 @@ protected override void OnPaint(PaintEventArgs pevent) { Graphics g = pevent.Graphics; + var FORM_PADDING = RightToLeft == RightToLeft.Yes ? 0 : SkinManager.FORM_PADDING; + var Width = RightToLeft == RightToLeft.Yes ? this.Width - SkinManager.FORM_PADDING : this.Width; + g.Clear(Parent.BackColor); g.FillRectangle(Enabled ? Focused ? SkinManager.BackgroundFocusBrush : // Focused @@ -144,9 +147,12 @@ protected override void OnPaint(PaintEventArgs pevent) // Create and Draw the arrow System.Drawing.Drawing2D.GraphicsPath pth = new System.Drawing.Drawing2D.GraphicsPath(); - PointF TopRight = new PointF(this.Width - 0.5f - SkinManager.FORM_PADDING, (this.Height >> 1) - 2.5f); - PointF MidBottom = new PointF(this.Width - 4.5f - SkinManager.FORM_PADDING, (this.Height >> 1) + 2.5f); - PointF TopLeft = new PointF(this.Width - 8.5f - SkinManager.FORM_PADDING, (this.Height >> 1) - 2.5f); + var TopRight_X= RightToLeft == RightToLeft.Yes ? 0.5f + SkinManager.FORM_PADDING : Width - 0.5f - FORM_PADDING; + PointF TopRight = new PointF(TopRight_X, (this.Height >> 1) - 2.5f); + var MidBottom_X = RightToLeft == RightToLeft.Yes ? 4.5f + SkinManager.FORM_PADDING : Width - 4.5f - FORM_PADDING; + PointF MidBottom = new PointF(MidBottom_X , (this.Height >> 1) + 2.5f); + var TopLeft_X = RightToLeft == RightToLeft.Yes ? 8.5f + SkinManager.FORM_PADDING : Width - 8.5f - FORM_PADDING; + PointF TopLeft = new PointF(TopLeft_X, (this.Height >> 1) - 2.5f); pth.AddLine(TopLeft, TopRight); pth.AddLine(TopRight, MidBottom); @@ -156,11 +162,11 @@ protected override void OnPaint(PaintEventArgs pevent) // HintText bool userTextPresent = SelectedIndex >= 0; - Rectangle hintRect = new Rectangle(SkinManager.FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); + Rectangle hintRect = new Rectangle(FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); int hintTextSize = 16; // bottom line base - g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, Width, 1); + g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, this.Width, 1); if (!_animationManager.IsAnimating()) { @@ -168,14 +174,14 @@ protected override void OnPaint(PaintEventArgs pevent) if (hasHint && UseTallSize && (DroppedDown || Focused || SelectedIndex >= 0)) { // hint text - hintRect = new Rectangle(SkinManager.FORM_PADDING, TEXT_SMALL_Y, Width, TEXT_SMALL_SIZE); + hintRect = new Rectangle(FORM_PADDING, TEXT_SMALL_Y, Width, TEXT_SMALL_SIZE); hintTextSize = 12; } // bottom line if (DroppedDown || Focused) { - g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, 0, LINE_Y, Width, 2); + g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, 0, LINE_Y, this.Width, 2); } } else @@ -187,7 +193,7 @@ protected override void OnPaint(PaintEventArgs pevent) if (hasHint && UseTallSize) { hintRect = new Rectangle( - SkinManager.FORM_PADDING, + FORM_PADDING, userTextPresent && !_animationManager.IsAnimating() ? (TEXT_SMALL_Y) : ClientRectangle.Y + (int)((TEXT_SMALL_Y - ClientRectangle.Y) * animationProgress), Width, userTextPresent && !_animationManager.IsAnimating() ? (TEXT_SMALL_SIZE) : (int)(LINE_Y + (TEXT_SMALL_SIZE - LINE_Y) * animationProgress)); @@ -200,15 +206,15 @@ protected override void OnPaint(PaintEventArgs pevent) g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); } + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; // Calc text Rect Rectangle textRect = new Rectangle( - SkinManager.FORM_PADDING, + Width - (ClientRectangle.Width - FORM_PADDING * 3 - 8), hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, - ClientRectangle.Width - SkinManager.FORM_PADDING * 3 - 8, + ClientRectangle.Width - FORM_PADDING * 3 - 8, hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); g.Clip = new Region(textRect); - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { // Draw user text @@ -218,7 +224,7 @@ protected override void OnPaint(PaintEventArgs pevent) Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textRect.Location, textRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } g.ResetClip(); @@ -238,7 +244,7 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.TextDisabledOrHintColor, // Disabled hintRect.Location, hintRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } } @@ -250,6 +256,9 @@ private void CustomMeasureItem(object sender, System.Windows.Forms.MeasureItemEv private void CustomDrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) { + var FORM_PADDING = RightToLeft == RightToLeft.Yes ? 0 : SkinManager.FORM_PADDING; + var Width = RightToLeft == RightToLeft.Yes ? e.Bounds.Size.Width - SkinManager.FORM_PADDING : e.Bounds.Size.Width; + if (e.Index < 0 || e.Index > Items.Count || !Focused) return; Graphics g = e.Graphics; @@ -262,7 +271,7 @@ private void CustomDrawItem(object sender, System.Windows.Forms.DrawItemEventArg { g.FillRectangle(SkinManager.BackgroundHoverBrush, e.Bounds); } - + string Text = ""; if (!string.IsNullOrWhiteSpace(DisplayMember)) { @@ -272,16 +281,16 @@ private void CustomDrawItem(object sender, System.Windows.Forms.DrawItemEventArg { Text = Items[e.Index].ToString(); } - + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { NativeText.DrawTransparentText( Text, SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1), SkinManager.TextHighEmphasisColor, - new Point(e.Bounds.Location.X + SkinManager.FORM_PADDING, e.Bounds.Location.Y), - new Size(e.Bounds.Size.Width - SkinManager.FORM_PADDING * 2, e.Bounds.Size.Height), - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); ; + new Point(e.Bounds.Location.X + FORM_PADDING, e.Bounds.Location.Y), + new Size(Width - FORM_PADDING * 2, e.Bounds.Size.Height), + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } @@ -318,7 +327,8 @@ public void recalculateAutoSize() if (!AutoResize) return; int w = DropDownWidth; - int padding = SkinManager.FORM_PADDING * 3; + var FORM_PADDING = RightToLeft == RightToLeft.Yes ? 0 : SkinManager.FORM_PADDING; + int padding = FORM_PADDING * 3; int vertScrollBarWidth = (Items.Count > MaxDropDownItems) ? SystemInformation.VerticalScrollBarWidth : 0; Graphics g = CreateGraphics(); diff --git a/MaterialSkin/Controls/MaterialRadioButton.cs b/MaterialSkin/Controls/MaterialRadioButton.cs index 7cf5499b..9e49dbf7 100644 --- a/MaterialSkin/Controls/MaterialRadioButton.cs +++ b/MaterialSkin/Controls/MaterialRadioButton.cs @@ -130,8 +130,9 @@ protected override void OnPaint(PaintEventArgs pevent) // clear the control g.Clear(Parent.BackColor); - int RADIOBUTTON_CENTER = _boxOffset + RADIOBUTTON_SIZE_HALF; - Point animationSource = new Point(RADIOBUTTON_CENTER, RADIOBUTTON_CENTER); + int RADIOBUTTON_CENTER_X = RightToLeft==RightToLeft.Yes? Width-(_boxOffset + RADIOBUTTON_SIZE_HALF) : _boxOffset + RADIOBUTTON_SIZE_HALF; + int RADIOBUTTON_CENTER_Y = _boxOffset + RADIOBUTTON_SIZE_HALF; + Point animationSource = new Point(RADIOBUTTON_CENTER_X, RADIOBUTTON_CENTER_Y); double animationProgress = _checkAM.GetProgress(); @@ -174,7 +175,7 @@ protected override void OnPaint(PaintEventArgs pevent) // draw radiobutton circle using (Pen pen = new Pen(DrawHelper.BlendColor(Parent.BackColor, Enabled ? SkinManager.CheckboxOffColor : SkinManager.CheckBoxOffDisabledColor, backgroundAlpha), 2)) { - var x = RightToLeft == RightToLeft.Yes ? Width- _boxOffset : _boxOffset; + var x = RightToLeft == RightToLeft.Yes ? Width- RADIOBUTTON_SIZE - _boxOffset : _boxOffset; g.DrawEllipse(pen, new Rectangle(x, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); } @@ -182,7 +183,7 @@ protected override void OnPaint(PaintEventArgs pevent) { using (Pen pen = new Pen(RadioColor, 2)) { - var x = RightToLeft == RightToLeft.Yes ? Width - _boxOffset : _boxOffset; + var x = RightToLeft == RightToLeft.Yes ? Width - RADIOBUTTON_SIZE - _boxOffset : _boxOffset; g.DrawEllipse(pen, new Rectangle(x, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); } } @@ -191,15 +192,16 @@ protected override void OnPaint(PaintEventArgs pevent) { using (SolidBrush brush = new SolidBrush(RadioColor)) { - var x = RightToLeft == RightToLeft.Yes ? Width - (RADIOBUTTON_CENTER + animationSizeHalf) : _boxOffset; - g.FillEllipse(brush, new RectangleF(RADIOBUTTON_CENTER - animationSizeHalf, RADIOBUTTON_CENTER - animationSizeHalf, animationSize, animationSize)); + g.FillEllipse(brush, new RectangleF(RADIOBUTTON_CENTER_X - animationSizeHalf, RADIOBUTTON_CENTER_Y - animationSizeHalf, animationSize, animationSize)); } } // Text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { - Rectangle textLocation = new Rectangle(_boxOffset + TEXT_OFFSET, 0, Width, Height); + var x = RightToLeft == RightToLeft.Yes ? 0 : _boxOffset + TEXT_OFFSET; + var w = RightToLeft == RightToLeft.Yes ? Width-(_boxOffset + TEXT_OFFSET) : Width; + Rectangle textLocation = new Rectangle(x, 0, Width, Height); NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textLocation.Location, diff --git a/MaterialSkinExample/MainForm.Designer.cs b/MaterialSkinExample/MainForm.Designer.cs index 7d8d162c..ca91d454 100644 --- a/MaterialSkinExample/MainForm.Designer.cs +++ b/MaterialSkinExample/MainForm.Designer.cs @@ -182,38 +182,40 @@ private void InitializeComponent() // // materialCheckbox3 // + this.materialCheckbox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialCheckbox3.AutoSize = true; this.materialCheckbox3.Cursor = System.Windows.Forms.Cursors.Default; this.materialCheckbox3.Depth = 0; this.materialCheckbox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckbox3.Location = new System.Drawing.Point(76, 169); + this.materialCheckbox3.Location = new System.Drawing.Point(720, 170); this.materialCheckbox3.Margin = new System.Windows.Forms.Padding(0); this.materialCheckbox3.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckbox3.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckbox3.Name = "materialCheckbox3"; this.materialCheckbox3.Ripple = true; - this.materialCheckbox3.Size = new System.Drawing.Size(172, 37); + this.materialCheckbox3.Size = new System.Drawing.Size(168, 37); this.materialCheckbox3.TabIndex = 2; - this.materialCheckbox3.Text = "materialCheckbox3"; + this.materialCheckbox3.Text = "کادر انتخاب متریال ۲"; this.materialCheckbox3.UseVisualStyleBackColor = true; // // materialCheckbox1 // + this.materialCheckbox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialCheckbox1.AutoSize = true; this.materialCheckbox1.Checked = true; this.materialCheckbox1.CheckState = System.Windows.Forms.CheckState.Checked; this.materialCheckbox1.Cursor = System.Windows.Forms.Cursors.Default; this.materialCheckbox1.Depth = 0; this.materialCheckbox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckbox1.Location = new System.Drawing.Point(76, 127); + this.materialCheckbox1.Location = new System.Drawing.Point(723, 134); this.materialCheckbox1.Margin = new System.Windows.Forms.Padding(0); this.materialCheckbox1.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckbox1.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckbox1.Name = "materialCheckbox1"; this.materialCheckbox1.Ripple = true; - this.materialCheckbox1.Size = new System.Drawing.Size(167, 37); + this.materialCheckbox1.Size = new System.Drawing.Size(165, 37); this.materialCheckbox1.TabIndex = 1; - this.materialCheckbox1.Text = "materialCheckbox1"; + this.materialCheckbox1.Text = "کادر انتخاب متریال ۱"; this.materialCheckbox1.UseVisualStyleBackColor = true; // // materialTabControl1 @@ -964,6 +966,7 @@ private void InitializeComponent() this.tabPage2.Size = new System.Drawing.Size(1015, 520); this.tabPage2.TabIndex = 1; this.tabPage2.Text = "Selection Controls"; + this.tabPage2.Click += new System.EventHandler(this.tabPage2_Click); // // materialComboBox6 // @@ -978,13 +981,13 @@ private void InitializeComponent() this.materialComboBox6.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialComboBox6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialComboBox6.FormattingEnabled = true; - this.materialComboBox6.Hint = "This is Disabled"; + this.materialComboBox6.Hint = "این غیرفعال است"; this.materialComboBox6.IntegralHeight = false; this.materialComboBox6.ItemHeight = 43; this.materialComboBox6.Items.AddRange(new object[] { - "But with value", - "hi"}); - this.materialComboBox6.Location = new System.Drawing.Point(508, 409); + "اما با ارزش", + "سلام"}); + this.materialComboBox6.Location = new System.Drawing.Point(321, 408); this.materialComboBox6.MaxDropDownItems = 4; this.materialComboBox6.MouseState = MaterialSkin.MouseState.OUT; this.materialComboBox6.Name = "materialComboBox6"; @@ -1007,9 +1010,9 @@ private void InitializeComponent() this.materialComboBox2.IntegralHeight = false; this.materialComboBox2.ItemHeight = 43; this.materialComboBox2.Items.AddRange(new object[] { - "long item string that usually doesn\'t fit in the combobox", - "Hello There, I hope you\'ll have a wonderfull day"}); - this.materialComboBox2.Location = new System.Drawing.Point(508, 464); + "رشته آیتم طولانی که معمولاً در این ترکیب قرار نمی گیرد", + "سلام ، امیدوارم که روزی شگفت انگیز داشته باشید"}); + this.materialComboBox2.Location = new System.Drawing.Point(67, 463); this.materialComboBox2.MaxDropDownItems = 4; this.materialComboBox2.MouseState = MaterialSkin.MouseState.OUT; this.materialComboBox2.Name = "materialComboBox2"; @@ -1029,80 +1032,77 @@ private void InitializeComponent() this.materialComboBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialComboBox5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialComboBox5.FormattingEnabled = true; - this.materialComboBox5.Hint = "This is Disabled"; + this.materialComboBox5.Hint = "این غیرفعال است"; this.materialComboBox5.IntegralHeight = false; this.materialComboBox5.ItemHeight = 43; this.materialComboBox5.Items.AddRange(new object[] { - "When", - "life", - "gives", - "you", - "lemons,", - "don\'t", - "make", - "lemonade!", - "Make", - "life", - "take", - "the", - "lemons", - "back!", - "Get", - "mad!", - "I don\'t", - "want", - "your", - "damn", - "lemons;", - "what", - "am I", - "supposed", - "to do", - "with", - "these?", - "Demand", - "to see", - "life\'s", - "manager!", - "Make", - "life", - "rue", - "the", - "day", - "it thought", - "it could", - "give", - "Cave", - "Johnson", - "lemons!", - "Do you", - "know", - "who", - "I am?", - "I\'m", - "the", - "man", - "who\'s", - "gonna", - "burn", - "your", - "house", - "down...", - "with the", - "lemons!", - "I\'m", - "gonna", - "get my", - "engineers to", - "invent a", - "combustible", - "lemon", - "that", - "burns", - "your", - "house", - "down!"}); - this.materialComboBox5.Location = new System.Drawing.Point(508, 354); + "چه زمانی", + "زندگی", + "می دهد", + "شما", + "لیمو،", + "نکن", + "درست کردن", + "لیموناد!", + "درست کردن", + "زندگی", + "گرفتن", + "لیمو", + "بازگشت!", + "گرفتن", + "دیوانه!", + "من نمی کنم", + "می خواهم", + "شما", + "لعنتی", + "لیمو؛", + "چی", + "من هستم", + "قرار بود", + "انجام دادن", + "با", + "اینها؟", + "تقاضا", + "دیدن", + "زندگی", + "مدیر!", + "درست کردن", + "زندگی", + "غم و اندوه", + "روز", + "فکر کرد", + "آن می تواند", + "دادن", + "غار", + "جانسون", + "لیمو!", + "آیا تو", + "می دانم", + "سازمان بهداشت جهانی", + "من هستم؟", + "من هستم", + "مرد", + "چه کسی است", + "میخوام", + "سوزاندن", + "شما", + "خانه", + "پایین...", + "با", + "لیمو!", + "من هستم", + "میخوام", + "منو بگیر", + "مهندسین به", + "اختراع", + "قابل احتراق", + "لیمو", + "که", + "می سوزد", + "شما", + "خانه", + "پایین!"}); + this.materialComboBox5.Location = new System.Drawing.Point(321, 354); this.materialComboBox5.MaxDropDownItems = 4; this.materialComboBox5.MouseState = MaterialSkin.MouseState.OUT; this.materialComboBox5.Name = "materialComboBox5"; @@ -1121,82 +1121,79 @@ private void InitializeComponent() this.materialComboBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialComboBox4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialComboBox4.FormattingEnabled = true; - this.materialComboBox4.Hint = "Primary color"; + this.materialComboBox4.Hint = "رنگ اصلی"; this.materialComboBox4.IntegralHeight = false; this.materialComboBox4.ItemHeight = 43; this.materialComboBox4.Items.AddRange(new object[] { - "Long", - "List", - "When", - "life", - "gives", - "you", - "lemons,", - "don\'t", - "make", - "lemonade!", - "Make", - "life", - "take", - "the", - "lemons", - "back!", - "Get", - "mad!", - "I don\'t", - "want", - "your", - "damn", - "lemons;", - "what", - "am I", - "supposed", - "to do", - "with", - "these?", - "Demand", - "to see", - "life\'s", - "manager!", - "Make", - "life", - "rue", - "the", - "day", - "it thought", - "it could", - "give", - "Cave", - "Johnson", - "lemons!", - "Do you", - "know", - "who", - "I am?", - "I\'m", - "the", - "man", - "who\'s", - "gonna", - "burn", - "your", - "house", - "down...", - "with the", - "lemons!", - "I\'m", - "gonna", - "get my", - "engineers to", - "invent a", - "combustible", - "lemon", - "that", - "burns", - "your", - "house", - "down!"}); - this.materialComboBox4.Location = new System.Drawing.Point(303, 409); + "طولانی", + "لیست", + "چه زمانی", + "زندگی", + "می دهد", + "شما", + "لیمو،", + "نکن", + "درست کردن", + "لیموناد!", + "درست کردن", + "زندگی", + "گرفتن", + "لیمو", + "بازگشت!", + "گرفتن", + "دیوانه!", + "من نمی کنم", + "می خواهم", + "شما", + "لعنتی", + "لیمو؛", + "چی", + "من هستم", + "قرار بود", + "انجام دادن", + "با", + "اینها؟", + "تقاضا", + "دیدن", + "زندگی", + "مدیر!", + "درست کردن", + "زندگی", + "غم و اندوه", + "روز", + "فکر کرد", + "آن می تواند", + "دادن", + "غار", + "جانسون", + "لیمو!", + "آیا تو", + "می دانم", + "سازمان بهداشت جهانی", + "من هستم؟", + "من هستم", + "مرد", + "چه کسی است", + "میخوام", + "سوزاندن", + "شما", + "خانه", + "پایین...", + "با", + "لیمو!", + "من هستم", + "میخوام", + "منو بگیر", + "مهندسین به", + "اختراع", + "قابل احتراق", + "لیمو", + "که", + "می سوزد", + "شما", + "خانه", + "پایین!"}); + this.materialComboBox4.Location = new System.Drawing.Point(542, 408); this.materialComboBox4.MaxDropDownItems = 4; this.materialComboBox4.MouseState = MaterialSkin.MouseState.OUT; this.materialComboBox4.Name = "materialComboBox4"; @@ -1216,18 +1213,18 @@ private void InitializeComponent() this.materialComboBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialComboBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialComboBox3.FormattingEnabled = true; - this.materialComboBox3.Hint = "small combo"; + this.materialComboBox3.Hint = "کادر دسته‌ای کوچک"; this.materialComboBox3.IntegralHeight = false; this.materialComboBox3.ItemHeight = 29; this.materialComboBox3.Items.AddRange(new object[] { - "Item 1", - "Item 2", - "Item 3", - "Item 4", - "Item 5", - "Item 6", - "Item 7"}); - this.materialComboBox3.Location = new System.Drawing.Point(303, 464); + "مورد 1", + "مورد 2", + "مورد 3", + "مورد 4", + "مورد 5", + "مورد 6", + "مورد 7"}); + this.materialComboBox3.Location = new System.Drawing.Point(542, 463); this.materialComboBox3.MaxDropDownItems = 4; this.materialComboBox3.MouseState = MaterialSkin.MouseState.OUT; this.materialComboBox3.Name = "materialComboBox3"; @@ -1239,23 +1236,25 @@ private void InitializeComponent() // this.materialLabel5.AutoSize = true; this.materialLabel5.Depth = 0; + this.materialLabel5.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel5.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel5.Location = new System.Drawing.Point(73, 317); + this.materialLabel5.Location = new System.Drawing.Point(808, 317); this.materialLabel5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel5.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel5.Name = "materialLabel5"; - this.materialLabel5.Size = new System.Drawing.Size(114, 25); + this.materialLabel5.Size = new System.Drawing.Size(133, 25); this.materialLabel5.TabIndex = 69; - this.materialLabel5.Text = "CheckedListBox"; + this.materialLabel5.Text = "کادر دسته‌ای انتخابی"; // // materialCheckedListBox1 // + this.materialCheckedListBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialCheckedListBox1.AutoScroll = true; this.materialCheckedListBox1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.materialCheckedListBox1.BackColor = System.Drawing.Color.White; this.materialCheckedListBox1.Depth = 0; - this.materialCheckedListBox1.Location = new System.Drawing.Point(76, 354); + this.materialCheckedListBox1.Location = new System.Drawing.Point(751, 354); this.materialCheckedListBox1.Margin = new System.Windows.Forms.Padding(2); this.materialCheckedListBox1.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckedListBox1.Name = "materialCheckedListBox1"; @@ -1277,16 +1276,16 @@ private void InitializeComponent() this.materialComboBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F); this.materialComboBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialComboBox1.FormattingEnabled = true; - this.materialComboBox1.Hint = "ComboBox hints!"; + this.materialComboBox1.Hint = "کادر دسته‌ای نکات!"; this.materialComboBox1.IntegralHeight = false; this.materialComboBox1.ItemHeight = 43; this.materialComboBox1.Items.AddRange(new object[] { - "Item 1", - "Item 2", - "Item 3", - "Item 4", - "Long item that won\'t fit here"}); - this.materialComboBox1.Location = new System.Drawing.Point(303, 354); + "آیتم ۱", + "آیتم ۲", + "آیتم ۳", + "آیتم ۴", + "مورد طولانی که در اینجا جا نمی‌گیرد"}); + this.materialComboBox1.Location = new System.Drawing.Point(542, 354); this.materialComboBox1.MaxDropDownItems = 4; this.materialComboBox1.MouseState = MaterialSkin.MouseState.OUT; this.materialComboBox1.Name = "materialComboBox1"; @@ -1297,15 +1296,16 @@ private void InitializeComponent() // this.materialLabel34.AutoSize = true; this.materialLabel34.Depth = 0; + this.materialLabel34.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel34.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel34.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel34.Location = new System.Drawing.Point(300, 317); + this.materialLabel34.Location = new System.Drawing.Point(652, 321); this.materialLabel34.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel34.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel34.Name = "materialLabel34"; - this.materialLabel34.Size = new System.Drawing.Size(78, 25); + this.materialLabel34.Size = new System.Drawing.Size(80, 25); this.materialLabel34.TabIndex = 66; - this.materialLabel34.Text = "Combobox"; + this.materialLabel34.Text = "کادر دسته‌ای"; // // materialLabel33 // @@ -1314,7 +1314,7 @@ private void InitializeComponent() this.materialLabel33.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel33.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel33.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel33.Location = new System.Drawing.Point(757, 92); + this.materialLabel33.Location = new System.Drawing.Point(282, 92); this.materialLabel33.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel33.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel33.Name = "materialLabel33"; @@ -1326,36 +1326,39 @@ private void InitializeComponent() // this.materialLabel32.AutoSize = true; this.materialLabel32.Depth = 0; + this.materialLabel32.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel32.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel32.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel32.Location = new System.Drawing.Point(300, 92); + this.materialLabel32.Location = new System.Drawing.Point(479, 92); this.materialLabel32.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel32.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel32.Name = "materialLabel32"; - this.materialLabel32.Size = new System.Drawing.Size(102, 25); + this.materialLabel32.Size = new System.Drawing.Size(112, 25); this.materialLabel32.TabIndex = 64; - this.materialLabel32.Text = "Radio Buttons"; + this.materialLabel32.Text = "دکمه‌های رادیویی"; // // materialLabel31 // this.materialLabel31.AutoSize = true; this.materialLabel31.Depth = 0; + this.materialLabel31.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel31.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel31.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel31.Location = new System.Drawing.Point(73, 92); + this.materialLabel31.Location = new System.Drawing.Point(813, 92); this.materialLabel31.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel31.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel31.Name = "materialLabel31"; - this.materialLabel31.Size = new System.Drawing.Size(70, 25); + this.materialLabel31.Size = new System.Drawing.Size(75, 25); this.materialLabel31.TabIndex = 63; - this.materialLabel31.Text = "Checkbox"; + this.materialLabel31.Text = "کادر انتخاب"; // // materialSwitch7 // + this.materialSwitch7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialSwitch7.AutoSize = true; this.materialSwitch7.Depth = 0; this.materialSwitch7.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch7.Location = new System.Drawing.Point(650, 170); + this.materialSwitch7.Location = new System.Drawing.Point(179, 170); this.materialSwitch7.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch7.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch7.MouseState = MaterialSkin.MouseState.HOVER; @@ -1364,104 +1367,113 @@ private void InitializeComponent() this.materialSwitch7.Size = new System.Drawing.Size(147, 37); this.materialSwitch7.TabIndex = 12; this.materialSwitch7.Text = "سوییچ متریال"; + this.materialSwitch7.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.materialSwitch7.UseVisualStyleBackColor = true; // // materialRadioButton5 // + this.materialRadioButton5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialRadioButton5.AutoSize = true; this.materialRadioButton5.Cursor = System.Windows.Forms.Cursors.Default; this.materialRadioButton5.Depth = 0; this.materialRadioButton5.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton5.Location = new System.Drawing.Point(303, 253); + this.materialRadioButton5.Location = new System.Drawing.Point(412, 244); this.materialRadioButton5.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton5.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton5.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton5.Name = "materialRadioButton5"; this.materialRadioButton5.Ripple = true; - this.materialRadioButton5.Size = new System.Drawing.Size(191, 37); + this.materialRadioButton5.Size = new System.Drawing.Size(179, 37); this.materialRadioButton5.TabIndex = 10; this.materialRadioButton5.TabStop = true; - this.materialRadioButton5.Text = "materialRadioButton5"; + this.materialRadioButton5.Text = "دکمه رادیویی متریال ۴"; this.materialRadioButton5.UseVisualStyleBackColor = true; // // materialLabel26 // + this.materialLabel26.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialLabel26.AutoSize = true; this.materialLabel26.Depth = 0; + this.materialLabel26.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel26.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel26.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel26.Location = new System.Drawing.Point(66, 14); + this.materialLabel26.Location = new System.Drawing.Point(609, 3); this.materialLabel26.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel26.Name = "materialLabel26"; - this.materialLabel26.Size = new System.Drawing.Size(392, 75); + this.materialLabel26.Size = new System.Drawing.Size(345, 75); this.materialLabel26.TabIndex = 59; - this.materialLabel26.Text = "Selection Controls"; + this.materialLabel26.Text = "کنترل‌های انتخابی"; // // materialRadioButton4 // + this.materialRadioButton4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialRadioButton4.AutoSize = true; this.materialRadioButton4.Checked = true; this.materialRadioButton4.Cursor = System.Windows.Forms.Cursors.Default; this.materialRadioButton4.Depth = 0; this.materialRadioButton4.Enabled = false; this.materialRadioButton4.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton4.Location = new System.Drawing.Point(303, 211); + this.materialRadioButton4.Location = new System.Drawing.Point(411, 207); this.materialRadioButton4.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton4.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton4.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton4.Name = "materialRadioButton4"; this.materialRadioButton4.Ripple = true; - this.materialRadioButton4.Size = new System.Drawing.Size(190, 37); + this.materialRadioButton4.Size = new System.Drawing.Size(180, 37); this.materialRadioButton4.TabIndex = 9; this.materialRadioButton4.TabStop = true; - this.materialRadioButton4.Text = "materialRadioButton4"; + this.materialRadioButton4.Text = "دکمه رادیویی متریال ۳"; this.materialRadioButton4.UseVisualStyleBackColor = true; // // materialRadioButton1 // + this.materialRadioButton1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialRadioButton1.AutoSize = true; this.materialRadioButton1.Cursor = System.Windows.Forms.Cursors.Default; this.materialRadioButton1.Depth = 0; this.materialRadioButton1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton1.Location = new System.Drawing.Point(303, 127); + this.materialRadioButton1.Location = new System.Drawing.Point(416, 133); this.materialRadioButton1.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton1.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton1.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton1.Name = "materialRadioButton1"; this.materialRadioButton1.Ripple = true; - this.materialRadioButton1.Size = new System.Drawing.Size(186, 37); + this.materialRadioButton1.Size = new System.Drawing.Size(175, 37); this.materialRadioButton1.TabIndex = 6; this.materialRadioButton1.TabStop = true; - this.materialRadioButton1.Text = "materialRadioButton1"; + this.materialRadioButton1.Text = "دکمه رادیویی متریال ۱"; + this.materialRadioButton1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.materialRadioButton1.UseVisualStyleBackColor = true; // // materialRadioButton2 // + this.materialRadioButton2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialRadioButton2.AutoSize = true; this.materialRadioButton2.Cursor = System.Windows.Forms.Cursors.Default; this.materialRadioButton2.Depth = 0; this.materialRadioButton2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton2.Location = new System.Drawing.Point(303, 169); + this.materialRadioButton2.Location = new System.Drawing.Point(413, 170); this.materialRadioButton2.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton2.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton2.Name = "materialRadioButton2"; this.materialRadioButton2.Ripple = true; - this.materialRadioButton2.Size = new System.Drawing.Size(189, 37); + this.materialRadioButton2.Size = new System.Drawing.Size(178, 37); this.materialRadioButton2.TabIndex = 7; this.materialRadioButton2.TabStop = true; - this.materialRadioButton2.Text = "materialRadioButton2"; + this.materialRadioButton2.Text = "دکمه رادیویی متریال ۲"; this.materialRadioButton2.UseVisualStyleBackColor = true; // // materialSwitch3 // + this.materialSwitch3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialSwitch3.AutoSize = true; this.materialSwitch3.Checked = true; this.materialSwitch3.CheckState = System.Windows.Forms.CheckState.Checked; this.materialSwitch3.Depth = 0; this.materialSwitch3.Enabled = false; this.materialSwitch3.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch3.Location = new System.Drawing.Point(550, 254); + this.materialSwitch3.Location = new System.Drawing.Point(79, 244); this.materialSwitch3.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch3.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch3.MouseState = MaterialSkin.MouseState.HOVER; @@ -1470,15 +1482,17 @@ private void InitializeComponent() this.materialSwitch3.Size = new System.Drawing.Size(247, 37); this.materialSwitch3.TabIndex = 15; this.materialSwitch3.Text = "سوییچ - غیرفعال و تیک‌خورده"; + this.materialSwitch3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.materialSwitch3.UseVisualStyleBackColor = true; // // materialSwitch2 // + this.materialSwitch2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialSwitch2.AutoSize = true; this.materialSwitch2.Depth = 0; this.materialSwitch2.Enabled = false; this.materialSwitch2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch2.Location = new System.Drawing.Point(634, 207); + this.materialSwitch2.Location = new System.Drawing.Point(163, 207); this.materialSwitch2.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch2.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch2.MouseState = MaterialSkin.MouseState.HOVER; @@ -1487,14 +1501,16 @@ private void InitializeComponent() this.materialSwitch2.Size = new System.Drawing.Size(163, 37); this.materialSwitch2.TabIndex = 14; this.materialSwitch2.Text = "سوییچ - غیرفعال"; + this.materialSwitch2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.materialSwitch2.UseVisualStyleBackColor = true; // // materialSwitch1 // + this.materialSwitch1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialSwitch1.AutoSize = true; this.materialSwitch1.Depth = 0; this.materialSwitch1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch1.Location = new System.Drawing.Point(650, 133); + this.materialSwitch1.Location = new System.Drawing.Point(179, 133); this.materialSwitch1.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch1.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch1.MouseState = MaterialSkin.MouseState.HOVER; @@ -1503,28 +1519,31 @@ private void InitializeComponent() this.materialSwitch1.Size = new System.Drawing.Size(147, 37); this.materialSwitch1.TabIndex = 11; this.materialSwitch1.Text = "سوییچ متریال"; + this.materialSwitch1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.materialSwitch1.UseVisualStyleBackColor = true; // // materialCheckBox6 // + this.materialCheckBox6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialCheckBox6.AutoSize = true; this.materialCheckBox6.Cursor = System.Windows.Forms.Cursors.Default; this.materialCheckBox6.Depth = 0; this.materialCheckBox6.Enabled = false; this.materialCheckBox6.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckBox6.Location = new System.Drawing.Point(76, 253); + this.materialCheckBox6.Location = new System.Drawing.Point(719, 245); this.materialCheckBox6.Margin = new System.Windows.Forms.Padding(0); this.materialCheckBox6.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckBox6.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckBox6.Name = "materialCheckBox6"; this.materialCheckBox6.Ripple = true; - this.materialCheckBox6.Size = new System.Drawing.Size(171, 37); + this.materialCheckBox6.Size = new System.Drawing.Size(169, 37); this.materialCheckBox6.TabIndex = 5; - this.materialCheckBox6.Text = "materialCheckBox6"; + this.materialCheckBox6.Text = "کادر انتخاب متریال ۴"; this.materialCheckBox6.UseVisualStyleBackColor = true; // // materialCheckBox5 // + this.materialCheckBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.materialCheckBox5.AutoSize = true; this.materialCheckBox5.Checked = true; this.materialCheckBox5.CheckState = System.Windows.Forms.CheckState.Checked; @@ -1532,15 +1551,15 @@ private void InitializeComponent() this.materialCheckBox5.Depth = 0; this.materialCheckBox5.Enabled = false; this.materialCheckBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckBox5.Location = new System.Drawing.Point(76, 211); + this.materialCheckBox5.Location = new System.Drawing.Point(718, 207); this.materialCheckBox5.Margin = new System.Windows.Forms.Padding(0); this.materialCheckBox5.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckBox5.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckBox5.Name = "materialCheckBox5"; this.materialCheckBox5.Ripple = true; - this.materialCheckBox5.Size = new System.Drawing.Size(173, 37); + this.materialCheckBox5.Size = new System.Drawing.Size(170, 37); this.materialCheckBox5.TabIndex = 4; - this.materialCheckBox5.Text = "materialCheckBox5"; + this.materialCheckBox5.Text = "کادر انتخاب متریال ۳"; this.materialCheckBox5.UseVisualStyleBackColor = true; // // tabPage3 @@ -1585,10 +1604,10 @@ private void InitializeComponent() this.materialTextBox5.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox5.Depth = 0; this.materialTextBox5.Enabled = false; - this.materialTextBox5.Font = new System.Drawing.Font("IRANSansFaNum", 12F); + this.materialTextBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); this.materialTextBox5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialTextBox5.Hint = "This is Disabled"; - this.materialTextBox5.Location = new System.Drawing.Point(276, 170); + this.materialTextBox5.Location = new System.Drawing.Point(760, 170); this.materialTextBox5.MaxLength = 50; this.materialTextBox5.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox5.Multiline = false; @@ -1603,10 +1622,10 @@ private void InitializeComponent() this.materialTextBox4.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox4.Depth = 0; this.materialTextBox4.Enabled = false; - this.materialTextBox4.Font = new System.Drawing.Font("IRANSansFaNum", 12F); + this.materialTextBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); this.materialTextBox4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialTextBox4.Hint = "This is Disabled"; - this.materialTextBox4.Location = new System.Drawing.Point(79, 170); + this.materialTextBox4.Location = new System.Drawing.Point(563, 170); this.materialTextBox4.MaxLength = 50; this.materialTextBox4.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox4.Multiline = false; @@ -1623,7 +1642,7 @@ private void InitializeComponent() this.materialTextBox3.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialTextBox3.Hint = "This field has UseTallSize = false"; - this.materialTextBox3.Location = new System.Drawing.Point(79, 338); + this.materialTextBox3.Location = new System.Drawing.Point(563, 338); this.materialTextBox3.MaxLength = 50; this.materialTextBox3.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox3.Multiline = false; @@ -1636,16 +1655,17 @@ private void InitializeComponent() // materialLabel43 // this.materialLabel43.Depth = 0; + this.materialLabel43.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel43.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel43.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel43.Location = new System.Drawing.Point(740, 283); + this.materialLabel43.Location = new System.Drawing.Point(81, 284); this.materialLabel43.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel43.Name = "materialLabel43"; this.materialLabel43.Size = new System.Drawing.Size(245, 103); this.materialLabel43.TabIndex = 66; - this.materialLabel43.Text = "Want to make a multiline label?\r\nNo problem! just disable the AutoSize Property\r\n" + - "TextAlign should work too"; - this.materialLabel43.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.materialLabel43.Text = "آیا می خواهید یک برچسب چند خطی درست کنید؟\r\nمشکلی نیست! فقط ویژگی AutoSize را غیرف" + + "عال کنید\r\n"; + this.materialLabel43.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // materialLabel42 // @@ -1655,7 +1675,7 @@ private void InitializeComponent() this.materialLabel42.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel42.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel42.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel42.Location = new System.Drawing.Point(683, 468); + this.materialLabel42.Location = new System.Drawing.Point(81, 460); this.materialLabel42.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel42.Name = "materialLabel42"; this.materialLabel42.Size = new System.Drawing.Size(265, 22); @@ -1670,7 +1690,7 @@ private void InitializeComponent() this.materialLabel41.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel41.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel41.HighEmphasis = true; - this.materialLabel41.Location = new System.Drawing.Point(683, 441); + this.materialLabel41.Location = new System.Drawing.Point(81, 433); this.materialLabel41.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel41.Name = "materialLabel41"; this.materialLabel41.Size = new System.Drawing.Size(301, 22); @@ -1686,7 +1706,7 @@ private void InitializeComponent() this.materialLabel40.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel40.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel40.HighEmphasis = true; - this.materialLabel40.Location = new System.Drawing.Point(683, 415); + this.materialLabel40.Location = new System.Drawing.Point(81, 407); this.materialLabel40.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel40.Name = "materialLabel40"; this.materialLabel40.Size = new System.Drawing.Size(215, 22); @@ -1697,27 +1717,29 @@ private void InitializeComponent() // this.materialLabel27.AutoSize = true; this.materialLabel27.Depth = 0; + this.materialLabel27.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel27.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel27.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel27.Location = new System.Drawing.Point(82, 18); + this.materialLabel27.Location = new System.Drawing.Point(582, 18); this.materialLabel27.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel27.Name = "materialLabel27"; - this.materialLabel27.Size = new System.Drawing.Size(379, 75); + this.materialLabel27.Size = new System.Drawing.Size(387, 75); this.materialLabel27.TabIndex = 62; - this.materialLabel27.Text = "Textbox && Label"; + this.materialLabel27.Text = "کادر متنی و برچسب"; // // materialLabel23 // this.materialLabel23.AutoSize = true; this.materialLabel23.Depth = 0; + this.materialLabel23.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel23.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel23.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel23.Location = new System.Drawing.Point(89, 89); + this.materialLabel23.Location = new System.Drawing.Point(808, 89); this.materialLabel23.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel23.Name = "materialLabel23"; - this.materialLabel23.Size = new System.Drawing.Size(174, 25); + this.materialLabel23.Size = new System.Drawing.Size(161, 25); this.materialLabel23.TabIndex = 61; - this.materialLabel23.Text = "This texbox has no hint!"; + this.materialLabel23.Text = "کادر متنی راهنمایی ندارد!"; // // materialTextBox2 // @@ -1727,7 +1749,7 @@ private void InitializeComponent() this.materialTextBox2.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialTextBox2.Hint = "Password"; - this.materialTextBox2.Location = new System.Drawing.Point(79, 282); + this.materialTextBox2.Location = new System.Drawing.Point(563, 282); this.materialTextBox2.MaxLength = 50; this.materialTextBox2.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox2.Multiline = false; @@ -1742,9 +1764,9 @@ private void InitializeComponent() this.materialTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; this.materialTextBox1.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox1.Depth = 0; - this.materialTextBox1.Font = new System.Drawing.Font("IRANSansFaNum", 12F); + this.materialTextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); this.materialTextBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialTextBox1.Location = new System.Drawing.Point(79, 114); + this.materialTextBox1.Location = new System.Drawing.Point(563, 114); this.materialTextBox1.MaxLength = 50; this.materialTextBox1.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox1.Multiline = false; @@ -1763,7 +1785,7 @@ private void InitializeComponent() this.materialSingleLineTextField2.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialSingleLineTextField2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialSingleLineTextField2.Hint = "Type here"; - this.materialSingleLineTextField2.Location = new System.Drawing.Point(79, 226); + this.materialSingleLineTextField2.Location = new System.Drawing.Point(563, 226); this.materialSingleLineTextField2.MaxLength = 50; this.materialSingleLineTextField2.MouseState = MaterialSkin.MouseState.OUT; this.materialSingleLineTextField2.Multiline = false; @@ -1776,182 +1798,195 @@ private void InitializeComponent() // this.materialLabel22.AutoSize = true; this.materialLabel22.Depth = 0; + this.materialLabel22.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel22.Font = new System.Drawing.Font("IRANSansFaNum", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel22.FontType = MaterialSkin.MaterialSkinManager.fontType.Overline; this.materialLabel22.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel22.Location = new System.Drawing.Point(532, 468); + this.materialLabel22.Location = new System.Drawing.Point(484, 468); this.materialLabel22.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel22.Name = "materialLabel22"; - this.materialLabel22.Size = new System.Drawing.Size(47, 15); + this.materialLabel22.Size = new System.Drawing.Size(28, 15); this.materialLabel22.TabIndex = 57; - this.materialLabel22.Text = "OVERLINE"; + this.materialLabel22.Text = "زیرخط"; // // materialLabel21 // this.materialLabel21.AutoSize = true; this.materialLabel21.Depth = 0; + this.materialLabel21.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel21.Font = new System.Drawing.Font("IRANSansFaNum", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel21.FontType = MaterialSkin.MaterialSkinManager.fontType.Caption; this.materialLabel21.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel21.Location = new System.Drawing.Point(532, 448); + this.materialLabel21.Location = new System.Drawing.Point(484, 448); this.materialLabel21.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel21.Name = "materialLabel21"; - this.materialLabel21.Size = new System.Drawing.Size(44, 19); + this.materialLabel21.Size = new System.Drawing.Size(28, 19); this.materialLabel21.TabIndex = 56; - this.materialLabel21.Text = "Caption"; + this.materialLabel21.Text = "عنوان"; // // materialLabel20 // this.materialLabel20.AutoSize = true; this.materialLabel20.Depth = 0; + this.materialLabel20.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel20.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel20.FontType = MaterialSkin.MaterialSkinManager.fontType.Button; this.materialLabel20.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel20.Location = new System.Drawing.Point(532, 428); + this.materialLabel20.Location = new System.Drawing.Point(484, 428); this.materialLabel20.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel20.Name = "materialLabel20"; - this.materialLabel20.Size = new System.Drawing.Size(55, 22); + this.materialLabel20.Size = new System.Drawing.Size(28, 22); this.materialLabel20.TabIndex = 55; - this.materialLabel20.Text = "BUTTON"; + this.materialLabel20.Text = "دکمه"; // // materialLabel19 // this.materialLabel19.AutoSize = true; this.materialLabel19.Depth = 0; + this.materialLabel19.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel19.Font = new System.Drawing.Font("IRANSansFaNum", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel19.FontType = MaterialSkin.MaterialSkinManager.fontType.Body2; this.materialLabel19.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel19.Location = new System.Drawing.Point(532, 407); + this.materialLabel19.Location = new System.Drawing.Point(478, 407); this.materialLabel19.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel19.Name = "materialLabel19"; - this.materialLabel19.Size = new System.Drawing.Size(44, 22); + this.materialLabel19.Size = new System.Drawing.Size(34, 22); this.materialLabel19.TabIndex = 54; - this.materialLabel19.Text = "Body 2"; + this.materialLabel19.Text = "متن ۲"; // // materialLabel18 // this.materialLabel18.AutoSize = true; this.materialLabel18.Depth = 0; + this.materialLabel18.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel18.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel18.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel18.Location = new System.Drawing.Point(532, 384); + this.materialLabel18.Location = new System.Drawing.Point(475, 384); this.materialLabel18.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel18.Name = "materialLabel18"; - this.materialLabel18.Size = new System.Drawing.Size(47, 25); + this.materialLabel18.Size = new System.Drawing.Size(37, 25); this.materialLabel18.TabIndex = 53; - this.materialLabel18.Text = "Body 1"; + this.materialLabel18.Text = "متن ۱"; // // materialLabel17 // this.materialLabel17.AutoSize = true; this.materialLabel17.Depth = 0; + this.materialLabel17.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel17.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel17.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel17.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel17.Location = new System.Drawing.Point(532, 365); + this.materialLabel17.Location = new System.Drawing.Point(461, 365); this.materialLabel17.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel17.Name = "materialLabel17"; - this.materialLabel17.Size = new System.Drawing.Size(59, 22); + this.materialLabel17.Size = new System.Drawing.Size(51, 22); this.materialLabel17.TabIndex = 52; - this.materialLabel17.Text = "Subtitle 2"; + this.materialLabel17.Text = "زیر تیتر ۲"; // // materialLabel1 // this.materialLabel1.AutoSize = true; this.materialLabel1.Depth = 0; + this.materialLabel1.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel1.Font = new System.Drawing.Font("IRANSansFaNum", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel1.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle1; this.materialLabel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel1.Location = new System.Drawing.Point(531, 342); + this.materialLabel1.Location = new System.Drawing.Point(454, 342); this.materialLabel1.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel1.Name = "materialLabel1"; - this.materialLabel1.Size = new System.Drawing.Size(64, 25); + this.materialLabel1.Size = new System.Drawing.Size(58, 25); this.materialLabel1.TabIndex = 51; - this.materialLabel1.Text = "Subtitle 1"; + this.materialLabel1.Text = "زیر تیتر ۱"; // // materialLabel16 // this.materialLabel16.AutoSize = true; this.materialLabel16.Depth = 0; + this.materialLabel16.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel16.Font = new System.Drawing.Font("IRANSansFaNum", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel16.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; this.materialLabel16.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel16.Location = new System.Drawing.Point(531, 314); + this.materialLabel16.Location = new System.Drawing.Point(440, 314); this.materialLabel16.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel16.Name = "materialLabel16"; - this.materialLabel16.Size = new System.Drawing.Size(91, 31); + this.materialLabel16.Size = new System.Drawing.Size(72, 31); this.materialLabel16.TabIndex = 50; - this.materialLabel16.Text = "Heading 6"; + this.materialLabel16.Text = "سر تیتر ۶"; // // materialLabel15 // this.materialLabel15.AutoSize = true; this.materialLabel15.Depth = 0; + this.materialLabel15.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel15.Font = new System.Drawing.Font("IRANSansFaNum", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel15.FontType = MaterialSkin.MaterialSkinManager.fontType.H5; this.materialLabel15.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel15.Location = new System.Drawing.Point(530, 283); + this.materialLabel15.Location = new System.Drawing.Point(421, 283); this.materialLabel15.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel15.Name = "materialLabel15"; - this.materialLabel15.Size = new System.Drawing.Size(111, 38); + this.materialLabel15.Size = new System.Drawing.Size(91, 38); this.materialLabel15.TabIndex = 49; - this.materialLabel15.Text = "Heading 5"; + this.materialLabel15.Text = "سر تیتر ۵"; // // materialLabel14 // this.materialLabel14.AutoSize = true; this.materialLabel14.Depth = 0; + this.materialLabel14.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel14.Font = new System.Drawing.Font("IRANSansFaNum", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel14.FontType = MaterialSkin.MaterialSkinManager.fontType.H4; this.materialLabel14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel14.Location = new System.Drawing.Point(528, 242); + this.materialLabel14.Location = new System.Drawing.Point(385, 242); this.materialLabel14.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel14.Name = "materialLabel14"; - this.materialLabel14.Size = new System.Drawing.Size(155, 53); + this.materialLabel14.Size = new System.Drawing.Size(127, 53); this.materialLabel14.TabIndex = 48; - this.materialLabel14.Text = "Heading 4"; + this.materialLabel14.Text = "سر تیتر ۴"; // // materialLabel13 // this.materialLabel13.AutoSize = true; this.materialLabel13.Depth = 0; + this.materialLabel13.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel13.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel13.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel13.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel13.Location = new System.Drawing.Point(525, 185); + this.materialLabel13.Location = new System.Drawing.Point(328, 185); this.materialLabel13.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel13.Name = "materialLabel13"; - this.materialLabel13.Size = new System.Drawing.Size(223, 75); + this.materialLabel13.Size = new System.Drawing.Size(184, 75); this.materialLabel13.TabIndex = 47; - this.materialLabel13.Text = "Heading 3"; + this.materialLabel13.Text = "سر تیتر ۳"; // // materialLabel12 // this.materialLabel12.AutoSize = true; this.materialLabel12.Depth = 0; + this.materialLabel12.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel12.Font = new System.Drawing.Font("IRANSansFaNum", 60F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel12.FontType = MaterialSkin.MaterialSkinManager.fontType.H2; this.materialLabel12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel12.Location = new System.Drawing.Point(522, 114); + this.materialLabel12.Location = new System.Drawing.Point(294, 114); this.materialLabel12.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel12.Name = "materialLabel12"; - this.materialLabel12.Size = new System.Drawing.Size(273, 94); + this.materialLabel12.Size = new System.Drawing.Size(218, 94); this.materialLabel12.TabIndex = 46; - this.materialLabel12.Text = "Heading 2"; + this.materialLabel12.Text = "سر تیتر ۲"; // // materialLabel11 // this.materialLabel11.AutoSize = true; this.materialLabel11.Depth = 0; + this.materialLabel11.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel11.Font = new System.Drawing.Font("IRANSansFaNum", 96F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel11.FontType = MaterialSkin.MaterialSkinManager.fontType.H1; this.materialLabel11.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel11.Location = new System.Drawing.Point(515, 18); + this.materialLabel11.Location = new System.Drawing.Point(181, 18); this.materialLabel11.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel11.Name = "materialLabel11"; - this.materialLabel11.Size = new System.Drawing.Size(413, 150); + this.materialLabel11.Size = new System.Drawing.Size(331, 150); this.materialLabel11.TabIndex = 45; - this.materialLabel11.Text = "Heading 1"; + this.materialLabel11.Text = "سر تیتر ۱"; // // tabPage4 // diff --git a/MaterialSkinExample/MainForm.cs b/MaterialSkinExample/MainForm.cs index da604f6a..d252eeca 100644 --- a/MaterialSkinExample/MainForm.cs +++ b/MaterialSkinExample/MainForm.cs @@ -29,13 +29,13 @@ public MainForm() // Add dummy data to the listview seedListView(); - materialCheckedListBox1.Items.Add("Item1", false); - materialCheckedListBox1.Items.Add("Item2", true); - materialCheckedListBox1.Items.Add("Item3", true); - materialCheckedListBox1.Items.Add("Item4", false); - materialCheckedListBox1.Items.Add("Item5", true); - materialCheckedListBox1.Items.Add("Item6", false); - materialCheckedListBox1.Items.Add("Item7", false); + materialCheckedListBox1.Items.Add("آیتم۱", false); + materialCheckedListBox1.Items.Add("آیتم۲", true); + materialCheckedListBox1.Items.Add("آیتم۳", true); + materialCheckedListBox1.Items.Add("آیتم۴", false); + materialCheckedListBox1.Items.Add("آیتم۵", true); + materialCheckedListBox1.Items.Add("آیتم۶", false); + materialCheckedListBox1.Items.Add("آیتم۷", false); materialComboBox6.SelectedIndex = 0; } @@ -195,5 +195,10 @@ private void materialLabel8_Click(object sender, EventArgs e) { } + + private void tabPage2_Click(object sender, EventArgs e) + { + + } } } \ No newline at end of file diff --git a/MaterialSkinExample/MainForm.resx b/MaterialSkinExample/MainForm.resx index cdff6354..2b8c7494 100644 --- a/MaterialSkinExample/MainForm.resx +++ b/MaterialSkinExample/MainForm.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi - EQAAAk1TRnQBSQFMAgEBCQEAASABBgEgAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + EQAAAk1TRnQBSQFMAgEBCQEAAXABBgFwAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABSAMAAQEBAAEgBgABbP8A/wD/AP8AzgADSgGKA0oBiv8AdQADSAGECP8DSAGE/wBtAANAAW8Q/wNA AW//AGUAAx4BKxj/AyABLv8AbQAI//8AeQAI//8AeQAI//8AYQADXQHSA10B0hAACP//AGEACP8QAAj/ /wBhAAj/EAAI//8AYQAI/xAAA2AB1ANeAdX/AGEACP//AHkACP//AHkACP//AG0AAx8BLBT/A38B/gMf diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index e947c3f989e985c3864306a63a269535be1c5f58..6b963196ac0852ff03b8a30ecf4758e5fd8b8dcc 100644 GIT binary patch literal 8929 zcmeHNOLN;)6qamD)>YD`fl??GNTEE2rhYUrX)>gp)M=UyZCdKIJmS`s?Q2K1EO{h3 zA>FhytoQ@K1~#yP4PEeL>|dDFEuV|3(9vuNn07x~(vRpaJ#F*R1nR3<9vbUBmK#xw~J+uQpY zxi!b-^_;7@98#>J8{E5#?(x5(Sr`T{xikeQF|Rqxu2wWSX3e6+Vqmuvl}SK7X=&v- zt>jvEy!Acmq3b5&@RkDwy=v0pW;KTkqPPPC@kVl-*kX1nf6k#r&(Gw}qKNnaPgQ9h-9HUPyqM5NWZ#c38t2>hIu5de2F{O%0Mv7I;6J@zl zKVw@JEU7FCQBh>d==#UymdS?Y#Ej$cdeK;0(CYly>n=BeT1+>wkpW8=FhtzmGI|Rv z==<%Bziav-cT~%~{`=@f-O$}NQ4~E0$h&D)gJEY=*~8Su z9w7$8ti`LuVt-OVy|bA@M|=hGrce-+*fmo22PwO|7wFK5C&-Tx%frd0lF4LtD(S_S zWIMhj{rHmfVnZ_g%AGe9Uy@#Y>F7p$QRTvzJx>#tVE}S+I6mBnTPE2T-Qs(*e4$ zs%(-v*%YyWd;@(KHqf^{41^@yH_+x9Xqwhk_EVb54$}=g5?F;=-!NZ?4f9nG!=Nzg z8)kD2bClL}XRFqDSvSkps*{+r?7E|}EPcghi3Q}F>C3R0zUX15eI(yE)8?A#IIZbG zyCk%^%I2wuod`@rt#6&r!q)k;+d4xi!$1)cwOG&M0rkz+EI_eG501=~_SsifYiK3f zD^n$C?@=-ds_Z>|EX5(~)3);nQrz1@wi%OpO8 zgFJ;kk&+i`p{Y??4de|Ao=o6+P94UFC*N+sg4*#f5i8x>CDT+gmPOUic=qZYg zcBd$I-91I;yF{@C>?JB;zp|0t4$j;kD$)NI^fI^4a#ypf#OU7(bMy-<{Qyc|i$f@H zJEwY@dU`!yL`jRCB#71gRv1D7<0)vbAgY<33Q)9kD?qC1oB{GyPX$O%-3l&sDL_o> dsQ{s;TLG}vIRgN%rvl)sOM!^RfOW)y{{V%oY*7FJ delta 1128 zcmZuxL2DC16wai(o6IC>5*yp3jTWuN8f8srtk^0&Xe*S|R#GZLK~fE}w8_Gz81#~} zx59{c@jpZaJ$Un?7e!D(1+iYmf@eL%_f3)}Ve??Wnfd1B`yTJ@=I6q{RDFf9xLjpR z2J?74hEM)wR|D8`KY{L-*S)`TkL}d!@5wKI#dBN=K!Csq5{P?QGi^?%r!yBA4}l#d z2$|Ow))t*YsaUn0Eh9{nN9QsUc_kldPs|7%gUf}TqGJ`d^IKL~@F-FI5b`Ks#%cuG zexuQlb!|rO>O=Z(I$V^`v?=*PKgkZu2G6l!nG;I`!YAZYF+VXvzu|E}0x${~BZ#72 zgcg#*w>%k!9m31tiMqY?z!xhbn3Oktc{cL=&+veEJxPqpFpkj9U#i@;oo#DV@S}9( z;{@$cb+bJx6}5w9KWKy6AuojL-*MXNaizV{(Vif7Fn_k$jS% z9ZiRCBzWNP)$K4v>3TvrtaTht5o*h8TXn ztxaoF{%yDX8@K!{Wri_6yzSnX4>r~l*}aDhv&8$L(Q^>$gTTz>rT7b(iRD#6xaM=M zq%h{Br0VmxYSGVPmSJcvDdHGr12sfP0ORPb1+(cZVB+I&E1=Q63g~)Y1vJ+!fL8Vj dps#%d5*~*BxfJv{`qzlb-SHt=Ja&c!{sTKr$~OQ2 From f0ff218f4be74053d1b3c8d40e774f6d99172ffe Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Thu, 2 Jul 2020 13:38:27 -0700 Subject: [PATCH 06/30] rtl tab --- MaterialSkin/Controls/MaterialLabel.cs | 25 ++- MaterialSkin/Controls/MaterialTabSelector.cs | 6 +- MaterialSkin/Controls/MaterialTextBox.cs | 34 ++-- MaterialSkin/NativeTextRenderer.cs | 2 +- MaterialSkinExample/MainForm.Designer.cs | 174 ++++++++++-------- MaterialSkinExample/MainForm.resx | 2 +- ...lSkinExample.csprojAssemblyReference.cache | Bin 8929 -> 9999 bytes 7 files changed, 143 insertions(+), 100 deletions(-) diff --git a/MaterialSkin/Controls/MaterialLabel.cs b/MaterialSkin/Controls/MaterialLabel.cs index 63b83060..bc6f591c 100644 --- a/MaterialSkin/Controls/MaterialLabel.cs +++ b/MaterialSkin/Controls/MaterialLabel.cs @@ -1,4 +1,7 @@ -namespace MaterialSkin.Controls +using System.Drawing.Drawing2D; +using System.Drawing.Text; + +namespace MaterialSkin.Controls { using System.ComponentModel; using System.Drawing; @@ -32,6 +35,10 @@ public override ContentAlignment TextAlign } } + [Category("Material Skin"), + DefaultValue(false)] + public bool Multiline { get; set; } + [Category("Material Skin"), DefaultValue(false)] public bool HighEmphasis { get; set; } @@ -133,11 +140,15 @@ private void updateAligment() protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + g.SmoothingMode = SmoothingMode.AntiAlias; + g.Clear(Parent.BackColor); // Draw Text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { + if (Multiline) NativeText.DrawMultilineTransparentText( Text, SkinManager.getLogFontByType(_fontType), @@ -149,6 +160,18 @@ protected override void OnPaint(PaintEventArgs e) ClientRectangle.Location, ClientRectangle.Size, Alignment); + else + NativeText.DrawTransparentText( + Text, + SkinManager.getLogFontByType(_fontType), + Enabled ? HighEmphasis ? UseAccent ? + SkinManager.ColorScheme.AccentColor : // High emphasis, accent + SkinManager.ColorScheme.PrimaryColor : // High emphasis, primary + SkinManager.TextHighEmphasisColor : // Normal + SkinManager.TextDisabledOrHintColor, // Disabled + ClientRectangle.Location, + ClientRectangle.Size, + Alignment); } } diff --git a/MaterialSkin/Controls/MaterialTabSelector.cs b/MaterialSkin/Controls/MaterialTabSelector.cs index 671b246a..451eca0a 100644 --- a/MaterialSkin/Controls/MaterialTabSelector.cs +++ b/MaterialSkin/Controls/MaterialTabSelector.cs @@ -184,10 +184,12 @@ private void UpdateTabRects() { using (var g = Graphics.FromImage(b)) { - _tabRects.Add(new Rectangle(SkinManager.FORM_PADDING, 0, TAB_HEADER_PADDING * 2 + (int)g.MeasureString(_baseTabControl.TabPages[0].Text, Font).Width, Height)); + var tabRects_X= RightToLeft == RightToLeft.Yes ? this.Width - (TAB_HEADER_PADDING * 2 + (int)g.MeasureString(_baseTabControl.TabPages[0].Text, Font).Width) - SkinManager.FORM_PADDING : SkinManager.FORM_PADDING; + _tabRects.Add(new Rectangle(tabRects_X, 0, TAB_HEADER_PADDING * 2 + (int)g.MeasureString(_baseTabControl.TabPages[0].Text, Font).Width, Height)); for (int i = 1; i < _baseTabControl.TabPages.Count; i++) { - _tabRects.Add(new Rectangle(_tabRects[i - 1].Right, 0, TAB_HEADER_PADDING * 2 + (int)g.MeasureString(_baseTabControl.TabPages[i].Text, Font).Width, Height)); + var tabRects_add_X = RightToLeft == RightToLeft.Yes ? _tabRects[i - 1].Left- (TAB_HEADER_PADDING * 2 + (int)g.MeasureString(_baseTabControl.TabPages[i].Text, Font).Width) : _tabRects[i - 1].Right; + _tabRects.Add(new Rectangle(tabRects_add_X, 0, TAB_HEADER_PADDING * 2 + (int)g.MeasureString(_baseTabControl.TabPages[i].Text, Font).Width, Height)); } } } diff --git a/MaterialSkin/Controls/MaterialTextBox.cs b/MaterialSkin/Controls/MaterialTextBox.cs index b8fd9a9b..18aa3f3e 100644 --- a/MaterialSkin/Controls/MaterialTextBox.cs +++ b/MaterialSkin/Controls/MaterialTextBox.cs @@ -104,6 +104,7 @@ protected override void OnCreateControl() base.OnCreateControl(); base.Font = new Font(SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1).FontFamily, 12f, FontStyle.Regular); base.AutoSize = false; + var FORM_PADDING = RightToLeft == RightToLeft.Yes ? 0 : SkinManager.FORM_PADDING; SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true); @@ -115,11 +116,11 @@ protected override void OnCreateControl() LINE_Y = HEIGHT - BOTTOM_PADDING; // Position the "real" text field - var rect = new Rectangle(SkinManager.FORM_PADDING, UseTallSize ? hasHint ? + var rect = new Rectangle(FORM_PADDING, UseTallSize ? hasHint ? (HINT_TEXT_SMALL_Y + HINT_TEXT_SMALL_SIZE) : // Has hint and it's tall (int)(LINE_Y / 3.5) : // No hint and tall Height / 5, // not tall - ClientSize.Width - (SkinManager.FORM_PADDING * 2), LINE_Y); + ClientSize.Width - (FORM_PADDING * 2), LINE_Y); RECT rc = new RECT(rect); SendMessageRefRect(Handle, EM_SETRECT, 0, ref rc); @@ -166,7 +167,10 @@ public override Size GetPreferredSize(Size proposedSize) protected override void OnPaint(PaintEventArgs pevent) { base.OnPaint(pevent); - + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; + var FORM_PADDING = RightToLeft == RightToLeft.Yes ? 0 : SkinManager.FORM_PADDING; + var Width = RightToLeft == RightToLeft.Yes ? this.Width - SkinManager.FORM_PADDING : this.Width; + var ClientRectangleWidth = RightToLeft == RightToLeft.Yes ? ClientRectangle.Width - SkinManager.FORM_PADDING : ClientRectangle.Width; var g = pevent.Graphics; g.Clear(Parent.BackColor); @@ -186,11 +190,11 @@ protected override void OnPaint(PaintEventArgs pevent) UseAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor : // Focused SkinManager.TextHighEmphasisColor : // Inactive SkinManager.TextDisabledOrHintColor; // Disabled - Rectangle hintRect = new Rectangle(SkinManager.FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); + Rectangle hintRect = new Rectangle(FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); int hintTextSize = 16; // bottom line base - g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, Width, 1); + g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, this.Width, 1); if (!_animationManager.IsAnimating()) { @@ -198,14 +202,14 @@ protected override void OnPaint(PaintEventArgs pevent) if (hasHint && UseTallSize && (Focused || userTextPresent)) { // hint text - hintRect = new Rectangle(SkinManager.FORM_PADDING, HINT_TEXT_SMALL_Y, Width, HINT_TEXT_SMALL_SIZE); + hintRect = new Rectangle(FORM_PADDING, HINT_TEXT_SMALL_Y, this.Width, HINT_TEXT_SMALL_SIZE); hintTextSize = 12; } // bottom line if (Focused) { - g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, 0, LINE_Y, Width, 2); + g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, 0, LINE_Y, this.Width, 2); } } else @@ -217,7 +221,7 @@ protected override void OnPaint(PaintEventArgs pevent) if (hasHint && UseTallSize) { hintRect = new Rectangle( - SkinManager.FORM_PADDING, + FORM_PADDING, userTextPresent ? (HINT_TEXT_SMALL_Y) : ClientRectangle.Y + (int)((HINT_TEXT_SMALL_Y - ClientRectangle.Y) * animationProgress), Width, userTextPresent ? (HINT_TEXT_SMALL_SIZE) : (int)(LINE_Y + (HINT_TEXT_SMALL_SIZE - LINE_Y) * animationProgress)); @@ -237,9 +241,9 @@ protected override void OnPaint(PaintEventArgs pevent) // Calc text Rect Rectangle textRect = new Rectangle( - SkinManager.FORM_PADDING, + FORM_PADDING, hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, - ClientRectangle.Width - SkinManager.FORM_PADDING * 2 + scrollPos.X, + ClientRectangleWidth - FORM_PADDING * 2 + scrollPos.X, hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); g.Clip = new Region(textRect); @@ -254,8 +258,10 @@ protected override void OnPaint(PaintEventArgs pevent) int selectX = NativeText.MeasureLogString(textBeforeSelection, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width; int selectWidth = NativeText.MeasureLogString(textSelected, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width; + var textRect_X = RightToLeft == RightToLeft.Yes ? textRect.X : textRect.X; + selectWidth = RightToLeft == RightToLeft.Yes ? selectWidth : selectWidth; textSelectRect = new Rectangle( - textRect.X + selectX, UseTallSize ? hasHint ? + textRect_X, UseTallSize ? hasHint ? textRect.Y + BOTTOM_PADDING : // tall and hint LINE_Y / 3 - BOTTOM_PADDING : // tall and no hint BOTTOM_PADDING, // not tall @@ -272,7 +278,7 @@ protected override void OnPaint(PaintEventArgs pevent) Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textRect.Location, textRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } if (Focused) @@ -289,7 +295,7 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.ColorScheme.TextColor, textSelectRect.Location, textSelectRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } @@ -310,7 +316,7 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.TextDisabledOrHintColor, // Disabled hintRect.Location, hintRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } } diff --git a/MaterialSkin/NativeTextRenderer.cs b/MaterialSkin/NativeTextRenderer.cs index 2fb41f33..7dc629e0 100644 --- a/MaterialSkin/NativeTextRenderer.cs +++ b/MaterialSkin/NativeTextRenderer.cs @@ -250,7 +250,7 @@ private void SetTextColor(Color color) [DllImport("gdi32.dll", EntryPoint = "GetTextExtentExPointW")] private static extern bool GetTextExtentExPoint(IntPtr hDc, [MarshalAs(UnmanagedType.LPWStr)]string str, int nLength, int nMaxExtent, int[] lpnFit, int[] alpDx, ref Size size); - + [DllImport("gdi32.dll", EntryPoint = "TextOutW")] private static extern bool TextOut(IntPtr hdc, int x, int y, [MarshalAs(UnmanagedType.LPWStr)] string str, int len); diff --git a/MaterialSkinExample/MainForm.Designer.cs b/MaterialSkinExample/MainForm.Designer.cs index ca91d454..e9f1e40d 100644 --- a/MaterialSkinExample/MainForm.Designer.cs +++ b/MaterialSkinExample/MainForm.Designer.cs @@ -267,11 +267,11 @@ private void InitializeComponent() this.MaterialButton3.DrawShadows = true; this.MaterialButton3.HighEmphasis = true; this.MaterialButton3.Icon = null; - this.MaterialButton3.Location = new System.Drawing.Point(801, 432); + this.MaterialButton3.Location = new System.Drawing.Point(779, 432); this.MaterialButton3.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton3.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton3.Name = "MaterialButton3"; - this.MaterialButton3.Size = new System.Drawing.Size(151, 36); + this.MaterialButton3.Size = new System.Drawing.Size(173, 36); this.MaterialButton3.TabIndex = 36; this.MaterialButton3.Text = "بازکـــــــــردن جعبه پیام"; this.MaterialButton3.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; @@ -395,11 +395,11 @@ private void InitializeComponent() this.materialButton7.DrawShadows = true; this.materialButton7.HighEmphasis = true; this.materialButton7.Icon = null; - this.materialButton7.Location = new System.Drawing.Point(686, 166); + this.materialButton7.Location = new System.Drawing.Point(666, 166); this.materialButton7.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton7.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton7.Name = "materialButton7"; - this.materialButton7.Size = new System.Drawing.Size(102, 36); + this.materialButton7.Size = new System.Drawing.Size(122, 36); this.materialButton7.TabIndex = 0; this.materialButton7.Text = "تغییـــــــر قالب"; this.materialButton7.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; @@ -434,11 +434,11 @@ private void InitializeComponent() this.MaterialButton4.DrawShadows = true; this.MaterialButton4.HighEmphasis = true; this.MaterialButton4.Icon = null; - this.MaterialButton4.Location = new System.Drawing.Point(852, 166); + this.MaterialButton4.Location = new System.Drawing.Point(834, 166); this.MaterialButton4.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton4.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton4.Name = "MaterialButton4"; - this.MaterialButton4.Size = new System.Drawing.Size(100, 36); + this.MaterialButton4.Size = new System.Drawing.Size(118, 36); this.MaterialButton4.TabIndex = 22; this.MaterialButton4.Text = "تغییـــــــر رنگ"; this.MaterialButton4.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; @@ -1604,17 +1604,17 @@ private void InitializeComponent() this.materialTextBox5.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox5.Depth = 0; this.materialTextBox5.Enabled = false; - this.materialTextBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); + this.materialTextBox5.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialTextBox5.Hint = "This is Disabled"; - this.materialTextBox5.Location = new System.Drawing.Point(760, 170); + this.materialTextBox5.Hint = "این غیرفعال است"; + this.materialTextBox5.Location = new System.Drawing.Point(760, 195); this.materialTextBox5.MaxLength = 50; this.materialTextBox5.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox5.Multiline = false; this.materialTextBox5.Name = "materialTextBox5"; this.materialTextBox5.Size = new System.Drawing.Size(209, 50); this.materialTextBox5.TabIndex = 69; - this.materialTextBox5.Text = "But with value"; + this.materialTextBox5.Text = "مقدار اینجا وارد می‌شود"; // // materialTextBox4 // @@ -1622,10 +1622,10 @@ private void InitializeComponent() this.materialTextBox4.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox4.Depth = 0; this.materialTextBox4.Enabled = false; - this.materialTextBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); + this.materialTextBox4.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialTextBox4.Hint = "This is Disabled"; - this.materialTextBox4.Location = new System.Drawing.Point(563, 170); + this.materialTextBox4.Hint = "این غیرفعال است"; + this.materialTextBox4.Location = new System.Drawing.Point(563, 195); this.materialTextBox4.MaxLength = 50; this.materialTextBox4.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox4.Multiline = false; @@ -1642,7 +1642,7 @@ private void InitializeComponent() this.materialTextBox3.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialTextBox3.Hint = "This field has UseTallSize = false"; - this.materialTextBox3.Location = new System.Drawing.Point(563, 338); + this.materialTextBox3.Location = new System.Drawing.Point(563, 363); this.materialTextBox3.MaxLength = 50; this.materialTextBox3.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox3.Multiline = false; @@ -1678,9 +1678,9 @@ private void InitializeComponent() this.materialLabel42.Location = new System.Drawing.Point(81, 460); this.materialLabel42.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel42.Name = "materialLabel42"; - this.materialLabel42.Size = new System.Drawing.Size(265, 22); + this.materialLabel42.Size = new System.Drawing.Size(322, 22); this.materialLabel42.TabIndex = 65; - this.materialLabel42.Text = "This is a label is disabled (use it for hints!)"; + this.materialLabel42.Text = "این برچسب غیرفعال است (از این برای نکات استفاده کنید!)"; // // materialLabel41 // @@ -1690,12 +1690,12 @@ private void InitializeComponent() this.materialLabel41.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel41.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel41.HighEmphasis = true; - this.materialLabel41.Location = new System.Drawing.Point(81, 433); + this.materialLabel41.Location = new System.Drawing.Point(228, 433); this.materialLabel41.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel41.Name = "materialLabel41"; - this.materialLabel41.Size = new System.Drawing.Size(301, 22); + this.materialLabel41.Size = new System.Drawing.Size(175, 22); this.materialLabel41.TabIndex = 64; - this.materialLabel41.Text = "This is a label with High Emphasis + Use Accent"; + this.materialLabel41.Text = "این برچسب دارای رنگ مد است"; this.materialLabel41.UseAccent = true; // // materialLabel40 @@ -1706,12 +1706,12 @@ private void InitializeComponent() this.materialLabel40.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel40.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel40.HighEmphasis = true; - this.materialLabel40.Location = new System.Drawing.Point(81, 407); + this.materialLabel40.Location = new System.Drawing.Point(214, 407); this.materialLabel40.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel40.Name = "materialLabel40"; - this.materialLabel40.Size = new System.Drawing.Size(215, 22); + this.materialLabel40.Size = new System.Drawing.Size(189, 22); this.materialLabel40.TabIndex = 63; - this.materialLabel40.Text = "This is a label with High Emphasis"; + this.materialLabel40.Text = "این برچسب دارای رنگ اصلی است"; // // materialLabel27 // @@ -1734,12 +1734,12 @@ private void InitializeComponent() this.materialLabel23.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel23.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel23.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel23.Location = new System.Drawing.Point(808, 89); + this.materialLabel23.Location = new System.Drawing.Point(803, 114); this.materialLabel23.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel23.Name = "materialLabel23"; - this.materialLabel23.Size = new System.Drawing.Size(161, 25); + this.materialLabel23.Size = new System.Drawing.Size(166, 25); this.materialLabel23.TabIndex = 61; - this.materialLabel23.Text = "کادر متنی راهنمایی ندارد!"; + this.materialLabel23.Text = "کادر متنی زیر راهنما ندارد!"; // // materialTextBox2 // @@ -1748,8 +1748,8 @@ private void InitializeComponent() this.materialTextBox2.Depth = 0; this.materialTextBox2.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialTextBox2.Hint = "Password"; - this.materialTextBox2.Location = new System.Drawing.Point(563, 282); + this.materialTextBox2.Hint = "گذرواژه"; + this.materialTextBox2.Location = new System.Drawing.Point(563, 307); this.materialTextBox2.MaxLength = 50; this.materialTextBox2.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox2.Multiline = false; @@ -1764,9 +1764,9 @@ private void InitializeComponent() this.materialTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; this.materialTextBox1.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialTextBox1.Depth = 0; - this.materialTextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); + this.materialTextBox1.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialTextBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialTextBox1.Location = new System.Drawing.Point(563, 114); + this.materialTextBox1.Location = new System.Drawing.Point(563, 139); this.materialTextBox1.MaxLength = 50; this.materialTextBox1.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox1.Multiline = false; @@ -1784,8 +1784,8 @@ private void InitializeComponent() this.materialSingleLineTextField2.Depth = 0; this.materialSingleLineTextField2.Font = new System.Drawing.Font("IRANSansFaNum", 12F); this.materialSingleLineTextField2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialSingleLineTextField2.Hint = "Type here"; - this.materialSingleLineTextField2.Location = new System.Drawing.Point(563, 226); + this.materialSingleLineTextField2.Hint = "اینجا تایپ کنید"; + this.materialSingleLineTextField2.Location = new System.Drawing.Point(563, 251); this.materialSingleLineTextField2.MaxLength = 50; this.materialSingleLineTextField2.MouseState = MaterialSkin.MouseState.OUT; this.materialSingleLineTextField2.Multiline = false; @@ -1946,8 +1946,8 @@ private void InitializeComponent() // materialLabel13 // this.materialLabel13.AutoSize = true; + this.materialLabel13.BackColor = System.Drawing.Color.Transparent; this.materialLabel13.Depth = 0; - this.materialLabel13.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel13.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel13.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel13.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); @@ -1961,8 +1961,8 @@ private void InitializeComponent() // materialLabel12 // this.materialLabel12.AutoSize = true; + this.materialLabel12.BackColor = System.Drawing.Color.Transparent; this.materialLabel12.Depth = 0; - this.materialLabel12.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel12.Font = new System.Drawing.Font("IRANSansFaNum", 60F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel12.FontType = MaterialSkin.MaterialSkinManager.fontType.H2; this.materialLabel12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); @@ -1972,12 +1972,13 @@ private void InitializeComponent() this.materialLabel12.Size = new System.Drawing.Size(218, 94); this.materialLabel12.TabIndex = 46; this.materialLabel12.Text = "سر تیتر ۲"; + this.materialLabel12.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // materialLabel11 // this.materialLabel11.AutoSize = true; + this.materialLabel11.BackColor = System.Drawing.Color.Transparent; this.materialLabel11.Depth = 0; - this.materialLabel11.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel11.Font = new System.Drawing.Font("IRANSansFaNum", 96F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel11.FontType = MaterialSkin.MaterialSkinManager.fontType.H1; this.materialLabel11.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); @@ -2049,6 +2050,7 @@ private void InitializeComponent() this.materialListView1.MouseState = MaterialSkin.MouseState.OUT; this.materialListView1.Name = "materialListView1"; this.materialListView1.OwnerDraw = true; + this.materialListView1.RightToLeftLayout = true; this.materialListView1.Scrollable = false; this.materialListView1.Size = new System.Drawing.Size(547, 100); this.materialListView1.TabIndex = 0; @@ -2057,22 +2059,25 @@ private void InitializeComponent() // // columnHeader1 // - this.columnHeader1.Text = "Dessert (100g serving)"; + this.columnHeader1.Text = "دسر (100 گرم وعده)"; this.columnHeader1.Width = 200; // // columnHeader2 // - this.columnHeader2.Text = "Calories"; + this.columnHeader2.Text = "کالری"; + this.columnHeader2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; this.columnHeader2.Width = 99; // // columnHeader3 // - this.columnHeader3.Text = "Fat (g)"; + this.columnHeader3.Text = "چربی (گرم)"; + this.columnHeader3.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; this.columnHeader3.Width = 94; // // columnHeader4 // - this.columnHeader4.Text = "Protein (g)"; + this.columnHeader4.Text = "پروتئین (گرم)"; + this.columnHeader4.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; this.columnHeader4.Width = 154; // // tabPage5 @@ -2098,13 +2103,13 @@ private void InitializeComponent() this.materialFlatButton2.DrawShadows = true; this.materialFlatButton2.HighEmphasis = false; this.materialFlatButton2.Icon = global::MaterialSkinExample.Properties.Resources.minus; - this.materialFlatButton2.Location = new System.Drawing.Point(87, 156); + this.materialFlatButton2.Location = new System.Drawing.Point(816, 156); this.materialFlatButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialFlatButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialFlatButton2.Name = "materialFlatButton2"; - this.materialFlatButton2.Size = new System.Drawing.Size(101, 36); + this.materialFlatButton2.Size = new System.Drawing.Size(87, 36); this.materialFlatButton2.TabIndex = 1; - this.materialFlatButton2.Text = "Remove"; + this.materialFlatButton2.Text = "کاهش"; this.materialFlatButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; this.materialFlatButton2.UseAccentColor = false; this.materialFlatButton2.UseVisualStyleBackColor = true; @@ -2117,13 +2122,13 @@ private void InitializeComponent() this.materialLabel2.Depth = 0; this.materialLabel2.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel2.Location = new System.Drawing.Point(87, 76); + this.materialLabel2.Location = new System.Drawing.Point(99, 89); this.materialLabel2.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel2.Name = "materialLabel2"; - this.materialLabel2.Size = new System.Drawing.Size(821, 63); + this.materialLabel2.Size = new System.Drawing.Size(804, 50); this.materialLabel2.TabIndex = 3; - this.materialLabel2.Text = "Here we\'re showcasing the progressbar\r\nThis control is planned be improved with a" + - "nimation and more status types\r\n"; + this.materialLabel2.Text = "در اینجا نوار پیشرفت را شاهد هستید، این کنترل با انیمیشن و انواع وضعیت بهبود پیدا" + + " کرده "; // // MaterialButton2 // @@ -2133,13 +2138,13 @@ private void InitializeComponent() this.MaterialButton2.DrawShadows = true; this.MaterialButton2.HighEmphasis = true; this.MaterialButton2.Icon = global::MaterialSkinExample.Properties.Resources.plus; - this.MaterialButton2.Location = new System.Drawing.Point(816, 156); + this.MaterialButton2.Location = new System.Drawing.Point(99, 156); this.MaterialButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton2.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton2.Name = "MaterialButton2"; - this.MaterialButton2.Size = new System.Drawing.Size(75, 36); + this.MaterialButton2.Size = new System.Drawing.Size(90, 36); this.MaterialButton2.TabIndex = 2; - this.MaterialButton2.Text = "Add"; + this.MaterialButton2.Text = "افزایش"; this.MaterialButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.MaterialButton2.UseAccentColor = false; this.MaterialButton2.UseVisualStyleBackColor = true; @@ -2150,9 +2155,10 @@ private void InitializeComponent() this.materialProgressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.materialProgressBar1.Depth = 0; - this.materialProgressBar1.Location = new System.Drawing.Point(87, 142); + this.materialProgressBar1.Location = new System.Drawing.Point(99, 142); this.materialProgressBar1.MouseState = MaterialSkin.MouseState.HOVER; this.materialProgressBar1.Name = "materialProgressBar1"; + this.materialProgressBar1.RightToLeftLayout = true; this.materialProgressBar1.Size = new System.Drawing.Size(804, 5); this.materialProgressBar1.TabIndex = 0; this.materialProgressBar1.Value = 45; @@ -2163,12 +2169,12 @@ private void InitializeComponent() this.materialLabel29.Depth = 0; this.materialLabel29.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel29.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel29.Location = new System.Drawing.Point(90, 14); + this.materialLabel29.Location = new System.Drawing.Point(665, 14); this.materialLabel29.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel29.Name = "materialLabel29"; - this.materialLabel29.Size = new System.Drawing.Size(276, 75); + this.materialLabel29.Size = new System.Drawing.Size(238, 75); this.materialLabel29.TabIndex = 64; - this.materialLabel29.Text = "Progress bar"; + this.materialLabel29.Text = "نوار پیشرفت"; // // tabPage6 // @@ -2193,7 +2199,7 @@ private void InitializeComponent() // this.materialDivider3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialDivider3.Depth = 0; - this.materialDivider3.Location = new System.Drawing.Point(107, 417); + this.materialDivider3.Location = new System.Drawing.Point(437, 414); this.materialDivider3.MouseState = MaterialSkin.MouseState.HOVER; this.materialDivider3.Name = "materialDivider3"; this.materialDivider3.Size = new System.Drawing.Size(490, 1); @@ -2204,7 +2210,7 @@ private void InitializeComponent() // this.materialDivider2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialDivider2.Depth = 0; - this.materialDivider2.Location = new System.Drawing.Point(107, 128); + this.materialDivider2.Location = new System.Drawing.Point(437, 125); this.materialDivider2.MouseState = MaterialSkin.MouseState.HOVER; this.materialDivider2.Name = "materialDivider2"; this.materialDivider2.Size = new System.Drawing.Size(1, 290); @@ -2215,7 +2221,7 @@ private void InitializeComponent() // this.materialDivider1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialDivider1.Depth = 0; - this.materialDivider1.Location = new System.Drawing.Point(597, 128); + this.materialDivider1.Location = new System.Drawing.Point(927, 125); this.materialDivider1.MouseState = MaterialSkin.MouseState.HOVER; this.materialDivider1.Name = "materialDivider1"; this.materialDivider1.Size = new System.Drawing.Size(1, 290); @@ -2228,12 +2234,12 @@ private void InitializeComponent() this.materialLabel7.Depth = 0; this.materialLabel7.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel7.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel7.Location = new System.Drawing.Point(107, 15); + this.materialLabel7.Location = new System.Drawing.Point(801, 12); this.materialLabel7.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel7.Name = "materialLabel7"; - this.materialLabel7.Size = new System.Drawing.Size(108, 75); + this.materialLabel7.Size = new System.Drawing.Size(127, 75); this.materialLabel7.TabIndex = 67; - this.materialLabel7.Text = "Tabs"; + this.materialLabel7.Text = "زبانه‌ها"; this.materialLabel7.Click += new System.EventHandler(this.materialLabel7_Click); // // materialCard1 @@ -2244,7 +2250,7 @@ private void InitializeComponent() this.materialCard1.Controls.Add(this.materialLabel38); this.materialCard1.Depth = 0; this.materialCard1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialCard1.Location = new System.Drawing.Point(639, 90); + this.materialCard1.Location = new System.Drawing.Point(70, 87); this.materialCard1.Margin = new System.Windows.Forms.Padding(7); this.materialCard1.MouseState = MaterialSkin.MouseState.HOVER; this.materialCard1.Name = "materialCard1"; @@ -2260,13 +2266,13 @@ private void InitializeComponent() this.materialButton1.DrawShadows = true; this.materialButton1.HighEmphasis = true; this.materialButton1.Icon = null; - this.materialButton1.Location = new System.Drawing.Point(230, 131); + this.materialButton1.Location = new System.Drawing.Point(17, 131); this.materialButton1.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton1.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton1.Name = "materialButton1"; - this.materialButton1.Size = new System.Drawing.Size(54, 36); + this.materialButton1.Size = new System.Drawing.Size(85, 36); this.materialButton1.TabIndex = 1; - this.materialButton1.Text = "Nice!"; + this.materialButton1.Text = "!بسیار عالی"; this.materialButton1.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; this.materialButton1.UseAccentColor = false; this.materialButton1.UseVisualStyleBackColor = true; @@ -2278,33 +2284,36 @@ private void InitializeComponent() this.materialLabel4.Font = new System.Drawing.Font("IRANSansFaNum", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel4.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; this.materialLabel4.HighEmphasis = true; - this.materialLabel4.Location = new System.Drawing.Point(17, 14); + this.materialLabel4.Location = new System.Drawing.Point(38, 14); this.materialLabel4.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel4.Name = "materialLabel4"; - this.materialLabel4.Size = new System.Drawing.Size(232, 31); + this.materialLabel4.Size = new System.Drawing.Size(246, 31); this.materialLabel4.TabIndex = 0; - this.materialLabel4.Text = "Cards are also supported!"; + this.materialLabel4.Text = "!کارت ها نیز پشتیبانی می شوند"; // // materialLabel38 // this.materialLabel38.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.materialLabel38.BackColor = System.Drawing.Color.White; this.materialLabel38.Depth = 0; + this.materialLabel38.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel38.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel38.Location = new System.Drawing.Point(17, 52); this.materialLabel38.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel38.Multiline = true; this.materialLabel38.Name = "materialLabel38"; this.materialLabel38.Size = new System.Drawing.Size(267, 73); this.materialLabel38.TabIndex = 2; - this.materialLabel38.Text = "These are simple containers, but with a very nice shadow under them"; + this.materialLabel38.Text = "کارت جایگاه ساده‌ای است و سایه‌ای بسیار زیبا در زیر آن قرار دارد"; // // materialTabControl2 // this.materialTabControl2.Controls.Add(this.tabPage8); this.materialTabControl2.Controls.Add(this.tabPage9); this.materialTabControl2.Depth = 0; - this.materialTabControl2.Location = new System.Drawing.Point(107, 128); + this.materialTabControl2.Location = new System.Drawing.Point(437, 125); this.materialTabControl2.Margin = new System.Windows.Forms.Padding(0); this.materialTabControl2.MouseState = MaterialSkin.MouseState.HOVER; this.materialTabControl2.Name = "materialTabControl2"; @@ -2322,7 +2331,7 @@ private void InitializeComponent() this.tabPage8.Padding = new System.Windows.Forms.Padding(3); this.tabPage8.Size = new System.Drawing.Size(483, 252); this.tabPage8.TabIndex = 0; - this.tabPage8.Text = "FIRST"; + this.tabPage8.Text = "اولی"; // // materialLabel45 // @@ -2331,12 +2340,12 @@ private void InitializeComponent() this.materialLabel45.Font = new System.Drawing.Font("IRANSansFaNum", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel45.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; this.materialLabel45.HighEmphasis = true; - this.materialLabel45.Location = new System.Drawing.Point(15, 14); + this.materialLabel45.Location = new System.Drawing.Point(258, 14); this.materialLabel45.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel45.Name = "materialLabel45"; - this.materialLabel45.Size = new System.Drawing.Size(176, 31); + this.materialLabel45.Size = new System.Drawing.Size(203, 31); this.materialLabel45.TabIndex = 4; - this.materialLabel45.Text = "Tabs are supported"; + this.materialLabel45.Text = "زبانه‌ها پشتیبانی می شوند"; // // materialLabel44 // @@ -2344,14 +2353,16 @@ private void InitializeComponent() | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.materialLabel44.Depth = 0; + this.materialLabel44.FlatStyle = System.Windows.Forms.FlatStyle.System; this.materialLabel44.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel44.Location = new System.Drawing.Point(15, 55); this.materialLabel44.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel44.Multiline = true; this.materialLabel44.Name = "materialLabel44"; this.materialLabel44.Size = new System.Drawing.Size(446, 179); this.materialLabel44.TabIndex = 3; - this.materialLabel44.Text = "However, in accordance with the Material Design principles, tabs should NOT be us" + - "ed together with the Drawer menu, chose one or the other :)\r\n\r\nTry \'em!"; + this.materialLabel44.Text = "اما مطابق با اصول طراحی متزیال ، زبانه‌ها نباید به همراه منوی کشویی استفاده شوند " + + "، یکی را انتخاب کنید :)\r\n\r\nسعی کنید!"; // // tabPage9 // @@ -2362,7 +2373,7 @@ private void InitializeComponent() this.tabPage9.Padding = new System.Windows.Forms.Padding(3); this.tabPage9.Size = new System.Drawing.Size(483, 252); this.tabPage9.TabIndex = 1; - this.tabPage9.Text = "Second"; + this.tabPage9.Text = "دومی"; // // materialLabel10 // @@ -2372,12 +2383,13 @@ private void InitializeComponent() this.materialLabel10.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel10.HighEmphasis = true; - this.materialLabel10.Location = new System.Drawing.Point(6, 7); + this.materialLabel10.Location = new System.Drawing.Point(70, 3); this.materialLabel10.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel10.Name = "materialLabel10"; - this.materialLabel10.Size = new System.Drawing.Size(481, 75); + this.materialLabel10.Size = new System.Drawing.Size(410, 75); this.materialLabel10.TabIndex = 1; - this.materialLabel10.Text = "Everything is possible!"; + this.materialLabel10.Text = "!همه چیز ممکن است"; + this.materialLabel10.TextAlign = System.Drawing.ContentAlignment.TopRight; this.materialLabel10.UseAccent = true; // // materialTabSelector1 @@ -2385,7 +2397,7 @@ private void InitializeComponent() this.materialTabSelector1.BaseTabControl = this.materialTabControl2; this.materialTabSelector1.Depth = 0; this.materialTabSelector1.Font = new System.Drawing.Font("IRANSansFaNum", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialTabSelector1.Location = new System.Drawing.Point(107, 90); + this.materialTabSelector1.Location = new System.Drawing.Point(437, 87); this.materialTabSelector1.Margin = new System.Windows.Forms.Padding(0); this.materialTabSelector1.MouseState = MaterialSkin.MouseState.HOVER; this.materialTabSelector1.Name = "materialTabSelector1"; @@ -2399,12 +2411,12 @@ private void InitializeComponent() this.materialLabel30.Depth = 0; this.materialLabel30.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel30.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel30.Location = new System.Drawing.Point(629, 16); + this.materialLabel30.Location = new System.Drawing.Point(234, 12); this.materialLabel30.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel30.Name = "materialLabel30"; - this.materialLabel30.Size = new System.Drawing.Size(126, 75); + this.materialLabel30.Size = new System.Drawing.Size(137, 75); this.materialLabel30.TabIndex = 65; - this.materialLabel30.Text = "Cards"; + this.materialLabel30.Text = "کارت‌ها"; // // menuIconList // diff --git a/MaterialSkinExample/MainForm.resx b/MaterialSkinExample/MainForm.resx index 2b8c7494..59065837 100644 --- a/MaterialSkinExample/MainForm.resx +++ b/MaterialSkinExample/MainForm.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi - EQAAAk1TRnQBSQFMAgEBCQEAAXABBgFwAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + EQAAAk1TRnQBSQFMAgEBCQEAAegBBgHoAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABSAMAAQEBAAEgBgABbP8A/wD/AP8AzgADSgGKA0oBiv8AdQADSAGECP8DSAGE/wBtAANAAW8Q/wNA AW//AGUAAx4BKxj/AyABLv8AbQAI//8AeQAI//8AeQAI//8AYQADXQHSA10B0hAACP//AGEACP8QAAj/ /wBhAAj/EAAI//8AYQAI/xAAA2AB1ANeAdX/AGEACP//AHkACP//AHkACP//AG0AAx8BLBT/A38B/gMf diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index 6b963196ac0852ff03b8a30ecf4758e5fd8b8dcc..6bd4b1ddf3d64d830d9745aef90f486881e5fdf6 100644 GIT binary patch delta 1294 zcmZ{j&ubGw6vy*cwq~|!Z4=@z&{jQF8bmy33bw(ff!b)36cdX!ZPQeuNmmo0=%r^b zRosJmQ3SmxLUj)nq+S#}dh)L5tr!1;_u*7IpF?_?KN`ek?+gjZ{Dla<718amFn_M zOC)e8h7r`DRb=$7)oT64=+G(1-FzfLly%plF(aMBLAc&5+l^Xv!4i3F#k68#mDqQF z>{}gMaJOQ8My`kgty$L?Iin%p_>r%5PVkaTtw9leX8I}EGa5h34ZPeKhwcgD9tm{Rkx4_`*a&8qK2S`ggSoc6CG+h3;ppy z;y+=iT`BIglODEz7}HoEDXsSYv=TJz{OCV0NNjLjKC0v!53XN5boSRnN=iBVSC_M0 zJ$gr;mU1?vE@vYK67QCnxS+7L$nI&&#_118Q+D AdjJ3c delta 1157 zcmeD8d+55spOLYAa{%LOMz;ISKeB(zZgyne&B4etxlpuwvJz9ZE>1fjhtnQNzyQS11IUK%$262x8R2Gjh_OzS zvlOK)oq^_Xy1)zr(h&1@Bb&Dii+L&t^ZX&^xdSzGL&Ly1zbKW9(*tC-Cx+SEkj>tT zY4&DLaVthHAE-W7z0C&|d70dOfqahK;^h3IoXjLHPCt;@{upL&KsI|lhS{7!n-@w6 zG5H1qHDbh92*}7#3?o+|8@UqG$cRm{LQGzfKz;B?iUOGwjbYLfWRn(SniL1r!Db}SM=1|?z`G!NOJxtIo}Y~G^?bWJ+T1L1B$*b~;G4LKZgFj35tyk~||f0Gf^= AE&u=k From ca1853916a2701b44428974dd97de871bedad824 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Thu, 2 Jul 2020 14:39:09 -0700 Subject: [PATCH 07/30] a --- MaterialSkinExample/MainForm.Designer.cs | 28 +++++++++--------- MaterialSkinExample/MainForm.resx | 2 +- ...lSkinExample.csprojAssemblyReference.cache | Bin 9999 -> 9999 bytes 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/MaterialSkinExample/MainForm.Designer.cs b/MaterialSkinExample/MainForm.Designer.cs index e9f1e40d..38ac6c28 100644 --- a/MaterialSkinExample/MainForm.Designer.cs +++ b/MaterialSkinExample/MainForm.Designer.cs @@ -267,11 +267,11 @@ private void InitializeComponent() this.MaterialButton3.DrawShadows = true; this.MaterialButton3.HighEmphasis = true; this.MaterialButton3.Icon = null; - this.MaterialButton3.Location = new System.Drawing.Point(779, 432); + this.MaterialButton3.Location = new System.Drawing.Point(801, 432); this.MaterialButton3.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton3.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton3.Name = "MaterialButton3"; - this.MaterialButton3.Size = new System.Drawing.Size(173, 36); + this.MaterialButton3.Size = new System.Drawing.Size(151, 36); this.MaterialButton3.TabIndex = 36; this.MaterialButton3.Text = "بازکـــــــــردن جعبه پیام"; this.MaterialButton3.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; @@ -395,11 +395,11 @@ private void InitializeComponent() this.materialButton7.DrawShadows = true; this.materialButton7.HighEmphasis = true; this.materialButton7.Icon = null; - this.materialButton7.Location = new System.Drawing.Point(666, 166); + this.materialButton7.Location = new System.Drawing.Point(686, 166); this.materialButton7.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton7.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton7.Name = "materialButton7"; - this.materialButton7.Size = new System.Drawing.Size(122, 36); + this.materialButton7.Size = new System.Drawing.Size(102, 36); this.materialButton7.TabIndex = 0; this.materialButton7.Text = "تغییـــــــر قالب"; this.materialButton7.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; @@ -434,11 +434,11 @@ private void InitializeComponent() this.MaterialButton4.DrawShadows = true; this.MaterialButton4.HighEmphasis = true; this.MaterialButton4.Icon = null; - this.MaterialButton4.Location = new System.Drawing.Point(834, 166); + this.MaterialButton4.Location = new System.Drawing.Point(852, 166); this.MaterialButton4.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton4.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton4.Name = "MaterialButton4"; - this.MaterialButton4.Size = new System.Drawing.Size(118, 36); + this.MaterialButton4.Size = new System.Drawing.Size(100, 36); this.MaterialButton4.TabIndex = 22; this.MaterialButton4.Text = "تغییـــــــر رنگ"; this.MaterialButton4.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; @@ -1565,6 +1565,11 @@ private void InitializeComponent() // tabPage3 // this.tabPage3.BackColor = System.Drawing.Color.White; + this.tabPage3.Controls.Add(this.materialLabel11); + this.tabPage3.Controls.Add(this.materialLabel12); + this.tabPage3.Controls.Add(this.materialLabel13); + this.tabPage3.Controls.Add(this.materialLabel14); + this.tabPage3.Controls.Add(this.materialLabel15); this.tabPage3.Controls.Add(this.materialTextBox5); this.tabPage3.Controls.Add(this.materialTextBox4); this.tabPage3.Controls.Add(this.materialTextBox3); @@ -1585,11 +1590,6 @@ private void InitializeComponent() this.tabPage3.Controls.Add(this.materialLabel17); this.tabPage3.Controls.Add(this.materialLabel1); this.tabPage3.Controls.Add(this.materialLabel16); - this.tabPage3.Controls.Add(this.materialLabel15); - this.tabPage3.Controls.Add(this.materialLabel14); - this.tabPage3.Controls.Add(this.materialLabel13); - this.tabPage3.Controls.Add(this.materialLabel12); - this.tabPage3.Controls.Add(this.materialLabel11); this.tabPage3.ImageKey = "round_build_white_24dp.png"; this.tabPage3.Location = new System.Drawing.Point(4, 31); this.tabPage3.Name = "tabPage3"; @@ -2107,7 +2107,7 @@ private void InitializeComponent() this.materialFlatButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialFlatButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialFlatButton2.Name = "materialFlatButton2"; - this.materialFlatButton2.Size = new System.Drawing.Size(87, 36); + this.materialFlatButton2.Size = new System.Drawing.Size(81, 36); this.materialFlatButton2.TabIndex = 1; this.materialFlatButton2.Text = "کاهش"; this.materialFlatButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; @@ -2138,11 +2138,11 @@ private void InitializeComponent() this.MaterialButton2.DrawShadows = true; this.MaterialButton2.HighEmphasis = true; this.MaterialButton2.Icon = global::MaterialSkinExample.Properties.Resources.plus; - this.MaterialButton2.Location = new System.Drawing.Point(99, 156); + this.MaterialButton2.Location = new System.Drawing.Point(101, 156); this.MaterialButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton2.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton2.Name = "MaterialButton2"; - this.MaterialButton2.Size = new System.Drawing.Size(90, 36); + this.MaterialButton2.Size = new System.Drawing.Size(88, 36); this.MaterialButton2.TabIndex = 2; this.MaterialButton2.Text = "افزایش"; this.MaterialButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; diff --git a/MaterialSkinExample/MainForm.resx b/MaterialSkinExample/MainForm.resx index 59065837..04f5d9f4 100644 --- a/MaterialSkinExample/MainForm.resx +++ b/MaterialSkinExample/MainForm.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi - EQAAAk1TRnQBSQFMAgEBCQEAAegBBgHoAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + EQAAAk1TRnQBSQFMAgEBCQEAAfABBgHwAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABSAMAAQEBAAEgBgABbP8A/wD/AP8AzgADSgGKA0oBiv8AdQADSAGECP8DSAGE/wBtAANAAW8Q/wNA AW//AGUAAx4BKxj/AyABLv8AbQAI//8AeQAI//8AeQAI//8AYQADXQHSA10B0hAACP//AGEACP8QAAj/ /wBhAAj/EAAI//8AYQAI/xAAA2AB1ANeAdX/AGEACP//AHkACP//AHkACP//AG0AAx8BLBT/A38B/gMf diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index 6bd4b1ddf3d64d830d9745aef90f486881e5fdf6..099369ddcb92d78ff1032a8d67a70e1c5184c883 100644 GIT binary patch delta 25 hcmeD8>-XE>&&arba{%LOM%D{zE8m^i?7)0p832W*3Y`D| delta 25 hcmeD8>-XE>&&arTa{%LOMplvO@q3SNc3?iQ3;=$33Df`p From 6bebfb3a409010e50e4d6528232c4cfd2fe483e7 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Thu, 2 Jul 2020 14:42:21 -0700 Subject: [PATCH 08/30] a --- MaterialSkinExample/MainForm.Designer.cs | 182 +++++++++--------- MaterialSkinExample/MainForm.resx | 14 +- ...lSkinExample.csprojAssemblyReference.cache | Bin 9999 -> 20758 bytes 3 files changed, 98 insertions(+), 98 deletions(-) diff --git a/MaterialSkinExample/MainForm.Designer.cs b/MaterialSkinExample/MainForm.Designer.cs index 38ac6c28..4eaeb706 100644 --- a/MaterialSkinExample/MainForm.Designer.cs +++ b/MaterialSkinExample/MainForm.Designer.cs @@ -100,6 +100,11 @@ private void InitializeComponent() this.materialCheckBox6 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialCheckBox5 = new MaterialSkin.Controls.MaterialCheckbox(); this.tabPage3 = new System.Windows.Forms.TabPage(); + this.materialLabel11 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel12 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel13 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel14 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel15 = new MaterialSkin.Controls.MaterialLabel(); this.materialTextBox5 = new MaterialSkin.Controls.MaterialTextBox(); this.materialTextBox4 = new MaterialSkin.Controls.MaterialTextBox(); this.materialTextBox3 = new MaterialSkin.Controls.MaterialTextBox(); @@ -120,11 +125,6 @@ private void InitializeComponent() this.materialLabel17 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel1 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel16 = new MaterialSkin.Controls.MaterialLabel(); - this.materialLabel15 = new MaterialSkin.Controls.MaterialLabel(); - this.materialLabel14 = new MaterialSkin.Controls.MaterialLabel(); - this.materialLabel13 = new MaterialSkin.Controls.MaterialLabel(); - this.materialLabel12 = new MaterialSkin.Controls.MaterialLabel(); - this.materialLabel11 = new MaterialSkin.Controls.MaterialLabel(); this.tabPage4 = new System.Windows.Forms.TabPage(); this.materialLabel39 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel28 = new MaterialSkin.Controls.MaterialLabel(); @@ -267,11 +267,11 @@ private void InitializeComponent() this.MaterialButton3.DrawShadows = true; this.MaterialButton3.HighEmphasis = true; this.MaterialButton3.Icon = null; - this.MaterialButton3.Location = new System.Drawing.Point(801, 432); + this.MaterialButton3.Location = new System.Drawing.Point(779, 432); this.MaterialButton3.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton3.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton3.Name = "MaterialButton3"; - this.MaterialButton3.Size = new System.Drawing.Size(151, 36); + this.MaterialButton3.Size = new System.Drawing.Size(173, 36); this.MaterialButton3.TabIndex = 36; this.MaterialButton3.Text = "بازکـــــــــردن جعبه پیام"; this.MaterialButton3.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; @@ -395,11 +395,11 @@ private void InitializeComponent() this.materialButton7.DrawShadows = true; this.materialButton7.HighEmphasis = true; this.materialButton7.Icon = null; - this.materialButton7.Location = new System.Drawing.Point(686, 166); + this.materialButton7.Location = new System.Drawing.Point(666, 166); this.materialButton7.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton7.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton7.Name = "materialButton7"; - this.materialButton7.Size = new System.Drawing.Size(102, 36); + this.materialButton7.Size = new System.Drawing.Size(122, 36); this.materialButton7.TabIndex = 0; this.materialButton7.Text = "تغییـــــــر قالب"; this.materialButton7.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; @@ -434,11 +434,11 @@ private void InitializeComponent() this.MaterialButton4.DrawShadows = true; this.MaterialButton4.HighEmphasis = true; this.MaterialButton4.Icon = null; - this.MaterialButton4.Location = new System.Drawing.Point(852, 166); + this.MaterialButton4.Location = new System.Drawing.Point(834, 166); this.MaterialButton4.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton4.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton4.Name = "MaterialButton4"; - this.MaterialButton4.Size = new System.Drawing.Size(100, 36); + this.MaterialButton4.Size = new System.Drawing.Size(118, 36); this.MaterialButton4.TabIndex = 22; this.MaterialButton4.Text = "تغییـــــــر رنگ"; this.MaterialButton4.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; @@ -1598,6 +1598,82 @@ private void InitializeComponent() this.tabPage3.TabIndex = 2; this.tabPage3.Text = "Textbox & Label"; // + // materialLabel11 + // + this.materialLabel11.AutoSize = true; + this.materialLabel11.BackColor = System.Drawing.Color.Transparent; + this.materialLabel11.Depth = 0; + this.materialLabel11.Font = new System.Drawing.Font("IRANSansFaNum", 96F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel11.FontType = MaterialSkin.MaterialSkinManager.fontType.H1; + this.materialLabel11.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel11.Location = new System.Drawing.Point(181, 18); + this.materialLabel11.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel11.Name = "materialLabel11"; + this.materialLabel11.Size = new System.Drawing.Size(331, 150); + this.materialLabel11.TabIndex = 45; + this.materialLabel11.Text = "سر تیتر ۱"; + // + // materialLabel12 + // + this.materialLabel12.AutoSize = true; + this.materialLabel12.BackColor = System.Drawing.Color.Transparent; + this.materialLabel12.Depth = 0; + this.materialLabel12.Font = new System.Drawing.Font("IRANSansFaNum", 60F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel12.FontType = MaterialSkin.MaterialSkinManager.fontType.H2; + this.materialLabel12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel12.Location = new System.Drawing.Point(294, 114); + this.materialLabel12.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel12.Name = "materialLabel12"; + this.materialLabel12.Size = new System.Drawing.Size(218, 94); + this.materialLabel12.TabIndex = 46; + this.materialLabel12.Text = "سر تیتر ۲"; + this.materialLabel12.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // materialLabel13 + // + this.materialLabel13.AutoSize = true; + this.materialLabel13.BackColor = System.Drawing.Color.Transparent; + this.materialLabel13.Depth = 0; + this.materialLabel13.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel13.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel13.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel13.Location = new System.Drawing.Point(328, 185); + this.materialLabel13.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel13.Name = "materialLabel13"; + this.materialLabel13.Size = new System.Drawing.Size(184, 75); + this.materialLabel13.TabIndex = 47; + this.materialLabel13.Text = "سر تیتر ۳"; + // + // materialLabel14 + // + this.materialLabel14.AutoSize = true; + this.materialLabel14.Depth = 0; + this.materialLabel14.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.materialLabel14.Font = new System.Drawing.Font("IRANSansFaNum", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel14.FontType = MaterialSkin.MaterialSkinManager.fontType.H4; + this.materialLabel14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel14.Location = new System.Drawing.Point(385, 242); + this.materialLabel14.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel14.Name = "materialLabel14"; + this.materialLabel14.Size = new System.Drawing.Size(127, 53); + this.materialLabel14.TabIndex = 48; + this.materialLabel14.Text = "سر تیتر ۴"; + // + // materialLabel15 + // + this.materialLabel15.AutoSize = true; + this.materialLabel15.Depth = 0; + this.materialLabel15.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.materialLabel15.Font = new System.Drawing.Font("IRANSansFaNum", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel15.FontType = MaterialSkin.MaterialSkinManager.fontType.H5; + this.materialLabel15.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel15.Location = new System.Drawing.Point(421, 283); + this.materialLabel15.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel15.Name = "materialLabel15"; + this.materialLabel15.Size = new System.Drawing.Size(91, 38); + this.materialLabel15.TabIndex = 49; + this.materialLabel15.Text = "سر تیتر ۵"; + // // materialTextBox5 // this.materialTextBox5.BorderStyle = System.Windows.Forms.BorderStyle.None; @@ -1913,82 +1989,6 @@ private void InitializeComponent() this.materialLabel16.TabIndex = 50; this.materialLabel16.Text = "سر تیتر ۶"; // - // materialLabel15 - // - this.materialLabel15.AutoSize = true; - this.materialLabel15.Depth = 0; - this.materialLabel15.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.materialLabel15.Font = new System.Drawing.Font("IRANSansFaNum", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialLabel15.FontType = MaterialSkin.MaterialSkinManager.fontType.H5; - this.materialLabel15.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel15.Location = new System.Drawing.Point(421, 283); - this.materialLabel15.MouseState = MaterialSkin.MouseState.HOVER; - this.materialLabel15.Name = "materialLabel15"; - this.materialLabel15.Size = new System.Drawing.Size(91, 38); - this.materialLabel15.TabIndex = 49; - this.materialLabel15.Text = "سر تیتر ۵"; - // - // materialLabel14 - // - this.materialLabel14.AutoSize = true; - this.materialLabel14.Depth = 0; - this.materialLabel14.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.materialLabel14.Font = new System.Drawing.Font("IRANSansFaNum", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialLabel14.FontType = MaterialSkin.MaterialSkinManager.fontType.H4; - this.materialLabel14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel14.Location = new System.Drawing.Point(385, 242); - this.materialLabel14.MouseState = MaterialSkin.MouseState.HOVER; - this.materialLabel14.Name = "materialLabel14"; - this.materialLabel14.Size = new System.Drawing.Size(127, 53); - this.materialLabel14.TabIndex = 48; - this.materialLabel14.Text = "سر تیتر ۴"; - // - // materialLabel13 - // - this.materialLabel13.AutoSize = true; - this.materialLabel13.BackColor = System.Drawing.Color.Transparent; - this.materialLabel13.Depth = 0; - this.materialLabel13.Font = new System.Drawing.Font("IRANSansFaNum", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialLabel13.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel13.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel13.Location = new System.Drawing.Point(328, 185); - this.materialLabel13.MouseState = MaterialSkin.MouseState.HOVER; - this.materialLabel13.Name = "materialLabel13"; - this.materialLabel13.Size = new System.Drawing.Size(184, 75); - this.materialLabel13.TabIndex = 47; - this.materialLabel13.Text = "سر تیتر ۳"; - // - // materialLabel12 - // - this.materialLabel12.AutoSize = true; - this.materialLabel12.BackColor = System.Drawing.Color.Transparent; - this.materialLabel12.Depth = 0; - this.materialLabel12.Font = new System.Drawing.Font("IRANSansFaNum", 60F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialLabel12.FontType = MaterialSkin.MaterialSkinManager.fontType.H2; - this.materialLabel12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel12.Location = new System.Drawing.Point(294, 114); - this.materialLabel12.MouseState = MaterialSkin.MouseState.HOVER; - this.materialLabel12.Name = "materialLabel12"; - this.materialLabel12.Size = new System.Drawing.Size(218, 94); - this.materialLabel12.TabIndex = 46; - this.materialLabel12.Text = "سر تیتر ۲"; - this.materialLabel12.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // materialLabel11 - // - this.materialLabel11.AutoSize = true; - this.materialLabel11.BackColor = System.Drawing.Color.Transparent; - this.materialLabel11.Depth = 0; - this.materialLabel11.Font = new System.Drawing.Font("IRANSansFaNum", 96F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialLabel11.FontType = MaterialSkin.MaterialSkinManager.fontType.H1; - this.materialLabel11.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel11.Location = new System.Drawing.Point(181, 18); - this.materialLabel11.MouseState = MaterialSkin.MouseState.HOVER; - this.materialLabel11.Name = "materialLabel11"; - this.materialLabel11.Size = new System.Drawing.Size(331, 150); - this.materialLabel11.TabIndex = 45; - this.materialLabel11.Text = "سر تیتر ۱"; - // // tabPage4 // this.tabPage4.BackColor = System.Drawing.Color.White; @@ -2044,7 +2044,7 @@ private void InitializeComponent() this.materialListView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialListView1.FullRowSelect = true; this.materialListView1.HideSelection = false; - this.materialListView1.Location = new System.Drawing.Point(90, 149); + this.materialListView1.Location = new System.Drawing.Point(93, 149); this.materialListView1.MinimumSize = new System.Drawing.Size(200, 100); this.materialListView1.MouseLocation = new System.Drawing.Point(-1, -1); this.materialListView1.MouseState = MaterialSkin.MouseState.OUT; @@ -2107,7 +2107,7 @@ private void InitializeComponent() this.materialFlatButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialFlatButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialFlatButton2.Name = "materialFlatButton2"; - this.materialFlatButton2.Size = new System.Drawing.Size(81, 36); + this.materialFlatButton2.Size = new System.Drawing.Size(87, 36); this.materialFlatButton2.TabIndex = 1; this.materialFlatButton2.Text = "کاهش"; this.materialFlatButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; @@ -2138,11 +2138,11 @@ private void InitializeComponent() this.MaterialButton2.DrawShadows = true; this.MaterialButton2.HighEmphasis = true; this.MaterialButton2.Icon = global::MaterialSkinExample.Properties.Resources.plus; - this.MaterialButton2.Location = new System.Drawing.Point(101, 156); + this.MaterialButton2.Location = new System.Drawing.Point(99, 156); this.MaterialButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton2.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton2.Name = "MaterialButton2"; - this.MaterialButton2.Size = new System.Drawing.Size(88, 36); + this.MaterialButton2.Size = new System.Drawing.Size(90, 36); this.MaterialButton2.TabIndex = 2; this.MaterialButton2.Text = "افزایش"; this.MaterialButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; diff --git a/MaterialSkinExample/MainForm.resx b/MaterialSkinExample/MainForm.resx index 04f5d9f4..2780a3fc 100644 --- a/MaterialSkinExample/MainForm.resx +++ b/MaterialSkinExample/MainForm.resx @@ -117,6 +117,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + در اینجا لیستی از انواع مختلفی که دکمه‌های Material که می‌توان استفاده کرد وجود دارد. سایه‌های دکمه موجود فقط در زمان اجرا کشیده می شوند. +روی آنها کلیک کنید و انیمیشن های زیبای آن را ببینید. آهان راستی، دکمه ها از تم و رنگ پیروی می کنند ، سعی کنید آن ها را نیز تغییر دهید. +به طور معمول دکمه ها باید AutoSize = true باشند ، اما به خاطر وسواس فکری من در هم‌ترازی، مقدارش false شده است. +اگر در هنگام طراحی هر یک از دکمه ها عجیب به نظر رسید ، رنگ پس زمینه برگه را از شفاف به سفید تغییر دهید. + 219, 17 @@ -125,7 +131,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi - EQAAAk1TRnQBSQFMAgEBCQEAAfABBgHwAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + EQAAAk1TRnQBSQFMAgEBCQEAAfgBBgH4AQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABSAMAAQEBAAEgBgABbP8A/wD/AP8AzgADSgGKA0oBiv8AdQADSAGECP8DSAGE/wBtAANAAW8Q/wNA AW//AGUAAx4BKxj/AyABLv8AbQAI//8AeQAI//8AeQAI//8AYQADXQHSA10B0hAACP//AGEACP8QAAj/ /wBhAAj/EAAI//8AYQAI/xAAA2AB1ANeAdX/AGEACP//AHkACP//AHkACP//AG0AAx8BLBT/A38B/gMf @@ -200,12 +206,6 @@ AeABAAEHAf4BAAF/AfgB4AH/AfgBAAEfAeABAAEHAf8BAAL/AeEB/wH4AQABHwHgAQABBwT/AeMB/wH4 AQABHwf/Aecc/ws= - - - در اینجا لیستی از انواع مختلفی که دکمه‌های Material که می‌توان استفاده کرد وجود دارد. سایه‌های دکمه موجود فقط در زمان اجرا کشیده می شوند. -روی آنها کلیک کنید و انیمیشن های زیبای آن را ببینید. آهان راستی، دکمه ها از تم و رنگ پیروی می کنند ، سعی کنید آن ها را نیز تغییر دهید. -به طور معمول دکمه ها باید AutoSize = true باشند ، اما به خاطر وسواس فکری من در هم‌ترازی، مقدارش false شده است. -اگر در هنگام طراحی هر یک از دکمه ها عجیب به نظر رسید ، رنگ پس زمینه برگه را از شفاف به سفید تغییر دهید. 17, 17 diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index 099369ddcb92d78ff1032a8d67a70e1c5184c883..443274e81b1117ba190d274303f6f14150527cbd 100644 GIT binary patch literal 20758 zcmeHP4U8OB9pBm8+12o{(kdzrZYEl z$hF(V#(By8X6Ehx{b%O?`@J{sy?JvnB^HaFLgJQbQ5>*;tC2UWR<&5qZfY2%LUyNS zO*+Qw5Oyf+G=kiQLrZ!_#Che06oNWAD zo{V>t!AZ*J@+7w#l|psK$_`h}vSr^_J5IS1r`%K_|Fb03RsMZu4_fN&w9gRq!j3-&$O zQ~B$)u8w>SfTwa^ODWnFlNxO+R|^UJO~9vZpMq1SS+4MDlw7H z&h?y|LX9hAn;M=SfoeA&tm_rFF{ArfuN6Y<)2j}TzW#EW)g>d|3ltXtlJDa&G~JV3 z*|V~DT}8GJr2?%b9yEz#lcisHIpjVyq*4gd`TM0&yLRi7cU;&_n12bh5HBrC5{fGuTht zg`eSi6c;NAs{oy>lT0aAxU=!whvH&2VGW>@RhKEndTIM*tvZ8e$82Esgjy7 zpiiK0lA6|MYnoxInw6`YDZ|RKxz4a;tuX*6!YG#;c84r&>Se7~(+g<6Qixx zMNytsTnDE+l^@kBctGdv&Sg%of4p~ebRn(jimtiVt?fPU+eclou~m|Tz(w8;MMexE zOKb)(G2Y7EfW)`a$3L?e(?{w6yTIe)v2@}voIM9;XBT>(Po5!pGhmFJhW_sE?!o?U zyARdv_My6EAFA8#|8#qA*?)jORJYxS@@2CRl}X-$Qw(~Gp01GBV=Qz1yBW(=8l@84 zh+6@vE`S~5Gi+^dLvgW%u$3@E*aqml0>G5uBXUk{;aDO$zE%4~)x^fYxFI=ikJ1D> zhX)Myn^-iBWSe520k#Kue73L!QIgw%VanNod?psLm7_d~l2lLPFmk?z9kOpzwhK1H z4rN3A-LiA)3%vi}oyge@XRRXVcKAy15qdV{>_Ks{mv9GRlrRS9bgBx0Ir_Hg!;OBpeR z3}HCTU@OTv<|XIh5OO#Uh{$OzIqXJsG|3rhl-cF9GNO!JVL!mJ!z3Ac$ji`!Aq;Vl z7BSRXhCYdyIt=CXd;>#{*^DreD=-`ECdtqPUWV=uVTc3Yh@sXpbO15+bP8s0C=R;B zIF;u??^C`sC?G)TeV(tnMbJR=Bkq}}yMHCU!T4D|(rWd)>9-i5j zj5vay#8H5gWYcz+m!>;IXyV*kL{n>Nx(6}!G;R0dP~7M6f~}MsTrq3a!zR}Nv$Pf=X%wQ|Ysd&jLhmgZp z01-K@CFk>qsi%2+7>D8*z)6xC!%NLn2sL~$6H(JzYQBJ&I&;p=RT~*`9GT(~haGGs zK?N^C`4EEm(kvpVwFG?;G4(ZUk0L`n25^!jXWUE9{t$BbGBYBlwd8yWF?Gj1kK;gm z*&1~^I5beor^TSI8t z0Q-oh*3$G0VtToI?(_lAmEOKbu4N*$C5!pVsp89mKS=*~ks) zwNiDqtXJw8@jUXycL7e491VCm+8Dyo0PG`hO=SRQCcRVMW4{!g>>G2z3AdgiP@kz)4bGonCn@4$AA# zFjx6eQ6#TOUQ%9vfg0TI|6g$+{swT8lvTS|R+*rz{tk0>6cEWOl9iOzKcI$ry8r*g zPvTzyCrOd1UXdk&BKtSYRelB;i7XPC6xrKQgTMQK3OU05_7*!#Qd_6qmR}OvId9{@ z`I1BMt}>`17WYJdXUP1>}U9P6bT)6-{faf8>5OCQ-qykSO!={d|F-z$MCi31aZKF{I69vx7m)kC zay5CVS1w|EP(re=TnyC-ho4qIF%_|9=k|9UQ;d4%~Xi!Az(Fj#+{Z z*i-di0lTfC4%j;lI$$rv?|@yBPzUUJ1Rd~E<9ER4PN)MuUIGpjYRe9%!m!wT?f(J2 C3_PCz literal 9999 zcmeHN&65*V5T8jh$-L~svWh55;i8C^EcswJF1yOdnq>iDS0D?h1i~bF$qt#!#F@$B za)GN?t+Mo@7d@y4Kgue+=s`WGCog_ntg=dvmj8nGZzc&dJ6U9b15`~{rDx{ly`FyW z{kmUwCxR#l!oNhgf(9eR&d;e8)3A)1oqE2lYSq+&Vl}K(-Z1&-$Z2j`s-f@A=2F>I zCY2c-$+tDTZSuW3Z`-D#jgA~|mo>F=lrJwB4X*DkXU1x|+C(jzt>!Yym?Gh2+xoww zux#19S+EtGqZg~G8h4(eTimZm3r*t{n^dq;hZSqlR>~TO)+|aa26n@)aq5sfW+>HJ zrD7XqqBEZXQa5ijTZ+j|8FCBiWgeqOD}Gwh+T0R^s31uL@}`a+FPc?VSG3-kzfbJh z{|VHH5gW#h1cuke(6q`p%yOWl)^%Fkykc=d6gOZXW)x2lTgXopPg%6+#p%MS!mjy= zOs-fk+Gd3pPx6*w73XNJOjXee4ORC)l&N8cm)mt;bE>LoahW9Vo0%$>Ze7L(OwCz% zMmH=;Ov2sH|J~W0v)x_AplH*m#^}?CD0-~QTUOk{u3M66FL5(c)1{hDn-r_*N2>8! z^SEi$u%vNOh>9YUM_0bCut`8J1Mduv~D1_E;WB}Vb&y_E*WMc z4x9)gRsk#bmhtpAzi;V?ybq1{gKZ=he}I@zCZic#fdf^ee2ms^Tz zN{Usm&4g+dum?$uY_+FJ2veKQwqv)l$(u^6#jAoCNx*c4XjF_~Nh4xp#iGlyDCc@k zK(DFwwyD4mbhldNR`+)Ku&bS6s`g^@xtkr;*JTwOuQk!l~@r*HkD4N^HXWZ zzodKqCGGl`wBsAn-YNSZ$iJi=|Ke+ge@Vt4rB~#=L$9A4yXoNAeKQA#-qth{lT5&} zob`ogjI9aS*gG}?whintu*bo+6B~xLf?_bx6?lWwj+f??i-t)Tl^k@uiZk<*p#vA8%*2cMvu`5x-L$0nS@&7GPP6H2avnK zvgt3x-u7INCk}C)j?#(~R}{E?A$#`hS`LfRk(IsgY~Xb69B}1&qaAd&!W%tFP3$RR zAVAUaM&hpoNO+{!RciT#Zs1WIH?WiX%y!+t%v9P927Jcsf4GsskCL!EWbkYk$x7ht zyB(uX(QuXq%YbFUb`u-Mc?uG7gu?Jwn(q+&Iw&H-xuc7-=$$KF1ZjlWy=sk-2&NNS zBYE)KNMpR#I7aI!H?4|cYHB&j#_5seh;_-e#2-7Bh*t3jk0mCPP6)V%+9e!QA+WUi zoeACUbvHjrXz0czGp2G$)$2(%MUCuPVqJ3K^_>@9-v;5ekGe|;fI@hM@N%Pw{e*_N z8we%Y0eWE5#Jc3d>T55oz6!!>hPq1#sY6(WuySE_kkGKP6JMWE^{R2nO3fN((@L^g z`idPQ)+HBYUwT1yEeNs~sJpbCSO~HZWG={#5*h}2Nu0@(>=?DMIbvOMvGutZTb~87 zb)32nA$bBtL}XBXLw;l>_hvkS%38P3E%z$cd8MUPsKQ10j~po4_Nk(F2V(hUWTGH; z!o3O-@~zN1L+f;{^CY3clMxjFm4yyeaB)rZW3Op`6g15<)KfwZ9|9``mJ6(x2n~UZ z=w)hTuMq2!3$G8n@OnQ8uXEI0LUkyFR|qc`Ugrr7y^N?t59|W5F1fIJ&kL(}gRrVl zcM0{z5LO|qTv$~J4Xb2CoW5f8lXj0>kiFvt+1o*osnlOWJv#(h2r?IB7YPmijHp2^ z48Ngv$;H;2UTnP)#Fjzbhfu_p=@Yqjxp;c>_#dx}sAwZIiqXeQA_~{YjzFyCUWFl) zDIEcy?k`;#{y8}%qGs7w07{cV0SCGQdK#cQ)mH$DP(cAGHu$H2%0piPC@=&CAfxmP zm|IN%vdDk{3E9zFax45U_fUoY+oV>xd6L_TStmySaGIrmVbGr>=xcEZ!L(m1MAm($ zg#fyz)vNRX8bY|_-xa V`wB4n2@nBO?2ag6S)99p{{Y!ix6S|n From df1214c8cd2778e4835f446ea66c77cb9f45f72e Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Thu, 2 Jul 2020 14:57:36 -0700 Subject: [PATCH 09/30] test --- MaterialSkinExample/MainForm.resx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MaterialSkinExample/MainForm.resx b/MaterialSkinExample/MainForm.resx index 2780a3fc..60ee4651 100644 --- a/MaterialSkinExample/MainForm.resx +++ b/MaterialSkinExample/MainForm.resx @@ -117,12 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - در اینجا لیستی از انواع مختلفی که دکمه‌های Material که می‌توان استفاده کرد وجود دارد. سایه‌های دکمه موجود فقط در زمان اجرا کشیده می شوند. -روی آنها کلیک کنید و انیمیشن های زیبای آن را ببینید. آهان راستی، دکمه ها از تم و رنگ پیروی می کنند ، سعی کنید آن ها را نیز تغییر دهید. -به طور معمول دکمه ها باید AutoSize = true باشند ، اما به خاطر وسواس فکری من در هم‌ترازی، مقدارش false شده است. -اگر در هنگام طراحی هر یک از دکمه ها عجیب به نظر رسید ، رنگ پس زمینه برگه را از شفاف به سفید تغییر دهید. - 219, 17 @@ -206,6 +200,12 @@ AeABAAEHAf4BAAF/AfgB4AH/AfgBAAEfAeABAAEHAf8BAAL/AeEB/wH4AQABHwHgAQABBwT/AeMB/wH4 AQABHwf/Aecc/ws= + + + در اینجا لیستی از انواع مختلفی که دکمه‌های Material که می‌توان استفاده کرد وجود دارد. سایه‌های دکمه موجود فقط در زمان اجرا کشیده می شوند. +روی آنها کلیک کنید و انیمیشن های زیبای آن را ببینید. آهان راستی، دکمه ها از تم و رنگ پیروی می کنند ، سعی کنید آن ها را نیز تغییر دهید. +به طور معمول دکمه ها باید AutoSize = true باشند ، اما به خاطر وسواس فکری من در هم‌ترازی، مقدارش false شده است. +اگر در هنگام طراحی هر یک از دکمه ها عجیب به نظر رسید ، رنگ پس زمینه برگه را از شفاف به سفید تغییر دهید. 17, 17 From 6756e40b55f832014aff55bdee5b5fea54fd3605 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Mon, 17 Aug 2020 01:54:52 +0430 Subject: [PATCH 10/30] MaterialDrawer --- MaterialSkin/Animations/AnimationManager.cs | 2 +- MaterialSkin/Controls/MaterialDrawer.cs | 18 +++++++++++------- MaterialSkin/Controls/MaterialForm.cs | 17 ++++++++++------- ...lSkinExample.csprojAssemblyReference.cache | Bin 20758 -> 9999 bytes 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/MaterialSkin/Animations/AnimationManager.cs b/MaterialSkin/Animations/AnimationManager.cs index 0ef3b032..589f83e2 100644 --- a/MaterialSkin/Animations/AnimationManager.cs +++ b/MaterialSkin/Animations/AnimationManager.cs @@ -191,7 +191,7 @@ public bool IsAnimating() /// The data public void StartNewAnimation(AnimationDirection animationDirection, object[] data = null) { - StartNewAnimation(animationDirection, new Point(0, 0), data); + StartNewAnimation(animationDirection, new Point(100, 100), data); } /// diff --git a/MaterialSkin/Controls/MaterialDrawer.cs b/MaterialSkin/Controls/MaterialDrawer.cs index 8e9a98f9..dc33a180 100644 --- a/MaterialSkin/Controls/MaterialDrawer.cs +++ b/MaterialSkin/Controls/MaterialDrawer.cs @@ -307,14 +307,13 @@ public MaterialDrawer() { SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); Height = 120; - Width = 250; + Width = 200; IndicatorWidth = 0; _isOpen = true; ShowIconsWhenHidden = false; AutoHide = false; HighlightWithAccent = true; BackgroundWithAccent = false; - _showHideAnimManager = new AnimationManager { AnimationType = AnimationType.EaseInOut, @@ -374,13 +373,14 @@ private void showHideAnimation() var showHideAnimProgress = _showHideAnimManager.GetProgress(); if (_showHideAnimManager.IsAnimating()) { + var rtlDir= RightToLeft== RightToLeft.Yes?-1:1; if (ShowIconsWhenHidden) { - Location = new Point((int)((-Width + MinWidth) * showHideAnimProgress), Location.Y); + Location = new Point((int)((-Width + MinWidth) * showHideAnimProgress) * rtlDir, Location.Y); } else { - Location = new Point((int)(-Width * showHideAnimProgress), Location.Y); + Location = new Point((int)(-Width * showHideAnimProgress ) * rtlDir, Location.Y); } } else @@ -391,13 +391,14 @@ private void showHideAnimation() } else { + var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; if (ShowIconsWhenHidden) { - Location = new Point((int)(-Width + MinWidth), Location.Y); + Location = new Point((-Width + MinWidth) * rtlDir, Location.Y); } else { - Location = new Point(-Width, Location.Y); + Location = new Point(-Width * rtlDir, Location.Y); } } } @@ -504,7 +505,10 @@ protected override void OnPaint(PaintEventArgs e) { using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) { - g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); + if (RightToLeft== RightToLeft.Yes) + g.DrawLine(dividerPen, base.Width-1, 0, base.Width - 1, Height); + else + g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); } } diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index 01645f49..d45a5d20 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -182,7 +182,6 @@ public MaterialForm() DrawerIndicatorWidth = 0; DrawerHighlightWithAccent = true; DrawerBackgroundWithAccent = false; - FormBorderStyle = FormBorderStyle.None; Sizable = true; DoubleBuffered = true; @@ -235,6 +234,8 @@ public bool DrawerShowIconsWhenHidden [Category("Drawer")] public int DrawerIndicatorWidth { get; set; } + + private bool _drawerIsOpen; [Category("Drawer")] @@ -343,10 +344,10 @@ protected void AddDrawerOverlayForm() { drawerOverlay.Opacity = (float)(_drawerShowHideAnimManager.GetProgress() * 0.55f); }; - + drawerControl.MinWidth = 62; int H = Size.Height - _statusBarBounds.Height - _actionBarBounds.Height; int Y = Location.Y + _statusBarBounds.Height + _actionBarBounds.Height; - + int X = RightToLeft == RightToLeft.Yes ? Location.X + (Width - DrawerWidth) : Location.X; // Drawer Form definitions drawerForm.BackColor = Color.LimeGreen; drawerForm.TransparencyKey = Color.LimeGreen; @@ -358,11 +359,10 @@ protected void AddDrawerOverlayForm() drawerForm.FormBorderStyle = FormBorderStyle.None; drawerForm.Visible = true; drawerForm.Size = new Size(DrawerWidth, H); - drawerForm.Location = new Point(Location.X, Y); + drawerForm.Location = new Point(X, Y); drawerForm.ShowInTaskbar = false; drawerForm.Owner = drawerOverlay; drawerForm.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; - // Add drawer to overlay form drawerForm.Controls.Add(drawerControl); drawerControl.Location = new Point(0, 0); @@ -370,6 +370,7 @@ protected void AddDrawerOverlayForm() drawerControl.Anchor = (AnchorStyles.Top | AnchorStyles.Bottom); drawerControl.BaseTabControl = DrawerTabControl; drawerControl.ShowIconsWhenHidden = true; + drawerControl.RightToLeft = RightToLeft; // Init Options drawerControl.IsOpen = DrawerIsOpen; drawerControl.ShowIconsWhenHidden = DrawerShowIconsWhenHidden; @@ -420,9 +421,11 @@ protected void AddDrawerOverlayForm() Move += (sender, e) => { - Point pos = new Point(Location.X, Location.Y + _statusBarBounds.Height + _actionBarBounds.Height); + int locationY = Location.Y + _statusBarBounds.Height + _actionBarBounds.Height; + int locationX = RightToLeft == RightToLeft.Yes ? Location.X+ (Width - DrawerWidth) : Location.X; + Point pos = new Point(locationX, locationY); drawerForm.Location = pos; - drawerOverlay.Location = pos; + drawerOverlay.Location = new Point(Location.X, locationY); }; // Close when click outside menu diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index 443274e81b1117ba190d274303f6f14150527cbd..39f375ba9f9ed21f6a706f20d8b63b99f400594b 100644 GIT binary patch literal 9999 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 C3_PCz From 30b0da0f730fb8bd4bcb2b219a4beefdcc5321ff Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Mon, 17 Aug 2020 03:27:02 +0430 Subject: [PATCH 11/30] icon --- MaterialSkin/Controls/MaterialDrawer.cs | 19 ++- MaterialSkin/Controls/MaterialForm.cs | 1 + MaterialSkinExample/MainForm.Designer.cs | 14 +- MaterialSkinExample/MainForm.resx | 150 +++++++++--------- ...lSkinExample.csprojAssemblyReference.cache | Bin 9999 -> 9999 bytes 5 files changed, 94 insertions(+), 90 deletions(-) diff --git a/MaterialSkin/Controls/MaterialDrawer.cs b/MaterialSkin/Controls/MaterialDrawer.cs index dc33a180..b3e65744 100644 --- a/MaterialSkin/Controls/MaterialDrawer.cs +++ b/MaterialSkin/Controls/MaterialDrawer.cs @@ -373,14 +373,14 @@ private void showHideAnimation() var showHideAnimProgress = _showHideAnimManager.GetProgress(); if (_showHideAnimManager.IsAnimating()) { - var rtlDir= RightToLeft== RightToLeft.Yes?-1:1; + var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; if (ShowIconsWhenHidden) { Location = new Point((int)((-Width + MinWidth) * showHideAnimProgress) * rtlDir, Location.Y); } else { - Location = new Point((int)(-Width * showHideAnimProgress ) * rtlDir, Location.Y); + Location = new Point((int)(-Width * showHideAnimProgress) * rtlDir, Location.Y); } } else @@ -474,19 +474,22 @@ protected override void OnPaint(PaintEventArgs e) IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2); Rectangle textRect = _drawerItemRects[currentTabIndex]; - textRect.X += _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); + var textRectX = RightToLeft == RightToLeft.Yes ? SkinManager.FORM_PADDING : _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); + textRect.X = textRectX; textRect.Width -= SkinManager.FORM_PADDING << 2; - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + using (NativeTextRenderer nativeText = new NativeTextRenderer(g)) { - NativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + var direction = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle : NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; + nativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, direction); } // Icons if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) { + var rtlWidth = RightToLeft == RightToLeft.Yes ? Width : 0; Rectangle iconRect = new Rectangle( - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1), + _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1), _drawerItemRects[currentTabIndex].Y + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Height >> 1), iconsSize[tabPage.ImageKey].Width, iconsSize[tabPage.ImageKey].Height); @@ -505,8 +508,8 @@ protected override void OnPaint(PaintEventArgs e) { using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) { - if (RightToLeft== RightToLeft.Yes) - g.DrawLine(dividerPen, base.Width-1, 0, base.Width - 1, Height); + if (RightToLeft == RightToLeft.Yes) + g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); else g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); } diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index d45a5d20..522e2965 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -183,6 +183,7 @@ public MaterialForm() DrawerHighlightWithAccent = true; DrawerBackgroundWithAccent = false; FormBorderStyle = FormBorderStyle.None; + drawerControl.RightToLeft = RightToLeft; Sizable = true; DoubleBuffered = true; SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true); diff --git a/MaterialSkinExample/MainForm.Designer.cs b/MaterialSkinExample/MainForm.Designer.cs index 4eaeb706..cca2c437 100644 --- a/MaterialSkinExample/MainForm.Designer.cs +++ b/MaterialSkinExample/MainForm.Designer.cs @@ -257,7 +257,7 @@ private void InitializeComponent() this.tabPage1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.tabPage1.Size = new System.Drawing.Size(1015, 520); this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "Home"; + this.tabPage1.Text = "خانه"; // // MaterialButton3 // @@ -480,7 +480,7 @@ private void InitializeComponent() this.tabPage7.Padding = new System.Windows.Forms.Padding(3); this.tabPage7.Size = new System.Drawing.Size(1015, 520); this.tabPage7.TabIndex = 6; - this.tabPage7.Text = "Buttons Galore"; + this.tabPage7.Text = "دکمه‌های گالور"; // // materialButton23 // @@ -965,7 +965,7 @@ private void InitializeComponent() this.tabPage2.Padding = new System.Windows.Forms.Padding(3); this.tabPage2.Size = new System.Drawing.Size(1015, 520); this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "Selection Controls"; + this.tabPage2.Text = "کنترل‌های انتخاب"; this.tabPage2.Click += new System.EventHandler(this.tabPage2_Click); // // materialComboBox6 @@ -1596,7 +1596,7 @@ private void InitializeComponent() this.tabPage3.Padding = new System.Windows.Forms.Padding(3); this.tabPage3.Size = new System.Drawing.Size(1015, 520); this.tabPage3.TabIndex = 2; - this.tabPage3.Text = "Textbox & Label"; + this.tabPage3.Text = "جعبه‌متن و برچسب"; // // materialLabel11 // @@ -2001,7 +2001,7 @@ private void InitializeComponent() this.tabPage4.Padding = new System.Windows.Forms.Padding(3); this.tabPage4.Size = new System.Drawing.Size(1015, 520); this.tabPage4.TabIndex = 3; - this.tabPage4.Text = "Table Example"; + this.tabPage4.Text = "مثال جدول"; // // materialLabel39 // @@ -2094,7 +2094,7 @@ private void InitializeComponent() this.tabPage5.Padding = new System.Windows.Forms.Padding(3); this.tabPage5.Size = new System.Drawing.Size(1015, 520); this.tabPage5.TabIndex = 4; - this.tabPage5.Text = "Progress Bar"; + this.tabPage5.Text = "نوار پیشرفت"; // // materialFlatButton2 // @@ -2193,7 +2193,7 @@ private void InitializeComponent() this.tabPage6.Name = "tabPage6"; this.tabPage6.Size = new System.Drawing.Size(1015, 520); this.tabPage6.TabIndex = 5; - this.tabPage6.Text = "Containers"; + this.tabPage6.Text = "نگهدارنده‌ها"; // // materialDivider3 // diff --git a/MaterialSkinExample/MainForm.resx b/MaterialSkinExample/MainForm.resx index 60ee4651..81f88994 100644 --- a/MaterialSkinExample/MainForm.resx +++ b/MaterialSkinExample/MainForm.resx @@ -124,81 +124,81 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi - EQAAAk1TRnQBSQFMAgEBCQEAAfgBBgH4AQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg - AwABSAMAAQEBAAEgBgABbP8A/wD/AP8AzgADSgGKA0oBiv8AdQADSAGECP8DSAGE/wBtAANAAW8Q/wNA - AW//AGUAAx4BKxj/AyABLv8AbQAI//8AeQAI//8AeQAI//8AYQADXQHSA10B0hAACP//AGEACP8QAAj/ - /wBhAAj/EAAI//8AYQAI/xAAA2AB1ANeAdX/AGEACP//AHkACP//AHkACP//AG0AAx8BLBT/A38B/gMf - ASz/AGUAA0ABbxD/Az0BaP8AbQADSAGECP8DRwGB/wB1AANKAYoDSgGK/wD/AP8A/wD/AP8A/wCnAAMD - AQQDIQEwAwcBCjgAA10B0gNdAdL/ADEAAy0BRQNhAeYE/wNZAfUDOgFhNAAI//8ALQADKwFCA2oB+Qz/ - A6gB/QMQARUkAAMlATcDVgG2A10B7Qj/A10B7QNYAbsDOwFkAwYBCIAAAxQBHANcAd9I/wNeAd0DEwEa - QAADKwFCA1wB+BT/Ax8BLBwAAxQBGwNUAawg/wNfAeMDLQFFfAADFgEeAysB/Ej/A00B+gMUARw8AAMr - AUIDXAH4FP8DYQHiAwMBBBgAAx8BLANkAecE/wNkAewDRAF5AywBRAMRARcDEAEWAy0BRQNEAXkDXQHt - BP8DKwH8AzUBVXwAA0wBkkj/A0oBizwAAysBQgNcAfgU/wNfAfMDJgE5GAADGwEmA10B7QT/A1QBrwMO - ARMYAAMOARMDVQGyBP8DXAH4Ax0BKXgAAw0BEQNhAe4c/wgAHP8DXAHqAwoBDTgAAysBQgNcAfgU/wNf - AfMDJAE1HAADXAHMBP8DUwGlKAADUwGlBP8DXAHNfAADPQFpHP8IABz/AzsBYzgAAysBQgNcAfgU/wNk - AfEDJAE1HAADLgFIBP8DZAHnAwYBCAgAAxIBGQNVAbUDXQHtA10B7QNVAbIDEgEZCAADBgEIA18B6AT/ - Ay4BR3sAAQEDXgHVOP8DXAHPAwABATQAAygBPANcAfgU/wNhAe4DIQEwIAADUAGeBP8DRAF7CAADEAEW - A2EB5hD/A2EB5gMQARUIAANEAXoE/wNQAZ4QAANeAdADNQFVBAADNQFVA14B0AgAAzUBVQNeAdAQAANe - AdADNQFVCAADXgHQAzUBVSAAAykBPjj/AyUBNyAAAyYBOQNKAY0DXAHJA10B8ANhAeEDTgGYA1kB9RT/ - A2EB7gMeASskAANdAdcE/wMgAS4IAANRAaAY/wNSAaEIAAMfAS0E/wNgAdYQAAT/A0cBgAQAA0cBgAT/ - CAADRwGABP8QAAT/A0cBgAgABP8DRwGAJAADVAGsFP8DIAEvAyABLxT/A1QBph8AAQEDRgF+LP8DYAHr - Ax4BKyAAA10B0gz/AwoBDQgAA2UB5Rj/A2UB5QgAAwoBDQz/A10B0ggABP8DWgHAA0cBgANaAcAE/wgA - A0cBgAT/EAAE/wNHAYAIABD/A0kBhxgAAxYBHgNcAfgQ/wgAEP8DXAH4AxIBGRwAA0cBgiz/A18B6AMc - ASckAANgAdQM/wMJAQwIAANgAesY/wNgAesIAAMJAQwM/wNeAdUIABT/CAADRwGABP8QAAT/A0cBgAgA - BP8DWgHAA0cBgANaAcADagH5HAADSAGDEP8IABD/A0YBfhwAAykBPiz/A18B6AMYASIwAANeAdgE/wMf - ASwIAANRAaAY/wNSAaEIAAMeASsE/wNdAdcQAAT/A0cBgAQAA0cBgAT/BAADNQFWA1oBwAT/A0UBfQMS - ARkDEgEZA0UBfQT/A1oBwAM1AVYEAAT/A1oBwANHAYADWgHAA18B+xwAAwcBCgNhAeYM/wMgAS8DIAEu - DP8DYQHhAwUBBxwAA1ABnSz/A1IBqTQAA1ABngT/A0QBeggAAxABFQNhAeYQ/wNkAecDDQERCAADRAF5 - BP8DUAGeEAADXgHQAzUBVwQAAzUBVwNeAdAEAANeAdAI/wMrAfwDMwFTAzMBUwMrAfwI/wNeAdAEAANg - AdQM/wNJAYcgAAM3AVog/wM1AVUgAANfAeMM/wNVAbIDVgG2GP8DYQHmNAADLQFGBP8DZAHnAwYBCAgA - AxIBGANWAbMDZAHsA2QB7ANWAbMDEgEYCAADBwEJA2QB5wT/Ay0BRYwAA1wByRj/A1gBwSQAA2EB7gj/ - A0YBfwgAA0gBgxT/A2IB7zcAAQEDXAHNBP8DUwGlKAADUwGlBP8DXAHNAwABAYwAAyEBMAN/Af4Q/wN/ - Af4DHQEqJAADXwHbBP8DQAFwEAADUwGlEP8DXAHfOAADHQEpA2IB9gT/A1QBrwMNARIYAAMNARIDVAGv - BP8DXQHtAxsBJpQAA1EBnBD/A04BmCgAA0wBkgM9AWkUAANUAaYQ/wNOAZk8AAM0AVQDKwH8BP8DZAHs - A0MBeAMsAUQDDwEUAw8BFAMsAUQDQwF4A2QB7AT/A2QB5wMeASuYAAMQARUDZwHyCP8DZwHyAw0BESgA - AwcBChQAA0cBgBD/A6gB/QMiATJAAAMsAUQDXwHjIP8DVAGsAxMBGqAAA0IBcwj/A0ABcEAAA0wBjxT/ - A0QBeUgAAwYBCAM8AWYDWAG7A2QB7Aj/A2QB7ANXAbcDJgE4qAADBAEFA2AB1ANdAdMDAgEDPAADTgGW - EP8DTQH6A0ABcFwACP/8AAMNARIDRAF5A1YBtgNaAcADVwG4A0YBfgMdASpgAANgAdQDXgHV/wD/AP8A - /wD/AP8AXgADMQFNAzIBUZgAAzEBTwNdAdc4/wNdAdcDMQFPmAADWQH1BP8DPwFsPAADXQHKAzgBXAME - AQUgAAMEAQUDNwFbA1wBzyAAA2EB4kD/A2EB4hQAAwUBBwM+AWsDXgHdPP8DWAG8AzIBUTQADP8DQgF0 - OAAI/wNfAegDRwGAAxABFhAAAxEBFwNGAX8DYgHpCP8gAEj/EAADFAEbA14B1Uz/A0gBhBgAAxQBGwM+ - AWoDCwEPDAAI/wNqAfkE/wNCAXQ0ABD/A00B+gNSAaQDIwE0AyQBNgNSAaMDTQH6EP8gAEj/DAADAQEC - A1kBx1T/AzABSxQAA0MBdwT/A1wB0QMOARMIAAj/Ay8BSgMrAfwE/wNFAXwwADj/IAAQ/wMgAS8DIAEv - CP8DIAEvAyABLwj/AyABLwMgAS8Q/wwAAzoBYiT/EAAk/wNZAcIUAAMHAQoDWwHIBP8DYQHaAxABFgQA - CP8EAAM+AWsI/wMfAS0sADj/IAAQ/wgACP8IAAj/CAAQ/wwAA1sByCT/EAAk/wNlAfQYAAMJAQwDXgHO - BP8DYAHeAxMBGgj/AxABFgNdAdcE/wNcAd8DCgENLAA4/yAAEP8IAAj/CAAI/wgAEP8MAANlAfQk/xAA - JP8DYgHpHAADCwEPA14BzgT/A1wB3wj/A14B3QT/A14B3QMUARswADj/IAAQ/wgACP8IAAj/AyABLwMg - AS4Q/wwAA00B+iT/EAAk/wNUAa8gAAMLAQ8DXQHSEP8DXgHYAxEBFzQAOP8gABD/CAAI/wgAIP8MAANc - Ac8Y/wNDAXggAANFAX0Y/wMmATgkAAMNARIDXQHXCP8DYAHUAw8BFDgAOP8gABD/CAAI/wgAIP8MAANC - AXYc/wNAAXAYAANAAXAY/wNKAYkoAAMNARIDXQHXCP8DXgHYAw8BFDgAOP8gABD/AyABLwMgAS4I/wgA - IP8MAAMIAQsDXQHXHP8DPQFpEAADPQFpEP8DZAHxA1QBrwMtAUYoAAMLAQ8DXQHSEP8DXgHYAxEBFzQA - OP8gACD/CAAg/xAAAxABFgNeAdAc/wM9AWkIAAM9AWkU/wMkATYsAAMLAQ8DXgHOBP8DXAHfCP8DXwHj - BP8DXgHdAxQBGzAAOP8gACD/CAAg/xQAAwEBAgM4AV4DXQHKAysB/BT/A0EBcgNBAXIU/wNeAd0sAAMJ - AQwDXgHOBP8DYAHeAxMBGgj/AxIBGQNdAdcE/wNcAd8DCgENLAA4/yAAIP8DIAEvAyABLiD/IAADLAFE - A38B/iz/AzsBZCgAAwcBCgNbAcgE/wNeAdUDEAEWBAAI/wQAAz4Bawj/Ax8BLCwAOP8gAEj/JAADQgF1 - KP8DUgGhLAADRAF5BP8DXAHRAwwBEAgACP8DMAFMAysB/AT/A0IBdDAAOP8gAEj/KAADQAFwHP8DTQH6 - A0IBdDAAAxMBGgM+AWoDCwEPDAAI/wNcAfgE/wNCAXQ0ADj/IAADYQHkQP8DXwHjLAADHQEqA04BmANd - AdIDZQH0BP8DYAHrA0kBiAMVAR1MAAz/A0IBdDgAA2EB5DD/A18B4yAAAzEBTwNgAdY4/wNgAdYDMQFP - mAADbQH3BP8DPwFsPAADMQFPA2AB1ij/A2AB1gMxAU//AAEAAzEBTQMzAVL/AP8A/wCPAAFCAU0BPgcA - AT4DAAEoAwABYAMAAUgDAAEBAQABAQUAAWABAxYAA/8BAAP/CQAD/wkAA/8JAAH/AfwB/wkAAf8B+AF/ - CQAB/wHwAT8JAAH/AeABHwkAAf8B/AH/CQAB/wH8Af8JAAH/AfwB/wkAAf8BPAH/CQAB/wE8Af8JAAH/ - ATwB/wkAAf8BPAH/CQAB/wE/Af8JAAH/AT8B/wkAAf8BPwH/CQAB+AEHAf8JAAH8AQ8B/wkAAf4BHwH/ - CQAB/wE/Af8JAAP/CQAD/wkAA/8JAA7/AccB/wHnCf8BgwH/AecJ/wEBAf8BAAF/A/8BgAEAAQEB/wH+ - AQEB/AEAAT8D/wGAAQABAQH/AfwBAQH4AQABHwP/AcABAAEDAf8B+AEDAfABfgEPA/8BwAEYAQMB/wHw - AQcB8QH/AY8D/wHgARgBBwH/AeABDwHhAYEBhwP/AeABAAEHAf8BwAEfAeMBAAHHAZMBPAHPAfABAAEP - AfABAAE/AeMBAAHHAZMBPAHPAfgBAAEfAcABAAF/AYMBAAHBAYMBPAHBAfgBGAEfAcABAAH/AYMBAAHB - AYMBPAHBAfwBGAE/AYABAQH/AeMBAAHHAZIBAAFBAfwBAAE/AYABAwH/AeMBAAHHAZIBAAFBAf4BAAF/ - AYABAwH/AeEBgQGHBP8BAAH/AYYBAwH/AeEB/wGHBP8BAAH/AY8BAwH/AfABfgEPBP8BgQH/AZ8BAwH/ - AfgBAAEfBP8BgQH/Ab4BAwH/AfwBAAE/BP8BwwH/AfwBBwH/Af4BAAX/AcMB/wH4AQ8C/wHnB/8B8AEf - Av8B5zL/AecE/wHgAQABBwT/AeMB/wH4Af8BHwHgAQABBwHAAQABAwH/AeEB/wH4ATwBHwHgAQABBwGA - AQABAQH4AeAB/wH4AQABHwHgAQABBwMAAfgBYAF/AfgBAAEfAeABAAEHAQABPAEAAfgBJAE/AfgBAAEf - AeEBmQGHAQABPAEAAfwBAAE/AfgBAAEfAeEBmQGHAQABPAEAAf4BAAF/AfgBAAEfAeEBmAEHAQABPAEA - Af8BAAH/AfgBAAEfAeEBmAEHAQAB/wEAAf8BgQH/AfgBAAEfAeEBmAEHAQABfgEBAf8BgQH/AfgBAAEf - AeABGAEHAQABPAEDAf8BAAH/AfgBAAEfAeABGAEHAYABGAEPAf4BAAF/AfgBAAEfAeABGAEHAcABAAEf - AfwBAAE/AfgBAAEfAeABAAEHAfgBAAEfAfgBJAE/AfgBAAEfAeABAAEHAfwBAAE/AfgBYAF/AfgBAAEf - AeABAAEHAf4BAAF/AfgB4AH/AfgBAAEfAeABAAEHAf8BAAL/AeEB/wH4AQABHwHgAQABBwT/AeMB/wH4 - AQABHwf/Aecc/ws= + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAg + EQAAAk1TRnQBSQFMAgEBCQIAAQcBAAEHARgBAAEYAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABYAMA + AUgDAAEBAQABIAYAAWz/AP8A/wD/AM4AA0oBigNKAYr/AHUAA0gBhAj/A0gBhP8AbQADQAFvEP8DQAFv + /wBlAAMeASsY/wMgAS7/AG0ACP//AHkACP//AHkACP//AGEAA10B0gNdAdIQAAj//wBhAAj/EAAI//8A + YQAI/xAACP//AGEACP8QAANgAdQDXgHV/wBhAAj//wB5AAj//wB5AAj//wBtAAMfASwU/wN/Af4DHwEs + /wBlAANAAW8Q/wM9AWj/AG0AA0gBhAj/A0cBgf8AdQADSgGKA0oBiv8A/wD/AP8A/wD/AP8ApwADAwEE + AyEBMAMHAQo4AANdAdIDXQHS/wAxAAMtAUUDYQHmBP8DWQH1AzoBYTQACP//AC0AAysBQgNqAfkM/wOo + Af0DEAEVJAADJQE3A1YBtgNdAe0I/wNdAe0DWAG7AzsBZAMGAQiAAAMUARwDXAHfSP8DXgHdAxMBGkAA + AysBQgNcAfgU/wMfASwcAAMUARsDVAGsIP8DXwHjAy0BRXwAAxYBHgMrAfxI/wNNAfoDFAEcPAADKwFC + A1wB+BT/A2EB4gMDAQQYAAMfASwDZAHnBP8DZAHsA0QBeQMsAUQDEQEXAxABFgMtAUUDRAF5A10B7QT/ + AysB/AM1AVV8AANMAZJI/wNKAYs8AAMrAUIDXAH4FP8DXwHzAyYBORgAAxsBJgNdAe0E/wNUAa8DDgET + GAADDgETA1UBsgT/A1wB+AMdASl4AAMNAREDYQHuHP8IABz/A1wB6gMKAQ04AAMrAUIDXAH4FP8DXwHz + AyQBNRwAA1wBzAT/A1MBpSgAA1MBpQT/A1wBzXwAAz0BaRz/CAAc/wM7AWM4AAMrAUIDXAH4FP8DZAHx + AyQBNRwAAy4BSAT/A2QB5wMGAQgIAAMSARkDVQG1A10B7QNdAe0DVQGyAxIBGQgAAwYBCANfAegE/wMu + AUd7AAEBA14B1Tj/A1wBzwMAAQE0AAMoATwDXAH4FP8DYQHuAyEBMCAAA1ABngT/A0QBewgAAxABFgNh + AeYQ/wNhAeYDEAEVCAADRAF6BP8DUAGeEAADXgHQAzUBVQQAAzUBVQNeAdAIAAM1AVUDXgHQEAADXgHQ + AzUBVQgAA14B0AM1AVUgAAMpAT44/wMlATcgAAMmATkDSgGNA1wByQNdAfADYQHhA04BmANZAfUU/wNh + Ae4DHgErJAADXQHXBP8DIAEuCAADUQGgGP8DUgGhCAADHwEtBP8DYAHWEAAE/wNHAYAEAANHAYAE/wgA + A0cBgAT/EAAE/wNHAYAIAAT/A0cBgCQAA1QBrBT/AyABLwMgAS8U/wNUAaYfAAEBA0YBfiz/A2AB6wMe + ASsgAANdAdIM/wMKAQ0IAANlAeUY/wNlAeUIAAMKAQ0M/wNdAdIIAAT/A1oBwANHAYADWgHABP8IAANH + AYAE/xAABP8DRwGACAAQ/wNJAYcYAAMWAR4DXAH4EP8IABD/A1wB+AMSARkcAANHAYIs/wNfAegDHAEn + JAADYAHUDP8DCQEMCAADYAHrGP8DYAHrCAADCQEMDP8DXgHVCAAU/wgAA0cBgAT/EAAE/wNHAYAIAAT/ + A1oBwANHAYADWgHAA2oB+RwAA0gBgxD/CAAQ/wNGAX4cAAMpAT4s/wNfAegDGAEiMAADXgHYBP8DHwEs + CAADUQGgGP8DUgGhCAADHgErBP8DXQHXEAAE/wNHAYAEAANHAYAE/wQAAzUBVgNaAcAE/wNFAX0DEgEZ + AxIBGQNFAX0E/wNaAcADNQFWBAAE/wNaAcADRwGAA1oBwANfAfscAAMHAQoDYQHmDP8DIAEvAyABLgz/ + A2EB4QMFAQccAANQAZ0s/wNSAak0AANQAZ4E/wNEAXoIAAMQARUDYQHmEP8DZAHnAw0BEQgAA0QBeQT/ + A1ABnhAAA14B0AM1AVcEAAM1AVcDXgHQBAADXgHQCP8DKwH8AzMBUwMzAVMDKwH8CP8DXgHQBAADYAHU + DP8DSQGHIAADNwFaIP8DNQFVIAADXwHjDP8DVQGyA1YBthj/A2EB5jQAAy0BRgT/A2QB5wMGAQgIAAMS + ARgDVgGzA2QB7ANkAewDVgGzAxIBGAgAAwcBCQNkAecE/wMtAUWMAANcAckY/wNYAcEkAANhAe4I/wNG + AX8IAANIAYMU/wNiAe83AAEBA1wBzQT/A1MBpSgAA1MBpQT/A1wBzQMAAQGMAAMhATADfwH+EP8DfwH+ + Ax0BKiQAA18B2wT/A0ABcBAAA1MBpRD/A1wB3zgAAx0BKQNiAfYE/wNUAa8DDQESGAADDQESA1QBrwT/ + A10B7QMbASaUAANRAZwQ/wNOAZgoAANMAZIDPQFpFAADVAGmEP8DTgGZPAADNAFUAysB/AT/A2QB7AND + AXgDLAFEAw8BFAMPARQDLAFEA0MBeANkAewE/wNkAecDHgErmAADEAEVA2cB8gj/A2cB8gMNAREoAAMH + AQoUAANHAYAQ/wOoAf0DIgEyQAADLAFEA18B4yD/A1QBrAMTARqgAANCAXMI/wNAAXBAAANMAY8U/wNE + AXlIAAMGAQgDPAFmA1gBuwNkAewI/wNkAewDVwG3AyYBOKgAAwQBBQNgAdQDXQHTAwIBAzwAA04BlhD/ + A00B+gNAAXBcAAj//AADDQESA0QBeQNWAbYDWgHAA1cBuANGAX4DHQEqYAADYAHUA14B1f8A/wD/AP8A + /wD/AF4AAzEBTQMyAVGYAAMxAU8DXQHXOP8DXQHXAzEBT5gAA1kB9QT/Az8BbDwAA10BygM4AVwDBAEF + IAADBAEFAzcBWwNcAc8gAANhAeJA/wNhAeIUAAMFAQcDPgFrA14B3Tz/A1gBvAMyAVE0AAz/A0IBdDgA + CP8DXwHoA0cBgAMQARYQAAMRARcDRgF/A2IB6Qj/IABI/xAAAxQBGwNeAdVM/wNIAYQYAAMUARsDPgFq + AwsBDwwACP8DagH5BP8DQgF0NAAQ/wNNAfoDUgGkAyMBNAMkATYDUgGjA00B+hD/IABI/wwAAwEBAgNZ + AcdU/wMwAUsUAANDAXcE/wNcAdEDDgETCAAI/wMvAUoDKwH8BP8DRQF8MAA4/yAAEP8DIAEvAyABLwj/ + AyABLwMgAS8I/wMgAS8DIAEvEP8MAAM6AWIk/xAAJP8DWQHCFAADBwEKA1sByAT/A2EB2gMQARYEAAj/ + BAADPgFrCP8DHwEtLAA4/yAAEP8IAAj/CAAI/wgAEP8MAANbAcgk/xAAJP8DZQH0GAADCQEMA14BzgT/ + A2AB3gMTARoI/wMQARYDXQHXBP8DXAHfAwoBDSwAOP8gABD/CAAI/wgACP8IABD/DAADZQH0JP8QACT/ + A2IB6RwAAwsBDwNeAc4E/wNcAd8I/wNeAd0E/wNeAd0DFAEbMAA4/yAAEP8IAAj/CAAI/wMgAS8DIAEu + EP8MAANNAfok/xAAJP8DVAGvIAADCwEPA10B0hD/A14B2AMRARc0ADj/IAAQ/wgACP8IACD/DAADXAHP + GP8DQwF4IAADRQF9GP8DJgE4JAADDQESA10B1wj/A2AB1AMPARQ4ADj/IAAQ/wgACP8IACD/DAADQgF2 + HP8DQAFwGAADQAFwGP8DSgGJKAADDQESA10B1wj/A14B2AMPARQ4ADj/IAAQ/wMgAS8DIAEuCP8IACD/ + DAADCAELA10B1xz/Az0BaRAAAz0BaRD/A2QB8QNUAa8DLQFGKAADCwEPA10B0hD/A14B2AMRARc0ADj/ + IAAg/wgAIP8QAAMQARYDXgHQHP8DPQFpCAADPQFpFP8DJAE2LAADCwEPA14BzgT/A1wB3wj/A18B4wT/ + A14B3QMUARswADj/IAAg/wgAIP8UAAMBAQIDOAFeA10BygMrAfwU/wNBAXIDQQFyFP8DXgHdLAADCQEM + A14BzgT/A2AB3gMTARoI/wMSARkDXQHXBP8DXAHfAwoBDSwAOP8gACD/AyABLwMgAS4g/yAAAywBRAN/ + Af4s/wM7AWQoAAMHAQoDWwHIBP8DXgHVAxABFgQACP8EAAM+AWsI/wMfASwsADj/IABI/yQAA0IBdSj/ + A1IBoSwAA0QBeQT/A1wB0QMMARAIAAj/AzABTAMrAfwE/wNCAXQwADj/IABI/ygAA0ABcBz/A00B+gNC + AXQwAAMTARoDPgFqAwsBDwwACP8DXAH4BP8DQgF0NAA4/yAAA2EB5ED/A18B4ywAAx0BKgNOAZgDXQHS + A2UB9AT/A2AB6wNJAYgDFQEdTAAM/wNCAXQ4AANhAeQw/wNfAeMgAAMxAU8DYAHWOP8DYAHWAzEBT5gA + A20B9wT/Az8BbDwAAzEBTwNgAdYo/wNgAdYDMQFP/wABAAMxAU0DMwFS/wD/AP8AjwABQgFNAT4HAAE+ + AwABKAMAAWADAAFIAwABAQEAAQEFAAFgAQMWAAP/AQAD/wkAA/8JAAP/CQAB/wH8Af8JAAH/AfgBfwkA + Af8B8AE/CQAB/wHgAR8JAAH/AfwB/wkAAf8B/AH/CQAB/wH8Af8JAAH/ATwB/wkAAf8BPAH/CQAB/wE8 + Af8JAAH/ATwB/wkAAf8BPwH/CQAB/wE/Af8JAAH/AT8B/wkAAfgBBwH/CQAB/AEPAf8JAAH+AR8B/wkA + Af8BPwH/CQAD/wkAA/8JAAP/CQAO/wHHAf8B5wn/AYMB/wHnCf8BAQH/AQABfwP/AYABAAEBAf8B/gEB + AfwBAAE/A/8BgAEAAQEB/wH8AQEB+AEAAR8D/wHAAQABAwH/AfgBAwHwAX4BDwP/AcABGAEDAf8B8AEH + AfEB/wGPA/8B4AEYAQcB/wHgAQ8B4QGBAYcD/wHgAQABBwH/AcABHwHjAQABxwGTATwBzwHwAQABDwHw + AQABPwHjAQABxwGTATwBzwH4AQABHwHAAQABfwGDAQABwQGDATwBwQH4ARgBHwHAAQAB/wGDAQABwQGD + ATwBwQH8ARgBPwGAAQEB/wHjAQABxwGSAQABQQH8AQABPwGAAQMB/wHjAQABxwGSAQABQQH+AQABfwGA + AQMB/wHhAYEBhwT/AQAB/wGGAQMB/wHhAf8BhwT/AQAB/wGPAQMB/wHwAX4BDwT/AYEB/wGfAQMB/wH4 + AQABHwT/AYEB/wG+AQMB/wH8AQABPwT/AcMB/wH8AQcB/wH+AQAF/wHDAf8B+AEPAv8B5wf/AfABHwL/ + Aecy/wHnBP8B4AEAAQcE/wHjAf8B+AH/AR8B4AEAAQcBwAEAAQMB/wHhAf8B+AE8AR8B4AEAAQcBgAEA + AQEB+AHgAf8B+AEAAR8B4AEAAQcDAAH4AWABfwH4AQABHwHgAQABBwEAATwBAAH4ASQBPwH4AQABHwHh + AZkBhwEAATwBAAH8AQABPwH4AQABHwHhAZkBhwEAATwBAAH+AQABfwH4AQABHwHhAZgBBwEAATwBAAH/ + AQAB/wH4AQABHwHhAZgBBwEAAf8BAAH/AYEB/wH4AQABHwHhAZgBBwEAAX4BAQH/AYEB/wH4AQABHwHg + ARgBBwEAATwBAwH/AQAB/wH4AQABHwHgARgBBwGAARgBDwH+AQABfwH4AQABHwHgARgBBwHAAQABHwH8 + AQABPwH4AQABHwHgAQABBwH4AQABHwH4ASQBPwH4AQABHwHgAQABBwH8AQABPwH4AWABfwH4AQABHwHg + AQABBwH+AQABfwH4AeAB/wH4AQABHwHgAQABBwH/AQAC/wHhAf8B+AEAAR8B4AEAAQcE/wHjAf8B+AEA + AR8H/wHnHP8L diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index 39f375ba9f9ed21f6a706f20d8b63b99f400594b..03879059107216441704afc080f021fadeae7d92 100644 GIT binary patch delta 25 hcmeD8>-XE>&&araa{%LOM%GC((-xU;c3?iQ3;=yr32guX delta 25 gcmeD8>-XE>&&ZgyIe_ssBdcXJU!T@y2j=t20CC(1T>t<8 From fa91ea909fcacc6011ce1472af93dffd3ff0e919 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Tue, 18 Aug 2020 00:19:52 +0430 Subject: [PATCH 12/30] menu --- MaterialSkin/Controls/MaterialDrawer.cs | 29 +++++++++--------- MaterialSkin/Controls/MaterialForm.cs | 4 +-- ...lSkinExample.csprojAssemblyReference.cache | Bin 9999 -> 9999 bytes 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/MaterialSkin/Controls/MaterialDrawer.cs b/MaterialSkin/Controls/MaterialDrawer.cs index b3e65744..2f4dbe22 100644 --- a/MaterialSkin/Controls/MaterialDrawer.cs +++ b/MaterialSkin/Controls/MaterialDrawer.cs @@ -15,6 +15,7 @@ public class MaterialDrawer : Control, IMaterialControl // TODO: Invalidate when changing custom properties private bool _showIconsWhenHidden; + public new RightToLeft RightToLeft; [Category("Drawer")] public bool ShowIconsWhenHidden @@ -268,9 +269,9 @@ private void preProcessIcons() // Translate the brushes to the correct positions var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); - + var rtlWidth = RightToLeft == RightToLeft.Yes ? Width - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width : 0; Rectangle iconRect = new Rectangle( - _drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2), + rtlWidth - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)), _drawerItemRects[currentTabIndex].Y + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2), _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); @@ -303,8 +304,9 @@ private void preProcessIcons() public int MinWidth; - public MaterialDrawer() + public MaterialDrawer(RightToLeft rightToLeft) { + RightToLeft = rightToLeft; SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); Height = 120; Width = 200; @@ -487,16 +489,17 @@ protected override void OnPaint(PaintEventArgs e) // Icons if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) { - var rtlWidth = RightToLeft == RightToLeft.Yes ? Width : 0; + var rtlWidth = RightToLeft == RightToLeft.Yes ? Width - iconsSize[tabPage.ImageKey].Width : 0; Rectangle iconRect = new Rectangle( - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1), + rtlWidth - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1)), _drawerItemRects[currentTabIndex].Y + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Height >> 1), iconsSize[tabPage.ImageKey].Width, iconsSize[tabPage.ImageKey].Height); if (ShowIconsWhenHidden) { - iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); - iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + var rtldx = RightToLeft == RightToLeft.Yes ? Width - iconsSize[tabPage.ImageKey].Width : dx; + //iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + // iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); } g.FillRectangle(currentTabIndex == _baseTabControl.SelectedIndex ? iconsSelectedBrushes[tabPage.ImageKey] : iconsBrushes[tabPage.ImageKey], iconRect); @@ -508,10 +511,7 @@ protected override void OnPaint(PaintEventArgs e) { using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) { - if (RightToLeft == RightToLeft.Yes) - g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); - else - g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); + g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); } } @@ -521,7 +521,7 @@ protected override void OnPaint(PaintEventArgs e) var activeTabPageRect = _drawerItemRects[_baseTabControl.SelectedIndex]; var y = previousActiveTabRect.Y + (int)((activeTabPageRect.Y - previousActiveTabRect.Y) * clickAnimProgress); - var x = ShowIconsWhenHidden ? -Location.X : 0; + var x = ShowIconsWhenHidden ? Location.X : 0; var height = drawerItemHeight; g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, IndicatorWidth, height); @@ -659,10 +659,11 @@ private void UpdateTabRects() //Calculate the bounds of each tab header specified in the base tab control for (int i = 0; i < _baseTabControl.TabPages.Count; i++) { + var LocationX = this.RightToLeft == RightToLeft.Yes ? 0 : Location.X; _drawerItemRects[i] = (new Rectangle( - (int)(SkinManager.FORM_PADDING * 0.75) - (ShowIconsWhenHidden ? Location.X : 0), + (int)(SkinManager.FORM_PADDING * 0.75) - (ShowIconsWhenHidden ? LocationX : 0), (TAB_HEADER_PADDING * 2) * i + (int)(SkinManager.FORM_PADDING >> 1), - (Width + (ShowIconsWhenHidden ? Location.X : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, + (Width + (ShowIconsWhenHidden ? LocationX : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, drawerItemHeight)); _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, _drawerItemRects[i].Width, _drawerItemRects[i].Height), 4); diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index 522e2965..03e278bc 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -183,7 +183,7 @@ public MaterialForm() DrawerHighlightWithAccent = true; DrawerBackgroundWithAccent = false; FormBorderStyle = FormBorderStyle.None; - drawerControl.RightToLeft = RightToLeft; + drawerControl.RightToLeft = RightToLeft.Yes; Sizable = true; DoubleBuffered = true; SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true); @@ -319,7 +319,7 @@ public bool DrawerBackgroundWithAccent } } - private MaterialDrawer drawerControl = new MaterialDrawer(); + private MaterialDrawer drawerControl = new MaterialDrawer(RightToLeft.Yes); [Category("Drawer")] public MaterialTabControl DrawerTabControl { get; set; } diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index 03879059107216441704afc080f021fadeae7d92..cea3988a2ec587e9180ababea9f304fb5c9d82b2 100644 GIT binary patch delta 25 hcmeD8>-XE>&&c?Ha{%LOMpoZR|IR<%?7)0p832qS3n>5q delta 25 hcmeD8>-XE>&&araa{%LOM%GC((-xU;c3?iQ3;=yr32guX From 285f44827990ae431bd24873699e7822f67f9dd5 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Sun, 6 Sep 2020 23:21:04 +0430 Subject: [PATCH 13/30] latest changes --- MaterialSkin/Controls/MaterialForm.cs | 48 ++++++++++-------- ...lSkinExample.csprojAssemblyReference.cache | Bin 9999 -> 9999 bytes 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index 03e278bc..d9d41a3e 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -325,11 +325,18 @@ public bool DrawerBackgroundWithAccent public MaterialTabControl DrawerTabControl { get; set; } private AnimationManager _drawerShowHideAnimManager; - + private Form drawerForm = new Form(); + private Form drawerOverlay = new Form(); + private void ResizeDrawer(object sender, EventArgs e) + { + int locationY = Location.Y + _statusBarBounds.Height + _actionBarBounds.Height; + int locationX = RightToLeft == RightToLeft.Yes ? Location.X + (Width - DrawerWidth) : Location.X; + Point pos = new Point(locationX, locationY); + drawerForm.Location = pos; + drawerOverlay.Location = new Point(Location.X, locationY); + } protected void AddDrawerOverlayForm() { - Form drawerOverlay = new Form(); - Form drawerForm = new Form(); if (DrawerTabControl == null) return; @@ -413,21 +420,14 @@ protected void AddDrawerOverlayForm() drawerOverlay.Visible = Visible; }; - Resize += (sender, e) => + Resize += (sender, args) => { H = Size.Height - _statusBarBounds.Height - _actionBarBounds.Height; drawerForm.Size = new Size(DrawerWidth, H); drawerOverlay.Size = new Size(Size.Width, H); }; - Move += (sender, e) => - { - int locationY = Location.Y + _statusBarBounds.Height + _actionBarBounds.Height; - int locationX = RightToLeft == RightToLeft.Yes ? Location.X+ (Width - DrawerWidth) : Location.X; - Point pos = new Point(locationX, locationY); - drawerForm.Location = pos; - drawerOverlay.Location = new Point(Location.X, locationY); - }; + Move += ResizeDrawer; // Close when click outside menu drawerOverlay.Click += (sender, e) => @@ -607,22 +607,22 @@ protected override void OnMouseMove(MouseEventArgs e) if (e.Location.X < BORDER_WIDTH && e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_maximized) { - _resizeDir = ResizeDirection.BottomLeft; - Cursor = Cursors.SizeNESW; + _resizeDir = RightToLeft == RightToLeft.Yes ? ResizeDirection.BottomRight : ResizeDirection.BottomLeft; + Cursor = RightToLeft == RightToLeft.Yes ? Cursors.SizeNWSE : Cursors.SizeNESW; } else if (e.Location.X < BORDER_WIDTH && !isChildUnderMouse && !_maximized) { - _resizeDir = ResizeDirection.Left; + _resizeDir = RightToLeft == RightToLeft.Yes ? ResizeDirection.Right : ResizeDirection.Left; Cursor = Cursors.SizeWE; } else if (e.Location.X > Width - BORDER_WIDTH && e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_maximized) { - _resizeDir = ResizeDirection.BottomRight; - Cursor = Cursors.SizeNWSE; + _resizeDir = RightToLeft == RightToLeft.Yes ? ResizeDirection.BottomLeft : ResizeDirection.BottomRight; + Cursor = RightToLeft == RightToLeft.Yes ? Cursors.SizeNESW : Cursors.SizeNWSE; } else if (e.Location.X > Width - BORDER_WIDTH && !isChildUnderMouse && !_maximized) { - _resizeDir = ResizeDirection.Right; + _resizeDir = RightToLeft == RightToLeft.Yes ? ResizeDirection.Left : ResizeDirection.Right; Cursor = Cursors.SizeWE; } else if (e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_maximized) @@ -640,6 +640,7 @@ protected override void OnMouseMove(MouseEventArgs e) Cursor = Cursors.Default; } } + drawerControl.Refresh(); } UpdateButtons(e); @@ -786,12 +787,12 @@ private void ResizeForm(ResizeDirection direction) protected override void OnResize(EventArgs e) { base.OnResize(e); - + ResizeDrawer(this, e); _minButtonBounds = new Rectangle((Width) - 3 * STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); _maxButtonBounds = new Rectangle((Width) - 2 * STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); _xButtonBounds = new Rectangle((Width) - 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); + _statusBarBounds = new Rectangle(0, 0, Width, STATUS_BAR_HEIGHT); + _actionBarBounds = new Rectangle(0, STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT); } protected override void OnPaint(PaintEventArgs e) @@ -934,12 +935,15 @@ protected override void OnPaint(PaintEventArgs e) //Form title using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { + var flag = RightToLeft == RightToLeft.Yes + ? NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle + : NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; Rectangle textLocation = new Rectangle(SkinManager.FORM_PADDING + (DrawerTabControl != null ? 24 + (int)(SkinManager.FORM_PADDING * 1.5) : 0), STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT); NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.H6), SkinManager.ColorScheme.TextColor, textLocation.Location, textLocation.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + flag); } } diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index cea3988a2ec587e9180ababea9f304fb5c9d82b2..d3873103ee7f8b2ba26a845166f273ca0c4e3fee 100644 GIT binary patch delta 27 jcmeD8>-XE>&&VXgv^kLR6(idLlkinjgEl)dpHl_^f$j;7 delta 27 jcmeD8>-XE>&&c$jadRN!D@HcoN&n72b=vI6d`=kvn%@g< From cc893e0e94c798bd490e46a4106f13008ef0f055 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Tue, 7 Jun 2022 10:04:49 +0430 Subject: [PATCH 14/30] init --- .gitignore | 1 + .nuspec | 10 +- MaterialSkin.sln | 17 +- MaterialSkin/Animations/AnimationManager.cs | 2 +- MaterialSkin/ColorHelper.cs | 22 +- MaterialSkin/ColorScheme.cs | 32 +- MaterialSkin/Controls/BaseTextBox.cs | 239 ++ .../Controls/FlexibleMaterialDialog.cs | 291 +- MaterialSkin/Controls/MaterialButton.cs | 292 +- MaterialSkin/Controls/MaterialCheckBox.cs | 91 +- .../Controls/MaterialCheckedListBox.cs | 1 - MaterialSkin/Controls/MaterialComboBox.cs | 130 +- .../Controls/MaterialContextMenuStrip.cs | 35 +- MaterialSkin/Controls/MaterialDialog.cs | 326 ++ .../Controls/MaterialDrawer - Copy (2).cs | 787 ++++ .../Controls/MaterialDrawer - Copy (3).cs | 787 ++++ .../Controls/MaterialDrawer - Copy.cs | 786 ++++ MaterialSkin/Controls/MaterialDrawer.cs | 168 +- .../Controls/MaterialExpansionPanel.cs | 648 ++++ .../Controls/MaterialFloatingActionButton.cs | 62 +- MaterialSkin/Controls/MaterialForm.cs | 1541 ++++---- MaterialSkin/Controls/MaterialForm.resx | 30 - MaterialSkin/Controls/MaterialLabel.cs | 40 +- MaterialSkin/Controls/MaterialListBox.cs | 854 +++++ MaterialSkin/Controls/MaterialListView.cs | 10 +- .../Controls/MaterialMaskedTextBox.cs | 2048 +++++++++++ MaterialSkin/Controls/MaterialMessageBox.cs | 48 +- .../Controls/MaterialMultiLineTextBox.cs | 36 +- .../Controls/MaterialMultiLineTextBox2.cs | 1393 +++++++ MaterialSkin/Controls/MaterialProgressBar.cs | 8 +- MaterialSkin/Controls/MaterialRadioButton.cs | 21 +- MaterialSkin/Controls/MaterialScrollBar.cs | 1025 ++++++ MaterialSkin/Controls/MaterialSlider.cs | 469 +++ MaterialSkin/Controls/MaterialSnackBar.cs | 370 ++ MaterialSkin/Controls/MaterialSwitch.cs | 20 +- MaterialSkin/Controls/MaterialTabControl.cs | 14 +- MaterialSkin/Controls/MaterialTabSelector.cs | 236 +- MaterialSkin/Controls/MaterialTextBox.cs | 591 ++- MaterialSkin/Controls/MaterialTextBox2.cs | 1967 ++++++++++ MaterialSkin/MaterialItemCollection.cs | 122 + MaterialSkin/MaterialItemCollectionEditor.cs | 87 + MaterialSkin/MaterialSkin.csproj | 66 +- MaterialSkin/MaterialSkinCore.csproj | 126 + MaterialSkin/MaterialSkinManager.cs | 209 +- MaterialSkin/MouseWheelRedirector.cs | 99 + MaterialSkin/NativeTextRenderer.cs | 10 +- MaterialSkin/Properties/AssemblyInfo.cs | 8 +- MaterialSkin/Properties/Resources.Designer.cs | 24 +- MaterialSkin/Properties/Resources.resx | 24 +- MaterialSkin/Properties/Settings.Designer.cs | 2 +- MaterialSkin/Resources/IRANSans-Black.ttf | Bin 98588 -> 0 bytes MaterialSkin/Resources/IRANSans-Bold.ttf | Bin 100992 -> 0 bytes MaterialSkin/Resources/IRANSans-Light.ttf | Bin 97580 -> 0 bytes MaterialSkin/Resources/IRANSans-Medium.ttf | Bin 92980 -> 0 bytes MaterialSkin/Resources/IRANSans-Regular.ttf | Bin 104668 -> 0 bytes .../Resources/IRANSans-UltraLight.ttf | Bin 102840 -> 0 bytes .../Resources/IRANYekanMobileBlack.ttf | Bin 0 -> 59004 bytes .../Resources/IRANYekanMobileBold.ttf | Bin 0 -> 59528 bytes .../Resources/IRANYekanMobileLight.ttf | Bin 0 -> 61388 bytes .../Resources/IRANYekanMobileMedium.ttf | Bin 0 -> 60416 bytes .../Resources/IRANYekanMobileRegular.ttf | Bin 0 -> 60276 bytes .../Resources/IRANYekanMobileThin.ttf | Bin 0 -> 63712 bytes MaterialSkinExample.RTL/App.config | 6 + .../Icons/ic_settings_black_24dp_1x.png | Bin 0 -> 322 bytes .../Icons/ic_settings_white_24dp_1x.png | Bin 0 -> 326 bytes MaterialSkinExample.RTL/MainForm.Designer.cs | 3261 +++++++++++++++++ MaterialSkinExample.RTL/MainForm.cs | 311 ++ MaterialSkinExample.RTL/MainForm.resx | 375 ++ .../MaterialSkinExample.RTL.csproj | 145 + MaterialSkinExample.RTL/Program.cs | 16 + .../Properties/AssemblyInfo.cs | 35 + .../Properties/Resources.Designer.cs | 243 ++ .../Properties/Resources.resx | 59 +- .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + .../baseline_bluetooth_black_24dp.png | Bin 0 -> 218 bytes .../Resources/baseline_build_black_24dp.png | Bin 0 -> 258 bytes .../baseline_favorite_border_black_24dp.png | Bin 0 -> 324 bytes .../baseline_fingerprint_black_24dp.png | Bin 0 -> 466 bytes .../baseline_thumb_up_black_24dp.png | Bin 0 -> 187 bytes MaterialSkinExample.RTL/Resources/minus.png | Bin 0 -> 167 bytes MaterialSkinExample.RTL/Resources/plus.png | Bin 0 -> 209 bytes .../Resources/round_add_black_24dp.png | Bin 0 -> 96 bytes .../Resources/round_assessment_white_24dp.png | Bin 0 -> 152 bytes .../Resources/round_backup_white_24dp.png | Bin 0 -> 235 bytes .../Resources/round_bluetooth_white_24dp.png | Bin 0 -> 241 bytes .../Resources/round_bookmark_white_24dp.png | Bin 0 -> 141 bytes .../Resources/round_build_white_24dp.png | Bin 0 -> 262 bytes .../Resources/round_gps_fixed_white_24dp.png | Bin 0 -> 350 bytes .../Resources/round_http_white_24dp.png | Bin 0 -> 181 bytes .../Resources/round_phone_black_24dp.png | Bin 0 -> 241 bytes .../round_report_problem_white_24dp.png | Bin 0 -> 237 bytes .../Resources/round_swap_vert_white_24dp.png | Bin 0 -> 149 bytes MaterialSkinExample/MainForm.Designer.cs | 2505 ++++++++----- MaterialSkinExample/MainForm.cs | 138 +- MaterialSkinExample/MainForm.resx | 326 +- .../MaterialSkinExample.csproj | 9 +- .../Properties/Resources.Designer.cs | 20 + MaterialSkinExample/Properties/Resources.resx | 8 +- .../Resources/round_add_black_24dp.png | Bin 0 -> 96 bytes .../Resources/round_phone_black_24dp.png | Bin 0 -> 241 bytes ...lSkinExample.csprojAssemblyReference.cache | Bin 9999 -> 12745 bytes README.md | 98 +- 103 files changed, 21647 insertions(+), 2166 deletions(-) create mode 100644 MaterialSkin/Controls/BaseTextBox.cs create mode 100644 MaterialSkin/Controls/MaterialDialog.cs create mode 100644 MaterialSkin/Controls/MaterialDrawer - Copy (2).cs create mode 100644 MaterialSkin/Controls/MaterialDrawer - Copy (3).cs create mode 100644 MaterialSkin/Controls/MaterialDrawer - Copy.cs create mode 100644 MaterialSkin/Controls/MaterialExpansionPanel.cs create mode 100644 MaterialSkin/Controls/MaterialListBox.cs create mode 100644 MaterialSkin/Controls/MaterialMaskedTextBox.cs create mode 100644 MaterialSkin/Controls/MaterialMultiLineTextBox2.cs create mode 100644 MaterialSkin/Controls/MaterialScrollBar.cs create mode 100644 MaterialSkin/Controls/MaterialSlider.cs create mode 100644 MaterialSkin/Controls/MaterialSnackBar.cs create mode 100644 MaterialSkin/Controls/MaterialTextBox2.cs create mode 100644 MaterialSkin/MaterialItemCollection.cs create mode 100644 MaterialSkin/MaterialItemCollectionEditor.cs create mode 100644 MaterialSkin/MaterialSkinCore.csproj create mode 100644 MaterialSkin/MouseWheelRedirector.cs delete mode 100644 MaterialSkin/Resources/IRANSans-Black.ttf delete mode 100644 MaterialSkin/Resources/IRANSans-Bold.ttf delete mode 100644 MaterialSkin/Resources/IRANSans-Light.ttf delete mode 100644 MaterialSkin/Resources/IRANSans-Medium.ttf delete mode 100644 MaterialSkin/Resources/IRANSans-Regular.ttf delete mode 100644 MaterialSkin/Resources/IRANSans-UltraLight.ttf create mode 100644 MaterialSkin/Resources/IRANYekanMobileBlack.ttf create mode 100644 MaterialSkin/Resources/IRANYekanMobileBold.ttf create mode 100644 MaterialSkin/Resources/IRANYekanMobileLight.ttf create mode 100644 MaterialSkin/Resources/IRANYekanMobileMedium.ttf create mode 100644 MaterialSkin/Resources/IRANYekanMobileRegular.ttf create mode 100644 MaterialSkin/Resources/IRANYekanMobileThin.ttf create mode 100644 MaterialSkinExample.RTL/App.config create mode 100644 MaterialSkinExample.RTL/Icons/ic_settings_black_24dp_1x.png create mode 100644 MaterialSkinExample.RTL/Icons/ic_settings_white_24dp_1x.png create mode 100644 MaterialSkinExample.RTL/MainForm.Designer.cs create mode 100644 MaterialSkinExample.RTL/MainForm.cs create mode 100644 MaterialSkinExample.RTL/MainForm.resx create mode 100644 MaterialSkinExample.RTL/MaterialSkinExample.RTL.csproj create mode 100644 MaterialSkinExample.RTL/Program.cs create mode 100644 MaterialSkinExample.RTL/Properties/AssemblyInfo.cs create mode 100644 MaterialSkinExample.RTL/Properties/Resources.Designer.cs rename MaterialSkin/Controls/MaterialForm.fa-IR.resx => MaterialSkinExample.RTL/Properties/Resources.resx (52%) create mode 100644 MaterialSkinExample.RTL/Properties/Settings.Designer.cs create mode 100644 MaterialSkinExample.RTL/Properties/Settings.settings create mode 100644 MaterialSkinExample.RTL/Resources/baseline_bluetooth_black_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/baseline_build_black_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/baseline_favorite_border_black_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/baseline_fingerprint_black_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/baseline_thumb_up_black_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/minus.png create mode 100644 MaterialSkinExample.RTL/Resources/plus.png create mode 100644 MaterialSkinExample.RTL/Resources/round_add_black_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/round_assessment_white_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/round_backup_white_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/round_bluetooth_white_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/round_bookmark_white_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/round_build_white_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/round_gps_fixed_white_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/round_http_white_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/round_phone_black_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/round_report_problem_white_24dp.png create mode 100644 MaterialSkinExample.RTL/Resources/round_swap_vert_white_24dp.png create mode 100644 MaterialSkinExample/Resources/round_add_black_24dp.png create mode 100644 MaterialSkinExample/Resources/round_phone_black_24dp.png diff --git a/.gitignore b/.gitignore index 663f9df3..280cc22b 100644 --- a/.gitignore +++ b/.gitignore @@ -68,6 +68,7 @@ StyleCopReport.xml *_i.c *_p.c *_h.h +*.cache *.ilk *.meta *.obj diff --git a/.nuspec b/.nuspec index 2851f241..8547675e 100644 --- a/.nuspec +++ b/.nuspec @@ -2,9 +2,9 @@ MaterialSkin.2 - 2.1.2 + 2.3.1 MaterialSkin 2 - leocb, IgnaceMaes + leocb, IgnaceMaes, orapps44 leocb MIT https://github.com/leocb/MaterialSkin @@ -12,15 +12,15 @@ false Google's Material Design for your windows forms. see github page for release notes - Copyright Leonardo C Bottaro © 2020 + Copyright Leonardo C Bottaro © 2021 material design materialdesign google forms theme skin - The MaterialSkin 2 is a Google's Material Design skin for you windows forms app. this updated version brings new user controls, unified theming and consistency. This package superseeds the MaterialSkin package By IgnaceMaes. Example app and documentation is available on the project site. Have a quick question? Join our Slack! + The MaterialSkin 2 is a Google's Material Design skin for you windows forms app. this updated version brings new user controls, unified theming and consistency. This package superseeds the MaterialSkin package By IgnaceMaes. Example app and documentation is available on the project site. - \ No newline at end of file + diff --git a/MaterialSkin.sln b/MaterialSkin.sln index 081e6042..4da0e141 100644 --- a/MaterialSkin.sln +++ b/MaterialSkin.sln @@ -1,7 +1,6 @@ - Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28307.136 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30717.126 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialSkinExample", "MaterialSkinExample\MaterialSkinExample.csproj", "{47409AA5-62AE-4189-8E83-C471502DF5E9}" EndProject @@ -12,6 +11,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution README.md = README.md EndProjectSection EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MaterialSkinCore", "MaterialSkin\MaterialSkinCore.csproj", "{031DCCA6-79CD-41F0-AA5A-09FDE1C1D308}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialSkinExample.RTL", "MaterialSkinExample.RTL\MaterialSkinExample.RTL.csproj", "{8E08A8CF-A5DB-41DF-B486-E0E5DE552697}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -26,6 +29,14 @@ Global {8EB7611B-68CD-4B8B-987A-11717E2B250C}.Debug|Any CPU.Build.0 = Debug|Any CPU {8EB7611B-68CD-4B8B-987A-11717E2B250C}.Release|Any CPU.ActiveCfg = Release|Any CPU {8EB7611B-68CD-4B8B-987A-11717E2B250C}.Release|Any CPU.Build.0 = Release|Any CPU + {031DCCA6-79CD-41F0-AA5A-09FDE1C1D308}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {031DCCA6-79CD-41F0-AA5A-09FDE1C1D308}.Debug|Any CPU.Build.0 = Debug|Any CPU + {031DCCA6-79CD-41F0-AA5A-09FDE1C1D308}.Release|Any CPU.ActiveCfg = Release|Any CPU + {031DCCA6-79CD-41F0-AA5A-09FDE1C1D308}.Release|Any CPU.Build.0 = Release|Any CPU + {8E08A8CF-A5DB-41DF-B486-E0E5DE552697}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E08A8CF-A5DB-41DF-B486-E0E5DE552697}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E08A8CF-A5DB-41DF-B486-E0E5DE552697}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E08A8CF-A5DB-41DF-B486-E0E5DE552697}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/MaterialSkin/Animations/AnimationManager.cs b/MaterialSkin/Animations/AnimationManager.cs index 589f83e2..0ef3b032 100644 --- a/MaterialSkin/Animations/AnimationManager.cs +++ b/MaterialSkin/Animations/AnimationManager.cs @@ -191,7 +191,7 @@ public bool IsAnimating() /// The data public void StartNewAnimation(AnimationDirection animationDirection, object[] data = null) { - StartNewAnimation(animationDirection, new Point(100, 100), data); + StartNewAnimation(animationDirection, new Point(0, 0), data); } /// diff --git a/MaterialSkin/ColorHelper.cs b/MaterialSkin/ColorHelper.cs index 22f02460..7c77d7b3 100644 --- a/MaterialSkin/ColorHelper.cs +++ b/MaterialSkin/ColorHelper.cs @@ -138,5 +138,25 @@ public static Color FromHsl(int alpha, float hue, float saturation, float lighti return Color.FromArgb(alpha, iMax, iMid, iMin); } } + + /// + /// Removes alpha value without changing Color. + /// + /// The foreground color. + /// The background color. + /// + public static Color RemoveAlpha(Color foreground, Color background) + { + if (foreground.A == 255) + return foreground; + + var alpha = foreground.A / 255.0; + var diff = 1.0 - alpha; + return Color.FromArgb(255, + (byte)(foreground.R * alpha + background.R * diff), + (byte)(foreground.G * alpha + background.G * diff), + (byte)(foreground.B * alpha + background.B * diff)); + } + } -} \ No newline at end of file +} diff --git a/MaterialSkin/ColorScheme.cs b/MaterialSkin/ColorScheme.cs index 1c286772..af25baf4 100644 --- a/MaterialSkin/ColorScheme.cs +++ b/MaterialSkin/ColorScheme.cs @@ -1,4 +1,4 @@ -namespace MaterialSkin +namespace MaterialSkin { using System.Drawing; @@ -10,6 +10,10 @@ public class ColorScheme public readonly Brush PrimaryBrush, DarkPrimaryBrush, LightPrimaryBrush, AccentBrush, TextBrush; + public ColorScheme() : this(Primary.Indigo500, Primary.Indigo700, Primary.Indigo100, Accent.Pink200, TextShade.WHITE) + { + } + public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, Accent accent, TextShade textShade) { //Color @@ -34,6 +38,30 @@ public ColorScheme(Primary primary, Primary darkPrimary, Primary lightPrimary, A TextBrush = new SolidBrush(TextColor); } + public ColorScheme(int primary, int darkPrimary, int lightPrimary, int accent, TextShade textShade) + { + //Color + PrimaryColor = ((int)primary).ToColor(); + DarkPrimaryColor = ((int)darkPrimary).ToColor(); + LightPrimaryColor = ((int)lightPrimary).ToColor(); + AccentColor = ((int)accent).ToColor(); + TextColor = ((int)textShade).ToColor(); + + //Pen + PrimaryPen = new Pen(PrimaryColor); + DarkPrimaryPen = new Pen(DarkPrimaryColor); + LightPrimaryPen = new Pen(LightPrimaryColor); + AccentPen = new Pen(AccentColor); + TextPen = new Pen(TextColor); + + //Brush + PrimaryBrush = new SolidBrush(PrimaryColor); + DarkPrimaryBrush = new SolidBrush(DarkPrimaryColor); + LightPrimaryBrush = new SolidBrush(LightPrimaryColor); + AccentBrush = new SolidBrush(AccentColor); + TextBrush = new SolidBrush(TextColor); + } + public ColorScheme(Color primary, Color darkPrimary, Color lightPrimary, Color accent, TextShade textShade) { //Color @@ -327,4 +355,4 @@ public enum Accent DeepOrange400 = 0xFF3D00, DeepOrange700 = 0xDD2C00 } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/BaseTextBox.cs b/MaterialSkin/Controls/BaseTextBox.cs new file mode 100644 index 00000000..13a870e9 --- /dev/null +++ b/MaterialSkin/Controls/BaseTextBox.cs @@ -0,0 +1,239 @@ +namespace MaterialSkin.Controls +{ + using System; + using System.ComponentModel; + using System.Drawing; + using System.Windows.Forms; + + [ToolboxItem(false)] + public class BaseTextBox : TextBox, IMaterialControl + { + #region "Public Properties" + + //Properties for managing the material design properties + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + private string hint = string.Empty; + public string Hint + { + get { return hint; } + set + { + hint = value; + Invalidate(); + } + } + + public new void SelectAll() + { + BeginInvoke((MethodInvoker)delegate () + { + base.Focus(); + base.SelectAll(); + }); + } + + #endregion + + public BaseTextBox() + { + } + + + protected override void OnGotFocus(EventArgs e) + { + base.OnGotFocus(e); + Invalidate(); + } + + protected override void OnLostFocus(EventArgs e) + { + base.OnLostFocus(e); + Invalidate(); + } + + private const int WM_ENABLE = 0x0A; + private const int WM_PAINT = 0xF; + private const UInt32 WM_USER = 0x0400; + private const UInt32 EM_SETBKGNDCOLOR = (WM_USER + 67); + private const UInt32 WM_KILLFOCUS = 0x0008; + protected override void WndProc(ref Message m) + { + base.WndProc(ref m); + + + if (m.Msg == WM_PAINT) + { + if (m.Msg == WM_ENABLE) + { + Graphics g = Graphics.FromHwnd(Handle); + Rectangle bounds = new Rectangle(0, 0, Width, Height); + g.FillRectangle(SkinManager.BackgroundDisabledBrush, bounds); + } + } + + if (m.Msg == WM_PAINT && String.IsNullOrEmpty(Text) && !Focused) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(Graphics.FromHwnd(m.HWnd))) + { + NativeText.DrawTransparentText( + Hint, + SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1,RightToLeft), + Enabled ? + ColorHelper.RemoveAlpha(SkinManager.TextMediumEmphasisColor, BackColor) : // not focused + ColorHelper.RemoveAlpha(SkinManager.TextDisabledOrHintColor, BackColor), // Disabled + ClientRectangle.Location, + ClientRectangle.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Top); + } + } + + if (m.Msg == EM_SETBKGNDCOLOR) + { + Invalidate(); + } + + if (m.Msg == WM_KILLFOCUS) //set border back to normal on lost focus + { + Invalidate(); + } + + } + + } + + [ToolboxItem(false)] + public class BaseMaskedTextBox : MaskedTextBox, IMaterialControl + { + //Properties for managing the material design properties + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + private string hint = string.Empty; + public string Hint + { + get { return hint; } + set + { + hint = value; + Invalidate(); + } + } + + public new void SelectAll() + { + BeginInvoke((MethodInvoker)delegate () + { + base.Focus(); + base.SelectAll(); + }); + } + + + public BaseMaskedTextBox() + { + } + + protected override void OnGotFocus(EventArgs e) + { + base.OnGotFocus(e); + Invalidate(); + } + + protected override void OnLostFocus(EventArgs e) + { + base.OnLostFocus(e); + Invalidate(); + } + + private const int WM_ENABLE = 0x0A; + private const int WM_PAINT = 0xF; + private const UInt32 WM_USER = 0x0400; + private const UInt32 EM_SETBKGNDCOLOR = (WM_USER + 67); + private const UInt32 WM_KILLFOCUS = 0x0008; + protected override void WndProc(ref Message m) + { + base.WndProc(ref m); + + + if (m.Msg == WM_PAINT) + { + if (m.Msg == WM_ENABLE) + { + Graphics g = Graphics.FromHwnd(Handle); + Rectangle bounds = new Rectangle(0, 0, Width, Height); + g.FillRectangle(SkinManager.BackgroundDisabledBrush, bounds); + } + } + + if (m.Msg == WM_PAINT && String.IsNullOrEmpty(Text) && !Focused) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(Graphics.FromHwnd(m.HWnd))) + { + NativeText.DrawTransparentText( + Hint, + SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), + Enabled ? + ColorHelper.RemoveAlpha(SkinManager.TextMediumEmphasisColor, BackColor) : // not focused + ColorHelper.RemoveAlpha(SkinManager.TextDisabledOrHintColor, BackColor), // Disabled + ClientRectangle.Location, + ClientRectangle.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Top); + } + } + + if (m.Msg == EM_SETBKGNDCOLOR) + { + Invalidate(); + } + + if (m.Msg == WM_KILLFOCUS) //set border back to normal on lost focus + { + Invalidate(); + } + + } + } + + [ToolboxItem(false)] + public class BaseTextBoxContextMenuStrip : MaterialContextMenuStrip + { + public readonly ToolStripItem undo = new MaterialToolStripMenuItem { Text = "Undo" }; + public readonly ToolStripItem seperator1 = new ToolStripSeparator(); + public readonly ToolStripItem cut = new MaterialToolStripMenuItem { Text = "Cut" }; + public readonly ToolStripItem copy = new MaterialToolStripMenuItem { Text = "Copy" }; + public readonly ToolStripItem paste = new MaterialToolStripMenuItem { Text = "Paste" }; + public readonly ToolStripItem delete = new MaterialToolStripMenuItem { Text = "Delete" }; + public readonly ToolStripItem seperator2 = new ToolStripSeparator(); + public readonly ToolStripItem selectAll = new MaterialToolStripMenuItem { Text = "Select All" }; + + public BaseTextBoxContextMenuStrip() + { + Items.AddRange(new[] + { + undo, + seperator1, + cut, + copy, + paste, + delete, + seperator2, + selectAll + }); + } + } + +} diff --git a/MaterialSkin/Controls/FlexibleMaterialDialog.cs b/MaterialSkin/Controls/FlexibleMaterialDialog.cs index b7970343..e8e2e827 100644 --- a/MaterialSkin/Controls/FlexibleMaterialDialog.cs +++ b/MaterialSkin/Controls/FlexibleMaterialDialog.cs @@ -1,4 +1,5 @@ -using System; +using System; +using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Globalization; @@ -45,6 +46,24 @@ public class FlexibleMaterialForm : MaterialForm, IMaterialControl public static double MAX_HEIGHT_FACTOR = 0.9; private MaterialMultiLineTextBox richTextBoxMessage; + private MaterialLabel materialLabel1; + private MaterialButton leftButton; + private MaterialButton middleButton; + private MaterialButton rightButton; + + [Browsable(false)] + /// + /// Defines position of buttons in Dialog window. By default, ButtonStyle is Fill + /// + public enum ButtonsPosition + { + Fill, + Left, + Right, + Center + } + + public ButtonsPosition ButtonsPositionEnum { get; set; } = FlexibleMaterialForm.ButtonsPosition.Right; /// /// Erforderliche Designervariable. @@ -71,11 +90,12 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - this.leftButton = new MaterialSkin.Controls.MaterialButton(); this.FlexibleMaterialFormBindingSource = new System.Windows.Forms.BindingSource(this.components); this.messageContainer = new System.Windows.Forms.Panel(); + this.materialLabel1 = new MaterialSkin.Controls.MaterialLabel(); this.pictureBoxForIcon = new System.Windows.Forms.PictureBox(); this.richTextBoxMessage = new MaterialSkin.Controls.MaterialMultiLineTextBox(); + this.leftButton = new MaterialSkin.Controls.MaterialButton(); this.middleButton = new MaterialSkin.Controls.MaterialButton(); this.rightButton = new MaterialSkin.Controls.MaterialButton(); ((System.ComponentModel.ISupportInitialize)(this.FlexibleMaterialFormBindingSource)).BeginInit(); @@ -83,46 +103,40 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.pictureBoxForIcon)).BeginInit(); this.SuspendLayout(); // - // leftButton - // - this.leftButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.leftButton.AutoSize = false; - this.leftButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.leftButton.Depth = 0; - this.leftButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.leftButton.DrawShadows = true; - this.leftButton.HighEmphasis = false; - this.leftButton.Icon = null; - this.leftButton.Location = new System.Drawing.Point(44, 163); - this.leftButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); - this.leftButton.MinimumSize = new System.Drawing.Size(0, 24); - this.leftButton.MouseState = MaterialSkin.MouseState.HOVER; - this.leftButton.Name = "leftButton"; - this.leftButton.Size = new System.Drawing.Size(108, 36); - this.leftButton.TabIndex = 2; - this.leftButton.Text = "OK"; - this.leftButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; - this.leftButton.UseAccentColor = false; - this.leftButton.UseVisualStyleBackColor = true; - this.leftButton.Visible = false; - // // messageContainer // this.messageContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.messageContainer.BackColor = System.Drawing.Color.White; + this.messageContainer.Controls.Add(this.materialLabel1); this.messageContainer.Controls.Add(this.pictureBoxForIcon); this.messageContainer.Controls.Add(this.richTextBoxMessage); - this.messageContainer.Location = new System.Drawing.Point(0, 65); + this.messageContainer.Location = new System.Drawing.Point(1, 65); this.messageContainer.Name = "messageContainer"; - this.messageContainer.Size = new System.Drawing.Size(388, 81); + this.messageContainer.Size = new System.Drawing.Size(382, 89); this.messageContainer.TabIndex = 1; // + // materialLabel1 + // + this.materialLabel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.materialLabel1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlexibleMaterialFormBindingSource, "MessageText", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.materialLabel1.Depth = 0; + this.materialLabel1.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel1.Location = new System.Drawing.Point(56, 12); + this.materialLabel1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel1.Name = "materialLabel1"; + this.materialLabel1.Size = new System.Drawing.Size(314, 65); + this.materialLabel1.TabIndex = 9; + this.materialLabel1.Text = ""; + this.materialLabel1.Visible = false; + // // pictureBoxForIcon // this.pictureBoxForIcon.BackColor = System.Drawing.Color.Transparent; - this.pictureBoxForIcon.Location = new System.Drawing.Point(15, 19); + this.pictureBoxForIcon.Location = new System.Drawing.Point(12, 12); this.pictureBoxForIcon.Name = "pictureBoxForIcon"; this.pictureBoxForIcon.Size = new System.Drawing.Size(32, 32); this.pictureBoxForIcon.TabIndex = 8; @@ -139,36 +153,58 @@ private void InitializeComponent() this.richTextBoxMessage.Depth = 0; this.richTextBoxMessage.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.richTextBoxMessage.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.richTextBoxMessage.Hint = ""; - this.richTextBoxMessage.Location = new System.Drawing.Point(47, 2); + this.richTextBoxMessage.Location = new System.Drawing.Point(56, 12); this.richTextBoxMessage.Margin = new System.Windows.Forms.Padding(0); this.richTextBoxMessage.MouseState = MaterialSkin.MouseState.HOVER; this.richTextBoxMessage.Name = "richTextBoxMessage"; this.richTextBoxMessage.ReadOnly = true; this.richTextBoxMessage.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; - this.richTextBoxMessage.Size = new System.Drawing.Size(338, 78); + this.richTextBoxMessage.Size = new System.Drawing.Size(314, 65); this.richTextBoxMessage.TabIndex = 0; this.richTextBoxMessage.TabStop = false; this.richTextBoxMessage.Text = ""; this.richTextBoxMessage.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.richTextBoxMessage_LinkClicked); // + // leftButton + // + this.leftButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.leftButton.AutoSize = false; + this.leftButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.leftButton.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.leftButton.Depth = 0; + this.leftButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.leftButton.HighEmphasis = false; + this.leftButton.Icon = null; + this.leftButton.Location = new System.Drawing.Point(32, 163); + this.leftButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.leftButton.MinimumSize = new System.Drawing.Size(0, 24); + this.leftButton.MouseState = MaterialSkin.MouseState.HOVER; + this.leftButton.Name = "leftButton"; + this.leftButton.Size = new System.Drawing.Size(108, 36); + this.leftButton.TabIndex = 14; + this.leftButton.Text = "OK"; + this.leftButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; + this.leftButton.UseAccentColor = false; + this.leftButton.UseVisualStyleBackColor = true; + this.leftButton.Visible = false; + // // middleButton // - this.middleButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.middleButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom; this.middleButton.AutoSize = false; this.middleButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.middleButton.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; this.middleButton.Depth = 0; this.middleButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.middleButton.DrawShadows = true; this.middleButton.HighEmphasis = true; this.middleButton.Icon = null; - this.middleButton.Location = new System.Drawing.Point(160, 163); + this.middleButton.Location = new System.Drawing.Point(148, 163); this.middleButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.middleButton.MinimumSize = new System.Drawing.Size(0, 24); this.middleButton.MouseState = MaterialSkin.MouseState.HOVER; this.middleButton.Name = "middleButton"; this.middleButton.Size = new System.Drawing.Size(102, 36); - this.middleButton.TabIndex = 3; + this.middleButton.TabIndex = 15; this.middleButton.Text = "OK"; this.middleButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; this.middleButton.UseAccentColor = false; @@ -177,21 +213,21 @@ private void InitializeComponent() // // rightButton // - this.rightButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.rightButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom; this.rightButton.AutoSize = false; this.rightButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.rightButton.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; this.rightButton.Depth = 0; this.rightButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.rightButton.DrawShadows = true; this.rightButton.HighEmphasis = true; this.rightButton.Icon = null; - this.rightButton.Location = new System.Drawing.Point(270, 163); + this.rightButton.Location = new System.Drawing.Point(258, 163); this.rightButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.rightButton.MinimumSize = new System.Drawing.Size(0, 24); this.rightButton.MouseState = MaterialSkin.MouseState.HOVER; this.rightButton.Name = "rightButton"; this.rightButton.Size = new System.Drawing.Size(106, 36); - this.rightButton.TabIndex = 0; + this.rightButton.TabIndex = 13; this.rightButton.Text = "OK"; this.rightButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.rightButton.UseAccentColor = false; @@ -201,18 +237,16 @@ private void InitializeComponent() // FlexibleMaterialForm // this.BackColor = System.Drawing.Color.White; - this.ClientSize = new System.Drawing.Size(388, 208); - this.Controls.Add(this.rightButton); + this.ClientSize = new System.Drawing.Size(384, 208); + this.Controls.Add(this.leftButton); this.Controls.Add(this.middleButton); + this.Controls.Add(this.rightButton); this.Controls.Add(this.messageContainer); - this.Controls.Add(this.leftButton); this.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlexibleMaterialFormBindingSource, "CaptionText", true)); this.MaximizeBox = false; this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(276, 140); this.Name = "FlexibleMaterialForm"; - this.RightToLeft = System.Windows.Forms.RightToLeft.Yes; - this.RightToLeftLayout = true; this.ShowIcon = false; this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; @@ -226,8 +260,6 @@ private void InitializeComponent() } - private MaterialButton leftButton; - /// /// Defines the FlexibleMaterialFormBindingSource /// @@ -243,9 +275,6 @@ private void InitializeComponent() /// private System.Windows.Forms.PictureBox pictureBoxForIcon; - private MaterialButton middleButton; - private MaterialButton rightButton; - //These separators are used for the "copy to clipboard" standard operation, triggered by Ctrl + C (behavior and clipboard format is like in a standard MessageBox) /// /// Defines the STANDARD_MESSAGEBOX_SEPARATOR_LINES @@ -317,10 +346,21 @@ private enum TwoLetterISOLanguageID /// Defines the it /// it, + + /// + /// Defines the fr + /// + fr, + + /// + /// Defines the ro + /// + ro, + /// - /// Define the fa + /// Defines the pl /// - fa + pl }; /// @@ -344,9 +384,20 @@ private enum TwoLetterISOLanguageID private static readonly String[] BUTTON_TEXTS_ITALIAN_IT = { "OK", "Annulla", "&Sì", "&No", "&Interrompi", "&Riprova", "&Ignora" }; /// - /// Defines the BUTTON_TEXTS_ITALIAN_FA + /// Defines the BUTTON_TEXTS_FRENCH_FR /// - private static readonly String[] BUTTON_TEXTS_PERSIAN_FA = { "حله", "انصراف", "&بله", "&خیر", "&بیخیال", "&تلاش مجدد", "&ولش‌کن" }; + private static readonly String[] BUTTON_TEXTS_FRENCH_FR = { "OK", "Annuler", "&Oui", "&Non", "&Interrompre", "&Recommencer", "&Ignorer" }; + + /// + /// Defines the BUTTON_TEXTS_ROMANIAN_RO + /// + private static readonly String[] BUTTON_TEXTS_ROMANIAN_RO = { "Acceptă", "Anulează", "&Da", "&Nu", "&Întrerupe", "&Reîncearcă", "&Ignoră" }; + + /// + /// Defines the BUTTON_TEXTS_ROMANIAN_PL + /// + private static readonly String[] BUTTON_TEXTS_POLISH_PL = { "OK", "Anuluj", "Tak", "Nie", "Opuść", "Powtórz", "Ignoruj" }; + /// /// Defines the defaultButton /// @@ -360,12 +411,12 @@ private enum TwoLetterISOLanguageID /// /// Defines the languageID /// - private TwoLetterISOLanguageID languageID = TwoLetterISOLanguageID.fa; + private TwoLetterISOLanguageID languageID = TwoLetterISOLanguageID.en; /// /// Prevents a default instance of the class from being created. /// - private FlexibleMaterialForm() + private FlexibleMaterialForm(RightToLeft rightToLeft) :base(rightToLeft) { InitializeComponent(); @@ -377,7 +428,8 @@ private FlexibleMaterialForm() materialSkinManager = MaterialSkinManager.Instance; materialSkinManager.AddFormToManage(this); - FONT = materialSkinManager.getFontByType(MaterialSkinManager.fontType.Body1); + FONT = materialSkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft); + messageContainer.BackColor = this.BackColor; } /// @@ -411,7 +463,10 @@ private string GetButtonText(ButtonID buttonID) case TwoLetterISOLanguageID.de: return BUTTON_TEXTS_GERMAN_DE[buttonTextArrayIndex]; case TwoLetterISOLanguageID.es: return BUTTON_TEXTS_SPANISH_ES[buttonTextArrayIndex]; case TwoLetterISOLanguageID.it: return BUTTON_TEXTS_ITALIAN_IT[buttonTextArrayIndex]; - case TwoLetterISOLanguageID.fa: return BUTTON_TEXTS_PERSIAN_FA[buttonTextArrayIndex]; + case TwoLetterISOLanguageID.fr: return BUTTON_TEXTS_FRENCH_FR[buttonTextArrayIndex]; + case TwoLetterISOLanguageID.ro: return BUTTON_TEXTS_ROMANIAN_RO[buttonTextArrayIndex]; + case TwoLetterISOLanguageID.pl: return BUTTON_TEXTS_POLISH_PL[buttonTextArrayIndex]; + default: return BUTTON_TEXTS_ENGLISH_EN[buttonTextArrayIndex]; } } @@ -493,6 +548,9 @@ private static void SetDialogSizes(FlexibleMaterialForm FlexibleMaterialForm, st var marginWidth = FlexibleMaterialForm.Width - FlexibleMaterialForm.richTextBoxMessage.Width; var marginHeight = FlexibleMaterialForm.Height - FlexibleMaterialForm.richTextBoxMessage.Height; + var minimumHeight = FlexibleMaterialForm.messageContainer.Top + (FlexibleMaterialForm.pictureBoxForIcon.Height + 2 * 8) + 54; + if (marginHeight < minimumHeight) marginHeight = minimumHeight; + //Set calculated dialog size (if the calculated values exceed the maximums, they were cut by windows forms automatically) FlexibleMaterialForm.Size = new Size(textWidth + marginWidth, textHeight + marginHeight); @@ -540,7 +598,7 @@ private static void SetDialogIcon(FlexibleMaterialForm FlexibleMaterialForm, Mes /// The FlexibleMessageBox dialog. /// The buttons. /// The default button. - private static void SetDialogButtons(FlexibleMaterialForm FlexibleMaterialForm, MessageBoxButtons buttons, MessageBoxDefaultButton defaultButton) + private static void SetDialogButtons(FlexibleMaterialForm FlexibleMaterialForm, MessageBoxButtons buttons, MessageBoxDefaultButton defaultButton, ButtonsPosition buttonsPosition) { //Set the buttons visibilities and texts switch (buttons) @@ -602,7 +660,7 @@ private static void SetDialogButtons(FlexibleMaterialForm FlexibleMaterialForm, FlexibleMaterialForm.rightButton.Text = FlexibleMaterialForm.GetButtonText(ButtonID.YES); FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Yes; - FlexibleMaterialForm.ControlBox = false; + //FlexibleMaterialForm.ControlBox = false; break; case MessageBoxButtons.YesNoCancel: @@ -636,6 +694,8 @@ private static void SetDialogButtons(FlexibleMaterialForm FlexibleMaterialForm, //Set default button (used in FlexibleMaterialForm_Shown) FlexibleMaterialForm.defaultButton = defaultButton; + + SetButtonsPosition(FlexibleMaterialForm, buttonsPosition); } /// @@ -759,19 +819,18 @@ internal void FlexibleMaterialForm_KeyUp(object sender, KeyEventArgs e) /// The icon. /// The default button. /// The dialog result. - public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) + public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, bool UseRichTextBox = true, ButtonsPosition buttonsPosition = ButtonsPosition.Right,RightToLeft RightToLeft=RightToLeft.No) { //Create a new instance of the FlexibleMessageBox form - var FlexibleMaterialForm = new FlexibleMaterialForm(); + var FlexibleMaterialForm = new FlexibleMaterialForm(RightToLeft); FlexibleMaterialForm.ShowInTaskbar = false; + FlexibleMaterialForm.Sizable = false; //Bind the caption and the message text FlexibleMaterialForm.CaptionText = caption; FlexibleMaterialForm.MessageText = text; FlexibleMaterialForm.FlexibleMaterialFormBindingSource.DataSource = FlexibleMaterialForm; - //Set the buttons visibilities and texts. Also set a default button. - SetDialogButtons(FlexibleMaterialForm, buttons, defaultButton); //Set the dialogs icon. When no icon is used: Correct placement and width of rich text box. SetDialogIcon(FlexibleMaterialForm, icon); @@ -779,6 +838,9 @@ public static DialogResult Show(IWin32Window owner, string text, string caption, //Set the font for all controls FlexibleMaterialForm.Font = FONT; FlexibleMaterialForm.richTextBoxMessage.Font = FONT; + FlexibleMaterialForm.richTextBoxMessage.Visible = UseRichTextBox; + FlexibleMaterialForm.materialLabel1.Font = FONT; + FlexibleMaterialForm.materialLabel1.Visible = !UseRichTextBox; //Calculate the dialogs start size (Try to auto-size width to show longest text row). Also set the maximum dialog size. SetDialogSizes(FlexibleMaterialForm, text, caption); @@ -786,6 +848,10 @@ public static DialogResult Show(IWin32Window owner, string text, string caption, //Set the dialogs start position when given. Otherwise center the dialog on the current screen. SetDialogStartPosition(FlexibleMaterialForm, owner); + + //Set the buttons visibilities and texts. Also set a default button. + //Moved after SetDialogSizes() because it needs Dialog.Width property set. + SetDialogButtons(FlexibleMaterialForm, buttons, defaultButton, buttonsPosition); //Show the dialog return FlexibleMaterialForm.ShowDialog(owner); } @@ -793,5 +859,102 @@ public static DialogResult Show(IWin32Window owner, string text, string caption, private void FlexibleMaterialForm_Load(object sender, EventArgs e) { } + + private static void SetButtonsPosition(FlexibleMaterialForm fMF, ButtonsPosition buttonsPosition) + { + const int padding = 10; + int visibleButtonsWidth = 0; + switch (buttonsPosition) + { + case ButtonsPosition.Center: + switch (fMF.visibleButtonsCount) + { + case 3: + fMF.middleButton.Left = fMF.Width / 2 - fMF.middleButton.Width / 2; + fMF.leftButton.Left = fMF.middleButton.Left - fMF.leftButton.Width - padding * 2; + fMF.rightButton.Left = fMF.middleButton.Right + padding * 2; + visibleButtonsWidth = fMF.leftButton.Width + fMF.middleButton.Width + fMF.rightButton.Width + padding * 6; + break; + case 2: + fMF.middleButton.Left = fMF.Width / 2 - fMF.middleButton.Width - padding; + fMF.rightButton.Left = fMF.Width / 2 + padding; + visibleButtonsWidth = fMF.middleButton.Width + fMF.rightButton.Width + padding * 4; + break; + case 1: + fMF.rightButton.Left = fMF.Width / 2 - fMF.rightButton.Width / 2; + visibleButtonsWidth = fMF.rightButton.Width + padding * 2; + break; + default: + break; + } + break; + case ButtonsPosition.Left: + switch (fMF.visibleButtonsCount) + { + case 3: + fMF.leftButton.Left = padding; + fMF.middleButton.Left = fMF.leftButton.Right + padding * 2; + fMF.rightButton.Left = fMF.middleButton.Right + padding * 2; + visibleButtonsWidth = fMF.leftButton.Width + fMF.middleButton.Width + fMF.rightButton.Width + padding * 6; + break; + case 2: + fMF.middleButton.Left = padding; + fMF.rightButton.Left = fMF.middleButton.Right + padding * 2; + visibleButtonsWidth = fMF.middleButton.Width + fMF.rightButton.Width + padding * 4; + break; + case 1: + fMF.rightButton.Left = padding; + visibleButtonsWidth = fMF.rightButton.Width + padding * 2; + break; + default: + break; + } + break; + case ButtonsPosition.Right: + // This alignment is simplest, in this alignment doesn't care how many buttons are visible. + // Always the buttons visibility order is right, right + middle, right + middle + left + fMF.rightButton.Left = fMF.Width - fMF.rightButton.Width - padding; + fMF.middleButton.Left = fMF.rightButton.Left - fMF.middleButton.Width - padding * 2; + fMF.leftButton.Left = fMF.middleButton.Left - fMF.leftButton.Width - padding * 2; + switch (fMF.visibleButtonsCount) + { + case 3: + visibleButtonsWidth = fMF.leftButton.Width + fMF.middleButton.Width + fMF.rightButton.Width + padding * 6; + break; + case 2: + visibleButtonsWidth = fMF.middleButton.Width + fMF.rightButton.Width + padding * 4; + break; + case 1: + visibleButtonsWidth = fMF.rightButton.Width + padding * 2; + break; + default: + break; + } + break; + case ButtonsPosition.Fill: + switch (fMF.visibleButtonsCount) + { + case 3: + fMF.leftButton.Left = padding; + fMF.middleButton.Left = fMF.Width / 2 - fMF.middleButton.Width / 2; + fMF.rightButton.Left = fMF.Width - fMF.rightButton.Width - padding * 2; + visibleButtonsWidth = fMF.leftButton.Width + fMF.middleButton.Width + fMF.rightButton.Width + padding * 6; + break; + case 2: + fMF.middleButton.Left = padding; + fMF.rightButton.Left = fMF.Width - fMF.rightButton.Width - padding * 2; + visibleButtonsWidth = fMF.middleButton.Width + fMF.rightButton.Width + padding * 4; + break; + case 1: + fMF.rightButton.Left = fMF.Width / 2 - fMF.middleButton.Width / 2; + visibleButtonsWidth = fMF.rightButton.Width + padding * 2; + break; + default: + break; + } + break; + } + fMF.Width = Math.Max(fMF.Width, visibleButtonsWidth); + } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialButton.cs b/MaterialSkin/Controls/MaterialButton.cs index 8ed4c334..2ed50adf 100644 --- a/MaterialSkin/Controls/MaterialButton.cs +++ b/MaterialSkin/Controls/MaterialButton.cs @@ -5,7 +5,9 @@ using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; + using System.Drawing.Imaging; using System.Drawing.Text; + using System.Globalization; using System.Windows.Forms; /// @@ -13,6 +15,16 @@ /// public class MaterialButton : Button, IMaterialControl { + + private const int ICON_SIZE = 24; + private const int MINIMUMWIDTH = 64; + private const int MINIMUMWIDTHICONONLY = 36; //64; + private const int HEIGHTDEFAULT = 36; + private const int HEIGHTDENSE = 32; + + // icons + private TextureBrush iconsBrushes; + /// /// Gets or sets the Depth /// @@ -38,12 +50,23 @@ public enum MaterialButtonType Contained } + public enum MaterialButtonDensity + { + Default, + Dense + } + + [Browsable(false)] + public Color NoAccentTextColor { get; set; } + + [Category("Material Skin")] public bool UseAccentColor { get { return useAccentColor; } set { useAccentColor = value; Invalidate(); } } + [Category("Material Skin")] /// /// Gets or sets a value indicating whether HighEmphasis /// @@ -53,21 +76,59 @@ public bool HighEmphasis set { highEmphasis = value; Invalidate(); } } + [DefaultValue(true)] + [Category("Material Skin")] + [Description("Draw Shadows around control")] public bool DrawShadows { get { return drawShadows; } set { drawShadows = value; Invalidate(); } } - /// - /// Gets or sets a value indicating whether HighEmphasis - /// + [Category("Material Skin")] public MaterialButtonType Type { get { return type; } - set { type = value; Invalidate(); } + set { type = value; preProcessIcons(); Invalidate(); } } + [Category("Material Skin")] + /// + /// Gets or sets a value indicating button density + /// + public MaterialButtonDensity Density + { + get { return _density; } + set + { + _density = value; + if (_density== MaterialButtonDensity.Dense) + Size = new Size(Size.Width, HEIGHTDENSE); + else + Size = new Size(Size.Width, HEIGHTDEFAULT); + Invalidate(); + } + } + + public enum CharacterCasingEnum + { + Normal, + Lower, + Upper, + Title + } + + public CharacterCasingEnum _cc; + [Category("Behavior"), DefaultValue(CharacterCasingEnum.Upper), Description("Change capitalization of Text property")] + public CharacterCasingEnum CharacterCasing + { + get => _cc; + set + { + _cc = value; + Invalidate(); + } + } protected override void InitLayout() { base.InitLayout(); @@ -95,6 +156,12 @@ protected override void OnVisibleChanged(EventArgs e) RemoveShadowPaintEvent(Parent, drawShadowOnParent); } + protected override void OnEnabledChanged(EventArgs e) + { + base.OnEnabledChanged(e); + Invalidate(); + } + private bool _shadowDrawEventSubscribed = false; private void AddShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) @@ -114,6 +181,7 @@ private void RemoveShadowPaintEvent(Control control, PaintEventHandler shadowPai } private readonly AnimationManager _hoverAnimationManager = null; + private readonly AnimationManager _focusAnimationManager = null; private readonly AnimationManager _animationManager = null; /// @@ -130,7 +198,9 @@ private void RemoveShadowPaintEvent(Control control, PaintEventHandler shadowPai private bool highEmphasis; private bool useAccentColor; private MaterialButtonType type; + private MaterialButtonDensity _density; + [Category("Material Skin")] /// /// Gets or sets the Icon /// @@ -140,6 +210,8 @@ public Image Icon set { _icon = value; + preProcessIcons(); + if (AutoSize) { Refresh(); @@ -165,6 +237,9 @@ public MaterialButton() HighEmphasis = true; UseAccentColor = false; Type = MaterialButtonType.Contained; + Density = MaterialButtonDensity.Default; + NoAccentTextColor = Color.Empty; + CharacterCasing = CharacterCasingEnum.Upper; _animationManager = new AnimationManager(false) { @@ -176,8 +251,23 @@ public MaterialButton() Increment = 0.12, AnimationType = AnimationType.Linear }; + _focusAnimationManager = new AnimationManager + { + Increment = 0.12, + AnimationType = AnimationType.Linear + }; + SkinManager.ColorSchemeChanged += sender => + { + preProcessIcons(); + }; + + SkinManager.ThemeChanged += sender => + { + preProcessIcons(); + }; _hoverAnimationManager.OnAnimationProgress += sender => Invalidate(); + _focusAnimationManager.OnAnimationProgress += sender => Invalidate(); _animationManager.OnAnimationProgress += sender => Invalidate(); AutoSizeMode = AutoSizeMode.GrowAndShrink; @@ -195,7 +285,14 @@ public override string Text set { base.Text = value; - _textSize = CreateGraphics().MeasureString(value.ToUpper(), SkinManager.getFontByType(MaterialSkinManager.fontType.Button)); + if (!String.IsNullOrEmpty(value)) + _textSize = CreateGraphics().MeasureString(value.ToUpper(), SkinManager.getFontByType(MaterialSkinManager.fontType.Button, RightToLeft)); + else + { + _textSize.Width = 0; + _textSize.Height = 0; + } + if (AutoSize) { Refresh(); @@ -222,6 +319,94 @@ private void drawShadowOnParent(object sender, PaintEventArgs e) DrawHelper.DrawSquareShadow(gp, rect); } + private void preProcessIcons() + { + if (Icon == null) return; + + int newWidth, newHeight; + //Resize icon if greater than ICON_SIZE + if (Icon.Width> ICON_SIZE || Icon.Height > ICON_SIZE) + { + //calculate aspect ratio + float aspect = Icon.Width / (float)Icon.Height; + + //calculate new dimensions based on aspect ratio + newWidth = (int)(ICON_SIZE * aspect); + newHeight = (int)(newWidth / aspect); + + //if one of the two dimensions exceed the box dimensions + if (newWidth > ICON_SIZE || newHeight > ICON_SIZE) + { + //depending on which of the two exceeds the box dimensions set it as the box dimension and calculate the other one based on the aspect ratio + if (newWidth > newHeight) + { + newWidth = ICON_SIZE; + newHeight = (int)(newWidth / aspect); + } + else + { + newHeight = ICON_SIZE; + newWidth = (int)(newHeight * aspect); + } + } + } + else + { + newWidth = Icon.Width; + newHeight = Icon.Height; + } + + Bitmap IconResized = new Bitmap(Icon, newWidth, newHeight); + + // Calculate lightness and color + float l = (SkinManager.Theme == MaterialSkinManager.Themes.LIGHT & (highEmphasis == false | Enabled == false | Type != MaterialButtonType.Contained)) ? 0f : 1.5f; + + // Create matrices + float[][] matrixGray = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, Enabled ? .7f : .3f, 0}, // alpha scale factor + new float[] { l, l, l, 0, 1}};// offset + + + ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); + + ImageAttributes grayImageAttributes = new ImageAttributes(); + + // Set color matrices + grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + + // Image Rect + Rectangle destRect = new Rectangle(0, 0, ICON_SIZE, ICON_SIZE); + + // Create a pre-processed copy of the image (GRAY) + Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gGray = Graphics.FromImage(bgray)) + { + gGray.DrawImage(IconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, grayImageAttributes); + } + + // added processed image to brush for drawing + TextureBrush textureBrushGray = new TextureBrush(bgray); + + textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + + // Translate the brushes to the correct positions + var iconRect = new Rectangle(8, (Height/2 - ICON_SIZE / 2), ICON_SIZE, ICON_SIZE); + + textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - IconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - IconResized.Height / 2); + + iconsBrushes = textureBrushGray; + } + /// /// The OnPaint /// @@ -234,6 +419,7 @@ protected override void OnPaint(PaintEventArgs pevent) g.SmoothingMode = SmoothingMode.AntiAlias; double hoverAnimProgress = _hoverAnimationManager.GetProgress(); + double focusAnimProgress = _focusAnimationManager.GetProgress(); g.Clear(Parent.BackColor); @@ -277,14 +463,31 @@ protected override void OnPaint(PaintEventArgs pevent) } //Hover - using (SolidBrush hoverBrush = new SolidBrush(Color.FromArgb( - (int)(hoverAnimProgress * SkinManager.BackgroundFocusColor.A), (UseAccentColor ? (HighEmphasis && Type == MaterialButtonType.Contained ? - SkinManager.ColorScheme.AccentColor.Lighten(0.5f) : // Contained with Emphasis - with accent - SkinManager.ColorScheme.AccentColor) : // Not Contained Or Low Emphasis - with accent - (Type == MaterialButtonType.Contained && HighEmphasis ? SkinManager.ColorScheme.LightPrimaryColor : // Contained with Emphasis without accent - SkinManager.ColorScheme.PrimaryColor)).RemoveAlpha()))) // Normal or Emphasis without accent - { - g.FillPath(hoverBrush, buttonPath); + if (hoverAnimProgress > 0) + { + using (SolidBrush hoverBrush = new SolidBrush(Color.FromArgb( + (int)(HighEmphasis && Type == MaterialButtonType.Contained ? hoverAnimProgress * 80 : hoverAnimProgress * SkinManager.BackgroundHoverColor.A), (UseAccentColor ? (HighEmphasis && Type == MaterialButtonType.Contained ? + SkinManager.ColorScheme.AccentColor.Lighten(0.5f) : // Contained with Emphasis - with accent + SkinManager.ColorScheme.AccentColor) : // Not Contained Or Low Emphasis - with accent + (Type == MaterialButtonType.Contained && HighEmphasis ? SkinManager.ColorScheme.LightPrimaryColor : // Contained with Emphasis without accent + SkinManager.ColorScheme.PrimaryColor)).RemoveAlpha()))) // Normal or Emphasis without accent + { + g.FillPath(hoverBrush, buttonPath); + } + } + + //Focus + if (focusAnimProgress > 0) + { + using (SolidBrush focusBrush = new SolidBrush(Color.FromArgb( + (int)(HighEmphasis && Type == MaterialButtonType.Contained ? focusAnimProgress * 80 : focusAnimProgress * SkinManager.BackgroundFocusColor.A), (UseAccentColor ? (HighEmphasis && Type == MaterialButtonType.Contained ? + SkinManager.ColorScheme.AccentColor.Lighten(0.5f) : // Contained with Emphasis - with accent + SkinManager.ColorScheme.AccentColor) : // Not Contained Or Low Emphasis - with accent + (Type == MaterialButtonType.Contained && HighEmphasis ? SkinManager.ColorScheme.LightPrimaryColor : // Contained with Emphasis without accent + SkinManager.ColorScheme.PrimaryColor)).RemoveAlpha()))) // Normal or Emphasis without accent + { + g.FillPath(focusBrush, buttonPath); + } } if (Type == MaterialButtonType.Outlined) @@ -321,43 +524,48 @@ protected override void OnPaint(PaintEventArgs pevent) g.ResetClip(); } - //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); - } - //Text var textRect = ClientRectangle; if (Icon != null) { - textRect.Width -= 8 + 24 + 4 + 8; // left padding + icon width + space between Icon and Text + right padding - textRect.X += 8 + 24 + 4; // left padding + icon width + space between Icon and Text + textRect.Width -= 8 + ICON_SIZE + 4 + 8; // left padding + icon width + space between Icon and Text + right padding + textRect.X += 8 + ICON_SIZE + 4; // left padding + icon width + space between Icon and Text } Color textColor = Enabled ? (HighEmphasis ? (Type == MaterialButtonType.Text || Type == MaterialButtonType.Outlined) ? - (UseAccentColor ? SkinManager.ColorScheme.AccentColor : // Outline or Text and accent and emphasis - SkinManager.ColorScheme.PrimaryColor) : // Outline or Text and emphasis + UseAccentColor ? SkinManager.ColorScheme.AccentColor : // Outline or Text and accent and emphasis + NoAccentTextColor == Color.Empty ? + SkinManager.ColorScheme.PrimaryColor : // Outline or Text and emphasis + NoAccentTextColor : // User defined Outline or Text and emphasis SkinManager.ColorScheme.TextColor : // Contained and Emphasis SkinManager.TextHighEmphasisColor) : // Cointained and accent SkinManager.TextDisabledOrHintColor; // Disabled using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { - NativeText.DrawTransparentText(Text.ToUpper(), SkinManager.getLogFontByType(MaterialSkinManager.fontType.Button), + NativeText.DrawMultilineTransparentText( + CharacterCasing == CharacterCasingEnum.Upper ? base.Text.ToUpper() : CharacterCasing == CharacterCasingEnum.Lower ? base.Text.ToLower() : + CharacterCasing == CharacterCasingEnum.Title ? CultureInfo.CurrentCulture.TextInfo.ToTitleCase(base.Text.ToLower()) : base.Text, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Button,RightToLeft), textColor, textRect.Location, textRect.Size, NativeTextRenderer.TextAlignFlags.Center | NativeTextRenderer.TextAlignFlags.Middle); } + + //Icon + var iconRect = new Rectangle(8, (Height / 2) - (ICON_SIZE / 2), ICON_SIZE, ICON_SIZE); + + if (string.IsNullOrEmpty(Text)) + { + // Center Icon + iconRect.X += 2; + } + + if (Icon != null) + { + g.FillRectangle(iconsBrushes, iconRect); + } } /// @@ -385,20 +593,22 @@ public override Size GetPreferredSize(Size proposedSize) { // 24 is for icon size // 4 is for the space between icon & text - extra += 24 + 4; + extra += ICON_SIZE + 4; } if (AutoSize) { s.Width = (int)Math.Ceiling(_textSize.Width); s.Width += extra; - s.Height = 36; + s.Height = HEIGHTDEFAULT; } else { s.Width += extra; - s.Height = 36; + s.Height = HEIGHTDEFAULT; } + if (Icon != null && Text.Length==0 && s.Width < MINIMUMWIDTHICONONLY) s.Width = MINIMUMWIDTHICONONLY; + else if (s.Width < MINIMUMWIDTH) s.Width = MINIMUMWIDTH; return s; } @@ -409,6 +619,9 @@ public override Size GetPreferredSize(Size proposedSize) protected override void OnCreateControl() { base.OnCreateControl(); + // before checking DesignMode property, as long as we need see Icon in proper position + Resize += (sender, args) => { preProcessIcons(); Invalidate(); }; + if (DesignMode) { return; @@ -446,16 +659,17 @@ protected override void OnCreateControl() GotFocus += (sender, args) => { - _hoverAnimationManager.StartNewAnimation(AnimationDirection.In); + _focusAnimationManager.StartNewAnimation(AnimationDirection.In); Invalidate(); }; LostFocus += (sender, args) => { - _hoverAnimationManager.StartNewAnimation(AnimationDirection.Out); + MouseState = MouseState.OUT; + _focusAnimationManager.StartNewAnimation(AnimationDirection.Out); Invalidate(); }; - KeyDown += (object sender, KeyEventArgs e) => + PreviewKeyDown += (object sender, PreviewKeyDownEventArgs e) => { if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Space) { @@ -465,4 +679,4 @@ protected override void OnCreateControl() }; } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialCheckBox.cs b/MaterialSkin/Controls/MaterialCheckBox.cs index 2ec76697..aac2ccf2 100644 --- a/MaterialSkin/Controls/MaterialCheckBox.cs +++ b/MaterialSkin/Controls/MaterialCheckBox.cs @@ -10,6 +10,7 @@ public class MaterialCheckbox : CheckBox, IMaterialControl { + #region Public properties [Browsable(false)] public int Depth { get; set; } @@ -42,6 +43,11 @@ public bool Ripple } } + [Browsable(true)] + public bool ReadOnly { get; set; } + #endregion + + #region Private fields private readonly AnimationManager _checkAM; private readonly AnimationManager _rippleAM; private readonly AnimationManager _hoverAM; @@ -51,7 +57,12 @@ public bool Ripple private const int CHECKBOX_SIZE = 18; private const int CHECKBOX_SIZE_HALF = CHECKBOX_SIZE / 2; private int _boxOffset; + private static readonly Point[] CheckmarkLine = { new Point(3, 8), new Point(7, 12), new Point(14, 5) }; + private bool hovered = false; + private CheckState _oldCheckState; + #endregion + #region Constructor public MaterialCheckbox() { _checkAM = new AnimationManager @@ -83,7 +94,9 @@ public MaterialCheckbox() Height = HEIGHT_RIPPLE; MouseLocation = new Point(-1, -1); } + #endregion + #region Overridden events protected override void OnSizeChanged(EventArgs e) { base.OnSizeChanged(e); @@ -97,15 +110,13 @@ public override Size GetPreferredSize(Size proposedSize) using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) { - strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1)); + strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft)); } int w = _boxOffset + TEXT_OFFSET + strSize.Width; return Ripple ? new Size(w, HEIGHT_RIPPLE) : new Size(w, HEIGHT_NO_RIPPLE); } - private static readonly Point[] CheckmarkLine = { new Point(3, 8), new Point(7, 12), new Point(14, 5) }; - protected override void OnPaint(PaintEventArgs pevent) { Graphics g = pevent.Graphics; @@ -115,9 +126,8 @@ protected override void OnPaint(PaintEventArgs pevent) // clear the control g.Clear(Parent.BackColor); - int CHECKBOX_CENTER_X = RightToLeft==RightToLeft.Yes?Width - (_boxOffset + CHECKBOX_SIZE_HALF +1) : _boxOffset + CHECKBOX_SIZE_HALF - 1; - int CHECKBOX_CENTER_Y = _boxOffset + CHECKBOX_SIZE_HALF - 1; - Point animationSource = new Point(CHECKBOX_CENTER_X, CHECKBOX_CENTER_Y); + int CHECKBOX_CENTER = _boxOffset + CHECKBOX_SIZE_HALF - 1; + Point animationSource = new Point(CHECKBOX_CENTER, CHECKBOX_CENTER); double animationProgress = _checkAM.GetProgress(); int colorAlpha = Enabled ? (int)(animationProgress * 255.0) : SkinManager.CheckBoxOffDisabledColor.A; @@ -155,9 +165,8 @@ protected override void OnPaint(PaintEventArgs pevent) } } - var boxOffset_x = RightToLeft == RightToLeft.Yes ? Width - CHECKBOX_SIZE - _boxOffset : _boxOffset; - Rectangle checkMarkLineFill = new Rectangle(boxOffset_x , _boxOffset, (int)(CHECKBOX_SIZE * animationProgress), CHECKBOX_SIZE); - using (GraphicsPath checkmarkPath = DrawHelper.CreateRoundRect(boxOffset_x - 0.5f, _boxOffset - 0.5f, CHECKBOX_SIZE, CHECKBOX_SIZE, 1)) + Rectangle checkMarkLineFill = new Rectangle(_boxOffset, _boxOffset, (int)(CHECKBOX_SIZE * animationProgress), CHECKBOX_SIZE); + using (GraphicsPath checkmarkPath = DrawHelper.CreateRoundRect(_boxOffset - 0.5f, _boxOffset - 0.5f, CHECKBOX_SIZE, CHECKBOX_SIZE, 1)) { if (Enabled) { @@ -179,18 +188,16 @@ protected override void OnPaint(PaintEventArgs pevent) g.DrawImageUnscaledAndClipped(DrawCheckMarkBitmap(), checkMarkLineFill); } - var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; + // draw checkbox text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { - var x = RightToLeft == RightToLeft.Yes ? 0 : _boxOffset + TEXT_OFFSET; - var w = RightToLeft == RightToLeft.Yes ? Width - (_boxOffset + TEXT_OFFSET) : Width; - Rectangle textLocation = new Rectangle(x, 0, w, HEIGHT_RIPPLE); - NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1), + Rectangle textLocation = new Rectangle(_boxOffset + TEXT_OFFSET, 0, Width - (_boxOffset + TEXT_OFFSET), HEIGHT_RIPPLE); + NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textLocation.Location, textLocation.Size, - textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); } // dispose used paint objects @@ -198,23 +205,6 @@ protected override void OnPaint(PaintEventArgs pevent) brush.Dispose(); } - private Bitmap DrawCheckMarkBitmap() - { - Bitmap checkMark = new Bitmap(CHECKBOX_SIZE, CHECKBOX_SIZE); - Graphics g = Graphics.FromImage(checkMark); - - // clear everything, transparent - g.Clear(Color.Transparent); - - // draw the checkmark lines - using (Pen pen = new Pen(Parent.BackColor, 2)) - { - g.DrawLines(pen, CheckmarkLine); - } - - return checkMark; - } - public override bool AutoSize { get { return base.AutoSize; } @@ -228,13 +218,6 @@ public override bool AutoSize } } - private bool IsMouseInCheckArea() - { - return ClientRectangle.Contains(MouseLocation); - } - - private bool hovered = false; - protected override void OnCreateControl() { base.OnCreateControl(); @@ -269,6 +252,7 @@ protected override void OnCreateControl() // _hoverAM.StartNewAnimation(AnimationDirection.In, new object[] { Checked }); // hovered = true; //} + _oldCheckState = CheckState; }; MouseLeave += (sender, args) => @@ -290,6 +274,7 @@ protected override void OnCreateControl() _rippleAM.SecondaryIncrement = 0; _rippleAM.StartNewAnimation(AnimationDirection.InOutIn, new object[] { Checked }); } + if (ReadOnly) CheckState = _oldCheckState; }; KeyDown += (sender, args) => @@ -299,6 +284,7 @@ protected override void OnCreateControl() _rippleAM.SecondaryIncrement = 0; _rippleAM.StartNewAnimation(AnimationDirection.InOutIn, new object[] { Checked }); } + if (ReadOnly) CheckState = _oldCheckState; }; MouseUp += (sender, args) => @@ -310,6 +296,7 @@ protected override void OnCreateControl() _hoverAM.StartNewAnimation(AnimationDirection.Out, new object[] { Checked }); hovered = false; } + if (ReadOnly) CheckState = _oldCheckState; }; KeyUp += (sender, args) => @@ -319,6 +306,7 @@ protected override void OnCreateControl() MouseState = MouseState.HOVER; _rippleAM.SecondaryIncrement = 0.08; } + if (ReadOnly) CheckState = _oldCheckState; }; MouseMove += (sender, args) => @@ -327,5 +315,30 @@ protected override void OnCreateControl() Cursor = IsMouseInCheckArea() ? Cursors.Hand : Cursors.Default; }; } + #endregion + + #region Private events and methods + private Bitmap DrawCheckMarkBitmap() + { + Bitmap checkMark = new Bitmap(CHECKBOX_SIZE, CHECKBOX_SIZE); + Graphics g = Graphics.FromImage(checkMark); + + // clear everything, transparent + g.Clear(Color.Transparent); + + // draw the checkmark lines + using (Pen pen = new Pen(Parent.BackColor, 2)) + { + g.DrawLines(pen, CheckmarkLine); + } + + return checkMark; + } + + private bool IsMouseInCheckArea() + { + return ClientRectangle.Contains(MouseLocation); + } + #endregion } } \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialCheckedListBox.cs b/MaterialSkin/Controls/MaterialCheckedListBox.cs index 81bd372f..eabc44ec 100644 --- a/MaterialSkin/Controls/MaterialCheckedListBox.cs +++ b/MaterialSkin/Controls/MaterialCheckedListBox.cs @@ -71,7 +71,6 @@ public void Add(string text, bool defaultValue) Add(cb); cb.Checked = defaultValue; cb.Text = text; - cb.RightToLeft = RightToLeft.Inherit; } public new void Add(MaterialSkin.Controls.MaterialCheckbox value) diff --git a/MaterialSkin/Controls/MaterialComboBox.cs b/MaterialSkin/Controls/MaterialComboBox.cs index a5491e63..eb81f29a 100644 --- a/MaterialSkin/Controls/MaterialComboBox.cs +++ b/MaterialSkin/Controls/MaterialComboBox.cs @@ -5,6 +5,7 @@ using System.ComponentModel; using System.Drawing; using System.Linq; + using System.Data; using System.Windows.Forms; public class MaterialComboBox : ComboBox, IMaterialControl @@ -52,7 +53,7 @@ public bool UseTallSize private string _hint = string.Empty; - [Category("Material Skin"), DefaultValue("")] + [Category("Material Skin"), DefaultValue(""), Localizable(true)] public string Hint { get { return _hint; } @@ -64,6 +65,24 @@ public string Hint } } + private int _startIndex; + public int StartIndex + { + get => _startIndex; + set + { + _startIndex = value; + try + { + base.SelectedIndex = value; + } + catch + { + } + Invalidate(); + } + } + private const int TEXT_SMALL_SIZE = 18; private const int TEXT_SMALL_Y = 4; private const int BOTTOM_PADDING = 3; @@ -84,7 +103,7 @@ public MaterialComboBox() UseTallSize = true; MaxDropDownItems = 4; - Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1); + Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle2, RightToLeft); BackColor = SkinManager.BackgroundColor; ForeColor = SkinManager.TextHighEmphasisColor; DrawMode = DrawMode.OwnerDrawVariable; @@ -98,7 +117,7 @@ public MaterialComboBox() AnimationType = AnimationType.EaseInOut }; _animationManager.OnAnimationProgress += sender => Invalidate(); - + _animationManager.OnAnimationFinished += sender => _animationManager.SetProgress(0); DropDownClosed += (sender, args) => { MouseState = MouseState.OUT; @@ -116,6 +135,7 @@ public MaterialComboBox() GotFocus += (sender, args) => { _animationManager.StartNewAnimation(AnimationDirection.In); + Invalidate(); }; MouseEnter += (sender, args) => { @@ -127,15 +147,24 @@ public MaterialComboBox() MouseState = MouseState.OUT; Invalidate(); }; + SelectedIndexChanged += (sender, args) => + { + Invalidate(); + }; + KeyUp += (sender, args) => + { + if (Enabled && DropDownStyle == ComboBoxStyle.DropDownList && (args.KeyCode == Keys.Delete || args.KeyCode == Keys.Back)) + { + SelectedIndex = -1; + Invalidate(); + } + }; } protected override void OnPaint(PaintEventArgs pevent) { Graphics g = pevent.Graphics; - var FORM_PADDING = RightToLeft == RightToLeft.Yes ? 0 : SkinManager.FORM_PADDING; - var Width = RightToLeft == RightToLeft.Yes ? this.Width - SkinManager.FORM_PADDING : this.Width; - g.Clear(Parent.BackColor); g.FillRectangle(Enabled ? Focused ? SkinManager.BackgroundFocusBrush : // Focused @@ -145,28 +174,37 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.BackgroundDisabledBrush // Disabled , ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, LINE_Y); + //Set color and brush + Color SelectedColor = new Color(); + if (UseAccent) + SelectedColor = SkinManager.ColorScheme.AccentColor; + else + SelectedColor = SkinManager.ColorScheme.PrimaryColor; + SolidBrush SelectedBrush = new SolidBrush(SelectedColor); + // Create and Draw the arrow System.Drawing.Drawing2D.GraphicsPath pth = new System.Drawing.Drawing2D.GraphicsPath(); - var TopRight_X= RightToLeft == RightToLeft.Yes ? 0.5f + SkinManager.FORM_PADDING : Width - 0.5f - FORM_PADDING; - PointF TopRight = new PointF(TopRight_X, (this.Height >> 1) - 2.5f); - var MidBottom_X = RightToLeft == RightToLeft.Yes ? 4.5f + SkinManager.FORM_PADDING : Width - 4.5f - FORM_PADDING; - PointF MidBottom = new PointF(MidBottom_X , (this.Height >> 1) + 2.5f); - var TopLeft_X = RightToLeft == RightToLeft.Yes ? 8.5f + SkinManager.FORM_PADDING : Width - 8.5f - FORM_PADDING; - PointF TopLeft = new PointF(TopLeft_X, (this.Height >> 1) - 2.5f); + PointF TopRight = new PointF(this.Width - 0.5f - SkinManager.FORM_PADDING, (this.Height >> 1) - 2.5f); + PointF MidBottom = new PointF(this.Width - 4.5f - SkinManager.FORM_PADDING, (this.Height >> 1) + 2.5f); + PointF TopLeft = new PointF(this.Width - 8.5f - SkinManager.FORM_PADDING, (this.Height >> 1) - 2.5f); pth.AddLine(TopLeft, TopRight); pth.AddLine(TopRight, MidBottom); g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; - g.FillPath((SolidBrush)(DroppedDown || Focused ? UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush : SkinManager.TextHighEmphasisBrush), pth); + g.FillPath((SolidBrush)(Enabled ? DroppedDown || Focused ? + SelectedBrush : //DroppedDown or Focused + SkinManager.TextHighEmphasisBrush : //Not DroppedDown and not Focused + new SolidBrush(DrawHelper.BlendColor(SkinManager.TextHighEmphasisColor, SkinManager.SwitchOffDisabledThumbColor, 197)) //Disabled + ), pth); g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; // HintText bool userTextPresent = SelectedIndex >= 0; - Rectangle hintRect = new Rectangle(FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); + Rectangle hintRect = new Rectangle(SkinManager.FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); int hintTextSize = 16; // bottom line base - g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, this.Width, 1); + g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, Width, 1); if (!_animationManager.IsAnimating()) { @@ -174,14 +212,14 @@ protected override void OnPaint(PaintEventArgs pevent) if (hasHint && UseTallSize && (DroppedDown || Focused || SelectedIndex >= 0)) { // hint text - hintRect = new Rectangle(FORM_PADDING, TEXT_SMALL_Y, Width, TEXT_SMALL_SIZE); + hintRect = new Rectangle(SkinManager.FORM_PADDING, TEXT_SMALL_Y, Width, TEXT_SMALL_SIZE); hintTextSize = 12; } // bottom line if (DroppedDown || Focused) { - g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, 0, LINE_Y, this.Width, 2); + g.FillRectangle(SelectedBrush, 0, LINE_Y, Width, 2); } } else @@ -193,7 +231,7 @@ protected override void OnPaint(PaintEventArgs pevent) if (hasHint && UseTallSize) { hintRect = new Rectangle( - FORM_PADDING, + SkinManager.FORM_PADDING, userTextPresent && !_animationManager.IsAnimating() ? (TEXT_SMALL_Y) : ClientRectangle.Y + (int)((TEXT_SMALL_Y - ClientRectangle.Y) * animationProgress), Width, userTextPresent && !_animationManager.IsAnimating() ? (TEXT_SMALL_SIZE) : (int)(LINE_Y + (TEXT_SMALL_SIZE - LINE_Y) * animationProgress)); @@ -203,28 +241,28 @@ protected override void OnPaint(PaintEventArgs pevent) // Line Animation int LineAnimationWidth = (int)(Width * animationProgress); int LineAnimationX = (Width / 2) - (LineAnimationWidth / 2); - g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); + g.FillRectangle(SelectedBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); } - var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; // Calc text Rect Rectangle textRect = new Rectangle( - Width - (ClientRectangle.Width - FORM_PADDING * 3 - 8), + SkinManager.FORM_PADDING, hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, - ClientRectangle.Width - FORM_PADDING * 3 - 8, + ClientRectangle.Width - SkinManager.FORM_PADDING * 3 - 8, hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); g.Clip = new Region(textRect); + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { // Draw user text NativeText.DrawTransparentText( Text, - SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1), + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textRect.Location, textRect.Size, - textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); } g.ResetClip(); @@ -236,15 +274,14 @@ protected override void OnPaint(PaintEventArgs pevent) { NativeText.DrawTransparentText( Hint, - SkinManager.getTextBoxFontBySize(hintTextSize), - Enabled ? DroppedDown || Focused ? UseAccent ? - SkinManager.ColorScheme.AccentColor : // Focus Accent - SkinManager.ColorScheme.PrimaryColor : // Focus Primary + SkinManager.getTextBoxFontBySize(hintTextSize,RightToLeft), + Enabled ? DroppedDown || Focused ? + SelectedColor : // Focus SkinManager.TextMediumEmphasisColor : // not focused SkinManager.TextDisabledOrHintColor, // Disabled hintRect.Location, hintRect.Size, - textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); } } } @@ -256,9 +293,6 @@ private void CustomMeasureItem(object sender, System.Windows.Forms.MeasureItemEv private void CustomDrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) { - var FORM_PADDING = RightToLeft == RightToLeft.Yes ? 0 : SkinManager.FORM_PADDING; - var Width = RightToLeft == RightToLeft.Yes ? e.Bounds.Size.Width - SkinManager.FORM_PADDING : e.Bounds.Size.Width; - if (e.Index < 0 || e.Index > Items.Count || !Focused) return; Graphics g = e.Graphics; @@ -271,26 +305,35 @@ private void CustomDrawItem(object sender, System.Windows.Forms.DrawItemEventArg { g.FillRectangle(SkinManager.BackgroundHoverBrush, e.Bounds); } - + string Text = ""; if (!string.IsNullOrWhiteSpace(DisplayMember)) { - Text = Items[e.Index].GetType().GetProperty(DisplayMember).GetValue(Items[e.Index], null).ToString(); + if (!Items[e.Index].GetType().Equals(typeof(DataRowView))) + { + var item = Items[e.Index].GetType().GetProperty(DisplayMember).GetValue(Items[e.Index]); + Text = item.ToString(); + } + else + { + var table = ((DataRow)Items[e.Index].GetType().GetProperty("Row").GetValue(Items[e.Index])).Table; + Text = table.Rows[e.Index][DisplayMember].ToString(); + } } else { Text = Items[e.Index].ToString(); } - var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { NativeText.DrawTransparentText( Text, - SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1), - SkinManager.TextHighEmphasisColor, - new Point(e.Bounds.Location.X + FORM_PADDING, e.Bounds.Location.Y), - new Size(Width - FORM_PADDING * 2, e.Bounds.Size.Height), - textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); + SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), + SkinManager.TextHighEmphasisNoAlphaColor, + new Point(e.Bounds.Location.X + SkinManager.FORM_PADDING, e.Bounds.Location.Y), + new Size(e.Bounds.Size.Width - SkinManager.FORM_PADDING * 2, e.Bounds.Size.Height), + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); ; } } @@ -327,8 +370,7 @@ public void recalculateAutoSize() if (!AutoResize) return; int w = DropDownWidth; - var FORM_PADDING = RightToLeft == RightToLeft.Yes ? 0 : SkinManager.FORM_PADDING; - int padding = FORM_PADDING * 3; + int padding = SkinManager.FORM_PADDING * 3; int vertScrollBarWidth = (Items.Count > MaxDropDownItems) ? SystemInformation.VerticalScrollBarWidth : 0; Graphics g = CreateGraphics(); @@ -337,7 +379,7 @@ public void recalculateAutoSize() var itemsList = this.Items.Cast().Select(item => item.ToString()); foreach (string s in itemsList) { - int newWidth = NativeText.MeasureLogString(s, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width + vertScrollBarWidth + padding; + int newWidth = NativeText.MeasureLogString(s, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft)).Width + vertScrollBarWidth + padding; if (w < newWidth) w = newWidth; } } @@ -349,4 +391,4 @@ public void recalculateAutoSize() } } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialContextMenuStrip.cs b/MaterialSkin/Controls/MaterialContextMenuStrip.cs index a3989815..f2316469 100644 --- a/MaterialSkin/Controls/MaterialContextMenuStrip.cs +++ b/MaterialSkin/Controls/MaterialContextMenuStrip.cs @@ -7,6 +7,7 @@ using System.Drawing.Text; using System.Windows.Forms; + [ToolboxItem(false)] public class MaterialContextMenuStrip : ContextMenuStrip, IMaterialControl { //Properties for managing the material design properties @@ -29,7 +30,8 @@ public class MaterialContextMenuStrip : ContextMenuStrip, IMaterialControl public MaterialContextMenuStrip() { - Renderer = new MaterialToolStripRender(); + + Renderer = new MaterialToolStripRender(RightToLeft); AnimationManager = new AnimationManager(false) { @@ -80,7 +82,7 @@ public class MaterialToolStripMenuItem : ToolStripMenuItem public MaterialToolStripMenuItem() { AutoSize = false; - Size = new Size(120, 30); + Size = new Size(128, 32); } protected override ToolStripDropDown CreateDefaultDropDown() @@ -97,9 +99,16 @@ protected override ToolStripDropDown CreateDefaultDropDown() internal class MaterialToolStripRender : ToolStripProfessionalRenderer, IMaterialControl { + private const int LEFT_PADDING = 16; + private const int RIGHT_PADDING = 8; + //Properties for managing the material design properties public int Depth { get; set; } - + public RightToLeft RightToLeft; + public MaterialToolStripRender(RightToLeft _RightToLeft) + { + RightToLeft = _RightToLeft; + } public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; public MouseState MouseState { get; set; } @@ -110,11 +119,11 @@ protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e) g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; var itemRect = GetItemRect(e.Item); - var textRect = new Rectangle(24, itemRect.Y, itemRect.Width - (24 + 16), itemRect.Height); + var textRect = new Rectangle(LEFT_PADDING, itemRect.Y, itemRect.Width - (LEFT_PADDING + RIGHT_PADDING), itemRect.Height); using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { - NativeText.DrawTransparentText(e.Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body2), + NativeText.DrawTransparentText(e.Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body2, RightToLeft), e.Item.Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textRect.Location, textRect.Size, @@ -125,11 +134,11 @@ protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e) protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e) { var g = e.Graphics; - g.Clear(SkinManager.BackdropColor); + g.Clear(SkinManager.BackgroundColor); //Draw background var itemRect = GetItemRect(e.Item); - g.FillRectangle(e.Item.Selected && e.Item.Enabled ? SkinManager.BackgroundFocusBrush : SkinManager.BackdropBrush, itemRect); + g.FillRectangle(e.Item.Selected && e.Item.Enabled ? SkinManager.BackgroundFocusBrush : SkinManager.BackgroundBrush, itemRect); //Ripple animation var toolStrip = e.ToolStrip as MaterialContextMenuStrip; @@ -158,7 +167,7 @@ protected override void OnRenderSeparator(ToolStripSeparatorRenderEventArgs e) { var g = e.Graphics; - g.FillRectangle(SkinManager.BackdropBrush, e.Item.Bounds); + g.FillRectangle(SkinManager.BackgroundBrush, e.Item.Bounds); g.DrawLine( new Pen(SkinManager.DividersColor), new Point(e.Item.Bounds.Left, e.Item.Bounds.Height / 2), @@ -167,11 +176,7 @@ protected override void OnRenderSeparator(ToolStripSeparatorRenderEventArgs e) protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) { - var g = e.Graphics; - - g.DrawRectangle( - new Pen(SkinManager.DividersColor), - new Rectangle(e.AffectedBounds.X, e.AffectedBounds.Y, e.AffectedBounds.Width - 1, e.AffectedBounds.Height - 1)); + e.ToolStrip.BackColor = SkinManager.BackgroundColor; } protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e) @@ -196,7 +201,7 @@ protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e) private Rectangle GetItemRect(ToolStripItem item) { - return new Rectangle(0, item.ContentRectangle.Y, item.ContentRectangle.Width + 4, item.ContentRectangle.Height); + return new Rectangle(0, item.ContentRectangle.Y, item.ContentRectangle.Width , item.ContentRectangle.Height); } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialDialog.cs b/MaterialSkin/Controls/MaterialDialog.cs new file mode 100644 index 00000000..c5fa7b59 --- /dev/null +++ b/MaterialSkin/Controls/MaterialDialog.cs @@ -0,0 +1,326 @@ +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Drawing2D; + using System.Windows.Forms; + using System.Runtime.InteropServices; + + public class MaterialDialog : MaterialForm + { + + private const int LEFT_RIGHT_PADDING = 24; + private const int BUTTON_PADDING = 8; + private const int BUTTON_HEIGHT = 36; + private const int TEXT_TOP_PADDING = 17; + private const int TEXT_BOTTOM_PADDING = 28; + private int _header_Height = 40; + + private MaterialButton _validationButton = new MaterialButton(); + private MaterialButton _cancelButton = new MaterialButton(); + private AnimationManager _AnimationManager; + private bool CloseAnimation = false; + private Form _formOverlay; + private String _text; + private String _title; + + /// + /// The Collection for the Buttons + /// + //public ObservableCollection Buttons { get; set; } + + [DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")] + private static extern IntPtr CreateRoundRectRgn + ( + int nLeftRect, // x-coordinate of upper-left corner + int nTopRect, // y-coordinate of upper-left corner + int nRightRect, // x-coordinate of lower-right corner + int nBottomRect, // y-coordinate of lower-right corner + int nWidthEllipse, // width of ellipse + int nHeightEllipse // height of ellipse + ); + + /// + /// Constructer Setting up the Layout + /// + public MaterialDialog( + Form ParentForm, string Title, + string Text, string ValidationButtonText, + bool ShowCancelButton, + string CancelButtonText, + bool UseAccentColor, + RightToLeft rightToLeft = RightToLeft.No) :base(rightToLeft) + { + _formOverlay = new Form + { + BackColor = Color.Black, + Opacity = 0.5, + MinimizeBox = false, + MaximizeBox = false, + Text = "", + ShowIcon = false, + ControlBox = false, + FormBorderStyle = FormBorderStyle.None, + Size = new Size(ParentForm.Width, ParentForm.Height), + ShowInTaskbar = false, + Owner = ParentForm, + Visible = true, + Location = new Point(ParentForm.Location.X, ParentForm.Location.Y), + Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom, + }; + + _title = Title; + if (Title.Length == 0) + _header_Height = 0; + else + _header_Height = 40; + + _text = Text; + ShowInTaskbar = false; + Sizable = false; + + BackColor = SkinManager.BackgroundColor; + FormStyle = FormStyles.StatusAndActionBar_None; + + _AnimationManager = new AnimationManager(); + _AnimationManager.AnimationType = AnimationType.EaseOut; + _AnimationManager.Increment = 0.03; + _AnimationManager.OnAnimationProgress += _AnimationManager_OnAnimationProgress; + + _validationButton = new MaterialButton + { + AutoSize = false, + DialogResult = DialogResult.OK, + DrawShadows = false, + Type = MaterialButton.MaterialButtonType.Text, + UseAccentColor = UseAccentColor, + Text = ValidationButtonText + }; + _cancelButton = new MaterialButton + { + AutoSize = false, + DialogResult = DialogResult.Cancel, + DrawShadows = false, + Type = MaterialButton.MaterialButtonType.Text, + UseAccentColor = UseAccentColor, + Visible = ShowCancelButton, + Text = CancelButtonText + }; + + this.AcceptButton = _validationButton; + this.CancelButton = _cancelButton; + + if (!Controls.Contains(_validationButton)) + Controls.Add(_validationButton); + if (!Controls.Contains(_cancelButton)) + Controls.Add(_cancelButton); + + Width = 560; + int TextWidth = TextRenderer.MeasureText(_text, SkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft)).Width; + int RectWidth = Width - (2 * LEFT_RIGHT_PADDING) - BUTTON_PADDING; + int RectHeight = ((TextWidth / RectWidth) + 1) * 19; + Rectangle textRect = new Rectangle( + LEFT_RIGHT_PADDING, + _header_Height + TEXT_TOP_PADDING, + RectWidth, + RectHeight + 9); + + Height = _header_Height + TEXT_TOP_PADDING + textRect.Height + TEXT_BOTTOM_PADDING + 52; //560; + Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 6, 6)); + + int _buttonWidth = ((TextRenderer.MeasureText(ValidationButtonText, SkinManager.getFontByType(MaterialSkinManager.fontType.Button, RightToLeft))).Width + 32); + Rectangle _validationbuttonBounds = new Rectangle((Width) - BUTTON_PADDING - _buttonWidth, Height - BUTTON_PADDING - BUTTON_HEIGHT, _buttonWidth, BUTTON_HEIGHT); + _validationButton.Width = _validationbuttonBounds.Width; + _validationButton.Height = _validationbuttonBounds.Height; + _validationButton.Top = _validationbuttonBounds.Top; + _validationButton.Left = _validationbuttonBounds.Left; //Button minimum width management + _validationButton.Visible = true; + + _buttonWidth = ((TextRenderer.MeasureText(CancelButtonText, SkinManager.getFontByType(MaterialSkinManager.fontType.Button, RightToLeft))).Width + 32); + Rectangle _cancelbuttonBounds = new Rectangle((_validationbuttonBounds.Left) - BUTTON_PADDING - _buttonWidth, Height - BUTTON_PADDING - BUTTON_HEIGHT, _buttonWidth, BUTTON_HEIGHT); + _cancelButton.Width = _cancelbuttonBounds.Width; + _cancelButton.Height = _cancelbuttonBounds.Height; + _cancelButton.Top = _cancelbuttonBounds.Top; + _cancelButton.Left = _cancelbuttonBounds.Left; //Button minimum width management + + + //this.ShowDialog(); + //this Dispose(); + //return materialDialogResult; + } + + public MaterialDialog(Form ParentForm,RightToLeft rightToLeft = RightToLeft.No) : this(ParentForm, "Title", "Dialog box", "OK", false, "Cancel", false, rightToLeft) + { + } + + public MaterialDialog(Form ParentForm, string Text, RightToLeft rightToLeft = RightToLeft.No) : this(ParentForm, "Title", Text, "OK", false, "Cancel", false, rightToLeft) + { + } + + public MaterialDialog(Form ParentForm, string Title, string Text, RightToLeft rightToLeft = RightToLeft.No) : this(ParentForm, Title, Text, "OK", false, "Cancel", false, rightToLeft) + { + } + + public MaterialDialog(Form ParentForm, string Title, string Text, string ValidationButtonText, RightToLeft rightToLeft = RightToLeft.No) : this(ParentForm, Title, Text, ValidationButtonText, false, "Cancel", false, rightToLeft) + { + } + + public MaterialDialog(Form ParentForm, string Title, string Text, bool ShowCancelButton, RightToLeft rightToLeft = RightToLeft.No) : this(ParentForm, Title, Text, "OK", ShowCancelButton, "Cancel", false, rightToLeft) + { + } + + public MaterialDialog(Form ParentForm, string Title, string Text, bool ShowCancelButton, string CancelButtonText, RightToLeft rightToLeft = RightToLeft.No) : this(ParentForm, Title, Text, "OK", ShowCancelButton, CancelButtonText, false, rightToLeft) + { + } + + public MaterialDialog(Form ParentForm, string Title, string Text, string ValidationButtonText, bool ShowCancelButton, string CancelButtonText, RightToLeft rightToLeft = RightToLeft.No) : this(ParentForm, Title, Text, ValidationButtonText, ShowCancelButton, CancelButtonText, false, rightToLeft) + { + } + + + /// + /// Sets up the Starting Location and starts the Animation + /// + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + Location = new Point(Convert.ToInt32(Owner.Location.X + (Owner.Width / 2) - (Width / 2)), Convert.ToInt32(Owner.Location.Y + (Owner.Height/2) - (Height / 2))); + _AnimationManager.StartNewAnimation(AnimationDirection.In); + } + + /// + /// Animates the Form slides + /// + void _AnimationManager_OnAnimationProgress(object sender) + { + if (CloseAnimation) + { + Opacity = _AnimationManager.GetProgress(); + } + } + + /// + /// Ovverides the Paint to create the solid colored backcolor + /// + protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) + { + + Graphics g = e.Graphics; + g.SmoothingMode = SmoothingMode.AntiAlias; + + e.Graphics.Clear(BackColor); + + + // Calc title Rect + Rectangle titleRect = new Rectangle( + LEFT_RIGHT_PADDING, + 0, + Width - (2 * LEFT_RIGHT_PADDING) , + _header_Height); + + //Draw title + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + // Draw header text + NativeText.DrawTransparentText( + _title, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.H6, RightToLeft), + SkinManager.TextHighEmphasisColor, + titleRect.Location, + titleRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Bottom); + } + + // Calc text Rect + + int TextWidth = TextRenderer.MeasureText(_text, SkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft)).Width; + int RectWidth = Width - (2 * LEFT_RIGHT_PADDING) - BUTTON_PADDING; + int RectHeight = ((TextWidth / RectWidth) + 1) * 19; + + Rectangle textRect = new Rectangle( + LEFT_RIGHT_PADDING, + _header_Height+17, + RectWidth, + RectHeight +19); + + //Draw Text + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + // Draw header text + NativeText.DrawMultilineTransparentText( + _text, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft), + SkinManager.TextHighEmphasisColor, + textRect.Location, + textRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + + } + + /// + /// Overrides the Closing Event to Animate the Slide Out + /// + protected override void OnClosing(System.ComponentModel.CancelEventArgs e) + { + _formOverlay.Visible = false; + _formOverlay.Close(); + _formOverlay.Dispose(); + + DialogResult res = this.DialogResult; + + base.OnClosing(e); + } + + /// + /// Closes the Form after the pull out animation + /// + void _AnimationManager_OnAnimationFinished(object sender) + { + Close(); + } + + protected override bool ProcessDialogKey(Keys keyData) + { + if (Form.ModifierKeys == Keys.None && keyData == Keys.Escape) + { + this.Close(); + return true; + } + return base.ProcessDialogKey(keyData); + } + + private void InitializeComponent() + { + this.SuspendLayout(); + this.ClientSize = new System.Drawing.Size(560, 182); + this.Name = "Dialog"; + this.ResumeLayout(false); + + } + + /// + /// Prevents the Form from beeing dragged + /// + protected override void WndProc(ref Message message) + { + const int WM_SYSCOMMAND = 0x0112; + const int SC_MOVE = 0xF010; + + switch (message.Msg) + { + case WM_SYSCOMMAND: + int command = message.WParam.ToInt32() & 0xfff0; + if (command == SC_MOVE) + return; + break; + } + + base.WndProc(ref message); + } + + } +} diff --git a/MaterialSkin/Controls/MaterialDrawer - Copy (2).cs b/MaterialSkin/Controls/MaterialDrawer - Copy (2).cs new file mode 100644 index 00000000..2e4582aa --- /dev/null +++ b/MaterialSkin/Controls/MaterialDrawer - Copy (2).cs @@ -0,0 +1,787 @@ +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Drawing2D; + using System.Drawing.Imaging; + using System.Drawing.Text; + using System.Windows.Forms; + + public class MaterialDrawer : Control, IMaterialControl + { + // TODO: Invalidate when changing custom properties + + private bool _showIconsWhenHidden; + public new RightToLeft RightToLeft; + + [Category("Drawer")] + public bool ShowIconsWhenHidden + { + get + { + return _showIconsWhenHidden; + } + set + { + if (_showIconsWhenHidden != value) + { + _showIconsWhenHidden = value; + UpdateTabRects(); + preProcessIcons(); + showHideAnimation(); + Paint(new PaintEventArgs(CreateGraphics(), ClientRectangle)); + DrawerShowIconsWhenHiddenChanged?.Invoke(this); + } + } + } + + private bool _isOpen; + + [Category("Drawer")] + public bool IsOpen + { + get + { + return _isOpen; + } + set + { + _isOpen = value; + if (value) + Show(); + else + Hide(); + } + } + + [Category("Drawer")] + public bool AutoHide { get; set; } + + [Category("Drawer")] + public bool AutoShow { get; set; } + + [Category("Drawer")] + private bool _useColors; + + public bool UseColors + { + get + { + return _useColors; + } + set + { + _useColors = value; + preProcessIcons(); + Invalidate(); + } + } + + [Category("Drawer")] + private bool _highlightWithAccent; + + public bool HighlightWithAccent + { + get + { + return _highlightWithAccent; + } + set + { + _highlightWithAccent = value; + preProcessIcons(); + Invalidate(); + } + } + + [Category("Drawer")] + private bool _backgroundWithAccent; + + public bool BackgroundWithAccent + { + get + { + return _backgroundWithAccent; + } + set + { + _backgroundWithAccent = value; + Invalidate(); + } + } + + [Category("Drawer")] + public int IndicatorWidth { get; set; } + + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + public delegate void DrawerStateHandler(object sender); + + public event DrawerStateHandler DrawerStateChanged; + + public event DrawerStateHandler DrawerBeginOpen; + + public event DrawerStateHandler DrawerEndOpen; + + public event DrawerStateHandler DrawerBeginClose; + + public event DrawerStateHandler DrawerEndClose; + + public event DrawerStateHandler DrawerShowIconsWhenHiddenChanged; + + public event EventHandler CursorUpdate; + + // icons + private Dictionary iconsBrushes; + + private Dictionary iconsSelectedBrushes; + private Dictionary iconsSize; + private int prevLocation; + + private int rippleSize = 0; + + private MaterialTabControl _baseTabControl; + + [Category("Behavior")] + public MaterialTabControl BaseTabControl + { + get { return _baseTabControl; } + set + { + _baseTabControl = value; + if (_baseTabControl == null) + return; + + UpdateTabRects(); + preProcessIcons(); + + // Other helpers + + _previousSelectedTabIndex = _baseTabControl.SelectedIndex; + _baseTabControl.Deselected += (sender, args) => + { + _previousSelectedTabIndex = _baseTabControl.SelectedIndex; + }; + _baseTabControl.SelectedIndexChanged += (sender, args) => + { + _clickAnimManager.SetProgress(0); + _clickAnimManager.StartNewAnimation(AnimationDirection.In); + }; + _baseTabControl.ControlAdded += delegate + { + Invalidate(); + }; + _baseTabControl.ControlRemoved += delegate + { + Invalidate(); + }; + } + } + + private void preProcessIcons() + { + // pre-process and pre-allocate texture brushes (icons) + if (_baseTabControl == null || _baseTabControl.TabCount == 0 || _baseTabControl.ImageList == null || _drawerItemRects == null || _drawerItemRects.Count == 0) + return; + + // Calculate lightness and color + float l = UseColors ? SkinManager.ColorScheme.TextColor.R / 255 : SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? 0f : 1f; + float r = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.R : SkinManager.ColorScheme.PrimaryColor.R) / 255f; + float g = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.G : SkinManager.ColorScheme.PrimaryColor.G) / 255f; + float b = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.B : SkinManager.ColorScheme.PrimaryColor.B) / 255f; + + // Create matrices + float[][] matrixGray = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, .7f, 0}, // alpha scale factor + new float[] { l, l, l, 0, 1}};// offset + + float[][] matrixColor = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, 1, 0}, // alpha scale factor + new float[] { r, g, b, 0, 1}};// offset + + ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); + ColorMatrix colorMatrixColor = new ColorMatrix(matrixColor); + + ImageAttributes grayImageAttributes = new ImageAttributes(); + ImageAttributes colorImageAttributes = new ImageAttributes(); + + // Set color matrices + grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + colorImageAttributes.SetColorMatrix(colorMatrixColor, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + + // Create brushes + iconsBrushes = new Dictionary(_baseTabControl.TabPages.Count); + iconsSelectedBrushes = new Dictionary(_baseTabControl.TabPages.Count); + iconsSize = new Dictionary(_baseTabControl.TabPages.Count); + + foreach (TabPage tabPage in _baseTabControl.TabPages) + { + // skip items without image + if (String.IsNullOrEmpty(tabPage.ImageKey) || _drawerItemRects == null) + continue; + + // Image Rect + Rectangle destRect = new Rectangle(0, 0, _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); + + // Create a pre-processed copy of the image (GRAY) + Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gGray = Graphics.FromImage(bgray)) + { + gGray.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, grayImageAttributes); + } + + // Create a pre-processed copy of the image (PRIMARY COLOR) + Bitmap bcolor = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gColor = Graphics.FromImage(bcolor)) + { + gColor.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, colorImageAttributes); + } + + // added processed image to brush for drawing + TextureBrush textureBrushGray = new TextureBrush(bgray); + TextureBrush textureBrushColor = new TextureBrush(bcolor); + + textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + textureBrushColor.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + + // Translate the brushes to the correct positions + var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); + var rectangleX = RightToLeft == RightToLeft.Yes ? Width - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2) * 2) - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)) + : (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)); + Rectangle iconRect = new Rectangle( + rectangleX, + _drawerItemRects[currentTabIndex].Y + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2), + _baseTabControl.ImageList.Images[tabPage.ImageKey].Width + 18 , _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); + + textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, + iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); + textureBrushColor.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, + iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); + + // add to dictionary + iconsBrushes.Add(tabPage.ImageKey, textureBrushGray); + iconsSelectedBrushes.Add(tabPage.ImageKey, textureBrushColor); + iconsSize.Add(tabPage.ImageKey, new Rectangle(0, 0, iconRect.Width, iconRect.Height)); + } + } + + private int _previousSelectedTabIndex; + + private Point _animationSource; + + private readonly AnimationManager _clickAnimManager; + + private readonly AnimationManager _showHideAnimManager; + + private List _drawerItemRects; + private List _drawerItemPaths; + + private const int TAB_HEADER_PADDING = 24; + private const int BORDER_WIDTH = 7; + + private int drawerItemHeight; + + public int MinWidth; + private int _lastMouseY; + private int _lastLocationY; + + public MaterialDrawer(RightToLeft rightToLeft) + { + RightToLeft = rightToLeft; + SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); + Height = 120; + Width = 250; + IndicatorWidth = 0; + _isOpen = false; + ShowIconsWhenHidden = false; + AutoHide = false; + AutoShow = false; + HighlightWithAccent = true; + BackgroundWithAccent = false; + + _showHideAnimManager = new AnimationManager + { + AnimationType = AnimationType.EaseInOut, + Increment = 0.04 + }; + _showHideAnimManager.OnAnimationProgress += sender => + { + Invalidate(); + showHideAnimation(); + }; + _showHideAnimManager.OnAnimationFinished += sender => + { + if (_baseTabControl != null && _drawerItemRects.Count > 0) + rippleSize = _drawerItemRects[_baseTabControl.SelectedIndex].Width; + if (_isOpen) + { + DrawerEndOpen?.Invoke(this); + } + else + { + DrawerEndClose?.Invoke(this); + } + }; + + SkinManager.ColorSchemeChanged += sender => + { + preProcessIcons(); + }; + + SkinManager.ThemeChanged += sender => + { + preProcessIcons(); + }; + + _clickAnimManager = new AnimationManager + { + AnimationType = AnimationType.EaseOut, + Increment = 0.04 + }; + _clickAnimManager.OnAnimationProgress += sender => Invalidate(); + + MouseWheel += MaterialDrawer_MouseWheel; + } + + private void MaterialDrawer_MouseWheel(object sender, MouseEventArgs e) + { + int step = 20; + if (e.Delta > 0) + { + if (Location.Y < 0) + { + Location = new Point(Location.X, Location.Y + step > 0 ? 0 : Location.Y + step); + Height = Location.Y + step > 0 ? Parent.Height : Height - step; + } + } + else + { + if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) + { + Location = new Point(Location.X, Location.Y - step); + Height += step; + } + } + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + protected override void InitLayout() + { + drawerItemHeight = TAB_HEADER_PADDING * 2 - SkinManager.FORM_PADDING / 2; + MinWidth = (int)(SkinManager.FORM_PADDING * 1.5 + drawerItemHeight); + _showHideAnimManager.SetProgress(_isOpen ? 0 : 1); + showHideAnimation(); + Invalidate(); + + base.InitLayout(); + } + + private void showHideAnimation() + { + var showHideAnimProgress = _showHideAnimManager.GetProgress(); + if (_showHideAnimManager.IsAnimating()) + { + var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; + if (ShowIconsWhenHidden) + { + Location = new Point((int)((-Width + MinWidth) * showHideAnimProgress) * rtlDir, Location.Y); + } + else + { + Location = new Point((int)(-Width * showHideAnimProgress) * rtlDir, Location.Y); + } + } + else + { + if (_isOpen) + { + Location = new Point(0, Location.Y); + } + else + { + var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; + if (ShowIconsWhenHidden) + { + Location = new Point((int)(-Width + MinWidth) * rtlDir, Location.Y); + } + else + { + Location = new Point(-Width * rtlDir, Location.Y); + } + } + } + UpdateTabRects(); + } + + protected override void OnPaint(PaintEventArgs e) + { + Paint(e); + } + + private new void Paint(PaintEventArgs e) + { + var g = e.Graphics; + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + // redraw stuff + g.Clear(UseColors ? SkinManager.ColorScheme.PrimaryColor : SkinManager.BackdropColor); + + if (_baseTabControl == null) + return; + + if (!_clickAnimManager.IsAnimating() || _drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) + UpdateTabRects(); + + if (_drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) + return; + + // Click Animation + var clickAnimProgress = _clickAnimManager.GetProgress(); + // Show/Hide Drawer Animation + var showHideAnimProgress = _showHideAnimManager.GetProgress(); + var rSize = (int)(clickAnimProgress * rippleSize * 1.75); + + int dx = prevLocation - Location.X; + prevLocation = Location.X; + + // Ripple + if (_clickAnimManager.IsAnimating()) + { + var rippleBrush = new SolidBrush(Color.FromArgb((int)(70 - (clickAnimProgress * 70)), + UseColors ? SkinManager.ColorScheme.AccentColor : // Using colors + SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // light theme + SkinManager.ColorScheme.LightPrimaryColor)); // dark theme + + g.SetClip(_drawerItemPaths[_baseTabControl.SelectedIndex]); + g.FillEllipse(rippleBrush, new Rectangle(_animationSource.X + dx - (rSize / 2), _animationSource.Y - rSize / 2, rSize, rSize)); + g.ResetClip(); + rippleBrush.Dispose(); + } + + // Draw menu items + foreach (TabPage tabPage in _baseTabControl.TabPages) + { + var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); + + // Background + Brush bgBrush = new SolidBrush(Color.FromArgb(CalculateAlpha(60, 0, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), + UseColors ? _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.LightPrimaryColor : // using colors + _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : // defaul accent + SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // default light + SkinManager.ColorScheme.LightPrimaryColor)); // default dark + g.FillPath(bgBrush, _drawerItemPaths[currentTabIndex]); + bgBrush.Dispose(); + + // Text + Color textColor = Color.FromArgb(CalculateAlphaZeroWhenClosed(SkinManager.TextHighEmphasisColor.A, UseColors ? SkinManager.TextMediumEmphasisColor.A : 255, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), // alpha + UseColors ? (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) // Use colors - selected + : SkinManager.ColorScheme.TextColor) : // Use colors - not selected + (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) : // selected + SkinManager.TextHighEmphasisColor)); + + IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2, RightToLeft); + + Rectangle textRect = _drawerItemRects[currentTabIndex]; + var textRectX = RightToLeft == RightToLeft.Yes ? SkinManager.FORM_PADDING : _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); + textRect.X += textRectX; + textRect.Width -= SkinManager.FORM_PADDING << 2; + + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + var direction = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle : NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; + NativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, direction); + } + + // Icons + if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) + { + var rectangleX = RightToLeft == RightToLeft.Yes ? Width - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width/2)*2) - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1) : + _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1); + Rectangle iconRect = new Rectangle( + rectangleX, + _drawerItemRects[currentTabIndex].Y + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Height >> 1), + iconsSize[tabPage.ImageKey].Width + 18, iconsSize[tabPage.ImageKey].Height); + + if (ShowIconsWhenHidden) + { + iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + } + + g.FillRectangle(currentTabIndex == _baseTabControl.SelectedIndex ? iconsSelectedBrushes[tabPage.ImageKey] : iconsBrushes[tabPage.ImageKey], iconRect); + } + } + + // Draw divider if not using colors + if (!UseColors) + { + using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) + { + g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); + } + } + + // Animate tab indicator + var previousSelectedTabIndexIfHasOne = _previousSelectedTabIndex == -1 ? _baseTabControl.SelectedIndex : _previousSelectedTabIndex; + var previousActiveTabRect = _drawerItemRects[previousSelectedTabIndexIfHasOne]; + var activeTabPageRect = _drawerItemRects[_baseTabControl.SelectedIndex]; + + var y = previousActiveTabRect.Y + (int)((activeTabPageRect.Y - previousActiveTabRect.Y) * clickAnimProgress); + var x = ShowIconsWhenHidden ? -Location.X : 0; + var height = drawerItemHeight; + + g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, IndicatorWidth, height); + } + + public new void Show() + { + _isOpen = true; + DrawerStateChanged?.Invoke(this); + DrawerBeginOpen?.Invoke(this); + _showHideAnimManager.StartNewAnimation(AnimationDirection.Out); + } + + public new void Hide() + { + _isOpen = false; + DrawerStateChanged?.Invoke(this); + DrawerBeginClose?.Invoke(this); + _showHideAnimManager.StartNewAnimation(AnimationDirection.In); + } + + public void Toggle() + { + if (_isOpen) + Hide(); + else + Show(); + } + + private int CalculateAlphaZeroWhenClosed(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) + { + // Drawer is closed + if (!_isOpen && !_showHideAnimManager.IsAnimating()) + { + return 0; + } + // Active menu (no change) + if (tabIndex == _baseTabControl.SelectedIndex && (!_clickAnimManager.IsAnimating() || _showHideAnimManager.IsAnimating())) + { + return (int)(primaryA * showHideAnimProgress); + } + // Previous menu (changing) + if (tabIndex == _previousSelectedTabIndex && !_showHideAnimManager.IsAnimating()) + { + return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); + } + // Inactive menu (no change) + if (tabIndex != _baseTabControl.SelectedIndex) + { + return (int)(secondaryA * showHideAnimProgress); + } + // Active menu (changing) + return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); + } + + private int CalculateAlpha(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) + { + if (tabIndex == _baseTabControl.SelectedIndex && !_clickAnimManager.IsAnimating()) + { + return (int)(primaryA); + } + if (tabIndex != _previousSelectedTabIndex && tabIndex != _baseTabControl.SelectedIndex) + { + return secondaryA; + } + if (tabIndex == _previousSelectedTabIndex) + { + return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); + } + return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); + } + + protected override void OnMouseClick(MouseEventArgs e) + { + base.OnMouseClick(e); + + if (_drawerItemRects == null) + UpdateTabRects(); + for (var i = 0; i < _drawerItemRects.Count; i++) + { + if (_drawerItemRects[i].Contains(e.Location) && _lastLocationY == Location.Y) + { + _baseTabControl.SelectedIndex = i; + if (AutoHide && !AutoShow) + Hide(); + } + } + + _animationSource = e.Location; + } + + protected override void OnMouseDown(MouseEventArgs e) + { + _lastMouseY = e.Y; + _lastLocationY = Location.Y; // memorize Y location of drawer + base.OnMouseDown(e); + if (DesignMode) + return; + MouseState = MouseState.DOWN; + } + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + if (DesignMode) + return; + MouseState = MouseState.OUT; + } + + protected override void OnMouseMove(MouseEventArgs e) + { + if (DesignMode) + return; + + if (e.Button == MouseButtons.Left && e.Y != _lastMouseY && (Location.Y < 0 || Height < (8 + drawerItemHeight) * _drawerItemRects.Count)) + { + int diff = e.Y - _lastMouseY; + if (diff > 0) + { + if (Location.Y < 0) + { + Location = new Point(Location.X, Location.Y + diff > 0 ? 0 : Location.Y + diff); + Height = Parent.Height + Math.Abs(Location.Y); + } + } + else + { + if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) + { + Location = new Point(Location.X, Location.Y + diff); + Height = Parent.Height + Math.Abs(Location.Y); + } + } + //return; + } + + base.OnMouseMove(e); + + if (_drawerItemRects == null) + UpdateTabRects(); + + Cursor previousCursor = Cursor; + + if (e.Location.X + this.Location.X < BORDER_WIDTH) + { + if (e.Location.Y > this.Height - BORDER_WIDTH) + Cursor = Cursors.SizeNESW; //Bottom Left + else + Cursor = Cursors.SizeWE; //Left + } + else if (e.Location.Y > this.Height - BORDER_WIDTH) + { + Cursor = Cursors.SizeNS; //Bottom + } + else + { + if (e.Location.Y < _drawerItemRects[_drawerItemRects.Count - 1].Bottom && (e.Location.X + this.Location.X) >= BORDER_WIDTH) + Cursor = Cursors.Hand; + else + Cursor = Cursors.Default; + } + + if (previousCursor != Cursor) CursorUpdate?.Invoke(this, Cursor); + + } + + protected override void OnMouseEnter(EventArgs e) + { + base.OnMouseEnter(e); + if (AutoShow && _isOpen==false) + { + Show(); + } + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + + if (MouseState != MouseState.DOWN) + { + Cursor = Cursors.Default; + CursorUpdate?.Invoke(this, Cursor); + } + + if (AutoShow) + { + Hide(); + } + } + + private void UpdateTabRects() + { + //If there isn't a base tab control, the rects shouldn't be calculated + //or if there aren't tab pages in the base tab control, the list should just be empty + if (_baseTabControl == null || _baseTabControl.TabCount == 0 || SkinManager == null || _drawerItemRects == null) + { + _drawerItemRects = new List(); + _drawerItemPaths = new List(); + return; + } + + if (_drawerItemRects.Count != _baseTabControl.TabCount) + { + _drawerItemRects = new List(_baseTabControl.TabCount); + _drawerItemPaths = new List(_baseTabControl.TabCount); + + for (var i = 0; i < _baseTabControl.TabCount; i++) + { + _drawerItemRects.Add(new Rectangle()); + _drawerItemPaths.Add(new GraphicsPath()); + } + } + + //Calculate the bounds of each tab header specified in the base tab control + for (int i = 0; i < _baseTabControl.TabPages.Count; i++) + { + var LocationX = this.RightToLeft == RightToLeft.Yes ? 0 : Location.X; + _drawerItemRects[i] = (new Rectangle( + (int)(SkinManager.FORM_PADDING * 0.75) - (ShowIconsWhenHidden ? LocationX : 0), + (TAB_HEADER_PADDING * 2) * i + (int)(SkinManager.FORM_PADDING >> 1), + (Width + (ShowIconsWhenHidden ? LocationX : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, + drawerItemHeight)); + + _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, _drawerItemRects[i].Width, _drawerItemRects[i].Height), 4); + } + } + } +} diff --git a/MaterialSkin/Controls/MaterialDrawer - Copy (3).cs b/MaterialSkin/Controls/MaterialDrawer - Copy (3).cs new file mode 100644 index 00000000..4006c3ce --- /dev/null +++ b/MaterialSkin/Controls/MaterialDrawer - Copy (3).cs @@ -0,0 +1,787 @@ +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Drawing2D; + using System.Drawing.Imaging; + using System.Drawing.Text; + using System.Windows.Forms; + + public class MaterialDrawer : Control, IMaterialControl + { + // TODO: Invalidate when changing custom properties + + private bool _showIconsWhenHidden; + public new RightToLeft RightToLeft; + + [Category("Drawer")] + public bool ShowIconsWhenHidden + { + get + { + return _showIconsWhenHidden; + } + set + { + if (_showIconsWhenHidden != value) + { + _showIconsWhenHidden = value; + UpdateTabRects(); + preProcessIcons(); + showHideAnimation(); + Paint(new PaintEventArgs(CreateGraphics(), ClientRectangle)); + DrawerShowIconsWhenHiddenChanged?.Invoke(this); + } + } + } + + private bool _isOpen; + + [Category("Drawer")] + public bool IsOpen + { + get + { + return _isOpen; + } + set + { + _isOpen = value; + if (value) + Show(); + else + Hide(); + } + } + + [Category("Drawer")] + public bool AutoHide { get; set; } + + [Category("Drawer")] + public bool AutoShow { get; set; } + + [Category("Drawer")] + private bool _useColors; + + public bool UseColors + { + get + { + return _useColors; + } + set + { + _useColors = value; + preProcessIcons(); + Invalidate(); + } + } + + [Category("Drawer")] + private bool _highlightWithAccent; + + public bool HighlightWithAccent + { + get + { + return _highlightWithAccent; + } + set + { + _highlightWithAccent = value; + preProcessIcons(); + Invalidate(); + } + } + + [Category("Drawer")] + private bool _backgroundWithAccent; + + public bool BackgroundWithAccent + { + get + { + return _backgroundWithAccent; + } + set + { + _backgroundWithAccent = value; + Invalidate(); + } + } + + [Category("Drawer")] + public int IndicatorWidth { get; set; } + + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + public delegate void DrawerStateHandler(object sender); + + public event DrawerStateHandler DrawerStateChanged; + + public event DrawerStateHandler DrawerBeginOpen; + + public event DrawerStateHandler DrawerEndOpen; + + public event DrawerStateHandler DrawerBeginClose; + + public event DrawerStateHandler DrawerEndClose; + + public event DrawerStateHandler DrawerShowIconsWhenHiddenChanged; + + public event EventHandler CursorUpdate; + + // icons + private Dictionary iconsBrushes; + + private Dictionary iconsSelectedBrushes; + private Dictionary iconsSize; + private int prevLocation; + + private int rippleSize = 0; + + private MaterialTabControl _baseTabControl; + + [Category("Behavior")] + public MaterialTabControl BaseTabControl + { + get { return _baseTabControl; } + set + { + _baseTabControl = value; + if (_baseTabControl == null) + return; + + UpdateTabRects(); + preProcessIcons(); + + // Other helpers + + _previousSelectedTabIndex = _baseTabControl.SelectedIndex; + _baseTabControl.Deselected += (sender, args) => + { + _previousSelectedTabIndex = _baseTabControl.SelectedIndex; + }; + _baseTabControl.SelectedIndexChanged += (sender, args) => + { + _clickAnimManager.SetProgress(0); + _clickAnimManager.StartNewAnimation(AnimationDirection.In); + }; + _baseTabControl.ControlAdded += delegate + { + Invalidate(); + }; + _baseTabControl.ControlRemoved += delegate + { + Invalidate(); + }; + } + } + + private void preProcessIcons() + { + // pre-process and pre-allocate texture brushes (icons) + if (_baseTabControl == null || _baseTabControl.TabCount == 0 || _baseTabControl.ImageList == null || _drawerItemRects == null || _drawerItemRects.Count == 0) + return; + + // Calculate lightness and color + float l = UseColors ? SkinManager.ColorScheme.TextColor.R / 255 : SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? 0f : 1f; + float r = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.R : SkinManager.ColorScheme.PrimaryColor.R) / 255f; + float g = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.G : SkinManager.ColorScheme.PrimaryColor.G) / 255f; + float b = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.B : SkinManager.ColorScheme.PrimaryColor.B) / 255f; + + // Create matrices + float[][] matrixGray = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, .7f, 0}, // alpha scale factor + new float[] { l, l, l, 0, 1}};// offset + + float[][] matrixColor = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, 1, 0}, // alpha scale factor + new float[] { r, g, b, 0, 1}};// offset + + ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); + ColorMatrix colorMatrixColor = new ColorMatrix(matrixColor); + + ImageAttributes grayImageAttributes = new ImageAttributes(); + ImageAttributes colorImageAttributes = new ImageAttributes(); + + // Set color matrices + grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + colorImageAttributes.SetColorMatrix(colorMatrixColor, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + + // Create brushes + iconsBrushes = new Dictionary(_baseTabControl.TabPages.Count); + iconsSelectedBrushes = new Dictionary(_baseTabControl.TabPages.Count); + iconsSize = new Dictionary(_baseTabControl.TabPages.Count); + + foreach (TabPage tabPage in _baseTabControl.TabPages) + { + // skip items without image + if (String.IsNullOrEmpty(tabPage.ImageKey) || _drawerItemRects == null) + continue; + + // Image Rect + Rectangle destRect = new Rectangle(0, 0, _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); + + // Create a pre-processed copy of the image (GRAY) + Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gGray = Graphics.FromImage(bgray)) + { + gGray.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, grayImageAttributes); + } + + // Create a pre-processed copy of the image (PRIMARY COLOR) + Bitmap bcolor = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gColor = Graphics.FromImage(bcolor)) + { + gColor.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, colorImageAttributes); + } + + // added processed image to brush for drawing + TextureBrush textureBrushGray = new TextureBrush(bgray); + TextureBrush textureBrushColor = new TextureBrush(bcolor); + + textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + textureBrushColor.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + + // Translate the brushes to the correct positions + var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); + var rectangleX = RightToLeft == RightToLeft.Yes ? Width - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2) * 2) - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)) + : (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)); + Rectangle iconRect = new Rectangle( + rectangleX, + _drawerItemRects[currentTabIndex].Y + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2), + _baseTabControl.ImageList.Images[tabPage.ImageKey].Width , _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); + + textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, + iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); + textureBrushColor.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, + iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); + + // add to dictionary + iconsBrushes.Add(tabPage.ImageKey, textureBrushGray); + iconsSelectedBrushes.Add(tabPage.ImageKey, textureBrushColor); + iconsSize.Add(tabPage.ImageKey, new Rectangle(0, 0, iconRect.Width, iconRect.Height)); + } + } + + private int _previousSelectedTabIndex; + + private Point _animationSource; + + private readonly AnimationManager _clickAnimManager; + + private readonly AnimationManager _showHideAnimManager; + + private List _drawerItemRects; + private List _drawerItemPaths; + + private const int TAB_HEADER_PADDING = 24; + private const int BORDER_WIDTH = 7; + + private int drawerItemHeight; + + public int MinWidth; + private int _lastMouseY; + private int _lastLocationY; + + public MaterialDrawer(RightToLeft rightToLeft) + { + RightToLeft = rightToLeft; + SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); + Height = 120; + Width = 250; + IndicatorWidth = 0; + _isOpen = false; + ShowIconsWhenHidden = false; + AutoHide = false; + AutoShow = false; + HighlightWithAccent = true; + BackgroundWithAccent = false; + + _showHideAnimManager = new AnimationManager + { + AnimationType = AnimationType.EaseInOut, + Increment = 0.04 + }; + _showHideAnimManager.OnAnimationProgress += sender => + { + Invalidate(); + showHideAnimation(); + }; + _showHideAnimManager.OnAnimationFinished += sender => + { + if (_baseTabControl != null && _drawerItemRects.Count > 0) + rippleSize = _drawerItemRects[_baseTabControl.SelectedIndex].Width; + if (_isOpen) + { + DrawerEndOpen?.Invoke(this); + } + else + { + DrawerEndClose?.Invoke(this); + } + }; + + SkinManager.ColorSchemeChanged += sender => + { + preProcessIcons(); + }; + + SkinManager.ThemeChanged += sender => + { + preProcessIcons(); + }; + + _clickAnimManager = new AnimationManager + { + AnimationType = AnimationType.EaseOut, + Increment = 0.04 + }; + _clickAnimManager.OnAnimationProgress += sender => Invalidate(); + + MouseWheel += MaterialDrawer_MouseWheel; + } + + private void MaterialDrawer_MouseWheel(object sender, MouseEventArgs e) + { + int step = 20; + if (e.Delta > 0) + { + if (Location.Y < 0) + { + Location = new Point(Location.X, Location.Y + step > 0 ? 0 : Location.Y + step); + Height = Location.Y + step > 0 ? Parent.Height : Height - step; + } + } + else + { + if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) + { + Location = new Point(Location.X, Location.Y - step); + Height += step; + } + } + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + protected override void InitLayout() + { + drawerItemHeight = TAB_HEADER_PADDING * 2 - SkinManager.FORM_PADDING / 2; + MinWidth = (int)(SkinManager.FORM_PADDING * 1.5 + drawerItemHeight); + _showHideAnimManager.SetProgress(_isOpen ? 0 : 1); + showHideAnimation(); + Invalidate(); + + base.InitLayout(); + } + + private void showHideAnimation() + { + var showHideAnimProgress = _showHideAnimManager.GetProgress(); + if (_showHideAnimManager.IsAnimating()) + { + var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; + if (ShowIconsWhenHidden) + { + Location = new Point((int)((-Width + MinWidth) * showHideAnimProgress) * rtlDir, Location.Y); + } + else + { + Location = new Point((int)(-Width * showHideAnimProgress) * rtlDir, Location.Y); + } + } + else + { + if (_isOpen) + { + Location = new Point(0, Location.Y); + } + else + { + var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; + if (ShowIconsWhenHidden) + { + Location = new Point((int)(-Width + MinWidth) * rtlDir, Location.Y); + } + else + { + Location = new Point(-Width * rtlDir, Location.Y); + } + } + } + UpdateTabRects(); + } + + protected override void OnPaint(PaintEventArgs e) + { + Paint(e); + } + + private new void Paint(PaintEventArgs e) + { + var g = e.Graphics; + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + // redraw stuff + g.Clear(UseColors ? SkinManager.ColorScheme.PrimaryColor : SkinManager.BackdropColor); + + if (_baseTabControl == null) + return; + + if (!_clickAnimManager.IsAnimating() || _drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) + UpdateTabRects(); + + if (_drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) + return; + + // Click Animation + var clickAnimProgress = _clickAnimManager.GetProgress(); + // Show/Hide Drawer Animation + var showHideAnimProgress = _showHideAnimManager.GetProgress(); + var rSize = (int)(clickAnimProgress * rippleSize * 1.75); + + int dx = prevLocation - Location.X; + prevLocation = Location.X; + + // Ripple + if (_clickAnimManager.IsAnimating()) + { + var rippleBrush = new SolidBrush(Color.FromArgb((int)(70 - (clickAnimProgress * 70)), + UseColors ? SkinManager.ColorScheme.AccentColor : // Using colors + SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // light theme + SkinManager.ColorScheme.LightPrimaryColor)); // dark theme + + g.SetClip(_drawerItemPaths[_baseTabControl.SelectedIndex]); + g.FillEllipse(rippleBrush, new Rectangle(_animationSource.X + dx - (rSize / 2), _animationSource.Y - rSize / 2, rSize, rSize)); + g.ResetClip(); + rippleBrush.Dispose(); + } + + // Draw menu items + foreach (TabPage tabPage in _baseTabControl.TabPages) + { + var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); + + // Background + Brush bgBrush = new SolidBrush(Color.FromArgb(CalculateAlpha(60, 0, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), + UseColors ? _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.LightPrimaryColor : // using colors + _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : // defaul accent + SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // default light + SkinManager.ColorScheme.LightPrimaryColor)); // default dark + g.FillPath(bgBrush, _drawerItemPaths[currentTabIndex]); + bgBrush.Dispose(); + + // Text + Color textColor = Color.FromArgb(CalculateAlphaZeroWhenClosed(SkinManager.TextHighEmphasisColor.A, UseColors ? SkinManager.TextMediumEmphasisColor.A : 255, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), // alpha + UseColors ? (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) // Use colors - selected + : SkinManager.ColorScheme.TextColor) : // Use colors - not selected + (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) : // selected + SkinManager.TextHighEmphasisColor)); + + IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2, RightToLeft); + + Rectangle textRect = _drawerItemRects[currentTabIndex]; + var textRectX = RightToLeft == RightToLeft.Yes ? SkinManager.FORM_PADDING : _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); + textRect.X += textRectX; + textRect.Width -= SkinManager.FORM_PADDING << 2; + + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + var direction = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle : NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; + NativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, direction); + } + + // Icons + if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) + { + var rectangleX = RightToLeft == RightToLeft.Yes ? Width - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width/2)*2) - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1) : + _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1); + Rectangle iconRect = new Rectangle( + rectangleX, + _drawerItemRects[currentTabIndex].Y + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Height >> 1), + iconsSize[tabPage.ImageKey].Width, iconsSize[tabPage.ImageKey].Height); + + if (ShowIconsWhenHidden) + { + iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + } + + g.FillRectangle(currentTabIndex == _baseTabControl.SelectedIndex ? iconsSelectedBrushes[tabPage.ImageKey] : iconsBrushes[tabPage.ImageKey], iconRect); + } + } + + // Draw divider if not using colors + if (!UseColors) + { + using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) + { + g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); + } + } + + // Animate tab indicator + var previousSelectedTabIndexIfHasOne = _previousSelectedTabIndex == -1 ? _baseTabControl.SelectedIndex : _previousSelectedTabIndex; + var previousActiveTabRect = _drawerItemRects[previousSelectedTabIndexIfHasOne]; + var activeTabPageRect = _drawerItemRects[_baseTabControl.SelectedIndex]; + + var y = previousActiveTabRect.Y + (int)((activeTabPageRect.Y - previousActiveTabRect.Y) * clickAnimProgress); + var x = ShowIconsWhenHidden ? -Location.X : 0; + var height = drawerItemHeight; + + g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, IndicatorWidth, height); + } + + public new void Show() + { + _isOpen = true; + DrawerStateChanged?.Invoke(this); + DrawerBeginOpen?.Invoke(this); + _showHideAnimManager.StartNewAnimation(AnimationDirection.Out); + } + + public new void Hide() + { + _isOpen = false; + DrawerStateChanged?.Invoke(this); + DrawerBeginClose?.Invoke(this); + _showHideAnimManager.StartNewAnimation(AnimationDirection.In); + } + + public void Toggle() + { + if (_isOpen) + Hide(); + else + Show(); + } + + private int CalculateAlphaZeroWhenClosed(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) + { + // Drawer is closed + if (!_isOpen && !_showHideAnimManager.IsAnimating()) + { + return 0; + } + // Active menu (no change) + if (tabIndex == _baseTabControl.SelectedIndex && (!_clickAnimManager.IsAnimating() || _showHideAnimManager.IsAnimating())) + { + return (int)(primaryA * showHideAnimProgress); + } + // Previous menu (changing) + if (tabIndex == _previousSelectedTabIndex && !_showHideAnimManager.IsAnimating()) + { + return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); + } + // Inactive menu (no change) + if (tabIndex != _baseTabControl.SelectedIndex) + { + return (int)(secondaryA * showHideAnimProgress); + } + // Active menu (changing) + return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); + } + + private int CalculateAlpha(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) + { + if (tabIndex == _baseTabControl.SelectedIndex && !_clickAnimManager.IsAnimating()) + { + return (int)(primaryA); + } + if (tabIndex != _previousSelectedTabIndex && tabIndex != _baseTabControl.SelectedIndex) + { + return secondaryA; + } + if (tabIndex == _previousSelectedTabIndex) + { + return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); + } + return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); + } + + protected override void OnMouseClick(MouseEventArgs e) + { + base.OnMouseClick(e); + + if (_drawerItemRects == null) + UpdateTabRects(); + for (var i = 0; i < _drawerItemRects.Count; i++) + { + if (_drawerItemRects[i].Contains(e.Location) && _lastLocationY == Location.Y) + { + _baseTabControl.SelectedIndex = i; + if (AutoHide && !AutoShow) + Hide(); + } + } + + _animationSource = e.Location; + } + + protected override void OnMouseDown(MouseEventArgs e) + { + _lastMouseY = e.Y; + _lastLocationY = Location.Y; // memorize Y location of drawer + base.OnMouseDown(e); + if (DesignMode) + return; + MouseState = MouseState.DOWN; + } + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + if (DesignMode) + return; + MouseState = MouseState.OUT; + } + + protected override void OnMouseMove(MouseEventArgs e) + { + if (DesignMode) + return; + + if (e.Button == MouseButtons.Left && e.Y != _lastMouseY && (Location.Y < 0 || Height < (8 + drawerItemHeight) * _drawerItemRects.Count)) + { + int diff = e.Y - _lastMouseY; + if (diff > 0) + { + if (Location.Y < 0) + { + Location = new Point(Location.X, Location.Y + diff > 0 ? 0 : Location.Y + diff); + Height = Parent.Height + Math.Abs(Location.Y); + } + } + else + { + if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) + { + Location = new Point(Location.X, Location.Y + diff); + Height = Parent.Height + Math.Abs(Location.Y); + } + } + //return; + } + + base.OnMouseMove(e); + + if (_drawerItemRects == null) + UpdateTabRects(); + + Cursor previousCursor = Cursor; + + if (e.Location.X + this.Location.X < BORDER_WIDTH) + { + if (e.Location.Y > this.Height - BORDER_WIDTH) + Cursor = Cursors.SizeNESW; //Bottom Left + else + Cursor = Cursors.SizeWE; //Left + } + else if (e.Location.Y > this.Height - BORDER_WIDTH) + { + Cursor = Cursors.SizeNS; //Bottom + } + else + { + if (e.Location.Y < _drawerItemRects[_drawerItemRects.Count - 1].Bottom && (e.Location.X + this.Location.X) >= BORDER_WIDTH) + Cursor = Cursors.Hand; + else + Cursor = Cursors.Default; + } + + if (previousCursor != Cursor) CursorUpdate?.Invoke(this, Cursor); + + } + + protected override void OnMouseEnter(EventArgs e) + { + base.OnMouseEnter(e); + if (AutoShow && _isOpen==false) + { + Show(); + } + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + + if (MouseState != MouseState.DOWN) + { + Cursor = Cursors.Default; + CursorUpdate?.Invoke(this, Cursor); + } + + if (AutoShow) + { + Hide(); + } + } + + private void UpdateTabRects() + { + //If there isn't a base tab control, the rects shouldn't be calculated + //or if there aren't tab pages in the base tab control, the list should just be empty + if (_baseTabControl == null || _baseTabControl.TabCount == 0 || SkinManager == null || _drawerItemRects == null) + { + _drawerItemRects = new List(); + _drawerItemPaths = new List(); + return; + } + + if (_drawerItemRects.Count != _baseTabControl.TabCount) + { + _drawerItemRects = new List(_baseTabControl.TabCount); + _drawerItemPaths = new List(_baseTabControl.TabCount); + + for (var i = 0; i < _baseTabControl.TabCount; i++) + { + _drawerItemRects.Add(new Rectangle()); + _drawerItemPaths.Add(new GraphicsPath()); + } + } + + //Calculate the bounds of each tab header specified in the base tab control + for (int i = 0; i < _baseTabControl.TabPages.Count; i++) + { + var LocationX = this.RightToLeft == RightToLeft.Yes ? 0 : Location.X; + _drawerItemRects[i] = (new Rectangle( + (int)(SkinManager.FORM_PADDING * 0.75) - (ShowIconsWhenHidden ? LocationX : 0), + (TAB_HEADER_PADDING * 2) * i + (int)(SkinManager.FORM_PADDING >> 1), + (Width + (ShowIconsWhenHidden ? LocationX : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, + drawerItemHeight)); + + _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, _drawerItemRects[i].Width, _drawerItemRects[i].Height), 4); + } + } + } +} diff --git a/MaterialSkin/Controls/MaterialDrawer - Copy.cs b/MaterialSkin/Controls/MaterialDrawer - Copy.cs new file mode 100644 index 00000000..5276161f --- /dev/null +++ b/MaterialSkin/Controls/MaterialDrawer - Copy.cs @@ -0,0 +1,786 @@ +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Drawing2D; + using System.Drawing.Imaging; + using System.Drawing.Text; + using System.Windows.Forms; + + public class MaterialDrawer : Control, IMaterialControl + { + // TODO: Invalidate when changing custom properties + + private bool _showIconsWhenHidden; + public new RightToLeft RightToLeft; + + [Category("Drawer")] + public bool ShowIconsWhenHidden + { + get + { + return _showIconsWhenHidden; + } + set + { + if (_showIconsWhenHidden != value) + { + _showIconsWhenHidden = value; + UpdateTabRects(); + preProcessIcons(); + showHideAnimation(); + Paint(new PaintEventArgs(CreateGraphics(), ClientRectangle)); + DrawerShowIconsWhenHiddenChanged?.Invoke(this); + } + } + } + + private bool _isOpen; + + [Category("Drawer")] + public bool IsOpen + { + get + { + return _isOpen; + } + set + { + _isOpen = value; + if (value) + Show(); + else + Hide(); + } + } + + [Category("Drawer")] + public bool AutoHide { get; set; } + + [Category("Drawer")] + public bool AutoShow { get; set; } + + [Category("Drawer")] + private bool _useColors; + + public bool UseColors + { + get + { + return _useColors; + } + set + { + _useColors = value; + preProcessIcons(); + Invalidate(); + } + } + + [Category("Drawer")] + private bool _highlightWithAccent; + + public bool HighlightWithAccent + { + get + { + return _highlightWithAccent; + } + set + { + _highlightWithAccent = value; + preProcessIcons(); + Invalidate(); + } + } + + [Category("Drawer")] + private bool _backgroundWithAccent; + + public bool BackgroundWithAccent + { + get + { + return _backgroundWithAccent; + } + set + { + _backgroundWithAccent = value; + Invalidate(); + } + } + + [Category("Drawer")] + public int IndicatorWidth { get; set; } + + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + public delegate void DrawerStateHandler(object sender); + + public event DrawerStateHandler DrawerStateChanged; + + public event DrawerStateHandler DrawerBeginOpen; + + public event DrawerStateHandler DrawerEndOpen; + + public event DrawerStateHandler DrawerBeginClose; + + public event DrawerStateHandler DrawerEndClose; + + public event DrawerStateHandler DrawerShowIconsWhenHiddenChanged; + + public event EventHandler CursorUpdate; + + // icons + private Dictionary iconsBrushes; + + private Dictionary iconsSelectedBrushes; + private Dictionary iconsSize; + private int prevLocation; + + private int rippleSize = 0; + + private MaterialTabControl _baseTabControl; + + [Category("Behavior")] + public MaterialTabControl BaseTabControl + { + get { return _baseTabControl; } + set + { + _baseTabControl = value; + if (_baseTabControl == null) + return; + + UpdateTabRects(); + preProcessIcons(); + + // Other helpers + + _previousSelectedTabIndex = _baseTabControl.SelectedIndex; + _baseTabControl.Deselected += (sender, args) => + { + _previousSelectedTabIndex = _baseTabControl.SelectedIndex; + }; + _baseTabControl.SelectedIndexChanged += (sender, args) => + { + _clickAnimManager.SetProgress(0); + _clickAnimManager.StartNewAnimation(AnimationDirection.In); + }; + _baseTabControl.ControlAdded += delegate + { + Invalidate(); + }; + _baseTabControl.ControlRemoved += delegate + { + Invalidate(); + }; + } + } + + private void preProcessIcons() + { + // pre-process and pre-allocate texture brushes (icons) + if (_baseTabControl == null || _baseTabControl.TabCount == 0 || _baseTabControl.ImageList == null || _drawerItemRects == null || _drawerItemRects.Count == 0) + return; + + // Calculate lightness and color + float l = UseColors ? SkinManager.ColorScheme.TextColor.R / 255 : SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? 0f : 1f; + float r = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.R : SkinManager.ColorScheme.PrimaryColor.R) / 255f; + float g = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.G : SkinManager.ColorScheme.PrimaryColor.G) / 255f; + float b = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.B : SkinManager.ColorScheme.PrimaryColor.B) / 255f; + + // Create matrices + float[][] matrixGray = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, .7f, 0}, // alpha scale factor + new float[] { l, l, l, 0, 1}};// offset + + float[][] matrixColor = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, 1, 0}, // alpha scale factor + new float[] { r, g, b, 0, 1}};// offset + + ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); + ColorMatrix colorMatrixColor = new ColorMatrix(matrixColor); + + ImageAttributes grayImageAttributes = new ImageAttributes(); + ImageAttributes colorImageAttributes = new ImageAttributes(); + + // Set color matrices + grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + colorImageAttributes.SetColorMatrix(colorMatrixColor, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + + // Create brushes + iconsBrushes = new Dictionary(_baseTabControl.TabPages.Count); + iconsSelectedBrushes = new Dictionary(_baseTabControl.TabPages.Count); + iconsSize = new Dictionary(_baseTabControl.TabPages.Count); + + foreach (TabPage tabPage in _baseTabControl.TabPages) + { + // skip items without image + if (String.IsNullOrEmpty(tabPage.ImageKey) || _drawerItemRects == null) + continue; + + // Image Rect + Rectangle destRect = new Rectangle(0, 0, _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); + + // Create a pre-processed copy of the image (GRAY) + Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gGray = Graphics.FromImage(bgray)) + { + gGray.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, grayImageAttributes); + } + + // Create a pre-processed copy of the image (PRIMARY COLOR) + Bitmap bcolor = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gColor = Graphics.FromImage(bcolor)) + { + gColor.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, colorImageAttributes); + } + + // added processed image to brush for drawing + TextureBrush textureBrushGray = new TextureBrush(bgray); + TextureBrush textureBrushColor = new TextureBrush(bcolor); + + textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + textureBrushColor.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + + // Translate the brushes to the correct positions + var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); + var rtlWidth = RightToLeft == RightToLeft.Yes ? Width - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width : 0; + Rectangle iconRect = new Rectangle( + rtlWidth - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)), + _drawerItemRects[currentTabIndex].Y + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2), + _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); + + textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, + iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); + textureBrushColor.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, + iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); + + // add to dictionary + iconsBrushes.Add(tabPage.ImageKey, textureBrushGray); + iconsSelectedBrushes.Add(tabPage.ImageKey, textureBrushColor); + iconsSize.Add(tabPage.ImageKey, new Rectangle(0, 0, iconRect.Width, iconRect.Height)); + } + } + + private int _previousSelectedTabIndex; + + private Point _animationSource; + + private readonly AnimationManager _clickAnimManager; + + private readonly AnimationManager _showHideAnimManager; + + private List _drawerItemRects; + private List _drawerItemPaths; + + private const int TAB_HEADER_PADDING = 24; + private const int BORDER_WIDTH = 7; + + private int drawerItemHeight; + + public int MinWidth; + private int _lastMouseY; + private int _lastLocationY; + + public MaterialDrawer(RightToLeft rightToLeft) + { + RightToLeft = rightToLeft; + SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); + Height = 120; + Width = 250; + IndicatorWidth = 0; + _isOpen = false; + ShowIconsWhenHidden = false; + AutoHide = false; + AutoShow = false; + HighlightWithAccent = true; + BackgroundWithAccent = false; + + _showHideAnimManager = new AnimationManager + { + AnimationType = AnimationType.EaseInOut, + Increment = 0.04 + }; + _showHideAnimManager.OnAnimationProgress += sender => + { + Invalidate(); + showHideAnimation(); + }; + _showHideAnimManager.OnAnimationFinished += sender => + { + if (_baseTabControl != null && _drawerItemRects.Count > 0) + rippleSize = _drawerItemRects[_baseTabControl.SelectedIndex].Width; + if (_isOpen) + { + DrawerEndOpen?.Invoke(this); + } + else + { + DrawerEndClose?.Invoke(this); + } + }; + + SkinManager.ColorSchemeChanged += sender => + { + preProcessIcons(); + }; + + SkinManager.ThemeChanged += sender => + { + preProcessIcons(); + }; + + _clickAnimManager = new AnimationManager + { + AnimationType = AnimationType.EaseOut, + Increment = 0.04 + }; + _clickAnimManager.OnAnimationProgress += sender => Invalidate(); + + MouseWheel += MaterialDrawer_MouseWheel; + } + + private void MaterialDrawer_MouseWheel(object sender, MouseEventArgs e) + { + int step = 20; + if (e.Delta > 0) + { + if (Location.Y < 0) + { + Location = new Point(Location.X, Location.Y + step > 0 ? 0 : Location.Y + step); + Height = Location.Y + step > 0 ? Parent.Height : Height - step; + } + } + else + { + if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) + { + Location = new Point(Location.X, Location.Y - step); + Height += step; + } + } + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + protected override void InitLayout() + { + drawerItemHeight = TAB_HEADER_PADDING * 2 - SkinManager.FORM_PADDING / 2; + MinWidth = (int)(SkinManager.FORM_PADDING * 1.5 + drawerItemHeight); + _showHideAnimManager.SetProgress(_isOpen ? 0 : 1); + showHideAnimation(); + Invalidate(); + + base.InitLayout(); + } + + private void showHideAnimation() + { + var showHideAnimProgress = _showHideAnimManager.GetProgress(); + if (_showHideAnimManager.IsAnimating()) + { + var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; + if (ShowIconsWhenHidden) + { + Location = new Point((int)((-Width + MinWidth) * showHideAnimProgress) * rtlDir, Location.Y); + } + else + { + Location = new Point((int)(-Width * showHideAnimProgress) * rtlDir, Location.Y); + } + } + else + { + if (_isOpen) + { + Location = new Point(0, Location.Y); + } + else + { + var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; + if (ShowIconsWhenHidden) + { + Location = new Point((int)(-Width + MinWidth) * rtlDir, Location.Y); + } + else + { + Location = new Point(-Width * rtlDir, Location.Y); + } + } + } + UpdateTabRects(); + } + + protected override void OnPaint(PaintEventArgs e) + { + Paint(e); + } + + private new void Paint(PaintEventArgs e) + { + var g = e.Graphics; + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + + // redraw stuff + g.Clear(UseColors ? SkinManager.ColorScheme.PrimaryColor : SkinManager.BackdropColor); + + if (_baseTabControl == null) + return; + + if (!_clickAnimManager.IsAnimating() || _drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) + UpdateTabRects(); + + if (_drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) + return; + + // Click Animation + var clickAnimProgress = _clickAnimManager.GetProgress(); + // Show/Hide Drawer Animation + var showHideAnimProgress = _showHideAnimManager.GetProgress(); + var rSize = (int)(clickAnimProgress * rippleSize * 1.75); + + int dx = prevLocation - Location.X; + prevLocation = Location.X; + + // Ripple + if (_clickAnimManager.IsAnimating()) + { + var rippleBrush = new SolidBrush(Color.FromArgb((int)(70 - (clickAnimProgress * 70)), + UseColors ? SkinManager.ColorScheme.AccentColor : // Using colors + SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // light theme + SkinManager.ColorScheme.LightPrimaryColor)); // dark theme + + g.SetClip(_drawerItemPaths[_baseTabControl.SelectedIndex]); + g.FillEllipse(rippleBrush, new Rectangle(_animationSource.X + dx - (rSize / 2), _animationSource.Y - rSize / 2, rSize, rSize)); + g.ResetClip(); + rippleBrush.Dispose(); + } + + // Draw menu items + foreach (TabPage tabPage in _baseTabControl.TabPages) + { + var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); + + // Background + Brush bgBrush = new SolidBrush(Color.FromArgb(CalculateAlpha(60, 0, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), + UseColors ? _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.LightPrimaryColor : // using colors + _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : // defaul accent + SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // default light + SkinManager.ColorScheme.LightPrimaryColor)); // default dark + g.FillPath(bgBrush, _drawerItemPaths[currentTabIndex]); + bgBrush.Dispose(); + + // Text + Color textColor = Color.FromArgb(CalculateAlphaZeroWhenClosed(SkinManager.TextHighEmphasisColor.A, UseColors ? SkinManager.TextMediumEmphasisColor.A : 255, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), // alpha + UseColors ? (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) // Use colors - selected + : SkinManager.ColorScheme.TextColor) : // Use colors - not selected + (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) : // selected + SkinManager.TextHighEmphasisColor)); + + IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2, RightToLeft); + + Rectangle textRect = _drawerItemRects[currentTabIndex]; + var textRectX = RightToLeft == RightToLeft.Yes ? SkinManager.FORM_PADDING : _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); + textRect.X += textRectX; + textRect.Width -= SkinManager.FORM_PADDING << 2; + + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + var direction = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle : NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; + NativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, direction); + } + + // Icons + if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) + { + var rtlWidth = RightToLeft == RightToLeft.Yes ? Width - iconsSize[tabPage.ImageKey].Width : 0; + Rectangle iconRect = new Rectangle( + rtlWidth - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1)), + _drawerItemRects[currentTabIndex].Y + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Height >> 1), + iconsSize[tabPage.ImageKey].Width, iconsSize[tabPage.ImageKey].Height); + + if (ShowIconsWhenHidden) + { + var rtldx = RightToLeft == RightToLeft.Yes ? Width - iconsSize[tabPage.ImageKey].Width : dx; + iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + } + + g.FillRectangle(currentTabIndex == _baseTabControl.SelectedIndex ? iconsSelectedBrushes[tabPage.ImageKey] : iconsBrushes[tabPage.ImageKey], iconRect); + } + } + + // Draw divider if not using colors + if (!UseColors) + { + using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) + { + g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); + } + } + + // Animate tab indicator + var previousSelectedTabIndexIfHasOne = _previousSelectedTabIndex == -1 ? _baseTabControl.SelectedIndex : _previousSelectedTabIndex; + var previousActiveTabRect = _drawerItemRects[previousSelectedTabIndexIfHasOne]; + var activeTabPageRect = _drawerItemRects[_baseTabControl.SelectedIndex]; + + var y = previousActiveTabRect.Y + (int)((activeTabPageRect.Y - previousActiveTabRect.Y) * clickAnimProgress); + var x = ShowIconsWhenHidden ? -Location.X : 0; + var height = drawerItemHeight; + + g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, IndicatorWidth, height); + } + + public new void Show() + { + _isOpen = true; + DrawerStateChanged?.Invoke(this); + DrawerBeginOpen?.Invoke(this); + _showHideAnimManager.StartNewAnimation(AnimationDirection.Out); + } + + public new void Hide() + { + _isOpen = false; + DrawerStateChanged?.Invoke(this); + DrawerBeginClose?.Invoke(this); + _showHideAnimManager.StartNewAnimation(AnimationDirection.In); + } + + public void Toggle() + { + if (_isOpen) + Hide(); + else + Show(); + } + + private int CalculateAlphaZeroWhenClosed(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) + { + // Drawer is closed + if (!_isOpen && !_showHideAnimManager.IsAnimating()) + { + return 0; + } + // Active menu (no change) + if (tabIndex == _baseTabControl.SelectedIndex && (!_clickAnimManager.IsAnimating() || _showHideAnimManager.IsAnimating())) + { + return (int)(primaryA * showHideAnimProgress); + } + // Previous menu (changing) + if (tabIndex == _previousSelectedTabIndex && !_showHideAnimManager.IsAnimating()) + { + return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); + } + // Inactive menu (no change) + if (tabIndex != _baseTabControl.SelectedIndex) + { + return (int)(secondaryA * showHideAnimProgress); + } + // Active menu (changing) + return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); + } + + private int CalculateAlpha(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) + { + if (tabIndex == _baseTabControl.SelectedIndex && !_clickAnimManager.IsAnimating()) + { + return (int)(primaryA); + } + if (tabIndex != _previousSelectedTabIndex && tabIndex != _baseTabControl.SelectedIndex) + { + return secondaryA; + } + if (tabIndex == _previousSelectedTabIndex) + { + return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); + } + return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); + } + + protected override void OnMouseClick(MouseEventArgs e) + { + base.OnMouseClick(e); + + if (_drawerItemRects == null) + UpdateTabRects(); + for (var i = 0; i < _drawerItemRects.Count; i++) + { + if (_drawerItemRects[i].Contains(e.Location) && _lastLocationY == Location.Y) + { + _baseTabControl.SelectedIndex = i; + if (AutoHide && !AutoShow) + Hide(); + } + } + + _animationSource = e.Location; + } + + protected override void OnMouseDown(MouseEventArgs e) + { + _lastMouseY = e.Y; + _lastLocationY = Location.Y; // memorize Y location of drawer + base.OnMouseDown(e); + if (DesignMode) + return; + MouseState = MouseState.DOWN; + } + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + if (DesignMode) + return; + MouseState = MouseState.OUT; + } + + protected override void OnMouseMove(MouseEventArgs e) + { + if (DesignMode) + return; + + if (e.Button == MouseButtons.Left && e.Y != _lastMouseY && (Location.Y < 0 || Height < (8 + drawerItemHeight) * _drawerItemRects.Count)) + { + int diff = e.Y - _lastMouseY; + if (diff > 0) + { + if (Location.Y < 0) + { + Location = new Point(Location.X, Location.Y + diff > 0 ? 0 : Location.Y + diff); + Height = Parent.Height + Math.Abs(Location.Y); + } + } + else + { + if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) + { + Location = new Point(Location.X, Location.Y + diff); + Height = Parent.Height + Math.Abs(Location.Y); + } + } + //return; + } + + base.OnMouseMove(e); + + if (_drawerItemRects == null) + UpdateTabRects(); + + Cursor previousCursor = Cursor; + + if (e.Location.X + this.Location.X < BORDER_WIDTH) + { + if (e.Location.Y > this.Height - BORDER_WIDTH) + Cursor = Cursors.SizeNESW; //Bottom Left + else + Cursor = Cursors.SizeWE; //Left + } + else if (e.Location.Y > this.Height - BORDER_WIDTH) + { + Cursor = Cursors.SizeNS; //Bottom + } + else + { + if (e.Location.Y < _drawerItemRects[_drawerItemRects.Count - 1].Bottom && (e.Location.X + this.Location.X) >= BORDER_WIDTH) + Cursor = Cursors.Hand; + else + Cursor = Cursors.Default; + } + + if (previousCursor != Cursor) CursorUpdate?.Invoke(this, Cursor); + + } + + protected override void OnMouseEnter(EventArgs e) + { + base.OnMouseEnter(e); + if (AutoShow && _isOpen==false) + { + Show(); + } + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + + if (MouseState != MouseState.DOWN) + { + Cursor = Cursors.Default; + CursorUpdate?.Invoke(this, Cursor); + } + + if (AutoShow) + { + Hide(); + } + } + + private void UpdateTabRects() + { + //If there isn't a base tab control, the rects shouldn't be calculated + //or if there aren't tab pages in the base tab control, the list should just be empty + if (_baseTabControl == null || _baseTabControl.TabCount == 0 || SkinManager == null || _drawerItemRects == null) + { + _drawerItemRects = new List(); + _drawerItemPaths = new List(); + return; + } + + if (_drawerItemRects.Count != _baseTabControl.TabCount) + { + _drawerItemRects = new List(_baseTabControl.TabCount); + _drawerItemPaths = new List(_baseTabControl.TabCount); + + for (var i = 0; i < _baseTabControl.TabCount; i++) + { + _drawerItemRects.Add(new Rectangle()); + _drawerItemPaths.Add(new GraphicsPath()); + } + } + + //Calculate the bounds of each tab header specified in the base tab control + for (int i = 0; i < _baseTabControl.TabPages.Count; i++) + { + var LocationX = this.RightToLeft == RightToLeft.Yes ? 0 : Location.X; + _drawerItemRects[i] = (new Rectangle( + (int)(SkinManager.FORM_PADDING * 0.75) - (ShowIconsWhenHidden ? LocationX : 0), + (TAB_HEADER_PADDING * 2) * i + (int)(SkinManager.FORM_PADDING >> 1), + (Width + (ShowIconsWhenHidden ? LocationX : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, + drawerItemHeight)); + + _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, _drawerItemRects[i].Width, _drawerItemRects[i].Height), 4); + } + } + } +} diff --git a/MaterialSkin/Controls/MaterialDrawer.cs b/MaterialSkin/Controls/MaterialDrawer.cs index 2f4dbe22..0e0f8f88 100644 --- a/MaterialSkin/Controls/MaterialDrawer.cs +++ b/MaterialSkin/Controls/MaterialDrawer.cs @@ -60,6 +60,9 @@ public bool IsOpen [Category("Drawer")] public bool AutoHide { get; set; } + [Category("Drawer")] + public bool AutoShow { get; set; } + [Category("Drawer")] private bool _useColors; @@ -136,6 +139,8 @@ public bool BackgroundWithAccent public event DrawerStateHandler DrawerShowIconsWhenHiddenChanged; + public event EventHandler CursorUpdate; + // icons private Dictionary iconsBrushes; @@ -269,11 +274,12 @@ private void preProcessIcons() // Translate the brushes to the correct positions var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); - var rtlWidth = RightToLeft == RightToLeft.Yes ? Width - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width : 0; + var rectangleX = RightToLeft == RightToLeft.Yes ? Width - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2) * 2) - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)) + : (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)); Rectangle iconRect = new Rectangle( - rtlWidth - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)), + rectangleX, _drawerItemRects[currentTabIndex].Y + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2), - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); + _baseTabControl.ImageList.Images[tabPage.ImageKey].Width , _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); @@ -299,23 +305,28 @@ private void preProcessIcons() private List _drawerItemPaths; private const int TAB_HEADER_PADDING = 24; + private const int BORDER_WIDTH = 7; private int drawerItemHeight; public int MinWidth; + private int _lastMouseY; + private int _lastLocationY; public MaterialDrawer(RightToLeft rightToLeft) { RightToLeft = rightToLeft; SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); Height = 120; - Width = 200; + Width = 250; IndicatorWidth = 0; - _isOpen = true; + _isOpen = false; ShowIconsWhenHidden = false; AutoHide = false; + AutoShow = false; HighlightWithAccent = true; BackgroundWithAccent = false; + _showHideAnimManager = new AnimationManager { AnimationType = AnimationType.EaseInOut, @@ -356,6 +367,29 @@ public MaterialDrawer(RightToLeft rightToLeft) Increment = 0.04 }; _clickAnimManager.OnAnimationProgress += sender => Invalidate(); + + MouseWheel += MaterialDrawer_MouseWheel; + } + + private void MaterialDrawer_MouseWheel(object sender, MouseEventArgs e) + { + int step = 20; + if (e.Delta > 0) + { + if (Location.Y < 0) + { + Location = new Point(Location.X, Location.Y + step > 0 ? 0 : Location.Y + step); + Height = Location.Y + step > 0 ? Parent.Height : Height - step; + } + } + else + { + if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) + { + Location = new Point(Location.X, Location.Y - step); + Height += step; + } + } } [EditorBrowsable(EditorBrowsableState.Advanced)] @@ -396,7 +430,7 @@ private void showHideAnimation() var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; if (ShowIconsWhenHidden) { - Location = new Point((-Width + MinWidth) * rtlDir, Location.Y); + Location = new Point((int)(-Width + MinWidth) * rtlDir, Location.Y); } else { @@ -473,33 +507,33 @@ protected override void OnPaint(PaintEventArgs e) (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) : // selected SkinManager.TextHighEmphasisColor)); - IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2); + IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2, RightToLeft); Rectangle textRect = _drawerItemRects[currentTabIndex]; var textRectX = RightToLeft == RightToLeft.Yes ? SkinManager.FORM_PADDING : _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); - textRect.X = textRectX; + textRect.X += textRectX; textRect.Width -= SkinManager.FORM_PADDING << 2; - using (NativeTextRenderer nativeText = new NativeTextRenderer(g)) + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { var direction = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle : NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; - nativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, direction); + NativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, direction); } // Icons if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) { - var rtlWidth = RightToLeft == RightToLeft.Yes ? Width - iconsSize[tabPage.ImageKey].Width : 0; + var rectangleX = RightToLeft == RightToLeft.Yes ? Width - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width/2)*2) - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1) : + _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1); Rectangle iconRect = new Rectangle( - rtlWidth - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1)), + rectangleX, _drawerItemRects[currentTabIndex].Y + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Height >> 1), iconsSize[tabPage.ImageKey].Width, iconsSize[tabPage.ImageKey].Height); if (ShowIconsWhenHidden) { - var rtldx = RightToLeft == RightToLeft.Yes ? Width - iconsSize[tabPage.ImageKey].Width : dx; - //iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); - // iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); + iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); } g.FillRectangle(currentTabIndex == _baseTabControl.SelectedIndex ? iconsSelectedBrushes[tabPage.ImageKey] : iconsBrushes[tabPage.ImageKey], iconRect); @@ -521,7 +555,7 @@ protected override void OnPaint(PaintEventArgs e) var activeTabPageRect = _drawerItemRects[_baseTabControl.SelectedIndex]; var y = previousActiveTabRect.Y + (int)((activeTabPageRect.Y - previousActiveTabRect.Y) * clickAnimProgress); - var x = ShowIconsWhenHidden ? Location.X : 0; + var x = ShowIconsWhenHidden ? -Location.X : 0; var height = drawerItemHeight; g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, IndicatorWidth, height); @@ -602,10 +636,10 @@ protected override void OnMouseClick(MouseEventArgs e) UpdateTabRects(); for (var i = 0; i < _drawerItemRects.Count; i++) { - if (_drawerItemRects[i].Contains(e.Location)) + if (_drawerItemRects[i].Contains(e.Location) && _lastLocationY == Location.Y) { _baseTabControl.SelectedIndex = i; - if (AutoHide) + if (AutoHide && !AutoShow) Hide(); } } @@ -613,24 +647,104 @@ protected override void OnMouseClick(MouseEventArgs e) _animationSource = e.Location; } - protected override void OnMouseMove(MouseEventArgs e) + protected override void OnMouseDown(MouseEventArgs e) { - base.OnMouseMove(e); + _lastMouseY = e.Y; + _lastLocationY = Location.Y; // memorize Y location of drawer + base.OnMouseDown(e); + if (DesignMode) + return; + MouseState = MouseState.DOWN; + } + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + if (DesignMode) + return; + MouseState = MouseState.OUT; + } + protected override void OnMouseMove(MouseEventArgs e) + { if (DesignMode) return; + + if (e.Button == MouseButtons.Left && e.Y != _lastMouseY && (Location.Y < 0 || Height < (8 + drawerItemHeight) * _drawerItemRects.Count)) + { + int diff = e.Y - _lastMouseY; + if (diff > 0) + { + if (Location.Y < 0) + { + Location = new Point(Location.X, Location.Y + diff > 0 ? 0 : Location.Y + diff); + Height = Parent.Height + Math.Abs(Location.Y); + } + } + else + { + if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) + { + Location = new Point(Location.X, Location.Y + diff); + Height = Parent.Height + Math.Abs(Location.Y); + } + } + //return; + } + + base.OnMouseMove(e); if (_drawerItemRects == null) UpdateTabRects(); - for (var i = 0; i < _drawerItemRects.Count; i++) + + Cursor previousCursor = Cursor; + + if (e.Location.X + this.Location.X < BORDER_WIDTH) { - if (_drawerItemRects[i].Contains(e.Location)) - { + if (e.Location.Y > this.Height - BORDER_WIDTH) + Cursor = Cursors.SizeNESW; //Bottom Left + else + Cursor = Cursors.SizeWE; //Left + } + else if (e.Location.Y > this.Height - BORDER_WIDTH) + { + Cursor = Cursors.SizeNS; //Bottom + } + else + { + if (e.Location.Y < _drawerItemRects[_drawerItemRects.Count - 1].Bottom && (e.Location.X + this.Location.X) >= BORDER_WIDTH) Cursor = Cursors.Hand; - return; - } + else + Cursor = Cursors.Default; + } + + if (previousCursor != Cursor) CursorUpdate?.Invoke(this, Cursor); + + } + + protected override void OnMouseEnter(EventArgs e) + { + base.OnMouseEnter(e); + if (AutoShow && _isOpen==false) + { + Show(); + } + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + + if (MouseState != MouseState.DOWN) + { + Cursor = Cursors.Default; + CursorUpdate?.Invoke(this, Cursor); + } + + if (AutoShow) + { + Hide(); } - Cursor = Cursors.Arrow; } private void UpdateTabRects() @@ -670,4 +784,4 @@ private void UpdateTabRects() } } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialExpansionPanel.cs b/MaterialSkin/Controls/MaterialExpansionPanel.cs new file mode 100644 index 00000000..9b8a1340 --- /dev/null +++ b/MaterialSkin/Controls/MaterialExpansionPanel.cs @@ -0,0 +1,648 @@ +using MaterialSkin.Animations; +using System; +using System.Configuration; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Drawing.Text; +using System.Windows.Forms; + + +namespace MaterialSkin.Controls +{ + public class MaterialExpansionPanel : Panel, IMaterialControl + { + + #region "Private members" + + private MaterialButton _validationButton; + private MaterialButton _cancelButton; + + private const int _expansionPanelDefaultPadding = 16; + private const int _leftrightPadding = 24; + private const int _buttonPadding = 8; + private const int _expandcollapsbuttonsize = 24; + private const int _textHeaderHeight = 24; + private const int _headerHeightCollapse = 48; + private const int _headerHeightExpand = 64; + private const int _footerHeight = 68; + private const int _footerButtonHeight = 36; + private const int _minHeight = 200; + private int _headerHeight ; + + private bool _collapse ; + private bool _useAccentColor; + private int _expandHeight; + + + private string _titleHeader; + private string _descriptionHeader; + private string _validationButtonText; + private string _cancelButtonText; + + + + private bool _showValidationButtons; + private bool _showCollapseExpand; + private bool _drawShadows; + private bool _shadowDrawEventSubscribed = false; + private Rectangle _headerBounds; + private Rectangle _expandcollapseBounds; + private Rectangle _savebuttonBounds; + private Rectangle _cancelbuttonBounds; + private bool _savebuttonEnable; + + private enum ButtonState + { + SaveOver, + CancelOver, + ColapseExpandOver, + HeaderOver, + None + } + + private ButtonState _buttonState = ButtonState.None; + + + #endregion + + + #region "Public Properties" + + [Browsable(false)] + public int Depth { get; set; } + [Browsable(false)] + public MaterialSkinManager SkinManager { get { return MaterialSkinManager.Instance; } } + [Browsable(false)] + public MouseState MouseState { get; set; } + + [Category("Material Skin"), DefaultValue(false), DisplayName("Use Accent Color")] + public bool UseAccentColor + { + get { return _useAccentColor; } + set { _useAccentColor = value; UpdateRects(); Invalidate(); } + } + + [DefaultValue(false)] + [Description("Collapses the control when set to true")] + [Category("Material Skin")] + public bool Collapse + { + get { return _collapse; } + set + { + _collapse = value; + CollapseOrExpand(); + Invalidate(); + } + } + + [DefaultValue("Title")] + [Category("Material Skin"), DisplayName("Title")] + [Description("Title to show in expansion panel's header")] + public string Title + { + get { return _titleHeader; } + set + { + _titleHeader = value; + Invalidate(); + } + } + + [DefaultValue("Description")] + [Category("Material Skin"), DisplayName("Description")] + [Description("Description to show in expansion panel's header")] + public string Description + { + get { return _descriptionHeader; } + set + { + _descriptionHeader = value; + Invalidate(); + } + } + + [DefaultValue(true)] + [Category("Material Skin"), DisplayName("Draw Shadows")] + [Description("Draw Shadows around control")] + public bool DrawShadows + { + get { return _drawShadows; } + set { _drawShadows = value; Invalidate(); } + } + + [DefaultValue(240)] + [Category("Material Skin"), DisplayName("Expand Height")] + [Description("Define control height when expanded")] + public int ExpandHeight + { + get { return _expandHeight; } + set { if (value < _minHeight) value = _minHeight; _expandHeight = value; Invalidate(); } + } + + [DefaultValue(true)] + [Category("Material Skin"), DisplayName("Show collapse/expand")] + [Description("Show collapse/expand indicator")] + public bool ShowCollapseExpand + { + get { return _showCollapseExpand; } + set { _showCollapseExpand = value; Invalidate(); } + } + + [DefaultValue(true)] + [Category("Material Skin"), DisplayName("Show validation buttons")] + [Description("Show save/cancel button")] + public bool ShowValidationButtons + { + get { return _showValidationButtons; } + set { _showValidationButtons = value; UpdateRects(); Invalidate(); } + } + + [DefaultValue("SAVE")] + [Category("Material Skin"), DisplayName("Validation button text")] + [Description("Set Validation button text")] + public string ValidationButtonText + { + get { return _validationButtonText; } + set { _validationButtonText = value; UpdateRects(); Invalidate(); } + } + + [DefaultValue("CANCEL")] + [Category("Material Skin"), DisplayName("Cancel button text")] + [Description("Set Cancel button text")] + public string CancelButtonText + { + get { return _cancelButtonText; } + set { _cancelButtonText = value; UpdateRects(); Invalidate(); } + } + + [DefaultValue(false)] + [Category("Material Skin"), DisplayName("Validation button enable")] + [Description("Enable validation button")] + public bool ValidationButtonEnable + { + get { return _savebuttonEnable; } + set { _savebuttonEnable = value; UpdateRects(); Invalidate(); } + } + + + #endregion + + + #region "Events" + + [Category("Action")] + [Description("Fires when Save button is clicked")] + public event EventHandler SaveClick; + + [Category("Action")] + [Description("Fires when Cancel button is clicked")] + public event EventHandler CancelClick; + + [Category("Disposition")] + [Description("Fires when Panel Collapse")] + public event EventHandler PanelCollapse; + + [Category("Disposition")] + [Description("Fires when Panel Expand")] + public event EventHandler PanelExpand; + + + #endregion + + public MaterialExpansionPanel() + { + ShowValidationButtons = true; + ValidationButtonEnable = false; + ValidationButtonText = "SAVE"; + CancelButtonText = "CANCEL"; + ShowCollapseExpand = true; + Collapse = false; + Title = "Title"; + Description = "Description"; + DrawShadows = true; + ExpandHeight = 240; + AutoScroll = false; + + SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true); + BackColor = SkinManager.BackgroundColor; + ForeColor = SkinManager.TextHighEmphasisColor; + + Padding = new Padding(24, 64, 24, 16); + Margin = new Padding( 3, 16, 3, 16); + Size = new Size(480, ExpandHeight); + + //CollapseOrExpand(); + + _validationButton = new MaterialButton + { + DrawShadows = false, + Type = MaterialButton.MaterialButtonType.Text, + UseAccentColor = _useAccentColor, + Enabled = ValidationButtonEnable, + Visible = _showValidationButtons, + Text = "SAVE" + }; + _cancelButton = new MaterialButton + { + DrawShadows = false, + Type = MaterialButton.MaterialButtonType.Text, + UseAccentColor = _useAccentColor, + Visible = _showValidationButtons, + Text = "CANCEL" + }; + + if (!Controls.Contains(_validationButton) ) + { + Controls.Add(_validationButton); + } + if (!Controls.Contains(_cancelButton) ) + { + Controls.Add(_cancelButton); + } + + _validationButton.Click += _validationButton_Click; + _cancelButton.Click += _cancelButton_Click; + + UpdateRects(); + } + + private void _cancelButton_Click(object sender, EventArgs e) + { + //throw new NotImplementedException(); + CancelClick?.Invoke(this, new EventArgs()); + Collapse = true; + CollapseOrExpand(); + + } + + private void _validationButton_Click(object sender, EventArgs e) + { + //throw new NotImplementedException(); + SaveClick?.Invoke(this, new EventArgs()); + Collapse = true; + CollapseOrExpand(); + + } + + + protected override void OnCreateControl() + { + base.OnCreateControl(); + Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft); + } + + protected override void InitLayout() + { + LocationChanged += (sender, e) => { Parent?.Invalidate(); }; + ForeColor = SkinManager.TextHighEmphasisColor; + } + + protected override void OnParentChanged(EventArgs e) + { + base.OnParentChanged(e); + if (Parent != null) AddShadowPaintEvent(Parent, drawShadowOnParent); + if (_oldParent != null) RemoveShadowPaintEvent(_oldParent, drawShadowOnParent); + _oldParent = Parent; + } + + private Control _oldParent; + + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + if (Parent == null) return; + if (Visible) + AddShadowPaintEvent(Parent, drawShadowOnParent); + else + RemoveShadowPaintEvent(Parent, drawShadowOnParent); + } + + private void drawShadowOnParent(object sender, PaintEventArgs e) + { + if (Parent == null) + { + RemoveShadowPaintEvent((Control)sender, drawShadowOnParent); + return; + } + + if (!_drawShadows || Parent == null) return; + + // paint shadow on parent + Graphics gp = e.Graphics; + Rectangle rect = new Rectangle(Location, ClientRectangle.Size); + gp.SmoothingMode = SmoothingMode.AntiAlias; + DrawHelper.DrawSquareShadow(gp, rect); + } + + + private void AddShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) + { + if (_shadowDrawEventSubscribed) return; + control.Paint += shadowPaintEvent; + control.Invalidate(); + _shadowDrawEventSubscribed = true; + } + + private void RemoveShadowPaintEvent(Control control, PaintEventHandler shadowPaintEvent) + { + if (!_shadowDrawEventSubscribed) return; + control.Paint -= shadowPaintEvent; + control.Invalidate(); + _shadowDrawEventSubscribed = false; + } + + protected override void OnBackColorChanged(EventArgs e) + { + base.OnBackColorChanged(e); + BackColor = SkinManager.BackgroundColor; + } + + protected override void OnResize(EventArgs e) + { + if (!_collapse) + { + if (DesignMode) + { + _expandHeight = Height; + } + if (Height < _minHeight) Height = _minHeight; + } + else + { + Height = _headerHeightCollapse; + } + + base.OnResize(e); + + _headerBounds = new Rectangle(ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, _headerHeight); + _expandcollapseBounds = new Rectangle((Width) - _leftrightPadding - _expandcollapsbuttonsize, (int)((_headerHeight - _expandcollapsbuttonsize) / 2), _expandcollapsbuttonsize, _expandcollapsbuttonsize); + + UpdateRects(); + + if (Parent != null) + { + RemoveShadowPaintEvent(Parent, drawShadowOnParent); + AddShadowPaintEvent(Parent, drawShadowOnParent); + } + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + if (DesignMode) + return; + + var oldState = _buttonState; + + if (_savebuttonBounds.Contains(e.Location)) + _buttonState = ButtonState.SaveOver; + else if (_cancelbuttonBounds.Contains(e.Location)) + _buttonState = ButtonState.CancelOver; + else if (_expandcollapseBounds.Contains(e.Location)) + { + Cursor = Cursors.Hand; + _buttonState = ButtonState.ColapseExpandOver; + } + else if (_headerBounds.Contains(e.Location)) + { + Cursor = Cursors.Hand; + _buttonState = ButtonState.HeaderOver; + } + else + { + Cursor = Cursors.Default; + _buttonState = ButtonState.None; + } + + if (oldState != _buttonState) Invalidate(); + + } + + protected override void OnMouseDown(MouseEventArgs e) + { + if (Enabled && (_buttonState == ButtonState.HeaderOver | _buttonState == ButtonState.ColapseExpandOver)) + { + Collapse = !Collapse; + CollapseOrExpand(); + } + else + { + if (DesignMode) + return; + } + + base.OnMouseDown(e); + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + if (DesignMode) + return; + + Cursor = Cursors.Arrow; + _buttonState = ButtonState.None; + Invalidate(); + } + + + protected override void OnPaint(PaintEventArgs e) + { + var g = e.Graphics; + g.TextRenderingHint = TextRenderingHint.AntiAlias; + + g.Clear(Parent.BackColor); + + // card rectangle path + RectangleF expansionPanelRectF = new RectangleF(ClientRectangle.Location, ClientRectangle.Size); + expansionPanelRectF.X -= 0.5f; + expansionPanelRectF.Y -= 0.5f; + GraphicsPath expansionPanelPath = DrawHelper.CreateRoundRect(expansionPanelRectF, 2); + + // button shadow (blend with form shadow) + DrawHelper.DrawSquareShadow(g, ClientRectangle); + + // Draw expansion panel + // Disabled + if (!Enabled) + { + using (SolidBrush disabledBrush = new SolidBrush(DrawHelper.BlendColor(Parent.BackColor, SkinManager.BackgroundDisabledColor, SkinManager.BackgroundDisabledColor.A))) + { + g.FillPath(disabledBrush, expansionPanelPath); + } + } + // Mormal + else + { + if ((_buttonState == ButtonState.HeaderOver | _buttonState == ButtonState.ColapseExpandOver) && _collapse) + { + RectangleF expansionPanelBorderRectF = new RectangleF(ClientRectangle.X + 1, ClientRectangle.Y + 1, ClientRectangle.Width - 2, ClientRectangle.Height - 2); + expansionPanelBorderRectF.X -= 0.5f; + expansionPanelBorderRectF.Y -= 0.5f; + GraphicsPath expansionPanelBoarderPath = DrawHelper.CreateRoundRect(expansionPanelBorderRectF, 2); + + g.FillPath(SkinManager.ExpansionPanelFocusBrush, expansionPanelBoarderPath); + } + else + { + using (SolidBrush normalBrush = new SolidBrush(SkinManager.BackgroundColor)) + { + g.FillPath(normalBrush, expansionPanelPath); + } + } + } + + // Calc text Rect + Rectangle headerRect = new Rectangle( + _leftrightPadding, + (_headerHeight - _textHeaderHeight) / 2, + TextRenderer.MeasureText(_titleHeader, Font).Width + _expansionPanelDefaultPadding, + _textHeaderHeight); + + //Draw headers + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + // Draw header text + NativeText.DrawTransparentText( + _titleHeader, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft), + Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, + headerRect.Location, + headerRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + + if (!String.IsNullOrEmpty(_descriptionHeader)) + { + //Draw description header text + + Rectangle headerDescriptionRect = new Rectangle( + headerRect.Right + _expansionPanelDefaultPadding, + (_headerHeight - _textHeaderHeight) / 2, + _expandcollapseBounds.Left - (headerRect.Right + _expansionPanelDefaultPadding ) - _expansionPanelDefaultPadding, + _textHeaderHeight); + + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + // Draw description header text + NativeText.DrawTransparentText( + _descriptionHeader, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft), + SkinManager.TextDisabledOrHintColor, + headerDescriptionRect.Location, + headerDescriptionRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + if (_showCollapseExpand==true) + { + using (var formButtonsPen = new Pen(_useAccentColor && Enabled ? SkinManager.ColorScheme.AccentColor : SkinManager.TextDisabledOrHintColor, 2)) + { + if (_collapse) + { + //Draw Expand button + System.Drawing.Drawing2D.GraphicsPath pth = new System.Drawing.Drawing2D.GraphicsPath(); + PointF TopLeft = new PointF(_expandcollapseBounds.X + 6, _expandcollapseBounds.Y + 9); + PointF MidBottom = new PointF(_expandcollapseBounds.X + 12, _expandcollapseBounds.Y + 15); + PointF TopRight = new PointF(_expandcollapseBounds.X + 18, _expandcollapseBounds.Y + 9); + pth.AddLine(TopLeft, MidBottom); + pth.AddLine(TopRight, MidBottom); + g.DrawPath(formButtonsPen, pth); + } + else + { + // Draw Collapse button + System.Drawing.Drawing2D.GraphicsPath pth = new System.Drawing.Drawing2D.GraphicsPath(); + PointF BottomLeft = new PointF(_expandcollapseBounds.X + 6, _expandcollapseBounds.Y + 15); + PointF MidTop = new PointF(_expandcollapseBounds.X + 12, _expandcollapseBounds.Y + 9); + PointF BottomRight = new PointF(_expandcollapseBounds.X + 18, _expandcollapseBounds.Y + 15); + pth.AddLine(BottomLeft, MidTop); + pth.AddLine(BottomRight, MidTop); + g.DrawPath(formButtonsPen, pth); + } + } + } + + if (!_collapse && _showValidationButtons) + { + //Draw divider + g.DrawLine(new Pen(SkinManager.DividersColor, 1), new Point(0, Height - _footerHeight), new Point(Width, Height - _footerHeight)); + } + } + + private void CollapseOrExpand() + { + //if (!useAnimation) + //{ + if (_collapse) + { + _headerHeight = _headerHeightCollapse; + this.Height = _headerHeightCollapse; + Margin = new Padding(16, 1, 16, 0); + + // Is the event registered? + if (PanelCollapse != null) + // Raise the event + this.PanelCollapse(this, new EventArgs()); + } + else + { + _headerHeight = _headerHeightExpand; + this.Height = _expandHeight; + Margin = new Padding(16, 16, 16, 16); + + // Is the event registered? + if (PanelExpand != null) + // Raise the event + this.PanelExpand(this, new EventArgs()); + } + + Refresh(); + } + + private void UpdateRects() + { + if (!_collapse && _showValidationButtons) + { + int _buttonWidth = ((TextRenderer.MeasureText(ValidationButtonText, SkinManager.getFontByType(MaterialSkinManager.fontType.Button, RightToLeft))).Width + 32); + _savebuttonBounds = new Rectangle((Width) - _buttonPadding - _buttonWidth, Height - _expansionPanelDefaultPadding - _footerButtonHeight, _buttonWidth, _footerButtonHeight); + _buttonWidth = ((TextRenderer.MeasureText(CancelButtonText, SkinManager.getFontByType(MaterialSkinManager.fontType.Button, RightToLeft))).Width + 32); + _cancelbuttonBounds = new Rectangle(_savebuttonBounds.Left - _buttonPadding - _buttonWidth, Height - _expansionPanelDefaultPadding - _footerButtonHeight, _buttonWidth, _footerButtonHeight); + + if (_validationButton != null) + { + _validationButton.Width = _savebuttonBounds.Width; + _validationButton.Left = Width - _buttonPadding - _validationButton.Width; //Button minimum width management + _validationButton.Top = _savebuttonBounds.Top; + _validationButton.Height = _savebuttonBounds.Height; + _validationButton.Text = _validationButtonText; + _validationButton.Enabled = _savebuttonEnable; + _validationButton.UseAccentColor = _useAccentColor; + } + if (_cancelButton != null) + { + _cancelButton.Width = _cancelbuttonBounds.Width; + _cancelButton.Left = _validationButton.Left - _buttonPadding - _cancelbuttonBounds.Width; //Button minimum width management + _cancelButton.Top = _cancelbuttonBounds.Top; + _cancelButton.Height = _cancelbuttonBounds.Height; + _cancelButton.Text = _cancelButtonText; + _cancelButton.UseAccentColor = _useAccentColor; + } + } + if (_validationButton != null) + { + _validationButton.Visible = _showValidationButtons; + } + if (_cancelButton != null) + { + _cancelButton.Visible = _showValidationButtons; + } + } + + } +} diff --git a/MaterialSkin/Controls/MaterialFloatingActionButton.cs b/MaterialSkin/Controls/MaterialFloatingActionButton.cs index b165228c..4a589c25 100644 --- a/MaterialSkin/Controls/MaterialFloatingActionButton.cs +++ b/MaterialSkin/Controls/MaterialFloatingActionButton.cs @@ -24,8 +24,16 @@ public class MaterialFloatingActionButton : Button, IMaterialControl private const int FAB_MINI_ICON_MARGIN = 8; private const int FAB_ICON_SIZE = 24; + private Boolean _mouseHover = false; + + [DefaultValue(true)] + [Category("Material Skin"), DisplayName("Draw Shadows")] + [Description("Draw Shadows around control")] public bool DrawShadows { get; set; } + [DefaultValue(false)] + [Category("Material Skin"), DisplayName("Size Mini")] + [Description("Set control size to default or mini")] public bool Mini { get { return _mini; } @@ -37,20 +45,25 @@ public bool Mini } } - private bool _mini = false; + private bool _mini ; + [DefaultValue(false)] + [Category("Material Skin"), DisplayName("Animate Show HideButton")] public bool AnimateShowHideButton { get { return _animateShowButton; } - set { _animateShowButton = value; } + set { _animateShowButton = value; Refresh(); } } private bool _animateShowButton; + [DefaultValue(false)] + [Category("Material Skin")] + [Description("Define icon to display")] public Image Icon { get { return _icon; } - set { _icon = value; } + set { _icon = value; Refresh(); } } private Image _icon; @@ -63,6 +76,8 @@ public Image Icon public MaterialFloatingActionButton() { + AnimateShowHideButton = false; + Mini = false; DrawShadows = true; SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); @@ -172,7 +187,11 @@ protected override void OnPaint(PaintEventArgs pevent) DrawHelper.DrawRoundShadow(g, fabBounds); // draw fab - g.FillEllipse(SkinManager.ColorScheme.AccentBrush, fabBounds); + g.FillEllipse(Enabled ? _mouseHover ? + new SolidBrush(SkinManager.ColorScheme.AccentColor.Lighten(0.25f)) : + SkinManager.ColorScheme.AccentBrush : + new SolidBrush(DrawHelper.BlendColor(SkinManager.ColorScheme.AccentColor, SkinManager.SwitchOffDisabledThumbColor, 197)), + fabBounds); if (_animationManager.IsAnimating()) { @@ -221,6 +240,39 @@ protected override void OnMouseClick(MouseEventArgs mevent) _animationManager.StartNewAnimation(AnimationDirection.In, mevent.Location); } + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + if (DesignMode) + return; + + _mouseHover = ClientRectangle.Contains(e.Location); + Invalidate(); + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + if (DesignMode) + return; + + _mouseHover = false; + Invalidate(); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + if (DrawShadows && Parent != null) + { + RemoveShadowPaintEvent(Parent, drawShadowOnParent); + AddShadowPaintEvent(Parent, drawShadowOnParent); + } + } + + private Point origin; public new void Hide() @@ -242,4 +294,4 @@ protected override void OnMouseClick(MouseEventArgs mevent) } } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index d9d41a3e..718cd753 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -1,8 +1,7 @@ -namespace MaterialSkin.Controls +namespace MaterialSkin.Controls { using MaterialSkin.Animations; using System; - using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Drawing.Text; @@ -10,8 +9,13 @@ using System.Runtime.InteropServices; using System.Windows.Forms; +#if NETFRAMEWORK + using System.Runtime.Remoting.Channels; +#endif + public class MaterialForm : Form, IMaterialControl { + #region Public Properties [Browsable(false)] public int Depth { get; set; } @@ -21,115 +25,174 @@ public class MaterialForm : Form, IMaterialControl [Browsable(false)] public MouseState MouseState { get; set; } - public new FormBorderStyle FormBorderStyle + [Category("Layout")] + public bool Sizable { get; set; } + + [Category("Material Skin"), Browsable(true), DisplayName("Form Style"), DefaultValue(FormStyles.ActionBar_40)] + public FormStyles FormStyle { - get { return base.FormBorderStyle; } - set { base.FormBorderStyle = value; } + get => _formStyle; + set + { + if (_formStyle == value) return; + + _formStyle = value; + RecalculateFormBoundaries(); + } } - [Category("Layout")] - public bool Sizable { get; set; } + [Category("Drawer")] + public bool DrawerShowIconsWhenHidden + { + get => _drawerShowIconsWhenHidden; + set + { + if (_drawerShowIconsWhenHidden == value) return; - [DllImport("user32.dll")] - public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + _drawerShowIconsWhenHidden = value; - [DllImport("user32.dll")] - public static extern bool ReleaseCapture(); + if (drawerControl == null) return; - [DllImport("user32.dll")] - public static extern int TrackPopupMenuEx(IntPtr hmenu, uint fuFlags, int x, int y, IntPtr hwnd, IntPtr lptpm); + drawerControl.ShowIconsWhenHidden = _drawerShowIconsWhenHidden; + drawerControl.Refresh(); + } + } - [DllImport("user32.dll")] - public static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert); + [Category("Drawer")] + public int DrawerWidth { get; set; } - [DllImport("user32.dll")] - public static extern IntPtr MonitorFromWindow(IntPtr hwnd, uint dwFlags); - - [DllImport("User32.dll", CharSet = CharSet.Auto)] - public static extern bool GetMonitorInfo(HandleRef hmonitor, [In, Out] MONITORINFOEX info); - - public const int WM_NCLBUTTONDOWN = 0xA1; - public const int HT_CAPTION = 0x2; - public const int WM_MOUSEMOVE = 0x0200; - public const int WM_LBUTTONDOWN = 0x0201; - public const int WM_LBUTTONUP = 0x0202; - public const int WM_LBUTTONDBLCLK = 0x0203; - public const int WM_RBUTTONDOWN = 0x0204; - private const int HTBOTTOMLEFT = 16; - private const int HTBOTTOMRIGHT = 17; - private const int HTLEFT = 10; - private const int HTRIGHT = 11; - private const int HTBOTTOM = 15; - private const int HTTOP = 12; - private const int HTTOPLEFT = 13; - private const int HTTOPRIGHT = 14; - private const int BORDER_WIDTH = 7; + [Category("Drawer")] + public bool DrawerAutoHide + { + get => _drawerAutoHide; + set => drawerControl.AutoHide = _drawerAutoHide = value; + } - private ResizeDirection _resizeDir; - private ButtonState _buttonState = ButtonState.None; + [Category("Drawer")] + public bool DrawerAutoShow + { + get => _drawerAutoShow; + set => drawerControl.AutoShow = _drawerAutoShow = value; + } - private const int WMSZ_TOP = 3; - private const int WMSZ_TOPLEFT = 4; - private const int WMSZ_TOPRIGHT = 5; - private const int WMSZ_LEFT = 1; - private const int WMSZ_RIGHT = 2; - private const int WMSZ_BOTTOM = 6; - private const int WMSZ_BOTTOMLEFT = 7; - private const int WMSZ_BOTTOMRIGHT = 8; + [Category("Drawer")] + public int DrawerIndicatorWidth { get; set; } - private readonly Dictionary _resizingLocationsToCmd = new Dictionary + [Category("Drawer")] + public bool DrawerIsOpen { - {HTTOP, WMSZ_TOP}, - {HTTOPLEFT, WMSZ_TOPLEFT}, - {HTTOPRIGHT, WMSZ_TOPRIGHT}, - {HTLEFT, WMSZ_LEFT}, - {HTRIGHT, WMSZ_RIGHT}, - {HTBOTTOM, WMSZ_BOTTOM}, - {HTBOTTOMLEFT, WMSZ_BOTTOMLEFT}, - {HTBOTTOMRIGHT, WMSZ_BOTTOMRIGHT} - }; + get => _drawerIsOpen; + set + { + if (_drawerIsOpen == value) return; - 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 uint TPM_LEFTALIGN = 0x0000; - private const uint TPM_RETURNCMD = 0x0100; - private const int WM_SYSCOMMAND = 0x0112; - private const int WS_MINIMIZEBOX = 0x20000; - private const int WS_SYSMENU = 0x00080000; - private const int MONITOR_DEFAULTTONEAREST = 2; + _drawerIsOpen = value; + + if (value) + drawerControl?.Show(); + else + drawerControl?.Hide(); + } + } - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 4)] - public class MONITORINFOEX + [Category("Drawer")] + public bool DrawerUseColors { - public int cbSize = Marshal.SizeOf(typeof(MONITORINFOEX)); - public RECT rcMonitor = new RECT(); - public RECT rcWork = new RECT(); - public int dwFlags = 0; + get => _drawerUseColors; + set + { + if (_drawerUseColors == value) return; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] - public char[] szDevice = new char[32]; + _drawerUseColors = value; + + if (drawerControl == null) return; + + drawerControl.UseColors = value; + drawerControl.Refresh(); + } } - [StructLayout(LayoutKind.Sequential)] - public struct RECT + [Category("Drawer")] + public bool DrawerHighlightWithAccent { - public int left; - public int top; - public int right; - public int bottom; + get => _drawerHighlightWithAccent; + set + { + if (_drawerHighlightWithAccent == value) return; - public int Width() + _drawerHighlightWithAccent = value; + + if (drawerControl == null) return; + + drawerControl.HighlightWithAccent = value; + drawerControl.Refresh(); + } + } + + [Category("Drawer")] + public bool DrawerBackgroundWithAccent + { + get => _backgroundWithAccent; + set { - return right - left; + if (_backgroundWithAccent == value) return; + + _backgroundWithAccent = value; + + if (drawerControl == null) return; + + drawerControl.BackgroundWithAccent = value; + drawerControl.Refresh(); } + } + + [Category("Drawer")] + public MaterialTabControl DrawerTabControl { get; set; } + + public override string Text + { + get { return base.Text; } + set { base.Text = value; Invalidate(); } + } + + public new FormWindowState WindowState + { + get { return base.WindowState; } + set { base.WindowState = value; } + } + + public new FormBorderStyle FormBorderStyle + { + get { return base.FormBorderStyle; } + set { base.FormBorderStyle = value; } + } - public int Height() + public Rectangle UserArea + { + get { - return bottom - top; + return new Rectangle(ClientRectangle.X, ClientRectangle.Y + STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT, ClientSize.Width, ClientSize.Height - (STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT)); } } + #endregion + + #region Enums + /// + /// Various options to control the top caption of a window + /// + public enum FormStyles + { + StatusAndActionBar_None, + ActionBar_None, + ActionBar_40, + ActionBar_48, + ActionBar_56, + ActionBar_64, + } + /// + /// Various directions the form can be resized in + /// private enum ResizeDirection { BottomLeft, @@ -137,60 +200,245 @@ private enum ResizeDirection Right, BottomRight, Bottom, + Top, + TopLeft, + TopRight, None } + /// + /// The states a button can be in + /// private enum ButtonState { XOver, MaxOver, MinOver, + DrawerOver, XDown, MaxDown, MinDown, + DrawerDown, None } + /// + /// Window Messages + /// + /// + private enum WM + { + /// + /// WM_NCCALCSIZE + /// + NonClientCalcSize = 0x0083, + /// + /// WM_NCACTIVATE + /// + NonClientActivate = 0x0086, + /// + /// WM_NCLBUTTONDOWN + /// + NonClientLeftButtonDown = 0x00A1, + /// + /// WM_SYSCOMMAND + /// + SystemCommand = 0x0112, + /// + /// WM_MOUSEMOVE + /// + MouseMove = 0x0200, + /// + /// WM_LBUTTONDOWN + /// + LeftButtonDown = 0x0201, + /// + /// WM_LBUTTONUP + /// + LeftButtonUp = 0x0202, + /// + /// WM_LBUTTONDBLCLK + /// + LeftButtonDoubleClick = 0x0203, + /// + /// WM_RBUTTONDOWN + /// + RightButtonDown = 0x0204, + } + + /// + /// Hit Test Results + /// + /// + private enum HT + { + /// + /// HTNOWHERE - Nothing under cursor + /// + None = 0, + /// + /// HTCAPTION - Titlebar + /// + Caption = 2, + /// + /// HTLEFT - Left border + /// + Left = 10, + /// + /// HTRIGHT - Right border + /// + Right = 11, + /// + /// HTTOP - Top border + /// + Top = 12, + /// + /// HTTOPLEFT - Top left corner + /// + TopLeft = 13, + /// + /// HTTOPRIGHT - Top right corner + /// + TopRight = 14, + /// + /// HTBOTTOM - Bottom border + /// + Bottom = 15, + /// + /// HTBOTTOMLEFT - Bottom left corner + /// + BottomLeft = 16, + /// + /// HTBOTTOMRIGHT - Bottom right corner + /// + BottomRight = 17, + } + + /// + /// Window Styles + /// + /// + private enum WS + { + /// + /// WS_MINIMIZEBOX - Allow minimizing from taskbar + /// + MinimizeBox = 0x20000, + /// + /// WS_SIZEFRAME - Required for Aero Snapping + /// + SizeFrame = 0x40000, + /// + /// WS_SYSMENU - Trigger the creation of the system menu + /// + SysMenu = 0x80000, + } + + /// + /// Track Popup Menu Flags + /// + /// + private enum TPM + { + /// + /// TPM_LEFTALIGN + /// + LeftAlign = 0x0000, + /// + /// TPM_RETURNCMD + /// + ReturnCommand = 0x0100, + } + #endregion + + #region Constants + // Form Constants + private const int BORDER_WIDTH = 7; + private const int STATUS_BAR_BUTTON_WIDTH = 24; + private const int STATUS_BAR_HEIGHT_DEFAULT = 24; + private const int ICON_SIZE = 24; + private const int PADDING_MINIMUM = 3; + private const int TITLE_LEFT_PADDING = 72; + private const int ACTION_BAR_PADDING = 16; + private const int ACTION_BAR_HEIGHT_DEFAULT = 40; + #endregion + + #region Private Fields private readonly Cursor[] _resizeCursors = { Cursors.SizeNESW, Cursors.SizeWE, Cursors.SizeNWSE, Cursors.SizeWE, Cursors.SizeNS }; - private Rectangle _minButtonBounds; - private Rectangle _maxButtonBounds; - private Rectangle _xButtonBounds; - private Rectangle _actionBarBounds; + private ResizeDirection _resizeDir; + private ButtonState _buttonState = ButtonState.None; + private FormStyles _formStyle; + private Rectangle _minButtonBounds => new Rectangle(ClientSize.Width - 3 * STATUS_BAR_BUTTON_WIDTH, ClientRectangle.Y, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); + private Rectangle _maxButtonBounds => new Rectangle(ClientSize.Width - 2 * STATUS_BAR_BUTTON_WIDTH, ClientRectangle.Y, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); + private Rectangle _xButtonBounds => new Rectangle(ClientSize.Width - STATUS_BAR_BUTTON_WIDTH, ClientRectangle.Y, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); + private Rectangle _actionBarBounds => new Rectangle(ClientRectangle.X, ClientRectangle.Y + STATUS_BAR_HEIGHT, ClientSize.Width, ACTION_BAR_HEIGHT); + private Rectangle _drawerButtonBounds => new Rectangle(ClientRectangle.X + (SkinManager.FORM_PADDING / 2) + 3, STATUS_BAR_HEIGHT + (ACTION_BAR_HEIGHT / 2) - (ACTION_BAR_HEIGHT_DEFAULT / 2), ACTION_BAR_HEIGHT_DEFAULT, ACTION_BAR_HEIGHT_DEFAULT); + private Rectangle _statusBarBounds => new Rectangle(ClientRectangle.X, ClientRectangle.Y, ClientSize.Width, STATUS_BAR_HEIGHT); + private Rectangle _drawerIconRect; - public Rectangle UserArea + private bool Maximized { - get + get => WindowState == FormWindowState.Maximized; + set { - return new Rectangle(0, STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT, Width, Height - (STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT)); + if (!MaximizeBox || !ControlBox) return; + + if (value) + WindowState = FormWindowState.Maximized; + else + WindowState = FormWindowState.Normal; } } - - private Rectangle _statusBarBounds; - private bool _maximized; - private Size _previousSize; - private Point _previousLocation; - private bool _headerMouseDown; + private Point _animationSource; private Padding originalPadding; - public MaterialForm() + private Form drawerOverlay = new Form(); + private MaterialDrawerForm drawerForm = new MaterialDrawerForm(); + + // Drawer overlay and speed improvements + private bool _drawerShowIconsWhenHidden; + private bool _drawerAutoHide; + private bool _drawerAutoShow; + private bool _drawerIsOpen; + private bool _drawerUseColors; + private bool _drawerHighlightWithAccent; + private bool _backgroundWithAccent; + private MaterialDrawer drawerControl; + private AnimationManager _drawerShowHideAnimManager; + private readonly AnimationManager _clickAnimManager; + + private int STATUS_BAR_HEIGHT = 24; + private int ACTION_BAR_HEIGHT = 40; + #endregion + + public MaterialForm() : this(RightToLeft.No) { + + } + public MaterialForm(RightToLeft rightToLeft) + { + this.RightToLeft = rightToLeft; + if (rightToLeft == RightToLeft.Yes) + this.RightToLeftLayout = true; + InitializeComponent(); + drawerControl = new MaterialDrawer(RightToLeft); DrawerWidth = 200; DrawerIsOpen = false; DrawerShowIconsWhenHidden = false; DrawerAutoHide = true; + DrawerAutoShow = false; DrawerIndicatorWidth = 0; DrawerHighlightWithAccent = true; DrawerBackgroundWithAccent = false; + FormBorderStyle = FormBorderStyle.None; - drawerControl.RightToLeft = RightToLeft.Yes; Sizable = true; DoubleBuffered = true; SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true); + FormStyle = FormStyles.ActionBar_40; - // This enables the form to trigger the MouseMove event even when mouse is over another control - Application.AddMessageFilter(new MouseMessageFilter()); - MouseMessageFilter.MouseMove += OnGlobalMouseMove; + Padding = new Padding(PADDING_MINIMUM, STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT, PADDING_MINIMUM, PADDING_MINIMUM); //Keep space for resize by mouse _clickAnimManager = new AnimationManager() { @@ -208,136 +456,9 @@ public MaterialForm() }; } - // Drawer overlay and speed improvements - private bool _drawerShowIconsWhenHidden; - - [Category("Drawer")] - public bool DrawerShowIconsWhenHidden - { - get { return _drawerShowIconsWhenHidden; } - set - { - _drawerShowIconsWhenHidden = value; - if (drawerControl != null) - { - drawerControl.ShowIconsWhenHidden = _drawerShowIconsWhenHidden; - drawerControl.Refresh(); - } - } - } - - [Category("Drawer")] - public int DrawerWidth { get; set; } - - [Category("Drawer")] - public bool DrawerAutoHide { get; set; } - - [Category("Drawer")] - public int DrawerIndicatorWidth { get; set; } - - - - private bool _drawerIsOpen; - - [Category("Drawer")] - public bool DrawerIsOpen - { - get - { - return _drawerIsOpen; - } - set - { - _drawerIsOpen = value; - if (drawerControl != null) - { - if (value) - drawerControl.Show(); - else - drawerControl.Hide(); - } - } - } - - private bool _drawerUseColors; - - [Category("Drawer")] - public bool DrawerUseColors - { - get - { - return _drawerUseColors; - } - set - { - _drawerUseColors = value; - if (drawerControl != null) - { - drawerControl.UseColors = value; - drawerControl.Refresh(); - } - } - } - - private bool _drawerHighlightWithAccent; - - [Category("Drawer")] - public bool DrawerHighlightWithAccent - { - get - { - return _drawerHighlightWithAccent; - } - set - { - _drawerHighlightWithAccent = value; - if (drawerControl != null) - { - drawerControl.HighlightWithAccent = value; - drawerControl.Refresh(); - } - } - } - - private bool _backgroundWithAccent; - - [Category("Drawer")] - public bool DrawerBackgroundWithAccent - { - get - { - return _backgroundWithAccent; - } - set - { - _backgroundWithAccent = value; - if (drawerControl != null) - { - drawerControl.BackgroundWithAccent = value; - drawerControl.Refresh(); - } - } - } - - private MaterialDrawer drawerControl = new MaterialDrawer(RightToLeft.Yes); - - [Category("Drawer")] - public MaterialTabControl DrawerTabControl { get; set; } - - private AnimationManager _drawerShowHideAnimManager; - private Form drawerForm = new Form(); - private Form drawerOverlay = new Form(); - private void ResizeDrawer(object sender, EventArgs e) - { - int locationY = Location.Y + _statusBarBounds.Height + _actionBarBounds.Height; - int locationX = RightToLeft == RightToLeft.Yes ? Location.X + (Width - DrawerWidth) : Location.X; - Point pos = new Point(locationX, locationY); - drawerForm.Location = pos; - drawerOverlay.Location = new Point(Location.X, locationY); - } + #region Private Methods protected void AddDrawerOverlayForm() { - if (DrawerTabControl == null) return; @@ -352,10 +473,30 @@ protected void AddDrawerOverlayForm() { drawerOverlay.Opacity = (float)(_drawerShowHideAnimManager.GetProgress() * 0.55f); }; - drawerControl.MinWidth = 62; - int H = Size.Height - _statusBarBounds.Height - _actionBarBounds.Height; - int Y = Location.Y + _statusBarBounds.Height + _actionBarBounds.Height; - int X = RightToLeft == RightToLeft.Yes ? Location.X + (Width - DrawerWidth) : Location.X; + + int H = ClientSize.Height - _statusBarBounds.Height - _actionBarBounds.Height; + int Y = PointToScreen(Point.Empty).Y + _statusBarBounds.Height + _actionBarBounds.Height; + + // Overlay Form definitions + drawerOverlay.BackColor = Color.Black; + drawerOverlay.RightToLeft = RightToLeft; + + drawerOverlay.Opacity = 0; + drawerOverlay.MinimizeBox = false; + drawerOverlay.MaximizeBox = false; + drawerOverlay.Text = ""; + drawerOverlay.ShowIcon = false; + drawerOverlay.ControlBox = false; + drawerOverlay.FormBorderStyle = FormBorderStyle.None; + drawerOverlay.Visible = true; + drawerOverlay.Size = new Size(ClientSize.Width, H); + int locationY = Location.Y + _statusBarBounds.Height + _actionBarBounds.Height; + int locationX = RightToLeft == RightToLeft.Yes ? Location.X + (Width - DrawerWidth) : Location.X; + drawerOverlay.Location = new Point(Location.X, locationY); + drawerOverlay.ShowInTaskbar = false; + drawerOverlay.Owner = this; + drawerOverlay.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; + // Drawer Form definitions drawerForm.BackColor = Color.LimeGreen; drawerForm.TransparencyKey = Color.LimeGreen; @@ -367,10 +508,13 @@ protected void AddDrawerOverlayForm() drawerForm.FormBorderStyle = FormBorderStyle.None; drawerForm.Visible = true; drawerForm.Size = new Size(DrawerWidth, H); - drawerForm.Location = new Point(X, Y); + + drawerForm.Location = new Point(locationX, locationY); drawerForm.ShowInTaskbar = false; drawerForm.Owner = drawerOverlay; drawerForm.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; + drawerForm.RightToLeft = RightToLeft; + // Add drawer to overlay form drawerForm.Controls.Add(drawerControl); drawerControl.Location = new Point(0, 0); @@ -378,11 +522,12 @@ protected void AddDrawerOverlayForm() drawerControl.Anchor = (AnchorStyles.Top | AnchorStyles.Bottom); drawerControl.BaseTabControl = DrawerTabControl; drawerControl.ShowIconsWhenHidden = true; - drawerControl.RightToLeft = RightToLeft; + // Init Options drawerControl.IsOpen = DrawerIsOpen; drawerControl.ShowIconsWhenHidden = DrawerShowIconsWhenHidden; drawerControl.AutoHide = DrawerAutoHide; + drawerControl.AutoShow = DrawerAutoShow; drawerControl.IndicatorWidth = DrawerIndicatorWidth; drawerControl.HighlightWithAccent = DrawerHighlightWithAccent; drawerControl.BackgroundWithAccent = DrawerBackgroundWithAccent; @@ -397,22 +542,6 @@ protected void AddDrawerOverlayForm() drawerForm.Refresh(); }; - // Overlay Form definitions - drawerOverlay.BackColor = Color.Black; - drawerOverlay.Opacity = 0; - drawerOverlay.MinimizeBox = false; - drawerOverlay.MaximizeBox = false; - drawerOverlay.Text = ""; - drawerOverlay.ShowIcon = false; - drawerOverlay.ControlBox = false; - drawerOverlay.FormBorderStyle = FormBorderStyle.None; - drawerOverlay.Visible = true; - drawerOverlay.Size = new Size(Size.Width, H); - drawerOverlay.Location = new Point(Location.X, Y); - drawerOverlay.ShowInTaskbar = false; - drawerOverlay.Owner = this; - drawerOverlay.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; - // Visible, Resize and move events VisibleChanged += (sender, e) => { @@ -420,14 +549,20 @@ protected void AddDrawerOverlayForm() drawerOverlay.Visible = Visible; }; - Resize += (sender, args) => + Resize += (sender, e) => { - H = Size.Height - _statusBarBounds.Height - _actionBarBounds.Height; + H = ClientSize.Height - _statusBarBounds.Height - _actionBarBounds.Height; drawerForm.Size = new Size(DrawerWidth, H); - drawerOverlay.Size = new Size(Size.Width, H); + drawerOverlay.Size = new Size(ClientSize.Width, H); }; - Move += ResizeDrawer; + Move += (sender, e) => + { + locationY = Location.Y + _statusBarBounds.Height + _actionBarBounds.Height; + locationX = RightToLeft == RightToLeft.Yes ? Location.X + (Width - DrawerWidth) : Location.X; + drawerForm.Location = new Point(locationX, locationY); + drawerOverlay.Location = new Point(Location.X, locationY); + }; // Close when click outside menu drawerOverlay.Click += (sender, e) => @@ -435,161 +570,358 @@ protected void AddDrawerOverlayForm() drawerControl.Hide(); }; + //Resize form when mouse over drawer + drawerControl.MouseDown += (sender, e) => + { + ResizeForm(_resizeDir); + }; + // Animation and visibility drawerControl.DrawerBeginOpen += (sender) => { _drawerShowHideAnimManager.StartNewAnimation(AnimationDirection.In); }; - drawerControl.DrawerBeginClose += (sender) => + drawerControl.DrawerBeginClose += (sender) => + { + _drawerShowHideAnimManager.StartNewAnimation(AnimationDirection.Out); + }; + drawerControl.CursorUpdate += (sender, drawerCursor) => + { + if (Sizable && !Maximized) + { + if (drawerCursor == Cursors.SizeNESW) + _resizeDir = ResizeDirection.BottomLeft; + else if (drawerCursor == Cursors.SizeWE) + _resizeDir = ResizeDirection.Left; + else if (drawerCursor == Cursors.SizeNS) + _resizeDir = ResizeDirection.Bottom; + else + _resizeDir = ResizeDirection.None; + } + else + _resizeDir = ResizeDirection.None; + Cursor = drawerCursor; + }; + + // Form Padding corrections + + if (Padding.Top < (_statusBarBounds.Height + _actionBarBounds.Height)) + Padding = new Padding(Padding.Left, (_statusBarBounds.Height + _actionBarBounds.Height), Padding.Right, Padding.Bottom); + + originalPadding = Padding; + + drawerControl.DrawerShowIconsWhenHiddenChanged += FixFormPadding; + FixFormPadding(this); + + // Fix Closing the Drawer or Overlay form with Alt+F4 not exiting the app + drawerOverlay.FormClosed += TerminateOnClose; + drawerForm.FormClosed += TerminateOnClose; + drawerForm.Attach(drawerControl); + } + + private void TerminateOnClose(object sender, FormClosedEventArgs e) + { + Application.Exit(); + } + + private void FixFormPadding(object sender) + { + if (drawerControl.ShowIconsWhenHidden) + Padding = new Padding(Padding.Left < drawerControl.MinWidth ? drawerControl.MinWidth : Padding.Left, originalPadding.Top, originalPadding.Right, originalPadding.Bottom); + else + Padding = new Padding(PADDING_MINIMUM, originalPadding.Top, originalPadding.Right, originalPadding.Bottom); + } + + private void UpdateButtons(MouseButtons button, Point location, bool up = false) + { + if (DesignMode) return; + + var oldState = _buttonState; + bool showMin = MinimizeBox && ControlBox; + bool showMax = MaximizeBox && ControlBox; + + if (button == MouseButtons.Left && !up) + { + if (showMin && !showMax && _maxButtonBounds.Contains(location)) + _buttonState = ButtonState.MinDown; + else if (showMin && showMax && _minButtonBounds.Contains(location)) + _buttonState = ButtonState.MinDown; + else if (showMax && _maxButtonBounds.Contains(location)) + _buttonState = ButtonState.MaxDown; + else if (ControlBox && _xButtonBounds.Contains(location)) + _buttonState = ButtonState.XDown; + else if (_drawerButtonBounds.Contains(location)) + _buttonState = ButtonState.DrawerDown; + else + _buttonState = ButtonState.None; + } + else + { + if (showMin && !showMax && _maxButtonBounds.Contains(location)) + { + _buttonState = ButtonState.MinOver; + + if (oldState == ButtonState.MinDown && up) + WindowState = FormWindowState.Minimized; + } + else if (showMin && showMax && _minButtonBounds.Contains(location)) + { + _buttonState = ButtonState.MinOver; + + if (oldState == ButtonState.MinDown && up) + WindowState = FormWindowState.Minimized; + } + else if (showMax && _maxButtonBounds.Contains(location)) + { + _buttonState = ButtonState.MaxOver; + + if (oldState == ButtonState.MaxDown && up) + Maximized = !Maximized; + } + else if (ControlBox && _xButtonBounds.Contains(location)) + { + _buttonState = ButtonState.XOver; + + if (oldState == ButtonState.XDown && up) + Close(); + } + else if (_drawerButtonBounds.Contains(location)) + { + _buttonState = ButtonState.DrawerOver; + } + else + { + _buttonState = ButtonState.None; + } + } + + if (oldState != _buttonState) + Invalidate(); + } + + private void ResizeForm(ResizeDirection direction) + { + if (DesignMode) + return; + var dir = -1; + switch (direction) + { + case ResizeDirection.BottomLeft: + dir = (int)HT.BottomLeft; + Cursor = Cursors.SizeNESW; + break; + + case ResizeDirection.Left: + dir = (int)HT.Left; + Cursor = Cursors.SizeWE; + break; + + case ResizeDirection.Right: + dir = (int)HT.Right; + break; + + case ResizeDirection.BottomRight: + dir = (int)HT.BottomRight; + break; + + case ResizeDirection.Bottom: + dir = (int)HT.Bottom; + break; + + case ResizeDirection.Top: + dir = (int)HT.Top; + break; + + case ResizeDirection.TopLeft: + dir = (int)HT.TopLeft; + break; + + case ResizeDirection.TopRight: + dir = (int)HT.TopRight; + break; + } + + ReleaseCapture(); + if (dir != -1) + { + SendMessage(Handle, (int)WM.NonClientLeftButtonDown, dir, 0); + } + } + + private void RecalculateFormBoundaries() + { + switch (_formStyle) { - _drawerShowHideAnimManager.StartNewAnimation(AnimationDirection.Out); - }; + case FormStyles.StatusAndActionBar_None: + ACTION_BAR_HEIGHT = 0; + STATUS_BAR_HEIGHT = 0; + break; + case FormStyles.ActionBar_None: + ACTION_BAR_HEIGHT = 0; + STATUS_BAR_HEIGHT = STATUS_BAR_HEIGHT_DEFAULT; + break; + case FormStyles.ActionBar_40: + ACTION_BAR_HEIGHT = ACTION_BAR_HEIGHT_DEFAULT; + STATUS_BAR_HEIGHT = STATUS_BAR_HEIGHT_DEFAULT; + break; + case FormStyles.ActionBar_48: + ACTION_BAR_HEIGHT = 48; + STATUS_BAR_HEIGHT = STATUS_BAR_HEIGHT_DEFAULT; + break; + case FormStyles.ActionBar_56: + ACTION_BAR_HEIGHT = 56; + STATUS_BAR_HEIGHT = STATUS_BAR_HEIGHT_DEFAULT; + break; + case FormStyles.ActionBar_64: + ACTION_BAR_HEIGHT = 64; + STATUS_BAR_HEIGHT = STATUS_BAR_HEIGHT_DEFAULT; + break; + default: + ACTION_BAR_HEIGHT = ACTION_BAR_HEIGHT_DEFAULT; + STATUS_BAR_HEIGHT = STATUS_BAR_HEIGHT_DEFAULT; + break; + } - // Form Padding corrections + Padding = new Padding(_drawerShowIconsWhenHidden ? drawerControl.MinWidth : PADDING_MINIMUM, STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT, Padding.Right, Padding.Bottom); + originalPadding = Padding; - if (Padding.Top < (_statusBarBounds.Height + _actionBarBounds.Height)) - Padding = new Padding(Padding.Left, (_statusBarBounds.Height + _actionBarBounds.Height), Padding.Right, Padding.Bottom); + if (DrawerTabControl != null) + { + int locationY = Location.Y + STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT; + int locationX = RightToLeft == RightToLeft.Yes ? Location.X + (Width - DrawerWidth) : Location.X; + var height = ClientSize.Height - (STATUS_BAR_HEIGHT + ACTION_BAR_HEIGHT); + drawerOverlay.Size = new Size(ClientSize.Width, height); + drawerOverlay.Location = new Point(Location.X, locationY); + drawerForm.Size = new Size(DrawerWidth, height); + drawerForm.Location = new Point(locationX, locationY); + } - originalPadding = Padding; + Invalidate(); + } + #endregion - drawerControl.DrawerShowIconsWhenHiddenChanged += FixFormPadding; - FixFormPadding(this); + #region WinForms Methods + protected override CreateParams CreateParams + { + get + { + var par = base.CreateParams; + par.Style |= (int)WS.MinimizeBox | (int)WS.SysMenu; + return par; + } } - private void FixFormPadding(object sender) + protected override void OnCreateControl() { - if (drawerControl.ShowIconsWhenHidden && - Padding.Left < drawerControl.MinWidth) Padding = new Padding(drawerControl.MinWidth, originalPadding.Top, originalPadding.Right, originalPadding.Bottom); - else - Padding = originalPadding; + base.OnCreateControl(); + + // Sets the Window Style for having a Size Frame after the form is created + // This prevents unexpected sizing while still allowing for Aero Snapping + var flags = GetWindowLongPtr(Handle, -16).ToInt64(); + SetWindowLongPtr(Handle, -16, (IntPtr)(flags | (int)WS.SizeFrame)); } protected override void WndProc(ref Message m) { + var message = (WM)m.Msg; + // Prevent the base class from receiving the message + if (message == WM.NonClientCalcSize) return; + + // https://docs.microsoft.com/en-us/windows/win32/winmsg/wm-ncactivate?redirectedfrom=MSDN#parameters + // "If this parameter is set to -1, DefWindowProc does not repaint the nonclient area to reflect the state change." + if (message == WM.NonClientActivate) + { + m.Result = new IntPtr(-1); + return; + } + base.WndProc(ref m); if (DesignMode || IsDisposed) return; + var cursorPos = PointToClient(Cursor.Position); + var isOverCaption = (_statusBarBounds.Contains(cursorPos) || _actionBarBounds.Contains(cursorPos)) && + !(_minButtonBounds.Contains(cursorPos) || _maxButtonBounds.Contains(cursorPos) || _xButtonBounds.Contains(cursorPos)); + // Drawer - if (DrawerTabControl != null && (m.Msg == WM_LBUTTONDOWN || m.Msg == WM_LBUTTONDBLCLK) && _drawerIconRect.Contains(PointToClient(Cursor.Position))) + if (DrawerTabControl != null && (message == WM.LeftButtonDown || message == WM.LeftButtonDoubleClick) && _drawerIconRect.Contains(cursorPos)) { drawerControl.Toggle(); _clickAnimManager.SetProgress(0); _clickAnimManager.StartNewAnimation(AnimationDirection.In); - _animationSource = (PointToClient(Cursor.Position)); + _animationSource = cursorPos; } // Double click to maximize - else if (m.Msg == WM_LBUTTONDBLCLK) - { - MaximizeWindow(!_maximized); - } - // move a maximized window - else if (m.Msg == WM_MOUSEMOVE && _maximized && - (_statusBarBounds.Contains(PointToClient(Cursor.Position)) || _actionBarBounds.Contains(PointToClient(Cursor.Position))) && - !(_minButtonBounds.Contains(PointToClient(Cursor.Position)) || _maxButtonBounds.Contains(PointToClient(Cursor.Position)) || _xButtonBounds.Contains(PointToClient(Cursor.Position)))) + else if (message == WM.LeftButtonDoubleClick && isOverCaption) { - if (_headerMouseDown) - { - _maximized = false; - _headerMouseDown = false; - - var mousePoint = PointToClient(Cursor.Position); - if (mousePoint.X < Width / 2) - Location = mousePoint.X < _previousSize.Width / 2 ? - new Point(Cursor.Position.X - mousePoint.X, Cursor.Position.Y - mousePoint.Y) : - new Point(Cursor.Position.X - _previousSize.Width / 2, Cursor.Position.Y - mousePoint.Y); - else - Location = Width - mousePoint.X < _previousSize.Width / 2 ? - new Point(Cursor.Position.X - _previousSize.Width + Width - mousePoint.X, Cursor.Position.Y - mousePoint.Y) : - new Point(Cursor.Position.X - _previousSize.Width / 2, Cursor.Position.Y - mousePoint.Y); - - Size = _previousSize; - ReleaseCapture(); - SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); - } + Maximized = !Maximized; } - // Status bar buttons - else if (m.Msg == WM_LBUTTONDOWN && - (_statusBarBounds.Contains(PointToClient(Cursor.Position)) || _actionBarBounds.Contains(PointToClient(Cursor.Position))) && - !(_minButtonBounds.Contains(PointToClient(Cursor.Position)) || _maxButtonBounds.Contains(PointToClient(Cursor.Position)) || _xButtonBounds.Contains(PointToClient(Cursor.Position)))) + // Treat the Caption as if it was Non-Client + else if (message == WM.LeftButtonDown && isOverCaption) { - if (!_maximized) - { - ReleaseCapture(); - SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); - } - else - { - _headerMouseDown = true; - } + ReleaseCapture(); + SendMessage(Handle, (int)WM.NonClientLeftButtonDown, (int)HT.Caption, 0); } // Default context menu - else if (m.Msg == WM_RBUTTONDOWN) + else if (message == WM.RightButtonDown) { - Point cursorPos = PointToClient(Cursor.Position); - if (_statusBarBounds.Contains(cursorPos) && !_minButtonBounds.Contains(cursorPos) && !_maxButtonBounds.Contains(cursorPos) && !_xButtonBounds.Contains(cursorPos)) { + // Temporary disable user defined ContextMenuStrip + var user_cms = base.ContextMenuStrip; + base.ContextMenuStrip = null; + // Show default system menu when right clicking titlebar - var id = TrackPopupMenuEx(GetSystemMenu(Handle, false), TPM_LEFTALIGN | TPM_RETURNCMD, Cursor.Position.X, Cursor.Position.Y, Handle, IntPtr.Zero); + var id = TrackPopupMenuEx(GetSystemMenu(Handle, false), (int)TPM.LeftAlign | (int)TPM.ReturnCommand, Cursor.Position.X, Cursor.Position.Y, Handle, IntPtr.Zero); // Pass the command as a WM_SYSCOMMAND message - SendMessage(Handle, WM_SYSCOMMAND, id, 0); - } - } - else if (m.Msg == WM_NCLBUTTONDOWN) - { - // This re-enables resizing by letting the application know when the - // user is trying to resize a side. This is disabled by default when using WS_SYSMENU. - if (!Sizable) - return; + SendMessage(Handle, (int)WM.SystemCommand, id, 0); - byte bFlag = 0; - - // Get which side to resize from - if (_resizingLocationsToCmd.ContainsKey((int)m.WParam)) - bFlag = (byte)_resizingLocationsToCmd[(int)m.WParam]; - - if (bFlag != 0) - SendMessage(Handle, WM_SYSCOMMAND, 0xF000 | bFlag, (int)m.LParam); - } - else if (m.Msg == WM_LBUTTONUP) - { - _headerMouseDown = false; + // restore user defined ContextMenuStrip + base.ContextMenuStrip = user_cms; + } } } - protected override CreateParams CreateParams + protected override void OnMove(EventArgs e) { - get - { - var par = base.CreateParams; - // WS_SYSMENU: Trigger the creation of the system menu - // WS_MINIMIZEBOX: Allow minimizing from taskbar - par.Style = par.Style | WS_MINIMIZEBOX | WS_SYSMENU; // Turn on the WS_MINIMIZEBOX style flag - return par; - } + // Empty Point ensures the screen maximizes to the top left of the current screen + MaximizedBounds = new Rectangle(Point.Empty, Screen.GetWorkingArea(Location).Size); + base.OnMove(e); } protected override void OnMouseDown(MouseEventArgs e) { if (DesignMode) return; - UpdateButtons(e); + UpdateButtons(e.Button, e.Location); - if (e.Button == MouseButtons.Left && !_maximized) + if (e.Button == MouseButtons.Left && !Maximized && _resizeCursors.Contains(Cursor)) ResizeForm(_resizeDir); base.OnMouseDown(e); } + protected override void OnMouseEnter(EventArgs e) + { + base.OnMouseEnter(e); + Cursor = Cursors.Default; + } + protected override void OnMouseLeave(EventArgs e) { base.OnMouseLeave(e); if (DesignMode) return; _buttonState = ButtonState.None; + _resizeDir = ResizeDirection.None; + //Only reset the cursor when needed + if (_resizeCursors.Contains(Cursor)) + { + Cursor = Cursors.Default; + } + Invalidate(); } @@ -597,145 +929,64 @@ protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); - if (DesignMode) - return; - - if (Sizable) - { - //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) - { - _resizeDir = RightToLeft == RightToLeft.Yes ? ResizeDirection.BottomRight : ResizeDirection.BottomLeft; - Cursor = RightToLeft == RightToLeft.Yes ? Cursors.SizeNWSE : Cursors.SizeNESW; - } - else if (e.Location.X < BORDER_WIDTH && !isChildUnderMouse && !_maximized) - { - _resizeDir = RightToLeft == RightToLeft.Yes ? ResizeDirection.Right : ResizeDirection.Left; - Cursor = Cursors.SizeWE; - } - else if (e.Location.X > Width - BORDER_WIDTH && e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_maximized) - { - _resizeDir = RightToLeft == RightToLeft.Yes ? ResizeDirection.BottomLeft : ResizeDirection.BottomRight; - Cursor = RightToLeft == RightToLeft.Yes ? Cursors.SizeNESW : Cursors.SizeNWSE; - } - else if (e.Location.X > Width - BORDER_WIDTH && !isChildUnderMouse && !_maximized) - { - _resizeDir = RightToLeft == RightToLeft.Yes ? ResizeDirection.Left : ResizeDirection.Right; - Cursor = Cursors.SizeWE; - } - else if (e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_maximized) - { - _resizeDir = ResizeDirection.Bottom; - Cursor = Cursors.SizeNS; - } - else - { - _resizeDir = ResizeDirection.None; + if (DesignMode) return; - //Only reset the cursor when needed, this prevents it from flickering when a child control changes the cursor to its own needs - if (_resizeCursors.Contains(Cursor)) - { - Cursor = Cursors.Default; - } - } - drawerControl.Refresh(); - } + var coords = e.Location; - UpdateButtons(e); - } + UpdateButtons(e.Button, coords); - protected void OnGlobalMouseMove(object sender, MouseEventArgs e) - { - if (IsDisposed) - return; - // Convert to client position and pass to Form.MouseMove - var clientCursorPos = PointToClient(e.Location); - var newE = new MouseEventArgs(MouseButtons.None, 0, clientCursorPos.X, clientCursorPos.Y, 0); - OnMouseMove(newE); - } + if (!Sizable) return; - private void UpdateButtons(MouseEventArgs e, bool up = false) - { - if (DesignMode) - return; - var oldState = _buttonState; - bool showMin = MinimizeBox && ControlBox; - bool showMax = MaximizeBox && ControlBox; + //True if the mouse is hovering over a child control + var isChildUnderMouse = GetChildAtPoint(coords) != null; - if (e.Button == MouseButtons.Left && !up) + if (!isChildUnderMouse && !Maximized && coords.Y < BORDER_WIDTH && coords.X > BORDER_WIDTH && coords.X < ClientSize.Width - BORDER_WIDTH) { - if (showMin && !showMax && _maxButtonBounds.Contains(e.Location)) - _buttonState = ButtonState.MinDown; - else if (showMin && showMax && _minButtonBounds.Contains(e.Location)) - _buttonState = ButtonState.MinDown; - else if (showMax && _maxButtonBounds.Contains(e.Location)) - _buttonState = ButtonState.MaxDown; - else if (ControlBox && _xButtonBounds.Contains(e.Location)) - _buttonState = ButtonState.XDown; - else - _buttonState = ButtonState.None; + _resizeDir = ResizeDirection.Top; + Cursor = Cursors.SizeNS; } - else + else if (!isChildUnderMouse && !Maximized && coords.X <= BORDER_WIDTH && coords.Y < BORDER_WIDTH) { - if (showMin && !showMax && _maxButtonBounds.Contains(e.Location)) - { - _buttonState = ButtonState.MinOver; - - if (oldState == ButtonState.MinDown && up) - WindowState = FormWindowState.Minimized; - } - else if (showMin && showMax && _minButtonBounds.Contains(e.Location)) - { - _buttonState = ButtonState.MinOver; - - if (oldState == ButtonState.MinDown && up) - WindowState = FormWindowState.Minimized; - } - else if (MaximizeBox && ControlBox && _maxButtonBounds.Contains(e.Location)) - { - _buttonState = ButtonState.MaxOver; - - if (oldState == ButtonState.MaxDown && up) - MaximizeWindow(!_maximized); - } - else if (ControlBox && _xButtonBounds.Contains(e.Location)) - { - _buttonState = ButtonState.XOver; - - if (oldState == ButtonState.XDown && up) - Close(); - } - else - _buttonState = ButtonState.None; + _resizeDir = ResizeDirection.TopLeft; + Cursor = Cursors.SizeNWSE; } - - if (oldState != _buttonState) - Invalidate(); - } - - private void MaximizeWindow(bool maximize) - { - if (!MaximizeBox || !ControlBox) - return; - - _maximized = maximize; - - if (maximize) + else if (!isChildUnderMouse && !Maximized && coords.X >= ClientSize.Width - BORDER_WIDTH && coords.Y < BORDER_WIDTH) + { + _resizeDir = ResizeDirection.TopRight; + Cursor = Cursors.SizeNESW; + } + else if (!isChildUnderMouse && !Maximized && coords.X <= BORDER_WIDTH && coords.Y >= ClientSize.Height - BORDER_WIDTH) + { + _resizeDir = ResizeDirection.BottomLeft; + Cursor = Cursors.SizeNESW; + } + else if ((!isChildUnderMouse || DrawerTabControl != null) && !Maximized && coords.X <= BORDER_WIDTH) + { + _resizeDir = ResizeDirection.Left; + Cursor = Cursors.SizeWE; + } + else if (!isChildUnderMouse && !Maximized && coords.X >= ClientSize.Width - BORDER_WIDTH && coords.Y >= ClientSize.Height - BORDER_WIDTH) + { + _resizeDir = ResizeDirection.BottomRight; + Cursor = Cursors.SizeNWSE; + } + else if (!isChildUnderMouse && !Maximized && coords.X >= ClientSize.Width - BORDER_WIDTH) + { + _resizeDir = ResizeDirection.Right; + Cursor = Cursors.SizeWE; + } + else if (!isChildUnderMouse && !Maximized && coords.Y >= ClientSize.Height - BORDER_WIDTH) { - var monitorHandle = MonitorFromWindow(Handle, MONITOR_DEFAULTTONEAREST); - var monitorInfo = new MONITORINFOEX(); - GetMonitorInfo(new HandleRef(null, monitorHandle), monitorInfo); - _previousSize = Size; - _previousLocation = Location; - Size = new Size(monitorInfo.rcWork.Width(), monitorInfo.rcWork.Height()); - Location = new Point(monitorInfo.rcWork.left, monitorInfo.rcWork.top); + _resizeDir = ResizeDirection.Bottom; + Cursor = Cursors.SizeNS; } else { - Size = _previousSize; - Location = _previousLocation; + _resizeDir = ResizeDirection.None; + + //Only reset the cursor when needed, this prevents it from flickering when a child control changes the cursor to its own needs + if (_resizeCursors.Contains(Cursor)) + Cursor = Cursors.Default; } } @@ -743,153 +994,159 @@ protected override void OnMouseUp(MouseEventArgs e) { if (DesignMode) return; - UpdateButtons(e, true); + UpdateButtons(e.Button, e.Location, true); base.OnMouseUp(e); ReleaseCapture(); } - private void ResizeForm(ResizeDirection direction) - { - if (DesignMode) - return; - var dir = -1; - switch (direction) - { - case ResizeDirection.BottomLeft: - dir = HTBOTTOMLEFT; - break; - - case ResizeDirection.Left: - dir = HTLEFT; - break; - - case ResizeDirection.Right: - dir = HTRIGHT; - break; - - case ResizeDirection.BottomRight: - dir = HTBOTTOMRIGHT; - break; - - case ResizeDirection.Bottom: - dir = HTBOTTOM; - break; - } - - ReleaseCapture(); - if (dir != -1) - { - SendMessage(Handle, WM_NCLBUTTONDOWN, dir, 0); - } - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - ResizeDrawer(this, e); - _minButtonBounds = new Rectangle((Width) - 3 * STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); - _maxButtonBounds = new Rectangle((Width) - 2 * STATUS_BAR_BUTTON_WIDTH, 0, STATUS_BAR_BUTTON_WIDTH, STATUS_BAR_HEIGHT); - _xButtonBounds = new Rectangle((Width) - 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); - } - protected override void OnPaint(PaintEventArgs e) { + var hoverBrush = SkinManager.BackgroundHoverBrush; + var downBrush = SkinManager.BackgroundFocusBrush; var g = e.Graphics; g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; g.Clear(SkinManager.BackdropColor); - g.FillRectangle(SkinManager.ColorScheme.DarkPrimaryBrush, _statusBarBounds); - g.FillRectangle(SkinManager.ColorScheme.PrimaryBrush, _actionBarBounds); //Draw border using (var borderPen = new Pen(SkinManager.DividersColor, 1)) { - g.DrawLine(borderPen, new Point(0, _actionBarBounds.Bottom), new Point(0, Height - 2)); - g.DrawLine(borderPen, new Point(Width - 1, _actionBarBounds.Bottom), new Point(Width - 1, Height - 2)); - g.DrawLine(borderPen, new Point(0, Height - 1), new Point(Width - 1, Height - 1)); + g.DrawLine(borderPen, new Point(0, _actionBarBounds.Bottom), new Point(0, ClientSize.Height - 2)); + g.DrawLine(borderPen, new Point(ClientSize.Width - 1, _actionBarBounds.Bottom), new Point(ClientSize.Width - 1, ClientSize.Height - 2)); + g.DrawLine(borderPen, new Point(0, ClientSize.Height - 1), new Point(ClientSize.Width - 1, ClientSize.Height - 1)); } - // Determine whether or not we even should be drawing the buttons. - bool showMin = MinimizeBox && ControlBox; - bool showMax = MaximizeBox && ControlBox; - var hoverBrush = SkinManager.BackgroundHoverBrush; - var downBrush = SkinManager.BackgroundFocusBrush; - - // When MaximizeButton == false, the minimize button will be painted in its place - if (_buttonState == ButtonState.MinOver && showMin) - g.FillRectangle(hoverBrush, showMax ? _minButtonBounds : _maxButtonBounds); + if (_formStyle != FormStyles.StatusAndActionBar_None) + { + if (ControlBox) + { + g.FillRectangle(SkinManager.ColorScheme.DarkPrimaryBrush, _statusBarBounds); + g.FillRectangle(SkinManager.ColorScheme.PrimaryBrush, _actionBarBounds); + } - if (_buttonState == ButtonState.MinDown && showMin) - g.FillRectangle(downBrush, showMax ? _minButtonBounds : _maxButtonBounds); + // Determine whether or not we even should be drawing the buttons. + bool showMin = MinimizeBox && ControlBox; + bool showMax = MaximizeBox && ControlBox; - if (_buttonState == ButtonState.MaxOver && showMax) - g.FillRectangle(hoverBrush, _maxButtonBounds); + // When MaximizeButton == false, the minimize button will be painted in its place + if (_buttonState == ButtonState.MinOver && showMin) + g.FillRectangle(hoverBrush, showMax ? _minButtonBounds : _maxButtonBounds); - if (_buttonState == ButtonState.MaxDown && showMax) - g.FillRectangle(downBrush, _maxButtonBounds); + if (_buttonState == ButtonState.MinDown && showMin) + g.FillRectangle(downBrush, showMax ? _minButtonBounds : _maxButtonBounds); - if (_buttonState == ButtonState.XOver && ControlBox) - g.FillRectangle(hoverBrush, _xButtonBounds); + if (_buttonState == ButtonState.MaxOver && showMax) + g.FillRectangle(hoverBrush, _maxButtonBounds); - if (_buttonState == ButtonState.XDown && ControlBox) - g.FillRectangle(downBrush, _xButtonBounds); + if (_buttonState == ButtonState.MaxDown && showMax) + g.FillRectangle(downBrush, _maxButtonBounds); - using (var formButtonsPen = new Pen(SkinManager.ColorScheme.TextColor, 2)) - { - // Minimize button. - if (showMin) - { - int x = showMax ? _minButtonBounds.X : _maxButtonBounds.X; - int y = showMax ? _minButtonBounds.Y : _maxButtonBounds.Y; + if (_buttonState == ButtonState.XOver && ControlBox) + g.FillRectangle(SkinManager.BackgroundHoverRedBrush, _xButtonBounds); - g.DrawLine( - formButtonsPen, - x + (int)(_minButtonBounds.Width * 0.33), - y + (int)(_minButtonBounds.Height * 0.66), - x + (int)(_minButtonBounds.Width * 0.66), - y + (int)(_minButtonBounds.Height * 0.66) - ); - } + if (_buttonState == ButtonState.XDown && ControlBox) + g.FillRectangle(SkinManager.BackgroundDownRedBrush, _xButtonBounds); - // Maximize button - if (showMax) + using (var formButtonsPen = new Pen(SkinManager.ColorScheme.TextColor, 2)) { - g.DrawRectangle( - formButtonsPen, - _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.33), - _maxButtonBounds.Y + (int)(_maxButtonBounds.Height * 0.36), - (int)(_maxButtonBounds.Width * 0.39), - (int)(_maxButtonBounds.Height * 0.31) - ); - } + // Minimize button. + if (showMin) + { + int x = showMax ? _minButtonBounds.X : _maxButtonBounds.X; + int y = showMax ? _minButtonBounds.Y : _maxButtonBounds.Y; + + g.DrawLine( + formButtonsPen, + x + (int)(_minButtonBounds.Width * 0.33), + y + (int)(_minButtonBounds.Height * 0.66), + x + (int)(_minButtonBounds.Width * 0.66), + y + (int)(_minButtonBounds.Height * 0.66) + ); + } - // Close button - if (ControlBox) - { - g.DrawLine( - formButtonsPen, - _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.33), - _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.33), - _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.66), - _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.66) - ); + // Maximize button + if (showMax) + { + if (WindowState != FormWindowState.Maximized) + { + g.DrawRectangle( + formButtonsPen, + _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.33), + _maxButtonBounds.Y + (int)(_maxButtonBounds.Height * 0.36), + (int)(_maxButtonBounds.Width * 0.39), + (int)(_maxButtonBounds.Height * 0.31) + ); + } + else + { + // Change position of square + g.DrawRectangle( + formButtonsPen, + _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.30), + _maxButtonBounds.Y + (int)(_maxButtonBounds.Height * 0.42), + (int)(_maxButtonBounds.Width * 0.40), + (int)(_maxButtonBounds.Height * 0.32) + ); + // Draw lines for background square + g.DrawLine(formButtonsPen, + _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.42), + _maxButtonBounds.Y + (int)(_maxButtonBounds.Height * 0.30), + _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.42), + _maxButtonBounds.Y + (int)(_maxButtonBounds.Height * 0.38) + ); + g.DrawLine(formButtonsPen, + _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.40), + _maxButtonBounds.Y + (int)(_maxButtonBounds.Height * 0.30), + _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.86), + _maxButtonBounds.Y + (int)(_maxButtonBounds.Width * 0.30) + ); + g.DrawLine(formButtonsPen, + _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.82), + _maxButtonBounds.Y + (int)(_maxButtonBounds.Height * 0.28), + _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.82), + _maxButtonBounds.Y + (int)(_maxButtonBounds.Width * 0.64) + ); + g.DrawLine(formButtonsPen, + _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.70), + _maxButtonBounds.Y + (int)(_maxButtonBounds.Height * 0.62), + _maxButtonBounds.X + (int)(_maxButtonBounds.Width * 0.84), + _maxButtonBounds.Y + (int)(_maxButtonBounds.Width * 0.62) + ); + } + } - g.DrawLine( - formButtonsPen, - _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.66), - _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.33), - _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.33), - _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.66)); + // Close button + if (ControlBox) + { + g.DrawLine( + formButtonsPen, + _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.33), + _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.33), + _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.66), + _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.66) + ); + + g.DrawLine( + formButtonsPen, + _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.66), + _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.33), + _xButtonBounds.X + (int)(_xButtonBounds.Width * 0.33), + _xButtonBounds.Y + (int)(_xButtonBounds.Height * 0.66)); + } } } // Drawer Icon - if (DrawerTabControl != null) + if (DrawerTabControl != null && _formStyle != FormStyles.ActionBar_None && _formStyle != FormStyles.StatusAndActionBar_None) { - _drawerIconRect = new Rectangle(SkinManager.FORM_PADDING / 2, STATUS_BAR_HEIGHT, 24 + SkinManager.FORM_PADDING + SkinManager.FORM_PADDING / 2, ACTION_BAR_HEIGHT); + if (_buttonState == ButtonState.DrawerOver) + g.FillRectangle(hoverBrush, _drawerButtonBounds); + + if (_buttonState == ButtonState.DrawerDown) + g.FillRectangle(downBrush, _drawerButtonBounds); + + _drawerIconRect = new Rectangle(SkinManager.FORM_PADDING / 2, STATUS_BAR_HEIGHT, ACTION_BAR_HEIGHT_DEFAULT, ACTION_BAR_HEIGHT); // Ripple if (_clickAnimManager.IsAnimating()) { @@ -932,36 +1189,81 @@ protected override void OnPaint(PaintEventArgs e) } } - //Form title - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + if (ControlBox == true && _formStyle != FormStyles.ActionBar_None && _formStyle != FormStyles.StatusAndActionBar_None) { - var flag = RightToLeft == RightToLeft.Yes - ? NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle - : NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; - Rectangle textLocation = new Rectangle(SkinManager.FORM_PADDING + (DrawerTabControl != null ? 24 + (int)(SkinManager.FORM_PADDING * 1.5) : 0), STATUS_BAR_HEIGHT, Width, ACTION_BAR_HEIGHT); - NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.H6), - SkinManager.ColorScheme.TextColor, - textLocation.Location, - textLocation.Size, - flag); + //Form title + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + Rectangle textLocation = new Rectangle(DrawerTabControl != null ? TITLE_LEFT_PADDING : TITLE_LEFT_PADDING - (ICON_SIZE + (ACTION_BAR_PADDING * 2)), STATUS_BAR_HEIGHT, ClientSize.Width, ACTION_BAR_HEIGHT); + NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.H6, RightToLeft), + SkinManager.ColorScheme.TextColor, + textLocation.Location, + textLocation.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } } } + #endregion + + #region Low Level Windows Methods + /// + /// Provides a single method to call either the 32-bit or 64-bit method based on the size of an for getting the + /// Window Style flags.
+ /// GetWindowLongPtr + ///
+ private static IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex) + { + if (IntPtr.Size == 8) + return GetWindowLongPtr64(hWnd, nIndex); + else + return GetWindowLong(hWnd, nIndex); + } - private readonly AnimationManager _clickAnimManager; + /// + /// Provides a single method to call either the 32-bit or 64-bit method based on the size of an for setting the + /// Window Style flags.
+ /// SetWindowLongPtr + ///
+ private static IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr dwNewLong) + { + if (IntPtr.Size == 8) + return SetWindowLongPtr64(hWnd, nIndex, dwNewLong); + else + return SetWindowLong(hWnd, nIndex, dwNewLong.ToInt32()); + } - private Rectangle _drawerIconRect; + [DllImport("user32.dll", EntryPoint = "GetWindowLong")] + private static extern IntPtr GetWindowLong(IntPtr hWnd, int nIndex); - private Point _animationSource; + [DllImport("user32.dll", EntryPoint = "GetWindowLongPtr")] + private static extern IntPtr GetWindowLongPtr64(IntPtr hWnd, int nIndex); + + [DllImport("user32.dll", EntryPoint = "SetWindowLong")] + private static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong); + + [DllImport("user32.dll", EntryPoint = "SetWindowLongPtr")] + private static extern IntPtr SetWindowLongPtr64(IntPtr hWnd, int nIndex, IntPtr dwNewLong); + + [DllImport("user32.dll")] + private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + + [DllImport("user32.dll")] + private static extern bool ReleaseCapture(); + + [DllImport("user32.dll")] + private static extern int TrackPopupMenuEx(IntPtr hmenu, uint fuFlags, int x, int y, IntPtr hwnd, IntPtr lptpm); + + [DllImport("user32.dll")] + private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert); + #endregion private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MaterialForm)); this.SuspendLayout(); // // MaterialForm // - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.ClientSize = new System.Drawing.Size(284, 261); this.Name = "MaterialForm"; this.Load += new System.EventHandler(this.MaterialForm_Load); this.ResumeLayout(false); @@ -970,27 +1272,28 @@ private void InitializeComponent() private void MaterialForm_Load(object sender, EventArgs e) { + } } - public class MouseMessageFilter : IMessageFilter + public class MaterialDrawerForm : Form { - private const int WM_MOUSEMOVE = 0x0200; + public MouseWheelRedirector MouseWheelRedirector; - public static event MouseEventHandler MouseMove; + public MaterialDrawerForm() + { + MouseWheelRedirector = new MouseWheelRedirector(); + SetStyle(ControlStyles.Selectable | ControlStyles.OptimizedDoubleBuffer | ControlStyles.EnableNotifyMessage, true); + } - public bool PreFilterMessage(ref Message m) + public void Attach(Control control) { - if (m.Msg == WM_MOUSEMOVE) - { - if (MouseMove != null) - { - int x = Control.MousePosition.X, y = Control.MousePosition.Y; + MouseWheelRedirector.Attach(control); + } - MouseMove(null, new MouseEventArgs(MouseButtons.None, 0, x, y, 0)); - } - } - return false; + public void Detach(Control control) + { + MouseWheelRedirector.Detach(control); } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialForm.resx b/MaterialSkin/Controls/MaterialForm.resx index 7ac8affe..1af7de15 100644 --- a/MaterialSkin/Controls/MaterialForm.resx +++ b/MaterialSkin/Controls/MaterialForm.resx @@ -117,34 +117,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - 284, 261 - - - - Yes - - - 3, 64, 3, 3 - - - 300, 200 - - - MaterialForm - - - True - - - fa-IR - \ No newline at end of file diff --git a/MaterialSkin/Controls/MaterialLabel.cs b/MaterialSkin/Controls/MaterialLabel.cs index bc6f591c..fd05396c 100644 --- a/MaterialSkin/Controls/MaterialLabel.cs +++ b/MaterialSkin/Controls/MaterialLabel.cs @@ -1,7 +1,4 @@ -using System.Drawing.Drawing2D; -using System.Drawing.Text; - -namespace MaterialSkin.Controls +namespace MaterialSkin.Controls { using System.ComponentModel; using System.Drawing; @@ -35,10 +32,6 @@ public override ContentAlignment TextAlign } } - [Category("Material Skin"), - DefaultValue(false)] - public bool Multiline { get; set; } - [Category("Material Skin"), DefaultValue(false)] public bool HighEmphasis { get; set; } @@ -60,7 +53,7 @@ public MaterialSkinManager.fontType FontType set { _fontType = value; - Font = SkinManager.getFontByType(_fontType); + Font = SkinManager.getFontByType(_fontType, RightToLeft); Refresh(); } } @@ -78,7 +71,7 @@ public override Size GetPreferredSize(Size proposedSize) Size strSize; using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) { - strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(_fontType)); + strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(_fontType, RightToLeft)); strSize.Width += 1; // necessary to avoid a bug when autosize = true } return strSize; @@ -140,45 +133,30 @@ private void updateAligment() protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; - g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; - g.SmoothingMode = SmoothingMode.AntiAlias; - g.Clear(Parent.BackColor); // Draw Text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { - if (Multiline) NativeText.DrawMultilineTransparentText( Text, - SkinManager.getLogFontByType(_fontType), + SkinManager.getLogFontByType(_fontType, RightToLeft), Enabled ? HighEmphasis ? UseAccent ? SkinManager.ColorScheme.AccentColor : // High emphasis, accent - SkinManager.ColorScheme.PrimaryColor : // High emphasis, primary + (SkinManager.Theme == MaterialSkin.MaterialSkinManager.Themes.LIGHT) ? + SkinManager.ColorScheme.PrimaryColor : // High emphasis, primary Light theme + SkinManager.ColorScheme.PrimaryColor.Lighten(0.25f) : // High emphasis, primary Dark theme SkinManager.TextHighEmphasisColor : // Normal SkinManager.TextDisabledOrHintColor, // Disabled ClientRectangle.Location, ClientRectangle.Size, Alignment); - else - NativeText.DrawTransparentText( - Text, - SkinManager.getLogFontByType(_fontType), - Enabled ? HighEmphasis ? UseAccent ? - SkinManager.ColorScheme.AccentColor : // High emphasis, accent - SkinManager.ColorScheme.PrimaryColor : // High emphasis, primary - SkinManager.TextHighEmphasisColor : // Normal - SkinManager.TextDisabledOrHintColor, // Disabled - ClientRectangle.Location, - ClientRectangle.Size, - Alignment); } } protected override void InitLayout() { - Font = SkinManager.getFontByType(_fontType); - BackColorChanged += (sender, args) => Refresh(); + Font = SkinManager.getFontByType(_fontType, RightToLeft); } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialListBox.cs b/MaterialSkin/Controls/MaterialListBox.cs new file mode 100644 index 00000000..0e89b52d --- /dev/null +++ b/MaterialSkin/Controls/MaterialListBox.cs @@ -0,0 +1,854 @@ +#region Imports + +using System; +using System.Drawing; +using System.Drawing.Design; +using System.Drawing.Text; +using System.Windows.Forms; +using System.ComponentModel; +using System.ComponentModel.Design; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.InteropServices; + +#endregion + +namespace MaterialSkin.Controls +{ + + #region MaterialListBox + + [DefaultProperty("Items")] + [DefaultEvent("SelectedIndexChanged")] + [ComVisible(true)] + public class MaterialListBox : Control, IMaterialControl + { + #region Internal Vars + + private ObservableCollection _items = new ObservableCollection(); + private List _selectedItems; + private List _indicates; + private bool _multiSelect; + private int _selectedIndex; + private MaterialListBoxItem _selectedItem; + private string _selectedText; + private bool _showScrollBar; + private bool _multiKeyDown; + private int _hoveredItem; + private MaterialScrollBar _scrollBar; + private object _selectedValue; + + private bool _updating=false; + private int _itemHeight; + private bool _showBorder; + private Color _borderColor; + private Font _primaryFont; + private Font _secondaryFont; + + private const int _leftrightPadding = 16; + private int _primaryTextBottomPadding = 0; + private int _secondaryTextTopPadding = 0; + private int _secondaryTextBottomPadding = 0; + + public enum ListBoxStyle + { + SingleLine, + TwoLine, + ThreeLine + } + private ListBoxStyle _style = ListBoxStyle.SingleLine; + + public enum MaterialItemDensity + { + Default, + Dense + } + + private MaterialItemDensity _density; + + #endregion Internal Vars + + + #region Properties + + //Properties for managing the material design properties + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + private bool useAccentColor; + + [Category("Material Skin"), DefaultValue(false), DisplayName("Use Accent Color")] + public bool UseAccentColor + { + get { return useAccentColor; } + set { useAccentColor = value; _scrollBar.UseAccentColor = value; Invalidate(); } + } + + [TypeConverter(typeof(CollectionConverter))] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + [Editor(typeof(MaterialItemCollectionEditor), typeof(UITypeEditor))] + [Category("Material Skin"), Description("Gets the items of the ListBox.")] + public ObservableCollection Items => _items; + + [Browsable(false)] + [Category("Material Skin"), Description("Gets a collection containing the currently selected items in the ListBox.")] + public List SelectedItems => _selectedItems; + + [Browsable(false), Category("Material Skin"), Description("Gets or sets the currently selected item in the ListBox.")] + public MaterialListBoxItem SelectedItem + { + get => _selectedItem; + set + { + _selectedItem = value; + _selectedIndex = _items.IndexOf(_selectedItem); + update_selection(); + Invalidate(); + } + } + + [Browsable(false), Category("Material Skin"), + Description("Gets the currently selected Text in the ListBox.")] + public string SelectedText + { + get => _selectedText; + //set + //{ + // _selectedText = value; + // Invalidate(); + //} + } + + [Browsable(false), Category("Material Skin"), Description("Gets or sets the zero-based index of the currently selected item in a ListBox.")] + public int SelectedIndex + { + get => _selectedIndex; + set + { + _selectedIndex = value; + update_selection(); + Invalidate(); + } + } + + [Browsable(true), Category("Material Skin"), Description("Gets the value of the member property specified by the ValueMember property.")] + public object SelectedValue + { + get => _selectedValue; + //set + //{ + // _selectedValue = value; + // Invalidate(); + //} + } + + [Category("Material Skin"), DefaultValue(false), Description("Gets or sets a value indicating whether the ListBox supports multiple rows.")] + public bool MultiSelect + { + get => _multiSelect; + set + { + _multiSelect = value; + + if (_selectedItems.Count > 1) + { + _selectedItems.RemoveRange(1, _selectedItems.Count - 1); + } + + Invalidate(); + } + } + + [Browsable(false)] + public int Count => _items.Count; + + [Category("Material Skin"), DefaultValue(false), Description("Gets or sets a value indicating whether the vertical scroll bar be shown or not.")] + public bool ShowScrollBar + { + get => _showScrollBar; + set + { + _showScrollBar = value; + _scrollBar.Visible = value; + Invalidate(); + } + } + + [Category("Material Skin"), DefaultValue(true), Description("Gets or sets a value indicating whether the border shown or not.")] + public bool ShowBorder + { + get => _showBorder; + set + { + _showBorder = value; + Refresh(); + } + } + + [Category("Material Skin"), Description("Gets or sets backcolor used by the control.")] + public override Color BackColor { get; set; } + + [Category("Material Skin"), Description("Gets or sets forecolor used by the control.")] + public override Color ForeColor { get; set; } + + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public override string Text { get => base.Text; set => base.Text = value; } + + [Category("Material Skin"), Description("Gets or sets border color used by the control.")] + public Color BorderColor + { + get => _borderColor; + set + { + _borderColor = value; + Refresh(); + } + } + + [Category("Material Skin"), DefaultValue(ListBoxStyle.SingleLine)] + [Description("Gets or sets the control style.")] + public ListBoxStyle Style + { + get => _style; + set + { + _style = value; + UpdateItemSpecs(); + + InvalidateScroll(this, null); + Refresh(); + } + } + + [Category("Material Skin"), DefaultValue(MaterialItemDensity.Dense)] + [Description("Gets or sets list density")] + public MaterialItemDensity Density + { + get { return _density; } + set + { + _density = value; + UpdateItemSpecs(); + Invalidate(); + } + } + + #endregion Properties + + #region Constructors + + public MaterialListBox() + { + SetStyle + ( + ControlStyles.UserPaint | + ControlStyles.AllPaintingInWmPaint | + ControlStyles.Selectable | + ControlStyles.ResizeRedraw | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.SupportsTransparentBackColor, + true + ); + UpdateStyles(); + base.BackColor = Color.Transparent; + base.Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft); + _secondaryFont = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft); + SetDefaults(); + ShowBorder = true; + ShowScrollBar = false; + MultiSelect = false; + UseAccentColor = false; + ForeColor = SkinManager.TextHighEmphasisColor; // Color.Black; + BackColor = Color.White; + BorderColor = Color.LightGray; + UpdateProperties(); + } + + private void SetDefaults() + { + SelectedIndex = -1; + _hoveredItem = -1; + _showScrollBar = false; + _items.CollectionChanged += InvalidateScroll; + _selectedItems = new List(); + _indicates = new List(); + _multiKeyDown = false; + _scrollBar = new MaterialScrollBar() + { + Orientation = MaterialScrollOrientation.Vertical, + Size = new Size(12, Height), + Maximum = _items.Count * _itemHeight, + SmallChange = _itemHeight, + LargeChange = _itemHeight + }; + _scrollBar.Scroll += HandleScroll; + _scrollBar.MouseDown += VS_MouseDown; + _scrollBar.BackColor = Color.Transparent; + if (!Controls.Contains(_scrollBar)) + { + Controls.Add(_scrollBar); + } + + Style = ListBoxStyle.SingleLine; + Density = MaterialItemDensity.Dense; + } + + #endregion Constructors + + #region ApplyTheme + + + private void UpdateProperties() + { + Invalidate(); + } + + private void UpdateItemSpecs() + { + if (_style == ListBoxStyle.TwoLine) + { + _secondaryTextTopPadding = 4; + if (_density == MaterialItemDensity.Dense) + { + _itemHeight = 60; + _secondaryTextBottomPadding = 10; + _primaryTextBottomPadding = 2; + _primaryFont = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft); + _secondaryFont = SkinManager.getFontByType(MaterialSkinManager.fontType.Body2, RightToLeft); + } + else + { + _itemHeight = 72; + _secondaryTextBottomPadding = 16; + _primaryTextBottomPadding = 4; + _primaryFont = SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft); + _secondaryFont = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft); + } + } + else if (_style == ListBoxStyle.ThreeLine) + { + _primaryTextBottomPadding = 4; + _secondaryTextTopPadding = 4; + if (_density == MaterialItemDensity.Dense) + { + _itemHeight = 76; + _secondaryTextBottomPadding = 16; + _primaryFont = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft); + _secondaryFont = SkinManager.getFontByType(MaterialSkinManager.fontType.Body2, RightToLeft); + } + else + { + _itemHeight = 88; + _secondaryTextBottomPadding = 12; + _primaryFont = SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft); + _secondaryFont = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft); + } + } + else + { + //SingleLine + if (_density == MaterialItemDensity.Dense) + _itemHeight = 40; + else + _itemHeight = 48; + _primaryFont = SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft); + _secondaryFont = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft); + } + + } + + #endregion ApplyTheme + + #region Draw Control + + protected override void OnPaint(PaintEventArgs e) + { + if (_updating == true) return; + + Graphics g = e.Graphics; + g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; + Rectangle mainRect = new Rectangle(0, 0, Width - (ShowBorder ? 1 : 0), Height - (ShowBorder ? 1 : 0)); + + int lastItem = (_scrollBar.Value / _itemHeight) + (Height / _itemHeight) + 1 > Items.Count ? Items.Count : (_scrollBar.Value / _itemHeight) + (Height / _itemHeight) + 1; + int firstItem = _scrollBar.Value / _itemHeight < 0 ? 0 : (_scrollBar.Value / _itemHeight); + + g.FillRectangle(Enabled ? SkinManager.BackgroundBrush : SkinManager.BackgroundDisabledBrush, mainRect); + + //Set TextAlignFlags + NativeTextRenderer.TextAlignFlags primaryTextAlignFlags; + NativeTextRenderer.TextAlignFlags secondaryTextAlignFlags = NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Top; + if (_style == ListBoxStyle.TwoLine || _style == ListBoxStyle.ThreeLine) + { + primaryTextAlignFlags = NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Bottom; + } + else + { + //SingleLine + primaryTextAlignFlags = NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; + } + + //Set color and brush + Color SelectedColor = new Color(); + if (UseAccentColor) + SelectedColor = SkinManager.ColorScheme.AccentColor; + else + SelectedColor = SkinManager.ColorScheme.PrimaryColor; + SolidBrush SelectedBrush = new SolidBrush(SelectedColor); + + //Draw items + for (int i = firstItem; i < lastItem; i++) + { + string itemText = Items[i].Text; + string itemSecondaryText = Items[i].SecondaryText; + + Rectangle itemRect = new Rectangle(0, (i - firstItem) * _itemHeight, Width - (_showScrollBar && _scrollBar.Visible ? _scrollBar.Width : 0), _itemHeight); + + if (MultiSelect && _indicates.Count != 0) + { + if (i == _hoveredItem && !_indicates.Contains(i)) + { + g.FillRectangle(SkinManager.BackgroundHoverBrush, itemRect); + } + else if (_indicates.Contains(i)) + { + g.FillRectangle(Enabled ? + SelectedBrush : + new SolidBrush(DrawHelper.BlendColor(SelectedColor, SkinManager.SwitchOffDisabledThumbColor, 197)), + itemRect); + } + } + else + { + if (i == _hoveredItem && i != SelectedIndex) + { + g.FillRectangle(SkinManager.BackgroundHoverBrush, itemRect); + } + else if (i == SelectedIndex) + { + g.FillRectangle(Enabled ? + SelectedBrush : + new SolidBrush(DrawHelper.BlendColor(SelectedColor, SkinManager.SwitchOffDisabledThumbColor, 197)), + itemRect); + } + } + + //Define primary & secondary Text Rect + Rectangle primaryTextRect = new Rectangle(itemRect.X + _leftrightPadding, itemRect.Y, itemRect.Width - (2 * _leftrightPadding), itemRect.Height); + Rectangle secondaryTextRect = new Rectangle(); + + if (_style == ListBoxStyle.TwoLine) + { + primaryTextRect.Height = (primaryTextRect.Height / 2) - _primaryTextBottomPadding; + } + else if (_style == ListBoxStyle.ThreeLine) + { + if (_density == MaterialItemDensity.Default) + { + primaryTextRect.Height = 36 - _primaryTextBottomPadding; + } + else + { + primaryTextRect.Height = 30 - _primaryTextBottomPadding; + } + } + secondaryTextRect = new Rectangle(primaryTextRect.X, primaryTextRect.Y + primaryTextRect.Height + (_primaryTextBottomPadding + _secondaryTextTopPadding), primaryTextRect.Width, _itemHeight - _secondaryTextBottomPadding - primaryTextRect.Height - (_primaryTextBottomPadding + _secondaryTextTopPadding)); + + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + itemText, + _primaryFont, + Enabled ? (i != SelectedIndex || UseAccentColor) ? + SkinManager.TextHighEmphasisColor : + SkinManager.ColorScheme.TextColor : + SkinManager.TextDisabledOrHintColor, // Disabled + primaryTextRect.Location, + primaryTextRect.Size, + primaryTextAlignFlags); + if (_style == ListBoxStyle.TwoLine) + { + NativeText.DrawTransparentText( + itemSecondaryText, + _secondaryFont, + Enabled ? (i != SelectedIndex || UseAccentColor) ? + SkinManager.TextDisabledOrHintColor : + SkinManager.ColorScheme.TextColor.Darken(0.25f) : + SkinManager.TextDisabledOrHintColor, // Disabled + secondaryTextRect.Location, + secondaryTextRect.Size, + secondaryTextAlignFlags); + } + else if (_style == ListBoxStyle.ThreeLine) + { + NativeText.DrawMultilineTransparentText( + itemSecondaryText, + _secondaryFont, + Enabled ? (i != SelectedIndex || UseAccentColor) ? + SkinManager.TextDisabledOrHintColor : + SkinManager.ColorScheme.TextColor.Darken(0.25f) : + SkinManager.TextDisabledOrHintColor, // Disabled + secondaryTextRect.Location, + secondaryTextRect.Size, + secondaryTextAlignFlags); + } + } + + } + if (ShowBorder) + { + g.DrawRectangle(Pens.LightGray, mainRect); + } + } + + #endregion Draw Control + + #region Methods + + public void AddItem(MaterialListBoxItem newItem) + { + _items.Add(newItem); + InvalidateScroll(this, null); + ItemsCountChanged?.Invoke(this, new EventArgs()); + } + + public void AddItem(string newItem) + { + MaterialListBoxItem _newitemMLBI = new MaterialListBoxItem(newItem); + _items.Add(_newitemMLBI); + InvalidateScroll(this, null); + ItemsCountChanged?.Invoke(this, new EventArgs()); + } + + public void AddItems(MaterialListBoxItem[] newItems) + { + _updating = true; + foreach (MaterialListBoxItem str in newItems) + { + AddItem(str); + } + _updating = false; + + InvalidateScroll(this, null); + ItemsCountChanged?.Invoke(this, new EventArgs()); + } + + public void AddItems(string[] newItems) + { + _updating = true; + foreach (string str in newItems) + { + AddItem(str); + } + _updating = false; + + InvalidateScroll(this, null); + ItemsCountChanged?.Invoke(this, new EventArgs()); + } + + public void RemoveItemAt(int index) + { + if (index<= _selectedIndex) + { + _selectedIndex -=1; + update_selection(); + } + _items.RemoveAt(index); + InvalidateScroll(this, null); + ItemsCountChanged?.Invoke(this, new EventArgs()); + } + + public void RemoveItem(MaterialListBoxItem item) + { + if (_items.IndexOf(item)<= _selectedIndex) + { + _selectedIndex -= 1; + update_selection(); + } + _items.Remove(item); + InvalidateScroll(this, null); + ItemsCountChanged?.Invoke(this, new EventArgs()); + } + + public int IndexOf(MaterialListBoxItem value) + { + return _items.IndexOf(value); + } + + public void RemoveItems(MaterialListBoxItem[] itemsToRemove) + { + _updating = true; + foreach (MaterialListBoxItem item in itemsToRemove) + { + if (_items.IndexOf(item) <= _selectedIndex) + { + _selectedIndex -= 1; + update_selection(); + } + _items.Remove(item); + } + _updating = false; + + InvalidateScroll(this, null); + ItemsCountChanged?.Invoke(this, new EventArgs()); + } + + private void update_selection() + { + if (_selectedIndex >= 0) + { + _selectedItem = _items[_selectedIndex]; + _selectedValue = _items[_selectedIndex]; + _selectedText = _items[_selectedIndex].ToString(); + } + else + { + _selectedItem = null; + _selectedValue = null; + _selectedText = null; + } + } + + public void Clear() + { + _updating = true; + for (int i = _items.Count - 1; i >= 0; i += -1) + { + _items.RemoveAt(i); + } + _updating = false; + _selectedIndex = -1; + update_selection(); + + InvalidateScroll(this, null); + ItemsCountChanged?.Invoke(this, new EventArgs()); + } + + public void BeginUpdate() + { + _updating = true; + } + + public void EndUpdate() + { + _updating = false; + } + + #endregion Methods + + #region Events + + [Category("Behavior")] + [Description("Occurs when selected index change.")] + public event SelectedIndexChangedEventHandler SelectedIndexChanged; + + public delegate void SelectedIndexChangedEventHandler(object sender, MaterialListBoxItem selectedItem); + + [Category("Behavior")] + [Description("Occurs when selected value change.")] + public event SelectedValueEventHandler SelectedValueChanged; + + public delegate void SelectedValueEventHandler(object sender, MaterialListBoxItem selectedItem); + + [Category("Behavior")] + [Description("Occurs when item is added or removed.")] + public event EventHandler ItemsCountChanged; + + #endregion Events + + protected override void OnSizeChanged(EventArgs e) + { + InvalidateScroll(this, e); + InvalidateLayout(); + base.OnSizeChanged(e); + } + + protected override void OnMouseDown(MouseEventArgs e) + { + Focus(); + if (e.Button == MouseButtons.Left) + { + int index = _scrollBar.Value / _itemHeight + e.Location.Y / _itemHeight; + if (index >= 0 && index < _items.Count) + { + if (MultiSelect && _multiKeyDown) + { + _indicates.Add(index); + _selectedItems.Add(Items[index]); + } + else + { + _indicates.Clear(); + _selectedItems.Clear(); + _selectedItem = Items[index]; + _selectedIndex = index; + _selectedValue = Items[index]; + _selectedText = Items[index].ToString(); + SelectedIndexChanged?.Invoke(this, _selectedItem); + SelectedValueChanged?.Invoke(this, _selectedItem); + } + } + Invalidate(); + } + base.OnMouseDown(e); + } + + private void HandleScroll(object sender, ScrollEventArgs e) + { + if (_scrollBar.Maximum < _scrollBar.Value + Height) _scrollBar.Value = _scrollBar.Maximum - Height; + Invalidate(); + } + + private void InvalidateScroll(object sender, EventArgs e) + { + _scrollBar.Maximum = _items.Count * _itemHeight; + _scrollBar.SmallChange = _itemHeight; + _scrollBar.LargeChange = Height; + _scrollBar.Visible = (_items.Count * _itemHeight) > Height; + if (_items.Count == 0) + { _scrollBar.Value = 0; } + Invalidate(); + } + + private void VS_MouseDown(object sender, MouseEventArgs e) + { + Focus(); + } + + private void InvalidateLayout() + { + _scrollBar.Size = new Size(12, Height - (ShowBorder ? 2 : 0)); + _scrollBar.Location = new Point(Width - (_scrollBar.Width + (ShowBorder ? 1 : 0)), ShowBorder ? 1 : 0); + Invalidate(); + } + + protected override void OnMouseWheel(MouseEventArgs e) + { + if (_scrollBar.Visible == true) + { + if (_scrollBar.Minimum > _scrollBar.Value - e.Delta / 2) + _scrollBar.Value = _scrollBar.Minimum; + else if (_scrollBar.Maximum < _scrollBar.Value + Height) + { + if (e.Delta>0) + _scrollBar.Value -= e.Delta / 2; + else + { } //Do nothing, maximum reached + } + else + _scrollBar.Value -= e.Delta / 2; + + _updateHoveredItem(e); + + Invalidate(); + base.OnMouseWheel(e); + ((HandledMouseEventArgs)e).Handled = true; + } + } + + protected override bool IsInputKey(Keys keyData) + { + switch (keyData) + { + case Keys.Down: + try + { + _selectedItems.Remove(_items[SelectedIndex]); + SelectedIndex += 1; + _selectedItems.Add(_items[SelectedIndex]); + } + catch + { + // + } + break; + + case Keys.Up: + try + { + _selectedItems.Remove(_items[SelectedIndex]); + SelectedIndex -= 1; + _selectedItems.Add(_items[SelectedIndex]); + } + catch + { + // + } + break; + } + Invalidate(); + return base.IsInputKey(keyData); + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + Cursor = Cursors.Hand; + _updateHoveredItem(e); + + Invalidate(); + } + + private void _updateHoveredItem(MouseEventArgs e) + { + int index = _scrollBar.Value / _itemHeight + e.Location.Y / _itemHeight; + + if (index >= Items.Count) + { + index = -1; + } + + if (index >= 0 && index MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + //Unused properties + [Browsable(false)] + public override System.Drawing.Image BackgroundImage { get; set; } + + [Browsable(false)] + public override System.Windows.Forms.ImageLayout BackgroundImageLayout { get; set; } + + [Browsable(false)] + public string SelectedText { get { return baseTextBox.SelectedText; } set { baseTextBox.SelectedText = value; } } + + [Browsable(false)] + public int SelectionStart { get { return baseTextBox.SelectionStart; } set { baseTextBox.SelectionStart = value; } } + + [Browsable(false)] + public int SelectionLength { get { return baseTextBox.SelectionLength; } set { baseTextBox.SelectionLength = value; } } + + [Browsable(false)] + public int TextLength { get { return baseTextBox.TextLength; } } + + [Browsable(false)] + public override System.Drawing.Color ForeColor { get; set; } + + + //Material Skin properties + + private bool _UseTallSize; + + [Category("Material Skin"), DefaultValue(true), Description("Using a larger size enables the hint to always be visible")] + public bool UseTallSize + { + get { return _UseTallSize; } + set + { + _UseTallSize = value; + UpdateHeight(); + UpdateRects(); + Invalidate(); + } + } + + private bool _showAssistiveText; + [Category("Material Skin"), DefaultValue(false), Description("Assistive elements provide additional detail about text entered into text fields. Could be Helper text or Error message.")] + public bool ShowAssistiveText + { + get { return _showAssistiveText; } + set + { + _showAssistiveText = value; + if (_showAssistiveText) + _helperTextHeight = HELPER_TEXT_HEIGHT; + else + _helperTextHeight = 0; + UpdateHeight(); + //UpdateRects(); + Invalidate(); + } + } + + private string _helperText; + + [Category("Material Skin"), DefaultValue(""), Localizable(true), Description("Helper text conveys additional guidance about the input field, such as how it will be used.")] + public string HelperText + { + get { return _helperText; } + set + { + _helperText = value; + Invalidate(); + } + } + + private string _errorMessage; + + [Category("Material Skin"), DefaultValue(""), Localizable(true), Description("When text input isn't accepted, an error message can display instructions on how to fix it. Error messages are displayed below the input line, replacing helper text until fixed.")] + public string ErrorMessage + { + get { return _errorMessage; } + set + { + _errorMessage = value; + Invalidate(); + } + } + + [Category("Material Skin"), DefaultValue(""), Localizable(true)] + public string Hint + { + get { return baseTextBox.Hint; } + set + { + baseTextBox.Hint = value; + hasHint = !String.IsNullOrEmpty(baseTextBox.Hint); + UpdateRects(); + Invalidate(); + } + } + + [Category("Material Skin"), DefaultValue(true)] + public bool UseAccent { get; set; } + + private Image _leadingIcon; + + [Category("Material Skin"), Browsable(true), Localizable(false)] + /// + /// Gets or sets the leading Icon + /// + public Image LeadingIcon + { + get { return _leadingIcon; } + set + { + _leadingIcon = value; + UpdateRects(); + preProcessIcons(); + Invalidate(); + } + } + + private Image _trailingIcon; + + [Category("Material Skin"), Browsable(true), Localizable(false)] + /// + /// Gets or sets the trailing Icon + /// + public Image TrailingIcon + { + get { return _trailingIcon; } + set + { + _trailingIcon = value; + UpdateRects(); + preProcessIcons(); + Invalidate(); + } + } + + public enum PrefixSuffixTypes + { + None, + Prefix, + Suffix, + } + + private PrefixSuffixTypes _prefixsuffix; + [Category("Material Skin"), DefaultValue(PrefixSuffixTypes.None), Description("Set Prefix/Suffix/None")] + public PrefixSuffixTypes PrefixSuffix + { + get { return _prefixsuffix; } + set + { + _prefixsuffix = value; + UpdateRects(); //Génére une nullref exception + if (_prefixsuffix == PrefixSuffixTypes.Suffix) + RightToLeft = RightToLeft.Yes; + else + RightToLeft = RightToLeft.No; + Invalidate(); + } + } + + private string _prefixsuffixText; + [Category("Material Skin"), DefaultValue(""), Localizable(true), Description("Set Prefix or Suffix text")] + public string PrefixSuffixText + { + get { return _prefixsuffixText; } + set + { + //if (_prefixsuffixText != value) + //{ + _prefixsuffixText = value; + UpdateRects(); + Invalidate(); + //} + } + } + + //TextBox properties + + public override ContextMenuStrip ContextMenuStrip + { + get { return baseTextBox.ContextMenuStrip; } + set + { + if (value != null) + { + baseTextBox.ContextMenuStrip = value; + base.ContextMenuStrip = value; + } + else + { + baseTextBox.ContextMenuStrip = cms; + base.ContextMenuStrip = cms; + } + _lastContextMenuStrip = base.ContextMenuStrip; + } + } + + [Browsable(false)] + public override Color BackColor { get { return Parent == null ? SkinManager.BackgroundColor : Parent.BackColor; } } + + public override string Text { get { return baseTextBox.Text; } set { baseTextBox.Text = value; } } + + [Category("Appearance")] + public HorizontalAlignment TextAlign { get { return baseTextBox.TextAlign; } set { baseTextBox.TextAlign = value; } } + + [Category("Appearance")] + public Char PromptChar { get { return baseTextBox.PromptChar; } set { baseTextBox.PromptChar = value; } } + + //[Category("Behavior")] + //public CharacterCasing CharacterCasing { get { return baseTextBox.CharacterCasing; } set { baseTextBox.CharacterCasing = value; } } + + [Category("Behavior")] + public bool HideSelection { get { return baseTextBox.HideSelection; } set { baseTextBox.HideSelection = value; } } + + [Category("Behavior")] + public bool AllowPromptAsInput { get { return baseTextBox.AllowPromptAsInput; } set { baseTextBox.AllowPromptAsInput = value; } } + + [Category("Behavior")] + public bool AsciiOnly { get { return baseTextBox.AsciiOnly; } set { baseTextBox.AsciiOnly = value; } } + + [Category("Behavior")] + public bool BeepOnError { get { return baseTextBox.BeepOnError; } set { baseTextBox.BeepOnError = value; } } + + [Category("Behavior")] + public MaskFormat CutCopyMaskFormat { get { return baseTextBox.CutCopyMaskFormat; } set { baseTextBox.CutCopyMaskFormat = value; } } + + [Category("Behavior")] + public bool HidePromptOnLeave { get { return baseTextBox.HidePromptOnLeave; } set { baseTextBox.HidePromptOnLeave = value; } } + + [Category("Behavior")] + public InsertKeyMode InsertKeyMode { get { return baseTextBox.InsertKeyMode; } set { baseTextBox.InsertKeyMode = value; } } + + [Category("Behavior")] + public string Mask { get { return baseTextBox.Mask; } set { baseTextBox.Mask = value; } } + + [Category("Behavior")] + public int MaxLength { get { return baseTextBox.MaxLength; } set { baseTextBox.MaxLength = value; } } + + [Category("Behavior")] + public char PasswordChar { get { return baseTextBox.PasswordChar; } set { baseTextBox.PasswordChar = value; } } + + [Category("Behavior")] + public bool RejectInputOnFirstFailure { get { return baseTextBox.RejectInputOnFirstFailure; } set { baseTextBox.RejectInputOnFirstFailure = value; } } + + [Category("Behavior")] + public bool ResetOnPrompt { get { return baseTextBox.ResetOnPrompt; } set { baseTextBox.ResetOnPrompt = value; } } + + [Category("Behavior")] + public bool ResetOnSpace { get { return baseTextBox.ResetOnSpace; } set { baseTextBox.ResetOnSpace = value; } } + + [Category("Behavior")] + public bool ShortcutsEnabled + { + get + { return baseTextBox.ShortcutsEnabled; } + set + { + baseTextBox.ShortcutsEnabled = value; + if (value == false) + { + baseTextBox.ContextMenuStrip = null; + base.ContextMenuStrip = null; + } + else + { + baseTextBox.ContextMenuStrip = _lastContextMenuStrip; + base.ContextMenuStrip = _lastContextMenuStrip; + } + } + } + + [Category("Behavior")] + public bool SkipLiterals { get { return baseTextBox.SkipLiterals; } set { baseTextBox.SkipLiterals = value; } } + + [Category("Behavior")] + public MaskFormat TextMaskFormat { get { return baseTextBox.TextMaskFormat; } set { baseTextBox.TextMaskFormat = value; } } + + [Category("Behavior")] + public bool UseSystemPasswordChar { get { return baseTextBox.UseSystemPasswordChar; } set { baseTextBox.UseSystemPasswordChar = value; } } + + [Browsable(false)] + public Type ValidatingType { get { return baseTextBox.ValidatingType; } set { baseTextBox.ValidatingType = value; } } + + public new object Tag { get { return baseTextBox.Tag; } set { baseTextBox.Tag = value; } } + + private bool _readonly; + [Category("Behavior")] + public bool ReadOnly + { + get { return _readonly; } + set + { + _readonly = value; + if (Enabled == true) + { + baseTextBox.ReadOnly = _readonly; + } + this.Invalidate(); + } + } + + private bool _animateReadOnly; + + [Category("Material Skin")] + [Browsable(true)] + public bool AnimateReadOnly + { + get => _animateReadOnly; + set + { + _animateReadOnly = value; + Invalidate(); + } + } + + private bool _leaveOnEnterKey; + + [Category("Material Skin"), DefaultValue(false), Description("Select next control which have TabStop property set to True when enter key is pressed.")] + public bool LeaveOnEnterKey + { + get => _leaveOnEnterKey; + set + { + _leaveOnEnterKey = value; + if (value) + { + baseTextBox.KeyDown += new KeyEventHandler(LeaveOnEnterKey_KeyDown); + } + else + { + baseTextBox.KeyDown -= LeaveOnEnterKey_KeyDown; + } + Invalidate(); + } + } + + public void SelectAll() { baseTextBox.SelectAll(); } + + public void Clear() { baseTextBox.Clear(); } + + public void Copy() { baseTextBox.Copy(); } + + public void Cut() { baseTextBox.Cut(); } + + public void Undo() { baseTextBox.Undo(); } + + public void Paste() { baseTextBox.Paste(); } + + #region "Events" + + [Category("Action")] + [Description("Fires when Leading Icon is clicked")] + public event EventHandler LeadingIconClick; + + [Category("Action")] + [Description("Fires when Trailing Icon is clicked")] + public event EventHandler TrailingIconClick; + + #endregion + + # region Forwarding events to baseTextBox + + public event EventHandler AcceptsTabChanged + { + add + { + baseTextBox.AcceptsTabChanged += value; + } + remove + { + baseTextBox.AcceptsTabChanged -= value; + } + } + + public new event EventHandler AutoSizeChanged + { + add + { + baseTextBox.AutoSizeChanged += value; + } + remove + { + baseTextBox.AutoSizeChanged -= value; + } + } + + public new event EventHandler BackgroundImageChanged + { + add + { + baseTextBox.BackgroundImageChanged += value; + } + remove + { + baseTextBox.BackgroundImageChanged -= value; + } + } + + public new event EventHandler BackgroundImageLayoutChanged + { + add + { + baseTextBox.BackgroundImageLayoutChanged += value; + } + remove + { + baseTextBox.BackgroundImageLayoutChanged -= value; + } + } + + public new event EventHandler BindingContextChanged + { + add + { + baseTextBox.BindingContextChanged += value; + } + remove + { + baseTextBox.BindingContextChanged -= value; + } + } + + public event EventHandler BorderStyleChanged + { + add + { + baseTextBox.BorderStyleChanged += value; + } + remove + { + baseTextBox.BorderStyleChanged -= value; + } + } + + public new event EventHandler CausesValidationChanged + { + add + { + baseTextBox.CausesValidationChanged += value; + } + remove + { + baseTextBox.CausesValidationChanged -= value; + } + } + + public new event UICuesEventHandler ChangeUICues + { + add + { + baseTextBox.ChangeUICues += value; + } + remove + { + baseTextBox.ChangeUICues -= value; + } + } + + public new event EventHandler Click + { + add + { + baseTextBox.Click += value; + } + remove + { + baseTextBox.Click -= value; + } + } + + public new event EventHandler ClientSizeChanged + { + add + { + baseTextBox.ClientSizeChanged += value; + } + remove + { + baseTextBox.ClientSizeChanged -= value; + } + } + + #if NETFRAMEWORK + public new event EventHandler ContextMenuChanged + { + add + { + baseTextBox.ContextMenuChanged += value; + } + remove + { + baseTextBox.ContextMenuChanged -= value; + } + } + #endif + + public new event EventHandler ContextMenuStripChanged + { + add + { + baseTextBox.ContextMenuStripChanged += value; + } + remove + { + baseTextBox.ContextMenuStripChanged -= value; + } + } + + public new event ControlEventHandler ControlAdded + { + add + { + baseTextBox.ControlAdded += value; + } + remove + { + baseTextBox.ControlAdded -= value; + } + } + + public new event ControlEventHandler ControlRemoved + { + add + { + baseTextBox.ControlRemoved += value; + } + remove + { + baseTextBox.ControlRemoved -= value; + } + } + + public new event EventHandler CursorChanged + { + add + { + baseTextBox.CursorChanged += value; + } + remove + { + baseTextBox.CursorChanged -= value; + } + } + + public new event EventHandler Disposed + { + add + { + baseTextBox.Disposed += value; + } + remove + { + baseTextBox.Disposed -= value; + } + } + + public new event EventHandler DockChanged + { + add + { + baseTextBox.DockChanged += value; + } + remove + { + baseTextBox.DockChanged -= value; + } + } + + public new event EventHandler DoubleClick + { + add + { + baseTextBox.DoubleClick += value; + } + remove + { + baseTextBox.DoubleClick -= value; + } + } + + public new event DragEventHandler DragDrop + { + add + { + baseTextBox.DragDrop += value; + } + remove + { + baseTextBox.DragDrop -= value; + } + } + + public new event DragEventHandler DragEnter + { + add + { + baseTextBox.DragEnter += value; + } + remove + { + baseTextBox.DragEnter -= value; + } + } + + public new event EventHandler DragLeave + { + add + { + baseTextBox.DragLeave += value; + } + remove + { + baseTextBox.DragLeave -= value; + } + } + + public new event DragEventHandler DragOver + { + add + { + baseTextBox.DragOver += value; + } + remove + { + baseTextBox.DragOver -= value; + } + } + + public new event EventHandler EnabledChanged + { + add + { + baseTextBox.EnabledChanged += value; + } + remove + { + baseTextBox.EnabledChanged -= value; + } + } + + public new event EventHandler Enter + { + add + { + baseTextBox.Enter += value; + } + remove + { + baseTextBox.Enter -= value; + } + } + + public new event EventHandler FontChanged + { + add + { + baseTextBox.FontChanged += value; + } + remove + { + baseTextBox.FontChanged -= value; + } + } + + public new event EventHandler ForeColorChanged + { + add + { + baseTextBox.ForeColorChanged += value; + } + remove + { + baseTextBox.ForeColorChanged -= value; + } + } + + public new event GiveFeedbackEventHandler GiveFeedback + { + add + { + baseTextBox.GiveFeedback += value; + } + remove + { + baseTextBox.GiveFeedback -= value; + } + } + + public new event EventHandler GotFocus + { + add + { + baseTextBox.GotFocus += value; + } + remove + { + baseTextBox.GotFocus -= value; + } + } + + public new event EventHandler HandleCreated + { + add + { + baseTextBox.HandleCreated += value; + } + remove + { + baseTextBox.HandleCreated -= value; + } + } + + public new event EventHandler HandleDestroyed + { + add + { + baseTextBox.HandleDestroyed += value; + } + remove + { + baseTextBox.HandleDestroyed -= value; + } + } + + public new event HelpEventHandler HelpRequested + { + add + { + baseTextBox.HelpRequested += value; + } + remove + { + baseTextBox.HelpRequested -= value; + } + } + + public event EventHandler HideSelectionChanged + { + add + { + baseTextBox.HideSelectionChanged += value; + } + remove + { + baseTextBox.HideSelectionChanged -= value; + } + } + + public new event EventHandler ImeModeChanged + { + add + { + baseTextBox.ImeModeChanged += value; + } + remove + { + baseTextBox.ImeModeChanged -= value; + } + } + + public new event InvalidateEventHandler Invalidated + { + add + { + baseTextBox.Invalidated += value; + } + remove + { + baseTextBox.Invalidated -= value; + } + } + + public event EventHandler IsOverwriteModeChanged + { + add + { + baseTextBox.IsOverwriteModeChanged += value; + } + remove + { + baseTextBox.IsOverwriteModeChanged -= value; + } + } + + public new event KeyEventHandler KeyDown + { + add + { + baseTextBox.KeyDown += value; + } + remove + { + baseTextBox.KeyDown -= value; + } + } + + public new event KeyPressEventHandler KeyPress + { + add + { + baseTextBox.KeyPress += value; + } + remove + { + baseTextBox.KeyPress -= value; + } + } + + public new event KeyEventHandler KeyUp + { + add + { + baseTextBox.KeyUp += value; + } + remove + { + baseTextBox.KeyUp -= value; + } + } + + public new event LayoutEventHandler Layout + { + add + { + baseTextBox.Layout += value; + } + remove + { + baseTextBox.Layout -= value; + } + } + + public new event EventHandler Leave + { + add + { + baseTextBox.Leave += value; + } + remove + { + baseTextBox.Leave -= value; + } + } + + public new event EventHandler LocationChanged + { + add + { + baseTextBox.LocationChanged += value; + } + remove + { + baseTextBox.LocationChanged -= value; + } + } + + public new event EventHandler LostFocus + { + add + { + baseTextBox.LostFocus += value; + } + remove + { + baseTextBox.LostFocus -= value; + } + } + + public event EventHandler MaskChanged + { + add + { + baseTextBox.MaskChanged += value; + } + remove + { + baseTextBox.MaskChanged -= value; + } + } + + public new event EventHandler MarginChanged + { + add + { + baseTextBox.MarginChanged += value; + } + remove + { + baseTextBox.MarginChanged -= value; + } + } + + public event MaskInputRejectedEventHandler MaskInputRejected + { + add + { + baseTextBox.MaskInputRejected += value; + } + remove + { + baseTextBox.MaskInputRejected -= value; + } + } + + public event EventHandler ModifiedChanged + { + add + { + baseTextBox.ModifiedChanged += value; + } + remove + { + baseTextBox.ModifiedChanged -= value; + } + } + + public new event EventHandler MouseCaptureChanged + { + add + { + baseTextBox.MouseCaptureChanged += value; + } + remove + { + baseTextBox.MouseCaptureChanged -= value; + } + } + + public new event MouseEventHandler MouseClick + { + add + { + baseTextBox.MouseClick += value; + } + remove + { + baseTextBox.MouseClick -= value; + } + } + + public new event MouseEventHandler MouseDoubleClick + { + add + { + baseTextBox.MouseDoubleClick += value; + } + remove + { + baseTextBox.MouseDoubleClick -= value; + } + } + + public new event MouseEventHandler MouseDown + { + add + { + baseTextBox.MouseDown += value; + } + remove + { + baseTextBox.MouseDown -= value; + } + } + + public new event EventHandler MouseEnter + { + add + { + baseTextBox.MouseEnter += value; + } + remove + { + baseTextBox.MouseEnter -= value; + } + } + + public new event EventHandler MouseHover + { + add + { + baseTextBox.MouseHover += value; + } + remove + { + baseTextBox.MouseHover -= value; + } + } + + public new event EventHandler MouseLeave + { + add + { + baseTextBox.MouseLeave += value; + } + remove + { + baseTextBox.MouseLeave -= value; + } + } + + public new event MouseEventHandler MouseMove + { + add + { + baseTextBox.MouseMove += value; + } + remove + { + baseTextBox.MouseMove -= value; + } + } + + public new event MouseEventHandler MouseUp + { + add + { + baseTextBox.MouseUp += value; + } + remove + { + baseTextBox.MouseUp -= value; + } + } + + public new event MouseEventHandler MouseWheel + { + add + { + baseTextBox.MouseWheel += value; + } + remove + { + baseTextBox.MouseWheel -= value; + } + } + + public new event EventHandler Move + { + add + { + baseTextBox.Move += value; + } + remove + { + baseTextBox.Move -= value; + } + } + + public event EventHandler MultilineChanged + { + add + { + baseTextBox.MultilineChanged += value; + } + remove + { + baseTextBox.MultilineChanged -= value; + } + } + + public new event EventHandler PaddingChanged + { + add + { + baseTextBox.PaddingChanged += value; + } + remove + { + baseTextBox.PaddingChanged -= value; + } + } + + public new event PaintEventHandler Paint + { + add + { + baseTextBox.Paint += value; + } + remove + { + baseTextBox.Paint -= value; + } + } + + public new event EventHandler ParentChanged + { + add + { + baseTextBox.ParentChanged += value; + } + remove + { + baseTextBox.ParentChanged -= value; + } + } + + public new event PreviewKeyDownEventHandler PreviewKeyDown + { + add + { + baseTextBox.PreviewKeyDown += value; + } + remove + { + baseTextBox.PreviewKeyDown -= value; + } + } + + public new event QueryAccessibilityHelpEventHandler QueryAccessibilityHelp + { + add + { + baseTextBox.QueryAccessibilityHelp += value; + } + remove + { + baseTextBox.QueryAccessibilityHelp -= value; + } + } + + public new event QueryContinueDragEventHandler QueryContinueDrag + { + add + { + baseTextBox.QueryContinueDrag += value; + } + remove + { + baseTextBox.QueryContinueDrag -= value; + } + } + + public event EventHandler ReadOnlyChanged + { + add + { + baseTextBox.ReadOnlyChanged += value; + } + remove + { + baseTextBox.ReadOnlyChanged -= value; + } + } + + public new event EventHandler RegionChanged + { + add + { + baseTextBox.RegionChanged += value; + } + remove + { + baseTextBox.RegionChanged -= value; + } + } + + public new event EventHandler Resize + { + add + { + baseTextBox.Resize += value; + } + remove + { + baseTextBox.Resize -= value; + } + } + + public new event EventHandler RightToLeftChanged + { + add + { + baseTextBox.RightToLeftChanged += value; + } + remove + { + baseTextBox.RightToLeftChanged -= value; + } + } + + public new event EventHandler SizeChanged + { + add + { + baseTextBox.SizeChanged += value; + } + remove + { + baseTextBox.SizeChanged -= value; + } + } + + public new event EventHandler StyleChanged + { + add + { + baseTextBox.StyleChanged += value; + } + remove + { + baseTextBox.StyleChanged -= value; + } + } + + public new event EventHandler SystemColorsChanged + { + add + { + baseTextBox.SystemColorsChanged += value; + } + remove + { + baseTextBox.SystemColorsChanged -= value; + } + } + + public new event EventHandler TabIndexChanged + { + add + { + baseTextBox.TabIndexChanged += value; + } + remove + { + baseTextBox.TabIndexChanged -= value; + } + } + + public new event EventHandler TabStopChanged + { + add + { + baseTextBox.TabStopChanged += value; + } + remove + { + baseTextBox.TabStopChanged -= value; + } + } + + public event EventHandler TextAlignChanged + { + add + { + baseTextBox.TextAlignChanged += value; + } + remove + { + baseTextBox.TextAlignChanged -= value; + } + } + + public new event EventHandler TextChanged + { + add + { + baseTextBox.TextChanged += value; + } + remove + { + baseTextBox.TextChanged -= value; + } + } + + public event TypeValidationEventHandler TypeValidationCompleted + { + add + { + baseTextBox.TypeValidationCompleted += value; + } + remove + { + baseTextBox.TypeValidationCompleted -= value; + } + } + + public new event EventHandler Validated + { + add + { + baseTextBox.Validated += value; + } + remove + { + baseTextBox.Validated -= value; + } + } + + public new event CancelEventHandler Validating + { + add + { + baseTextBox.Validating += value; + } + remove + { + baseTextBox.Validating -= value; + } + } + + public new event EventHandler VisibleChanged + { + add + { + baseTextBox.VisibleChanged += value; + } + remove + { + baseTextBox.VisibleChanged -= value; + } + } + # endregion + + private readonly AnimationManager _animationManager; + + public bool isFocused = false; + private const int PREFIX_SUFFIX_PADDING = 4; + private const int ICON_SIZE = 24; + private const int HINT_TEXT_SMALL_SIZE = 18; + private const int HINT_TEXT_SMALL_Y = 4; + private const int TOP_PADDING = 8; //10; + private const int BOTTOM_PADDING = 8; //10; + private const int LEFT_PADDING = 16; + private const int RIGHT_PADDING = 12; + private const int ACTIVATION_INDICATOR_HEIGHT = 2; + private const int HELPER_TEXT_HEIGHT = 16; + private const int FONT_HEIGHT = 20; + + private int HEIGHT = 48; + + private int LINE_Y; + private bool hasHint; + private bool _errorState = false; + private int _left_padding; + private int _right_padding; + private int _prefix_padding; + private int _suffix_padding; + private int _helperTextHeight; + private Rectangle _leadingIconBounds; + private Rectangle _trailingIconBounds; + + private Dictionary iconsBrushes; + private Dictionary iconsErrorBrushes; + + protected readonly BaseMaskedTextBox baseTextBox; + + public MaterialMaskedTextBox() + { + // Material Properties + UseAccent = true; + MouseState = MouseState.OUT; + + SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.DoubleBuffer, true); + + // Animations + _animationManager = new AnimationManager + { + Increment = 0.06, + AnimationType = AnimationType.EaseInOut, + InterruptAnimation = false + }; + _animationManager.OnAnimationProgress += sender => Invalidate(); + + SkinManager.ColorSchemeChanged += sender => + { + preProcessIcons(); + }; + + SkinManager.ThemeChanged += sender => + { + preProcessIcons(); + }; + + Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft); + + baseTextBox = new BaseMaskedTextBox + { + BorderStyle = BorderStyle.None, + Font = base.Font, + ForeColor = SkinManager.TextHighEmphasisColor, + Multiline = false, + Location = new Point(LEFT_PADDING, HEIGHT/2- FONT_HEIGHT/2), + Width = Width - (LEFT_PADDING + RIGHT_PADDING), + Height = FONT_HEIGHT + }; + + Enabled = true; + ReadOnly = false; + Size = new Size(250, HEIGHT); + + UseTallSize = true; + PrefixSuffix = PrefixSuffixTypes.None; + ShowAssistiveText = false; + HelperText = string.Empty; + ErrorMessage = string.Empty; + + if (!Controls.Contains(baseTextBox) && !DesignMode) + { + Controls.Add(baseTextBox); + } + + baseTextBox.GotFocus += (sender, args) => + { + if (Enabled) + { + isFocused = true; + _animationManager.StartNewAnimation(AnimationDirection.In); + } + else + base.Focus(); + UpdateRects(); + }; + baseTextBox.LostFocus += (sender, args) => + { + isFocused = false; + _animationManager.StartNewAnimation(AnimationDirection.Out); + UpdateRects(); + }; + + baseTextBox.TextChanged += new EventHandler(Redraw); + baseTextBox.BackColorChanged += new EventHandler(Redraw); + + baseTextBox.TabStop = true; + this.TabStop = false; + + cms.Opening += ContextMenuStripOnOpening; + cms.OnItemClickStart += ContextMenuStripOnItemClickStart; + ContextMenuStrip = cms; + + } + + private void Redraw(object sencer, EventArgs e) + { + SuspendLayout(); + Invalidate(); + ResumeLayout(false); + } + + protected override void OnPaint(PaintEventArgs pevent) + { + var g = pevent.Graphics; + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + g.Clear(Parent.BackColor); + SolidBrush backBrush = new SolidBrush(DrawHelper.BlendColor(Parent.BackColor, SkinManager.BackgroundAlternativeColor, SkinManager.BackgroundAlternativeColor.A)); + + //backColor + g.FillRectangle( + !Enabled ? SkinManager.BackgroundDisabledBrush : // Disabled + isFocused ? SkinManager.BackgroundFocusBrush : // Focused + MouseState == MouseState.HOVER && (!ReadOnly || (ReadOnly && !AnimateReadOnly)) ? SkinManager.BackgroundHoverBrush : // Hover + backBrush, // Normal + ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, LINE_Y); + + baseTextBox.BackColor = !Enabled ? ColorHelper.RemoveAlpha(SkinManager.BackgroundDisabledColor, BackColor) : //Disabled + isFocused ? DrawHelper.BlendColor(BackColor, SkinManager.BackgroundFocusColor, SkinManager.BackgroundFocusColor.A) : //Focused + MouseState == MouseState.HOVER && (!ReadOnly || (ReadOnly && !AnimateReadOnly)) ? DrawHelper.BlendColor(BackColor, SkinManager.BackgroundHoverColor, SkinManager.BackgroundHoverColor.A) : // Hover + DrawHelper.BlendColor(BackColor, SkinManager.BackgroundAlternativeColor, SkinManager.BackgroundAlternativeColor.A); // Normal + + //Leading Icon + if (LeadingIcon != null) + { + if (_errorState) + g.FillRectangle(iconsErrorBrushes["_leadingIcon"], _leadingIconBounds); + else + g.FillRectangle(iconsBrushes["_leadingIcon"], _leadingIconBounds); + } + + //Trailing Icon + if (TrailingIcon != null) + { + if (_errorState) + g.FillRectangle(iconsErrorBrushes["_trailingIcon"], _trailingIconBounds); + else + g.FillRectangle(iconsBrushes["_trailingIcon"], _trailingIconBounds); + } + + // HintText + bool userTextPresent = !String.IsNullOrEmpty(Text); + Rectangle helperTextRect = new Rectangle(LEFT_PADDING - _prefix_padding, LINE_Y + ACTIVATION_INDICATOR_HEIGHT, Width - (LEFT_PADDING - _prefix_padding) - _right_padding, HELPER_TEXT_HEIGHT); + Rectangle hintRect = new Rectangle(_left_padding - _prefix_padding, HINT_TEXT_SMALL_Y, Width - (_left_padding - _prefix_padding) - _right_padding, HINT_TEXT_SMALL_SIZE); + int hintTextSize = 12; + + // bottom line base + g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, Width, 1); + + if (ReadOnly == false || (ReadOnly && AnimateReadOnly)) + { + if (!_animationManager.IsAnimating()) + { + // No animation + + // bottom line + if (isFocused) + { + g.FillRectangle(_errorState ? SkinManager.BackgroundHoverRedBrush : isFocused ? UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush : SkinManager.DividersBrush, 0, LINE_Y, Width, isFocused ? 2 : 1); + } + } + else + { + // Animate - Focus got/lost + double animationProgress = _animationManager.GetProgress(); + + // Line Animation + int LineAnimationWidth = (int)(Width * animationProgress); + int LineAnimationX = (Width / 2) - (LineAnimationWidth / 2); + g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); + } + } + + // Prefix: + if (_prefixsuffix == PrefixSuffixTypes.Prefix && _prefixsuffixText != null && _prefixsuffixText.Length > 0 && (isFocused || userTextPresent || !hasHint)) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + Rectangle prefixRect = new Rectangle( + _left_padding - _prefix_padding, + hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, + _prefix_padding, + hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); + + // Draw Prefix text + NativeText.DrawTransparentText( + _prefixsuffixText, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), + Enabled ? SkinManager.TextMediumEmphasisColor : SkinManager.TextDisabledOrHintColor, + prefixRect.Location, + prefixRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + // Suffix: + if (_prefixsuffix == PrefixSuffixTypes.Suffix && _prefixsuffixText != null && _prefixsuffixText.Length > 0 && (isFocused || userTextPresent || !hasHint)) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + Rectangle suffixRect = new Rectangle( + Width - _right_padding , + hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, + _suffix_padding, + hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); + + // Draw Suffix text + NativeText.DrawTransparentText( + _prefixsuffixText, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), + Enabled ? SkinManager.TextMediumEmphasisColor : SkinManager.TextDisabledOrHintColor, + suffixRect.Location, + suffixRect.Size, + NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + // Draw hint text + if (hasHint && UseTallSize && (isFocused || userTextPresent)) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + Hint, + SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), + Enabled ? !_errorState || (!userTextPresent && !isFocused) ? isFocused ? UseAccent ? + SkinManager.ColorScheme.AccentColor : // Focus Accent + SkinManager.ColorScheme.PrimaryColor : // Focus Primary + SkinManager.TextMediumEmphasisColor : // not focused + SkinManager.BackgroundHoverRedColor : // error state + SkinManager.TextDisabledOrHintColor, // Disabled + hintRect.Location, + hintRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + // Draw helper text + if (_showAssistiveText && isFocused && !_errorState) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + HelperText, + SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), + Enabled ? !_errorState || (!userTextPresent && !isFocused) ? isFocused ? UseAccent ? + SkinManager.ColorScheme.AccentColor : // Focus Accent + SkinManager.ColorScheme.PrimaryColor : // Focus Primary + SkinManager.TextMediumEmphasisColor : // not focused + SkinManager.BackgroundHoverRedColor : // error state + SkinManager.TextDisabledOrHintColor, // Disabled + helperTextRect.Location, + helperTextRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + // Draw error message + if (_showAssistiveText && _errorState && ErrorMessage!=null) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + ErrorMessage, + SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), + Enabled ? + SkinManager.BackgroundHoverRedColor : // error state + SkinManager.TextDisabledOrHintColor, // Disabled + helperTextRect.Location, + helperTextRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + if (DesignMode) + return; + + if (LeadingIcon != null && _leadingIconBounds.Contains(e.Location) && LeadingIconClick != null) + { + Cursor = Cursors.Hand; + } + else if (TrailingIcon != null && _trailingIconBounds.Contains(e.Location) && TrailingIconClick != null) + { + Cursor = Cursors.Hand; + } + else + { + Cursor = Cursors.IBeam; + } + + } + + protected override void OnMouseDown(MouseEventArgs e) + { + if (DesignMode) + return; + + if (LeadingIcon != null && _leadingIconBounds.Contains(e.Location)) + { + LeadingIconClick?.Invoke(this, new EventArgs()); + } + else if (TrailingIcon != null && _trailingIconBounds.Contains(e.Location)) + { + TrailingIconClick?.Invoke(this, new EventArgs()); + } + else + { + baseTextBox?.Focus(); + } + base.OnMouseDown(e); + + } + + protected override void OnMouseEnter(EventArgs e) + { + if (DesignMode) + return; + + base.OnMouseEnter(e); + MouseState = MouseState.HOVER; + Invalidate(); + } + + protected override void OnMouseLeave(EventArgs e) + { + if (DesignMode) + return; + + if (this.ClientRectangle.Contains(this.PointToClient(Control.MousePosition))) + return; + else + { + base.OnMouseLeave(e); + MouseState = MouseState.OUT; + Invalidate(); + } + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + UpdateRects(); + preProcessIcons(); + + Size = new Size(Width, HEIGHT); + LINE_Y = HEIGHT - ACTIVATION_INDICATOR_HEIGHT - _helperTextHeight; + + } + + protected override void OnCreateControl() + { + base.OnCreateControl(); + + // events + MouseState = MouseState.OUT; + + } + + #region Icon + private static Size ResizeIcon(Image Icon) + { + int newWidth, newHeight; + //Resize icon if greater than ICON_SIZE + if (Icon.Width > ICON_SIZE || Icon.Height > ICON_SIZE) + { + //calculate aspect ratio + float aspect = Icon.Width / (float)Icon.Height; + + //calculate new dimensions based on aspect ratio + newWidth = (int)(ICON_SIZE * aspect); + newHeight = (int)(newWidth / aspect); + + //if one of the two dimensions exceed the box dimensions + if (newWidth > ICON_SIZE || newHeight > ICON_SIZE) + { + //depending on which of the two exceeds the box dimensions set it as the box dimension and calculate the other one based on the aspect ratio + if (newWidth > newHeight) + { + newWidth = ICON_SIZE; + newHeight = (int)(newWidth / aspect); + } + else + { + newHeight = ICON_SIZE; + newWidth = (int)(newHeight * aspect); + } + } + } + else + { + newWidth = Icon.Width; + newHeight = Icon.Height; + } + + return new Size() + { + Height = newHeight, + Width = newWidth + }; + } + + private void preProcessIcons() + { + if (_trailingIcon == null && _leadingIcon == null) return; + + // Calculate lightness and color + float l = (SkinManager.Theme == MaterialSkinManager.Themes.LIGHT) ? 0f : 1f; + + // Create matrices + float[][] matrixGray = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, Enabled ? .7f : .3f, 0}, // alpha scale factor + new float[] { l, l, l, 0, 1}};// offset + + float[][] matrixRed = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, 1, 0}, // alpha scale factor + new float[] { 1, 0, 0, 0, 1}};// offset + + ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); + ColorMatrix colorMatrixRed = new ColorMatrix(matrixRed); + + ImageAttributes grayImageAttributes = new ImageAttributes(); + ImageAttributes redImageAttributes = new ImageAttributes(); + + // Set color matrices + grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + redImageAttributes.SetColorMatrix(colorMatrixRed, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + + // Create brushes + iconsBrushes = new Dictionary(2); + iconsErrorBrushes = new Dictionary(2); + + // Image Rect + Rectangle destRect = new Rectangle(0, 0, ICON_SIZE, ICON_SIZE); + + if (_leadingIcon != null) + { + // ******************** + // *** _leadingIcon *** + // ******************** + + //Resize icon if greater than ICON_SIZE + Size newSize_leadingIcon = ResizeIcon(_leadingIcon); + Bitmap _leadingIconIconResized = new Bitmap(_leadingIcon, newSize_leadingIcon.Width, newSize_leadingIcon.Height); + + // Create a pre-processed copy of the image (GRAY) + Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gGray = Graphics.FromImage(bgray)) + { + gGray.DrawImage(_leadingIconIconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, grayImageAttributes); + } + + //Create a pre - processed copy of the image(RED) + Bitmap bred = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gred = Graphics.FromImage(bred)) + { + gred.DrawImage(_leadingIconIconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, redImageAttributes); + } + + // added processed image to brush for drawing + TextureBrush textureBrushGray = new TextureBrush(bgray); + TextureBrush textureBrushRed = new TextureBrush(bred); + + textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + textureBrushRed.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + + var iconRect = _leadingIconBounds; + + textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _leadingIconIconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - _leadingIconIconResized.Height / 2); + textureBrushRed.TranslateTransform(iconRect.X + iconRect.Width / 2 - _leadingIconIconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - _leadingIconIconResized.Height / 2); + + // add to dictionary + iconsBrushes.Add("_leadingIcon", textureBrushGray); + + iconsErrorBrushes.Add("_leadingIcon", textureBrushRed); + + } + + if (_trailingIcon != null) + { + // ********************* + // *** _trailingIcon *** + // ********************* + + //Resize icon if greater than ICON_SIZE + Size newSize_trailingIcon = ResizeIcon(_trailingIcon); + Bitmap _trailingIconResized = new Bitmap(_trailingIcon, newSize_trailingIcon.Width, newSize_trailingIcon.Height); + + // Create a pre-processed copy of the image (GRAY) + Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gGray = Graphics.FromImage(bgray)) + { + gGray.DrawImage(_trailingIconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, grayImageAttributes); + } + + //Create a pre - processed copy of the image(RED) + Bitmap bred = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gred = Graphics.FromImage(bred)) + { + gred.DrawImage(_trailingIconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, redImageAttributes); + } + + + // added processed image to brush for drawing + TextureBrush textureBrushGray = new TextureBrush(bgray); + TextureBrush textureBrushRed = new TextureBrush(bred); + + textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + textureBrushRed.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + + var iconRect = _trailingIconBounds; + + textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _trailingIconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - _trailingIconResized.Height / 2); + textureBrushRed.TranslateTransform(iconRect.X + iconRect.Width / 2 - _trailingIconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - _trailingIconResized.Height / 2); + + // add to dictionary + iconsBrushes.Add("_trailingIcon", textureBrushGray); + //iconsSelectedBrushes.Add(0, textureBrushColor); + iconsErrorBrushes.Add("_trailingIcon", textureBrushRed); + } + } + #endregion + + private void UpdateHeight() + { + HEIGHT = _UseTallSize ? 48 : 36; + HEIGHT += _helperTextHeight; + Size = new Size(Size.Width, HEIGHT); + } + + private void UpdateRects() + { + if (LeadingIcon != null) + _left_padding = LEFT_PADDING + ICON_SIZE; + else + _left_padding = LEFT_PADDING; + + if (_trailingIcon != null) + _right_padding = RIGHT_PADDING + ICON_SIZE; + else + _right_padding = RIGHT_PADDING; + + if (_prefixsuffix == PrefixSuffixTypes.Prefix && _prefixsuffixText != null && _prefixsuffixText.Length > 0) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) + { + _prefix_padding = NativeText.MeasureLogString(_prefixsuffixText, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft)).Width + PREFIX_SUFFIX_PADDING; + _left_padding += _prefix_padding; + } + } + else + _prefix_padding = 0; + if (_prefixsuffix == PrefixSuffixTypes.Suffix && _prefixsuffixText != null && _prefixsuffixText.Length > 0) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) + { + _suffix_padding = NativeText.MeasureLogString(_prefixsuffixText, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft)).Width + PREFIX_SUFFIX_PADDING; + _right_padding += _suffix_padding; + } + } + else + _suffix_padding = 0; + + if (hasHint && UseTallSize && (isFocused || !String.IsNullOrEmpty(Text))) + { + baseTextBox.Location = new Point(_left_padding, 22); + baseTextBox.Width = Width - (_left_padding + _right_padding); + baseTextBox.Height = FONT_HEIGHT; + } + else + { + baseTextBox.Location = new Point(_left_padding, (LINE_Y + ACTIVATION_INDICATOR_HEIGHT) / 2 - FONT_HEIGHT / 2); + baseTextBox.Width = Width - (_left_padding + _right_padding); + baseTextBox.Height = FONT_HEIGHT; + } + + _leadingIconBounds = new Rectangle(8, ((LINE_Y + ACTIVATION_INDICATOR_HEIGHT) / 2) - (ICON_SIZE / 2), ICON_SIZE, ICON_SIZE); + _trailingIconBounds = new Rectangle(Width - (ICON_SIZE + 8), ((LINE_Y + ACTIVATION_INDICATOR_HEIGHT) / 2) - (ICON_SIZE / 2), ICON_SIZE, ICON_SIZE); + } + + public void SetErrorState(bool ErrorState) + { + _errorState = ErrorState; + if (_errorState) + baseTextBox.ForeColor = SkinManager.BackgroundHoverRedColor; + else + baseTextBox.ForeColor = SkinManager.TextHighEmphasisColor; + baseTextBox.Invalidate(); + Invalidate(); + } + + public bool GetErrorState() + { + return _errorState; + } + + private void ContextMenuStripOnItemClickStart(object sender, ToolStripItemClickedEventArgs toolStripItemClickedEventArgs) + { + switch (toolStripItemClickedEventArgs.ClickedItem.Text) + { + case "Undo": + Undo(); + break; + case "Cut": + Cut(); + break; + case "Copy": + Copy(); + break; + case "Paste": + Paste(); + break; + case "Delete": + SelectedText = string.Empty; + break; + case "Select All": + SelectAll(); + break; + } + } + + private void ContextMenuStripOnOpening(object sender, CancelEventArgs cancelEventArgs) + { + var strip = sender as BaseTextBoxContextMenuStrip; + if (strip != null) + { + strip.undo.Enabled = baseTextBox.CanUndo && !ReadOnly; + strip.cut.Enabled = !string.IsNullOrEmpty(SelectedText) && !ReadOnly; + strip.copy.Enabled = !string.IsNullOrEmpty(SelectedText); + strip.paste.Enabled = Clipboard.ContainsText() && !ReadOnly; + strip.delete.Enabled = !string.IsNullOrEmpty(SelectedText) && !ReadOnly; + strip.selectAll.Enabled = !string.IsNullOrEmpty(Text); + } + } + + private void LeaveOnEnterKey_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyData == Keys.Enter) + { + e.Handled = true; + e.SuppressKeyPress = true; + SendKeys.Send("{TAB}"); + } + } + } +} diff --git a/MaterialSkin/Controls/MaterialMessageBox.cs b/MaterialSkin/Controls/MaterialMessageBox.cs index 6bb258db..a3b9f216 100644 --- a/MaterialSkin/Controls/MaterialMessageBox.cs +++ b/MaterialSkin/Controls/MaterialMessageBox.cs @@ -21,54 +21,60 @@ public class MaterialMessageBox : IMaterialControl [Browsable(false)] public Point MouseLocation { get; set; } - public static DialogResult Show(string text) + public static DialogResult Show(string text, bool UseRichTextBox = true, FlexibleMaterialForm.ButtonsPosition buttonsPosition = FlexibleMaterialForm.ButtonsPosition.Right, RightToLeft RightToLeft = RightToLeft.No) { - return FlexibleMaterialForm.Show(null, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + return FlexibleMaterialForm.Show(null, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1, UseRichTextBox, buttonsPosition, RightToLeft); } - public static DialogResult Show(IWin32Window owner, string text) + public static DialogResult Show(IWin32Window owner, string text, bool UseRichTextBox = true, FlexibleMaterialForm.ButtonsPosition buttonsPosition = FlexibleMaterialForm.ButtonsPosition.Right, RightToLeft RightToLeft = RightToLeft.No) { - return FlexibleMaterialForm.Show(owner, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + return FlexibleMaterialForm.Show(owner, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1, UseRichTextBox, buttonsPosition, RightToLeft); } - public static DialogResult Show(string text, string caption) + public static DialogResult Show(string text, string caption, bool UseRichTextBox = true, FlexibleMaterialForm.ButtonsPosition buttonsPosition = FlexibleMaterialForm.ButtonsPosition.Right, RightToLeft RightToLeft = RightToLeft.No) { - return FlexibleMaterialForm.Show(null, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + return FlexibleMaterialForm.Show(null, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1, UseRichTextBox, buttonsPosition, RightToLeft); } - public static DialogResult Show(IWin32Window owner, string text, string caption) + public static DialogResult Show(IWin32Window owner, string text, string caption, bool UseRichTextBox = true, FlexibleMaterialForm.ButtonsPosition buttonsPosition = FlexibleMaterialForm.ButtonsPosition.Right, RightToLeft RightToLeft = RightToLeft.No) { - return FlexibleMaterialForm.Show(owner, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + return FlexibleMaterialForm.Show(owner, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1, UseRichTextBox, buttonsPosition, RightToLeft); } - public static DialogResult Show(string text, string caption, MessageBoxButtons buttons) + public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, bool UseRichTextBox = true, FlexibleMaterialForm.ButtonsPosition buttonsPosition = FlexibleMaterialForm.ButtonsPosition.Right, RightToLeft RightToLeft = RightToLeft.No) { - return FlexibleMaterialForm.Show(null, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + return FlexibleMaterialForm.Show(null, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1, UseRichTextBox, buttonsPosition, RightToLeft); } - public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons) + public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, bool UseRichTextBox = true, FlexibleMaterialForm.ButtonsPosition buttonsPosition = FlexibleMaterialForm.ButtonsPosition.Right, RightToLeft RightToLeft = RightToLeft.No) { - return FlexibleMaterialForm.Show(owner, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); + return FlexibleMaterialForm.Show(owner, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1, UseRichTextBox, buttonsPosition, RightToLeft); } - public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) + public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, bool UseRichTextBox = true, FlexibleMaterialForm.ButtonsPosition buttonsPosition = FlexibleMaterialForm.ButtonsPosition.Right, RightToLeft RightToLeft = RightToLeft.No) { - return FlexibleMaterialForm.Show(null, text, caption, buttons, icon, MessageBoxDefaultButton.Button1); + return FlexibleMaterialForm.Show(null, text, caption, buttons, icon, MessageBoxDefaultButton.Button1, UseRichTextBox, buttonsPosition, RightToLeft); } - public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) + public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, bool UseRichTextBox = true, FlexibleMaterialForm.ButtonsPosition buttonsPosition = FlexibleMaterialForm.ButtonsPosition.Right, RightToLeft RightToLeft = RightToLeft.No) { - return FlexibleMaterialForm.Show(owner, text, caption, buttons, icon, MessageBoxDefaultButton.Button1); + return FlexibleMaterialForm.Show(owner, text, caption, buttons, icon, MessageBoxDefaultButton.Button1, UseRichTextBox, buttonsPosition, RightToLeft); } - public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) + public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, bool UseRichTextBox = true, FlexibleMaterialForm.ButtonsPosition buttonsPosition = FlexibleMaterialForm.ButtonsPosition.Right, RightToLeft RightToLeft = RightToLeft.No) { - return FlexibleMaterialForm.Show(null, text, caption, buttons, icon, defaultButton); + return FlexibleMaterialForm.Show(null, text, caption, buttons, icon, defaultButton, UseRichTextBox, buttonsPosition, RightToLeft); } - public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) + public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, bool UseRichTextBox = true, FlexibleMaterialForm.ButtonsPosition buttonsPosition = FlexibleMaterialForm.ButtonsPosition.Right, RightToLeft RightToLeft = RightToLeft.No) { - return FlexibleMaterialForm.Show(owner, text, caption, buttons, icon, defaultButton); + return FlexibleMaterialForm.Show(owner, text, caption, buttons, icon, defaultButton, UseRichTextBox, buttonsPosition, RightToLeft); } + + public static DialogResult Show(string text, string caption, MessageBoxButtons messageBoxButtons, FlexibleMaterialForm.ButtonsPosition buttonsPosition = FlexibleMaterialForm.ButtonsPosition.Right, RightToLeft RightToLeft = RightToLeft.No) + { + return FlexibleMaterialForm.Show(null, text, caption, messageBoxButtons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1, true, buttonsPosition, RightToLeft); + } + } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialMultiLineTextBox.cs b/MaterialSkin/Controls/MaterialMultiLineTextBox.cs index 592db765..53f153b3 100644 --- a/MaterialSkin/Controls/MaterialMultiLineTextBox.cs +++ b/MaterialSkin/Controls/MaterialMultiLineTextBox.cs @@ -30,6 +30,7 @@ public class MaterialMultiLineTextBox : RichTextBox, IMaterialControl private string hint = string.Empty; + [Category("Material Skin"), DefaultValue(""), Localizable(true)] public string Hint { get { return hint; } @@ -40,6 +41,27 @@ public string Hint } } + private bool _leaveOnEnterKey; + + [Category("Material Skin"), DefaultValue(false), Description("Select next control which have TabStop property set to True when enter key is pressed. To add enter in text, the user must press CTRL+Enter")] + public bool LeaveOnEnterKey + { + get => _leaveOnEnterKey; + set + { + _leaveOnEnterKey = value; + if (value) + { + KeyDown += new KeyEventHandler(LeaveOnEnterKey_KeyDown); + } + else + { + KeyDown -= LeaveOnEnterKey_KeyDown; + } + Invalidate(); + } + } + public new void SelectAll() { BeginInvoke((MethodInvoker)delegate () @@ -57,17 +79,27 @@ public string Hint }); } + private void LeaveOnEnterKey_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyData == Keys.Enter && e.Control == false) + { + e.Handled = true; + e.SuppressKeyPress = true; + SendKeys.Send("{TAB}"); + } + } + public MaterialMultiLineTextBox() { base.OnCreateControl(); this.Multiline = true; BorderStyle = BorderStyle.None; - Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1); + Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft); BackColor = SkinManager.BackgroundColor; ForeColor = SkinManager.TextHighEmphasisColor; BackColorChanged += (sender, args) => BackColor = SkinManager.BackgroundColor; ForeColorChanged += (sender, args) => ForeColor = SkinManager.TextHighEmphasisColor; } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialMultiLineTextBox2.cs b/MaterialSkin/Controls/MaterialMultiLineTextBox2.cs new file mode 100644 index 00000000..a53ada33 --- /dev/null +++ b/MaterialSkin/Controls/MaterialMultiLineTextBox2.cs @@ -0,0 +1,1393 @@ + +namespace MaterialSkin.Controls +{ + using System; + using System.ComponentModel; + using System.Drawing; + using System.Runtime.InteropServices; + using System.Windows.Forms; + using MaterialSkin.Animations; + + public class MaterialMultiLineTextBox2 : Control, IMaterialControl + { + + MaterialContextMenuStrip cms = new BaseTextBoxContextMenuStrip(); + ContextMenuStrip _lastContextMenuStrip = new ContextMenuStrip(); + + //Properties for managing the material design properties + + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + //Unused properties + + [Browsable(false)] + public override System.Drawing.Image BackgroundImage { get; set; } + + [Browsable(false)] + public override System.Windows.Forms.ImageLayout BackgroundImageLayout { get; set; } + + [Browsable(false)] + public string SelectedText { get { return baseTextBox.SelectedText; } set { baseTextBox.SelectedText = value; } } + + [Browsable(false)] + public int SelectionStart { get { return baseTextBox.SelectionStart; } set { baseTextBox.SelectionStart = value; } } + [Browsable(false)] + public int SelectionLength { get { return baseTextBox.SelectionLength; } set { baseTextBox.SelectionLength = value; } } + [Browsable(false)] + public int TextLength { get { return baseTextBox.TextLength; } } + + [Browsable(false)] + public override System.Drawing.Color ForeColor { get; set; } + + //Material Skin properties + + + [Category("Material Skin"), DefaultValue(""), Localizable(true)] + public string Hint + { + get { return baseTextBox.Hint; } + set + { + baseTextBox.Hint = value; + hasHint = !String.IsNullOrEmpty(baseTextBox.Hint); + Invalidate(); + } + } + + [Category("Material Skin"), DefaultValue(true)] + public bool UseAccent { get; set; } + + + + [Browsable(true)] + [Category("Material Skin"), DefaultValue(true), Description("Defines whether MaterialMultiLineTextBox allows scrolling of text. This property is independent of the ScrollBars property")] + public bool AllowScroll { get; set; } + + + + //TextBox properties + + public override ContextMenuStrip ContextMenuStrip + { + get { return baseTextBox.ContextMenuStrip; } + set + { + if (value != null) + { + baseTextBox.ContextMenuStrip = value; + base.ContextMenuStrip = value; + } + else + { + baseTextBox.ContextMenuStrip = cms; + base.ContextMenuStrip = cms; + } + _lastContextMenuStrip = base.ContextMenuStrip; + } + } + + [Browsable(false)] + public override Color BackColor { get { return Parent == null ? SkinManager.BackgroundColor : Parent.BackColor; } } + + public override string Text { get { return baseTextBox.Text; } set { baseTextBox.Text = value; } } + + [Category("Appearance")] + public HorizontalAlignment TextAlign { get { return baseTextBox.TextAlign; } set { baseTextBox.TextAlign = value; } } + + [Category("Appearance")] + public ScrollBars ScrollBars { get { return baseTextBox.ScrollBars; } set { baseTextBox.ScrollBars = value; } } + + [Category("Behavior")] + public CharacterCasing CharacterCasing { get { return baseTextBox.CharacterCasing; } set { baseTextBox.CharacterCasing = value; } } + + [Category("Behavior")] + public bool HideSelection { get { return baseTextBox.HideSelection; } set { baseTextBox.HideSelection = value; } } + + [Category("Behavior")] + public int MaxLength { get { return baseTextBox.MaxLength; } set { baseTextBox.MaxLength = value; } } + + [Category("Behavior")] + public char PasswordChar { get { return baseTextBox.PasswordChar; } set { baseTextBox.PasswordChar = value; } } + + [Category("Behavior")] + public bool ShortcutsEnabled + { + get + { return baseTextBox.ShortcutsEnabled; } + set + { + baseTextBox.ShortcutsEnabled = value; + if (value == false) + { + baseTextBox.ContextMenuStrip = null; + base.ContextMenuStrip = null; + } + else + { + baseTextBox.ContextMenuStrip = _lastContextMenuStrip; + base.ContextMenuStrip = _lastContextMenuStrip; + } + } + } + + [Category("Behavior")] + public bool UseSystemPasswordChar { get { return baseTextBox.UseSystemPasswordChar; } set { baseTextBox.UseSystemPasswordChar = value; } } + + public new object Tag { get { return baseTextBox.Tag; } set { baseTextBox.Tag = value; } } + + private bool _readonly; + [Category("Behavior")] + public bool ReadOnly + { + get { return _readonly; } + set + { + _readonly = value; + if (Enabled == true) + { + baseTextBox.ReadOnly = _readonly; + } + this.Invalidate(); + } + } + + private bool _animateReadOnly; + + [Category("Material Skin")] + [Browsable(true)] + public bool AnimateReadOnly + { + get => _animateReadOnly; + set + { + _animateReadOnly = value; + Invalidate(); + } + } + + private bool _leaveOnEnterKey; + + [Category("Material Skin"), DefaultValue(false), Description("Select next control which have TabStop property set to True when enter key is pressed. To add enter in text, the user must press CTRL+Enter")] + public bool LeaveOnEnterKey + { + get => _leaveOnEnterKey; + set + { + _leaveOnEnterKey = value; + if (value) + { + baseTextBox.KeyDown += new KeyEventHandler(LeaveOnEnterKey_KeyDown); + } + else + { + baseTextBox.KeyDown -= LeaveOnEnterKey_KeyDown; + } + Invalidate(); + } + } + + public void SelectAll() { baseTextBox.SelectAll(); } + + public void Clear() { baseTextBox.Clear(); } + + public void Copy() { baseTextBox.Copy(); } + + public void Cut() { baseTextBox.Cut(); } + + public void Undo() { baseTextBox.Undo(); } + + public void Paste() { baseTextBox.Paste(); } + + + #region Forwarding events to baseTextBox + + public event EventHandler AcceptsTabChanged + { + add + { + baseTextBox.AcceptsTabChanged += value; + } + remove + { + baseTextBox.AcceptsTabChanged -= value; + } + } + + public new event EventHandler AutoSizeChanged + { + add + { + baseTextBox.AutoSizeChanged += value; + } + remove + { + baseTextBox.AutoSizeChanged -= value; + } + } + + public new event EventHandler BackgroundImageChanged + { + add + { + baseTextBox.BackgroundImageChanged += value; + } + remove + { + baseTextBox.BackgroundImageChanged -= value; + } + } + + public new event EventHandler BackgroundImageLayoutChanged + { + add + { + baseTextBox.BackgroundImageLayoutChanged += value; + } + remove + { + baseTextBox.BackgroundImageLayoutChanged -= value; + } + } + + public new event EventHandler BindingContextChanged + { + add + { + baseTextBox.BindingContextChanged += value; + } + remove + { + baseTextBox.BindingContextChanged -= value; + } + } + + public event EventHandler BorderStyleChanged + { + add + { + baseTextBox.BorderStyleChanged += value; + } + remove + { + baseTextBox.BorderStyleChanged -= value; + } + } + + public new event EventHandler CausesValidationChanged + { + add + { + baseTextBox.CausesValidationChanged += value; + } + remove + { + baseTextBox.CausesValidationChanged -= value; + } + } + + public new event UICuesEventHandler ChangeUICues + { + add + { + baseTextBox.ChangeUICues += value; + } + remove + { + baseTextBox.ChangeUICues -= value; + } + } + + public new event EventHandler Click + { + add + { + baseTextBox.Click += value; + } + remove + { + baseTextBox.Click -= value; + } + } + + public new event EventHandler ClientSizeChanged + { + add + { + baseTextBox.ClientSizeChanged += value; + } + remove + { + baseTextBox.ClientSizeChanged -= value; + } + } + +#if NETFRAMEWORK + public new event EventHandler ContextMenuChanged + { + add + { + baseTextBox.ContextMenuChanged += value; + } + remove + { + baseTextBox.ContextMenuChanged -= value; + } + } +#endif + + public new event EventHandler ContextMenuStripChanged + { + add + { + baseTextBox.ContextMenuStripChanged += value; + } + remove + { + baseTextBox.ContextMenuStripChanged -= value; + } + } + + public new event ControlEventHandler ControlAdded + { + add + { + baseTextBox.ControlAdded += value; + } + remove + { + baseTextBox.ControlAdded -= value; + } + } + + public new event ControlEventHandler ControlRemoved + { + add + { + baseTextBox.ControlRemoved += value; + } + remove + { + baseTextBox.ControlRemoved -= value; + } + } + + public new event EventHandler CursorChanged + { + add + { + baseTextBox.CursorChanged += value; + } + remove + { + baseTextBox.CursorChanged -= value; + } + } + + public new event EventHandler Disposed + { + add + { + baseTextBox.Disposed += value; + } + remove + { + baseTextBox.Disposed -= value; + } + } + + public new event EventHandler DockChanged + { + add + { + baseTextBox.DockChanged += value; + } + remove + { + baseTextBox.DockChanged -= value; + } + } + + public new event EventHandler DoubleClick + { + add + { + baseTextBox.DoubleClick += value; + } + remove + { + baseTextBox.DoubleClick -= value; + } + } + + public new event DragEventHandler DragDrop + { + add + { + baseTextBox.DragDrop += value; + } + remove + { + baseTextBox.DragDrop -= value; + } + } + + public new event DragEventHandler DragEnter + { + add + { + baseTextBox.DragEnter += value; + } + remove + { + baseTextBox.DragEnter -= value; + } + } + + public new event EventHandler DragLeave + { + add + { + baseTextBox.DragLeave += value; + } + remove + { + baseTextBox.DragLeave -= value; + } + } + + public new event DragEventHandler DragOver + { + add + { + baseTextBox.DragOver += value; + } + remove + { + baseTextBox.DragOver -= value; + } + } + + public new event EventHandler EnabledChanged + { + add + { + baseTextBox.EnabledChanged += value; + } + remove + { + baseTextBox.EnabledChanged -= value; + } + } + + public new event EventHandler Enter + { + add + { + baseTextBox.Enter += value; + } + remove + { + baseTextBox.Enter -= value; + } + } + + public new event EventHandler FontChanged + { + add + { + baseTextBox.FontChanged += value; + } + remove + { + baseTextBox.FontChanged -= value; + } + } + + public new event EventHandler ForeColorChanged + { + add + { + baseTextBox.ForeColorChanged += value; + } + remove + { + baseTextBox.ForeColorChanged -= value; + } + } + + public new event GiveFeedbackEventHandler GiveFeedback + { + add + { + baseTextBox.GiveFeedback += value; + } + remove + { + baseTextBox.GiveFeedback -= value; + } + } + + public new event EventHandler GotFocus + { + add + { + baseTextBox.GotFocus += value; + } + remove + { + baseTextBox.GotFocus -= value; + } + } + + public new event EventHandler HandleCreated + { + add + { + baseTextBox.HandleCreated += value; + } + remove + { + baseTextBox.HandleCreated -= value; + } + } + + public new event EventHandler HandleDestroyed + { + add + { + baseTextBox.HandleDestroyed += value; + } + remove + { + baseTextBox.HandleDestroyed -= value; + } + } + + public new event HelpEventHandler HelpRequested + { + add + { + baseTextBox.HelpRequested += value; + } + remove + { + baseTextBox.HelpRequested -= value; + } + } + + public event EventHandler HideSelectionChanged + { + add + { + baseTextBox.HideSelectionChanged += value; + } + remove + { + baseTextBox.HideSelectionChanged -= value; + } + } + + public new event EventHandler ImeModeChanged + { + add + { + baseTextBox.ImeModeChanged += value; + } + remove + { + baseTextBox.ImeModeChanged -= value; + } + } + + public new event InvalidateEventHandler Invalidated + { + add + { + baseTextBox.Invalidated += value; + } + remove + { + baseTextBox.Invalidated -= value; + } + } + + public new event KeyEventHandler KeyDown + { + add + { + baseTextBox.KeyDown += value; + } + remove + { + baseTextBox.KeyDown -= value; + } + } + + public new event KeyPressEventHandler KeyPress + { + add + { + baseTextBox.KeyPress += value; + } + remove + { + baseTextBox.KeyPress -= value; + } + } + + public new event KeyEventHandler KeyUp + { + add + { + baseTextBox.KeyUp += value; + } + remove + { + baseTextBox.KeyUp -= value; + } + } + + public new event LayoutEventHandler Layout + { + add + { + baseTextBox.Layout += value; + } + remove + { + baseTextBox.Layout -= value; + } + } + + public new event EventHandler Leave + { + add + { + baseTextBox.Leave += value; + } + remove + { + baseTextBox.Leave -= value; + } + } + + public new event EventHandler LocationChanged + { + add + { + baseTextBox.LocationChanged += value; + } + remove + { + baseTextBox.LocationChanged -= value; + } + } + + public new event EventHandler LostFocus + { + add + { + baseTextBox.LostFocus += value; + } + remove + { + baseTextBox.LostFocus -= value; + } + } + + public new event EventHandler MarginChanged + { + add + { + baseTextBox.MarginChanged += value; + } + remove + { + baseTextBox.MarginChanged -= value; + } + } + + public event EventHandler ModifiedChanged + { + add + { + baseTextBox.ModifiedChanged += value; + } + remove + { + baseTextBox.ModifiedChanged -= value; + } + } + + public new event EventHandler MouseCaptureChanged + { + add + { + baseTextBox.MouseCaptureChanged += value; + } + remove + { + baseTextBox.MouseCaptureChanged -= value; + } + } + + public new event MouseEventHandler MouseClick + { + add + { + baseTextBox.MouseClick += value; + } + remove + { + baseTextBox.MouseClick -= value; + } + } + + public new event MouseEventHandler MouseDoubleClick + { + add + { + baseTextBox.MouseDoubleClick += value; + } + remove + { + baseTextBox.MouseDoubleClick -= value; + } + } + + public new event MouseEventHandler MouseDown + { + add + { + baseTextBox.MouseDown += value; + } + remove + { + baseTextBox.MouseDown -= value; + } + } + + public new event EventHandler MouseEnter + { + add + { + baseTextBox.MouseEnter += value; + } + remove + { + baseTextBox.MouseEnter -= value; + } + } + + public new event EventHandler MouseHover + { + add + { + baseTextBox.MouseHover += value; + } + remove + { + baseTextBox.MouseHover -= value; + } + } + + public new event EventHandler MouseLeave + { + add + { + baseTextBox.MouseLeave += value; + } + remove + { + baseTextBox.MouseLeave -= value; + } + } + + public new event MouseEventHandler MouseMove + { + add + { + baseTextBox.MouseMove += value; + } + remove + { + baseTextBox.MouseMove -= value; + } + } + + public new event MouseEventHandler MouseUp + { + add + { + baseTextBox.MouseUp += value; + } + remove + { + baseTextBox.MouseUp -= value; + } + } + + public new event MouseEventHandler MouseWheel + { + add + { + baseTextBox.MouseWheel += value; + } + remove + { + baseTextBox.MouseWheel -= value; + } + } + + public new event EventHandler Move + { + add + { + baseTextBox.Move += value; + } + remove + { + baseTextBox.Move -= value; + } + } + + public event EventHandler MultilineChanged + { + add + { + baseTextBox.MultilineChanged += value; + } + remove + { + baseTextBox.MultilineChanged -= value; + } + } + + public new event EventHandler PaddingChanged + { + add + { + baseTextBox.PaddingChanged += value; + } + remove + { + baseTextBox.PaddingChanged -= value; + } + } + + public new event PaintEventHandler Paint + { + add + { + baseTextBox.Paint += value; + } + remove + { + baseTextBox.Paint -= value; + } + } + + public new event EventHandler ParentChanged + { + add + { + baseTextBox.ParentChanged += value; + } + remove + { + baseTextBox.ParentChanged -= value; + } + } + + public new event PreviewKeyDownEventHandler PreviewKeyDown + { + add + { + baseTextBox.PreviewKeyDown += value; + } + remove + { + baseTextBox.PreviewKeyDown -= value; + } + } + + public new event QueryAccessibilityHelpEventHandler QueryAccessibilityHelp + { + add + { + baseTextBox.QueryAccessibilityHelp += value; + } + remove + { + baseTextBox.QueryAccessibilityHelp -= value; + } + } + + public new event QueryContinueDragEventHandler QueryContinueDrag + { + add + { + baseTextBox.QueryContinueDrag += value; + } + remove + { + baseTextBox.QueryContinueDrag -= value; + } + } + + public event EventHandler ReadOnlyChanged + { + add + { + baseTextBox.ReadOnlyChanged += value; + } + remove + { + baseTextBox.ReadOnlyChanged -= value; + } + } + + public new event EventHandler RegionChanged + { + add + { + baseTextBox.RegionChanged += value; + } + remove + { + baseTextBox.RegionChanged -= value; + } + } + + public new event EventHandler Resize + { + add + { + baseTextBox.Resize += value; + } + remove + { + baseTextBox.Resize -= value; + } + } + + public new event EventHandler RightToLeftChanged + { + add + { + baseTextBox.RightToLeftChanged += value; + } + remove + { + baseTextBox.RightToLeftChanged -= value; + } + } + + public new event EventHandler SizeChanged + { + add + { + baseTextBox.SizeChanged += value; + } + remove + { + baseTextBox.SizeChanged -= value; + } + } + + public new event EventHandler StyleChanged + { + add + { + baseTextBox.StyleChanged += value; + } + remove + { + baseTextBox.StyleChanged -= value; + } + } + + public new event EventHandler SystemColorsChanged + { + add + { + baseTextBox.SystemColorsChanged += value; + } + remove + { + baseTextBox.SystemColorsChanged -= value; + } + } + + public new event EventHandler TabIndexChanged + { + add + { + baseTextBox.TabIndexChanged += value; + } + remove + { + baseTextBox.TabIndexChanged -= value; + } + } + + public new event EventHandler TabStopChanged + { + add + { + baseTextBox.TabStopChanged += value; + } + remove + { + baseTextBox.TabStopChanged -= value; + } + } + + public event EventHandler TextAlignChanged + { + add + { + baseTextBox.TextAlignChanged += value; + } + remove + { + baseTextBox.TextAlignChanged -= value; + } + } + + public new event EventHandler TextChanged + { + add + { + baseTextBox.TextChanged += value; + } + remove + { + baseTextBox.TextChanged -= value; + } + } + + public new event EventHandler Validated + { + add + { + baseTextBox.Validated += value; + } + remove + { + baseTextBox.Validated -= value; + } + } + + public new event CancelEventHandler Validating + { + add + { + baseTextBox.Validating += value; + } + remove + { + baseTextBox.Validating -= value; + } + } + + public new event EventHandler VisibleChanged + { + add + { + baseTextBox.VisibleChanged += value; + } + remove + { + baseTextBox.VisibleChanged -= value; + } + } + # endregion + + //private readonly AnimationManager animationManager; + private readonly AnimationManager _animationManager; + + public bool isFocused = false; + private const int HINT_TEXT_SMALL_SIZE = 18; + private const int HINT_TEXT_SMALL_Y = 4; + private const int LINE_BOTTOM_PADDING = 3; + private const int TOP_PADDING = 10; + private const int BOTTOM_PADDING = 10; + private const int LEFT_PADDING = 16; + private const int RIGHT_PADDING = 12; + private int LINE_Y; + private bool hasHint; + private readonly int SB_LINEUP = 0; + private readonly int SB_LINEDOWN = 1; + private readonly uint WM_VSCROLL = 277; + private readonly IntPtr ptrLparam = new IntPtr(0); + + protected readonly BaseTextBox baseTextBox; + public MaterialMultiLineTextBox2() + { + AllowScroll = true; + // Material Properties + UseAccent = true; + MouseState = MouseState.OUT; + + SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.DoubleBuffer, true); + + // Animations + _animationManager = new AnimationManager + { + Increment = 0.06, + AnimationType = AnimationType.EaseInOut, + InterruptAnimation = false + }; + _animationManager.OnAnimationProgress += sender => Invalidate(); + + baseTextBox = new BaseTextBox + { + BorderStyle = BorderStyle.None, + Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), + ForeColor = SkinManager.TextHighEmphasisColor, + Multiline = true + }; + + Cursor = Cursors.IBeam; + Enabled = true; + ReadOnly = false; + ScrollBars = ScrollBars.None; + Size = new Size(250, 100); + + if (!Controls.Contains(baseTextBox) && !DesignMode) + { + Controls.Add(baseTextBox); + } + + baseTextBox.GotFocus += (sender, args) => + { + if (Enabled) + { + isFocused = true; + _animationManager.StartNewAnimation(AnimationDirection.In); + } + else + base.Focus(); + }; + baseTextBox.LostFocus += (sender, args) => + { + isFocused = false; + _animationManager.StartNewAnimation(AnimationDirection.Out); + }; + + baseTextBox.TextChanged += new EventHandler(Redraw); + baseTextBox.BackColorChanged += new EventHandler(Redraw); + + baseTextBox.TabStop = true; + this.TabStop = false; + + cms.Opening += ContextMenuStripOnOpening; + cms.OnItemClickStart += ContextMenuStripOnItemClickStart; + ContextMenuStrip = cms; + this.MouseWheel += OnMouseWheel; + } + + private void Redraw(object sencer, EventArgs e) + { + SuspendLayout(); + Invalidate(); + ResumeLayout(false); + } + + protected override void OnPaint(PaintEventArgs pevent) + { + var g = pevent.Graphics; + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + g.Clear(Parent.BackColor); + SolidBrush backBrush = new SolidBrush(DrawHelper.BlendColor(Parent.BackColor, SkinManager.BackgroundAlternativeColor, SkinManager.BackgroundAlternativeColor.A)); + + //backColor + g.FillRectangle( + !Enabled ? SkinManager.BackgroundDisabledBrush : // Disabled + isFocused ? SkinManager.BackgroundFocusBrush : // Focused + MouseState == MouseState.HOVER && (!ReadOnly || (ReadOnly && !AnimateReadOnly)) ? SkinManager.BackgroundHoverBrush : // Hover + backBrush, // Normal + ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, LINE_Y); + + baseTextBox.BackColor = !Enabled ? ColorHelper.RemoveAlpha(SkinManager.BackgroundDisabledColor, BackColor) : //Disabled + isFocused ? DrawHelper.BlendColor(BackColor, SkinManager.BackgroundFocusColor, SkinManager.BackgroundFocusColor.A) : //Focused + MouseState == MouseState.HOVER && (!ReadOnly || (ReadOnly && !AnimateReadOnly)) ? DrawHelper.BlendColor(BackColor, SkinManager.BackgroundHoverColor, SkinManager.BackgroundHoverColor.A) : // Hover + DrawHelper.BlendColor(BackColor, SkinManager.BackgroundAlternativeColor, SkinManager.BackgroundAlternativeColor.A); // Normal + + // bottom line base + g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, Width, 1); + + if (ReadOnly == false || (ReadOnly && AnimateReadOnly)) + { + if (!_animationManager.IsAnimating()) + { + // bottom line + if (isFocused) + { + //No animation + g.FillRectangle(isFocused ? UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush : SkinManager.DividersBrush, 0, LINE_Y, Width, isFocused ? 2 : 1); + } + } + else + { + // Animate - Focus got/lost + double animationProgress = _animationManager.GetProgress(); + + // Line Animation + int LineAnimationWidth = (int)(Width * animationProgress); + int LineAnimationX = (Width / 2) - (LineAnimationWidth / 2); + g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); + } + } + } + + + [DllImport("User32.dll", CharSet = CharSet.Auto, EntryPoint = "SendMessage")] + protected static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); + + protected void OnMouseWheel(object sender, MouseEventArgs e) + { + if (AllowScroll) + { + if (DesignMode) + return; + //Calculate number of notches mouse wheel moved + int v = e.Delta / 120; + //Down Movement + if (v < 0) + { + var ptrWparam = new IntPtr(SB_LINEDOWN); + SendMessage(baseTextBox.Handle, WM_VSCROLL, ptrWparam, ptrLparam); + } + //Up Movement + else if (v > 0) + { + var ptrWparam = new IntPtr(SB_LINEUP); + SendMessage(baseTextBox.Handle, WM_VSCROLL, ptrWparam, ptrLparam); + } + + baseTextBox?.Focus(); + base.OnMouseDown(e); + } + } + + protected override void OnMouseMove(MouseEventArgs e) + { + if (DesignMode) + return; + + base.OnMouseMove(e); + } + + protected override void OnMouseDown(MouseEventArgs e) + { + if (DesignMode) + return; + + baseTextBox?.Focus(); + base.OnMouseDown(e); + } + + protected override void OnMouseEnter(EventArgs e) + { + if (DesignMode) + return; + + base.OnMouseEnter(e); + MouseState = MouseState.HOVER; + Invalidate(); + } + + protected override void OnMouseLeave(EventArgs e) + { + if (DesignMode) + return; + + if (this.ClientRectangle.Contains(this.PointToClient(Control.MousePosition))) + return; + else + { + base.OnMouseLeave(e); + MouseState = MouseState.OUT; + Invalidate(); + } + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + baseTextBox.Location = new Point(LEFT_PADDING, TOP_PADDING); + baseTextBox.Width = Width - (LEFT_PADDING + RIGHT_PADDING); + baseTextBox.Height = Height - (TOP_PADDING + BOTTOM_PADDING); + + LINE_Y = Height - LINE_BOTTOM_PADDING; + + } + + protected override void OnCreateControl() + { + base.OnCreateControl(); + + // events + MouseState = MouseState.OUT; + } + + private void ContextMenuStripOnItemClickStart(object sender, ToolStripItemClickedEventArgs toolStripItemClickedEventArgs) + { + switch (toolStripItemClickedEventArgs.ClickedItem.Text) + { + case "Undo": + Undo(); + break; + case "Cut": + Cut(); + break; + case "Copy": + Copy(); + break; + case "Paste": + Paste(); + break; + case "Delete": + SelectedText = string.Empty; + break; + case "Select All": + SelectAll(); + break; + } + } + + private void ContextMenuStripOnOpening(object sender, CancelEventArgs cancelEventArgs) + { + var strip = sender as BaseTextBoxContextMenuStrip; + if (strip != null) + { + strip.undo.Enabled = baseTextBox.CanUndo && !ReadOnly; + strip.cut.Enabled = !string.IsNullOrEmpty(SelectedText) && !ReadOnly; + strip.copy.Enabled = !string.IsNullOrEmpty(SelectedText); + strip.paste.Enabled = Clipboard.ContainsText() && !ReadOnly; + strip.delete.Enabled = !string.IsNullOrEmpty(SelectedText) && !ReadOnly; + strip.selectAll.Enabled = !string.IsNullOrEmpty(Text); + } + } + + private void LeaveOnEnterKey_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyData == Keys.Enter && e.Control == false) + { + e.Handled = true; + e.SuppressKeyPress = true; + SendKeys.Send("{TAB}"); + } + } + } +} diff --git a/MaterialSkin/Controls/MaterialProgressBar.cs b/MaterialSkin/Controls/MaterialProgressBar.cs index 7b11e588..aeb913bc 100644 --- a/MaterialSkin/Controls/MaterialProgressBar.cs +++ b/MaterialSkin/Controls/MaterialProgressBar.cs @@ -1,6 +1,7 @@ namespace MaterialSkin.Controls { using System.ComponentModel; + using System.Drawing; using System.Windows.Forms; public class MaterialProgressBar : ProgressBar, IMaterialControl @@ -28,8 +29,11 @@ protected override void SetBoundsCore(int x, int y, int width, int height, Bound protected override void OnPaint(PaintEventArgs e) { var doneProgress = (int)(Width * ((double)Value / Maximum)); - e.Graphics.FillRectangle(SkinManager.ColorScheme.PrimaryBrush, 0, 0, doneProgress, Height); + e.Graphics.FillRectangle(Enabled ? + SkinManager.ColorScheme.PrimaryBrush : + new SolidBrush(DrawHelper.BlendColor(SkinManager.ColorScheme.PrimaryColor, SkinManager.SwitchOffDisabledThumbColor, 197)), + 0, 0, doneProgress, Height); e.Graphics.FillRectangle(SkinManager.BackgroundFocusBrush, doneProgress, 0, Width - doneProgress, Height); } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialRadioButton.cs b/MaterialSkin/Controls/MaterialRadioButton.cs index 9e49dbf7..e292bed8 100644 --- a/MaterialSkin/Controls/MaterialRadioButton.cs +++ b/MaterialSkin/Controls/MaterialRadioButton.cs @@ -114,7 +114,7 @@ public override Size GetPreferredSize(Size proposedSize) using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) { - strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1)); + strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft)); } int w = _boxOffset + TEXT_OFFSET + strSize.Width; @@ -130,9 +130,8 @@ protected override void OnPaint(PaintEventArgs pevent) // clear the control g.Clear(Parent.BackColor); - int RADIOBUTTON_CENTER_X = RightToLeft==RightToLeft.Yes? Width-(_boxOffset + RADIOBUTTON_SIZE_HALF) : _boxOffset + RADIOBUTTON_SIZE_HALF; - int RADIOBUTTON_CENTER_Y = _boxOffset + RADIOBUTTON_SIZE_HALF; - Point animationSource = new Point(RADIOBUTTON_CENTER_X, RADIOBUTTON_CENTER_Y); + int RADIOBUTTON_CENTER = _boxOffset + RADIOBUTTON_SIZE_HALF; + Point animationSource = new Point(RADIOBUTTON_CENTER, RADIOBUTTON_CENTER); double animationProgress = _checkAM.GetProgress(); @@ -175,16 +174,14 @@ protected override void OnPaint(PaintEventArgs pevent) // draw radiobutton circle using (Pen pen = new Pen(DrawHelper.BlendColor(Parent.BackColor, Enabled ? SkinManager.CheckboxOffColor : SkinManager.CheckBoxOffDisabledColor, backgroundAlpha), 2)) { - var x = RightToLeft == RightToLeft.Yes ? Width- RADIOBUTTON_SIZE - _boxOffset : _boxOffset; - g.DrawEllipse(pen, new Rectangle(x, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); + g.DrawEllipse(pen, new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); } if (Enabled) { using (Pen pen = new Pen(RadioColor, 2)) { - var x = RightToLeft == RightToLeft.Yes ? Width - RADIOBUTTON_SIZE - _boxOffset : _boxOffset; - g.DrawEllipse(pen, new Rectangle(x, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); + g.DrawEllipse(pen, new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); } } @@ -192,17 +189,15 @@ protected override void OnPaint(PaintEventArgs pevent) { using (SolidBrush brush = new SolidBrush(RadioColor)) { - g.FillEllipse(brush, new RectangleF(RADIOBUTTON_CENTER_X - animationSizeHalf, RADIOBUTTON_CENTER_Y - animationSizeHalf, animationSize, animationSize)); + g.FillEllipse(brush, new RectangleF(RADIOBUTTON_CENTER - animationSizeHalf, RADIOBUTTON_CENTER - animationSizeHalf, animationSize, animationSize)); } } // Text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { - var x = RightToLeft == RightToLeft.Yes ? 0 : _boxOffset + TEXT_OFFSET; - var w = RightToLeft == RightToLeft.Yes ? Width-(_boxOffset + TEXT_OFFSET) : Width; - Rectangle textLocation = new Rectangle(x, 0, Width, Height); - NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1), + Rectangle textLocation = new Rectangle(_boxOffset + TEXT_OFFSET, 0, Width, Height); + NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textLocation.Location, textLocation.Size, diff --git a/MaterialSkin/Controls/MaterialScrollBar.cs b/MaterialSkin/Controls/MaterialScrollBar.cs new file mode 100644 index 00000000..cc30a82b --- /dev/null +++ b/MaterialSkin/Controls/MaterialScrollBar.cs @@ -0,0 +1,1025 @@ + +namespace MaterialSkin.Controls +{ + + using System; + using System.ComponentModel; + using System.Diagnostics; + using System.Drawing; + using System.Security; + using System.Windows.Forms; + using System.Runtime.InteropServices; + + public enum MaterialScrollOrientation + { + Horizontal, + Vertical + } + + [DefaultEvent("Scroll")] + [DefaultProperty("Value")] + public class MaterialScrollBar : Control, IMaterialControl + { + + [Browsable(false)] + public int Depth { get; set; } + [Browsable(false)] + public MaterialSkinManager SkinManager { get { return MaterialSkinManager.Instance; } } + [Browsable(false)] + public MouseState MouseState { get; set; } + + private bool useAccentColor; + + [Category("Material Skin"), DefaultValue(false), DisplayName("Use Accent Color")] + public bool UseAccentColor + { + get { return useAccentColor; } + set { useAccentColor = value; Invalidate(); } + } + + [DllImport("user32.dll")] + public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + + internal const int SCROLLBAR_DEFAULT_SIZE = 10; + + #region Events + + public event ScrollEventHandler Scroll; + + private void OnScroll(ScrollEventType type, int oldValue, int newValue, ScrollOrientation orientation) + { + if (oldValue != newValue) + { + if (ValueChanged != null) + { + ValueChanged(this, curValue); + } + } + + if (Scroll == null) + { + return; + } + + if (orientation == ScrollOrientation.HorizontalScroll) + { + if (type != ScrollEventType.EndScroll && isFirstScrollEventHorizontal) + { + type = ScrollEventType.First; + } + else if (!isFirstScrollEventHorizontal && type == ScrollEventType.EndScroll) + { + isFirstScrollEventHorizontal = true; + } + } + else + { + if (type != ScrollEventType.EndScroll && isFirstScrollEventVertical) + { + type = ScrollEventType.First; + } + else if (!isFirstScrollEventHorizontal && type == ScrollEventType.EndScroll) + { + isFirstScrollEventVertical = true; + } + } + + Scroll(this, new ScrollEventArgs(type, oldValue, newValue, orientation)); + } + + #endregion + + #region Properties + + private bool isFirstScrollEventVertical = true; + private bool isFirstScrollEventHorizontal = true; + + private bool inUpdate; + + private Rectangle clickedBarRectangle; + private Rectangle thumbRectangle; + + private bool topBarClicked; + private bool bottomBarClicked; + private bool thumbClicked; + + private int thumbWidth = 6; + private int thumbHeight; + + private int thumbBottomLimitBottom; + private int thumbBottomLimitTop; + private int thumbTopLimit; + private int thumbPosition; + + public const int WM_SETREDRAW = 0xb; + + private int trackPosition; + + private readonly Timer progressTimer = new Timer(); + + private int mouseWheelBarPartitions = 10; + [DefaultValue(10)] + public int MouseWheelBarPartitions + { + get { return mouseWheelBarPartitions; } + set + { + if (value > 0) + { + mouseWheelBarPartitions = value; + } + else + { + throw new ArgumentOutOfRangeException("value", "MouseWheelBarPartitions has to be greather than zero"); + } + } + } + + private bool isHovered; + //private bool isPressed; + + private bool useBarColor = false; + [DefaultValue(false)] + public bool UseBarColor + { + get { return useBarColor; } + set { useBarColor = value; } + } + + [DefaultValue(SCROLLBAR_DEFAULT_SIZE)] + public int ScrollbarSize + { + get { return Orientation == MaterialScrollOrientation.Vertical ? Width : Height; } + set + { + if (Orientation == MaterialScrollOrientation.Vertical) + Width = value; + else + Height = value; + } + } + + private bool highlightOnWheel = false; + [DefaultValue(false)] + public bool HighlightOnWheel + { + get { return highlightOnWheel; } + set { highlightOnWheel = value; } + } + + private MaterialScrollOrientation MaterialOrientation = MaterialScrollOrientation.Vertical; + private ScrollOrientation scrollOrientation = ScrollOrientation.VerticalScroll; + + public MaterialScrollOrientation Orientation + { + get { return MaterialOrientation; } + set + { + if (value == MaterialOrientation) return; + MaterialOrientation = value; + scrollOrientation = value == MaterialScrollOrientation.Vertical ? ScrollOrientation.VerticalScroll : ScrollOrientation.HorizontalScroll; + Size = new Size(Height, Width); + SetupScrollBar(); + } + } + + private int minimum = 0; + [DefaultValue(0)] + public int Minimum + { + get { return minimum; } + set + { + if (minimum == value || value < 0 || value >= maximum) + { + return; + } + + minimum = value; + if (curValue < value) + { + curValue = value; + } + + if (largeChange > (maximum - minimum)) + { + largeChange = maximum - minimum; + } + + SetupScrollBar(); + + if (curValue < value) + { + dontUpdateColor = true; + Value = value; + } + else + { + ChangeThumbPosition(GetThumbPosition()); + Refresh(); + } + } + } + + private int maximum = 100; + [DefaultValue(100)] + public int Maximum + { + get { return maximum; } + set + { + if (value == maximum || value < 1 || value <= minimum) + { + return; + } + + maximum = value; + if (largeChange > (maximum - minimum)) + { + largeChange = maximum - minimum; + } + + SetupScrollBar(); + + if (curValue > value) + { + dontUpdateColor = true; + Value = maximum; + } + else + { + ChangeThumbPosition(GetThumbPosition()); + Refresh(); + } + } + } + + private int smallChange = 1; + [DefaultValue(1)] + public int SmallChange + { + get { return smallChange; } + set + { + if (value == smallChange || value < 1 || value >= largeChange) + { + return; + } + + smallChange = value; + SetupScrollBar(); + } + } + + private int largeChange = 10; + [DefaultValue(10)] + public int LargeChange + { + get { return largeChange; } + set + { + if (value == largeChange || value < smallChange || value < 2) + { + return; + } + + if (value > (maximum - minimum)) + { + largeChange = maximum - minimum; + } + else + { + largeChange = value; + } + + SetupScrollBar(); + } + } + + #region ValueChangeEvent + // Declare a delegate + public delegate void ScrollValueChangedDelegate(object sender, int newValue); + + public event ScrollValueChangedDelegate ValueChanged; + #endregion + + private bool dontUpdateColor = false; + + private int curValue = 0; + [DefaultValue(0)] + [Browsable(false)] + public int Value + { + get { return curValue; } + + set + { + if (curValue == value || value < minimum || value > maximum) + { + return; + } + + curValue = value; + + ChangeThumbPosition(GetThumbPosition()); + + OnScroll(ScrollEventType.ThumbPosition, -1, value, scrollOrientation); + + if (!dontUpdateColor && highlightOnWheel) + { + if (!isHovered) + isHovered = true; + + if (autoHoverTimer == null) + { + autoHoverTimer = new Timer(); + autoHoverTimer.Interval = 1000; + autoHoverTimer.Tick += new EventHandler(autoHoverTimer_Tick); + autoHoverTimer.Start(); + } + else + { + autoHoverTimer.Stop(); + autoHoverTimer.Start(); + } + } + else + { + dontUpdateColor = false; + } + + Refresh(); + } + } + + private void autoHoverTimer_Tick(object sender, EventArgs e) + { + isHovered = false; + Invalidate(); + autoHoverTimer.Stop(); + } + + private Timer autoHoverTimer = null; + + #endregion + + public MaterialScrollBar() + { + SetStyle(ControlStyles.OptimizedDoubleBuffer | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.Selectable | +// ControlStyles.AllPaintingInWmPaint | + ControlStyles.SupportsTransparentBackColor | + ControlStyles.UserPaint, true); + + Width = SCROLLBAR_DEFAULT_SIZE; + Height = 200; + + UseAccentColor = false; + + SetupScrollBar(); + + progressTimer.Interval = 20; + progressTimer.Tick += ProgressTimerTick; + } + + public MaterialScrollBar(MaterialScrollOrientation orientation) + : this() + { + Orientation = orientation; + } + + public MaterialScrollBar(MaterialScrollOrientation orientation, int width) + : this(orientation) + { + Width = width; + } + + public bool HitTest(Point point) + { + return thumbRectangle.Contains(point); + } + + #region Update Methods + + [SecuritySafeCritical] + public void BeginUpdate() + { + SendMessage(Handle, WM_SETREDRAW, 0, 0); + inUpdate = true; + } + + [SecuritySafeCritical] + public void EndUpdate() + { + SendMessage(Handle, WM_SETREDRAW, 1, 0); + inUpdate = false; + SetupScrollBar(); + Refresh(); + } + + #endregion + + #region Paint Methods + + + protected override void OnPaintBackground(PaintEventArgs e) + { + try + { + e.Graphics.Clear(Parent.BackColor); + } + catch (Exception ex) + { + Trace.WriteLine(ex); + Invalidate(); + } + } + + protected override void OnPaint(PaintEventArgs e) + { + DrawScrollBar(e.Graphics, MaterialSkinManager.Instance.CardsColor, SkinManager.SwitchOffTrackColor, useAccentColor ? MaterialSkinManager.Instance.ColorScheme.AccentColor : MaterialSkinManager.Instance.ColorScheme.PrimaryColor); + } + + private void DrawScrollBar(Graphics g, Color backColor, Color thumbColor, Color barColor) + { + if (useBarColor) + { + using (SolidBrush b = new SolidBrush(barColor)) + { + g.FillRectangle(b, ClientRectangle); + } + } + + using (SolidBrush b = new SolidBrush(backColor)) + { + Rectangle thumbRect = new Rectangle(thumbRectangle.X - 1, thumbRectangle.Y - 1, thumbRectangle.Width + 2, thumbRectangle.Height + 2); + g.FillRectangle(b, thumbRect); + } + + using (SolidBrush b = new SolidBrush(isHovered ? barColor : thumbColor)) + { + g.FillRectangle(b, thumbRectangle); + } + } + + #endregion + + #region Focus Methods + + protected override void OnGotFocus(EventArgs e) + { + Invalidate(); + + base.OnGotFocus(e); + } + + protected override void OnLostFocus(EventArgs e) + { + isHovered = false; + //isPressed = false; + Invalidate(); + + base.OnLostFocus(e); + } + + protected override void OnEnter(EventArgs e) + { + Invalidate(); + + base.OnEnter(e); + } + + protected override void OnLeave(EventArgs e) + { + isHovered = false; + //isPressed = false; + Invalidate(); + + base.OnLeave(e); + } + + #endregion + + #region Mouse Methods + + protected override void OnMouseWheel(MouseEventArgs e) + { + base.OnMouseWheel(e); + + int v = e.Delta / 120 * (maximum - minimum) / mouseWheelBarPartitions; + + if (Orientation == MaterialScrollOrientation.Vertical) + { + Value -= v; + } + else + { + Value += v; + } + } + + protected override void OnMouseDown(MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + //isPressed = true; + Invalidate(); + } + + base.OnMouseDown(e); + + Focus(); + + if (e.Button == MouseButtons.Left) + { + + Point mouseLocation = e.Location; + + if (thumbRectangle.Contains(mouseLocation)) + { + thumbClicked = true; + thumbPosition = MaterialOrientation == MaterialScrollOrientation.Vertical ? mouseLocation.Y - thumbRectangle.Y : mouseLocation.X - thumbRectangle.X; + + Invalidate(thumbRectangle); + } + else + { + trackPosition = MaterialOrientation == MaterialScrollOrientation.Vertical ? mouseLocation.Y : mouseLocation.X; + + if (trackPosition < (MaterialOrientation == MaterialScrollOrientation.Vertical ? thumbRectangle.Y : thumbRectangle.X)) + { + topBarClicked = true; + } + else + { + bottomBarClicked = true; + } + + ProgressThumb(true); + } + } + else if (e.Button == MouseButtons.Right) + { + trackPosition = MaterialOrientation == MaterialScrollOrientation.Vertical ? e.Y : e.X; + } + } + + protected override void OnMouseUp(MouseEventArgs e) + { + //isPressed = false; + + base.OnMouseUp(e); + + if (e.Button == MouseButtons.Left) + { + if (thumbClicked) + { + thumbClicked = false; + OnScroll(ScrollEventType.EndScroll, -1, curValue, scrollOrientation); + } + else if (topBarClicked) + { + topBarClicked = false; + StopTimer(); + } + else if (bottomBarClicked) + { + bottomBarClicked = false; + StopTimer(); + } + + Invalidate(); + } + } + + protected override void OnMouseEnter(EventArgs e) + { + isHovered = true; + Invalidate(); + + base.OnMouseEnter(e); + } + + protected override void OnMouseLeave(EventArgs e) + { + isHovered = false; + Invalidate(); + + base.OnMouseLeave(e); + + ResetScrollStatus(); + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + if (e.Button == MouseButtons.Left) + { + if (thumbClicked) + { + int oldScrollValue = curValue; + + int pos = MaterialOrientation == MaterialScrollOrientation.Vertical ? e.Location.Y : e.Location.X; + int thumbSize = MaterialOrientation == MaterialScrollOrientation.Vertical ? (pos / Height) / thumbHeight : (pos / Width) / thumbWidth; + + if (pos <= (thumbTopLimit + thumbPosition)) + { + ChangeThumbPosition(thumbTopLimit); + curValue = minimum; + Invalidate(); + } + else if (pos >= (thumbBottomLimitTop + thumbPosition)) + { + ChangeThumbPosition(thumbBottomLimitTop); + curValue = maximum; + Invalidate(); + } + else + { + ChangeThumbPosition(pos - thumbPosition); + + int pixelRange, thumbPos; + + if (Orientation == MaterialScrollOrientation.Vertical) + { + pixelRange = Height - thumbSize; + thumbPos = thumbRectangle.Y; + } + else + { + pixelRange = Width - thumbSize; + thumbPos = thumbRectangle.X; + } + + float perc = 0f; + + if (pixelRange != 0) + { + perc = (thumbPos) / (float)pixelRange; + } + + curValue = Convert.ToInt32((perc * (maximum - minimum)) + minimum); + } + + if (oldScrollValue != curValue) + { + OnScroll(ScrollEventType.ThumbTrack, oldScrollValue, curValue, scrollOrientation); + Refresh(); + } + } + } + else if (!ClientRectangle.Contains(e.Location)) + { + ResetScrollStatus(); + } + else if (e.Button == MouseButtons.None) + { + if (thumbRectangle.Contains(e.Location)) + { + Invalidate(thumbRectangle); + } + else if (ClientRectangle.Contains(e.Location)) + { + Invalidate(); + } + } + } + + #endregion + + #region Keyboard Methods + + protected override void OnKeyDown(KeyEventArgs e) + { + isHovered = true; + //isPressed = true; + Invalidate(); + + base.OnKeyDown(e); + } + + protected override void OnKeyUp(KeyEventArgs e) + { + isHovered = false; + //isPressed = false; + Invalidate(); + + base.OnKeyUp(e); + } + + #endregion + + #region Management Methods + + protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified) + { + base.SetBoundsCore(x, y, width, height, specified); + + if (DesignMode) + { + SetupScrollBar(); + } + } + + protected override void OnSizeChanged(EventArgs e) + { + base.OnSizeChanged(e); + SetupScrollBar(); + } + + protected override bool ProcessDialogKey(Keys keyData) + { + Keys keyUp = Keys.Up; + Keys keyDown = Keys.Down; + + if (Orientation == MaterialScrollOrientation.Horizontal) + { + keyUp = Keys.Left; + keyDown = Keys.Right; + } + + if (keyData == keyUp) + { + Value -= smallChange; + + return true; + } + + if (keyData == keyDown) + { + Value += smallChange; + + return true; + } + + if (keyData == Keys.PageUp) + { + Value = GetValue(false, true); + + return true; + } + + if (keyData == Keys.PageDown) + { + if (curValue + largeChange > maximum) + { + Value = maximum; + } + else + { + Value += largeChange; + } + + return true; + } + + if (keyData == Keys.Home) + { + Value = minimum; + + return true; + } + + if (keyData == Keys.End) + { + Value = maximum; + + return true; + } + + return base.ProcessDialogKey(keyData); + } + + protected override void OnEnabledChanged(EventArgs e) + { + base.OnEnabledChanged(e); + Invalidate(); + } + + private void SetupScrollBar() + { + if (inUpdate) return; + + if (Orientation == MaterialScrollOrientation.Vertical) + { + thumbWidth = Width > 0 ? Width : 10; + thumbHeight = GetThumbSize(); + + clickedBarRectangle = ClientRectangle; + clickedBarRectangle.Inflate(-1, -1); + + thumbRectangle = new Rectangle(ClientRectangle.X, ClientRectangle.Y, thumbWidth, thumbHeight); + + thumbPosition = thumbRectangle.Height / 2; + thumbBottomLimitBottom = ClientRectangle.Bottom; + thumbBottomLimitTop = thumbBottomLimitBottom - thumbRectangle.Height; + thumbTopLimit = ClientRectangle.Y; + } + else + { + thumbHeight = Height > 0 ? Height : 10; + thumbWidth = GetThumbSize(); + + clickedBarRectangle = ClientRectangle; + clickedBarRectangle.Inflate(-1, -1); + + thumbRectangle = new Rectangle(ClientRectangle.X, ClientRectangle.Y, thumbWidth, thumbHeight); + + thumbPosition = thumbRectangle.Width / 2; + thumbBottomLimitBottom = ClientRectangle.Right; + thumbBottomLimitTop = thumbBottomLimitBottom - thumbRectangle.Width; + thumbTopLimit = ClientRectangle.X; + } + + ChangeThumbPosition(GetThumbPosition()); + + Refresh(); + } + + private void ResetScrollStatus() + { + bottomBarClicked = topBarClicked = false; + + StopTimer(); + Refresh(); + } + + private void ProgressTimerTick(object sender, EventArgs e) + { + ProgressThumb(true); + } + + private int GetValue(bool smallIncrement, bool up) + { + int newValue; + + if (up) + { + newValue = curValue - (smallIncrement ? smallChange : largeChange); + + if (newValue < minimum) + { + newValue = minimum; + } + } + else + { + newValue = curValue + (smallIncrement ? smallChange : largeChange); + + if (newValue > maximum) + { + newValue = maximum; + } + } + + return newValue; + } + + private int GetThumbPosition() + { + int pixelRange; + + if (thumbHeight == 0 || thumbWidth == 0) + { + return 0; + } + + int thumbSize = MaterialOrientation == MaterialScrollOrientation.Vertical ? (thumbPosition / Height) / thumbHeight : (thumbPosition / Width) / thumbWidth; + + if (Orientation == MaterialScrollOrientation.Vertical) + { + pixelRange = Height - thumbSize; + } + else + { + pixelRange = Width - thumbSize; + } + + int realRange = maximum - minimum; + float perc = 0f; + + if (realRange != 0) + { + perc = (curValue - (float)minimum) / realRange; + } + + return Math.Max(thumbTopLimit, Math.Min(thumbBottomLimitTop, Convert.ToInt32((perc * pixelRange)))); + } + + private int GetThumbSize() + { + int trackSize = + MaterialOrientation == MaterialScrollOrientation.Vertical ? + Height : Width; + + if (maximum == 0 || largeChange == 0) + { + return trackSize; + } + + float newThumbSize = (largeChange * (float)trackSize) / maximum; + + return Convert.ToInt32(Math.Min(trackSize, Math.Max(newThumbSize, 10f))); + } + + private void EnableTimer() + { + if (!progressTimer.Enabled) + { + progressTimer.Interval = 600; + progressTimer.Start(); + } + else + { + progressTimer.Interval = 10; + } + } + + private void StopTimer() + { + progressTimer.Stop(); + } + + private void ChangeThumbPosition(int position) + { + if (Orientation == MaterialScrollOrientation.Vertical) + { + thumbRectangle.Y = position; + } + else + { + thumbRectangle.X = position; + } + } + + private void ProgressThumb(bool enableTimer) + { + int scrollOldValue = curValue; + ScrollEventType type = ScrollEventType.First; + int thumbSize, thumbPos; + + if (Orientation == MaterialScrollOrientation.Vertical) + { + thumbPos = thumbRectangle.Y; + thumbSize = thumbRectangle.Height; + } + else + { + thumbPos = thumbRectangle.X; + thumbSize = thumbRectangle.Width; + } + + if ((bottomBarClicked && (thumbPos + thumbSize) < trackPosition)) + { + type = ScrollEventType.LargeIncrement; + + curValue = GetValue(false, false); + + if (curValue == maximum) + { + ChangeThumbPosition(thumbBottomLimitTop); + + type = ScrollEventType.Last; + } + else + { + ChangeThumbPosition(Math.Min(thumbBottomLimitTop, GetThumbPosition())); + } + } + else if ((topBarClicked && thumbPos > trackPosition)) + { + type = ScrollEventType.LargeDecrement; + + curValue = GetValue(false, true); + + if (curValue == minimum) + { + ChangeThumbPosition(thumbTopLimit); + + type = ScrollEventType.First; + } + else + { + ChangeThumbPosition(Math.Max(thumbTopLimit, GetThumbPosition())); + } + } + + if (scrollOldValue != curValue) + { + OnScroll(type, scrollOldValue, curValue, scrollOrientation); + + Invalidate(); + + if (enableTimer) + { + EnableTimer(); + } + } + } + + #endregion + } +} diff --git a/MaterialSkin/Controls/MaterialSlider.cs b/MaterialSkin/Controls/MaterialSlider.cs new file mode 100644 index 00000000..9c0e0950 --- /dev/null +++ b/MaterialSkin/Controls/MaterialSlider.cs @@ -0,0 +1,469 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Windows.Forms; + +namespace MaterialSkin.Controls +{ + public class MaterialSlider : Control, IMaterialControl + { + #region "Private members" + private bool _mousePressed; + private int _mouseX; + //private int _indicatorSize; + private bool _hovered = false; + private Rectangle _indicatorRectangle; + private Rectangle _indicatorRectangleNormal; + private Rectangle _indicatorRectanglePressed; + private Rectangle _textRectangle; + private Rectangle _valueRectangle; + private Rectangle _sliderRectangle; + + private const int _activeTrack = 6; + private const int _inactiveTrack = 4; + private const int _thumbRadius = 20; + private const int _thumbRadiusHoverPressed = 40; + + + #endregion + + #region "Public Properties" + [Browsable(false)] + public int Depth { get; set; } + [Browsable(false)] + public MaterialSkinManager SkinManager { get { return MaterialSkinManager.Instance; } } + [Browsable(false)] + public MouseState MouseState { get; set; } + + private int _value; + [DefaultValue(50)] + [Category("Material Skin")] + [Description("Define control value")] + public int Value + { + get { return _value; } + set + { + if (value < _rangeMin) + _value = _rangeMin; + else if (value > _rangeMax) + _value = _rangeMax; + else + _value = value; + //_mouseX = _sliderRectangle.X + ((int)((double)_value / (double)(RangeMax - RangeMin) * (double)(_sliderRectangle.Width) - _thumbRadius / 2)); + _mouseX = _sliderRectangle.X + ((int)((double)_value / (double)(RangeMax - RangeMin) * (double)(_sliderRectangle.Width - _thumbRadius))); + RecalcutlateIndicator(); + } + } + + private int _valueMax; + [DefaultValue(0)] + [Category("Material Skin")] + [Description("Define position indicator maximum value. Ignored when set to 0.")] + public int ValueMax + { + get { return _valueMax; } + set + { + if (value > _rangeMax) + _valueMax = _rangeMax; + else if (value < _rangeMin) + _valueMax = _rangeMin; + else + _valueMax = value; + } + } + + private int _rangeMax; + [DefaultValue(100)] + [Category("Material Skin")] + [Description("Define control range maximum value")] + public int RangeMax + { + get { return _rangeMax; } + set + { + _rangeMax = value; + //_mouseX = _sliderRectangle.X + ((int)((double)_value / (double)(RangeMax - RangeMin) * (double)(_sliderRectangle.Width) - _thumbRadius / 2)); + _mouseX = _sliderRectangle.X + ((int)((double)_value / (double)(RangeMax - RangeMin) * (double)(_sliderRectangle.Width - _thumbRadius))); + RecalcutlateIndicator(); + } + } + + private int _rangeMin; + [DefaultValue(0)] + [Category("Material Skin")] + [Description("Define control range minimum value")] + public int RangeMin + { + get { return _rangeMin; } + set + { + _rangeMin = value; + //_mouseX = _sliderRectangle.X + ((int)((double)_value / (double)(RangeMax - RangeMin) * (double)(_sliderRectangle.Width) - _thumbRadius / 2)); + _mouseX = _sliderRectangle.X + ((int)((double)_value / (double)(RangeMax - RangeMin) * (double)(_sliderRectangle.Width - _thumbRadius))); + RecalcutlateIndicator(); + } + } + + private string _text; + [DefaultValue("MyData")] + [Category("Material Skin")] + [Description("Set control text")] + public override string Text + { + get { return _text; } + set + { + _text = value; + UpdateRects(); + Invalidate(); + } + } + + private string _valueSuffix; + [DefaultValue("")] + [Category("Material Skin")] + [Description("Set control value suffix text")] + public string ValueSuffix + { + get { return _valueSuffix; } + set + { + _valueSuffix = value; + UpdateRects(); + } + } + + private Boolean _showText; + [DefaultValue(true)] + [Category("Material Skin"), DisplayName("Show text")] + [Description("Show text")] + public bool ShowText + { + get { return _showText; } + set { _showText = value; UpdateRects(); Invalidate(); } + } + + private Boolean _showValue; + [DefaultValue(true)] + [Category("Material Skin"), DisplayName("Show value")] + [Description("Show value")] + public bool ShowValue + { + get { return _showValue; } + set { _showValue = value; UpdateRects(); Invalidate(); } + } + + private bool _useAccentColor; + [Category("Material Skin"), DefaultValue(false), DisplayName("Use Accent Color")] + public bool UseAccentColor + { + get { return _useAccentColor; } + set { _useAccentColor = value; Invalidate(); } + } + + private MaterialSkinManager.fontType _fontType = MaterialSkinManager.fontType.Body1; + + [Category("Material Skin"), + DefaultValue(typeof(MaterialSkinManager.fontType), "Body1")] + public MaterialSkinManager.fontType FontType + { + get + { + return _fontType; + } + set + { + _fontType = value; + Font = SkinManager.getFontByType(_fontType, RightToLeft); + Refresh(); + } + } + + + #endregion + + #region "Events" + + [Category("Behavior")] + [Description("Occurs when value change.")] + public delegate void ValueChanged(object sender, int newValue); + public event ValueChanged onValueChanged; + + #endregion + + public MaterialSlider() + { + SetStyle(ControlStyles.Selectable, true); + ForeColor = SkinManager.TextHighEmphasisColor; // Color.Black; + RangeMax = 100; + RangeMin = 0; + Size = new Size(250, _thumbRadiusHoverPressed); + Text = "My Data"; + Value = 50; + ValueSuffix = ""; + ShowText = true; + ShowValue = true; + UseAccentColor = false; + + UpdateRects(); + + //EnabledChanged += MaterialSlider_EnabledChanged; + + DoubleBuffered = true; + + } + + //protected override void OnCreateControl() + //{ + // base.OnCreateControl(); + //} + + protected override void OnSizeChanged(EventArgs e) + { + base.OnSizeChanged(e); + Height = _thumbRadiusHoverPressed; + UpdateRects(); + } + + protected override void OnGotFocus(EventArgs e) + { + base.OnGotFocus(e); + _hovered = true; + Invalidate(); + } + + protected override void OnLostFocus(EventArgs e) + { + base.OnLostFocus(e); + _hovered = false; + Invalidate(); + } + + protected override void OnMouseDown(MouseEventArgs e) + { + base.OnMouseDown(e); + if (e.Button == System.Windows.Forms.MouseButtons.Left && e.Y > _indicatorRectanglePressed.Top && e.Y < _indicatorRectanglePressed.Bottom) + { + _mousePressed = true; + UpdateValue(e); + } + } + + protected override void OnMouseWheel(MouseEventArgs e) + { + base.OnMouseWheel(e); + if (_valueMax != 0 && (Value + e.Delta / -40) > _valueMax) + Value = _valueMax; + else + Value += e.Delta/-40; + onValueChanged?.Invoke(this, _value); + } + + protected override void OnMouseEnter(EventArgs e) + { + base.OnMouseEnter(e); + _hovered = true; + if (!this.Focused) this.Focus(); + Invalidate(); + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + _hovered = false; + if (this.Focused) this.Parent.Focus(); + Invalidate(); + } + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + _mousePressed = false; + Invalidate(); + } + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + if (_mousePressed) + { + UpdateValue(e); + } + } + + private void UpdateValue(MouseEventArgs e) + { + int v = 0; + if (e.X >= _sliderRectangle.X + (_thumbRadius / 2) && e.X <= _sliderRectangle.Right - _thumbRadius / 2) + { + _mouseX = e.X - _thumbRadius / 2; + double ValuePerPx = ((double)(RangeMax - RangeMin)) / (_sliderRectangle.Width - _thumbRadius); + v = (int)(ValuePerPx * (_mouseX - _sliderRectangle.X)); + //if (_valueMax!=0 && v > _valueMax) v = _valueMax; + } + else if (e.X < _sliderRectangle.X)// + (_thumbRadius / 2)) + { + _mouseX = _sliderRectangle.X ; + v = _rangeMin; + } + else if (e.X > _sliderRectangle.Right - _thumbRadius)// / 2) + { + _mouseX = _sliderRectangle.Right - _thumbRadius; + v = _rangeMax; + } + + if (_valueMax != 0 && v > _valueMax) + { + Value = _valueMax; + } + else + { + if (v != _value) + { + _value = v; + onValueChanged?.Invoke(this, _value); + } + RecalcutlateIndicator(); + } + } + + private void UpdateRects() + { + Size textSize; + Size valueSize; + using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) + { + textSize = NativeText.MeasureLogString(_showText ? Text : "", SkinManager.getLogFontByType(_fontType, RightToLeft)); + valueSize = NativeText.MeasureLogString(_showValue ? RangeMax.ToString() + _valueSuffix : "" , SkinManager.getLogFontByType(_fontType, RightToLeft)); + } + _valueRectangle = new Rectangle(Width - valueSize.Width - _thumbRadiusHoverPressed / 4, 0, valueSize.Width + _thumbRadiusHoverPressed / 4, Height); + _textRectangle = new Rectangle(0, 0, textSize.Width + _thumbRadiusHoverPressed/4, Height); + _sliderRectangle = new Rectangle(_textRectangle.Right , 0, _valueRectangle.Left - _textRectangle.Right , _thumbRadius); + _mouseX = _sliderRectangle.X + ((int)((double)_value / (double)(_rangeMax - _rangeMin) * (double)(_sliderRectangle.Width) - _thumbRadius / 2)); + RecalcutlateIndicator(); + } + + private void RecalcutlateIndicator() + { + _indicatorRectangle = new Rectangle(_mouseX, (Height - _thumbRadius) /2, _thumbRadius, _thumbRadius); + _indicatorRectangleNormal = new Rectangle(_indicatorRectangle.X, Height/2 - _thumbRadius/2, _thumbRadius, _thumbRadius); + _indicatorRectanglePressed = new Rectangle(_indicatorRectangle.X + _thumbRadius/2 - _thumbRadiusHoverPressed/2, Height / 2 - _thumbRadiusHoverPressed/2, _thumbRadiusHoverPressed, _thumbRadiusHoverPressed); + Invalidate(); + } + + protected override void OnPaint(PaintEventArgs e) + { + var g = e.Graphics; + g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + g.Clear(Parent.BackColor); + + Color _inactiveTrackColor; + Color _accentColor; + Brush _accentBrush; + Brush _disabledBrush; + Color _disabledColor; + Color _thumbHoverColor; + Color _thumbPressedColor; + + if (_useAccentColor) + _accentColor = SkinManager.ColorScheme.AccentColor; + else + _accentColor = SkinManager.ColorScheme.PrimaryColor; + + _accentBrush = new SolidBrush(_accentColor); + _disabledBrush = new SolidBrush(Color.FromArgb(255, 158, 158, 158)); + + if (SkinManager.Theme == MaterialSkinManager.Themes.DARK) + { + _disabledColor = Color.FromArgb((int)(2.55 * 30), 255, 255, 255); + _inactiveTrackColor = _accentColor.Darken(0.25f); + } + else + { + _disabledColor = Color.FromArgb((int)(2.55 * (_hovered ? 38 : 26)), 0, 0, 0); + _inactiveTrackColor = _accentColor.Lighten(0.6f); + } + + //_disabledBrush = new SolidBrush(_disabledColor); + //_thumbHoverColor = Color.FromArgb((int)(2.55 * 15), (Value == 0 ? Color.Gray : _accentColor)); + //_thumbPressedColor = Color.FromArgb((int)(2.55 * 30), (Value == 0 ? Color.Gray : _accentColor)); _thumbHoverColor = Color.FromArgb((int)(2.55 * 15), (Value == 0 ? Color.Gray : _accentColor)); + _thumbHoverColor = Color.FromArgb((int)(2.55 * 15), _accentColor); + _thumbPressedColor = Color.FromArgb((int)(2.55 * 30), _accentColor); + //Pen LinePen = new Pen(_disabledColor, _inactiveTrack); + + //Draw track + //g.DrawLine(LinePen, _indicatorSize / 2, Height / 2 + (Height - _indicatorSize) / 2, Width - _indicatorSize / 2, Height / 2 + (Height - _indicatorSize) / 2); + //g.DrawLine(LinePen, _sliderRectangle.X + (_indicatorSize / 2), Height / 2 , _sliderRectangle.Right - (_indicatorSize / 2), Height / 2 ); + + GraphicsPath _inactiveTrackPath = DrawHelper.CreateRoundRect(_sliderRectangle.X + (_thumbRadius / 2), _sliderRectangle.Y + Height / 2 - _inactiveTrack/2, _sliderRectangle.Width - _thumbRadius, _inactiveTrack, 2); + //g.FillPath(_disabledBrush, _inactiveTrackPath); + GraphicsPath _activeTrackPath = DrawHelper.CreateRoundRect(_sliderRectangle.X + (_thumbRadius / 2), _sliderRectangle.Y + Height / 2 - _activeTrack / 2, _indicatorRectangleNormal.X - _sliderRectangle.X, _activeTrack, 2); + + if (Enabled) + { + //Draw inactive track + g.FillPath(new SolidBrush(_inactiveTrackColor), _inactiveTrackPath); + + //Draw active track + //g.DrawLine(SkinManager.ColorScheme.AccentPen, _indicatorSize / 2, Height / 2 + (Height - _indicatorSize) / 2, _indicatorRectangleNormal.X, Height / 2 + (Height - _indicatorSize) / 2); + //g.DrawLine(AccentPen, _sliderRectangle.X + (_indicatorSize / 2), Height / 2 , _indicatorRectangleNormal.X + (_indicatorSize / 2), Height / 2 ) ; + + g.FillPath(_accentBrush, _activeTrackPath); + + if (_mousePressed) + { + //g.FillEllipse(_accentBrush, _indicatorRectanglePressed); + g.FillEllipse(_accentBrush, _indicatorRectangleNormal); + g.FillEllipse(new SolidBrush(_thumbPressedColor), _indicatorRectanglePressed); + + } + else + { + g.FillEllipse(_accentBrush, _indicatorRectangleNormal); + + if (_hovered) + { + g.FillEllipse(new SolidBrush(_thumbHoverColor), _indicatorRectanglePressed); + } + } + } + else + { + //Draw inactive track + g.FillPath(new SolidBrush(_disabledColor.Lighten(0.25f)), _inactiveTrackPath); + + //Draw active track + g.FillPath(_disabledBrush, _activeTrackPath); + g.FillEllipse(_disabledBrush, _indicatorRectangleNormal); + } + + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + if (_showText == true) + // Draw text + NativeText.DrawTransparentText( + Text, + SkinManager.getLogFontByType(_fontType, RightToLeft), + Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, + _textRectangle.Location, + _textRectangle.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + + if (_showValue==true) + // Draw value + NativeText.DrawTransparentText( + Value.ToString()+ValueSuffix, + SkinManager.getLogFontByType(_fontType, RightToLeft), + Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, + _valueRectangle.Location, + _valueRectangle.Size, + NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle); + } + + } + } + +} diff --git a/MaterialSkin/Controls/MaterialSnackBar.cs b/MaterialSkin/Controls/MaterialSnackBar.cs new file mode 100644 index 00000000..92938490 --- /dev/null +++ b/MaterialSkin/Controls/MaterialSnackBar.cs @@ -0,0 +1,370 @@ +namespace MaterialSkin.Controls +{ + using MaterialSkin.Animations; + using System; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Drawing2D; + using System.Windows.Forms; + using System.Runtime.InteropServices; + + public class MaterialSnackBar : MaterialForm + { + + private const int TOP_PADDING_SINGLE_LINE = 6; + private const int LEFT_RIGHT_PADDING = 16; + private const int BUTTON_PADDING = 8; + private const int BUTTON_HEIGHT = 36; + + private MaterialButton _actionButton = new MaterialButton(); + private Timer _duration = new Timer(); // Timer that checks when the drop down is fully visible + + private AnimationManager _AnimationManager; + private bool _closingAnimationDone = false; + private bool _useAccentColor; + private bool CloseAnimation = false; + + #region "Events" + + [Category("Action")] + [Description("Fires when Action button is clicked")] + public event EventHandler ActionButtonClick; + + #endregion + + + [Category("Material Skin"), DefaultValue(false), DisplayName("Use Accent Color")] + public bool UseAccentColor + { + get { return _useAccentColor; } + set { _useAccentColor = value; Invalidate(); } + } + + + /// + /// Get or Set SnackBar show duration in milliseconds + /// + [Category("Material Skin"), DefaultValue(2000)] + public int Duration + { + get + { + return _duration.Interval; + } + set + { + _duration.Interval = value; + } + } + + private String _text; + /// + /// The Text which gets displayed as the Content + /// + [Category("Material Skin"), DefaultValue("SnackBar text")] + public new String Text + { + get + { + return _text; + } + set + { + _text = value; + UpdateRects(); + Invalidate(); + } + } + + private bool _showActionButton; + [Category("Material Skin"), DefaultValue(false), DisplayName("Show Action Button")] + public bool ShowActionButton + { + get { return _showActionButton; } + set { _showActionButton = value; UpdateRects(); Invalidate(); } + } + + private String _actionButtonText; + /// + /// The Text which gets displayed as the Content + /// + [Category("Material Skin"), DefaultValue("OK")] + public String ActionButtonText + { + get + { + return _actionButtonText; + } + set + { + _actionButtonText = value; + Invalidate(); + } + } + + /// + /// The Collection for the Buttons + /// + //public ObservableCollection Buttons { get; set; } + + [DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")] + private static extern IntPtr CreateRoundRectRgn + ( + int nLeftRect, // x-coordinate of upper-left corner + int nTopRect, // y-coordinate of upper-left corner + int nRightRect, // x-coordinate of lower-right corner + int nBottomRect, // y-coordinate of lower-right corner + int nWidthEllipse, // width of ellipse + int nHeightEllipse // height of ellipse + ); + + /// + /// Constructer Setting up the Layout + /// + public MaterialSnackBar(string Text, int Duration, bool ShowActionButton, string ActionButtonText, bool UseAccentColor, RightToLeft rightToLeft = RightToLeft.No) : base(rightToLeft) + { + this.Text = Text; + this.Duration = Duration; + TopMost = true; + ShowInTaskbar = false; + Sizable = false; + + BackColor = SkinManager.SnackBarBackgroundColor; + FormStyle = FormStyles.StatusAndActionBar_None; + + this.ActionButtonText = ActionButtonText; + this.UseAccentColor = UseAccentColor; + Height = 48; + MinimumSize = new System.Drawing.Size(344, 48); + MaximumSize = new System.Drawing.Size(568, 48); + + this.ShowActionButton = ShowActionButton; + + Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 6, 6)); + + _AnimationManager = new AnimationManager(); + _AnimationManager.AnimationType = AnimationType.EaseOut; + _AnimationManager.Increment = 0.03; + _AnimationManager.OnAnimationProgress += _AnimationManager_OnAnimationProgress; + + _duration.Tick += new EventHandler(duration_Tick); + + _actionButton = new MaterialButton + { + AutoSize = false, + NoAccentTextColor = SkinManager.SnackBarTextButtonNoAccentTextColor, + DrawShadows = false, + Type = MaterialButton.MaterialButtonType.Text, + UseAccentColor = _useAccentColor, + Visible = _showActionButton, + Text = _actionButtonText + }; + _actionButton.Click += (sender, e) => + { + ActionButtonClick?.Invoke(this, new EventArgs()); + _closingAnimationDone = false; + Close(); + }; + + if (!Controls.Contains(_actionButton)) + { + Controls.Add(_actionButton); + } + + UpdateRects(); + + } + + public MaterialSnackBar(RightToLeft rightToLeft=RightToLeft.No) : this("SnackBar Text", 3000, false, "OK", false, rightToLeft) + { + } + + public MaterialSnackBar(string Text, RightToLeft rightToLeft = RightToLeft.No) : this(Text, 3000, false, "OK", false, rightToLeft) + { + } + + public MaterialSnackBar(string Text, int Duration, RightToLeft rightToLeft = RightToLeft.No) : this(Text, Duration, false, "OK", false, rightToLeft) + { + } + + public MaterialSnackBar(string Text, string ActionButtonText, RightToLeft rightToLeft = RightToLeft.No) : this(Text, 3000, true, ActionButtonText, false, rightToLeft) + { + } + + public MaterialSnackBar(string Text, string ActionButtonText, bool UseAccentColor, RightToLeft rightToLeft = RightToLeft.No) : this(Text, 3000, true, ActionButtonText, UseAccentColor, rightToLeft) + { + } + + public MaterialSnackBar(string Text, int Duration, string ActionButtonText, RightToLeft rightToLeft = RightToLeft.No) : this(Text, Duration, true, ActionButtonText, false, rightToLeft) + { + } + + public MaterialSnackBar(string Text, int Duration, string ActionButtonText, bool UseAccentColor, RightToLeft rightToLeft) : this(Text, Duration, true, ActionButtonText, UseAccentColor, rightToLeft) + { + } + + private void UpdateRects() + { + if (_showActionButton == true) + { + int _buttonWidth = ((TextRenderer.MeasureText(ActionButtonText, SkinManager.getFontByType(MaterialSkinManager.fontType.Button, RightToLeft))).Width + 32); + Rectangle _actionbuttonBounds = new Rectangle((Width) - BUTTON_PADDING - _buttonWidth, TOP_PADDING_SINGLE_LINE, _buttonWidth, BUTTON_HEIGHT); + _actionButton.Width = _actionbuttonBounds.Width; + _actionButton.Height = _actionbuttonBounds.Height; + _actionButton.Text = _actionButtonText; + _actionButton.Top = _actionbuttonBounds.Top; + _actionButton.UseAccentColor = _useAccentColor; + } + else + { + _actionButton.Width = 0; + } + _actionButton.Left = Width - BUTTON_PADDING - _actionButton.Width; //Button minimum width management + _actionButton.Visible = _showActionButton; + + Width = TextRenderer.MeasureText(_text, SkinManager.getFontByType(MaterialSkinManager.fontType.Body2, RightToLeft)).Width + (2 * LEFT_RIGHT_PADDING) + _actionButton.Width + 48; + Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 6, 6)); + + } + + private void duration_Tick(object sender, EventArgs e) + { + _duration.Stop(); + _closingAnimationDone = false; + Close(); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + UpdateRects(); + + } + + /// + /// Sets up the Starting Location and starts the Animation + /// + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + Location = new Point(Convert.ToInt32(Owner.Location.X + (Owner.Width / 2) - (Width / 2)), Convert.ToInt32(Owner.Location.Y + Owner.Height - 60)); + _AnimationManager.StartNewAnimation(AnimationDirection.In); + _duration.Start(); + } + + /// + /// Animates the Form slides + /// + void _AnimationManager_OnAnimationProgress(object sender) + { + if (CloseAnimation) + { + Opacity = _AnimationManager.GetProgress(); + } + } + + /// + /// Ovverides the Paint to create the solid colored backcolor + /// + protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) + { + + Graphics g = e.Graphics; + g.SmoothingMode = SmoothingMode.AntiAlias; + + e.Graphics.Clear(BackColor); + + + // Calc text Rect + Rectangle textRect = new Rectangle( + LEFT_RIGHT_PADDING, + 0, + Width - (2 * LEFT_RIGHT_PADDING) - _actionButton.Width, + Height); + + //Draw Text + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + // Draw header text + NativeText.DrawTransparentText( + _text, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body2, RightToLeft), + SkinManager.SnackBarTextHighEmphasisColor, + textRect.Location, + textRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + + } + + /// + /// Overrides the Closing Event to Animate the Slide Out + /// + protected override void OnClosing(System.ComponentModel.CancelEventArgs e) + { + e.Cancel = !_closingAnimationDone; + if (!_closingAnimationDone) + { + CloseAnimation = true; + _AnimationManager.Increment = 0.06; + _AnimationManager.OnAnimationFinished += _AnimationManager_OnAnimationFinished; + _AnimationManager.StartNewAnimation(AnimationDirection.Out); + } + base.OnClosing(e); + } + + /// + /// Closes the Form after the pull out animation + /// + void _AnimationManager_OnAnimationFinished(object sender) + { + _closingAnimationDone = true; + Close(); + } + + protected override void OnClick(EventArgs e) + { + base.OnClick(e); + _closingAnimationDone = false; + Close(); + } + + private void InitializeComponent() + { + this.SuspendLayout(); + this.ClientSize = new System.Drawing.Size(344, 48); + this.Name = "SnackBar"; + this.ResumeLayout(false); + + } + + /// + /// Prevents the Form from beeing dragged + /// + protected override void WndProc(ref Message message) + { + const int WM_SYSCOMMAND = 0x0112; + const int SC_MOVE = 0xF010; + + switch (message.Msg) + { + case WM_SYSCOMMAND: + int command = message.WParam.ToInt32() & 0xfff0; + if (command == SC_MOVE) + return; + break; + } + + base.WndProc(ref message); + } + + public new void Show() + { + if (Owner == null) + { + throw new Exception("Owner is null. Set Owner first."); + } + } + + } +} diff --git a/MaterialSkin/Controls/MaterialSwitch.cs b/MaterialSkin/Controls/MaterialSwitch.cs index 5bb0501b..b7450fb5 100644 --- a/MaterialSkin/Controls/MaterialSwitch.cs +++ b/MaterialSkin/Controls/MaterialSwitch.cs @@ -28,7 +28,7 @@ public class MaterialSwitch : CheckBox, IMaterialControl public bool Ripple { get { return _ripple; } - set + set { _ripple = value; AutoSize = AutoSize; //Make AutoSize directly set the bounds. @@ -42,6 +42,10 @@ public bool Ripple } } + [Category("Appearance")] + [Browsable(true), DefaultValue(false), EditorBrowsable(EditorBrowsableState.Always)] + public bool ReadOnly { get; set; } + private readonly AnimationManager _checkAM; private readonly AnimationManager _hoverAM; private readonly AnimationManager _rippleAM; @@ -93,6 +97,12 @@ public MaterialSwitch() Ripple = true; MouseLocation = new Point(-1, -1); + ReadOnly = false; + } + + protected override void OnClick(EventArgs e) + { + if (!ReadOnly) base.OnClick(e); } protected override void OnSizeChanged(EventArgs e) @@ -102,7 +112,7 @@ protected override void OnSizeChanged(EventArgs e) _trackOffsetY = Height / 2 - THUMB_SIZE_HALF; TRACK_CENTER_Y = _trackOffsetY + THUMB_SIZE_HALF - 1; - TRACK_CENTER_X_BEGIN = (RightToLeft == RightToLeft.Yes) ? this.Width -TRACK_SIZE_WIDTH - (TRACK_RADIUS /2): TRACK_CENTER_Y; + TRACK_CENTER_X_BEGIN = (RightToLeft == RightToLeft.Yes) ? this.Width - TRACK_SIZE_WIDTH - (TRACK_RADIUS / 2) : TRACK_CENTER_Y; TRACK_CENTER_X_END = TRACK_CENTER_X_BEGIN + TRACK_SIZE_WIDTH - (TRACK_RADIUS * 2); TRACK_CENTER_X_DELTA = TRACK_CENTER_X_END - TRACK_CENTER_X_BEGIN; } @@ -112,7 +122,7 @@ public override Size GetPreferredSize(Size proposedSize) Size strSize; using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) { - strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1)); + strSize = NativeText.MeasureLogString(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft)); } var w = TRACK_SIZE_WIDTH + THUMB_SIZE + strSize.Width; return Ripple ? new Size(w, RIPPLE_DIAMETER) : new Size(w, THUMB_SIZE); @@ -211,7 +221,7 @@ protected override void OnPaint(PaintEventArgs pevent) Rectangle textLocation = (RightToLeft == RightToLeft.Yes) ? new Rectangle(0, 0, Width - (TEXT_OFFSET + TRACK_SIZE_WIDTH), Height) : new Rectangle(TEXT_OFFSET + TRACK_SIZE_WIDTH, 0, Width - (TEXT_OFFSET + TRACK_SIZE_WIDTH), Height); NativeText.DrawTransparentText( Text, - SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1), + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textLocation.Location, textLocation.Size, @@ -349,4 +359,4 @@ protected override void OnCreateControl() }; } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialTabControl.cs b/MaterialSkin/Controls/MaterialTabControl.cs index 9c01ad00..fc5acacc 100644 --- a/MaterialSkin/Controls/MaterialTabControl.cs +++ b/MaterialSkin/Controls/MaterialTabControl.cs @@ -6,6 +6,11 @@ public class MaterialTabControl : TabControl, IMaterialControl { + public MaterialTabControl() + { + Multiline = true; + } + [Browsable(false)] public int Depth { get; set; } @@ -20,5 +25,12 @@ protected override void WndProc(ref Message m) if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1; else base.WndProc(ref m); } + + protected override void OnControlAdded(ControlEventArgs e) + { + base.OnControlAdded(e); + + e.Control.BackColor = System.Drawing.Color.White; + } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialTabSelector.cs b/MaterialSkin/Controls/MaterialTabSelector.cs index 451eca0a..cb368bf2 100644 --- a/MaterialSkin/Controls/MaterialTabSelector.cs +++ b/MaterialSkin/Controls/MaterialTabSelector.cs @@ -1,10 +1,12 @@ namespace MaterialSkin.Controls { using MaterialSkin.Animations; + using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Drawing.Text; + using System.Globalization; using System.Windows.Forms; public class MaterialTabSelector : Control, IMaterialControl @@ -18,8 +20,24 @@ public class MaterialTabSelector : Control, IMaterialControl [Browsable(false)] public MouseState MouseState { get; set; } + //[Browsable(false)] + public enum CustomCharacterCasing + { + [Description("Text will be used as user inserted, no alteration")] + Normal, + [Description("Text will be converted to UPPER case")] + Upper, + [Description("Text will be converted to lower case")] + Lower, + [Description("Text will be converted to Proper case (aka Title case)")] + Proper + } + + TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; + private MaterialTabControl _baseTabControl; + [Category("Material Skin"), Browsable(true)] public MaterialTabControl BaseTabControl { get { return _baseTabControl; } @@ -27,6 +45,9 @@ public MaterialTabControl BaseTabControl { _baseTabControl = value; if (_baseTabControl == null) return; + + UpdateTabRects(); + _previousSelectedTabIndex = _baseTabControl.SelectedIndex; _baseTabControl.Deselected += (sender, args) => { @@ -56,14 +77,77 @@ public MaterialTabControl BaseTabControl private List _tabRects; + private const int ICON_SIZE = 24; + private const int FIRST_TAB_PADDING = 50; private const int TAB_HEADER_PADDING = 24; + private const int TAB_WIDTH_MIN = 160; + private const int TAB_WIDTH_MAX = 264; + + private int _tab_over_index = -1; + + private CustomCharacterCasing _characterCasing; + + [Category("Appearance")] + public CustomCharacterCasing CharacterCasing + { + get => _characterCasing; + set + { + _characterCasing = value; + _baseTabControl.Invalidate(); + Invalidate(); + } + } + private int _tab_indicator_height; + + [Category("Material Skin"), Browsable(true), DisplayName("Tab Indicator Height"), DefaultValue(2)] + public int TabIndicatorHeight + { + get { return _tab_indicator_height; } + set + { + if (value < 1) + throw new ArgumentOutOfRangeException("Tab Indicator Height", value, "Value should be > 0"); + else + { + _tab_indicator_height = value; + Refresh(); + } + } + } + + public enum TabLabelStyle + { + Text, + Icon, + IconAndText, + } + + private TabLabelStyle _tabLabel; + [Category("Material Skin"), Browsable(true), DisplayName("Tab Label"), DefaultValue(TabLabelStyle.Text)] + public TabLabelStyle TabLabel + { + get { return _tabLabel; } + set + { + _tabLabel = value; + if (_tabLabel == TabLabelStyle.IconAndText) + Height = 72; + else + Height = 48; + UpdateTabRects(); + Invalidate(); + } + } - private const int TAB_INDICATOR_HEIGHT = 2; public MaterialTabSelector() { SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer, true); - Height = 48; + TabIndicatorHeight = 2; + TabLabel = TabLabelStyle.Text; + + Size = new Size(480, 48); _animationManager = new AnimationManager { @@ -76,7 +160,7 @@ public MaterialTabSelector() protected override void OnCreateControl() { base.OnCreateControl(); - Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1); + Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft); } protected override void OnPaint(PaintEventArgs e) @@ -106,33 +190,90 @@ protected override void OnPaint(PaintEventArgs e) } //Draw tab headers + if (_tab_over_index >= 0) + { + //Change mouse over tab background color + g.FillRectangle(SkinManager.BackgroundHoverBrush , _tabRects[_tab_over_index].X, _tabRects[_tab_over_index].Y , _tabRects[_tab_over_index].Width, _tabRects[_tab_over_index].Height - _tab_indicator_height); + } + foreach (TabPage tabPage in _baseTabControl.TabPages) { var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + if (_tabLabel != TabLabelStyle.Icon) { - Rectangle textLocation = _tabRects[currentTabIndex]; - NativeText.DrawTransparentText( - tabPage.Text.ToUpper(), - SkinManager.getLogFontByType(MaterialSkinManager.fontType.Button), - Color.FromArgb(CalculateTextAlpha(currentTabIndex, animationProgress), SkinManager.ColorScheme.TextColor), - textLocation.Location, - textLocation.Size, - NativeTextRenderer.TextAlignFlags.Center | NativeTextRenderer.TextAlignFlags.Middle); + // Text + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + Size textSize = TextRenderer.MeasureText(_baseTabControl.TabPages[currentTabIndex].Text, Font); + Rectangle textLocation = new Rectangle(_tabRects[currentTabIndex].X+ (TAB_HEADER_PADDING/2), _tabRects[currentTabIndex].Y, _tabRects[currentTabIndex].Width - (TAB_HEADER_PADDING), _tabRects[currentTabIndex].Height); + + if (_tabLabel == TabLabelStyle.IconAndText) + { + textLocation.Y = 46; + textLocation.Height = 10; + } + + if (((TAB_HEADER_PADDING*2) + textSize.Width < TAB_WIDTH_MAX)) + { + NativeText.DrawTransparentText( + CharacterCasing == CustomCharacterCasing.Upper ? tabPage.Text.ToUpper() : + CharacterCasing == CustomCharacterCasing.Lower ? tabPage.Text.ToLower() : + CharacterCasing == CustomCharacterCasing.Proper ? textInfo.ToTitleCase(tabPage.Text.ToLower()) : tabPage.Text, + Font, + Color.FromArgb(CalculateTextAlpha(currentTabIndex, animationProgress), SkinManager.ColorScheme.TextColor), + textLocation.Location, + textLocation.Size, + NativeTextRenderer.TextAlignFlags.Center | NativeTextRenderer.TextAlignFlags.Middle); + } + else + { + if (_tabLabel == TabLabelStyle.IconAndText) + { + textLocation.Y = 40; + textLocation.Height = 26; + } + NativeText.DrawMultilineTransparentText( + CharacterCasing == CustomCharacterCasing.Upper ? tabPage.Text.ToUpper() : + CharacterCasing == CustomCharacterCasing.Lower ? tabPage.Text.ToLower() : + CharacterCasing == CustomCharacterCasing.Proper ? textInfo.ToTitleCase(tabPage.Text.ToLower()) : tabPage.Text, + SkinManager.getFontByType(MaterialSkinManager.fontType.Body2, RightToLeft), + Color.FromArgb(CalculateTextAlpha(currentTabIndex, animationProgress), SkinManager.ColorScheme.TextColor), + textLocation.Location, + textLocation.Size, + NativeTextRenderer.TextAlignFlags.Center | NativeTextRenderer.TextAlignFlags.Middle); + } + } } - } + + if (_tabLabel != TabLabelStyle.Text) + { + // Icons + if (_baseTabControl.ImageList != null && (!String.IsNullOrEmpty(tabPage.ImageKey) | tabPage.ImageIndex > -1)) + { + Rectangle iconRect = new Rectangle( + _tabRects[currentTabIndex].X + (_tabRects[currentTabIndex].Width / 2) - (ICON_SIZE / 2), + _tabRects[currentTabIndex].Y + (_tabRects[currentTabIndex].Height / 2) - (ICON_SIZE / 2), + ICON_SIZE, ICON_SIZE); + if (_tabLabel == TabLabelStyle.IconAndText) + { + iconRect.Y = 12; + } + g.DrawImage(!String.IsNullOrEmpty(tabPage.ImageKey) ? _baseTabControl.ImageList.Images[tabPage.ImageKey]: _baseTabControl.ImageList.Images[tabPage.ImageIndex], iconRect); + } + } + } //Animate tab indicator var previousSelectedTabIndexIfHasOne = _previousSelectedTabIndex == -1 ? _baseTabControl.SelectedIndex : _previousSelectedTabIndex; var previousActiveTabRect = _tabRects[previousSelectedTabIndexIfHasOne]; var activeTabPageRect = _tabRects[_baseTabControl.SelectedIndex]; - var y = activeTabPageRect.Bottom - 2; + var y = activeTabPageRect.Bottom - _tab_indicator_height; var x = previousActiveTabRect.X + (int)((activeTabPageRect.X - previousActiveTabRect.X) * animationProgress); var width = previousActiveTabRect.Width + (int)((activeTabPageRect.Width - previousActiveTabRect.Width) * animationProgress); - g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, width, TAB_INDICATOR_HEIGHT); + g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, width, _tab_indicator_height); } private int CalculateTextAlpha(int tabIndex, double animationProgress) @@ -171,6 +312,47 @@ protected override void OnMouseUp(MouseEventArgs e) _animationSource = e.Location; } + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + if (DesignMode) + return; + + if (_tabRects == null) + UpdateTabRects(); + + int old_tab_over_index = _tab_over_index; + _tab_over_index = -1; + for (var i = 0; i < _tabRects.Count; i++) + { + if (_tabRects[i].Contains(e.Location)) + { + Cursor = Cursors.Hand; + _tab_over_index = i; + break; + } + } + if (_tab_over_index == -1) + Cursor = Cursors.Arrow; + if (old_tab_over_index != _tab_over_index) + Invalidate(); + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + if (DesignMode) + return; + + if (_tabRects == null) + UpdateTabRects(); + + Cursor = Cursors.Arrow; + _tab_over_index = -1; + Invalidate(); + } + private void UpdateTabRects() { _tabRects = new List(); @@ -184,15 +366,27 @@ private void UpdateTabRects() { using (var g = Graphics.FromImage(b)) { - var tabRects_X= RightToLeft == RightToLeft.Yes ? this.Width - (TAB_HEADER_PADDING * 2 + (int)g.MeasureString(_baseTabControl.TabPages[0].Text, Font).Width) - SkinManager.FORM_PADDING : SkinManager.FORM_PADDING; - _tabRects.Add(new Rectangle(tabRects_X, 0, TAB_HEADER_PADDING * 2 + (int)g.MeasureString(_baseTabControl.TabPages[0].Text, Font).Width, Height)); - for (int i = 1; i < _baseTabControl.TabPages.Count; i++) + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { - var tabRects_add_X = RightToLeft == RightToLeft.Yes ? _tabRects[i - 1].Left- (TAB_HEADER_PADDING * 2 + (int)g.MeasureString(_baseTabControl.TabPages[i].Text, Font).Width) : _tabRects[i - 1].Right; - _tabRects.Add(new Rectangle(tabRects_add_X, 0, TAB_HEADER_PADDING * 2 + (int)g.MeasureString(_baseTabControl.TabPages[i].Text, Font).Width, Height)); + for (int i = 0; i < _baseTabControl.TabPages.Count; i++) + { + Size textSize = TextRenderer.MeasureText(_baseTabControl.TabPages[i].Text, Font); + if (_tabLabel == TabLabelStyle.Icon) textSize.Width = ICON_SIZE; + + int TabWidth = (TAB_HEADER_PADDING * 2) + textSize.Width; + if (TabWidth > TAB_WIDTH_MAX) + TabWidth = TAB_WIDTH_MAX; + else if (TabWidth < TAB_WIDTH_MIN) + TabWidth = TAB_WIDTH_MIN; + + if (i==0) + _tabRects.Add(new Rectangle(FIRST_TAB_PADDING - (TAB_HEADER_PADDING), 0, TabWidth, Height)); + else + _tabRects.Add(new Rectangle(_tabRects[i - 1].Right, 0, TabWidth, Height)); + } } } } } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialTextBox.cs b/MaterialSkin/Controls/MaterialTextBox.cs index 18aa3f3e..73d04e60 100644 --- a/MaterialSkin/Controls/MaterialTextBox.cs +++ b/MaterialSkin/Controls/MaterialTextBox.cs @@ -2,13 +2,20 @@ { using MaterialSkin.Animations; using System; + using System.Collections.Generic; using System.ComponentModel; using System.Drawing; + using System.Drawing.Imaging; using System.Runtime.InteropServices; using System.Windows.Forms; + [ToolboxItem(false), Description("This control has been replaced by MaterialTextBox2"), Obsolete("Use MaterialTextBox2 instead", false)] public class MaterialTextBox : RichTextBox, IMaterialControl { + + MaterialContextMenuStrip cms = new TextBoxContextMenuStrip(); + ContextMenuStrip _lastContextMenuStrip = new ContextMenuStrip(); + //Properties for managing the material design properties [Browsable(false)] public int Depth { get; set; } @@ -33,6 +40,7 @@ public bool UseTallSize _UseTallSize = value; HEIGHT = UseTallSize ? 50 : 36; Size = new Size(Size.Width, HEIGHT); + UpdateRects(false); Invalidate(); } } @@ -42,7 +50,7 @@ public bool UseTallSize private string _hint = string.Empty; - [Category("Material Skin"), DefaultValue("")] + [Category("Material Skin"), DefaultValue(""), Localizable(true)] public string Hint { get { return _hint; } @@ -54,6 +62,96 @@ public string Hint } } + private Image _leadingIcon; + + [Category("Material Skin"), Browsable(true), Localizable(false)] + /// + /// Gets or sets the leading Icon + /// + public Image LeadingIcon + { + get { return _leadingIcon; } + set + { + _leadingIcon = value; + UpdateRects(false); + preProcessIcons(); + if (AutoSize) + { + Refresh(); + } + else + { + Invalidate(); + } + } + } + + private Image _trailingIcon; + + [Category("Material Skin"), Browsable(true), Localizable(false)] + /// + /// Gets or sets the trailing Icon + /// + public Image TrailingIcon + { + get { return _trailingIcon; } + set + { + _trailingIcon = value; + UpdateRects(false); + preProcessIcons(); + if (AutoSize) + { + Refresh(); + } + else + { + Invalidate(); + } + } + } + + + public override ContextMenuStrip ContextMenuStrip + { + get { return base.ContextMenuStrip; } + set + { + if (value != null) + { + base.ContextMenuStrip = value; + } + else + { + base.ContextMenuStrip = cms; + } + _lastContextMenuStrip = base.ContextMenuStrip; + } + } + + + public override bool ShortcutsEnabled + { + get + { + return base.ShortcutsEnabled; + } + set + { + base.ShortcutsEnabled = value; + if (value == false) + { + base.ContextMenuStrip = null; + } + else + { + base.ContextMenuStrip = _lastContextMenuStrip; + } + } + } + + private const int ICON_SIZE = 24; private const int HINT_TEXT_SMALL_SIZE = 18; private const int HINT_TEXT_SMALL_Y = 4; private const int BOTTOM_PADDING = 3; @@ -61,8 +159,63 @@ public string Hint private int LINE_Y; private bool hasHint; + private bool _errorState = false; + private int _left_padding ; + private int _right_padding ; + private Rectangle _leadingIconBounds; + private Rectangle _trailingIconBounds; + private Rectangle _textfieldBounds; private readonly AnimationManager _animationManager; + private Dictionary iconsBrushes; + private Dictionary iconsErrorBrushes; + + private bool _animateReadOnly; + + [Category("Material Skin")] + [Browsable(true)] + public bool AnimateReadOnly + { + get => _animateReadOnly; + set + { + _animateReadOnly = value; + Invalidate(); + } + } + + private bool _leaveOnEnterKey; + + [Category("Material Skin"), DefaultValue(false), Description("Select next control which have TabStop property set to True when enter key is pressed.")] + public bool LeaveOnEnterKey + { + get => _leaveOnEnterKey; + set + { + _leaveOnEnterKey = value; + if (value) + { + KeyDown += new KeyEventHandler(LeaveOnEnterKey_KeyDown); + } + else + { + KeyDown -= LeaveOnEnterKey_KeyDown; + } + Invalidate(); + } + } + + #region "Events" + + [Category("Action")] + [Description("Fires when Leading Icon is clicked")] + public event EventHandler LeadingIconClick; + + [Category("Action")] + [Description("Fires when Trailing Icon is clicked")] + public event EventHandler TrailingIconClick; + + #endregion public MaterialTextBox() { @@ -85,10 +238,18 @@ public MaterialTextBox() }; _animationManager.OnAnimationProgress += sender => Invalidate(); - MaterialContextMenuStrip cms = new TextBoxContextMenuStrip(); + SkinManager.ColorSchemeChanged += sender => + { + preProcessIcons(); + }; + + SkinManager.ThemeChanged += sender => + { + preProcessIcons(); + }; + cms.Opening += ContextMenuStripOnOpening; cms.OnItemClickStart += ContextMenuStripOnItemClickStart; - ContextMenuStrip = cms; MaxLength = 50; @@ -102,9 +263,8 @@ public MaterialTextBox() protected override void OnCreateControl() { base.OnCreateControl(); - base.Font = new Font(SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1).FontFamily, 12f, FontStyle.Regular); + base.Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft); base.AutoSize = false; - var FORM_PADDING = RightToLeft == RightToLeft.Yes ? 0 : SkinManager.FORM_PADDING; SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true); @@ -114,15 +274,7 @@ protected override void OnCreateControl() HEIGHT = UseTallSize ? 50 : 36; Size = new Size(Size.Width, HEIGHT); LINE_Y = HEIGHT - BOTTOM_PADDING; - - // Position the "real" text field - var rect = new Rectangle(FORM_PADDING, UseTallSize ? hasHint ? - (HINT_TEXT_SMALL_Y + HINT_TEXT_SMALL_SIZE) : // Has hint and it's tall - (int)(LINE_Y / 3.5) : // No hint and tall - Height / 5, // not tall - ClientSize.Width - (FORM_PADDING * 2), LINE_Y); - RECT rc = new RECT(rect); - SendMessageRefRect(Handle, EM_SETRECT, 0, ref rc); + UpdateRects(); // events MouseState = MouseState.OUT; @@ -164,13 +316,226 @@ public override Size GetPreferredSize(Size proposedSize) return new Size(proposedSize.Width, HEIGHT); } + private static Size ResizeIcon(Image Icon) + { + int newWidth, newHeight; + //Resize icon if greater than ICON_SIZE + if (Icon.Width > ICON_SIZE || Icon.Height > ICON_SIZE) + { + //calculate aspect ratio + float aspect = Icon.Width / (float)Icon.Height; + + //calculate new dimensions based on aspect ratio + newWidth = (int)(ICON_SIZE * aspect); + newHeight = (int)(newWidth / aspect); + + //if one of the two dimensions exceed the box dimensions + if (newWidth > ICON_SIZE || newHeight > ICON_SIZE) + { + //depending on which of the two exceeds the box dimensions set it as the box dimension and calculate the other one based on the aspect ratio + if (newWidth > newHeight) + { + newWidth = ICON_SIZE; + newHeight = (int)(newWidth / aspect); + } + else + { + newHeight = ICON_SIZE; + newWidth = (int)(newHeight * aspect); + } + } + } + else + { + newWidth = Icon.Width; + newHeight = Icon.Height; + } + + return new Size() + { + Height = newHeight, + Width = newWidth + }; + } + + private void preProcessIcons() + { + if (_trailingIcon == null && _leadingIcon == null) return; + + // Calculate lightness and color + float l = (SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ) ? 0f : 1f; + + // Create matrices + float[][] matrixGray = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, Enabled ? .7f : .3f, 0}, // alpha scale factor + new float[] { l, l, l, 0, 1}};// offset + + float[][] matrixRed = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, 1, 0}, // alpha scale factor + new float[] { 1, 0, 0, 0, 1}};// offset + + ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); + ColorMatrix colorMatrixRed = new ColorMatrix(matrixRed); + + ImageAttributes grayImageAttributes = new ImageAttributes(); + ImageAttributes redImageAttributes = new ImageAttributes(); + + // Set color matrices + grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + redImageAttributes.SetColorMatrix(colorMatrixRed, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + + // Create brushes + iconsBrushes = new Dictionary(2); + iconsErrorBrushes = new Dictionary(2); + + // Image Rect + Rectangle destRect = new Rectangle(0, 0, ICON_SIZE, ICON_SIZE); + + if (_leadingIcon != null) + { + // ******************** + // *** _leadingIcon *** + // ******************** + + //Resize icon if greater than ICON_SIZE + Size newSize_leadingIcon = ResizeIcon(_leadingIcon); + Bitmap _leadingIconIconResized = new Bitmap(_leadingIcon, newSize_leadingIcon.Width, newSize_leadingIcon.Height); + + // Create a pre-processed copy of the image (GRAY) + Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gGray = Graphics.FromImage(bgray)) + { + gGray.DrawImage(_leadingIconIconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, grayImageAttributes); + } + + // added processed image to brush for drawing + TextureBrush textureBrushGray = new TextureBrush(bgray); + + textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + + var iconRect = _leadingIconBounds; + + textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _leadingIconIconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - _leadingIconIconResized.Height / 2); + + // add to dictionary + iconsBrushes.Add("_leadingIcon", textureBrushGray); + } + + if (_trailingIcon != null) + { + // ********************* + // *** _trailingIcon *** + // ********************* + + //Resize icon if greater than ICON_SIZE + Size newSize_trailingIcon = ResizeIcon(_trailingIcon); + Bitmap _trailingIconResized = new Bitmap(_trailingIcon, newSize_trailingIcon.Width, newSize_trailingIcon.Height); + + // Create a pre-processed copy of the image (GRAY) + Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gGray = Graphics.FromImage(bgray)) + { + gGray.DrawImage(_trailingIconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, grayImageAttributes); + } + + //Create a pre - processed copy of the image(RED) + Bitmap bred = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gred = Graphics.FromImage(bred)) + { + gred.DrawImage(_trailingIconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, redImageAttributes); + } + + + // added processed image to brush for drawing + TextureBrush textureBrushGray = new TextureBrush(bgray); + TextureBrush textureBrushRed = new TextureBrush(bred); + + textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + textureBrushRed.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + + var iconRect = _trailingIconBounds; + + textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _trailingIconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - _trailingIconResized.Height / 2); + textureBrushRed.TranslateTransform(iconRect.X + iconRect.Width / 2 - _trailingIconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - _trailingIconResized.Height / 2); + + // add to dictionary + iconsBrushes.Add("_trailingIcon", textureBrushGray); + //iconsSelectedBrushes.Add(0, textureBrushColor); + iconsErrorBrushes.Add("_trailingIcon", textureBrushRed); + } + } + + private void UpdateRects(bool RedefineTextField = true) + { + if (LeadingIcon != null) + _left_padding = SkinManager.FORM_PADDING + ICON_SIZE; + else + _left_padding = SkinManager.FORM_PADDING; + + if (_trailingIcon != null) + _right_padding = SkinManager.FORM_PADDING + ICON_SIZE; + else + _right_padding = SkinManager.FORM_PADDING; + + _leadingIconBounds = new Rectangle(8, (HEIGHT / 2) - (ICON_SIZE / 2), ICON_SIZE, ICON_SIZE); + _trailingIconBounds = new Rectangle(Width - (ICON_SIZE + 8), (HEIGHT / 2) - (ICON_SIZE / 2), ICON_SIZE, ICON_SIZE); + _textfieldBounds = new Rectangle(_left_padding, ClientRectangle.Y, Width - _left_padding - _right_padding, LINE_Y); + + if (RedefineTextField) + { + var rect = new Rectangle(_left_padding, UseTallSize ? hasHint ? + (HINT_TEXT_SMALL_Y + HINT_TEXT_SMALL_SIZE) : // Has hint and it's tall + (int)(LINE_Y / 3.5) : // No hint and tall + Height / 5, // not tall + ClientSize.Width - _left_padding - _right_padding, LINE_Y); + RECT rc = new RECT(rect); + SendMessageRefRect(Handle, EM_SETRECT, 0, ref rc); + } + + } + + public void SetErrorState(bool ErrorState) + { + _errorState = ErrorState; + Invalidate(); + } + + public bool GetErrorState() + { + return _errorState; + } + protected override void OnPaint(PaintEventArgs pevent) { base.OnPaint(pevent); - var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; - var FORM_PADDING = RightToLeft == RightToLeft.Yes ? 0 : SkinManager.FORM_PADDING; - var Width = RightToLeft == RightToLeft.Yes ? this.Width - SkinManager.FORM_PADDING : this.Width; - var ClientRectangleWidth = RightToLeft == RightToLeft.Yes ? ClientRectangle.Width - SkinManager.FORM_PADDING : ClientRectangle.Width; + var g = pevent.Graphics; g.Clear(Parent.BackColor); @@ -180,58 +545,76 @@ protected override void OnPaint(PaintEventArgs pevent) g.FillRectangle( !Enabled ? SkinManager.BackgroundDisabledBrush : // Disabled Focused ? SkinManager.BackgroundFocusBrush : // Focused - MouseState == MouseState.HOVER ? SkinManager.BackgroundHoverBrush : // Hover + MouseState == MouseState.HOVER && (!ReadOnly || (ReadOnly && !AnimateReadOnly)) ? SkinManager.BackgroundHoverBrush : // Hover backBrush, // Normal ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, LINE_Y); + //Leading Icon + if (LeadingIcon != null) + { + g.FillRectangle(iconsBrushes["_leadingIcon"], _leadingIconBounds); + } + + //Trailing Icon + if (TrailingIcon != null) + { + if(_errorState) + g.FillRectangle(iconsErrorBrushes["_trailingIcon"], _trailingIconBounds); + else + g.FillRectangle(iconsBrushes["_trailingIcon"], _trailingIconBounds); + } + // HintText bool userTextPresent = !String.IsNullOrEmpty(Text); Color textColor = Enabled ? Focused ? UseAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor : // Focused SkinManager.TextHighEmphasisColor : // Inactive SkinManager.TextDisabledOrHintColor; // Disabled - Rectangle hintRect = new Rectangle(FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); + Rectangle hintRect = new Rectangle(_left_padding, ClientRectangle.Y, Width - _left_padding - _right_padding, LINE_Y); int hintTextSize = 16; // bottom line base - g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, this.Width, 1); + g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, Width, 1); - if (!_animationManager.IsAnimating()) + if (ReadOnly == false || (ReadOnly && AnimateReadOnly)) { - // No animation - if (hasHint && UseTallSize && (Focused || userTextPresent)) - { - // hint text - hintRect = new Rectangle(FORM_PADDING, HINT_TEXT_SMALL_Y, this.Width, HINT_TEXT_SMALL_SIZE); - hintTextSize = 12; - } - - // bottom line - if (Focused) + if (!_animationManager.IsAnimating()) { - g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, 0, LINE_Y, this.Width, 2); + // No animation + if (hasHint && UseTallSize && (Focused || userTextPresent)) + { + // hint text + hintRect = new Rectangle(_left_padding, HINT_TEXT_SMALL_Y, Width - _left_padding - _right_padding, HINT_TEXT_SMALL_SIZE); + hintTextSize = 12; + } + + // bottom line + if (Focused) + { + g.FillRectangle(_errorState ? SkinManager.BackgroundHoverRedBrush : UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, 0, LINE_Y, Width, 2); + } } - } - else - { - // Animate - Focus got/lost - double animationProgress = _animationManager.GetProgress(); - - // hint Animation - if (hasHint && UseTallSize) + else { - hintRect = new Rectangle( - FORM_PADDING, - userTextPresent ? (HINT_TEXT_SMALL_Y) : ClientRectangle.Y + (int)((HINT_TEXT_SMALL_Y - ClientRectangle.Y) * animationProgress), - Width, - userTextPresent ? (HINT_TEXT_SMALL_SIZE) : (int)(LINE_Y + (HINT_TEXT_SMALL_SIZE - LINE_Y) * animationProgress)); - hintTextSize = userTextPresent ? 12 : (int)(16 + (12 - 16) * animationProgress); + // Animate - Focus got/lost + double animationProgress = _animationManager.GetProgress(); + + // hint Animation + if (hasHint && UseTallSize) + { + hintRect = new Rectangle( + _left_padding, + userTextPresent ? (HINT_TEXT_SMALL_Y) : ClientRectangle.Y + (int)((HINT_TEXT_SMALL_Y - ClientRectangle.Y) * animationProgress), + Width - _left_padding - _right_padding, + userTextPresent ? (HINT_TEXT_SMALL_SIZE) : (int)(LINE_Y + (HINT_TEXT_SMALL_SIZE - LINE_Y) * animationProgress)); + hintTextSize = userTextPresent ? 12 : (int)(16 + (12 - 16) * animationProgress); + } + + // Line Animation + int LineAnimationWidth = (int)(Width * animationProgress); + int LineAnimationX = (Width / 2) - (LineAnimationWidth / 2); + g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); } - - // Line Animation - int LineAnimationWidth = (int)(Width * animationProgress); - int LineAnimationX = (Width / 2) - (LineAnimationWidth / 2); - g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); } // Text stuff: @@ -241,9 +624,9 @@ protected override void OnPaint(PaintEventArgs pevent) // Calc text Rect Rectangle textRect = new Rectangle( - FORM_PADDING, + hintRect.X, hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, - ClientRectangleWidth - FORM_PADDING * 2 + scrollPos.X, + ClientRectangle.Width - _left_padding - _right_padding + scrollPos.X, hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); g.Clip = new Region(textRect); @@ -255,13 +638,11 @@ protected override void OnPaint(PaintEventArgs pevent) string textBeforeSelection = textToDisplay.Substring(0, SelectionStart); textSelected = textToDisplay.Substring(SelectionStart, SelectionLength); - int selectX = NativeText.MeasureLogString(textBeforeSelection, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width; - int selectWidth = NativeText.MeasureLogString(textSelected, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width; + int selectX = NativeText.MeasureLogString(textBeforeSelection, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft)).Width; + int selectWidth = NativeText.MeasureLogString(textSelected, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft)).Width; - var textRect_X = RightToLeft == RightToLeft.Yes ? textRect.X : textRect.X; - selectWidth = RightToLeft == RightToLeft.Yes ? selectWidth : selectWidth; textSelectRect = new Rectangle( - textRect_X, UseTallSize ? hasHint ? + textRect.X + selectX, UseTallSize ? hasHint ? textRect.Y + BOTTOM_PADDING : // tall and hint LINE_Y / 3 - BOTTOM_PADDING : // tall and no hint BOTTOM_PADDING, // not tall @@ -274,11 +655,11 @@ protected override void OnPaint(PaintEventArgs pevent) // Draw user text NativeText.DrawTransparentText( textToDisplay, - SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1), + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textRect.Location, textRect.Size, - textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); } if (Focused) @@ -291,11 +672,11 @@ protected override void OnPaint(PaintEventArgs pevent) { NativeText.DrawTransparentText( textSelected, - SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1), + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), SkinManager.ColorScheme.TextColor, textSelectRect.Location, textSelectRect.Size, - textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); } } @@ -308,15 +689,16 @@ protected override void OnPaint(PaintEventArgs pevent) { NativeText.DrawTransparentText( Hint, - SkinManager.getTextBoxFontBySize(hintTextSize), - Enabled ? Focused ? UseAccent ? + SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), + Enabled ? !_errorState || (!userTextPresent && !Focused) ? Focused ? UseAccent ? SkinManager.ColorScheme.AccentColor : // Focus Accent SkinManager.ColorScheme.PrimaryColor : // Focus Primary SkinManager.TextMediumEmphasisColor : // not focused + SkinManager.BackgroundHoverRedColor : // error state SkinManager.TextDisabledOrHintColor, // Disabled hintRect.Location, hintRect.Size, - textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); } } } @@ -327,6 +709,50 @@ protected override void OnTextChanged(EventArgs e) Invalidate(); } + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + if (DesignMode) + return; + + if (_textfieldBounds.Contains(e.Location)) + { + Cursor = Cursors.IBeam; + } + else if (LeadingIcon != null && _leadingIconBounds.Contains(e.Location) && LeadingIconClick != null) + { + Cursor = Cursors.Hand; + } + else if (TrailingIcon != null && _trailingIconBounds.Contains(e.Location) && TrailingIconClick != null) + { + Cursor = Cursors.Hand; + } + else + { + Cursor = Cursors.Default; + } + + } + + protected override void OnMouseDown(MouseEventArgs e) + { + if (LeadingIcon != null && _leadingIconBounds.Contains(e.Location)) + { + LeadingIconClick?.Invoke(this, new EventArgs()); + } + else if (TrailingIcon != null && _trailingIconBounds.Contains(e.Location)) + { + TrailingIconClick?.Invoke(this, new EventArgs()); + } + else + { + if (DesignMode) + return; + } + base.OnMouseDown(e); + } + protected override void OnSelectionChanged(EventArgs e) { base.OnSelectionChanged(e); @@ -338,6 +764,20 @@ protected override void OnResize(EventArgs e) base.OnResize(e); Size = new Size(Width, HEIGHT); LINE_Y = HEIGHT - BOTTOM_PADDING; + UpdateRects(false); + preProcessIcons(); + + if (DesignMode) + { + //Below code helps to redraw images in design mode only + Image _tmpimage; + _tmpimage = LeadingIcon; + LeadingIcon = null; + LeadingIcon = _tmpimage; + _tmpimage = TrailingIcon; + TrailingIcon = null; + TrailingIcon = _tmpimage; + } } private void ContextMenuStripOnItemClickStart(object sender, ToolStripItemClickedEventArgs toolStripItemClickedEventArgs) @@ -371,14 +811,24 @@ private void ContextMenuStripOnOpening(object sender, CancelEventArgs cancelEven var strip = sender as TextBoxContextMenuStrip; if (strip != null) { - strip.Cut.Enabled = !string.IsNullOrEmpty(SelectedText); + strip.Cut.Enabled = !string.IsNullOrEmpty(SelectedText) && !ReadOnly; strip.Copy.Enabled = !string.IsNullOrEmpty(SelectedText); - strip.Paste.Enabled = Clipboard.ContainsText(); - strip.Delete.Enabled = !string.IsNullOrEmpty(SelectedText); + strip.Paste.Enabled = Clipboard.ContainsText() && !ReadOnly; + strip.Delete.Enabled = !string.IsNullOrEmpty(SelectedText) && !ReadOnly; strip.SelectAll.Enabled = !string.IsNullOrEmpty(Text); } } + private void LeaveOnEnterKey_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + e.Handled = true; + e.SuppressKeyPress = true; + SendKeys.Send("{TAB}"); + } + } + // Cursor flickering fix private const int WM_SETCURSOR = 0x0020; @@ -418,6 +868,7 @@ public RECT(Rectangle r) : this(r.Left, r.Top, r.Right, r.Bottom) } } + [ToolboxItem(false)] public class TextBoxContextMenuStrip : MaterialContextMenuStrip { public readonly ToolStripItem SelectAll = new MaterialToolStripMenuItem { Text = "Select All" }; @@ -441,4 +892,4 @@ public TextBoxContextMenuStrip() ); } } -} \ No newline at end of file +} diff --git a/MaterialSkin/Controls/MaterialTextBox2.cs b/MaterialSkin/Controls/MaterialTextBox2.cs new file mode 100644 index 00000000..389c91b3 --- /dev/null +++ b/MaterialSkin/Controls/MaterialTextBox2.cs @@ -0,0 +1,1967 @@ +namespace MaterialSkin.Controls +{ + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Imaging; + using System.Windows.Forms; + using MaterialSkin.Animations; + + public class MaterialTextBox2 : Control, IMaterialControl + { + + MaterialContextMenuStrip cms = new BaseTextBoxContextMenuStrip(); + ContextMenuStrip _lastContextMenuStrip = new ContextMenuStrip(); + + //Properties for managing the material design properties + [Browsable(false)] + public int Depth { get; set; } + + [Browsable(false)] + public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; + + [Browsable(false)] + public MouseState MouseState { get; set; } + + //Unused properties + [Browsable(false)] + public override System.Drawing.Image BackgroundImage { get; set; } + + [Browsable(false)] + public override System.Windows.Forms.ImageLayout BackgroundImageLayout { get; set; } + + [Browsable(false)] + public string SelectedText { get { return baseTextBox.SelectedText; } set { baseTextBox.SelectedText = value; } } + + [Browsable(false)] + public int SelectionStart { get { return baseTextBox.SelectionStart; } set { baseTextBox.SelectionStart = value; } } + + [Browsable(false)] + public int SelectionLength { get { return baseTextBox.SelectionLength; } set { baseTextBox.SelectionLength = value; } } + + [Browsable(false)] + public int TextLength { get { return baseTextBox.TextLength; } } + + [Browsable(false)] + public override System.Drawing.Color ForeColor { get; set; } + + + //Material Skin properties + + private bool _UseTallSize; + + [Category("Material Skin"), DefaultValue(true), Description("Using a larger size enables the hint to always be visible")] + public bool UseTallSize + { + get { return _UseTallSize; } + set + { + _UseTallSize = value; + UpdateHeight(); + UpdateRects(); + Invalidate(); + } + } + + private bool _showAssistiveText; + [Category("Material Skin"), DefaultValue(false), Description("Assistive elements provide additional detail about text entered into text fields. Could be Helper text or Error message.")] + public bool ShowAssistiveText + { + get { return _showAssistiveText; } + set + { + _showAssistiveText = value; + if (_showAssistiveText) + _helperTextHeight = HELPER_TEXT_HEIGHT; + else + _helperTextHeight = 0; + UpdateHeight(); + //UpdateRects(); + Invalidate(); + } + } + + private string _helperText; + + [Category("Material Skin"), DefaultValue(""), Localizable(true), Description("Helper text conveys additional guidance about the input field, such as how it will be used.")] + public string HelperText + { + get { return _helperText; } + set + { + _helperText = value; + Invalidate(); + } + } + + private string _errorMessage; + + [Category("Material Skin"), DefaultValue(""), Localizable(true), Description("When text input isn't accepted, an error message can display instructions on how to fix it. Error messages are displayed below the input line, replacing helper text until fixed.")] + public string ErrorMessage + { + get { return _errorMessage; } + set + { + _errorMessage = value; + Invalidate(); + } + } + + [Category("Material Skin"), DefaultValue(""), Localizable(true)] + public string Hint + { + get { return baseTextBox.Hint; } + set + { + baseTextBox.Hint = value; + hasHint = !String.IsNullOrEmpty(baseTextBox.Hint); + UpdateRects(); + Invalidate(); + } + } + + [Category("Material Skin"), DefaultValue(true)] + public bool UseAccent { get; set; } + + private Image _leadingIcon; + + [Category("Material Skin"), Browsable(true), Localizable(false)] + /// + /// Gets or sets the leading Icon + /// + public Image LeadingIcon + { + get { return _leadingIcon; } + set + { + _leadingIcon = value; + UpdateRects(); + preProcessIcons(); + Invalidate(); + } + } + + private Image _trailingIcon; + + [Category("Material Skin"), Browsable(true), Localizable(false)] + /// + /// Gets or sets the trailing Icon + /// + public Image TrailingIcon + { + get { return _trailingIcon; } + set + { + _trailingIcon = value; + UpdateRects(); + preProcessIcons(); + Invalidate(); + } + } + + public enum PrefixSuffixTypes + { + None, + Prefix, + Suffix, + } + + private PrefixSuffixTypes _prefixsuffix; + [Category("Material Skin"), DefaultValue(PrefixSuffixTypes.None), Description("Set Prefix/Suffix/None")] + public PrefixSuffixTypes PrefixSuffix + { + get { return _prefixsuffix; } + set + { + _prefixsuffix = value; + UpdateRects(); //Génére une nullref exception + if (_prefixsuffix == PrefixSuffixTypes.Suffix) + RightToLeft = RightToLeft.Yes; + else + RightToLeft = RightToLeft.No; + Invalidate(); + } + } + + private string _prefixsuffixText; + [Category("Material Skin"), DefaultValue(""), Localizable(true), Description("Set Prefix or Suffix text")] + public string PrefixSuffixText + { + get { return _prefixsuffixText; } + set + { + //if (_prefixsuffixText != value) + //{ + _prefixsuffixText = value; + UpdateRects(); + Invalidate(); + //} + } + } + + //TextBox properties + + public override ContextMenuStrip ContextMenuStrip + { + get { return baseTextBox.ContextMenuStrip; } + set + { + if (value != null) + { + //ContextMenuStrip = value; + baseTextBox.ContextMenuStrip = value; + base.ContextMenuStrip = value; + } + else + { + //ContextMenuStrip = cms; + baseTextBox.ContextMenuStrip = cms; + base.ContextMenuStrip = cms; + } + _lastContextMenuStrip = base.ContextMenuStrip; + } + } + + [Browsable(false)] + public override Color BackColor { get { return Parent == null ? SkinManager.BackgroundColor : Parent.BackColor; } } + + public override string Text { get { return baseTextBox.Text; } set { baseTextBox.Text = value; UpdateRects(); } } + + [Category("Appearance")] + public HorizontalAlignment TextAlign { get { return baseTextBox.TextAlign; } set { baseTextBox.TextAlign = value; } } + + [Category("Behavior")] + public CharacterCasing CharacterCasing { get { return baseTextBox.CharacterCasing; } set { baseTextBox.CharacterCasing = value; } } + + [Category("Behavior")] + public bool HideSelection { get { return baseTextBox.HideSelection; } set { baseTextBox.HideSelection = value; } } + + [Category("Behavior")] + public int MaxLength { get { return baseTextBox.MaxLength; } set { baseTextBox.MaxLength = value; } } + + [Category("Behavior")] + public char PasswordChar { get { return baseTextBox.PasswordChar; } set { baseTextBox.PasswordChar = value; } } + + [Category("Behavior")] + public bool ShortcutsEnabled + { + get + { return baseTextBox.ShortcutsEnabled; } + set + { + baseTextBox.ShortcutsEnabled = value; + if (value == false) + { + baseTextBox.ContextMenuStrip = null; + base.ContextMenuStrip = null; + } + else + { + baseTextBox.ContextMenuStrip = _lastContextMenuStrip; + base.ContextMenuStrip = _lastContextMenuStrip; + } + } + } + + [Category("Behavior")] + public bool UseSystemPasswordChar { get { return baseTextBox.UseSystemPasswordChar; } set { baseTextBox.UseSystemPasswordChar = value; } } + + public new object Tag { get { return baseTextBox.Tag; } set { baseTextBox.Tag = value; } } + + private bool _readonly; + [Category("Behavior")] + public bool ReadOnly + { + get { return _readonly; } + set + { + _readonly = value; + if (Enabled == true) + { + baseTextBox.ReadOnly = _readonly; + } + this.Invalidate(); + } + } + + private bool _animateReadOnly; + + [Category("Material Skin")] + [Browsable(true)] + public bool AnimateReadOnly + { + get => _animateReadOnly; + set + { + _animateReadOnly = value; + Invalidate(); + } + } + + private bool _leaveOnEnterKey; + + [Category("Material Skin"), DefaultValue(false), Description("Select next control which have TabStop property set to True when enter key is pressed.")] + public bool LeaveOnEnterKey + { + get => _leaveOnEnterKey; + set + { + _leaveOnEnterKey = value; + if (value) + { + baseTextBox.KeyDown += new KeyEventHandler(LeaveOnEnterKey_KeyDown); + } + else + { + baseTextBox.KeyDown -= LeaveOnEnterKey_KeyDown; + } + Invalidate(); + } + } + + public AutoCompleteStringCollection AutoCompleteCustomSource { get { return baseTextBox.AutoCompleteCustomSource; } set { baseTextBox.AutoCompleteCustomSource = value; } } + + public AutoCompleteSource AutoCompleteSource { get { return baseTextBox.AutoCompleteSource; } set { baseTextBox.AutoCompleteSource = value; } } + + public AutoCompleteMode AutoCompleteMode { get { return baseTextBox.AutoCompleteMode; } set { baseTextBox.AutoCompleteMode = value; } } + + public void SelectAll() { baseTextBox.SelectAll(); } + + public void Clear() { baseTextBox.Clear(); } + + public void Copy() { baseTextBox.Copy(); } + + public void Cut() { baseTextBox.Cut(); } + + public void Undo() { baseTextBox.Undo(); } + + public void Paste() { baseTextBox.Paste(); } + + #region "Events" + + [Category("Action")] + [Description("Fires when Leading Icon is clicked")] + public event EventHandler LeadingIconClick; + + [Category("Action")] + [Description("Fires when Trailing Icon is clicked")] + public event EventHandler TrailingIconClick; + + #endregion + + # region Forwarding events to baseTextBox + + public event EventHandler AcceptsTabChanged + { + add + { + baseTextBox.AcceptsTabChanged += value; + } + remove + { + baseTextBox.AcceptsTabChanged -= value; + } + } + + public new event EventHandler AutoSizeChanged + { + add + { + baseTextBox.AutoSizeChanged += value; + } + remove + { + baseTextBox.AutoSizeChanged -= value; + } + } + + public new event EventHandler BackgroundImageChanged + { + add + { + baseTextBox.BackgroundImageChanged += value; + } + remove + { + baseTextBox.BackgroundImageChanged -= value; + } + } + + public new event EventHandler BackgroundImageLayoutChanged + { + add + { + baseTextBox.BackgroundImageLayoutChanged += value; + } + remove + { + baseTextBox.BackgroundImageLayoutChanged -= value; + } + } + + public new event EventHandler BindingContextChanged + { + add + { + baseTextBox.BindingContextChanged += value; + } + remove + { + baseTextBox.BindingContextChanged -= value; + } + } + + public event EventHandler BorderStyleChanged + { + add + { + baseTextBox.BorderStyleChanged += value; + } + remove + { + baseTextBox.BorderStyleChanged -= value; + } + } + + public new event EventHandler CausesValidationChanged + { + add + { + baseTextBox.CausesValidationChanged += value; + } + remove + { + baseTextBox.CausesValidationChanged -= value; + } + } + + public new event UICuesEventHandler ChangeUICues + { + add + { + baseTextBox.ChangeUICues += value; + } + remove + { + baseTextBox.ChangeUICues -= value; + } + } + + public new event EventHandler Click + { + add + { + baseTextBox.Click += value; + } + remove + { + baseTextBox.Click -= value; + } + } + + public new event EventHandler ClientSizeChanged + { + add + { + baseTextBox.ClientSizeChanged += value; + } + remove + { + baseTextBox.ClientSizeChanged -= value; + } + } + + #if NETFRAMEWORK + public new event EventHandler ContextMenuChanged + { + add + { + baseTextBox.ContextMenuChanged += value; + } + remove + { + baseTextBox.ContextMenuChanged -= value; + } + } + #endif + + public new event EventHandler ContextMenuStripChanged + { + add + { + baseTextBox.ContextMenuStripChanged += value; + } + remove + { + baseTextBox.ContextMenuStripChanged -= value; + } + } + + public new event ControlEventHandler ControlAdded + { + add + { + baseTextBox.ControlAdded += value; + } + remove + { + baseTextBox.ControlAdded -= value; + } + } + + public new event ControlEventHandler ControlRemoved + { + add + { + baseTextBox.ControlRemoved += value; + } + remove + { + baseTextBox.ControlRemoved -= value; + } + } + + public new event EventHandler CursorChanged + { + add + { + baseTextBox.CursorChanged += value; + } + remove + { + baseTextBox.CursorChanged -= value; + } + } + + public new event EventHandler Disposed + { + add + { + baseTextBox.Disposed += value; + } + remove + { + baseTextBox.Disposed -= value; + } + } + + public new event EventHandler DockChanged + { + add + { + baseTextBox.DockChanged += value; + } + remove + { + baseTextBox.DockChanged -= value; + } + } + + public new event EventHandler DoubleClick + { + add + { + baseTextBox.DoubleClick += value; + } + remove + { + baseTextBox.DoubleClick -= value; + } + } + + public new event DragEventHandler DragDrop + { + add + { + baseTextBox.DragDrop += value; + } + remove + { + baseTextBox.DragDrop -= value; + } + } + + public new event DragEventHandler DragEnter + { + add + { + baseTextBox.DragEnter += value; + } + remove + { + baseTextBox.DragEnter -= value; + } + } + + public new event EventHandler DragLeave + { + add + { + baseTextBox.DragLeave += value; + } + remove + { + baseTextBox.DragLeave -= value; + } + } + + public new event DragEventHandler DragOver + { + add + { + baseTextBox.DragOver += value; + } + remove + { + baseTextBox.DragOver -= value; + } + } + + public new event EventHandler EnabledChanged + { + add + { + baseTextBox.EnabledChanged += value; + } + remove + { + baseTextBox.EnabledChanged -= value; + } + } + + public new event EventHandler Enter + { + add + { + baseTextBox.Enter += value; + } + remove + { + baseTextBox.Enter -= value; + } + } + + public new event EventHandler FontChanged + { + add + { + baseTextBox.FontChanged += value; + } + remove + { + baseTextBox.FontChanged -= value; + } + } + + public new event EventHandler ForeColorChanged + { + add + { + baseTextBox.ForeColorChanged += value; + } + remove + { + baseTextBox.ForeColorChanged -= value; + } + } + + public new event GiveFeedbackEventHandler GiveFeedback + { + add + { + baseTextBox.GiveFeedback += value; + } + remove + { + baseTextBox.GiveFeedback -= value; + } + } + + public new event EventHandler GotFocus + { + add + { + baseTextBox.GotFocus += value; + } + remove + { + baseTextBox.GotFocus -= value; + } + } + + public new event EventHandler HandleCreated + { + add + { + baseTextBox.HandleCreated += value; + } + remove + { + baseTextBox.HandleCreated -= value; + } + } + + public new event EventHandler HandleDestroyed + { + add + { + baseTextBox.HandleDestroyed += value; + } + remove + { + baseTextBox.HandleDestroyed -= value; + } + } + + public new event HelpEventHandler HelpRequested + { + add + { + baseTextBox.HelpRequested += value; + } + remove + { + baseTextBox.HelpRequested -= value; + } + } + + public event EventHandler HideSelectionChanged + { + add + { + baseTextBox.HideSelectionChanged += value; + } + remove + { + baseTextBox.HideSelectionChanged -= value; + } + } + + public new event EventHandler ImeModeChanged + { + add + { + baseTextBox.ImeModeChanged += value; + } + remove + { + baseTextBox.ImeModeChanged -= value; + } + } + + public new event InvalidateEventHandler Invalidated + { + add + { + baseTextBox.Invalidated += value; + } + remove + { + baseTextBox.Invalidated -= value; + } + } + + public new event KeyEventHandler KeyDown + { + add + { + baseTextBox.KeyDown += value; + } + remove + { + baseTextBox.KeyDown -= value; + } + } + + public new event KeyPressEventHandler KeyPress + { + add + { + baseTextBox.KeyPress += value; + } + remove + { + baseTextBox.KeyPress -= value; + } + } + + public new event KeyEventHandler KeyUp + { + add + { + baseTextBox.KeyUp += value; + } + remove + { + baseTextBox.KeyUp -= value; + } + } + + public new event LayoutEventHandler Layout + { + add + { + baseTextBox.Layout += value; + } + remove + { + baseTextBox.Layout -= value; + } + } + + public new event EventHandler Leave + { + add + { + baseTextBox.Leave += value; + } + remove + { + baseTextBox.Leave -= value; + } + } + + public new event EventHandler LocationChanged + { + add + { + baseTextBox.LocationChanged += value; + } + remove + { + baseTextBox.LocationChanged -= value; + } + } + + public new event EventHandler LostFocus + { + add + { + baseTextBox.LostFocus += value; + } + remove + { + baseTextBox.LostFocus -= value; + } + } + + public new event EventHandler MarginChanged + { + add + { + baseTextBox.MarginChanged += value; + } + remove + { + baseTextBox.MarginChanged -= value; + } + } + + public event EventHandler ModifiedChanged + { + add + { + baseTextBox.ModifiedChanged += value; + } + remove + { + baseTextBox.ModifiedChanged -= value; + } + } + + public new event EventHandler MouseCaptureChanged + { + add + { + baseTextBox.MouseCaptureChanged += value; + } + remove + { + baseTextBox.MouseCaptureChanged -= value; + } + } + + public new event MouseEventHandler MouseClick + { + add + { + baseTextBox.MouseClick += value; + } + remove + { + baseTextBox.MouseClick -= value; + } + } + + public new event MouseEventHandler MouseDoubleClick + { + add + { + baseTextBox.MouseDoubleClick += value; + } + remove + { + baseTextBox.MouseDoubleClick -= value; + } + } + + public new event MouseEventHandler MouseDown + { + add + { + baseTextBox.MouseDown += value; + } + remove + { + baseTextBox.MouseDown -= value; + } + } + + public new event EventHandler MouseEnter + { + add + { + baseTextBox.MouseEnter += value; + } + remove + { + baseTextBox.MouseEnter -= value; + } + } + + public new event EventHandler MouseHover + { + add + { + baseTextBox.MouseHover += value; + } + remove + { + baseTextBox.MouseHover -= value; + } + } + + public new event EventHandler MouseLeave + { + add + { + baseTextBox.MouseLeave += value; + } + remove + { + baseTextBox.MouseLeave -= value; + } + } + + public new event MouseEventHandler MouseMove + { + add + { + baseTextBox.MouseMove += value; + } + remove + { + baseTextBox.MouseMove -= value; + } + } + + public new event MouseEventHandler MouseUp + { + add + { + baseTextBox.MouseUp += value; + } + remove + { + baseTextBox.MouseUp -= value; + } + } + + public new event MouseEventHandler MouseWheel + { + add + { + baseTextBox.MouseWheel += value; + } + remove + { + baseTextBox.MouseWheel -= value; + } + } + + public new event EventHandler Move + { + add + { + baseTextBox.Move += value; + } + remove + { + baseTextBox.Move -= value; + } + } + + public event EventHandler MultilineChanged + { + add + { + baseTextBox.MultilineChanged += value; + } + remove + { + baseTextBox.MultilineChanged -= value; + } + } + + public new event EventHandler PaddingChanged + { + add + { + baseTextBox.PaddingChanged += value; + } + remove + { + baseTextBox.PaddingChanged -= value; + } + } + + public new event PaintEventHandler Paint + { + add + { + baseTextBox.Paint += value; + } + remove + { + baseTextBox.Paint -= value; + } + } + + public new event EventHandler ParentChanged + { + add + { + baseTextBox.ParentChanged += value; + } + remove + { + baseTextBox.ParentChanged -= value; + } + } + + public new event PreviewKeyDownEventHandler PreviewKeyDown + { + add + { + baseTextBox.PreviewKeyDown += value; + } + remove + { + baseTextBox.PreviewKeyDown -= value; + } + } + + public new event QueryAccessibilityHelpEventHandler QueryAccessibilityHelp + { + add + { + baseTextBox.QueryAccessibilityHelp += value; + } + remove + { + baseTextBox.QueryAccessibilityHelp -= value; + } + } + + public new event QueryContinueDragEventHandler QueryContinueDrag + { + add + { + baseTextBox.QueryContinueDrag += value; + } + remove + { + baseTextBox.QueryContinueDrag -= value; + } + } + + public event EventHandler ReadOnlyChanged + { + add + { + baseTextBox.ReadOnlyChanged += value; + } + remove + { + baseTextBox.ReadOnlyChanged -= value; + } + } + + public new event EventHandler RegionChanged + { + add + { + baseTextBox.RegionChanged += value; + } + remove + { + baseTextBox.RegionChanged -= value; + } + } + + public new event EventHandler Resize + { + add + { + baseTextBox.Resize += value; + } + remove + { + baseTextBox.Resize -= value; + } + } + + public new event EventHandler RightToLeftChanged + { + add + { + baseTextBox.RightToLeftChanged += value; + } + remove + { + baseTextBox.RightToLeftChanged -= value; + } + } + + public new event EventHandler SizeChanged + { + add + { + baseTextBox.SizeChanged += value; + } + remove + { + baseTextBox.SizeChanged -= value; + } + } + + public new event EventHandler StyleChanged + { + add + { + baseTextBox.StyleChanged += value; + } + remove + { + baseTextBox.StyleChanged -= value; + } + } + + public new event EventHandler SystemColorsChanged + { + add + { + baseTextBox.SystemColorsChanged += value; + } + remove + { + baseTextBox.SystemColorsChanged -= value; + } + } + + public new event EventHandler TabIndexChanged + { + add + { + baseTextBox.TabIndexChanged += value; + } + remove + { + baseTextBox.TabIndexChanged -= value; + } + } + + public new event EventHandler TabStopChanged + { + add + { + baseTextBox.TabStopChanged += value; + } + remove + { + baseTextBox.TabStopChanged -= value; + } + } + + public event EventHandler TextAlignChanged + { + add + { + baseTextBox.TextAlignChanged += value; + } + remove + { + baseTextBox.TextAlignChanged -= value; + } + } + + public new event EventHandler TextChanged + { + add + { + baseTextBox.TextChanged += value; + } + remove + { + baseTextBox.TextChanged -= value; + } + } + + public new event EventHandler Validated + { + add + { + baseTextBox.Validated += value; + } + remove + { + baseTextBox.Validated -= value; + } + } + + public new event CancelEventHandler Validating + { + add + { + baseTextBox.Validating += value; + } + remove + { + baseTextBox.Validating -= value; + } + } + + public new event EventHandler VisibleChanged + { + add + { + baseTextBox.VisibleChanged += value; + } + remove + { + baseTextBox.VisibleChanged -= value; + } + } + # endregion + + private readonly AnimationManager _animationManager; + + public bool isFocused = false; + private const int PREFIX_SUFFIX_PADDING = 4; + private const int ICON_SIZE = 24; + private const int HINT_TEXT_SMALL_SIZE = 18; + private const int HINT_TEXT_SMALL_Y = 4; + private const int LEFT_PADDING = 16; + private const int RIGHT_PADDING = 12; + private const int ACTIVATION_INDICATOR_HEIGHT = 2; + private const int HELPER_TEXT_HEIGHT = 16; + private const int FONT_HEIGHT = 20; + + private int HEIGHT = 48; + + private int LINE_Y; + private bool hasHint; + private bool _errorState = false; + private int _left_padding; + private int _right_padding; + private int _prefix_padding; + private int _suffix_padding; + private int _helperTextHeight; + private Rectangle _leadingIconBounds; + private Rectangle _trailingIconBounds; + + private Dictionary iconsBrushes; + private Dictionary iconsErrorBrushes; + + protected readonly BaseTextBox baseTextBox; + + public MaterialTextBox2() + { + // Material Properties + UseAccent = true; + MouseState = MouseState.OUT; + + SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.DoubleBuffer, true); + + // Animations + _animationManager = new AnimationManager + { + Increment = 0.06, + AnimationType = AnimationType.EaseInOut, + InterruptAnimation = false + }; + _animationManager.OnAnimationProgress += sender => Invalidate(); + + SkinManager.ColorSchemeChanged += sender => + { + preProcessIcons(); + }; + + SkinManager.ThemeChanged += sender => + { + preProcessIcons(); + }; + + Font = SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft); + + baseTextBox = new BaseTextBox + { + BorderStyle = BorderStyle.None, + Font = base.Font, + ForeColor = SkinManager.TextHighEmphasisColor, + Multiline = false, + Location = new Point(LEFT_PADDING, HEIGHT/2- FONT_HEIGHT/2), + Width = Width - (LEFT_PADDING + RIGHT_PADDING), + Height = FONT_HEIGHT + }; + + Enabled = true; + ReadOnly = false; + Size = new Size(250, HEIGHT); + + UseTallSize = true; + PrefixSuffix = PrefixSuffixTypes.None; + ShowAssistiveText = false; + HelperText = string.Empty; + ErrorMessage = string.Empty; + + if (!Controls.Contains(baseTextBox) && !DesignMode) + { + Controls.Add(baseTextBox); + } + + baseTextBox.GotFocus += (sender, args) => + { + if (Enabled) + { + isFocused = true; + _animationManager.StartNewAnimation(AnimationDirection.In); + } + else + base.Focus(); + UpdateRects(); + }; + baseTextBox.LostFocus += (sender, args) => + { + isFocused = false; + _animationManager.StartNewAnimation(AnimationDirection.Out); + UpdateRects(); + }; + + baseTextBox.TextChanged += new EventHandler(Redraw); + baseTextBox.BackColorChanged += new EventHandler(Redraw); + + baseTextBox.TabStop = true; + this.TabStop = false; + + cms.Opening += ContextMenuStripOnOpening; + cms.OnItemClickStart += ContextMenuStripOnItemClickStart; + ContextMenuStrip = cms; + } + + private void Redraw(object sencer, EventArgs e) + { + SuspendLayout(); + Invalidate(); + ResumeLayout(false); + } + + protected override void OnPaint(PaintEventArgs pevent) + { + var g = pevent.Graphics; + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + g.Clear(Parent.BackColor); + SolidBrush backBrush = new SolidBrush(DrawHelper.BlendColor(Parent.BackColor, SkinManager.BackgroundAlternativeColor, SkinManager.BackgroundAlternativeColor.A)); + + //backColor + g.FillRectangle( + !Enabled ? SkinManager.BackgroundDisabledBrush : // Disabled + isFocused ? SkinManager.BackgroundFocusBrush : // Focused + MouseState == MouseState.HOVER && (!ReadOnly || (ReadOnly && !AnimateReadOnly)) ? SkinManager.BackgroundHoverBrush : // Hover + backBrush, // Normal + ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, LINE_Y); + + baseTextBox.BackColor = !Enabled ? ColorHelper.RemoveAlpha(SkinManager.BackgroundDisabledColor, BackColor) : //Disabled + isFocused ? DrawHelper.BlendColor(BackColor, SkinManager.BackgroundFocusColor, SkinManager.BackgroundFocusColor.A) : //Focused + MouseState == MouseState.HOVER && (!ReadOnly || (ReadOnly && !AnimateReadOnly)) ? DrawHelper.BlendColor(BackColor, SkinManager.BackgroundHoverColor, SkinManager.BackgroundHoverColor.A) : // Hover + DrawHelper.BlendColor(BackColor, SkinManager.BackgroundAlternativeColor, SkinManager.BackgroundAlternativeColor.A); // Normal + + //Leading Icon + if (LeadingIcon != null) + { + if (_errorState) + g.FillRectangle(iconsErrorBrushes["_leadingIcon"], _leadingIconBounds); + else + g.FillRectangle(iconsBrushes["_leadingIcon"], _leadingIconBounds); + } + + //Trailing Icon + if (TrailingIcon != null) + { + if (_errorState) + g.FillRectangle(iconsErrorBrushes["_trailingIcon"], _trailingIconBounds); + else + g.FillRectangle(iconsBrushes["_trailingIcon"], _trailingIconBounds); + } + + // HintText + bool userTextPresent = !String.IsNullOrEmpty(Text); + Rectangle helperTextRect = new Rectangle(LEFT_PADDING - _prefix_padding, LINE_Y + ACTIVATION_INDICATOR_HEIGHT, Width - (LEFT_PADDING - _prefix_padding) - _right_padding, HELPER_TEXT_HEIGHT); + Rectangle hintRect = new Rectangle(_left_padding - _prefix_padding, HINT_TEXT_SMALL_Y, Width - (_left_padding - _prefix_padding) - _right_padding, HINT_TEXT_SMALL_SIZE); + int hintTextSize = 12; + + // bottom line base + g.FillRectangle(SkinManager.DividersAlternativeBrush, 0, LINE_Y, Width, 1); + + if (ReadOnly == false || (ReadOnly && AnimateReadOnly)) + { + if (!_animationManager.IsAnimating()) + { + // No animation + + // bottom line + if (isFocused) + { + g.FillRectangle(_errorState ? SkinManager.BackgroundHoverRedBrush : isFocused ? UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush : SkinManager.DividersBrush, 0, LINE_Y, Width, isFocused ? 2 : 1); + } + } + else + { + // Animate - Focus got/lost + double animationProgress = _animationManager.GetProgress(); + + // Line Animation + int LineAnimationWidth = (int)(Width * animationProgress); + int LineAnimationX = (Width / 2) - (LineAnimationWidth / 2); + g.FillRectangle(UseAccent ? SkinManager.ColorScheme.AccentBrush : SkinManager.ColorScheme.PrimaryBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); + } + } + + // Prefix: + if (_prefixsuffix == PrefixSuffixTypes.Prefix && _prefixsuffixText != null && _prefixsuffixText.Length > 0 && (isFocused || userTextPresent || !hasHint)) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + Rectangle prefixRect = new Rectangle( + _left_padding - _prefix_padding, + hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, +// NativeText.MeasureLogString(_prefixsuffixText, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width, + _prefix_padding, + hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); + + // Draw Prefix text + NativeText.DrawTransparentText( + _prefixsuffixText, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), + Enabled ? SkinManager.TextMediumEmphasisColor : SkinManager.TextDisabledOrHintColor, + prefixRect.Location, + prefixRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + // Suffix: + if (_prefixsuffix == PrefixSuffixTypes.Suffix && _prefixsuffixText != null && _prefixsuffixText.Length > 0 && (isFocused || userTextPresent || !hasHint)) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + Rectangle suffixRect = new Rectangle( + Width - _right_padding , + hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, + //NativeText.MeasureLogString(_prefixsuffixText, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1)).Width + PREFIX_SUFFIX_PADDING, + _suffix_padding, + hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); + + // Draw Suffix text + NativeText.DrawTransparentText( + _prefixsuffixText, + SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), + Enabled ? SkinManager.TextMediumEmphasisColor : SkinManager.TextDisabledOrHintColor, + suffixRect.Location, + suffixRect.Size, + NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + // Draw hint text + if(hasHint && UseTallSize && (isFocused || userTextPresent)) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + Hint, + SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), + Enabled ? !_errorState || (!userTextPresent && !isFocused) ? isFocused ? UseAccent ? + SkinManager.ColorScheme.AccentColor : // Focus Accent + SkinManager.ColorScheme.PrimaryColor : // Focus Primary + SkinManager.TextMediumEmphasisColor : // not focused + SkinManager.BackgroundHoverRedColor : // error state + SkinManager.TextDisabledOrHintColor, // Disabled + hintRect.Location, + hintRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + // Draw helper text + if (_showAssistiveText && isFocused && !_errorState) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + HelperText, + SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), + Enabled ? !_errorState || (!userTextPresent && !isFocused) ? isFocused ? UseAccent ? + SkinManager.ColorScheme.AccentColor : // Focus Accent + SkinManager.ColorScheme.PrimaryColor : // Focus Primary + SkinManager.TextMediumEmphasisColor : // not focused + SkinManager.BackgroundHoverRedColor : // error state + SkinManager.TextDisabledOrHintColor, // Disabled + helperTextRect.Location, + helperTextRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + // Draw error message + if (_showAssistiveText && _errorState && ErrorMessage!=null) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + { + NativeText.DrawTransparentText( + ErrorMessage, + SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), + Enabled ? + SkinManager.BackgroundHoverRedColor : // error state + SkinManager.TextDisabledOrHintColor, // Disabled + helperTextRect.Location, + helperTextRect.Size, + NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + } + } + + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + if (DesignMode) + return; + + if (LeadingIcon != null && _leadingIconBounds.Contains(e.Location) && LeadingIconClick != null) + { + Cursor = Cursors.Hand; + } + else if (TrailingIcon != null && _trailingIconBounds.Contains(e.Location) && TrailingIconClick != null) + { + Cursor = Cursors.Hand; + } + else + { + Cursor = Cursors.IBeam; + } + + } + + protected override void OnMouseDown(MouseEventArgs e) + { + if (DesignMode) + return; + + if (LeadingIcon != null && _leadingIconBounds.Contains(e.Location)) + { + LeadingIconClick?.Invoke(this, new EventArgs()); + } + else if (TrailingIcon != null && _trailingIconBounds.Contains(e.Location)) + { + TrailingIconClick?.Invoke(this, new EventArgs()); + } + else + { + baseTextBox?.Focus(); + } + base.OnMouseDown(e); + + } + protected override void OnMouseEnter(EventArgs e) + { + if (DesignMode) + return; + + base.OnMouseEnter(e); + MouseState = MouseState.HOVER; + Invalidate(); + } + + protected override void OnMouseLeave(EventArgs e) + { + if (DesignMode) + return; + + if (this.ClientRectangle.Contains(this.PointToClient(Control.MousePosition))) + return; + else + { + base.OnMouseLeave(e); + MouseState = MouseState.OUT; + Invalidate(); + } + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + UpdateRects(); + preProcessIcons(); + + Size = new Size(Width, HEIGHT); + LINE_Y = HEIGHT - ACTIVATION_INDICATOR_HEIGHT - _helperTextHeight; + + } + + protected override void OnCreateControl() + { + base.OnCreateControl(); + + // events + MouseState = MouseState.OUT; + + } + + #region Icon + + private static Size ResizeIcon(Image Icon) + { + int newWidth, newHeight; + //Resize icon if greater than ICON_SIZE + if (Icon.Width > ICON_SIZE || Icon.Height > ICON_SIZE) + { + //calculate aspect ratio + float aspect = Icon.Width / (float)Icon.Height; + + //calculate new dimensions based on aspect ratio + newWidth = (int)(ICON_SIZE * aspect); + newHeight = (int)(newWidth / aspect); + + //if one of the two dimensions exceed the box dimensions + if (newWidth > ICON_SIZE || newHeight > ICON_SIZE) + { + //depending on which of the two exceeds the box dimensions set it as the box dimension and calculate the other one based on the aspect ratio + if (newWidth > newHeight) + { + newWidth = ICON_SIZE; + newHeight = (int)(newWidth / aspect); + } + else + { + newHeight = ICON_SIZE; + newWidth = (int)(newHeight * aspect); + } + } + } + else + { + newWidth = Icon.Width; + newHeight = Icon.Height; + } + + return new Size() + { + Height = newHeight, + Width = newWidth + }; + } + + private void preProcessIcons() + { + if (_trailingIcon == null && _leadingIcon == null) return; + + // Calculate lightness and color + float l = (SkinManager.Theme == MaterialSkinManager.Themes.LIGHT) ? 0f : 1f; + + // Create matrices + float[][] matrixGray = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, Enabled ? .7f : .3f, 0}, // alpha scale factor + new float[] { l, l, l, 0, 1}};// offset + + float[][] matrixRed = { + new float[] { 0, 0, 0, 0, 0}, // Red scale factor + new float[] { 0, 0, 0, 0, 0}, // Green scale factor + new float[] { 0, 0, 0, 0, 0}, // Blue scale factor + new float[] { 0, 0, 0, 1, 0}, // alpha scale factor + new float[] { 1, 0, 0, 0, 1}};// offset + + ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); + ColorMatrix colorMatrixRed = new ColorMatrix(matrixRed); + + ImageAttributes grayImageAttributes = new ImageAttributes(); + ImageAttributes redImageAttributes = new ImageAttributes(); + + // Set color matrices + grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + redImageAttributes.SetColorMatrix(colorMatrixRed, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + + // Create brushes + iconsBrushes = new Dictionary(2); + iconsErrorBrushes = new Dictionary(2); + + // Image Rect + Rectangle destRect = new Rectangle(0, 0, ICON_SIZE, ICON_SIZE); + + if (_leadingIcon != null) + { + // ******************** + // *** _leadingIcon *** + // ******************** + + //Resize icon if greater than ICON_SIZE + Size newSize_leadingIcon = ResizeIcon(_leadingIcon); + Bitmap _leadingIconIconResized = new Bitmap(_leadingIcon, newSize_leadingIcon.Width, newSize_leadingIcon.Height); + + // Create a pre-processed copy of the image (GRAY) + Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gGray = Graphics.FromImage(bgray)) + { + gGray.DrawImage(_leadingIconIconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, grayImageAttributes); + } + + //Create a pre - processed copy of the image(RED) + Bitmap bred = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gred = Graphics.FromImage(bred)) + { + gred.DrawImage(_leadingIconIconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, redImageAttributes); + } + + // added processed image to brush for drawing + TextureBrush textureBrushGray = new TextureBrush(bgray); + TextureBrush textureBrushRed = new TextureBrush(bred); + + textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + textureBrushRed.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + + var iconRect = _leadingIconBounds; + + textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _leadingIconIconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - _leadingIconIconResized.Height / 2); + textureBrushRed.TranslateTransform(iconRect.X + iconRect.Width / 2 - _leadingIconIconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - _leadingIconIconResized.Height / 2); + + // add to dictionary + iconsBrushes.Add("_leadingIcon", textureBrushGray); + + iconsErrorBrushes.Add("_leadingIcon", textureBrushRed); + + } + + if (_trailingIcon != null) + { + // ********************* + // *** _trailingIcon *** + // ********************* + + //Resize icon if greater than ICON_SIZE + Size newSize_trailingIcon = ResizeIcon(_trailingIcon); + Bitmap _trailingIconResized = new Bitmap(_trailingIcon, newSize_trailingIcon.Width, newSize_trailingIcon.Height); + + // Create a pre-processed copy of the image (GRAY) + Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gGray = Graphics.FromImage(bgray)) + { + gGray.DrawImage(_trailingIconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, grayImageAttributes); + } + + //Create a pre - processed copy of the image(RED) + Bitmap bred = new Bitmap(destRect.Width, destRect.Height); + using (Graphics gred = Graphics.FromImage(bred)) + { + gred.DrawImage(_trailingIconResized, + new Point[] { + new Point(0, 0), + new Point(destRect.Width, 0), + new Point(0, destRect.Height), + }, + destRect, GraphicsUnit.Pixel, redImageAttributes); + } + + + // added processed image to brush for drawing + TextureBrush textureBrushGray = new TextureBrush(bgray); + TextureBrush textureBrushRed = new TextureBrush(bred); + + textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + textureBrushRed.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; + + var iconRect = _trailingIconBounds; + + textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _trailingIconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - _trailingIconResized.Height / 2); + textureBrushRed.TranslateTransform(iconRect.X + iconRect.Width / 2 - _trailingIconResized.Width / 2, + iconRect.Y + iconRect.Height / 2 - _trailingIconResized.Height / 2); + + // add to dictionary + iconsBrushes.Add("_trailingIcon", textureBrushGray); + //iconsSelectedBrushes.Add(0, textureBrushColor); + iconsErrorBrushes.Add("_trailingIcon", textureBrushRed); + } + } + + #endregion + + private void UpdateHeight() + { + HEIGHT = _UseTallSize ? 48 : 36; + HEIGHT += _helperTextHeight; + Size = new Size(Size.Width, HEIGHT); + } + + private void UpdateRects() + { + if (LeadingIcon != null) + _left_padding = LEFT_PADDING + ICON_SIZE; + else + _left_padding = LEFT_PADDING; + + if (_trailingIcon != null) + _right_padding = RIGHT_PADDING + ICON_SIZE; + else + _right_padding = RIGHT_PADDING; + + if (_prefixsuffix == PrefixSuffixTypes.Prefix && _prefixsuffixText != null && _prefixsuffixText.Length > 0) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) + { + _prefix_padding = NativeText.MeasureLogString(_prefixsuffixText, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft)).Width + PREFIX_SUFFIX_PADDING; + _left_padding += _prefix_padding; + } + } + else + _prefix_padding = 0; + + if (_prefixsuffix == PrefixSuffixTypes.Suffix && _prefixsuffixText != null && _prefixsuffixText.Length > 0) + { + using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) + { + _suffix_padding = NativeText.MeasureLogString(_prefixsuffixText, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft)).Width + PREFIX_SUFFIX_PADDING; + _right_padding += _suffix_padding; + } + } + else + _suffix_padding = 0; + + if (hasHint && UseTallSize && (isFocused || !String.IsNullOrEmpty(Text))) + { + baseTextBox.Location = new Point(_left_padding, 22); + baseTextBox.Width = Width - (_left_padding + _right_padding); + baseTextBox.Height = FONT_HEIGHT; + } + else + { + baseTextBox.Location = new Point(_left_padding, (LINE_Y + ACTIVATION_INDICATOR_HEIGHT) / 2 - FONT_HEIGHT / 2); + baseTextBox.Width = Width - (_left_padding + _right_padding); + baseTextBox.Height = FONT_HEIGHT; + } + + _leadingIconBounds = new Rectangle(8, ((LINE_Y + ACTIVATION_INDICATOR_HEIGHT) / 2) - (ICON_SIZE / 2), ICON_SIZE, ICON_SIZE); + _trailingIconBounds = new Rectangle(Width - (ICON_SIZE + 8), ((LINE_Y + ACTIVATION_INDICATOR_HEIGHT) / 2) - (ICON_SIZE / 2), ICON_SIZE, ICON_SIZE); + } + + public void SetErrorState(bool ErrorState) + { + _errorState = ErrorState; + if (_errorState) + baseTextBox.ForeColor = SkinManager.BackgroundHoverRedColor; + else + baseTextBox.ForeColor = SkinManager.TextHighEmphasisColor; + baseTextBox.Invalidate(); + Invalidate(); + } + + public bool GetErrorState() + { + return _errorState; + } + + private void ContextMenuStripOnItemClickStart(object sender, ToolStripItemClickedEventArgs toolStripItemClickedEventArgs) + { + switch (toolStripItemClickedEventArgs.ClickedItem.Text) + { + case "Undo": + Undo(); + break; + case "Cut": + Cut(); + break; + case "Copy": + Copy(); + break; + case "Paste": + Paste(); + break; + case "Delete": + SelectedText = string.Empty; + break; + case "Select All": + SelectAll(); + break; + } + } + + private void ContextMenuStripOnOpening(object sender, CancelEventArgs cancelEventArgs) + { + var strip = sender as BaseTextBoxContextMenuStrip; + if (strip != null) + { + strip.undo.Enabled = baseTextBox.CanUndo && !ReadOnly; + strip.cut.Enabled = !string.IsNullOrEmpty(SelectedText) && !ReadOnly; + strip.copy.Enabled = !string.IsNullOrEmpty(SelectedText); + strip.paste.Enabled = Clipboard.ContainsText() && !ReadOnly; + strip.delete.Enabled = !string.IsNullOrEmpty(SelectedText) && !ReadOnly; + strip.selectAll.Enabled = !string.IsNullOrEmpty(Text); + } + } + + private void LeaveOnEnterKey_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + e.Handled = true; + e.SuppressKeyPress = true; + SendKeys.Send("{TAB}"); + } + } + } +} diff --git a/MaterialSkin/MaterialItemCollection.cs b/MaterialSkin/MaterialItemCollection.cs new file mode 100644 index 00000000..9c6263af --- /dev/null +++ b/MaterialSkin/MaterialItemCollection.cs @@ -0,0 +1,122 @@ +#region Imports + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Drawing.Design; +using System.Windows.Forms; + +#endregion + +namespace MaterialSkin +{ + #region MaterialItemCollectionChild + + [Editor(typeof(MaterialItemCollectionEditor), typeof(UITypeEditor))] + public class MaterialItemCollection : Collection + { + public event EventHandler ItemUpdated; + + public delegate void EventHandler(object sender, EventArgs e); + + public void AddRange(IEnumerable items) + { + foreach (object item in items) + { + Add(item); + } + } + + public void AddRange(string[] items) + { + foreach (object item in items) + { + Add(item); + } + } + + protected new void Add(object item) + { + base.Add(item); + ItemUpdated?.Invoke(this, null); + } + + protected override void InsertItem(int index, object item) + { + base.InsertItem(index, item); + ItemUpdated?.Invoke(this, null); + } + + protected override void RemoveItem(int value) + { + base.RemoveItem(value); + ItemUpdated?.Invoke(this, null); + } + + protected new void Clear() + { + base.Clear(); + ItemUpdated?.Invoke(this, null); + } + + protected override void ClearItems() + { + base.ClearItems(); + ItemUpdated?.Invoke(this, null); + } + } + + #endregion + + #region MaterialListBoxItemChild + + public class MaterialListBoxItem + { + #region Property Region + + public string Text { get; set; } + public string SecondaryText { get; set; } + public object Tag { get; set; } + + //public Bitmap Icon { get; set; } + + #endregion + + #region Constructor Region + + public MaterialListBoxItem() + { + Text = "ListBoxItem"; + SecondaryText = ""; + } + + public MaterialListBoxItem(string text) + { + Text = text; + } + + public MaterialListBoxItem(string text, string secondarytext) + { + Text = text; + SecondaryText = secondarytext; + } + + public MaterialListBoxItem(string text, string secondarytext, object tag) + { + Text = text; + SecondaryText = secondarytext; + Tag = tag; + } + + //public MaterialListBoxItem(string text, Bitmap icon) : this(text) + //{ + // Icon = icon; + //} + + #endregion + } + + #endregion + +} diff --git a/MaterialSkin/MaterialItemCollectionEditor.cs b/MaterialSkin/MaterialItemCollectionEditor.cs new file mode 100644 index 00000000..dc51651e --- /dev/null +++ b/MaterialSkin/MaterialItemCollectionEditor.cs @@ -0,0 +1,87 @@ +#region Imports + +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Drawing.Design; +using System.ComponentModel; +using System.ComponentModel.Design; +using MaterialSkin; +//using MaterialSkin.Controls; + +using System.Drawing.Text; +using System.Windows.Forms; +using System.Collections; +using System.Collections.ObjectModel; +using System.Runtime.InteropServices; + + +#endregion + +namespace System.Windows.Forms +{ + public class MaterialItemCollectionEditor : CollectionEditor + { + public MaterialItemCollectionEditor() : base(typeof(MaterialItemCollection)) + { + + } + + protected override Type CreateCollectionItemType() + { + return typeof(MaterialListBoxItem); + } + + protected override Type[] CreateNewItemTypes() + { + return new Type[] { + typeof(MaterialListBoxItem) + }; + } + } + + //public class MaterialItemCollectionEditor : CollectionEditor + //{ + // // Define a static event to expose the inner PropertyGrid's + // // PropertyValueChanged event args... + // public delegate void MyPropertyValueChangedEventHandler(object sender, + // PropertyValueChangedEventArgs e); + // public static event MyPropertyValueChangedEventHandler MyPropertyValueChanged; + + // // Inherit the default constructor from the standard + // // Collection Editor... + // public MyCollectionEditor(Type type) : base(type) { } + + // // Override this method in order to access the containing user controls + // // from the default Collection Editor form or to add new ones... + // protected override CollectionForm CreateCollectionForm() + // { + // // Getting the default layout of the Collection Editor... + // CollectionForm collectionForm = base.CreateCollectionForm(); + // Form frmCollectionEditorForm = collectionForm as Form; + // TableLayoutPanel tlpLayout = frmCollectionEditorForm.Controls[0] as TableLayoutPanel; + + // if (tlpLayout != null) + // { + // // Get a reference to the inner PropertyGrid and hook + // // an event handler to it. + // if (tlpLayout.Controls[5] is PropertyGrid) + // { + // PropertyGrid propertyGrid = tlpLayout.Controls[5] as PropertyGrid; + // propertyGrid.PropertyValueChanged += new PropertyValueChangedEventHandler(propertyGrid_PropertyValueChanged); + // } + // } + // return collectionForm; + // } + + // void propertyGrid_PropertyValueChanged(object sender, PropertyValueChangedEventArgs e) + // { + // // Fire our customized collection event... + // if (MyCollectionEditor.MyPropertyValueChanged != null) + // { + // MyCollectionEditor.MyPropertyValueChanged(this, e); + // } + // } + //} +} diff --git a/MaterialSkin/MaterialSkin.csproj b/MaterialSkin/MaterialSkin.csproj index 7687c153..308ff881 100644 --- a/MaterialSkin/MaterialSkin.csproj +++ b/MaterialSkin/MaterialSkin.csproj @@ -33,6 +33,8 @@ + + @@ -42,10 +44,16 @@ + + Component + Form - + + Component + + Component @@ -60,10 +68,16 @@ Component + + Form + Component - + + Component + + Component @@ -75,38 +89,59 @@ Component + + Component + Component + + Component + + + Component + + + Component + + + Component + Component - + Component - + Component - + + Form + + Component Component - + Component - + Component - + Component + + + @@ -124,9 +159,6 @@ FlexibleMaterialDialog.cs - - MaterialForm.cs - MaterialForm.cs @@ -154,12 +186,12 @@ SettingsSingleFileGenerator Settings.Designer.cs - - - - - - + + + + + + hMJ5eUS7w5$f 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 GaQO|$V#aC! diff --git a/MaterialSkin/Resources/IRANSans-Light.ttf b/MaterialSkin/Resources/IRANSans-Light.ttf deleted file mode 100644 index fe57ae628471f2945b5b3945662a3c68b3b7c5c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97580 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 diff --git a/MaterialSkin/Resources/IRANSans-Regular.ttf b/MaterialSkin/Resources/IRANSans-Regular.ttf deleted file mode 100644 index 10f2a487177cea702dccb6da412705ed165c3028..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104668 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 diff --git a/MaterialSkin/Resources/IRANSans-UltraLight.ttf b/MaterialSkin/Resources/IRANSans-UltraLight.ttf deleted file mode 100644 index 758b923a01d5906c3bb98212431b7e280afea3b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102840 zcmeFZcYGUF)<1k_?x6X)vc&WuLqoclfX-Vq`Y zLIO07FdELTD#(Kofr#c6(6jThb8@}=5`Td41dLzID=({h^kBLS5iR8inV5N1HJOQv zT|tQ0SdS35wXDh>chmP@48Sdx!u9Q4Lmk7X`|pt=BzysGH$JCh;V@z&3EXcO&hzFB zF6%w)1MlJ82+8shV*NDKv2>V~dSBiqNd7zGu<7qb7fPJl1ARg75I&D(C$J{QFG9K^5f};uw(ixcLMEUj!j==B~4!p zDnNUJy3y}h<1pR^V;4Hl3P(GcM);f^juoN9j4Nm>H8OpXS~`7^QG!{TbcB;h~o>%m)4ojGsXFu@li2rWGw@s?kD(rpG`o&qKQ# z+DW+gqvSqxoLYd!88@SO)R*WGqYIs(4xmX!5W0tvhaRR1(f(_XlNY8h;_rdhZ_#!} zC|ZW!N6Th;p?mBDI)Oi$H)boy>K?R*dK&0NsFPfbJ_m@@koO}NF^v+bUNj1Hd<_lo z=5LpvKMw5!Xy<@lE%ZmB{SDp&Vy0h&_A-nYQ{SKs(61q10@*zcG!;Rs2D-99{`CAE zM^C}EG`}wrQ|Nhe99<@Zkpy}PF*W^9=v&BV5r-U~{t(6=!dO7dZ}xt)9IwiA=HB#p z_IqZ}|EDoMcl4ZH#nLZu^)s9Sz0?TE8u*&+XE8^94cN0zpCx|`^#3ai*2BE~0)sR@ zX0bx!g!MFx?+aju9?zbe#m}s4X6KdWZ=O2(1@NA@h2;iFfVfqwf$@FV5j)3DVTAuhr(1|S6gWrPhheppiwHFmLz6|Ke zzu_7%d=<|$#sS-a3mSLFp<{sXdn`h9XEVnP2o zxdcU!<$%A9=rXl3pu5nEL5Ic6KLm7`^<_YBY1z>jzIIGwdv=UVetsTj!MGC6e+!=% zfZl^0!F4eHYG#}o7&G;t5694HrXK9l8fYpQ--(`LI^g{VXo2%j`Onki$eHuzne*mf zjOpv?&(rsV>#0t_?Ipl%%M5<&ua0+JJx-rbMPq(^SD_XD;{}21$X5W@F2MI}|0s+T zV0?1sI6bD%zYV<|`iBEOw-)Sg1=yGsz;n*@MQ$;Sp)p%w4EEW7{+e-6JNkW)6Kpid zfVC6sbsmi4VcZuOv(#uOs|;-R8MKu_(+KjVmczOG(0#1aU`sPWCvKXtt+&sNPt52G zeU5(rP2l>g*UpZU;5>Lu+AcFO*kctmHZ(n2$hm+@xyMl{dl%3=`Y+#rr{Md+ma@*E zCG04$B`g@<2IIrO7~c+KHRu9;{R#MdH~1FO%=Pq`_BAl}pNG%Sj{Wze&)59Qc`|T6 z#=U3;c2uyP|&%5LeGN!M`%mn z{WfS}(3)TjvCg!bIEG5eViW~q@PE^8X!LQqRRCsw@Auub?rj13kHP$x!u+?ucf6aMGr(dGp2OG5*by0trzQ9-v*ZN?*92%ZEercxvXP{^1pjCn` zs2+Ge%(A04_CoY5;~4}r_fQ zYsa)rd3MHz%$|Q?=6Z;0{5IyTnXz(aOrNK1kSj1|O2I}P0~MpvSYiA^4ZBP!B*n_C7jHL5xQof%eGE7-UF~XR!@-$uAdXBG67_ z{r>3}0PD}rVjXOmAN!0iL06_gmo~x};ym(>z`O$f{Wgx2a2 z1Jls_Sf}G9h>83S@`%}a_g#i#3uoF%=ugr%jE);A2{h0nN(W5{jR%cBM$YuCnVvpJ zAD`**%seyy6!2Mo-*pCU#_}1yX2Pb0V6%=7V25l ziqlXHv~uwATOeV1n970J(v2P=?Pwkx-%bUg1N7&a>(CnJi)fhn6IxFxK^`^~27cyc zMmD;Obr7{Nc<{Y)R6(6aeT+nO2YwfwhR+@L$2l*d!z4z>$={)MWE#rCe}V7sMjOdT z5o9-4R)H-nfj$HJNQ5pw0(~%X5amK#gg7S1?q+%{0C^WeKD7}tt6+G)2;Tn@1osuZ zzX5sa#&`!k$ovLvr5hCr@;Hd*(f1;@A{+GGT zGM+_e2@)ldjBfIOsxx-)POkVhMJ8RT~x%+W@)jJ`L16{#SOtR~K&EP7t>E~Ngq z*zZ?z8saIG1^2J@f6ocDg%Y7wwhOIhOd>U74SI#~CfdXJ2>M89eDn%ai*92!p;yRm z^fmBY&bS-BLOq6FVV#3>9ni#Jmp1wPO^nm%B}OG+z6B)$j}J38BMqC6au};oDx(9* z8SSWtG@wWDX5@h$;m1)e#Iyvt3yo5*qG90kUg{P!7yQXG>KI)6Pn1Vpf%o5_`v3!X zki6+FRImU2ldK=m3F@!tJ_Z~0(4Pa}vkWsq*SDbsye_2DBW0+59q~Wju&F{Z80(HZ=yMESyU-+Z{(NzMvMFy%3 z%*8N*oD#+qvl04ZXdE&9*G3^5N_N`+FbG$?TH(tK^^8J_pa(Vhn*HqfncT-nBIehuawSp*DMOTDN~uz*)B%-o%7kmE6kbDRH&9uAx%P7J<+00~E+4sk z?DA)quUu)JO1&5oC=xzKXJx^!SL;236rr0HLYx=<&oMrp{2;*b>?k@yNk zXFp~6c|-sFFwi6PapFf`e(e6(^|ABgxQ`tl8$ULDto~T_vFyW^4;w$M{IKG~!VmL4 zO!_eTL-vP^KkFGzhBNR<>e1OdFz%+(DKEK`+(B+9w~<@PE#zjfbD(emB!K)7It%TL z{}ZR-6`}_Ob%yKydlQa+fxaZb&JwjmA6ZQjcp)Bz8HQRJR$&8v2mcAbi~o$@!|!7?*5D8DhxjA> zG5!R9inZ8?|BAoGf5YG5@9`z9$A8B^;D6vB@jvlTScfl@F7R0&k}6V7YDg`qBlTdJ z=7Se&Mig2Dv-JjAjXr{U+Kh~|+-GKTb!UNW9cAQQTCVxJ3M&_yKIl zd&ED;_lX~ge-b|tmx(LH6yYPL$qz_G5+q5QNDKN0`VsvT{e+58F)D$Y?-bOq-Xbx{ zB7;aCX(N-#bTXUFCyU8)Kw&-EOtzDqWH;GM&L!uOBjjRoj9f*oB{u-xx0AccedHnX z2ze`cj69BRL&Y73x3P71T95}(ImP9oq+1dz36Uq5>ojLeCw*y$yNkSKui=2mA0Buxd`kB)PN(6aN3#*YT@W^IthV zbND~ofJJyQUV@k6Wq1rP$1Ctkyb7-dA2p8G;I()ip1|wz2D}k(!Z+Z}cnjW&x8d!0 z2i}Qy;oW!--ivR<`|y5z03XDM@L@cOZ^B3L&G;z31>cHq!^iOL_&B};pTKwGyYSuk zB)$jVi|@my@csA!{2)G!AHomgNAMZ^8+;Z&iXX#|<0tTw_$mA}eg;1acK-$ZJNzO( zkKe#=gN6DKtkXwenLY;F^cnsFe~$lxzr+{uSNLoE4Optbfvx%u?9}&QqkiyPsY)ya zUq)dzuEtWZZUPLF#bWTmePI3G!96$>_v5*ki6yuVcj68>+lzy+9C|HSJ0&J@FhtA< z&%y1Oha+(<*v;qg^Y{WSVVsBaaTzYhMYtI2VGJ1*yfSbTZuY;cf>8;s!1eeX{yqLJ zei^@nU&VjGui;nloA@m_`$xa^{S&;4!44dPE!c`}I0DCFJBA1xFc|pj1iU{*Xo;o7 zo1m|Uz;1jCGxjYtm%(J*%TzNDuo77hutV7!*gtT3Irnn8+@0Llf@DF1L2vMkyi(o- z?_zLs@WXsQe-r;B!Cb*>A-0eeAukFOg`0)nhBk-J4ShI_3abn|E)t0*L|=$Y#m(Xo z@lNqc@n;fBQY?8)8ZKQSeKDL0j}PA-{$)gI#AL*`vP#(nIg%UYWAcyW-^hQ8WJZQY z)<&L)d?PA6DnDv>)X}Kd6kLT`k*FwC9F3Mmo1#}mKNkIiGF~~RoK!xca;ZjCFRH$S zs3u>%LVd6Ltooe#4fU6r5KXcsUsJ7V*9>ZwY9=&0HIteXn$w!6H0L!JG@od`)m+iC zwIZ!jYthDQv$f^gW^JE#R6DNSsy(1Rrah&7O#6cN4ebZoi`pM`lrBUUsWa+ax^!K! zu3p!z8`iDRZPM-49o3!GozXp~dsX+Y?hD-|J<{{^;d-s!p-#Oz6`fmNOeuaLM zey{$h{-pkl{yF`t`giqT=r0+NfoBLeXbl!aydm3AZfG`i8wL$a4HJf~hP{SK!wJJ_ z!()aQ3~v}dFkCeJXrzoG#z>>l=rX1oi;eZhZsVYFsd2)%)p)>oEXES!ib;;ijwz0* zj%kkRjv0&@jd|6?HHDgFCbh|AiZdmeGEIf1qo$LlGp6TEubSR9ePOy}MrNKl+^jV_ z%*p0_bG5nMJZN5Oo-pq;Pnu7d&zN5@zhVBse9`=)g|dWLA}vOX%aU#>x3pV^E#sE0 zmIIb!mQ$9;EH7BzuzX;-X!+4fSwpOmR-@HrO}7?X>#g0^Ve1O(ChK17QR_+T8S8V_ zSFP__zp!4iAsf#YZqwQvwq#qrt=iUZ8@7$xw%QKZj@eGx9<#k*d&BmD?V{~RJ7o{C zN7{{cmp$EHY_GTX*_YZU>^tp~_7nCq_806I>|fX~Igo?r2zMAA@s4~)y`$SP>{#L0 zNx2*<9N>Ts^eY97miD@P!Na}#VTVhvGK9_vGuWiu}fnoVt2+)#-4~h9s5-5 z`Pd7wpTvF}dnJw?CyGjGOZO)@Eh0EmfxH4U(u0~g{Ys9t6wb`}Lb*t-M*ICy& z*K4l#T;I5SZoXULwz*T?#qLJ;T=$rJv-^+$A#YrVbR#oo2v?cO8ad%aJ1 zU-rJ^{VYB={>=nWqB@C})Sh%KS&?i^KAZe%N=V9zRDNoC>aD5gQol?~POD7oOM4^j zleA0eRJtf#o9;@_POnbyP9IGlPv4q;ApKbSsr1LvUr2u={e$$2=|5&r86g>w8O97( z#)izq%|;61oE5o}+~(X9x#x2)&u`Bk&L7L) zn|~z#ME(Q$Uld3R)CIPJ!GgyM&KJB}aIxS@A-hmis4TP;CKnbLHWv;St|;7EI9YhI z@J!)zg|8OATlhucr6N?sD+({t7CDNNi}H)Ai`t6@i&hkEEjmzitmutmQL(bvQXF5L zU0hz=T-;YYT0CC7wfI2svEoz3j}^aA{6_Hy#TSczETKw5N+L^)C9ab6lH!v3lJ1h> zk`*PJO7@ltfU8UKj)ur8~qoot2drOa%o-Tc^ z^o`O_%2LbjDto6qyj)xEC{HfWFRw0dFCQ#lTE4yfSozuVSIa*uzfuui;i+h>SXFVT z;)#lnDz%l1D_^MmtctASSIw&$tJ+YtyXr{QT~!ZPJyZ2^)jL(6Ree|GtL9cqs`b^L z>dflW>c;Bc>XGVI)tjsLRiCVWtonTQyVVzK>T6!CJyPeX%dDHMJ5%>u-OF_s>OQKw zSocFcs@K*R*5BI@-;m$X-LSLac*ARrV~raccf;S&#wQxzZ2YEaZqqx>q0PqT^5&(@ z+nY}}zuZE#B(|(=Ioa}5tFg7T^+f9jZH~6|w$ip!ZBMj))K0b=+gsZQ+qbtLZ$I1q zX8RW%p&gwadpln3)OWUaZst1{>wc#Dv+gTB z${t%!a!+f|ik{s)clA8>D}OKcTJ=*(3?}gqgb0l*- zbGqjY&$&3~N}r_9)R*2j(l_4sLf;2{m-<8dmHmnRll{-k<<5)?vP=Z0KEJBKdK%bd4j-l_S_`TF^Z^GoM<&ObEFAGQp4 z4<8ynH~hiy4-4WJ6fUS;FuGvpf};zbS#V(_bR>RcY~=XJCnG;Dj9lni*t&4l!hH)* zE_`a?%L_kPcxjXz4H+#T9Unb4`rabZBG015iw-S1z3AOVKP_f1PF~!;c<;gyG0o?H3Ds>D@|t8QKOVZZbkOu}S1Rd@gOiw)CZP&41Y6Xarpt2cSOgI)mIc=bN18L8*>a0~p=o}C zMy2a$bq5KA3_1WJAW~Kmb&Q`Njz)xnAr|oomLV0pT{dhW+ysluVG>NCU?De{O_B^Y zhr#$MV#~R2FYl8#|7KDXA)S9@kIQ-6C-1#d2lx6M8OaI8-yyO_IWGRCCP{*zSV62&4v$3<1i==D$h-38Mw=rtJ1;vjcay`u|MlnZ z2P1jkxj**zKVKuW8Z`pBdNe@$$|)}6EdB?|1KQ&}UMZ8(sBKgV0phcOSfw_GLCq&w zz)C6xc~VlAL9bEsDHcec!rfbbT9$Q#@2z_}9=ds=HLhasAAkbU4G|H}*4EB>s|rmm z^<|M7|2$*Il7743~(+MM2XH#M+E zes||YQw$N6ot@@XVU;&m$7J(Fq0Z)PqcO9#sY$jW@#X(k+=)X-4=qv>Tum(UhNP<+w3=Q{0yL3(6 zbK=Uj*;KaT&Yli^e8SQN-9?sgdF_5xMNFtd7q&>Gk%w60jVZCCOBVH%OZ#+PqiZ&8 z$ud`JdR1&TjiHC8=8{=tJ!JA=Z$Ov;@qoP{4a6HE29>nuj&~M0`=7b7QLNGn$$HP0 z?Q5+||McW7DSh5;$Io`BEMGS2hWnhIs=?W02ITZeN8g0j6WVO~xtIkWShf2>*ItY1P%_j=ERw^Y+@X))(bI23(GcSmTu@yBx}no zDFzW4DGZHjyzlZY#f`VTKe2_NRtY0R9HT48lWlYR+Y4<(&J8b&7j0U-EJ+w1Lb60g zb=p`*3PEKoI^NHgH}?&49I zsvH6{Z3fK)Yk=M_O_L$$7zEWazvp)!Ky@yw;{)+k6?5760L#?3Sxzr3gTn) z?2-tbIaFbjhd3)mKp!IGtLClWom;Y^-WKU8aac=W7S-`Z zW^=w9iq^DU*0IXShY_qJT+1gRl>|5iQ%pN?FbAn%Q1rA31Q>+QqK^-j#m{d5HNdXi z(^iq?(giJGiv@(pX%7(?D+;~F2$s?v#pW`C!wvCzN48DQr!cAZDk!n6;VzjhZGJ;4 zpKUMdNl9$XwhJVw<(-M$8^R;=>iSaTlkU2CBSWTWZCkIGvXv#Uv9)c*@C5#0ldSzHdj(c`Z(NYi^7xrQRD?pP^g2%vPIeoWXoh3#v~MQ)ZeR)#tRtC$wehNRCLCXtJclh)6P6qL%*8bYXcX=tAbA zJ3tqj`Uh&giCsgnVu`8R!XZ2>%Ch?Mbf6O?`u)_++}Cj|)F8(|ax+mKxEI=(0_GXu z5kZXLE(wE}b|wL=@F}rKLi=b}dN7(cl^qmoH!HsXMf5M+u2z>PnuAiRMLU z!^O_zEG>&|t4!07gte$^{-P<5B~`-^ST(BVWTI)CHs{{+b)iv0%h1wQSxoP|*rq-{ zgAo;{we<}S#1$Rdwlv1Hu0GOXh~lKIU%jx_>FHdZCyZ^aDUj=}5p1!&$erNTtT=H~ zF35BG;`B80Bb*Ht-pW~dQeIj*es9gks(`@g&in)g7#>&W1o=Bl$2$i1l z__Rugh>qqlPvI;dE@E?ZMd^Bb<j*$J~*4nJn+% z+TzqTzuWw4pwAd{azsMzC_h{oYH-LnH1@Mo*ZHP@+ln>6rfy(nK!!V!k-3&}8CJ4u zK`#Ih8od@`wHfe(f&?PBfF4K#7K4vs4tAyxI5mK2yS~T&~s{D`l}U z!Q%1x!PE#27K8+IJZpE|RGGG-CxaqH`q+qq2OhcCcR-V!mlhe7z3=d$d~u9|hdFV% zmB!M2TUU9FB*{tf42cXvfipETDz2g+M`zk}h4{FDY9N;%Dl}UROI%KC< zDkp#k{?7z`w9<>O;hU*ZkzvujD{ol8q&|kA9Jw{d(i=CAkM>!7PdqIxP3G|k%;5(u z=7w;Y1W9CWyYX;E*5ZZ)7GbO!S+{lLGW*oNNoJ_Rk=4{6FA$j1jH1Mj)i-QT){oWa zJUx-T^WIliMpQlco3o9fSp`{P$%~re4Fz+vLIm04^J~*gvLJfC=-iH(#rP+zQqgwo zXHx)Xo#uhocmKT6sz8Qb%L2(#iA@AkJ!8f+D&mvYM<2eYTml#&SV`3d;S!1G$fM`G ze5W6cu*4X}As`lR5Ra*HMhA=eZ1?&bZ!S$;*^`Nhn4->D;z^M;rNV1!?d*2Uxu54DH12;BujZg&fFL-W)<%F=txYuH!f1LqdR@y%{T8}X@y9l@poVOzP`<|pgmoe z*PqSj7q0BD&@LoMh(s0q04@(BBdZPgbi%r(AC~}2V9gKAG-9?6APEhdnIXT4R*7~0 za(w=2WibidCH1&yRC4(oh*toaN`pxx3!<1IVPUL=3Ki3{ZugOjl$E_1q`9=$OZ?@h zKM%BKpMU4DJ4_=BBAJPm`BJImPrgr#Fu}9YS^k;N zJdKMYC5CFh`IX_-Kg`X| z+r4e$RJSs-bKULT^+#@4*pe-YD6VU@lx^-$qrwbcRkJIHVao4KkFQRM;sy)AU~o7b zhCrdxN%)rZ$~h|wM($mbTu|EM%!v`w^XIQYz-r#=Kz)i1Q)oYXl^ef_*03~gr!K&> zpJ&_`?uan=II`#DXfg*j<(bNI;zbmb^4@U&M>{_iiHNmv1rBLa-_Gi+1x?vfa$iVP zutaAo>2~KWEH|^cJWB0|=F7yv#3-e$X=;oq+cA))w8jbpdP8l+6R;AS26)n_wGe=U z%kz7Eh(rCF?~J3pgg9X26tHPPm&$O{lrvchg4!B=*mrqR#-0NQ@>Eft6|0uH)GgiZ zT9QdF`f5S`)&#Rx6->l7jVAV8=+{j>uPw+*G)H6}sVF_w)OEWtDMx8ng^co~DzUtN zV38*(HmWXLE*05rCIO43o4b68)ey5!m{d?+lrFZKV?9eB138jt#T1XxfzQEObtj0` z4}Uu6qoo-}V|~Wm(M}w|Lu1HJfS!2#0;Lmfs67OH9i1aV3a+4t#|rk;*KX->km+>| z^0>JJJ@*zA7wz4VA(RQ-JfYJ5()OBXX3`W;A#tp3Ks= z`5EzZ8j9kf1Q@{7OH4DYst58Xe{f6NJHK6kl$xGB5uYv&6&LSV*;g1-y!PHs0yCJ@ z=!?HOSsN4?G!+@0lar;$Z174wt!wrjuP&IxLT!3yUd7>?Zf_DqYVGQ{+Oh(j+!f_} zQJ$2Rp(@z0Y{=2Lrq(HgqO6|=>I}1-#D>{QE^eeqwdza%BniMW1z1!-!!VpYD>;+Pm6|U3=up9!`3og2nuQ(S^|6q zWQQ6X!*59-kcF}tT|oeF(4L%NYp;CM{=|VU2BTv2ZTFoj;pu{Eo_XTF4Q0YeZCIPi z#w5KRn{Iz{jw1KAWBV87I&0=FTIdjACF6I#dn-cE4=(6fc zWlr)?R#tC;BPy8SNKF~dX_mhE3kEujX9?JB3NoW<at`fWrVEWpY0S0^W=xJorS}#lR43~t?EjVl zr7g;LZ|bV8M_S|NwAVz7Bs4!erVcPPP?v^)0!(xih<#SVc7ISL36)Ah6_7*l|5ZTt z5*=cVG>9x%dQ+WybY54Hg<^5I9E!`AMnp^5klAq9l(%JUi%$*v#BZ&n5H*ugtG@U@IZHr?UzAwk6$(p)6rYFu5c+ z6bkVq$!zIYt6R6JJqPC$PwKMk9iqF5GD7otHqSThyXot#Rd(6n=x9btYPugUyQdB? zL*To>^Z#7F1eY|>A&(yz0FT+q2qbHwS!w%$|L?+PLm0#G%bH@bm?Y!}*qB^wlto5( zy>2N%%!q!?$^|uXl4v#WI--B^dqPC$2+M9-`0XceIao6K)o4a@V&o|1N6L5_jf(rP zi8$0zw0%iaIPgQFO;aUQI#xl;CNLa9M7a=gDnL}c=Y=KZ5EKe<}buo+P6`7a> z-(28@Xt)AXQL;p>wW?OI*pj3~13xI- z5Mzr@Yfq0RlG>MN@&$%@BUKzipt4wu!7PfyuXzjTpHqnqoc7TGDsRER!Mjfu5ypuZnMcIlR8#rx;nJBxOk^Lr?|q{TuhYLX~NPR z&TL}{0ZR@#5lON2?sQFTcXa|Y(o^obO7p!yvx$xe{D=mMXr~G496+;;3?#?U%~I_* z_koJR49yYl?E2)=MWseEKU1aDXM6N4O=r5NwXxCpGrEmV1ux1|8uu@vW4kMyc_TaW zgXWBkid8XTPPfdOto|3(F)4Y`vHi92eu_zS7%(&i7)nPCkk|hkU>H$^NHVJqVD;%r z1?7*rW`N@l9exhG$?HHSxh2OQ$tk3H$@1#ik^~(DocX_i4%vKt5T5&Y>=-g?J6a5i zhPk5>;8A5^{u_eu=Ia9y^kxat;u`!3?5#_sa{!nSy3*w@Y0zs6U;z994#t5vS*r0H zVkmpTReIu6hSrm%uBoZW57rrDgeB!6rdW^M-H@&=D^;X;9l@s7GB+o}tRcj9vzpD- zTI>=>;s!0r4h_+7XexWCNnkJ<1cl}N7-ym)b=BfQYtwo?U&y7%H}#$KN4+9bj3ES) zBa&e9f@IlA`L81kx}arrQ+9|m3t$&(AWrf63v{H{;0-KiNj0F|bYupT6wrx4fiIvD zbh!zN7km=?7Z=4M;1di3tt}#HR%e0RW|Gb6Fu?AI9VysRIh@&e_wHc@QQh30KUvJI zyQLs*;>N@IQu5W*wkTcK2-L;;4|Iw}Y(f!VI>;A@k_s{%Qi5enE;1!ICM(1S&m;lM zNldEg?h4Pc!AgO5L73VmH&j+t8Aq4a?{`MY38f-L%4e<@vbehBYL9K8zg?|PcZzVh zz&-eF4V-@V;#oIHQ_YP%o zts|pzb>eUV6DN)I)}(1hQ+rltI@_$BD~YV%lD}i7caE*9mS_}&sd06YKvj_C2D1T} zJPEe07M^*MfF^=>q62Drox;DyiUFd2{`{5uK>TvmN5Qh!hz#YYF=_ob z?A@0!^z`i;`|?5=nToiqf?~BT(-IMkV@DSa)i?vRQ3jw*O-HdbZJ-wrtOO{NI>j1T z@Vy>!wbziAv!Ef%A|*HP3cKMI-{o!pfx3vCtHdSutlzaKV|2%t_b-aLE^Y8U`cyyj z0M^je76RNEcxyT_4+x50nw|+eVBW!hz?K0L)cPtW{2tDq;8KjYle(1*W>Ba=nr-B{ z2YYK$HO{hjtE;EXQMlsPQxBHz{NceKW{}RP=Z%_jVC|u5_X~^mU%IE0p-e2)SFEbH zS;_`hZNVBz5I0z?jb`)I8TB2#wv=MKJSaFSt~jZA>zwQuVeYoqw^`y!PaImQHI4he zUL%Z=F1UTr<*XS>V9H{mrCf1rL4Qff&NTxiW{71sPfaqPC+ld*)2nIjWWwtSomqgJ zS%{+TE;e`>VimBT@$&GA$wh6;DM2OA;bvKj*2fm z(MjK@bJGUPt?}kaV}vv+ltnClkqACe`ONv3TbRZ;S7;YkV>GJ7Rwt4D?4SNvZzRoH zd0yjiPQ|SmB4wB%KgAK!u&P`iX3BMDt{rWSN*AV-HGz>bWT~OL5aFMTmynL5#8u#z zuI8jrGS&tH44OK69Ss6PEv?mbl1JNlj?$F1c7Bbd=fx1t5XXk z@p(}#yL&xCb!>W>J-N3k%_K=4+)>qP#RCSe#y1u6K2n*r#^zgUfHr z%-gl7K;nnp(SYGk?@R%k>vpyCeamEh#jE-GK;&JnZ2%9e~YT3mF_T`74BK|>7q$;&Bab_ZE{yNsx zX5ZBQ3;tmFfJsl)wvi$RGqZPfR_V!FQ7BAQXk;jd{M0|Ux%t_$t8+`w-NLEc8HXVr z2!j}U7Gr^+1OijiFdMOubhW|nUH$tV1IhriN>MRosRmPCOLw<9%O95_C58zBzB>Gs|cAV5R~e@$h6; zAb+_gq=B6BI<(KsPJmnLwQK2~iEwVagFo`fx0`>JcHeuyb4)o+OHx@A$6`f@lx+Q0kx&(0&US`M!Y{qH6ubddBbI z-3IsyVlRyRpFMfyA4D!xkH*!FW@e7oJDv4(Ul%v5N+>p)OA=J7 zgc7s4I6+0Ku02g(P9MGID%#f{M>^sX<3@Pq4C!1@w(>$z5Ok4PDX>-NcIR|P@&p{L zdz=_0>IwT;>N4Mb&ow{(_#-v+XU8G$eV%a`a!9)3FBY-DEz-cJZ=j)X23aHRLj&n9 zy;BH3fnm+jShcpr;I-Kz1wjHXwV11Lnr{ zW%0szE9#$k;*pAj@RX#E;Eg0z8`5k&8P0|*LwfgEk}?4{loDtjGB9L}`{}qPK+nuR z2%t(IAPNF7nnwkl^Z0#wU=0;W3{V*;_vj4_lE=%>9EM%U31WF>Zk|eCZ54nds6|9j zTx;<#D>OV>EHkT(;1|9h=Xe$>P!xg`=9&}*Z!GUpM~yY* zbf-rLb5*x&bT>2}D~;=`_Gt14bMGJo+7x?St~tz6+SS*k&+IL73b-7hKFQ=Ru!-S` z-0I?@x~%^3R8zNeC(-ssY*o$a*7U=7Jy4grX+bV=&bGKe-&NLX&fC9#*SZC!{)dik z&#*RWW9sv5N$q1Ga9aM8$b>&)?4kE7(@9hSU4cpgtYgs?fxzM+%u8U`0jzScCbexN z6NSOS=AN!%A)kuLZ5>Gq<~tXsBs7+1Evt^?unb8BCZ4{ryVI(f`{+%pn!W7Gjz>=( zOeaE}RmpZcC!-5??@@$Y(Pg$*RYxlzqSQqMiRJvE$mK`wyLq*OrtKc2q7E}|q4$Nt z7ReA`WI@=g#A&1M+wn@u=GvTj9x5dRDpgyh6#E zW$?&gaoDe8QYypHF{j@yixqip8)~aKvZ|a~h-Ky^ZFE6Fu3VV;3hY2I93DE6aM<_s z1IZIa3{grfem(WJv*-J&Pv5y4R<8g*`%whm#`qh=ne<8q#FF%S5oAv8SsbN;WmHfM ze~=C)V|vse@@k7!u1I&B$oS!&h5>X29;uj7k?L@_F{ zBViH;dpk>9icX2#acl7gi2Sh3H@km+nPT~TRmEJwgnWTq!d^l?(q zH>icyLmkTn&x3=#hBXI&B^z`ODxIl;Iw7C(@6Xi3;~KQqUx(f(TW%OvCIEXlz_#mq~`lfON?(Nf(8%BULJXoS{hn?MH);Zz&(O zmvql<*M~5Jf`!4IJ2UPa2oIZbP%@qUIxIlswH@ggw^K2&FSP)*g4Liax&CT36mw_8 zC zi7SH@s}e$8%GO48?!1!qArX9AepZgD_SokB$kMVkx7So0sx6lhJWkzH_+0Ugn0C z-q0v{WT>v9y4tvKtZSlNEz|Nt+5Aur@rtb>*GR;b_qZGl+bZt(N`Q96^v1Qs6x=?yu(^RruO!eiWu_ArYsBGghae5iNhI|r+x zt#M%ryIkmX>INSF$0otlQmS&_pSI=SxP6T)S2<_(t^!A2Z%e+NQM~QBrB#R5_o>2^ z!l?QC9_l{yue zTH>r9ND3Quq-t`teiFe}ZAJ!44|@oM;deh^4+I@s5>R4f5jx0E=^XWMhQh)E1Hs;; z%gM>n`aUM3_Uzts5&PN`4sBJ1lx@XrO{0h9lT#&F6ON6&F+u<85 zp!skgtbnKHG}l!7>8MpA)sVABfpo3jFn&B%Kgt&AB1=Zgjq2p`=I+?0-JYi4QIT&d zwx`0C)G#0#-#AXbXf?-TChUrQc7W2ex*j5#uBH{`YU2=z3Oeo`v zV%T|O{WaQfW3aNgsuF$!9gUJl@!uFf&{|A{(KjT#4D7@KAIAVc$HEXq6V%@uf8PpK zU}A0b7Jcih9k9a6pnOXdsp;v8rDu(8G2}-?B~!#wCu-V=HNIssct}Sq(?%){wRLsI zOkz><<4yD&_`YU(2^E|E6*7AJ83Ssh(1_@%m&rJieql#`)cKC@HhA&RneU4$zab*w zS08_Vz3l4sz9ZLOPx!uIS_m1d&o58<&i*S|{Hyo71iZe_ZV$v(^v=S7vcuD`e$UT> zw3uGPW`+54O8D_5|JGc1=$K9ye3#@EjV;FLyp$M6Q6f*NFj<2*0*#Cl5n>u0>5!g< z)lP+afXySrqxb@*+@N4)v!e`giV&4G&1x-ia)PC$c@dIaQ*aR(#IoeNR4n3;Sjgna z4WV)3ratM+|06E$ zX9<`Dmm9(6M(X&U@JtIg+#Am45fl-Tl#(F19(O8uKuW#!-?~$|93oA&G{`I0 zGND}RiDroOEN*19T6lf7H7RjA9`WM!*d}}*Ox;g}!mm`*`asWLC_U4@Ju~x1_|7r+ z5H_}lw$nJUxDhZ8qS+`Jo+QN1K>2HC**f4l=*?Wai<_m~P_>XF@EEivF_XxoD zIXPa$6LAHx$yrLKA>9@(Gn>GK!rV=3nH$i1>;d>SCioScFmPqFyIkq@g)n;G1WlIz zi9b5DBII!f5iDcGsiNbwBB?G;9$QXV=8`LI410NEbaY}R^G`CfTgH{e+oBY9Z$xCg zHHz42$*nap%(dAuF}d{?Q*ADMJK;OZ_#4r~{0jCjA%L%c;}U$IzmDZk6llXr@4&(= zxKtFRYfdm`BqymD60=^x5gR2OQ%b4Tn49U5@OWV=xroUW2yCMGgfJHd~K4tm*+=8yqyFuuk9$>OlXP(}NO5V(~`+ka~)lN0jEQpb_ z_}MXHo6QoM5D^=n5%Z4i9#bL|Kr{&|T>|M!W9{c*rZ8R{8mcl0r1GHr5QR!BUQp2- zlB82cv#eRJU?C9-GAE{qsU-CG>5l&a4c-484ZffLYZ_i;jvyOb4n77nmVRyl>icxQ zKhC@KC zfP*YY?Z!HRq@TpcsD;O?s}kWNi9;S!f~rMIdUT|uY+*p!L_O7f-1G);XAJ7d+Nq;D z^HrN#-OvQ(8c~!Hi=rF6OjQs>7+14U!{B;gzr@5`o z=X9pSqk-8{zN}F?D41+6nD>?Y5T?=d0d<>)T94Z zZ!Iy~WFc$aRmIES*|PZQQHsUpc8uLWvU2I%Nl=bno*Bq=di~|?%0N|Op~2kn_*#- zZMdHmBvhkd8jYzyx)yx*#=7u$abJe4AK%h4n;QnH%;d?j$wkAm@^U;yEZyXdlr3+y z=2jN@toAI2lv$bUi;Q(<4|0XWnNeR!S+q+zRmlkZ6~*FpnToT+^|Ek9rpMh94!Q;0 z^Nbc~L^_9hy)I{KaZZsnqez!+3ti%3y5n&z!GSZBE7A6Kp0}*sn_rRY9r5Ebt^ZZ)u!y-c)RCTz_2ngYXdN?WI&^VTOQSfHp0^Cr5=p zxO%rmN4~VPpx}vL*&J&Xvq=>tXZg6+eSPEFMs)S<*%e*U5zMJ?9a&yFXIyO(?`x=M zPD1DGU+Q_NV)4AG9fbpG+Oy;SImh)d`Re-iOHtQ6%oEfVNCOHFx6rYZi8_T`;96Z}_N* z6}}=?F`~CTGPb#}bKT|R0t+9$V0;-Ats-MvB7L||C476}o&`Dzzir|tUlhX(^yG)*Zq(=k-STb4v=>-cv~%IOXN#a z{s|P7`jIvY0V|I+n(S6pHJTk+`92fO)YDb@(lwuc`tkBJe>h!WqR{(p-xg;2`F$u3 zGs7|XL)j}|%;|ld*yn49rVVGp_=QF$?Da3*F)khaDn>h2p zjFETTeM_gO=YfLG2{5qHxwcpt1_1qPYJQJzsmpKTrpkN+H- z#}3Pv08#}o3miHCLk z{XYs=i@-y=2$*XO^eEl+`+pR%o&aB;fX~+Pla7ou6L7u$E#eQ_l{#-g_=kL23Qr4r zGX8)L7ne%!r|=NmP4y?87LG@+e~UDg@EEubj=VC3zg7GX?a~DP!^+YW{#JH#{K6!D z`KJ_qg8P&BIUXHl`$#&1gH7N>n{@? z9se5XHo~Lp0n7UU#})j-vylOV#-$n4xS0Yg{kp334hE_{%-(>ixBF6$lxO! zo=yH{05|Dy_`VJU&oB3eX7Tc)D=5EKasr->Vu8V>!%x7IfG777;Mez(X7Sde-AVk4 z2XKAwX%XO9==z}KVTgt@C)Y{iU8++ zS8%Qtl2jaJG_%(X^8x4QyfOrM*6MKKD#Pkze)aZL{x#qs%ueQ4pHAgpBOEcDj{0yP zE7DrPN$^PccWJi)&V8mxrvjdqg5QzIe^h=O`1Sm2*hkv#WPT3U^C#hi|84o~RQ^`B zL%ThdpWu4_RGi036gR!R7PfYdC(`+;g}q z0pCDy-9BBW{&y$v)W@m+xy?1NzbBEu$WYJmz&4q~Aub^NQd<(P4CQdLCrQEKi5E7q z91iM)*Qc2B>$at8Ey{)Xp5WreY`KnKd_g`P{Rt|8;KJ|KA0_a>4o^^s3zB#rHgS07JWXBqO7Y@7+&bw!`8C66;NyC2iW6|K zy9v(jGGKjh-e^qT4LGz=Is9<^H^|TRoaD;@2dzkOWlsDBz`1Uh>O(tp{H^kf{G8$V zRX5-|{#JIMp)rYHxh93bl^uycoy5=KI{sE=5{K*cr1_=eX<-i;nv;0s87Vw1?3?)I zz{B;GWEiD=lP0Oz^Ci|AQr{ib-1#h!*Q%q|A=`Up0Jz1cwoOoKK`su#{0B?ib6lUR$l=) z-#__0q5TtZVTIu|z`3rt{72+3=Xh7JS7Pt$a4Ev!I7d-l0#4({X=H`Y*)(@i zsYG{06Y%=@UceW`oLombnSUiaC;mqrPWr~F{0Vsce!{QRr|>Ul_Bhrj&Q9Q0DpL8E zv+DRT;K}0oA4%mugnR2@3*kGY%aB3A)nk-V>nIR|q$Z z8aF<#deQ6&eqV`AG8-p7vSji7=XCcCo^^WbkTumayDz`--uYlO*_8qzC>(ax1gAZ{ z(ovd|F=Fnjx=@?nQ4sbKnZxIwZj+?I8##a0ZE`R^V1J<>6Z&y@Zs*Sl-8DReU4Zn2 zJ{q2f^5@mMJ{X=M$3}WWj|9&n`Ex>N2G3BhLV7}<1DlQ< zr^D*68(mg2tvx^8?NRNyb|ov@SvLMu_}d&BD(o(>1;&;Z^+dFt;h_uKhHt5~WLT`F zgWE$T!zy#dtl9}f3WqlgvY4Iltu$;>dB@7p#eAM?w}aOmHPe28wqTz@4+%NwqvxcN z!~;*k7r;l-B?KqlxOr*{K0h8~e@VhkbT88JEHohSRT6IAnu4Q8L74-O96SO4l6YJN z{g=RBkjlRb`OSbImjB2?sAq)xba)s0+zLJxe*-+*G!$@*9b!l%;kN@GHD3rgwP8PAWNrF%HR`8^!)y?pL`5qm=Dh40rwgG~J|JVv_sSpQjo z?}6P*Au#Lk+c_M(5%FSmc@jU)(O<<^B0u;X;$s}H-}6@pZ*w^466t{aIr1my67kj8 z-;h56M?WX%k_6n1{J(~;A3cA>utI!Sqj|B2g<`w#ULrm5-oK`EIzu+&{p2}+Va$s6 zI6We#;l1R!ePJveaQ&V=75Vu+Ubsj6NgD~cey^o@#_zSlJ<>RW>vWUy7v$%3pl}c9 zz_)d{xKxQCKc^P}KNQa<{QVztTbd;P{V6`ghXeT#!hUHCACIs5Kjd^-690ZSDFq+E z{}2*z!wzjX_z)u#^^X`@B)4`R`fHi^_D`U1z#rL#a=uHn1G7tN{z*o93))jk_14Z8 zK9|?xeWHKxK06Tq6}`{OequcR3h*uNNwka7cWPho^kqNUll>=MnCibnk{J6w*?&@R zs{am2J+UVf{r8$uktk0U4za#?g0BI3i|7Tt{|>R0+Sf_^a#srf0f}kjllbLw!1eJt zAT?`)Q}~}w;XlAu#$VFm7@t52{{c3Y?wJ^$`%f632PI$pFyZe%MB|gf|DZI9^SQq6 zKSXqK3jc$sKj>5Ni5@1pHHH5{c5(b4z{B|z%JqQje1sM38SO^EA0l709B$_OUII?@ zOMY7MAipsIze3B@>#tnN=~Pn!zM1G$9lx5E#82~%uT#!<;BbyV2~Xg^Ac-IFr{ia& z@b3bgehc9Xc<0QwH|N%v!%tp6r4L+>9g%>4!@`8b<| z8;=!q(bp!DWUnk&~67LuN{66=SoWL*aN9^Q&4*%Og{D6OJz`mX6 zf8xLB{og7q0d1V9zw!;>djGcyXXtz)-v7X;Ct$& zNT>HG{ajFt$I~w%|G|na@jmty_L70_(K;WC;Cgv2!p$6hrB-!9{Wb~SME$BxXwN1A z`#11xBK)d9g};@(ZlL=O$FGh`wWk$)vQq%x%=6om`LVzJ-azw7&tIIZk8lVv4tE32 z`EcswRQ?0(L&Ka@euDG*3kQH7aL!j-CT|4X%ID?7Y$NBJa=w~89`LjTe3LeX=NAyA zX<9Nr_SHL&YzF*Le@rCb#YsNdGWN)k4V1rsA@_}(!ozIEk$Wiru^R{G2Yl}l;v1caKZ1CRQ?;=)o`&n$HN2eD2fRn=7i#l)`aYgc ze82mo^{Mu>ursv#={@qrEUihkr-fav-A&~o|0Oc*$9jJqU^6t@kM;igT{6FLfL)-y zj(+FUhClL8`U4;Pb0lq{esR5>_4sYU!`}D zPW(i?FTNAE(EH-E2F_R1TGSrtQ>5Dy>Hmyp@pSCGRDS=b+~0GOPuZp(;pf3+{U33k zxO%zZPa9ov&@m(*;C_&k{L41+3aTgg*%tB}jQL6B5I_4V+F#JVeABlwWG{*KwW(j@ z#!dXthdICgvX~qEO*$|1_O+?sgJVbO&uV;srScRt)xI|IMUKB!yf6bIf_uOPWo%Uzi&$$oQB>!}i_+nx|FXKK-3n3Mz z_HB~J(>|=@N37f={#KJcJ{NF~U#SJ$t=HH1W4xE}6MvTH*ZH%p@?gr3a|--fWf=17 z_*>;@d^zywd|2uqkB&z+bH0MkSKSYIRsxje^PG=lCnU9@@cGO6yUJ+^{Fs-B$-a;9qThlF&Fdr|_aN1m_h(F5 z3b@{mR`6dhq;|yePw1yM`F94)U&F3g;Dml^Q`YizY3Tpqgnnvc7wG4HEWmA>lla@% z+dRL{Z|+06)K98#Kz_nN^o(AA+IOgb09QuDY2VTL&~y&+`eQ%3#c)BY{vRgC0r0=m zx=-+rCn3MiKW-L(ito_j;2)0#T<0G*i{Hk#Ci5dUd@_HlWQcbq^YeMG=WmtLI!zO{+<5=N zyDqIY+Kk=LfAGPh=eT-bInz1i>E{lN=$P3Sv6U?;afghJ!R!92eSY0D+Wi?$*C`Gc zVuYlp+hkjoEgUV#G6`ugXOzkfn>DVpp*$m4?Q=JenX~5XE|-HDEheiyL(QE# zqOilcK(u8zjbAHR8+|LZ?_B?6bA&ebAj>&%&?i6n;=Y=iYhRju(pFD;etYhi zLoXj3IOs#&7k{C>pl#F6K5%+bpO}_`rVSWy)hJ0$*U6fiftUj30Ykn@Fk92iU^wtL znlC^br&Al{6WjP-Pw?Xd4f{w$%|uJtH79TC+1e)$`8I2x>^o^wXT5U1f7HVR2RL`) zs`D|x!HK;yCv-TIt-j!{9VcnENw9iP)@D*RRh8uM!n(-ZC#q(<$7XRk(o9(W#A7cq z&QNMVaZkkD7Y)nQ%`x0z2~NHj0mte;4yV0TV(_JzM>0Hui($&o;Uvq;w6oj-{mdr>F>e}QyC_+I_8+5|Y^M}9Bv=kUNlIIn*`mk|Ux zoc1)j8|wAHH-*1dd@IExd0C}BneZ#Pq2XT&Kfwuq3U1gCLjXaA&e9-mr9?x0%+H7o zF%S1mnXG@Cc)$=KJTV4)4La-f`nR!H^s_YP=Keo*{JtDnAC=?nQgHVa4*Ok5*L#nT4yOsI{Ct&U zJv9DQiw;PSR78z@jO#e?el+GK%BA!v;PzAcYld-pzlkraUnNRLDY(KZ!gq&pzfFwU zcZpJw=5|q<-fpc5<&umuSuXi{0SzZk)9a;G!Hy+kK)Is_rh`VPLqF40T#VI9tfrQp|bczyytmf#$Jjrv#;KXelA1J#wl&*2;?IEBCRi+KK!m&6`P8gx>2l(9YA@P z9eWV6dP<*>NOvXDGh^2gZqikQ^`FkGC0aQY-$d`Tpgs?@65$WhgGgVezt2SNZ#-R0 z+y!A5CeKZjuNu~f8;I9Ox&z97xg$|7!KcNJ^7{M*^$jQTqdc)OHVyceiOv7ST?+O6 z9`z-iqGWx=7~S2M3Gsif;Pt%%^(ES$c-MH}@IEvmiPxJ;yj-;B64dt$q$lcYcuu>Y zr<;GW==G9+C+$g;PdYg@u?Lg&l^#!&3%Jl9gG@%}y~)4F4nVv;lqW2~4uSnwJd+U* zN7s#_bmH+v06(1(@2MHQIDK66ple0E09v{9{%LXI1+aN$I8W zKT^8zIX~y7>i+X^E|Tm4=OT;#coxb9oP5^-UU3`_8FbR$UIoP&a6)gHbjYFJi*Ns} z=eqnU~Gd-q}maLp?OXuYy{ymR;L_1#+yI%bo zd-y^;kcTIT$>Cm;#D0*9Q((M&iaQg*L&Ba~&on>{o?k6MV?y+fMw2pc!hIgJdnI{A z$*{?TI!}o(dnns3N{%h7mTUiU(?i~&_qt|Aw&T1Y$wzOn)3EVe^yFa~h@7H%P zv|t-o>a#B%-LxQROtYq`p|)_t+C@`Z^I2Y1bAj7r%gwRo zl{FUFg3jK{>gonBna5gR-97$>&Pdh5nPYQ}4rBG)S<^~JO{kf)q8`?7uG|c>=+1Py z?B1U8vKloqX?p3K8eWVLrFK99OIFJS;9{X z^^3^+g&TMCfKEa^%#L&mL0BHDPimhG?uyvF?R~TAPCNbd!DDZ@bjzSXxx*ID58LJi zhSU!ZoGT0E<5!-st*vN#ooeUHMRpuhb<#00pLxHm0kuFuUP)WonsuH}A%ZO^ts>XC>dWVn8GG&jSSy4H* zPBv!22dE%;Esjc`-JkBk{aN*z6>m7rJE>e$7;ZEHn>|?8*aha(%huc!;hlUpz-hN3{}N9j46x{FhcmFTONh;DqzveqX-Nf zSF+7Xjw@G`A)jLO3dWUB1!O?&qo!J>nlxWev?tZBT8H}S>B*fkkGC%O&2 z?eg{9X)mmSvk=Kq;IP@s1~&|Lmvv`%thFE#jBGY}Jf6;J6Z6s>y(@d%ZhPCeC>V4B(QY4onK2ko|iqcJ^K>2%e%RN9q6{lWL-irsbG(r;X0a9y_^FHsz$H z*^M^45mO^4*H-MZXS5VoeHH2Qsmjv>GFma5Ju`-(WHN;r-KMa#{lw z^?5!;usSQ#({qF2LV?wdXExV6q4G3UwqkH(tIMA5b%@{C+^%4W#~DtKl!l`=TfQ%9 zlhV?2#Cq4=8a58^ojRYskl!Cw2ki^YG=*rwX0r zv?0(okM7~dRow9<%-kB`*@zpn@$;L4XOSU)Bct8Du(lpLaS1nAwIFNQLt=(2-R3I~ zxhn1MI=}3L*Z-orj>WcFEjjtJWHwo{OhZ(cT@?jesG-byb-=`oc9Y54C?Is1Vs>Q* zTvBefiH$(`UaQ9iw`2;l*zAf@A?HV%{QkNkZ>BfPC15>UhAhi3lWH@EMKZmvW?z0y zT8U}Ukg9aM-BuFGRTlcfN@g_bMzEMdw9aWoFj@!m56Th)IjTiQOvH-vJX@yU?kOz@ zSim#d1N-)M(g!55bmUPt;5b6h)WLsIeN&V8S!+{MYsZiwP=sS~r}#B1l%s|stU}r? z^?0?I;sYiUbybufa_|;*xTSL1#GXPmv)mJE^m+@jRbxAIx$1|9yCWr2$`F_~J2GkJ zg1Q!|n!=rmCYRZsl@qere5}wr)R*DP8)nW-a}@X6MwIM)xC2n}Hb z0aT2h5?OZCMqNc2h>DiB#NoHuY@%S4B^+*G&q~bdPghJbx@44KcX>=kMYiVJTp>$X z98_3iGTIAW^$K$!Qh_XrigtjVZnVfaDsAbG3?V%|!)+1*K5M2K`^Gda!d^AZqw9n)c;fS^z#2(^K|C_Ic(WpyV$|Jk@}#w$YFA3npL#Fk-~JcxCXVRT7TiWZa! zQiZ?FmfloUUS6`i%I+9GI^34aK13W_w;937Z6+M}th~!*Oh*+#m;1zzg`o5ax3`1M zA}2w0mpnKO;RJxSZTCft&M@1oZLe*0E0LjP(kByrnTjQI0^Bs2N*f9ZkM_LyvEd~h z51cOkD<04P1P#_~t@r^eSEfQ!td`EAlWn#*9rYl|LYQ0f(P6GSao%LkZ1LqOw0~yP z{^>~UpC<8|0EodX*2Dt2YPz?fWARuzP(G;58XEC>-M`osi*lK=FfY&AFtWT*96Wtk zT4~v^NSP$GH#E}OfjUl$tufrGJ&9W_#+eHCMpW;e__q}QG<>_`j-^YNCGv`YHry$f zojk8}9=)|>$x=P<_*kdmxA6`C2luO+{AHhvZQ zZlkFq{wUJ9d>Z7TE}xD7o*us(>CL7>lHY;X@H*^>X5oD&e}ALg6@QG<<3wl< z{39wKa^e@{8<0+NY1Chc#^0v*g&_%faS7~!9zr_Fr|~}g!xLAwS(qFD68ImDJuF@= zyo_{-r>_?70k={$tY!xcA0Ry$@1_tr=>65=SOc|hwJ^!>7}9lKHSww@BAs}l`wfx~ z2d{P};KZvX_@kWn^)k1I*Z_Dnhd;`u!G<9o2ORbg1jl}a{0TVhAub+h4Vkd0=WId9A4XYPCMP{xSKll}LwyO=7Q@+x!Y zZ53VKz~F4ppomYcQP_}i`CUgvlhNkQ4rQuV#hT7kcuQTKkr~W&H4m%xj2>z%EV27+ z)-116g%f`{SWa__8K%YB(~IMK3}>N^oTMQ(Q^HjMRSIE6SvUxX^8B8ON4@^osRf;n zK@=?~XGxOHiCdzT^z)J)5oL*JT29##y8#U*nK-hf7qRJ+JF_Yy*&>tE?W(N!a+iF! zS9?!0e54)IhCX3+rCIacu6#>=>F9B}CE4!YF$2ea8t)r)()-;qMjR_xS_g2R;xv^I?SF4L(;uAun6!EafP(A zlsv;lxLe{dpxHoS>B-E$oFM`SNPct~?|<|VlF1GRcO)A)0O-7^w0Zd}YcpFry8@xp zp8VvL(;hk?RE=9$D;IV9T5^j<@7sHR?8#hzPn*#g>}vK4N>TURhJP9}Yzxc|n?;h% zs>n91F*hvhDf0(frsmD+5Jbfio>JM}p)gNnqt9$9sr5seFBs-%Rmz_Xm*P%01JeWb z#9YOwN9l&iz5D=#ADz%mc~+zdGl0?sFF_ac7s}zu08W}{uFw^aTosB(ECEMG`Jk{` zUhQT@r?%#e3GKfhX7n3eLHq|ZdnB3Bu<*l5{ zD(6-DYU`Q{Y{d@tQrWzj<8p`3E}ec;hkvft<*CXxx?OfLoNsZ0UE~hSp=@)8#o>|_ zIh5yUZmYAD77h(7HoIM&w>LVcqocQMTzFWOCsVOzSe>mt_EY<;Mfp~9!^rtCk)!^2 z20BgTN1~i;bhvjbK7HY)gj`#KLrcM(b+f0W9|a~8kG2Kl%Ka{)_2St?{(r&d?5SKZ zYeF!`m|^r!oVTQEhqhGv_S~mB*PR*gdWQF|Y6-SCR>A{w?1qZIXZBjtf^9P!l%_?a zN?5NozjkC5%L|zEDjLIXC0&V*9#Uj0D9NyS&tDf^T$vB^H=wD#GeP|m^+T>Nb$=5o#+i?H;)aSx-Rgw41FoJzIf&Pk z;5K5wabd?(>L(GQAewYH$tQ&D{#qc0F_o!Ok#+&QX9QY}vVwCg*=jYFEkv+w9Bn^$iRLa1pex0u~(t63{^t|F|-pZXlx!S(c zDV@de5q?f@Xhch?C^b%B1N)xm<-<%+OCh}&j(Mc}lfeE@{%#OOo)%AX{rDL5G3OwH zV}RvEVcim}S{xSKLXIvUiuNCfD3~q^tX;I`rm4=f(qM2@q0`Y>5mAOmriI;sVL@jI ze5Si{3M}3RIPvPpDwfg|SH9V5X_9|58oh&ulp)j#6LO5%l`gB@+vfL!V_H#MWtvc) zZHLB(>M*B)<9{%_&Sf;RbbEG%Wb-I4MZ}$6`-eP&S=8}{Hr$o43TWkn-N{sa`$Bu@ zn%v0H%+wU(r-;5h;JzMtd0UmiSp^Qb&@~! zex0B`r;#Br?R0RW!?!`Nhk_ysB#1y*A7rgy!N|0lG?pj%rmX^Ns=z09N!i)%+F;qN zGBCG@mlaMof(PEt+}`@()-?Z6)&#zkF->Ge9h1uf1zm$f4A;aAWuB|pF$~Uyh%r?Y zQu5n}6> zDxV9Sz+u~aHjb{SyLy_-YpLq)@UkL%$W%S3X5)}NDB78u!8})uY1!%a%*-68a@~6~ z3xl{^D^^ptghSAjrsjsi>29#bZ9cQZ>ddbpl^@(6>(I|#Y7sOvU=Kx$$HV;r>wJ2Q@>8|Da}M zr(4_(v+|~+sjRkF^|#dq7tN038(mdiTWD~$J=0`1YNv;5v7D@Cqb-n=Zc2B6XHq8T z8QxcB(Jcz@2|*`7s6i_y%0(A-_3vk_ojiGsRZ*WqQRoP zWcku%prhAty9Ck)2A2@`jDrkw6mZ=x;bq+O*6MJfgzKr2p89ZEL4Io@|2SB|l{)4QE;J}kFYsyjFluBV6%S#aF(z-_)w`Eogc;`P7WqciD z3^`u|BmNQ>=OtXSA+|AhiigvoP=F~YLR!EOG$HduU>P2=4@4m?H=N#}6^R0esi;2E zv}Mt}eWaym-tbsJM@ar^Ai?RjNOriU|z&zs=OR|4I=i)N4U zqzCH)E}zF~$r)dn5l&Y!v%N}XO_nU1)6IF!h_nV?BP47HQ(SE?9ov}6SYEzwu+N_9 zFbeh4*EQ$0H$Ol)1K{iU^!=Y9q{xzva#7Z;<+v*jty)&yy zqHUIUwO4bvL@%v?0I z)b3EBYk7~7rv6d8=ZA}&oxOD)3)sl{MG&67s+6|&Os+8n{h2vd2)#t{Hw~RWTSLH> zlWTSq=Vv-{LXL2)1){MWERId!Y-H$90RshEvs#kq|am&ExrBMefC4(Xhz~0TA*VVsAii zo9yvO?-_gr_G{=55MSUe1KG9x$m)bE#qof&veEq;kO%%ptS;b!ESzQG z_+GZ(Zg*}tFk?%hd~v8C5D;u;EGa4{E`n$OoqQOwj)x)Z_y>oX#8(VQ&4 zV0aXo6Bnc^CMd)!OD9eX?#QitOT-c&ngo)ml)Qln6SN84t9?a9zTA?Mor%Bl%QxS8 z^C{t?NH`oR3Ts#A7a_n^VNpK%dWY7`eNyFdTT@YZNc@u83>(d6ZVO75SEz&V5bOtV z#)9Vq4J~mQG!K2y)Pzn|B&0_L=V4p;`U^Sr&^Uom^t^M z_zjxrZ`-$VH)nr^tFwK~l3PEeJve&)mWhL_PTjPnY2(GCJev2s^R{nCHu|3``)b@( zXn(69UP{WFTsTyVYLKr_#??r8{1`}?sS3Or($$xi&z#hiRj_pP&Q9$ZlV@FbO1)@t zgiE|8QTK}%Zk^TK|LVYM9d|gF)4q6^vu0U`*{X;vC=B@tY}~?V%PW@o?tinI6F0A zztDAp-RR?NAD$A%-hc2PBhN>=Uj8Pw3H^xo*^2m;dOFId^I0!{6T3Z; zzLnc4?T9Tnp??pGM}K;f_wUjZ`uCtz|I;(PJqu3g--FCX`O(e=C-m<@b{WUR?YqhXX-cN=i=(tS)oOIj>4h~xq z{{XvFiU>n?EGfI(gx%@)kf%Sz`=R#)yVJ*^N66=SY|#mJr;iIyavk9-``?G%F{>=?oQ_J)X@0Aaz23`M12vieOaJOd%82D?Lrj#KTCkatkgw&$mO zeQtE#Ln9u0t@HA+&1Y=vtIe<5b>X>XJ$pOnuX?C+Y4mLD>e$A0Iu3P%EN&qFq@{=# z0!u1KRB2a(cFYVGD5-J>3+-zPM^Bhl?{Zm(bav%J>!|O+(&Zb@9cs(5E_rIy8?UwR z7+JG%^QPMHnj02Z^@;A%;-2oE?eiO!&zY3(tIn$5MaM42h1)eM%g`S-0AP2dz7VH* zqWd%Z0&ueTBlx@8_k6yQUo@ImBqRe|JQP2j!{HYVwqpsqLcrgNj{+WDzVJ5S*_7YV zBJN_Cp9#6b)qs;+f#4Y_UHlj16@ZgGf#%hSIQ+EHJck^C?Au9>K=5wzbCs~8vnKHi zhs3Mcnk0VZjwF7-6Y_`??dV`{+m*D#haKH@N&JA%<^7}E>1|Kpzel{AZA{|ly6C+A z@Xs(@*A3`5*B|gz9RGbH(X-SIHmb!}{n6oY+HA$d;b@NBZP<@20LF~C80 z5?pvOUY&s7%k6`qF~Z>w$3ZXrLOupML9}waS&m-}rSNYQV!9ov=8>3aPvPGvys7t( zmL}cH;X3|}!ee~?T-Kin-R?oipVUPk7n_H5|0{7)>=BfIS%20qbkVa&7ai%L8043r zSDZL+8}NP~>K(y33x9^F|0YPeVE2pkDx9|@Km6r+dx7>g;iniSO3#4uC&yOe{Wapk zxT>cs`;|7NgO^YE;kRxAPajVH?&2@td|YKDn~_uXbi=3d4oYVe3}o;94ATFg{u=4) z66rDRDV{#YK=Y56&vm_%?Ozt_M*AKXmuOEU%g35MUcN7pZqtVXs9Par$*rYx`C&7&VBrIJ7UBGtF%CW(B-zntaQR2rD7g&)RhU zuGXe=&pLH-mCK*+U~QE%X3ww7n0xK225i1DOyJw;%_vtYVdK#;sNni<(9kW#?wq*ViJHR-)$ToO#ORYEK}~y7HGTR-sh1 zY=%%u^}b2_?wlEF-&cL@GaGXIL|bmQH5?9^k2m6)d801e(3@HH%hq>3^%;|P;;g2z zT#j~O2XWR$MUVl!-&rD@06cHg^+Rm=$k)ddlSTQ%8qHe`U$fKq4Nw&&C$YwWcd^LNc_ z9h8@`vahebxuvbIVA!-u*J+=v!aOB9XQ=!H=Aq7Kx`!=0?ms~$n>n4&bPqdU!?~Nt zFC_EB4_|i-a`%M4g%6YY3EuxPUniHFzU6*ybUNc6_4n}%9d4NgJFO(0agX{ft!wlJ z(HS!U*XfLVBq`zVlIRSwak68ssW^9!#!GM)|3SK$ndCjXE(xfz`gC0Tn5l1l-=p}I zJ@{CMU%Z37+B{~8kN!{cYJV7z7qMz@HEhGV&GlKxdpEi7Ph3b95qCe$hYyDf7?xkbZ}cKK%CJ7qN8zBes+YaZlL z{w#_iVUlh$98vajUNK2qu#$m;m=fhD!=vm!IUem8>B)S_QJW!bAlDf7$_?@tu zpc#&8g7Jghp7=lkwmekiOb^(-0Xs8W3d^zuuWMK1KR&5^u%yLdbB3$@WwqWCN1^l? zc2d=xSL{LtSDuSmMvc92%hZLAwn%zK9<`_UKb^F*CG%egas;=w|D z7kqf|*1++l%L!MgAdLvl{RK1LFL>`v&kYo2<`m`FvP+|x*5cN%HMq2=c4Td_D>pye zomOe}M=E_rQ*NU#l;f}ME)CX}7rWH*G_S*);V*LgD)Q1Lqj9P=U`{iO)(p3$-Qv#y z^^$203@a%bQ5Q_}`ZIVPV^2WK=A!@C>Zl$0ck3u>_ekfm(YRmGddIq?9g5Z${bi$R zA@E?;6A)xtp+!Q$s$SX6svkS z96l4_2+j2 zo*!`d&`jZnJ-3b@c8vV4pyOAFw$<~uf(J7=m7nfjygs-?n7EG`y?@kH{$?RB-b81u zRt6gVd%$T!kAOB`AMfWhYO8jHr-Me9MADnpT^^}*mHn$ z--glz+^rzXBe+-?n@ahQzM@5&f@dqykiX~;D10I8GDoC-+Ti82gFXzrPEz(9b#o-T^3YB+!zk! zfrO5-r51~Jq1n98INxlZPwX$?;QW#Sev(?%+v4O0X`}iF&VSPRCOgpv;+ufKtA5RG zRX3{K?;HBMMEf zCqtqKN-%Ls5tRrH3ofC@Zmip8;J8W3t8raWu)<|XB_O}AiHO4QKDOqXHi$5cFh2FL z1;J|VC9Oq)NpqG&i|3BY${bMyTO?J9z-)2)+%lJ3J$~Ne-Y&=d=-FrY^|);9tH%U{ zQt_WN7QQ<>%{y_`c_U{m|I_je=b%-mEeiW83w;(7R4!zb%~KGB{=d~+-DsI~!yPwY zv1LwnXZHiYedWb%;lWYQlvCGLdprz^nY>+GzYw?lU$*P`jp5&Fo7t9b{LLd4w^7M$ zT0E|(F?Yu7iO%r64ZFttuQzebRU1e3Ijg4)@0isw$o@ZSJ#MnJ zV@a_R-8x8*E`0!`jzO-<(S$foRq-)9qnAVUVIcJ-&=a~MW`PHisscjC$qR^8jV~`- zwqJ8*c!`*we8SvcM2POE?pqVV#O58l5rcW@-)J?kuQBr-Vn>OX#P$a8!k|{t9_^!6jMIz8Gr-$RhfcQJkO@wnA9AjINWm)* z53t8zFfm8S#6phbUp(sn8KP2pai}9AsEQ1DM81fFWRZMG^?~%L7#-5IA&W-R*f*Y` zy{vUGSAn7ScYFhiiXkVeQYc1Fyc?-}%Zb;^VKrDxRXPkNsX-&vprw zY!~yq6#KHRb;k5I{F^?bwQXccNn=w{adA;oV@Zkd4V>eQ)LsO}gKRMWtVdZRW8J{r zseR0XM<1thMg#4kSMdA#>sl$oa;%TNu5DmDSk^1rl2?1%T3g$Cff~gCXGv*8V=4Zi zzgYZwX|7?uTmbsS;0)JB=RfupRx-x-+^8XU{5PEAcT?AA)1)zaGIFc zp@t%kdKH})F^OLM(Z6$}0Y}s!?K^h)=bsC;Lfz+AX_;EqTQ`c!Zd`h~R&@nClhtUi zXs@2hRuxRwj!ygF_S13zVwH87R-6$jprt{-^m`<@$3Me81T4()Rhc-nh=7p*u}d& z1(`$VxA^^S3xIO@hysvA+Ne7nKIf$8-gslqf_MJ#($pc7pa1hes7^_rtzCG4PLY>P z{}bG*LC~!7mdjk_ns+*`5RzBr`oWS))Tg*`*U^nbQJwws9=>7Q?CSA*-+(rPYe!aA zboT7|tGA3SnKi8^*KBq8a`I-cJ8$IJ3%6}K>)hd?yTajF?|$^uo+)a@)D3&~#deM! zKX=B0{LaN&ubZx(`r=*NdW)H_b9hH}AXGoRKrvcf8PS=;ii$d>^!66+6olZ|Q+MAu zS?xK0)%aQxVW1sJS=M4apaBVOQo7y^j5a3G#j%7`m=ZSX`Z*Tl8Zz~CltER6?D?S_ zFCwpa@%%?`+%~(WeO%pTlN+vo=&6}ky?gDllDb*rItA}M}Y4@xh*g&x*qhg33 zvT?QV>ZY}Y#ib^1peU=sxi%(n;Gpa$v~fMl9!32m5*rto3O=* zqhsZ=aIbQ`_VOf_2k2P&4t5m$_r(2&?l5$Jp?l1?H|5^+*3G_~wEmlOZoY zOx|itr@uaT;6Pv+4Bzn`*)WEJVVtsz^{a34`WTY6`94t-Wm%#UG~S|ce(Wh}Rh&GI z@H%h>gMX=mSbOqH#Gd+3Dq%M)Hq4NErLn-94jqyJsJ#kkyR^b0v&S&iFc%)<*BVYY zoQ+xL3g^|d`X*k1k4ijg z??$6lAK`&ri7!(K*%|m?PgGab#=7zC^2*8@A&9h3%B!o(wOV}p8@=~lO=V3vzRVhO*b}!zA zB%SW}(42CFaLvE>Jt)H;>0;w|RLS?eQ+4jKayjeVD)3mwqpYx=A7zD521*KryR;)a zs@}s(Z2TkAo99-&^KR9-z^_2obhYvpbYSw}4`u{z0^<#n2k5~hIK;Z*8&`q}{pSG} z6TC56hg?VIzYD-9?)a|*H2(Z8SP&Gtko`LG<-ZEqcwD*WU!pno#}mA{qy`YAlhp2r zxHz$gq*H{Dgql&R{w%48giS(M1%y6-Iq3raOSgD$O;+{J#FyA-Cy8r$XvN3>c}U9Q zku9-n6BP|5{tEt+hrtXBCy!lOf~cFIA21)Il45vXdCCyPrc;Gup$p*Pk(Z-HRK;*Jww#2|din zzGv6XSTOi~?JaHR;h0vYT{~meO!z`P416~N-{-)GTQajlK_^m|%^Wpm%twzQL->4~ z7TXuz@KRsjt9{|CnRvd?to>7SX^Usin#>lm_n7+_dy}o1ID59XL`$Rk!G;gF|L5oq zk0?F5QXI5&@2{(>96Y$Ps%~ycQ&UMveLb}s{-oIo@hs%UJ~1%2bHJO|B;OS3D+xtq zeG-N6NoiwaNogGvj0D4V+A1~`ew{_47@bjP*y&R83Tx`BJk$*8Z5l9Vh={9Xz*pCRnt^@Qad z(-*g&|N1wFe}DeHe^Jjd{raMVFTU8j@9cel%7_~n%VzCNDf*dpW&e02V&3Pkpf| z{#V5a8B7jwtP6-c9KlvbdfS*+bwS!c$<)KEqFK22)MX%WX<<+iq$5-Ra+dbky>lPj zb@>x>A3wxCKJ?Vwr!U>{$lPNaFV-%;jAKXu)W z&n)=eQ^)@C#AEY>7q8X+vF|#TcI`f9z4~g6*qmrP?jLd(^V>r-NtB`O^q+R)TK=C! zg}d1wZ_-4>kSbyCXeB$f3ibwmuhpcR#KB@||HBJETcGV_D;IpWP#guEg5g2!4K^gX zW}J>_77II~4}xE-y&=x;zg}t;!NEYjb+NalFVXLHQpwDfZq&RRLSHJEG ziN9DWr^o-M96;Y>!utglBzh-U2!>l-kme%T5}5WhJ!%VF86c1IX`1AR^CUs7$;b~% z8E%(=j?5RNuO8Lzd+l}Bb7;*E8!pdP1eWm zW9#00N!$J5huWT3g}Z-s@SB$xJ^Ss$cON@={o*Sh*>K*D=d{~jdVx)U@dY;J`B${N zpZSDs`}kvR^Cur_TfX{|(U~h4?iY>X6x2DF^j#U}t&qlTBMl94QX+acI4FKR>_ZR+ z+9kZ_Q0HB>_3~dI+&80lQQzs0U$N^}zji^>IpIq*P0XwuvT^GvXYA;lvwYlm_0+vL zU7=mSbYAb!>R;cw2j#tMXcE4b)`9bYZH8YW=(ZpRmho?hp>-X zZP4b=v}YBR7N(_*5PX9wO0%;|D+c)lHpT6(DlV>ayGMvsgUda^qP#37)v@jl->50` zYlm)LHnq{=03)e$?rA&5jM=$iZfB8jo6om!=eV973w*v7acJMZSuJbljvX8nP$9!E z_JEWllHWW7Rsfchlyg2p(q7CSV67XFUN2lNj2F!qZ39E9Fh2IVkS$z&3brG}J@^}R zHa0<`oC_=IM(mr%2R4{5)MMC#$48yff+ZzqEFqYnxWnl8!Y~48lV)`!yzWi5j@^$D zens1@4cB(RGUwN9INQLw4;|DVd-@6Ou|tA!HOss0f$PV&n#}9$lNP=8a_?#LH#{Ro zljHocw&hEV^T#i0w?F?p>wV#OY|2Z|Yj>=SSKBalpcT-i+`7aNiaLbY#=Cw#4;mJRexdu^Z?F57`G39+ z#TXtDUSy|17Y{c_?0nT8I^iFwno(0Tqe?6&s;%v*t;HU}46C*OhqW((kD_M(pCq%} zc6WPhPcEUQg(64kwYx1K(vurG%6*o$P@uF>O1a8?m2y}C5s;gTfC$K~l*8jiPC-OP zKt(`AL_}Xyq}}2FO=j8-c;Nf{{3*#K*=Ld`$&)8fo;=9}kfR7;%@CwENT^Dr4&v+n z_FF4l)29wj4{8&zW$46SZCl1gxV;Eqytjz{MBQ+=zY&pOtHD+;in@(c%E<^X{P6t? z852MY%WoAO`W4Ourd$UiJ5g0iA zl%?rd>;xNA(Jm&e{i|2D4z7s`;Fd9d!M31KKC$Cyi*p<-`m?+mcVo4?ZCbP_Uuk6^ zhbJpZBq^BQrnfp}jDHwzmlb>2rnK|t+tEJGBVA58cs z<1C3}EWvnUpcZewbInVBvQqzUpwThB(z740blDAzzSO?mD@Wh1#l`!_jUC8GpFr@j zhM-OVemqhsP3g)G$rsQA!RP~!gSK(NC09P?aW>2TJQ0E~!jb-T1daWqM&DP8XRo7k z>7Ap;Z;V?v$d#_pgkgF9tWWCZFL`P8>RAWBy!w8@_2r!>b|T}2d=M1{y2RLad4%!F z_3zLZvmo#Qa6bsBa3qMiJSrdI;~cCgCG1Ofs{DQpy3CpL4D)?xq#Z-aUZuS;E!Vkf zjI$?spKU~bAECj|B0qPb#l&PHWHA@cPJIxwd({smDP-jOyHl0BKPuRKCs{i$p4nx?@}nje*U{}E~Hqua>y7(W>o6l~SlpqP;{EAwHA{Wg9b0Jqdb zqj1)Xt+4PppB>ruS?$iX`hT8&_rSo@P3kv%v;DkHX=gGQEgGWyV32>gdjIgNaak|* zv$q_(Ze_2MleUoDpk~F{iBn&BrRRw90mEi1TTnie20ps&l8kjnBcU;p3@DJRQ$=S4 zX^cLU3zhubbyTEx07PHTC-{*h2q@N|x;V$|>rY@*!odv-S6xj=d?c+p{P7<*Nz)e> zE`DbYF`i!VVUvVUXIyd8^6j6$cXoC3#P9|0jz~){r-8`+#_#H+SRn_t|?m% z({9QQW%mx}QrBWkAj(T|nHw9{pZ?(?jLWZmqo4n0S?b z(d;?e`2ERyPh{*Kz4imce&v>8o3vZGwx;OOa$IWFv}b!#3l4P&wvi|nJh`-VA~AP26r0bS@gQ{o_o`t$ zb2q*r;2cqY7@4*xa^cvt5j%;|n%Ndt;s61qHo(Pngg#}`)`^4<6#z8(`JNE>HlPJXw6&&68X_UeL z7O898nbD?oTH3;)U2V`tbg(H(V!!?g3B7wI1~+LE9MZI@z`cBmA>a9%CWE0o=Wmmo z8w~lR84z%GG~_EER>@~d$VR1XtSX$lTIlNc90j^1+t;+TrrYIYYTeP+c z=B-7doQn&UH@DGNlayO)3{yxW9~8oF6{w#c2wBK^0`twNCd6qEeg{M1{tC}d!twYw^$$~=q^5LJYoq50+GtAW{%&NB z;%qi~_M4;mS|T0o*i~ysKYu6?pCh+fMwivbLrY#RZ2r>sqd~_x@(*;Jz{!fDE3m3p z5g-;6pQr6bIcSB79t+TVZdKl?J^_@q*v(~T{PEk>z>Vwa-cwgq$ zhWvf3PX3(3-(^J(MD>o2?j7}bmX$g4`n13~#Q!iW9~a!V;6L-`(Zy4-A{g@Mmg@`9 zM^(p)G#d97b>`=Q)KM%19)4|v5W`dvRcMzg7EG#oi7%KqL&maPTR!pF;27$YJ9yCO+|&Vi z4_D_69ymI0VE=sL3gJA3ytMd8?{@8aAAYs-OGkURZQJ|s3U+(((W5Im7au+JYWcv- z!ouvXSu^KkcgrlClhbYFjF~wsF>`KVR@cnJdD&${_=-a9-#PMeNdZkm@8ZLPy=_s7 zPljQPv5vBZbli--TrVG`HSoL4&t(!8>=R|+9YwJL03+8S@3EE z*PBO(Er>hX!ho#CendqCWq=<^g>1ip&x?`+9kqflg9=4cQEA+xTk<~Rc1V}dMe~ct zOk9@2Le?G?SRr-6QX|^i9v~Es(1d$iZDEAYop!0C&%+aaUrDJERfshmv6K1EwLdFg z%)a;9zArEDJMvA)w{k)Da1u=hhQ$mI?4~@UBzL@^y!AGTCvLUY6KTPi2d8VER34HS zh)>jHXb|`qi@OonIQ${#b2Hd*}^AOVsUsS!R+E-E z`^hWIO>{AxSAH;eC>zMqGIPuK@OR&4R8Fg!SLC$v9&D>Nue8y4mzAmhkh6?U!lWP0F|H?%nwAM|`=( zyVmPincw~HySwX@J0-TlZ)XtpLsP%6A1F7jx)`tV|nrnNsUBQ>rAkzR7<2Vxe}~@f7TC=8MMyrF&}B&;QuZ=tM&Y z)n2_Y5h)=wr7imVbqQY!H*^rXGaMarphJBy$M^&=Pz(!_J3F_((fOqxN#qBLi8kNa z`DJ_;=D;!PK|WPJ4=Wo-dX6KJO%-Tb_!1QL>j(z(yS!8AXC%%MY{ZYNf^ReT@_}r< zpe9KB2j93usq^#{Rs;BY|iR`a@NILe; z=|xg|kLpE;a=SmNqnznE>UT1@zp{p$R-(!2VdSSQ@(G`Ul_pt=b(j)OZR983E<~FC z$X}l1(wCp(!W<*)eT1~=?_IgU<1eds(m>Y2+D}!QviloOE2po%JLcHM+56Y7-CaV8 zcK817#OQ0k&po|=-3hW}@|xD2FK^#}!}I!et5SCLt#g~_&wXXi#LZ(5eB<@mryh^K z-0|TXs5189ZW$vnH(D?o^Vu;5)W>zc74u(}!cfq2#ZTC&dEyr^)rpwq_U@iv^!7;1 zXt`rCqtR1)h~NIb%ANfq@&*se%^Ngutn(z4Vkw4aD`zxUZSI;osyt`$5zKnx|QA)Wsp)qN~quYid&}-JlX-8;LVOs;?Q;6c81RCooFBhL+9DBol57HezP+h>Z zlIx#vIVkqURZRyuHn{hhZL8irxSPB?WODJ>>lgL1Gc7fiY|0VSt2JENT!zE@eW=Ih)D+@wMo;=o#WYtrO z9uEBZ+ktZ0gxn&sR_Xs@?sR2eYkco`8;)ae`bm*Wo0x}Tr$)Vwi7UCd>E6M}o_X={dA*{d zdhut^$WcMD9U3+27#oDorZj5QAvTBx>3`H7}#mS*sR|-=Pp29C*1DS^!sKwGI zepEoS=VJY8#wWK9s-M!t6D=W+#pM$NI*fAhu2#pdMnhX``*ZD|^J&N zHlw3kw^!nO_&2dN3v!Jb*sh6dY}dh&wUQEB_(s-f*QE>n*0*Vgm~%b$?0)lw15m(q zAocS-eLP%Q&6uPfv27>yjiznlyZVIIvC^jP21JFo2@f#))bj3Iqh2)#N}R3_NYBdK zKqrCx3{*W31?Ms9ZJ>5<*eeJU5my>$v5T2b#o3jw{u$EXD0SdN^e!i z-4wKbuB~^Ul1`DCDfZwtS;?;x&yeSuMkY7%3GbAanN~l3Nc$*Hlbf}E^M=1J{Dr6R}mPWs*pLz+v zb!4kT2IkIc=kDGpBdvqgLw+`SK<@MI9#Q$v#rEl(Fd?Oun@ec(whb-y`=k$U5M8vku3b|PZd=icct>?>(X^>sTw3?IP?^-Moz|#nx0E`ygZ!G*t8VtI=`pg_q%}L% zPQ~R5M0!&Sl3z8fM;r6A>n_3dE5$6^8{avdnX+fgVo36!pI4;nY$47} z1@rxDeANurzI-D-)K)=9f>X){e)wIpYv!6<$|R$Qf1PJ*)~fB=xaG4x#MU#YMe8R}1M$BeJz93LxP_)?X1oyIqUYdH5BIvsu@HMWu6%w-l1s5ZhZYl( zfV!-&P>9S{m-QZe#*q6ra5!FwjC{DFV&>p&+JkU8?pLB^`?*jE2KYqgQUz?dX7|j zEI@t(u!h_X*`ON#4kO{al3W0H!5xr7K!6prAHHCuhQUtBCYJD3tKgUC%zcf{VfPQc zdo_FI)a4P48bw7lY7{|^&DwCe@5rQu>sHJ<@YS_J4V%Le|KUHBaM{pj{ z4t)Y{!sLp1Vd#O=wccVd!Q7g!S-hp7y0VFI;}mf#A?^;RJ~c4^!#D+#PE=$~!V#q| zyNucIO&d8cV8W-XU-h-l{(NH389idny;F;}nf#SWO8$?^%qunDBI&*NE#+3eGx?nndc*1jjLDgP@1H5E3V0zITC^ zSmJWASl$H@InG&Q^GkI2EIOjN{8d`493UqZJ71U5R%{ZdB_^H4yG+P90eoCTJr#(< zp%vy$I0z%O%)#}7RM{-(EV)jM#H(ohBCO^9P==B2MKK~|93_<#|KsJL#qbQL{+d8zM7|jZm#XtYE#Q(6i*k3G)1|x0J&l zE2p3upd>~)Q*KP#ue@>TmCMST2Mj+xEF?WhNHMJPx)HSw$X7lt@)~W9 zr`(0zFJDHT%*&ZE)|i&>TrTR(-}wOVa4n9I0L2^KoW>&dYx&FcAwFd(bLiPI`6I=4!{ zReqiN1$6qVpByo89jy?XOL8*3Vb&U%QL5q3>*6^&e_XE1P*sx%0=@Z|y$&RwWM8RUCvBWt5df zL5W45zX=SIw>!JhZ#J{W*J1gQR{kOz?QBq9iM!0-gC4COm$9Qr9~N5PY5rLB0np&I zVEhe1$e?Z%1}0V?Xh67?IGIEH(*6gE%+7TqoEyxj!NdNBjTj=w>7|DQ46B?G&M2OR znunnnVf0}TXoy!Cty5f7o-%(vdvl&)+{1ZzyU;Kmw6_3#I2V2B$?wAwM8_#kwTlXH z@j{zuq%K(vb5|)}9agR>Yu7@FG?4_ZVMWTX-``MvA@1M(KwRh-*OWI7U=;M9;;uf@zw%gM6?m0kS?9#p&nl>a_f8IM!&eNyw*!8?@j`% zA0S=7+|MiYwzB0L@_2LKe>d_TAF2j*|n|bCpx&Zz^BETtw*SN4_JA z3)j4uGVa~dAEta$^!n+|b0)7IKV$c#cfX(XRq>n0xsrv5FDZnePGUyoU4#J~;yhR6 zJSX1ss2zNQnvlAKvxc9wJPvXjBVh80{> zslsF1&E-5Iu+&iXgaJNcHVJjXc!?rTT;Q8FnGAT&PC^$d{bwl)pM6%DJzE*Lki6~u zMc!N1{#PQ&TmM)sKiaUNjPP8Egl$hl0)l2?w~Ns%{zuWHN{CXogf?|v zdyVa&d&)1BzfVs(?d&nUr@A?r_^c^3*)QFJX{v4JLWY zf**f$>G*s1T$f`UrU$eKeek}}7ONBV7muWwq;m#&VTNIsb2Bt;=>_WAf!mJHEj9bN%nSl?xBdA@2V<^#iNtJURD5_`MU?m&cCo zpZ5OCyFQvfk3#zIZJB+So%uQKf{|nb(h6c-UozaoUB6KPlf&{$cfTBD>9SJ17k7*G$RT zKNM@r>J9b~-&gLwUu9TNx!y|VdyAfY#|tMSaC{Ni3p+%~8h|r|kq#?_Ksv$s#c$JR zPc}|3JFh${Jh`%U;X3mtk)7#mMUkKpADd2 z7)$+^6YJLS9i;ktd&$A$zN0*froNJ0wgdQ1P-@8?fiKrKYHi_A z=W$p;L1KpT6H`HDvv8S&x66a+E>o00zL|P6zWs|IY$=teKllXq*`bLto9>z{+UOb5 z>DZ34K0hdTM-S|>^TVAhc9YJejuCD3HMQkU5}&3-9d=;+CZaE}cM7prP;Ic4mjV+a zKIz)x&rbZ{Fr7mRU!Ht4Y|b3^%gAwGUMauMYHwV(YIgZiyeeq&b-bSnJ}=I4a0vyg z3w5nTlIPA{tD3LLN5~*78al#K4RriyK1^==;vI{yvb9!j8Q82o{8bDp?4`Hbu==@J z8X5gzV&jO2#*MA# zB_D5bI%)Vin!Z#CHy$e6IggxBBxjuZE@mr|jCa8cgnR|05hK!O@aQh+pFsT1H%9}7 z$AuX*l6v^0vb9J#wH9au1{0eKdYUN8WmLGvtuGSYQi}!`P5gVYEqjm;qYDhdYN!JAdA>WuH8pHD|JM)*qK1%su=@!COtk_e|V+sL~M4xOm(9%3kHNLA67BJ2P9@q4Dv- zZI*dmFf*yV0^=jt`WJ)Z@^8~zCeNAu^Jf?dhd2L{6}2mW>k)7ZjD*tH{>Y}owuupN zN4bBVb{m<`Pr8UUr#Fy4*E@sfs8lbmilE;#3ZJsQ-W;sxeuxc}JGv~GQ+`-J^6o`0 zYD=Th#vXXD9wLxyDpl_lr%<#_3L%d3Ca|-)>y<;hd)zBM_1oNCg|pYqCWCkOcyRnv z<-uIn{jV%|li1QHB=wrsx487gh7k+%2lP$vHgMK}l?TqO&YxMJ(rArGx9LlU-#EX4 zFzgpBY`9^R$Y&qUf2?F$d3oFJb=w4EK#%}8C|3_AF0F?y)7Hdc;CPJSS8=!Qa%hvO};trTa$#0 zA%TH4{+O?<$yJVfdMIbcDC>$ywPD$8L-~+t`K+WYj(rfHSl*K7$n(TjzFZ%XC*_+a zq|I6-oorvDY*IF@A#W<_Yv_6MqjQ_{WlEh2%xY7_`yq;-9D?_G-GRFc8V{f9h=dI; zZ}jLib}KKP!*)=b(K{}bpPt43%yYym$QD=~oYoN_WBKjkU!8ax=&8~pFj<$$ zp+mKmyJyeJ#HuulQO-Xg4aPz}PR=OJdiPS+-&5{%?SadYB;`O~QJ3SD=cy#Zd3EgQ z(aOgzi^Xpyl)F_e*C)is=H;l5HF!Pj2H-N2AiqE?YmF`@Vl`a6sQg&_=s_YYNnOX(PF8n8xx%eK?Een-@ku7okcL zyU%u;VcNl$x-2-87L%ScVc)WD%Z9ekYMC~c^?Chb%e`T9}t28P;Fr5=xmBn;~rd4@SInZ+=1VEi;1*01V;QyEpNbb-1%-^6m^Yt0g z9?FN6`S7nSsw=xneB3HcJO7*+d9L6Pj6E$W`V5KPq#Ax!)zjs7k#C^Bo^GnG4R1xA zdE;M{F>}g*6c{`v577)BZEf_W(dZGg3WV`vXw!P_o=2Io+O{rViZcDVhNG%=-BfcQ z)xJr84DHVaD+j|HH;RmG#80M0Jro9Gpf zdb`p;mwjPcZ&;f4?=MVEJ9L7n>0>3I>N9ClA8vLU)2?l7^Y$Gv_bpM}4JnW*YKa}> zf6{v4^EkZv6~{~rDYbCb%fo%j_go29=N+yDt2Vzv33lnyN`kGJ1i?v^nnH9b&O zi0vaCKfmw=>2g51Q3i$B9_7+;<)*Uz+&SliHq|!kPO1offqdMx8u%8UK6IKaZp{M| z7P(TJRj%xv=v-f=(qg?yGju2F2A#v-BUg(u0$Txkpu2EYI@MN1g9jA@f9+Uq(h+)ocD zW*@-CZ^Ym?rs22)8ihVm;Elw0J}YHcM@3ukOn)mle2|ZAW7@LHiZgr%R-%hgZ|$2R zLT3D%`tnSayvL4rLXySt&NNc*Pqjm~T&6JOVf`xfSrB$GvsdX;ebB<1LKUHVr%nm2 z>h8CcLm$^yULz4WIv%5(E?16_zRWm=-rlcl{o<8N%C-Z{=*)q3wcd+DyXsuP`%l$l z6@xFi@%2)brtL57kE_&g*QWIAv9VQj>mid;ZQS_U*0xF^M;1KJiI~vO6}r~OoLgIP zA+8qIG;~k}c|W0|;{(D_xLWz@kn#;z)73pxN`h7yxNhqPbXy*`ZW9+}0D4-})vYA` zG+o`EE8f`G>a6TgKG_Og-5aC}X(YQ5%v=964j52R#bGf&TKBJzFvKaxD{-hR+94D) z{Lk%BIUt{gNNK?#F+~3rDso*MNAM)*?20y#1wPSF$49Klo|vbehFd;2S&xfuoj!4p zy<+h z3gF8R$yzTul-s#MQ!R$T$IEi_R-VBiC@tSKK5z3fR<>v!JvRGuj0E;wA7|qDH!&Ji z{6_A%f0j&sjca+=98rEfseJI3a`{bp$WlHYT<)$d+cJ<32#k55?}W_dt**QE8c!@# zY}R^w1lq`p${$;x_B?Kwcjx5EAC%Vxb1f^`bpLVP=U50}PtTLD6aJj%WiEwrh3b=; zlI@VjIDb-c^#!h2|2?jq6}X00u(q9!$>QqolrNBgm-ZkFU481F~7nPb<-fCR?y3YBQ(7ukt#5GRn zU=7aYG?SH)&0=21Sxl_yS{ioH-*`n#oUK~OeUl8iao*si{YU;_k27fM%bKdfQ#|Kr0ru3=! z%;W;jQxP)0An2$9pIxGTBLAoMsUWa_ffTiC($Z7$GK33R0&KXlt(FShAi4j0jq+bE z9sUiTlf>bv=r$P>2aEYTy4_PTHiqGJRZ=TCbB=bpO4j;#lEB-BdpZ9H%=JqEy=?d| zkndPI$|@Q3Q;|0utr&9J6YXAs|HJd`JHrb8#Y zqy5v-|DaDnL7!d|C-&kCofhi(Iw}pvcSjPSgA(T<|4~yfE{~~N>rg1}U8fnQeLA61 zaql|KBoy~wVvV!HC2i{9w7|Y=ri|J*l;HTI(Bc2|o~pzDUMbIbe09TVSm@osf4JT~ z`01K=*bPU~IjbIW?fX}RRcPN|Rz6yO&Yyl^IOM>7i~kB@-4ec&R9ml{R~`xte5an3 z8hDs_XuRfsEt@mde=3`C!S0_6ryVrDqL#f&)Vsmc>+Ms)P5u#q9h22X*FWPxnpE-- zS!@4E0uO$!`Kfy!e>biDBVtNp3_h3yK^JhRVzKrVBo93~^5~SdE?x4xJ-PCTYa98<*-`ml zUM|1J>TF!gw_kw6M=D;P~9fbRnQLc*{M@U!wU-vzjq zd2syh>*V`MSZ0mJ2ozfZwcb*`Tfw&iOqcO3oPe9v7ho&kyBo|)blCq~E{5UXluK&~ zIp=8w%WZl8SCqR;)Hn3$^{pU|zbpLgWWJuVbborq8&(X!3LKUQ9I%#pTATkB0sIX< z%x{`{(iv+gM+bEc_0*OLeViy%{;&b(8aPde_0v-@)K75w3Hoo4#H3ttdsPKrczW}_ z^CW9PU#34wlh+%%N&LPH$gwJxSR=V`&9&IV5{oCwjhw`ii64K$9TZqIdE3%K#?wai z8a`^+*m=LNo{-slSk9<|*qUPB1ZD-}dYa!U+S`oJQ zMrUGvqu|pdRuB%FHs_sgU0#GU95*qZ`F#~}7*AeYXZGhE6O12rXrl7_`zP5PZP(-$ z#tn8(zGMNFJ0~z6;OnHP^FqwcI3HK~u1F_o3!e5}S z%rPRCfj2Xdnh!r6kX`W{if?aZA%|St_}Ue3cEa}%d6{Ey3N{t7v7(&rfXNdjb*QXI zGpUEjZ46R4zJWMr6$Tgnx9QE%;u)w5$9=GPm$yMIdZD5%Vqo>2tkpgN+pJ~5> zs=K0I>PX_P#cB9)s-|4f#P>!wgU0{jAGggT6daThhHYg7_Oe{CFW`nV9cG+7cE_EF zp2Q1ZSn$Ro$`>b>{Bd(vHOyT#U|LlRTdMqO#6S{6>SDJ(1Y6Mcp;vE!!yFB9!&_t0 z1UuPHNjUZzBEdeRaS+vxYs+IuENO<1?X|!zcT4g-X+`32syl%sk|dH$T9Y=UEoq0< zWCzj_heBR}Ek+kuZ*_w_*&W*wJ#ikbH|azAl76H=P96^=gGeeFOww>=Z3Y=ahT^2s zFfyEsAX#K2$tF2u6d6r&aerYR8B6kUzGXa_0E6C1qyXPHm_nxVJB7#$GLy`LKs|@d zC58ALLlM6Buz)Nii^z+ln7l+5lO<#+d6_IDuaM=~_FG9_C9BA47}TyM>&SYtfovot zi}s6P#$)o69x zGFg+>qR-IUvOM_aOqh%ji8YNZA;tH_Ot`-NITINXlL4mcBS2D3hhpN z(4Mpx?M?f@KD;08k9#-<(m^zp4yI`|oo3J>bSTZF!{~6>ab(evG@ItoQFJuT#rLK2 z=vbOh$IV|PN7rjG&-Hmpfl+#I-AbHU227N9xbBt=>octE}}2eV)_ye z_AjAJ>C1E(eT6Q^t(z<9t8^7zP1n%1bRAt!H_(l=guX^M(bwr_x`l3~Z{X|0Z_@2_ z2i-~EqPysBd^ch*zIeT#9-wdI%f|<4DLq6F(hSanu|)nv8UGdQ+ahXt}ARu_7j5LS=X zXQ8YCdzLk1jaXyW1mE^(%EDO$i-hPK&1}rh9Jup0mNmn9*A}oPZpof!tymn3X9+Bk zC9!1InzdnVSv%IAbzmJ?C-wsC%(}3ytQ$*V-B}OTll5Y~Ss&Jy^<(|n09>^&h^4Z@ zERChJ3^s%fWw^(Q4QC@*78}X3Sq>Y;Ml)Q>!t&Tyme0nq@oWN{$R@D@HknOfQ`s~& zoy}k~*(^4j&0%v{A)CjF*nGBtEo6(>i>#Qv#1^w9Y$_>K&{lxCEpV=?$zwAEy zmHozkXAjsP>>(?IUegRch!tAFjrc;+Z0V4+OuB`;0~Sg1rPb0FsRXk_k#tF#DJ_wH zk^U3!)d>1SyTB)eZBRsJSzkcy=rrFqgi=`PND-ji-i7o~5QQ@Si&k-n6! zN?%A{Gle~pC7H-nX0j|BWTWgNyUK2|NjA$C*&X(Ap0by0mA$21(r(#D_QeUq{n7`r zpR`BXEB!~BA-yNf#eF+($N|zZxtd&EIxHQ*8MsnuIqWW1N-LzFq}T9`r&YLp;YDew z^fFGI7$M)fVz=6ayHPx_n)SlYjSr+yKkQ`%z$&Raq|=&MuhfPfG7uIpb+L{N!Hzor zCUgVHjtyZK(ipN-7-oGgnMUG^QqhpO?9iFTKu&80>8u5A;Akm5FSUZK7!T<-5%*9h z!-!EJhQn;u+4Kgyv8cj&?O6^n}1a*x%6$LhgjMeZtCv>sNSqqSNgu?qL-XzjIVUGCA*y4(@bfooNb)>jpgs+K`S2d-5$T3=N}bm01`M#pH# z#OU+T>L0Dv(o1wbJ~(2JM5beMvK~v&6&YIs? zDr91$uIb~nrjJvbUWJU)+8|EfhKN-4DI!(<5Fe*z93Q7kw8yD=MQEciJVA@ct518y zQ%koes_D^MdUQox!#-NeCt8EIY3*v$+SR7Dt4(WHo7PS?t(_bd@LKyuXk;F#*2FL_ zbxc;O*7ZrcrUX&(YWohZBAtP$S$P8DPl;6xgdV7Bpct)>V(cQZf~EwORMM0hOU=p{ zqUH~}cdv|9H9KP>&sYuU&d;$$3FJDHU&iKrvOB%@Ipj~mqxEq`gTD?2d+}G+QCs; zkx_c`K|}}s7&00?MCs`P5goWn4{GCpGgWmCA{9=iD&qRQhFxSF930%FGF5GoJTL7-0_hfuqq3IfdRaR`mOnKQw(Q!{k+O3->S zK|hWXv?(M(t8{{jquK-UdM1ZR6)hrCMIOo8^pdRQm8?xi$=Y<3TrquX(|WQtW|E`B z#^$DvRm)0th=_SeYF=h)UTXHh@Cb8y>d285;Ss50a<#ClfB}H30N?@fD*|p~GE>vj zQ+d*uu_MOvTr90K$7W}z4ir+1S%_D*h;Vy!f-an>3&-oiNxE=yRal*WlN0PwS{lT) z=!*AvxZ*t?t|*6xEAl|t7OA~!LwZH|2v^MQ4z0Hw`rdMAz2wl7rbC+m9r_8-q0y^D zKL#C|yz0MN z>@;xw=)^C&+_kljBT-PZ2CiQS;TIjaCc!yW=|%(Bi*xv;3Oq(*NHHoyQo#|a!W|JE zxW;&6RQ9TY>$xy~(Sd8-7^7#Mi0E?HbJ`fKgJbl=5D^`?e$5l3@y!@L-$X$r(^b9#hBbOMxFcYH@ zMU0*o$7o$2qjtSk4NcOB(aRGtTCd0GrSn*=Z)5e7O{~@>vHFn}t2KPAeq_aJ%^Ry1 z5Ms4PjMWdfSZ%n)>W5pb)_$@2;TEg4Qmnp}VzpL^)ekpBs`?R;s+Nw`+Amf=+z`=$ z>xWyc*0Qns;f9C~TtD1mwKk8{4>v?~;QHYftMx{#ezHJB2dVjZ)%NN>K+DB06xrEET8GP@JBI;xv{Wr)Sx58V$wiX$TQr#(Elx(`YD8 zPeX|4!1Xi~r_oTHo`w+7f$M1~PNShXJq;nE1J~0~oJK=&dKyAR2d<}~c#T}*_2hy` z6*wYQQcuKsUx)9NU z>!~YVqpo;8bs?ey*Hc%#MqTlG>Ow>ZuBWbejk@CX93BxJxSqquYjhW{(w$1Xi0Hu8 zm5<7&<26q6612Y2r1CjMvW!@fzL5>*)>=T^@S6i`VEbUO!*NYb+;TFAyN2 z%R?^^BxpU9py&Dt70VZ`fCPO3iJD#|Q4??zHN91$Cio_5`k+KjzmurxaS}DXPLjsY zk~G0NNfVrtG(Ap|R(O(DPLftml2%TVmVc6#f0Cv@O4eF5SwF@Rsj4_4RpTUCYwKiv zTO*4ga#j>!AEHD5fyqpt^aKm{jaglB)veCq)~m6exgm*5|i~q0TEpn zt3$z%nw6EBX~-QmAvH^@j7D4$8qzk6xNREo*|gtn6-r8tJZvhw!=^HAJgcO59;qyv zM=FWYVN;nlo_cT{)8@bEz*VO0u<4jKkLYsOF>QR#L@+Nr^||YqHvdJJyUG$Axcis) zuJ*2uY4cxn;40I0*mO*rM|8;On6|^FGHpEdx$BrV|3#O(%CsFe9n3E34rm|B! z^~mYu1pbQ-IhD{IHl3WnBf8vma)QIAQahgd+;!B>f2qpdu2HC6PoaoZ<&KCBT%%CC zo|L_N4pE_T>8sId#r`+8MT@vCoD zPMJBm6T?KJyT~*@EHyWE@US#%+OXWTu_K3MWsKKSESaezC#DYM11B}hb6jfv1T{e@ zm}31GFb-;#Go%`=E*wpwBgXSt6ao0FFT-hiZx zbPtt0GP1KWQURnkTcpD{a#%JhY8-?}vWkiIX5rw5uD#C+d(SsAo_`^M7_+zl``4-`uu(+bqU4926tabfiz!yM% zLiipjLl}0Q2rHCIFzcfpF!1%HwIm8_&AJE&(`S+1kfJPZm5FrNWg={+&5_=MUP2hQ zg-C~WA;MqNuaSP0{(&&829aLQA|(QQK7831mV9NvN3Dwqwoky6vt!iNOQOkfT?3_B z-Mc1oTYU+2#~A_Ojema=W+O6kvnAh=sktMh8Y4%H9Klbe;T;)1e~*_Wtd(KkWq~bM zEm&+d#;>@c6D1h-=6J^&Wkmo7{6aU1sg)^NI3Dg`>T2p`8emF?8;)wM(e&g-~(@E1g(`Rs3OxF;;Wx8v+?{>lT(Cva*GTk*BVX9~` zdz-77YnwyN4b9n#Y?4n5UR$nTyQD=4Iwp<_+e} z=IwBM%hIy_tJ754*R5OE$^E@o)!(yPCb-d%+EWOE=YZAMQTNJs-~k zQ<(bAudC?7j((hqt-!azB8w(H`y}Abb+fbEX2}K12A5X{q})Zs7%ewFEO6fDRhD1ytOi%xT-zhWqoMl@OAU{3OMMT!M+=X5k2W5i z@J0GE#6 zh6^{!E8k0X1$Y*C&44R}TjaG=IG)DcO2oNa2e%1so91?T9q>Br^?}z(uXA3Xd0p|k z=5@>KuGf99hgQjIv|6m*)@oiSt+lNo)`r$_tKID;o-M5L);88oa4FV4)?bbckcdSQE1FXm3W@+xUX{q(R zX`A(;Nyby=W83Y|cJ=n~_I01(UBf%jJ=(jzd6jo#??^rt zykopunwNRE^iK3{=iS-6hj%~xHW)6`JKH-Czfbg@<~;{)0o-Em<=$(&OSm%~_TI{! z_fFFQ;r5wiZ|+JF=k7g(xjT+9cON0l-35vSE(r2B|Cb(@ryL=A#9QOIZ=cLa$ zpU-@*_+0b31$WoyzRyEn$=B$)#@7Pp?OV;aws0Z74SmCX?Qku8<9*xscJfW}?c+Ph zcZhG6Z?0*n?|8sY@tx&c_wCwbYvFtSW@mS^8((|fm zspn#IAK}*cCHl4V>+ILVx`8{-HGcj42K!|KKASth=lMpZ0?-lJ=Vv@O2dA;9OuLgcQx%1oS-NUaG?mfTbejmYI@H*gk$?Jf1yx&#fW|@*f ztI2*hO-udmz@d+YdjPt1P0 z5dWocEB)8`Z}Q*fzsqxt{{g>t{)hcP@IUE)&i^z2E2b;{SNyN}-}1lff8YP1XASTz zIGqzY4e!aN9aQ;2zv>D6`x;%g3u4HG5ZcH5F9z zFcm<~l#H#o|0qU;pW(jYSCPVHQ^^Qv34WSL-^zXbgRktvP4m~}4kCRI!aoVf2J9A6 z42EQ+{DJRSkVj7LBTw!dg&!``A@%WehJ2(3Y?cUfzqSZ>7Wqi*f=K6i_JO1dczkUZ z<%;y$>aWUCp8jYR((f3K^ROXXKxPQPhe+ux!hpfAqFi|s50he%j#?0fVLd=y9}Pmd zn(-?9#*gy2Zv+fUdBkCgq`y7UravbOl=Q;S{98dU1MLNRdfV`834ZiSu@wcd}D7}}n7EcksCaSr~Uc5wS zIQMa0hle>#B8%pD3e0=4empGjIY1KuQ^McHc_Q9cw?z1sc(;U?NDhdcPs_aAT0CsH z!u!Z@ML?EwNH&X?!ftWOAqAob8}s(ZnZRD~H#?`nFE#ApK7Wh$B4`KTu$f~>3OEif z9FqesfM?P40brJL4CxJKf#1o{0DgUeNn=3?vKr=X1nQk{f=Y7@;5_)8!F~9xjG6Eoi+2k|I7O6FjsI#`z}wJRtRM&0 z#)uR)ijQAoEBT@rUp(EP(>(m~BK;0VP@(YvQa12Bd7iXX@PPtR zZZR(xWg&lzDek|=Q;dy851!`uu%moDvXi`hKufg%lWDkuu!U0sQoNDp12K-4@-X-b zFho0qBi+@7!(SC87K>l+3%^)USFUpxek~BKS}ek+Ss>4|YzFtsuj1G30y2~TN_&a% z)lc9sQqVxG=mo)x(966%TXEc|t7z?Fmu3jp5u9PB=>1~(1HcsXdeK^j7VxKW%E8zH zo-~~ETXLV5NW(=bDX!5-X)OF|qO4ZN(>%pxGyF_322Tsf&Ag7Z8V@sSI1IlZ??*O^ z_c)8@qYRV=+(-)V5wem~2s>JiK9aq-Pf~>6Sk%j6=!{?6D6^1$+HenkV`UWlViDdh z!ly-ltrY%gKB7U@@R_AN1%5R5Nwsp`CYhoQQ$)Df_!&|Tl&^$e!YKqi;f6?gPlO+c zFrOE;3p}@rU$1I2#VVxVcXF6wk;B#U0)$Tsu2LdkPP;7SDdN}DVjLBVQCT2^gjBr82)?eXchG;P%(5V9}ZlJEu(PilCNO zoPMP7qLfygze(%Fe38QWn{>R4w`3+yCvq9@i^e>iR4em^pTgfIDI(lhgsTadR>Du= zJtAEZCFXLpjc%&llQ!*Rm`5$=aJT*F&~9^>PbPIKic zy?AbP8utz31;>zi4u*TqQeb|X`V5<1uDne!mXQxpc#Wv5@Nc*d z;rZ|x5V8mGf$Wima4SADk^y3VEEN($E5ZL$xDRSP&41;bfu7?doo1Dxc674{mzK5o zf90Kfa8<<_z<2lD7vUia#qcNtF)~yFMns90Vv0yJf|NmIB8?0}fC~+XltJx83^a;D zY$HZQMP3siSg>MKjPeRkgNA?_0R=+9h$ycJDMg5+zwf)36f4qBJN>Ji+3$YYvv<$g z*Z1x2Is7hX!&3jYiQYq;`t(G}pK;B1-C30d;^Vw-=L_|_#d22rwl7jMVjoPkdb+Ua zE>(K3%hK=WNq=)~A{Ji8CVE(;cv2)~#6Cz#2TMD;R^rE*gQ3$~&~2%setb>Urj?5f zgvG7~iexO~p+wKsKDJf*o-2^qpqnA_=qbo5^$vN``mVQ>7kgVEx?1K`)z|3NcWNJK zq<%S5twC5?%1zdJY=X{{OXMDGf|S?GmVU*EkTiKRLfu)7X(N4ut0aET|j zv@&zcew+>I%&3eh?Ud@ZV$~`ps2u9= z$aia`x7eXN62mh8WX3*0+CoO0*G=moOKUqrWmTk?hH5E$hKwL&Dr2@p@4P6Ik6M5t zZT%v(4~07FJ4VZ1%2g_L)|#b$c8%J}61kSyC%Mu0(vbz4r%&R&6t$d{QVPa$HS+8Q z?iMecC%Vc+l_8Y{-g1dQzYkd@J>ON;`nYbU+z)d?TF_N#`&LO?xU*V&1=8D1wfJsR zt=1z=?c`1!eP^}L=c!(xGE43UOO9mSB>4}L(d0WL);^FgZRa1Nda3kbFGXuL?LsZ_ zIodOev|OdyA8K@dRiw346UZgEd_9{h(j`V?L-IF7nhSY=``ZPi+GFOwB}|n(4E!7=7{;tIxSw=~JyXrU#FfGAO}B{WOlJ z8E#7S?`(9QW;mW^xY@+b<#Q3AJk4-C&2T)$a6H9u#RU1GfKtMTggt}`LKWdFLN(zG zfp+qo2IGZTuQwqyC$zdmZ-*}DB%ZqVI`El5fJsa`>m~8olh59K-c1-l7)(eb3@3yy z3FFZxk@mNIW)Yqu4$Gl06vG}UhxBj+@Xz5T?QnAwxYD)?< zmDy+=Agau9NoaYnR2H};X#D0M?37#4^5Lhv;Z^~rxd1t($gLwTn`dUPyI3^Nz=v6b z#u-vFnY1I$A87LZWlpq_Lw&WodN zGVDaOSexdi*)UpjXesSzKh8=jSvf>^hz8UJ&^rb?Akza4k?jM|>e)=>Ei&d!N13(r z>#b!P9~LQolzpNl8iU_5onVNPQY^S>9bi69o+4XoZXLx^5Q9%;x2Oae<6n(ztg^kz zUK(#AR}r7Y{*lPYZc$`cD6)T)ZU#uaSmEfNk%{aUdGzYYo)I~JiQZa#m1!(~mwWp_ z&Wc}*?iMxn_M*4;$ur>r(LEz92stOIq%6$9xM#0c@9J-USqbRM+4r>AP;*Xa6{Vt+ zGGFFub(@JV47EVNPGeq?v(^hS+Ux<*NyDA9DySi4wXT6HWhUWkDr+B~{{cDBn z>-mk`iR=AsD&MM*G+w#nVD{X{XKN%QK>7RBJl@)?PLCqy3bOnUL?1cRU%LBxvnX(*b`VT!#Rve$8K2@hJNCM ze=^R5cw6Ejp7qO{5-~i{Z*Cg$ME@IeEv&2aroFJPOdPB$YvT3k{`EZFPcjL@qB1w? zGya?Y$GKy>ZDKU=1l;x@^dh7X`V$5bh7g7kMiF?jjx8}3UsNA>x~@7t$>Nh3ImXT= z%q1)$6cF%9Sh0xy4xhyYIVbV*xs`yA(lq!fi=VRiDT|-7_$jQXvG}R_P>auU1pE>2 zlNi_BbcM<`7*8;qBMfD25=6Bu=xI58&VrCO4;tEQkk3{{tSlU}GWcbm+DZsz$Domw zLm?~2cKdi6qKsdAZVFkfjcaNvA>eShI8v6=x+ai}ojK#LL+|cCii`=&)OZ;ee*Zzv ze(m3`G2x3=vF?jNGh#YP4>VW#9@4XnIMVkeO^u{y4}Fuyh_o`Au(yRs^8?n;@2%o& z#0GxH`gxz|J?xY3`p1aQFTUBj^AY=eiN!PC4$@rZosyI?Te{TN853GAF~O}ObwnE( zr|3sCevRskM`9+Bf01lI zBk_^k)Z-W#q1*{}kNRh2YX-<1kDxX6M>4dT5+lR9QO)7Ee{5_EQ zjFix*e>HVd@8*K`C(_H^+^uJmRH|pS38Kr|8d{>3L3Rg;p;sAmK1StXJ&Q#nz6M*d zQy+ZfyLr58#Mt=P|LT(PBUk!Y0`*Bqo*Z>!v9(eCa$l*N%k!Bl{hJNX>)-sR_a(N} zM|(9k?cibE5M^IQs8y-F)$};@sHtWeJTRe!Jq`0~228MA-fzl-7WSI?BQwVpjNT1q zGn^{nQyn&6zymvKj`6?6mSDFR~+lh}n459#`&Qv&%3Cg(@hdzl+4Z%MtY6 zgPtdRygJ(GCzQ!Yi%GehmdsMN8;I%5VU_RY!RERTJ(a^!(#c3Et&j3%BcJ53lz0a6 zSq`hEwv=0X$}-CADD?*P%^a4}%WOw#z|%VLQ47b(=L84dmU^)8)K23=p=km}qdt(( zG)aO3NH{T@9p_q9p(0O zN79-;C}?uX`)(mV8*&8kpjRQAaRily7KDW+WZ%{tLDmIr`Cc4{-v|vYNNsgOCUW?p zp8XU#fFnq)-AhVgn)x7_-A}yGR2`hLC&+CkM*ue4OQd|2!$FOkhrW=*vCde8zL+Cu z-rxwDLXIHZw<6?f4$rLN2%7aAK5BO(`ZkUrbhP)m)(#H8)^*VA;RwL0`;?e{9Ddky z`-wTk;phFklYHxI)-pk;b$>NM2&OHm-}bh>@k1lM%>>|)@`fKY(mRlM+B=bbZC~Vc zJDrsC?R-)$v|4mU?c2!Jb~SRXU5i|Axqld+8<3mq zCgc{o1^KRh7rD)DL+-GY1;*z`$lZ1~@)P?BceU5WtN4U=B6RD9sQe?+Ed6` ztk(Rj$MVQwHmfv0E3=o8^RRDzR#&COm$@?Zoes+flahBVp;DHkUvL-b(_&k3LyRIk z$UnUY8mI4pcEcvu(Jo9PXj4CJ%s2jxn81h;<0hC6@}jg!kXM&Y*NicvA2dnw=CVni z$RGHC$n`}=?u9uE*AW(=#Ca-ZL^L(AM&3zH#{3AG z5shi2F;^omrV%?8w#_byX`nIJToThnV_G0Hv^*`ik2p%y#dOoF4!3fp5ms_fx02&X zE4hra^3BowX0l_(Z0UK;(SA)GHRA2oSVn%l-tTZLca*MoF_Lo1Hznm5f|N{3FoJhx z$xCyQ{8;O92z%O)qs+&h9fn5;&?6>beXoYS*b>@gdviTjxiehFn|O1!hpD0V2GM8a zZ3N*HPQ&JktZb=!0z1)ueTINZ#i7veYO%3 z?_mhM$J|OND69X%-)6pz&sfAwRy&+RS0&|^<&V{P{3O05j6y>Fmlm7%Q`7Lbd zdhF%9kdSv^8Fym~4`2g7hj7gNz@Feu>L3>I27F={-l0x*z1dyr2Q7FI_Akv1V}B~$ zje-O`9_u$5;_nn}-cyi$e~+b`jcuEU2hE4ry9OUx41squdq^dC(lYE@x!X-&KF0gp zA$(;sh@q_+8`t3tJDFX)=iMDIvL3&;-Mj)ZbtXG!vzTqo!>7H07c0VVZNyV;$1CkO zpYe|PXZCui*qtF^--5sS8N}SseX&SC#8kDa%jmuHDfsH+pvp?>T|j>x&zG39UkWhGK(3y!}A2ma>_IedYf0-aZKIEtL6|1&3>8N1|w-y{e8COP11op{ZFYT`K~ z+O_o>d)v{tmi1bzdaZT6)}~(DTd%RVt>0~gjfz)p{0HXRI&es$&VV3W)rI zWw+?={}9&|9}M2EG+tsO+T@7FtRfo6JVG>&bQeEm?PR$N%Y4kwC~M2; p>WY__^50B8GEa}wzs_^dVtIV-T)if774>nV$;@OA>Gl(E{tirzk%|BS diff --git a/MaterialSkin/Resources/IRANYekanMobileBlack.ttf b/MaterialSkin/Resources/IRANYekanMobileBlack.ttf new file mode 100644 index 0000000000000000000000000000000000000000..59c9dc4b4a3655d84221a1a7c856efa573d51444 GIT binary patch literal 59004 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 Q6D{zrL=zVD{{qwh1LWt7aR2}S literal 0 HcmV?d00001 diff --git a/MaterialSkin/Resources/IRANYekanMobileBold.ttf b/MaterialSkin/Resources/IRANYekanMobileBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..706b059e423c1502e48614c8a6e05d29bc2c6baf GIT binary patch literal 59528 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 EFBPV($^ZZW literal 0 HcmV?d00001 diff --git a/MaterialSkin/Resources/IRANYekanMobileLight.ttf b/MaterialSkin/Resources/IRANYekanMobileLight.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2ebee1356fb3dd68b6e400b0f73fb03fd2120cab GIT binary patch literal 61388 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 z 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 + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + MaterialSkin.MaterialListBoxItem materialListBoxItem1 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem2 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem3 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem4 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem5 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem6 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem7 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem8 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem9 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem10 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem11 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem12 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem13 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem14 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem15 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem16 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem17 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem18 = new MaterialSkin.MaterialListBoxItem(); + this.materialCheckbox3 = new MaterialSkin.Controls.MaterialCheckbox(); + this.materialCheckbox1 = new MaterialSkin.Controls.MaterialCheckbox(); + this.materialTabControl1 = new MaterialSkin.Controls.MaterialTabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.materialButton25 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton6 = new MaterialSkin.Controls.MaterialButton(); + this.materialLabel57 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel53 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel52 = new MaterialSkin.Controls.MaterialLabel(); + this.materialListBoxFormStyle = new MaterialSkin.Controls.MaterialListBox(); + this.MaterialButton3 = new MaterialSkin.Controls.MaterialButton(); + this.materialSwitch8 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialLabel24 = new MaterialSkin.Controls.MaterialLabel(); + this.materialSwitch6 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialLabel6 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel9 = new MaterialSkin.Controls.MaterialLabel(); + this.materialSwitch5 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialButton7 = new MaterialSkin.Controls.MaterialButton(); + this.materialSwitch9 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialSwitch4 = new MaterialSkin.Controls.MaterialSwitch(); + this.MaterialButton4 = new MaterialSkin.Controls.MaterialButton(); + this.tabPage7 = new System.Windows.Forms.TabPage(); + this.materialButton23 = new MaterialSkin.Controls.MaterialButton(); + this.materialLabel37 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel36 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel35 = new MaterialSkin.Controls.MaterialLabel(); + this.materialFloatingActionButton1 = new MaterialSkin.Controls.MaterialFloatingActionButton(); + this.materialLabel3 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel25 = new MaterialSkin.Controls.MaterialLabel(); + this.materialButton24 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton22 = new MaterialSkin.Controls.MaterialButton(); + this.materialLabel8 = new MaterialSkin.Controls.MaterialLabel(); + this.materialButton19 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton20 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton21 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton5 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton8 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton9 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton18 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton17 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton16 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton15 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton14 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton13 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton12 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton11 = new MaterialSkin.Controls.MaterialButton(); + this.materialButton10 = new MaterialSkin.Controls.MaterialButton(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.msReadOnly = new MaterialSkin.Controls.MaterialSwitch(); + this.materialLabel5 = new MaterialSkin.Controls.MaterialLabel(); + this.materialCheckedListBox1 = new MaterialSkin.Controls.MaterialCheckedListBox(); + this.materialLabel34 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel33 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel32 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel31 = new MaterialSkin.Controls.MaterialLabel(); + this.materialSwitch7 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialRadioButton5 = new MaterialSkin.Controls.MaterialRadioButton(); + this.materialLabel26 = new MaterialSkin.Controls.MaterialLabel(); + this.materialRadioButton4 = new MaterialSkin.Controls.MaterialRadioButton(); + this.materialRadioButton1 = new MaterialSkin.Controls.MaterialRadioButton(); + this.materialRadioButton2 = new MaterialSkin.Controls.MaterialRadioButton(); + this.materialSwitch3 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialSwitch2 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialSwitch1 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialCheckBox6 = new MaterialSkin.Controls.MaterialCheckbox(); + this.materialCheckBox5 = new MaterialSkin.Controls.MaterialCheckbox(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.materialMaskedTextBox1 = new MaterialSkin.Controls.MaterialMaskedTextBox(); + this.materialSwitch15 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialSwitch14 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialSwitch16 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialSwitch13 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialSwitch12 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialSwitch11 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialSwitch10 = new MaterialSkin.Controls.MaterialSwitch(); + this.materialTextBox21 = new MaterialSkin.Controls.MaterialTextBox2(); + this.materialMultiLineTextBox21 = new MaterialSkin.Controls.MaterialMultiLineTextBox2(); + this.materialTextBox5 = new MaterialSkin.Controls.MaterialTextBox2(); + this.materialTextBox4 = new MaterialSkin.Controls.MaterialTextBox2(); + this.materialTextBox3 = new MaterialSkin.Controls.MaterialTextBox2(); + this.materialLabel27 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel56 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel23 = new MaterialSkin.Controls.MaterialLabel(); + this.materialTextBox2 = new MaterialSkin.Controls.MaterialTextBox2(); + this.materialTextBox1 = new MaterialSkin.Controls.MaterialTextBox2(); + this.materialSingleLineTextField2 = new MaterialSkin.Controls.MaterialTextBox2(); + this.tabPage4 = new System.Windows.Forms.TabPage(); + this.materialLabel39 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel28 = new MaterialSkin.Controls.MaterialLabel(); + this.materialListView1 = new MaterialSkin.Controls.MaterialListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.tabPage5 = new System.Windows.Forms.TabPage(); + this.materialSlider1 = new MaterialSkin.Controls.MaterialSlider(); + this.materialLabel49 = new MaterialSkin.Controls.MaterialLabel(); + this.materialFlatButton2 = new MaterialSkin.Controls.MaterialButton(); + this.materialLabel50 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel2 = new MaterialSkin.Controls.MaterialLabel(); + this.MaterialButton2 = new MaterialSkin.Controls.MaterialButton(); + this.materialProgressBar1 = new MaterialSkin.Controls.MaterialProgressBar(); + this.materialLabel29 = new MaterialSkin.Controls.MaterialLabel(); + this.tabPage6 = new System.Windows.Forms.TabPage(); + this.materialDivider3 = new MaterialSkin.Controls.MaterialDivider(); + this.materialDivider2 = new MaterialSkin.Controls.MaterialDivider(); + this.materialDivider1 = new MaterialSkin.Controls.MaterialDivider(); + this.materialLabel7 = new MaterialSkin.Controls.MaterialLabel(); + this.materialCard1 = new MaterialSkin.Controls.MaterialCard(); + this.materialButton1 = new MaterialSkin.Controls.MaterialButton(); + this.materialLabel4 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel38 = new MaterialSkin.Controls.MaterialLabel(); + this.materialTabControl2 = new MaterialSkin.Controls.MaterialTabControl(); + this.tabPage8 = new System.Windows.Forms.TabPage(); + this.materialLabel45 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel44 = new MaterialSkin.Controls.MaterialLabel(); + this.tabPage9 = new System.Windows.Forms.TabPage(); + this.materialLabel10 = new MaterialSkin.Controls.MaterialLabel(); + this.materialTabSelector1 = new MaterialSkin.Controls.MaterialTabSelector(); + this.materialLabel30 = new MaterialSkin.Controls.MaterialLabel(); + this.tabPage10 = new System.Windows.Forms.TabPage(); + this.materialLabel55 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel48 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel47 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel46 = new MaterialSkin.Controls.MaterialLabel(); + this.materialListBox3 = new MaterialSkin.Controls.MaterialListBox(); + this.materialListBox2 = new MaterialSkin.Controls.MaterialListBox(); + this.materialListBox1 = new MaterialSkin.Controls.MaterialListBox(); + this.tabPage11 = new System.Windows.Forms.TabPage(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.materialExpansionPanel1 = new MaterialSkin.Controls.MaterialExpansionPanel(); + this.materialLabel51 = new MaterialSkin.Controls.MaterialLabel(); + this.materialExpansionPanel2 = new MaterialSkin.Controls.MaterialExpansionPanel(); + this.tabPage12 = new System.Windows.Forms.TabPage(); + this.materialLabel58 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel43 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel42 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel41 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel40 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel22 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel21 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel20 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel19 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel18 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel17 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel1 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel16 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel15 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel14 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel13 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel12 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel11 = new MaterialSkin.Controls.MaterialLabel(); + this.materialLabel54 = new MaterialSkin.Controls.MaterialLabel(); + this.menuIconList = new System.Windows.Forms.ImageList(this.components); + this.materialContextMenuStrip1 = new MaterialSkin.Controls.MaterialContextMenuStrip(); + this.item1ToolStripMenuItem = new MaterialSkin.Controls.MaterialToolStripMenuItem(); + this.subItem1ToolStripMenuItem = new MaterialSkin.Controls.MaterialToolStripMenuItem(); + this.subItem2ToolStripMenuItem = new MaterialSkin.Controls.MaterialToolStripMenuItem(); + this.disabledItemToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.item2ToolStripMenuItem = new MaterialSkin.Controls.MaterialToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.item3ToolStripMenuItem = new MaterialSkin.Controls.MaterialToolStripMenuItem(); + this.materialTabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage7.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.tabPage3.SuspendLayout(); + this.tabPage4.SuspendLayout(); + this.tabPage5.SuspendLayout(); + this.tabPage6.SuspendLayout(); + this.materialCard1.SuspendLayout(); + this.materialTabControl2.SuspendLayout(); + this.tabPage8.SuspendLayout(); + this.tabPage9.SuspendLayout(); + this.tabPage10.SuspendLayout(); + this.tabPage11.SuspendLayout(); + this.flowLayoutPanel1.SuspendLayout(); + this.materialExpansionPanel1.SuspendLayout(); + this.tabPage12.SuspendLayout(); + this.materialContextMenuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // materialCheckbox3 + // + this.materialCheckbox3.AutoSize = true; + this.materialCheckbox3.Cursor = System.Windows.Forms.Cursors.Default; + this.materialCheckbox3.Depth = 0; + this.materialCheckbox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialCheckbox3.Location = new System.Drawing.Point(31, 167); + this.materialCheckbox3.Margin = new System.Windows.Forms.Padding(0); + this.materialCheckbox3.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialCheckbox3.MouseState = MaterialSkin.MouseState.HOVER; + this.materialCheckbox3.Name = "materialCheckbox3"; + this.materialCheckbox3.ReadOnly = false; + this.materialCheckbox3.Ripple = true; + this.materialCheckbox3.Size = new System.Drawing.Size(161, 37); + this.materialCheckbox3.TabIndex = 2; + this.materialCheckbox3.Text = "materialCheckbox3"; + this.materialCheckbox3.UseVisualStyleBackColor = true; + // + // materialCheckbox1 + // + this.materialCheckbox1.AutoSize = true; + this.materialCheckbox1.Checked = true; + this.materialCheckbox1.CheckState = System.Windows.Forms.CheckState.Checked; + this.materialCheckbox1.Cursor = System.Windows.Forms.Cursors.Default; + this.materialCheckbox1.Depth = 0; + this.materialCheckbox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialCheckbox1.Location = new System.Drawing.Point(31, 125); + this.materialCheckbox1.Margin = new System.Windows.Forms.Padding(0); + this.materialCheckbox1.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialCheckbox1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialCheckbox1.Name = "materialCheckbox1"; + this.materialCheckbox1.ReadOnly = false; + this.materialCheckbox1.Ripple = true; + this.materialCheckbox1.Size = new System.Drawing.Size(155, 37); + this.materialCheckbox1.TabIndex = 1; + this.materialCheckbox1.Text = "materialCheckbox1"; + this.materialCheckbox1.UseVisualStyleBackColor = true; + // + // materialTabControl1 + // + this.materialTabControl1.Controls.Add(this.tabPage1); + this.materialTabControl1.Controls.Add(this.tabPage7); + this.materialTabControl1.Controls.Add(this.tabPage2); + this.materialTabControl1.Controls.Add(this.tabPage3); + this.materialTabControl1.Controls.Add(this.tabPage4); + this.materialTabControl1.Controls.Add(this.tabPage5); + this.materialTabControl1.Controls.Add(this.tabPage6); + this.materialTabControl1.Controls.Add(this.tabPage10); + this.materialTabControl1.Controls.Add(this.tabPage11); + this.materialTabControl1.Controls.Add(this.tabPage12); + this.materialTabControl1.Depth = 0; + this.materialTabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.materialTabControl1.ImageList = this.menuIconList; + this.materialTabControl1.Location = new System.Drawing.Point(3, 64); + this.materialTabControl1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialTabControl1.Multiline = true; + this.materialTabControl1.Name = "materialTabControl1"; + this.materialTabControl1.RightToLeftLayout = true; + this.materialTabControl1.SelectedIndex = 0; + this.materialTabControl1.Size = new System.Drawing.Size(1023, 555); + this.materialTabControl1.TabIndex = 18; + // + // tabPage1 + // + this.tabPage1.BackColor = System.Drawing.Color.White; + this.tabPage1.Controls.Add(this.materialButton25); + this.tabPage1.Controls.Add(this.materialButton6); + this.tabPage1.Controls.Add(this.materialLabel57); + this.tabPage1.Controls.Add(this.materialLabel53); + this.tabPage1.Controls.Add(this.materialLabel52); + this.tabPage1.Controls.Add(this.materialListBoxFormStyle); + this.tabPage1.Controls.Add(this.MaterialButton3); + this.tabPage1.Controls.Add(this.materialSwitch8); + this.tabPage1.Controls.Add(this.materialLabel24); + this.tabPage1.Controls.Add(this.materialSwitch6); + this.tabPage1.Controls.Add(this.materialLabel6); + this.tabPage1.Controls.Add(this.materialLabel9); + this.tabPage1.Controls.Add(this.materialSwitch5); + this.tabPage1.Controls.Add(this.materialButton7); + this.tabPage1.Controls.Add(this.materialSwitch9); + this.tabPage1.Controls.Add(this.materialSwitch4); + this.tabPage1.Controls.Add(this.MaterialButton4); + this.tabPage1.ImageKey = "round_assessment_white_24dp.png"; + this.tabPage1.Location = new System.Drawing.Point(4, 31); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Size = new System.Drawing.Size(1015, 520); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "خانه"; + this.tabPage1.Click += new System.EventHandler(this.tabPage1_Click); + // + // materialButton25 + // + this.materialButton25.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton25.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton25.Depth = 0; + this.materialButton25.HighEmphasis = true; + this.materialButton25.Icon = null; + this.materialButton25.Location = new System.Drawing.Point(344, 460); + this.materialButton25.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton25.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton25.Name = "materialButton25"; + this.materialButton25.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton25.Size = new System.Drawing.Size(89, 36); + this.materialButton25.TabIndex = 41; + this.materialButton25.Text = "نمایش دیالوگ"; + this.materialButton25.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.materialButton25.UseAccentColor = false; + this.materialButton25.UseVisualStyleBackColor = true; + this.materialButton25.Click += new System.EventHandler(this.materialButton25_Click); + // + // materialButton6 + // + this.materialButton6.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton6.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton6.Depth = 0; + this.materialButton6.HighEmphasis = true; + this.materialButton6.Icon = null; + this.materialButton6.Location = new System.Drawing.Point(570, 460); + this.materialButton6.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton6.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton6.Name = "materialButton6"; + this.materialButton6.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton6.Size = new System.Drawing.Size(108, 36); + this.materialButton6.TabIndex = 41; + this.materialButton6.Text = "نمایش نوار چابک"; + this.materialButton6.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.materialButton6.UseAccentColor = false; + this.materialButton6.UseVisualStyleBackColor = true; + this.materialButton6.Click += new System.EventHandler(this.materialButton6_Click); + // + // materialLabel57 + // + this.materialLabel57.AutoSize = true; + this.materialLabel57.Depth = 0; + this.materialLabel57.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel57.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel57.Location = new System.Drawing.Point(390, 424); + this.materialLabel57.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel57.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel57.Name = "materialLabel57"; + this.materialLabel57.Size = new System.Drawing.Size(42, 17); + this.materialLabel57.TabIndex = 40; + this.materialLabel57.Text = "دیالوگ"; + this.materialLabel57.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // materialLabel53 + // + this.materialLabel53.AutoSize = true; + this.materialLabel53.Depth = 0; + this.materialLabel53.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel53.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel53.Location = new System.Drawing.Point(618, 424); + this.materialLabel53.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel53.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel53.Name = "materialLabel53"; + this.materialLabel53.Size = new System.Drawing.Size(57, 17); + this.materialLabel53.TabIndex = 40; + this.materialLabel53.Text = "نوار چابک"; + this.materialLabel53.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // materialLabel52 + // + this.materialLabel52.AutoSize = true; + this.materialLabel52.Depth = 0; + this.materialLabel52.Font = new System.Drawing.Font("Roboto", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel52.FontType = MaterialSkin.MaterialSkinManager.fontType.H5; + this.materialLabel52.Location = new System.Drawing.Point(168, 70); + this.materialLabel52.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel52.Name = "materialLabel52"; + this.materialLabel52.Size = new System.Drawing.Size(102, 26); + this.materialLabel52.TabIndex = 39; + this.materialLabel52.Text = "Form style"; + this.materialLabel52.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.materialLabel52.Click += new System.EventHandler(this.materialLabel52_Click); + // + // materialListBoxFormStyle + // + this.materialListBoxFormStyle.BackColor = System.Drawing.Color.White; + this.materialListBoxFormStyle.BorderColor = System.Drawing.Color.LightGray; + this.materialListBoxFormStyle.Depth = 0; + this.materialListBoxFormStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialListBoxFormStyle.Location = new System.Drawing.Point(45, 103); + this.materialListBoxFormStyle.MouseState = MaterialSkin.MouseState.HOVER; + this.materialListBoxFormStyle.Name = "materialListBoxFormStyle"; + this.materialListBoxFormStyle.SelectedIndex = -1; + this.materialListBoxFormStyle.SelectedItem = null; + this.materialListBoxFormStyle.Size = new System.Drawing.Size(225, 258); + this.materialListBoxFormStyle.TabIndex = 38; + // + // MaterialButton3 + // + this.MaterialButton3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.MaterialButton3.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.MaterialButton3.Depth = 0; + this.MaterialButton3.HighEmphasis = true; + this.MaterialButton3.Icon = null; + this.MaterialButton3.Location = new System.Drawing.Point(815, 460); + this.MaterialButton3.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.MaterialButton3.MouseState = MaterialSkin.MouseState.HOVER; + this.MaterialButton3.Name = "MaterialButton3"; + this.MaterialButton3.NoAccentTextColor = System.Drawing.Color.Empty; + this.MaterialButton3.Size = new System.Drawing.Size(113, 36); + this.MaterialButton3.TabIndex = 36; + this.MaterialButton3.Text = "بازکردن کادر پیام"; + this.MaterialButton3.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.MaterialButton3.UseAccentColor = false; + this.MaterialButton3.UseVisualStyleBackColor = true; + this.MaterialButton3.Click += new System.EventHandler(this.MaterialButton3_Click); + // + // materialSwitch8 + // + this.materialSwitch8.AutoSize = true; + this.materialSwitch8.Checked = true; + this.materialSwitch8.CheckState = System.Windows.Forms.CheckState.Checked; + this.materialSwitch8.Depth = 0; + this.materialSwitch8.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialSwitch8.Location = new System.Drawing.Point(623, 314); + this.materialSwitch8.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch8.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch8.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch8.Name = "materialSwitch8"; + this.materialSwitch8.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialSwitch8.Ripple = true; + this.materialSwitch8.Size = new System.Drawing.Size(323, 37); + this.materialSwitch8.TabIndex = 37; + this.materialSwitch8.Text = "منو عمودی - نمایش آیکون‌ها در حالت بسته"; + this.materialSwitch8.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.materialSwitch8.UseVisualStyleBackColor = true; + this.materialSwitch8.CheckedChanged += new System.EventHandler(this.materialSwitch8_CheckedChanged); + // + // materialLabel24 + // + this.materialLabel24.AutoSize = true; + this.materialLabel24.Depth = 0; + this.materialLabel24.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel24.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel24.Location = new System.Drawing.Point(849, 18); + this.materialLabel24.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel24.Name = "materialLabel24"; + this.materialLabel24.Size = new System.Drawing.Size(78, 51); + this.materialLabel24.TabIndex = 32; + this.materialLabel24.Text = "خانه"; + // + // materialSwitch6 + // + this.materialSwitch6.AutoSize = true; + this.materialSwitch6.Depth = 0; + this.materialSwitch6.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialSwitch6.Location = new System.Drawing.Point(693, 277); + this.materialSwitch6.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch6.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch6.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch6.Name = "materialSwitch6"; + this.materialSwitch6.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialSwitch6.Ripple = true; + this.materialSwitch6.Size = new System.Drawing.Size(253, 37); + this.materialSwitch6.TabIndex = 31; + this.materialSwitch6.Text = "منو عمودی- پس زمینه با رنگ مد"; + this.materialSwitch6.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.materialSwitch6.UseVisualStyleBackColor = true; + this.materialSwitch6.CheckedChanged += new System.EventHandler(this.MaterialSwitch6_CheckedChanged); + // + // materialLabel6 + // + this.materialLabel6.AutoSize = true; + this.materialLabel6.Depth = 0; + this.materialLabel6.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel6.Location = new System.Drawing.Point(785, 424); + this.materialLabel6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel6.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel6.Name = "materialLabel6"; + this.materialLabel6.Size = new System.Drawing.Size(140, 17); + this.materialLabel6.TabIndex = 35; + this.materialLabel6.Text = "جعبه پیام انعطاف پذیر"; + this.materialLabel6.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // materialLabel9 + // + this.materialLabel9.Depth = 0; + this.materialLabel9.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel9.Location = new System.Drawing.Point(420, 80); + this.materialLabel9.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel9.Name = "materialLabel9"; + this.materialLabel9.Size = new System.Drawing.Size(507, 60); + this.materialLabel9.TabIndex = 0; + this.materialLabel9.Text = "خوش آمدید به دمو متریال‌اسکین\r\nمنو در سمت راست است ، از آن استفاده کنید تا همه بخ" + + "ش‌های موجود را ببینید\r\nروی آیتم‌ها کلیک کنید، سعی نکنید آن را بشکنید ؛)\r\n"; + this.materialLabel9.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // materialSwitch5 + // + this.materialSwitch5.AutoSize = true; + this.materialSwitch5.Checked = true; + this.materialSwitch5.CheckState = System.Windows.Forms.CheckState.Checked; + this.materialSwitch5.Depth = 0; + this.materialSwitch5.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialSwitch5.Location = new System.Drawing.Point(671, 241); + this.materialSwitch5.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch5.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch5.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch5.Name = "materialSwitch5"; + this.materialSwitch5.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialSwitch5.Ripple = true; + this.materialSwitch5.Size = new System.Drawing.Size(275, 37); + this.materialSwitch5.TabIndex = 30; + this.materialSwitch5.Text = "منو عمودی - آیتم انتخابی با رنگ مد"; + this.materialSwitch5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.materialSwitch5.UseVisualStyleBackColor = true; + this.materialSwitch5.CheckedChanged += new System.EventHandler(this.MaterialSwitch5_CheckedChanged); + // + // materialButton7 + // + this.materialButton7.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton7.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton7.Depth = 0; + this.materialButton7.HighEmphasis = true; + this.materialButton7.Icon = null; + this.materialButton7.Location = new System.Drawing.Point(539, 146); + this.materialButton7.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton7.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton7.Name = "materialButton7"; + this.materialButton7.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton7.Size = new System.Drawing.Size(100, 36); + this.materialButton7.TabIndex = 0; + this.materialButton7.Text = "تغییـــــــر قالب"; + this.materialButton7.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; + this.materialButton7.UseAccentColor = false; + this.materialButton7.UseVisualStyleBackColor = true; + this.materialButton7.Click += new System.EventHandler(this.materialButton1_Click); + // + // materialSwitch9 + // + this.materialSwitch9.AutoSize = true; + this.materialSwitch9.Depth = 0; + this.materialSwitch9.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialSwitch9.Location = new System.Drawing.Point(723, 351); + this.materialSwitch9.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch9.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch9.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch9.Name = "materialSwitch9"; + this.materialSwitch9.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialSwitch9.Ripple = true; + this.materialSwitch9.Size = new System.Drawing.Size(223, 37); + this.materialSwitch9.TabIndex = 29; + this.materialSwitch9.Text = "منو عمودی - نمایش خودکار"; + this.materialSwitch9.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.materialSwitch9.UseVisualStyleBackColor = true; + this.materialSwitch9.CheckedChanged += new System.EventHandler(this.materialSwitch9_CheckedChanged); + // + // materialSwitch4 + // + this.materialSwitch4.AutoSize = true; + this.materialSwitch4.Depth = 0; + this.materialSwitch4.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialSwitch4.Location = new System.Drawing.Point(683, 204); + this.materialSwitch4.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch4.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch4.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch4.Name = "materialSwitch4"; + this.materialSwitch4.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialSwitch4.Ripple = true; + this.materialSwitch4.Size = new System.Drawing.Size(263, 37); + this.materialSwitch4.TabIndex = 29; + this.materialSwitch4.Text = "منو عمودی - فعال‌سازی حالت رنگی"; + this.materialSwitch4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.materialSwitch4.UseVisualStyleBackColor = true; + this.materialSwitch4.CheckedChanged += new System.EventHandler(this.materialSwitch4_CheckedChanged); + // + // MaterialButton4 + // + this.MaterialButton4.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.MaterialButton4.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.MaterialButton4.Depth = 0; + this.MaterialButton4.HighEmphasis = true; + this.MaterialButton4.Icon = null; + this.MaterialButton4.Location = new System.Drawing.Point(785, 146); + this.MaterialButton4.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.MaterialButton4.MouseState = MaterialSkin.MouseState.HOVER; + this.MaterialButton4.Name = "MaterialButton4"; + this.MaterialButton4.NoAccentTextColor = System.Drawing.Color.Empty; + this.MaterialButton4.Size = new System.Drawing.Size(97, 36); + this.MaterialButton4.TabIndex = 22; + this.MaterialButton4.Text = "تغییـــــــر رنگ"; + this.MaterialButton4.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.MaterialButton4.UseAccentColor = false; + this.MaterialButton4.UseVisualStyleBackColor = true; + this.MaterialButton4.Click += new System.EventHandler(this.MaterialButton1_Click); + // + // tabPage7 + // + this.tabPage7.BackColor = System.Drawing.Color.White; + this.tabPage7.Controls.Add(this.materialButton23); + this.tabPage7.Controls.Add(this.materialLabel37); + this.tabPage7.Controls.Add(this.materialLabel36); + this.tabPage7.Controls.Add(this.materialLabel35); + this.tabPage7.Controls.Add(this.materialFloatingActionButton1); + this.tabPage7.Controls.Add(this.materialLabel3); + this.tabPage7.Controls.Add(this.materialLabel25); + this.tabPage7.Controls.Add(this.materialButton24); + this.tabPage7.Controls.Add(this.materialButton22); + this.tabPage7.Controls.Add(this.materialLabel8); + this.tabPage7.Controls.Add(this.materialButton19); + this.tabPage7.Controls.Add(this.materialButton20); + this.tabPage7.Controls.Add(this.materialButton21); + this.tabPage7.Controls.Add(this.materialButton5); + this.tabPage7.Controls.Add(this.materialButton8); + this.tabPage7.Controls.Add(this.materialButton9); + this.tabPage7.Controls.Add(this.materialButton18); + this.tabPage7.Controls.Add(this.materialButton17); + this.tabPage7.Controls.Add(this.materialButton16); + this.tabPage7.Controls.Add(this.materialButton15); + this.tabPage7.Controls.Add(this.materialButton14); + this.tabPage7.Controls.Add(this.materialButton13); + this.tabPage7.Controls.Add(this.materialButton12); + this.tabPage7.Controls.Add(this.materialButton11); + this.tabPage7.Controls.Add(this.materialButton10); + this.tabPage7.ImageKey = "round_gps_fixed_white_24dp.png"; + this.tabPage7.Location = new System.Drawing.Point(4, 31); + this.tabPage7.Name = "tabPage7"; + this.tabPage7.Padding = new System.Windows.Forms.Padding(3); + this.tabPage7.Size = new System.Drawing.Size(1015, 520); + this.tabPage7.TabIndex = 6; + this.tabPage7.Text = "انواع دکمه"; + // + // materialButton23 + // + this.materialButton23.AutoSize = false; + this.materialButton23.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton23.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton23.Depth = 0; + this.materialButton23.HighEmphasis = false; + this.materialButton23.Icon = null; + this.materialButton23.Location = new System.Drawing.Point(280, 221); + this.materialButton23.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton23.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton23.Name = "materialButton23"; + this.materialButton23.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton23.Size = new System.Drawing.Size(168, 36); + this.materialButton23.TabIndex = 7; + this.materialButton23.Text = "CONT - ICON"; + this.materialButton23.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.materialButton23.UseAccentColor = false; + this.materialButton23.UseVisualStyleBackColor = true; + // + // materialLabel37 + // + this.materialLabel37.AutoSize = true; + this.materialLabel37.Depth = 0; + this.materialLabel37.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel37.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel37.Location = new System.Drawing.Point(519, 183); + this.materialLabel37.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel37.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel37.Name = "materialLabel37"; + this.materialLabel37.Size = new System.Drawing.Size(46, 17); + this.materialLabel37.TabIndex = 63; + this.materialLabel37.Text = "Outline"; + // + // materialLabel36 + // + this.materialLabel36.AutoSize = true; + this.materialLabel36.Depth = 0; + this.materialLabel36.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel36.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel36.Location = new System.Drawing.Point(277, 183); + this.materialLabel36.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel36.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel36.Name = "materialLabel36"; + this.materialLabel36.Size = new System.Drawing.Size(66, 17); + this.materialLabel36.TabIndex = 62; + this.materialLabel36.Text = "Contained"; + // + // materialLabel35 + // + this.materialLabel35.AutoSize = true; + this.materialLabel35.Depth = 0; + this.materialLabel35.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel35.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel35.Location = new System.Drawing.Point(42, 183); + this.materialLabel35.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel35.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel35.Name = "materialLabel35"; + this.materialLabel35.Size = new System.Drawing.Size(61, 17); + this.materialLabel35.TabIndex = 61; + this.materialLabel35.Text = "Text only"; + // + // materialFloatingActionButton1 + // + this.materialFloatingActionButton1.AnimateShowHideButton = true; + this.materialFloatingActionButton1.Depth = 0; + this.materialFloatingActionButton1.Icon = null; + this.materialFloatingActionButton1.Location = new System.Drawing.Point(761, 221); + this.materialFloatingActionButton1.Margin = new System.Windows.Forms.Padding(2); + this.materialFloatingActionButton1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialFloatingActionButton1.Name = "materialFloatingActionButton1"; + this.materialFloatingActionButton1.Size = new System.Drawing.Size(56, 56); + this.materialFloatingActionButton1.TabIndex = 19; + this.materialFloatingActionButton1.Text = "materialFloatingActionButton1"; + this.materialFloatingActionButton1.UseVisualStyleBackColor = true; + // + // materialLabel3 + // + this.materialLabel3.AutoSize = true; + this.materialLabel3.Depth = 0; + this.materialLabel3.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel3.Location = new System.Drawing.Point(758, 183); + this.materialLabel3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel3.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel3.Name = "materialLabel3"; + this.materialLabel3.Size = new System.Drawing.Size(146, 17); + this.materialLabel3.TabIndex = 60; + this.materialLabel3.Text = "Floating Action Button"; + // + // materialLabel25 + // + this.materialLabel25.AutoSize = true; + this.materialLabel25.Depth = 0; + this.materialLabel25.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel25.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel25.Location = new System.Drawing.Point(22, 13); + this.materialLabel25.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel25.Name = "materialLabel25"; + this.materialLabel25.Size = new System.Drawing.Size(162, 51); + this.materialLabel25.TabIndex = 58; + this.materialLabel25.Text = "Buttons!"; + // + // materialButton24 + // + this.materialButton24.AutoSize = false; + this.materialButton24.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton24.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton24.Depth = 0; + this.materialButton24.HighEmphasis = false; + this.materialButton24.Icon = null; + this.materialButton24.Location = new System.Drawing.Point(522, 221); + this.materialButton24.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton24.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton24.Name = "materialButton24"; + this.materialButton24.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton24.Size = new System.Drawing.Size(189, 36); + this.materialButton24.TabIndex = 13; + this.materialButton24.Text = "OUTLINE - ICON"; + this.materialButton24.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; + this.materialButton24.UseAccentColor = false; + this.materialButton24.UseVisualStyleBackColor = true; + // + // materialButton22 + // + this.materialButton22.AutoSize = false; + this.materialButton22.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton22.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton22.Depth = 0; + this.materialButton22.HighEmphasis = false; + this.materialButton22.Icon = null; + this.materialButton22.Location = new System.Drawing.Point(32, 221); + this.materialButton22.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton22.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton22.Name = "materialButton22"; + this.materialButton22.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton22.Size = new System.Drawing.Size(174, 36); + this.materialButton22.TabIndex = 1; + this.materialButton22.Text = "TEXT - ICON"; + this.materialButton22.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; + this.materialButton22.UseAccentColor = false; + this.materialButton22.UseVisualStyleBackColor = true; + // + // materialLabel8 + // + this.materialLabel8.Depth = 0; + this.materialLabel8.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel8.Location = new System.Drawing.Point(25, 76); + this.materialLabel8.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel8.Name = "materialLabel8"; + this.materialLabel8.Size = new System.Drawing.Size(891, 95); + this.materialLabel8.TabIndex = 57; + this.materialLabel8.Text = resources.GetString("materialLabel8.Text"); + // + // materialButton19 + // + this.materialButton19.AutoSize = false; + this.materialButton19.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton19.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton19.Depth = 0; + this.materialButton19.HighEmphasis = false; + this.materialButton19.Icon = null; + this.materialButton19.Location = new System.Drawing.Point(522, 365); + this.materialButton19.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton19.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton19.Name = "materialButton19"; + this.materialButton19.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton19.Size = new System.Drawing.Size(189, 36); + this.materialButton19.TabIndex = 16; + this.materialButton19.Text = "OUTLINE - LOW - NORMAL"; + this.materialButton19.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; + this.materialButton19.UseAccentColor = false; + this.materialButton19.UseVisualStyleBackColor = true; + // + // materialButton20 + // + this.materialButton20.AutoSize = false; + this.materialButton20.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton20.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton20.Depth = 0; + this.materialButton20.HighEmphasis = false; + this.materialButton20.Icon = null; + this.materialButton20.Location = new System.Drawing.Point(32, 365); + this.materialButton20.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton20.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton20.Name = "materialButton20"; + this.materialButton20.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton20.Size = new System.Drawing.Size(174, 36); + this.materialButton20.TabIndex = 4; + this.materialButton20.Text = "TEXT - LOW - NORMAL"; + this.materialButton20.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; + this.materialButton20.UseAccentColor = false; + this.materialButton20.UseVisualStyleBackColor = true; + // + // materialButton21 + // + this.materialButton21.AutoSize = false; + this.materialButton21.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton21.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton21.Depth = 0; + this.materialButton21.HighEmphasis = false; + this.materialButton21.Icon = null; + this.materialButton21.Location = new System.Drawing.Point(280, 365); + this.materialButton21.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton21.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton21.Name = "materialButton21"; + this.materialButton21.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton21.Size = new System.Drawing.Size(168, 36); + this.materialButton21.TabIndex = 10; + this.materialButton21.Text = "CONT - LOW - NORMAL"; + this.materialButton21.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.materialButton21.UseAccentColor = false; + this.materialButton21.UseVisualStyleBackColor = true; + // + // materialButton5 + // + this.materialButton5.AutoSize = false; + this.materialButton5.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton5.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton5.Depth = 0; + this.materialButton5.HighEmphasis = true; + this.materialButton5.Icon = null; + this.materialButton5.Location = new System.Drawing.Point(522, 269); + this.materialButton5.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton5.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton5.Name = "materialButton5"; + this.materialButton5.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton5.Size = new System.Drawing.Size(189, 36); + this.materialButton5.TabIndex = 14; + this.materialButton5.Text = "OUTLINE - HIGH - NORMAL"; + this.materialButton5.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; + this.materialButton5.UseAccentColor = false; + this.materialButton5.UseVisualStyleBackColor = true; + // + // materialButton8 + // + this.materialButton8.AutoSize = false; + this.materialButton8.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton8.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton8.Depth = 0; + this.materialButton8.HighEmphasis = true; + this.materialButton8.Icon = null; + this.materialButton8.Location = new System.Drawing.Point(32, 269); + this.materialButton8.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton8.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton8.Name = "materialButton8"; + this.materialButton8.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton8.Size = new System.Drawing.Size(174, 36); + this.materialButton8.TabIndex = 2; + this.materialButton8.Text = "TEXT - HIGH - NORMAL"; + this.materialButton8.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; + this.materialButton8.UseAccentColor = false; + this.materialButton8.UseVisualStyleBackColor = true; + // + // materialButton9 + // + this.materialButton9.AutoSize = false; + this.materialButton9.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton9.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton9.Depth = 0; + this.materialButton9.HighEmphasis = true; + this.materialButton9.Icon = null; + this.materialButton9.Location = new System.Drawing.Point(280, 269); + this.materialButton9.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton9.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton9.Name = "materialButton9"; + this.materialButton9.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton9.Size = new System.Drawing.Size(168, 36); + this.materialButton9.TabIndex = 8; + this.materialButton9.Text = "CONT - HIGH - NORMAL"; + this.materialButton9.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.materialButton9.UseAccentColor = false; + this.materialButton9.UseVisualStyleBackColor = true; + // + // materialButton18 + // + this.materialButton18.AutoSize = false; + this.materialButton18.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton18.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton18.Depth = 0; + this.materialButton18.Enabled = false; + this.materialButton18.HighEmphasis = false; + this.materialButton18.Icon = null; + this.materialButton18.Location = new System.Drawing.Point(522, 461); + this.materialButton18.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton18.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton18.Name = "materialButton18"; + this.materialButton18.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton18.Size = new System.Drawing.Size(189, 36); + this.materialButton18.TabIndex = 18; + this.materialButton18.Text = "OUTLINE - DISABLED"; + this.materialButton18.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; + this.materialButton18.UseAccentColor = false; + this.materialButton18.UseVisualStyleBackColor = true; + // + // materialButton17 + // + this.materialButton17.AutoSize = false; + this.materialButton17.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton17.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton17.Depth = 0; + this.materialButton17.HighEmphasis = false; + this.materialButton17.Icon = null; + this.materialButton17.Location = new System.Drawing.Point(522, 413); + this.materialButton17.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton17.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton17.Name = "materialButton17"; + this.materialButton17.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton17.Size = new System.Drawing.Size(189, 36); + this.materialButton17.TabIndex = 17; + this.materialButton17.Text = "OUTLINE - LOW - ACCENT"; + this.materialButton17.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; + this.materialButton17.UseAccentColor = true; + this.materialButton17.UseVisualStyleBackColor = true; + // + // materialButton16 + // + this.materialButton16.AutoSize = false; + this.materialButton16.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton16.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton16.Depth = 0; + this.materialButton16.HighEmphasis = true; + this.materialButton16.Icon = null; + this.materialButton16.Location = new System.Drawing.Point(522, 317); + this.materialButton16.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton16.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton16.Name = "materialButton16"; + this.materialButton16.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton16.Size = new System.Drawing.Size(189, 36); + this.materialButton16.TabIndex = 15; + this.materialButton16.Text = "OUTLINE - HIGH - ACCENT"; + this.materialButton16.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; + this.materialButton16.UseAccentColor = true; + this.materialButton16.UseVisualStyleBackColor = true; + // + // materialButton15 + // + this.materialButton15.AutoSize = false; + this.materialButton15.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton15.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton15.Depth = 0; + this.materialButton15.HighEmphasis = false; + this.materialButton15.Icon = null; + this.materialButton15.Location = new System.Drawing.Point(32, 413); + this.materialButton15.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton15.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton15.Name = "materialButton15"; + this.materialButton15.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton15.Size = new System.Drawing.Size(174, 36); + this.materialButton15.TabIndex = 5; + this.materialButton15.Text = "TEXT - LOW - ACCENT"; + this.materialButton15.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; + this.materialButton15.UseAccentColor = true; + this.materialButton15.UseVisualStyleBackColor = true; + // + // materialButton14 + // + this.materialButton14.AutoSize = false; + this.materialButton14.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton14.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton14.Depth = 0; + this.materialButton14.HighEmphasis = true; + this.materialButton14.Icon = null; + this.materialButton14.Location = new System.Drawing.Point(32, 317); + this.materialButton14.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton14.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton14.Name = "materialButton14"; + this.materialButton14.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton14.Size = new System.Drawing.Size(174, 36); + this.materialButton14.TabIndex = 3; + this.materialButton14.Text = "TEXT - HIGH - ACCENT"; + this.materialButton14.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; + this.materialButton14.UseAccentColor = true; + this.materialButton14.UseVisualStyleBackColor = true; + // + // materialButton13 + // + this.materialButton13.AutoSize = false; + this.materialButton13.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton13.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton13.Depth = 0; + this.materialButton13.Enabled = false; + this.materialButton13.HighEmphasis = false; + this.materialButton13.Icon = null; + this.materialButton13.Location = new System.Drawing.Point(280, 461); + this.materialButton13.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton13.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton13.Name = "materialButton13"; + this.materialButton13.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton13.Size = new System.Drawing.Size(168, 36); + this.materialButton13.TabIndex = 12; + this.materialButton13.Text = "CONT - DISABLED"; + this.materialButton13.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.materialButton13.UseAccentColor = false; + this.materialButton13.UseVisualStyleBackColor = true; + // + // materialButton12 + // + this.materialButton12.AutoSize = false; + this.materialButton12.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton12.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton12.Depth = 0; + this.materialButton12.Enabled = false; + this.materialButton12.HighEmphasis = false; + this.materialButton12.Icon = null; + this.materialButton12.Location = new System.Drawing.Point(32, 461); + this.materialButton12.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton12.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton12.Name = "materialButton12"; + this.materialButton12.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton12.Size = new System.Drawing.Size(174, 36); + this.materialButton12.TabIndex = 6; + this.materialButton12.Text = "TEXT - DISABLED"; + this.materialButton12.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; + this.materialButton12.UseAccentColor = false; + this.materialButton12.UseVisualStyleBackColor = true; + // + // materialButton11 + // + this.materialButton11.AutoSize = false; + this.materialButton11.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton11.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton11.Depth = 0; + this.materialButton11.HighEmphasis = false; + this.materialButton11.Icon = null; + this.materialButton11.Location = new System.Drawing.Point(280, 413); + this.materialButton11.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton11.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton11.Name = "materialButton11"; + this.materialButton11.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton11.Size = new System.Drawing.Size(168, 36); + this.materialButton11.TabIndex = 11; + this.materialButton11.Text = "CONT - LOW - ACCENT"; + this.materialButton11.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.materialButton11.UseAccentColor = true; + this.materialButton11.UseVisualStyleBackColor = true; + // + // materialButton10 + // + this.materialButton10.AutoSize = false; + this.materialButton10.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton10.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton10.Depth = 0; + this.materialButton10.HighEmphasis = true; + this.materialButton10.Icon = null; + this.materialButton10.Location = new System.Drawing.Point(280, 317); + this.materialButton10.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton10.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton10.Name = "materialButton10"; + this.materialButton10.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton10.Size = new System.Drawing.Size(168, 36); + this.materialButton10.TabIndex = 9; + this.materialButton10.Text = "CONT - HIGH - ACCENT"; + this.materialButton10.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.materialButton10.UseAccentColor = true; + this.materialButton10.UseVisualStyleBackColor = true; + // + // tabPage2 + // + this.tabPage2.BackColor = System.Drawing.Color.White; + this.tabPage2.Controls.Add(this.msReadOnly); + this.tabPage2.Controls.Add(this.materialLabel5); + this.tabPage2.Controls.Add(this.materialCheckedListBox1); + this.tabPage2.Controls.Add(this.materialLabel34); + this.tabPage2.Controls.Add(this.materialLabel33); + this.tabPage2.Controls.Add(this.materialLabel32); + this.tabPage2.Controls.Add(this.materialLabel31); + this.tabPage2.Controls.Add(this.materialSwitch7); + this.tabPage2.Controls.Add(this.materialRadioButton5); + this.tabPage2.Controls.Add(this.materialLabel26); + this.tabPage2.Controls.Add(this.materialRadioButton4); + this.tabPage2.Controls.Add(this.materialRadioButton1); + this.tabPage2.Controls.Add(this.materialRadioButton2); + this.tabPage2.Controls.Add(this.materialSwitch3); + this.tabPage2.Controls.Add(this.materialSwitch2); + this.tabPage2.Controls.Add(this.materialSwitch1); + this.tabPage2.Controls.Add(this.materialCheckBox6); + this.tabPage2.Controls.Add(this.materialCheckBox5); + this.tabPage2.Controls.Add(this.materialCheckbox3); + this.tabPage2.Controls.Add(this.materialCheckbox1); + this.tabPage2.ImageKey = "round_bluetooth_white_24dp.png"; + this.tabPage2.Location = new System.Drawing.Point(4, 31); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(1015, 520); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "کنترل‌های انتخابی"; + // + // msReadOnly + // + this.msReadOnly.AutoSize = true; + this.msReadOnly.Depth = 0; + this.msReadOnly.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.msReadOnly.Location = new System.Drawing.Point(237, 125); + this.msReadOnly.Margin = new System.Windows.Forms.Padding(0); + this.msReadOnly.MouseLocation = new System.Drawing.Point(-1, -1); + this.msReadOnly.MouseState = MaterialSkin.MouseState.HOVER; + this.msReadOnly.Name = "msReadOnly"; + this.msReadOnly.Ripple = true; + this.msReadOnly.Size = new System.Drawing.Size(124, 37); + this.msReadOnly.TabIndex = 75; + this.msReadOnly.Text = "Read Only"; + this.msReadOnly.UseVisualStyleBackColor = true; + this.msReadOnly.CheckedChanged += new System.EventHandler(this.MsReadOnly_CheckedChanged); + // + // materialLabel5 + // + this.materialLabel5.AutoSize = true; + this.materialLabel5.Depth = 0; + this.materialLabel5.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel5.Location = new System.Drawing.Point(28, 315); + this.materialLabel5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel5.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel5.Name = "materialLabel5"; + this.materialLabel5.Size = new System.Drawing.Size(104, 17); + this.materialLabel5.TabIndex = 69; + this.materialLabel5.Text = "CheckedListBox"; + // + // materialCheckedListBox1 + // + this.materialCheckedListBox1.AutoScroll = true; + this.materialCheckedListBox1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialCheckedListBox1.BackColor = System.Drawing.Color.White; + this.materialCheckedListBox1.Depth = 0; + this.materialCheckedListBox1.Location = new System.Drawing.Point(31, 352); + this.materialCheckedListBox1.Margin = new System.Windows.Forms.Padding(2); + this.materialCheckedListBox1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialCheckedListBox1.Name = "materialCheckedListBox1"; + this.materialCheckedListBox1.Size = new System.Drawing.Size(190, 141); + this.materialCheckedListBox1.Striped = false; + this.materialCheckedListBox1.StripeDarkColor = System.Drawing.Color.Empty; + this.materialCheckedListBox1.TabIndex = 16; + // + // materialLabel34 + // + this.materialLabel34.AutoSize = true; + this.materialLabel34.Depth = 0; + this.materialLabel34.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel34.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel34.Location = new System.Drawing.Point(255, 315); + this.materialLabel34.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel34.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel34.Name = "materialLabel34"; + this.materialLabel34.Size = new System.Drawing.Size(70, 17); + this.materialLabel34.TabIndex = 66; + this.materialLabel34.Text = "Combobox"; + // + // materialLabel33 + // + this.materialLabel33.AutoSize = true; + this.materialLabel33.Depth = 0; + this.materialLabel33.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel33.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel33.Location = new System.Drawing.Point(675, 90); + this.materialLabel33.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel33.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel33.Name = "materialLabel33"; + this.materialLabel33.Size = new System.Drawing.Size(45, 17); + this.materialLabel33.TabIndex = 65; + this.materialLabel33.Text = "Switch"; + // + // materialLabel32 + // + this.materialLabel32.AutoSize = true; + this.materialLabel32.Depth = 0; + this.materialLabel32.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel32.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel32.Location = new System.Drawing.Point(428, 90); + this.materialLabel32.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel32.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel32.Name = "materialLabel32"; + this.materialLabel32.Size = new System.Drawing.Size(92, 17); + this.materialLabel32.TabIndex = 64; + this.materialLabel32.Text = "Radio Buttons"; + // + // materialLabel31 + // + this.materialLabel31.AutoSize = true; + this.materialLabel31.Depth = 0; + this.materialLabel31.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel31.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel31.Location = new System.Drawing.Point(28, 90); + this.materialLabel31.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.materialLabel31.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel31.Name = "materialLabel31"; + this.materialLabel31.Size = new System.Drawing.Size(64, 17); + this.materialLabel31.TabIndex = 63; + this.materialLabel31.Text = "Checkbox"; + // + // materialSwitch7 + // + this.materialSwitch7.AutoSize = true; + this.materialSwitch7.Depth = 0; + this.materialSwitch7.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialSwitch7.Location = new System.Drawing.Point(678, 168); + this.materialSwitch7.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch7.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch7.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch7.Name = "materialSwitch7"; + this.materialSwitch7.Ripple = true; + this.materialSwitch7.Size = new System.Drawing.Size(160, 37); + this.materialSwitch7.TabIndex = 12; + this.materialSwitch7.Text = "Material Switch"; + this.materialSwitch7.UseVisualStyleBackColor = true; + // + // materialRadioButton5 + // + this.materialRadioButton5.AutoSize = true; + this.materialRadioButton5.Cursor = System.Windows.Forms.Cursors.Default; + this.materialRadioButton5.Depth = 0; + this.materialRadioButton5.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialRadioButton5.Location = new System.Drawing.Point(431, 251); + this.materialRadioButton5.Margin = new System.Windows.Forms.Padding(0); + this.materialRadioButton5.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialRadioButton5.MouseState = MaterialSkin.MouseState.HOVER; + this.materialRadioButton5.Name = "materialRadioButton5"; + this.materialRadioButton5.Ripple = true; + this.materialRadioButton5.Size = new System.Drawing.Size(176, 37); + this.materialRadioButton5.TabIndex = 10; + this.materialRadioButton5.TabStop = true; + this.materialRadioButton5.Text = "materialRadioButton5"; + this.materialRadioButton5.UseVisualStyleBackColor = true; + // + // materialLabel26 + // + this.materialLabel26.AutoSize = true; + this.materialLabel26.Depth = 0; + this.materialLabel26.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel26.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel26.Location = new System.Drawing.Point(21, 12); + this.materialLabel26.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel26.Name = "materialLabel26"; + this.materialLabel26.Size = new System.Drawing.Size(356, 51); + this.materialLabel26.TabIndex = 59; + this.materialLabel26.Text = "Selection Controls"; + // + // materialRadioButton4 + // + this.materialRadioButton4.AutoSize = true; + this.materialRadioButton4.Checked = true; + this.materialRadioButton4.Cursor = System.Windows.Forms.Cursors.Default; + this.materialRadioButton4.Depth = 0; + this.materialRadioButton4.Enabled = false; + this.materialRadioButton4.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialRadioButton4.Location = new System.Drawing.Point(431, 209); + this.materialRadioButton4.Margin = new System.Windows.Forms.Padding(0); + this.materialRadioButton4.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialRadioButton4.MouseState = MaterialSkin.MouseState.HOVER; + this.materialRadioButton4.Name = "materialRadioButton4"; + this.materialRadioButton4.Ripple = true; + this.materialRadioButton4.Size = new System.Drawing.Size(176, 37); + this.materialRadioButton4.TabIndex = 9; + this.materialRadioButton4.TabStop = true; + this.materialRadioButton4.Text = "materialRadioButton4"; + this.materialRadioButton4.UseVisualStyleBackColor = true; + // + // materialRadioButton1 + // + this.materialRadioButton1.AutoSize = true; + this.materialRadioButton1.Cursor = System.Windows.Forms.Cursors.Default; + this.materialRadioButton1.Depth = 0; + this.materialRadioButton1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialRadioButton1.Location = new System.Drawing.Point(431, 125); + this.materialRadioButton1.Margin = new System.Windows.Forms.Padding(0); + this.materialRadioButton1.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialRadioButton1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialRadioButton1.Name = "materialRadioButton1"; + this.materialRadioButton1.Ripple = true; + this.materialRadioButton1.Size = new System.Drawing.Size(171, 37); + this.materialRadioButton1.TabIndex = 6; + this.materialRadioButton1.TabStop = true; + this.materialRadioButton1.Text = "materialRadioButton1"; + this.materialRadioButton1.UseVisualStyleBackColor = true; + // + // materialRadioButton2 + // + this.materialRadioButton2.AutoSize = true; + this.materialRadioButton2.Cursor = System.Windows.Forms.Cursors.Default; + this.materialRadioButton2.Depth = 0; + this.materialRadioButton2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialRadioButton2.Location = new System.Drawing.Point(431, 167); + this.materialRadioButton2.Margin = new System.Windows.Forms.Padding(0); + this.materialRadioButton2.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialRadioButton2.MouseState = MaterialSkin.MouseState.HOVER; + this.materialRadioButton2.Name = "materialRadioButton2"; + this.materialRadioButton2.Ripple = true; + this.materialRadioButton2.Size = new System.Drawing.Size(175, 37); + this.materialRadioButton2.TabIndex = 7; + this.materialRadioButton2.TabStop = true; + this.materialRadioButton2.Text = "materialRadioButton2"; + this.materialRadioButton2.UseVisualStyleBackColor = true; + // + // materialSwitch3 + // + this.materialSwitch3.AutoSize = true; + this.materialSwitch3.Checked = true; + this.materialSwitch3.CheckState = System.Windows.Forms.CheckState.Checked; + this.materialSwitch3.Depth = 0; + this.materialSwitch3.Enabled = false; + this.materialSwitch3.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialSwitch3.Location = new System.Drawing.Point(678, 252); + this.materialSwitch3.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch3.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch3.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch3.Name = "materialSwitch3"; + this.materialSwitch3.Ripple = true; + this.materialSwitch3.Size = new System.Drawing.Size(259, 37); + this.materialSwitch3.TabIndex = 15; + this.materialSwitch3.Text = "Switch - Checked and disabled"; + this.materialSwitch3.UseVisualStyleBackColor = true; + // + // materialSwitch2 + // + this.materialSwitch2.AutoSize = true; + this.materialSwitch2.Depth = 0; + this.materialSwitch2.Enabled = false; + this.materialSwitch2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialSwitch2.Location = new System.Drawing.Point(678, 210); + this.materialSwitch2.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch2.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch2.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch2.Name = "materialSwitch2"; + this.materialSwitch2.Ripple = true; + this.materialSwitch2.Size = new System.Drawing.Size(170, 37); + this.materialSwitch2.TabIndex = 14; + this.materialSwitch2.Text = "Switch - Disabled"; + this.materialSwitch2.UseVisualStyleBackColor = true; + // + // materialSwitch1 + // + this.materialSwitch1.AutoSize = true; + this.materialSwitch1.Depth = 0; + this.materialSwitch1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialSwitch1.Location = new System.Drawing.Point(678, 126); + this.materialSwitch1.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch1.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch1.Name = "materialSwitch1"; + this.materialSwitch1.Ripple = true; + this.materialSwitch1.Size = new System.Drawing.Size(160, 37); + this.materialSwitch1.TabIndex = 11; + this.materialSwitch1.Text = "Material Switch"; + this.materialSwitch1.UseVisualStyleBackColor = true; + // + // materialCheckBox6 + // + this.materialCheckBox6.AutoSize = true; + this.materialCheckBox6.Cursor = System.Windows.Forms.Cursors.Default; + this.materialCheckBox6.Depth = 0; + this.materialCheckBox6.Enabled = false; + this.materialCheckBox6.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialCheckBox6.Location = new System.Drawing.Point(31, 251); + this.materialCheckBox6.Margin = new System.Windows.Forms.Padding(0); + this.materialCheckBox6.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialCheckBox6.MouseState = MaterialSkin.MouseState.HOVER; + this.materialCheckBox6.Name = "materialCheckBox6"; + this.materialCheckBox6.ReadOnly = false; + this.materialCheckBox6.Ripple = true; + this.materialCheckBox6.Size = new System.Drawing.Size(159, 37); + this.materialCheckBox6.TabIndex = 5; + this.materialCheckBox6.Text = "materialCheckBox6"; + this.materialCheckBox6.UseVisualStyleBackColor = true; + // + // materialCheckBox5 + // + this.materialCheckBox5.AutoSize = true; + this.materialCheckBox5.Checked = true; + this.materialCheckBox5.CheckState = System.Windows.Forms.CheckState.Checked; + this.materialCheckBox5.Cursor = System.Windows.Forms.Cursors.Default; + this.materialCheckBox5.Depth = 0; + this.materialCheckBox5.Enabled = false; + this.materialCheckBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialCheckBox5.Location = new System.Drawing.Point(31, 209); + this.materialCheckBox5.Margin = new System.Windows.Forms.Padding(0); + this.materialCheckBox5.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialCheckBox5.MouseState = MaterialSkin.MouseState.HOVER; + this.materialCheckBox5.Name = "materialCheckBox5"; + this.materialCheckBox5.ReadOnly = false; + this.materialCheckBox5.Ripple = true; + this.materialCheckBox5.Size = new System.Drawing.Size(161, 37); + this.materialCheckBox5.TabIndex = 4; + this.materialCheckBox5.Text = "materialCheckBox5"; + this.materialCheckBox5.UseVisualStyleBackColor = true; + // + // tabPage3 + // + this.tabPage3.BackColor = System.Drawing.Color.White; + this.tabPage3.Controls.Add(this.materialMaskedTextBox1); + this.tabPage3.Controls.Add(this.materialSwitch15); + this.tabPage3.Controls.Add(this.materialSwitch14); + this.tabPage3.Controls.Add(this.materialSwitch16); + this.tabPage3.Controls.Add(this.materialSwitch13); + this.tabPage3.Controls.Add(this.materialSwitch12); + this.tabPage3.Controls.Add(this.materialSwitch11); + this.tabPage3.Controls.Add(this.materialSwitch10); + this.tabPage3.Controls.Add(this.materialTextBox21); + this.tabPage3.Controls.Add(this.materialMultiLineTextBox21); + this.tabPage3.Controls.Add(this.materialTextBox5); + this.tabPage3.Controls.Add(this.materialTextBox4); + this.tabPage3.Controls.Add(this.materialTextBox3); + this.tabPage3.Controls.Add(this.materialLabel27); + this.tabPage3.Controls.Add(this.materialLabel56); + this.tabPage3.Controls.Add(this.materialLabel23); + this.tabPage3.Controls.Add(this.materialTextBox2); + this.tabPage3.Controls.Add(this.materialTextBox1); + this.tabPage3.Controls.Add(this.materialSingleLineTextField2); + this.tabPage3.ImageKey = "round_build_white_24dp.png"; + this.tabPage3.Location = new System.Drawing.Point(4, 31); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Padding = new System.Windows.Forms.Padding(3); + this.tabPage3.Size = new System.Drawing.Size(1015, 520); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "کادرهای متنی"; + // + // materialMaskedTextBox1 + // + this.materialMaskedTextBox1.AllowPromptAsInput = true; + this.materialMaskedTextBox1.AnimateReadOnly = false; + this.materialMaskedTextBox1.AsciiOnly = false; + this.materialMaskedTextBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.materialMaskedTextBox1.BeepOnError = false; + this.materialMaskedTextBox1.CutCopyMaskFormat = System.Windows.Forms.MaskFormat.IncludeLiterals; + this.materialMaskedTextBox1.Depth = 0; + this.materialMaskedTextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialMaskedTextBox1.HidePromptOnLeave = true; + this.materialMaskedTextBox1.HideSelection = false; + this.materialMaskedTextBox1.Hint = "Phone number mask"; + this.materialMaskedTextBox1.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Default; + this.materialMaskedTextBox1.LeadingIcon = null; + this.materialMaskedTextBox1.Location = new System.Drawing.Point(528, 437); + this.materialMaskedTextBox1.Mask = "+00-0-00-00-00-00"; + this.materialMaskedTextBox1.MaxLength = 32767; + this.materialMaskedTextBox1.MouseState = MaterialSkin.MouseState.OUT; + this.materialMaskedTextBox1.Name = "materialMaskedTextBox1"; + this.materialMaskedTextBox1.PasswordChar = '\0'; + this.materialMaskedTextBox1.PrefixSuffixText = null; + this.materialMaskedTextBox1.PromptChar = '_'; + this.materialMaskedTextBox1.ReadOnly = false; + this.materialMaskedTextBox1.RejectInputOnFirstFailure = true; + this.materialMaskedTextBox1.ResetOnPrompt = true; + this.materialMaskedTextBox1.ResetOnSpace = true; + this.materialMaskedTextBox1.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialMaskedTextBox1.SelectedText = ""; + this.materialMaskedTextBox1.SelectionLength = 0; + this.materialMaskedTextBox1.SelectionStart = 15; + this.materialMaskedTextBox1.ShortcutsEnabled = true; + this.materialMaskedTextBox1.Size = new System.Drawing.Size(384, 48); + this.materialMaskedTextBox1.SkipLiterals = true; + this.materialMaskedTextBox1.TabIndex = 81; + this.materialMaskedTextBox1.TabStop = false; + this.materialMaskedTextBox1.Text = "+ - - - - -"; + this.materialMaskedTextBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.materialMaskedTextBox1.TextMaskFormat = System.Windows.Forms.MaskFormat.IncludeLiterals; + this.materialMaskedTextBox1.TrailingIcon = null; + this.materialMaskedTextBox1.UseSystemPasswordChar = false; + this.materialMaskedTextBox1.ValidatingType = null; + // + // materialSwitch15 + // + this.materialSwitch15.AutoSize = true; + this.materialSwitch15.Depth = 0; + this.materialSwitch15.Location = new System.Drawing.Point(528, 368); + this.materialSwitch15.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch15.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch15.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch15.Name = "materialSwitch15"; + this.materialSwitch15.Ripple = true; + this.materialSwitch15.Size = new System.Drawing.Size(138, 37); + this.materialSwitch15.TabIndex = 78; + this.materialSwitch15.Text = "Trailing Icon"; + this.materialSwitch15.UseVisualStyleBackColor = true; + this.materialSwitch15.CheckedChanged += new System.EventHandler(this.materialSwitch15_CheckedChanged); + // + // materialSwitch14 + // + this.materialSwitch14.AutoSize = true; + this.materialSwitch14.Depth = 0; + this.materialSwitch14.Location = new System.Drawing.Point(528, 331); + this.materialSwitch14.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch14.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch14.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch14.Name = "materialSwitch14"; + this.materialSwitch14.Ripple = true; + this.materialSwitch14.Size = new System.Drawing.Size(142, 37); + this.materialSwitch14.TabIndex = 77; + this.materialSwitch14.Text = "Leading Icon"; + this.materialSwitch14.UseVisualStyleBackColor = true; + this.materialSwitch14.CheckedChanged += new System.EventHandler(this.materialSwitch14_CheckedChanged); + // + // materialSwitch16 + // + this.materialSwitch16.AutoSize = true; + this.materialSwitch16.Checked = true; + this.materialSwitch16.CheckState = System.Windows.Forms.CheckState.Checked; + this.materialSwitch16.Depth = 0; + this.materialSwitch16.Location = new System.Drawing.Point(729, 295); + this.materialSwitch16.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch16.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch16.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch16.Name = "materialSwitch16"; + this.materialSwitch16.Ripple = true; + this.materialSwitch16.Size = new System.Drawing.Size(189, 37); + this.materialSwitch16.TabIndex = 76; + this.materialSwitch16.Text = "Show Assistive Text"; + this.materialSwitch16.UseVisualStyleBackColor = true; + this.materialSwitch16.CheckedChanged += new System.EventHandler(this.materialSwitch16_CheckedChanged); + // + // materialSwitch13 + // + this.materialSwitch13.AutoSize = true; + this.materialSwitch13.Depth = 0; + this.materialSwitch13.Location = new System.Drawing.Point(528, 293); + this.materialSwitch13.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch13.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch13.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch13.Name = "materialSwitch13"; + this.materialSwitch13.Ripple = true; + this.materialSwitch13.Size = new System.Drawing.Size(121, 37); + this.materialSwitch13.TabIndex = 76; + this.materialSwitch13.Text = "Password"; + this.materialSwitch13.UseVisualStyleBackColor = true; + this.materialSwitch13.CheckedChanged += new System.EventHandler(this.materialSwitch13_CheckedChanged); + // + // materialSwitch12 + // + this.materialSwitch12.AutoSize = true; + this.materialSwitch12.Depth = 0; + this.materialSwitch12.Location = new System.Drawing.Point(528, 256); + this.materialSwitch12.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch12.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch12.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch12.Name = "materialSwitch12"; + this.materialSwitch12.Ripple = true; + this.materialSwitch12.Size = new System.Drawing.Size(114, 37); + this.materialSwitch12.TabIndex = 74; + this.materialSwitch12.Text = "Hint text"; + this.materialSwitch12.UseVisualStyleBackColor = true; + this.materialSwitch12.CheckedChanged += new System.EventHandler(this.materialSwitch12_CheckedChanged); + // + // materialSwitch11 + // + this.materialSwitch11.AutoSize = true; + this.materialSwitch11.Checked = true; + this.materialSwitch11.CheckState = System.Windows.Forms.CheckState.Checked; + this.materialSwitch11.Depth = 0; + this.materialSwitch11.Location = new System.Drawing.Point(528, 219); + this.materialSwitch11.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch11.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch11.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch11.Name = "materialSwitch11"; + this.materialSwitch11.Ripple = true; + this.materialSwitch11.Size = new System.Drawing.Size(142, 37); + this.materialSwitch11.TabIndex = 73; + this.materialSwitch11.Text = "Use Tall Size"; + this.materialSwitch11.UseVisualStyleBackColor = true; + this.materialSwitch11.CheckedChanged += new System.EventHandler(this.materialSwitch11_CheckedChanged); + // + // materialSwitch10 + // + this.materialSwitch10.AutoSize = true; + this.materialSwitch10.Checked = true; + this.materialSwitch10.CheckState = System.Windows.Forms.CheckState.Checked; + this.materialSwitch10.Depth = 0; + this.materialSwitch10.Location = new System.Drawing.Point(528, 182); + this.materialSwitch10.Margin = new System.Windows.Forms.Padding(0); + this.materialSwitch10.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialSwitch10.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSwitch10.Name = "materialSwitch10"; + this.materialSwitch10.Ripple = true; + this.materialSwitch10.Size = new System.Drawing.Size(133, 37); + this.materialSwitch10.TabIndex = 72; + this.materialSwitch10.Text = "Use Accent"; + this.materialSwitch10.UseVisualStyleBackColor = true; + this.materialSwitch10.CheckedChanged += new System.EventHandler(this.materialSwitch10_CheckedChanged); + // + // materialTextBox21 + // + this.materialTextBox21.AnimateReadOnly = false; + this.materialTextBox21.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None; + this.materialTextBox21.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None; + this.materialTextBox21.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.materialTextBox21.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.materialTextBox21.Depth = 0; + this.materialTextBox21.ErrorMessage = "Invalid entry"; + this.materialTextBox21.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialTextBox21.HelperText = "Helper Text"; + this.materialTextBox21.HideSelection = true; + this.materialTextBox21.LeadingIcon = null; + this.materialTextBox21.Location = new System.Drawing.Point(528, 114); + this.materialTextBox21.MaxLength = 32767; + this.materialTextBox21.MouseState = MaterialSkin.MouseState.OUT; + this.materialTextBox21.Name = "materialTextBox21"; + this.materialTextBox21.PasswordChar = '\0'; + this.materialTextBox21.PrefixSuffixText = "$"; + this.materialTextBox21.ReadOnly = false; + this.materialTextBox21.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox21.SelectedText = ""; + this.materialTextBox21.SelectionLength = 0; + this.materialTextBox21.SelectionStart = 0; + this.materialTextBox21.ShortcutsEnabled = true; + this.materialTextBox21.ShowAssistiveText = true; + this.materialTextBox21.Size = new System.Drawing.Size(384, 64); + this.materialTextBox21.TabIndex = 71; + this.materialTextBox21.TabStop = false; + this.materialTextBox21.Text = "MaterialTextBox2"; + this.materialTextBox21.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.materialTextBox21.TrailingIcon = null; + this.materialTextBox21.UseSystemPasswordChar = false; + this.materialTextBox21.LeadingIconClick += new System.EventHandler(this.materialTextBox21_LeadingIconClick); + this.materialTextBox21.TrailingIconClick += new System.EventHandler(this.materialTextBox21_TrailingIconClick); + // + // materialMultiLineTextBox21 + // + this.materialMultiLineTextBox21.AnimateReadOnly = false; + this.materialMultiLineTextBox21.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.materialMultiLineTextBox21.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.materialMultiLineTextBox21.Cursor = System.Windows.Forms.Cursors.IBeam; + this.materialMultiLineTextBox21.Depth = 0; + this.materialMultiLineTextBox21.HideSelection = true; + this.materialMultiLineTextBox21.Hint = "MaterialMultiLineTextBox2"; + this.materialMultiLineTextBox21.Location = new System.Drawing.Point(25, 385); + this.materialMultiLineTextBox21.MaxLength = 2147483647; + this.materialMultiLineTextBox21.MouseState = MaterialSkin.MouseState.OUT; + this.materialMultiLineTextBox21.Name = "materialMultiLineTextBox21"; + this.materialMultiLineTextBox21.PasswordChar = '\0'; + this.materialMultiLineTextBox21.ReadOnly = false; + this.materialMultiLineTextBox21.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.materialMultiLineTextBox21.SelectedText = ""; + this.materialMultiLineTextBox21.SelectionLength = 0; + this.materialMultiLineTextBox21.SelectionStart = 0; + this.materialMultiLineTextBox21.ShortcutsEnabled = true; + this.materialMultiLineTextBox21.Size = new System.Drawing.Size(406, 100); + this.materialMultiLineTextBox21.TabIndex = 70; + this.materialMultiLineTextBox21.TabStop = false; + this.materialMultiLineTextBox21.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.materialMultiLineTextBox21.UseSystemPasswordChar = false; + // + // materialTextBox5 + // + this.materialTextBox5.AnimateReadOnly = false; + this.materialTextBox5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None; + this.materialTextBox5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None; + this.materialTextBox5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.materialTextBox5.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.materialTextBox5.Cursor = System.Windows.Forms.Cursors.IBeam; + this.materialTextBox5.Depth = 0; + this.materialTextBox5.Enabled = false; + this.materialTextBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); + this.materialTextBox5.HideSelection = true; + this.materialTextBox5.Hint = "This is Disabled"; + this.materialTextBox5.LeadingIcon = null; + this.materialTextBox5.Location = new System.Drawing.Point(222, 170); + this.materialTextBox5.MaxLength = 50; + this.materialTextBox5.MouseState = MaterialSkin.MouseState.OUT; + this.materialTextBox5.Name = "materialTextBox5"; + this.materialTextBox5.PasswordChar = '\0'; + this.materialTextBox5.PrefixSuffixText = null; + this.materialTextBox5.ReadOnly = false; + this.materialTextBox5.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox5.SelectedText = ""; + this.materialTextBox5.SelectionLength = 0; + this.materialTextBox5.SelectionStart = 0; + this.materialTextBox5.ShortcutsEnabled = true; + this.materialTextBox5.Size = new System.Drawing.Size(209, 48); + this.materialTextBox5.TabIndex = 69; + this.materialTextBox5.TabStop = false; + this.materialTextBox5.Text = "But with value"; + this.materialTextBox5.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.materialTextBox5.TrailingIcon = null; + this.materialTextBox5.UseSystemPasswordChar = false; + // + // materialTextBox4 + // + this.materialTextBox4.AnimateReadOnly = false; + this.materialTextBox4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None; + this.materialTextBox4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None; + this.materialTextBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.materialTextBox4.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.materialTextBox4.Cursor = System.Windows.Forms.Cursors.IBeam; + this.materialTextBox4.Depth = 0; + this.materialTextBox4.Enabled = false; + this.materialTextBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialTextBox4.HideSelection = true; + this.materialTextBox4.Hint = "This is Disabled"; + this.materialTextBox4.LeadingIcon = null; + this.materialTextBox4.Location = new System.Drawing.Point(25, 170); + this.materialTextBox4.MaxLength = 50; + this.materialTextBox4.MouseState = MaterialSkin.MouseState.OUT; + this.materialTextBox4.Name = "materialTextBox4"; + this.materialTextBox4.PasswordChar = '\0'; + this.materialTextBox4.PrefixSuffixText = null; + this.materialTextBox4.ReadOnly = false; + this.materialTextBox4.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox4.SelectedText = ""; + this.materialTextBox4.SelectionLength = 0; + this.materialTextBox4.SelectionStart = 0; + this.materialTextBox4.ShortcutsEnabled = true; + this.materialTextBox4.Size = new System.Drawing.Size(191, 48); + this.materialTextBox4.TabIndex = 68; + this.materialTextBox4.TabStop = false; + this.materialTextBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.materialTextBox4.TrailingIcon = null; + this.materialTextBox4.UseSystemPasswordChar = false; + // + // materialTextBox3 + // + this.materialTextBox3.AnimateReadOnly = false; + this.materialTextBox3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None; + this.materialTextBox3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None; + this.materialTextBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.materialTextBox3.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.materialTextBox3.Cursor = System.Windows.Forms.Cursors.IBeam; + this.materialTextBox3.Depth = 0; + this.materialTextBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialTextBox3.HideSelection = true; + this.materialTextBox3.Hint = "This field has UseTallSize = false"; + this.materialTextBox3.LeadingIcon = null; + this.materialTextBox3.Location = new System.Drawing.Point(25, 338); + this.materialTextBox3.MaxLength = 50; + this.materialTextBox3.MouseState = MaterialSkin.MouseState.OUT; + this.materialTextBox3.Name = "materialTextBox3"; + this.materialTextBox3.PasswordChar = '\0'; + this.materialTextBox3.PrefixSuffixText = null; + this.materialTextBox3.ReadOnly = false; + this.materialTextBox3.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox3.SelectedText = ""; + this.materialTextBox3.SelectionLength = 0; + this.materialTextBox3.SelectionStart = 0; + this.materialTextBox3.ShortcutsEnabled = true; + this.materialTextBox3.Size = new System.Drawing.Size(406, 36); + this.materialTextBox3.TabIndex = 67; + this.materialTextBox3.TabStop = false; + this.materialTextBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.materialTextBox3.TrailingIcon = null; + this.materialTextBox3.UseSystemPasswordChar = false; + this.materialTextBox3.UseTallSize = false; + // + // materialLabel27 + // + this.materialLabel27.AutoSize = true; + this.materialLabel27.Depth = 0; + this.materialLabel27.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel27.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel27.Location = new System.Drawing.Point(28, 18); + this.materialLabel27.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel27.Name = "materialLabel27"; + this.materialLabel27.Size = new System.Drawing.Size(155, 51); + this.materialLabel27.TabIndex = 62; + this.materialLabel27.Text = "Textbox"; + // + // materialLabel56 + // + this.materialLabel56.Depth = 0; + this.materialLabel56.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel56.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel56.Location = new System.Drawing.Point(525, 51); + this.materialLabel56.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel56.Name = "materialLabel56"; + this.materialLabel56.Size = new System.Drawing.Size(413, 51); + this.materialLabel56.TabIndex = 61; + this.materialLabel56.Text = "Material TextBox2 is a new variant of Material TextBox but with new code approach" + + " and with new functionality."; + // + // materialLabel23 + // + this.materialLabel23.AutoSize = true; + this.materialLabel23.Depth = 0; + this.materialLabel23.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel23.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel23.Location = new System.Drawing.Point(35, 89); + this.materialLabel23.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel23.Name = "materialLabel23"; + this.materialLabel23.Size = new System.Drawing.Size(158, 17); + this.materialLabel23.TabIndex = 61; + this.materialLabel23.Text = "This texbox has no hint!"; + // + // materialTextBox2 + // + this.materialTextBox2.AnimateReadOnly = false; + this.materialTextBox2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None; + this.materialTextBox2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None; + this.materialTextBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.materialTextBox2.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.materialTextBox2.Cursor = System.Windows.Forms.Cursors.IBeam; + this.materialTextBox2.Depth = 0; + this.materialTextBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialTextBox2.HideSelection = true; + this.materialTextBox2.Hint = "Password"; + this.materialTextBox2.LeadingIcon = null; + this.materialTextBox2.Location = new System.Drawing.Point(25, 282); + this.materialTextBox2.MaxLength = 50; + this.materialTextBox2.MouseState = MaterialSkin.MouseState.OUT; + this.materialTextBox2.Name = "materialTextBox2"; + this.materialTextBox2.PasswordChar = '●'; + this.materialTextBox2.PrefixSuffixText = null; + this.materialTextBox2.ReadOnly = false; + this.materialTextBox2.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox2.SelectedText = ""; + this.materialTextBox2.SelectionLength = 0; + this.materialTextBox2.SelectionStart = 0; + this.materialTextBox2.ShortcutsEnabled = true; + this.materialTextBox2.Size = new System.Drawing.Size(406, 48); + this.materialTextBox2.TabIndex = 3; + this.materialTextBox2.TabStop = false; + this.materialTextBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.materialTextBox2.TrailingIcon = null; + this.materialTextBox2.UseSystemPasswordChar = true; + this.materialTextBox2.LeadingIconClick += new System.EventHandler(this.materialTextBox2_LeadingIconClick); + // + // materialTextBox1 + // + this.materialTextBox1.AnimateReadOnly = false; + this.materialTextBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None; + this.materialTextBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None; + this.materialTextBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.materialTextBox1.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.materialTextBox1.Cursor = System.Windows.Forms.Cursors.IBeam; + this.materialTextBox1.Depth = 0; + this.materialTextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialTextBox1.HideSelection = true; + this.materialTextBox1.LeadingIcon = null; + this.materialTextBox1.Location = new System.Drawing.Point(25, 114); + this.materialTextBox1.MaxLength = 50; + this.materialTextBox1.MouseState = MaterialSkin.MouseState.OUT; + this.materialTextBox1.Name = "materialTextBox1"; + this.materialTextBox1.PasswordChar = '\0'; + this.materialTextBox1.PrefixSuffixText = null; + this.materialTextBox1.ReadOnly = false; + this.materialTextBox1.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox1.SelectedText = ""; + this.materialTextBox1.SelectionLength = 0; + this.materialTextBox1.SelectionStart = 0; + this.materialTextBox1.ShortcutsEnabled = true; + this.materialTextBox1.Size = new System.Drawing.Size(406, 48); + this.materialTextBox1.TabIndex = 1; + this.materialTextBox1.TabStop = false; + this.materialTextBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.materialTextBox1.TrailingIcon = null; + this.materialTextBox1.UseSystemPasswordChar = false; + this.materialTextBox1.Click += new System.EventHandler(this.materialTextBox1_Click); + // + // materialSingleLineTextField2 + // + this.materialSingleLineTextField2.AnimateReadOnly = false; + this.materialSingleLineTextField2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None; + this.materialSingleLineTextField2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None; + this.materialSingleLineTextField2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.materialSingleLineTextField2.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.materialSingleLineTextField2.Cursor = System.Windows.Forms.Cursors.IBeam; + this.materialSingleLineTextField2.Depth = 0; + this.materialSingleLineTextField2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialSingleLineTextField2.HideSelection = true; + this.materialSingleLineTextField2.Hint = "Type here"; + this.materialSingleLineTextField2.LeadingIcon = null; + this.materialSingleLineTextField2.Location = new System.Drawing.Point(25, 226); + this.materialSingleLineTextField2.MaxLength = 50; + this.materialSingleLineTextField2.MouseState = MaterialSkin.MouseState.OUT; + this.materialSingleLineTextField2.Name = "materialSingleLineTextField2"; + this.materialSingleLineTextField2.PasswordChar = '\0'; + this.materialSingleLineTextField2.PrefixSuffixText = null; + this.materialSingleLineTextField2.ReadOnly = false; + this.materialSingleLineTextField2.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialSingleLineTextField2.SelectedText = ""; + this.materialSingleLineTextField2.SelectionLength = 0; + this.materialSingleLineTextField2.SelectionStart = 0; + this.materialSingleLineTextField2.ShortcutsEnabled = true; + this.materialSingleLineTextField2.Size = new System.Drawing.Size(406, 48); + this.materialSingleLineTextField2.TabIndex = 2; + this.materialSingleLineTextField2.TabStop = false; + this.materialSingleLineTextField2.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.materialSingleLineTextField2.TrailingIcon = null; + this.materialSingleLineTextField2.UseSystemPasswordChar = false; + // + // tabPage4 + // + this.tabPage4.BackColor = System.Drawing.Color.White; + this.tabPage4.Controls.Add(this.materialLabel39); + this.tabPage4.Controls.Add(this.materialLabel28); + this.tabPage4.Controls.Add(this.materialListView1); + this.tabPage4.ImageKey = "round_backup_white_24dp.png"; + this.tabPage4.Location = new System.Drawing.Point(4, 31); + this.tabPage4.Name = "tabPage4"; + this.tabPage4.Padding = new System.Windows.Forms.Padding(3); + this.tabPage4.Size = new System.Drawing.Size(1015, 520); + this.tabPage4.TabIndex = 3; + this.tabPage4.Text = "نمونه‌ی جدول"; + // + // materialLabel39 + // + this.materialLabel39.Depth = 0; + this.materialLabel39.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel39.Location = new System.Drawing.Point(22, 76); + this.materialLabel39.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel39.Name = "materialLabel39"; + this.materialLabel39.Size = new System.Drawing.Size(647, 70); + this.materialLabel39.TabIndex = 64; + this.materialLabel39.Text = "This control could be better, but it\'s good enough for now - PRs are welcome! :)\r" + + "\nRecommended: AutoSizeTable = true;\r\nand then configure with Maximum/Minimum Siz" + + "e\r\n"; + // + // materialLabel28 + // + this.materialLabel28.AutoSize = true; + this.materialLabel28.Depth = 0; + this.materialLabel28.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel28.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel28.Location = new System.Drawing.Point(28, 18); + this.materialLabel28.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel28.Name = "materialLabel28"; + this.materialLabel28.Size = new System.Drawing.Size(107, 51); + this.materialLabel28.TabIndex = 63; + this.materialLabel28.Text = "Table"; + // + // materialListView1 + // + this.materialListView1.AllowColumnReorder = true; + this.materialListView1.AutoSizeTable = true; + this.materialListView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialListView1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.materialListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3, + this.columnHeader4}); + this.materialListView1.Depth = 0; + this.materialListView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialListView1.FullRowSelect = true; + this.materialListView1.HideSelection = false; + this.materialListView1.Location = new System.Drawing.Point(25, 149); + this.materialListView1.MinimumSize = new System.Drawing.Size(200, 100); + this.materialListView1.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialListView1.MouseState = MaterialSkin.MouseState.OUT; + this.materialListView1.Name = "materialListView1"; + this.materialListView1.OwnerDraw = true; + this.materialListView1.Scrollable = false; + this.materialListView1.Size = new System.Drawing.Size(547, 100); + this.materialListView1.TabIndex = 0; + this.materialListView1.UseCompatibleStateImageBehavior = false; + this.materialListView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Dessert (100g serving)"; + this.columnHeader1.Width = 200; + // + // columnHeader2 + // + this.columnHeader2.Text = "Calories"; + this.columnHeader2.Width = 99; + // + // columnHeader3 + // + this.columnHeader3.Text = "Fat (g)"; + this.columnHeader3.Width = 94; + // + // columnHeader4 + // + this.columnHeader4.Text = "Protein (g)"; + this.columnHeader4.Width = 154; + // + // tabPage5 + // + this.tabPage5.BackColor = System.Drawing.Color.White; + this.tabPage5.Controls.Add(this.materialSlider1); + this.tabPage5.Controls.Add(this.materialLabel49); + this.tabPage5.Controls.Add(this.materialFlatButton2); + this.tabPage5.Controls.Add(this.materialLabel50); + this.tabPage5.Controls.Add(this.materialLabel2); + this.tabPage5.Controls.Add(this.MaterialButton2); + this.tabPage5.Controls.Add(this.materialProgressBar1); + this.tabPage5.Controls.Add(this.materialLabel29); + this.tabPage5.ImageKey = "round_report_problem_white_24dp.png"; + this.tabPage5.Location = new System.Drawing.Point(4, 31); + this.tabPage5.Name = "tabPage5"; + this.tabPage5.Padding = new System.Windows.Forms.Padding(3); + this.tabPage5.Size = new System.Drawing.Size(1015, 520); + this.tabPage5.TabIndex = 4; + this.tabPage5.Text = "نوار پیشرفت"; + // + // materialSlider1 + // + this.materialSlider1.Depth = 0; + this.materialSlider1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialSlider1.Location = new System.Drawing.Point(32, 327); + this.materialSlider1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialSlider1.Name = "materialSlider1"; + this.materialSlider1.Size = new System.Drawing.Size(300, 40); + this.materialSlider1.TabIndex = 66; + this.materialSlider1.Text = "materialSlider1"; + this.materialSlider1.ValueSuffix = "%"; + // + // materialLabel49 + // + this.materialLabel49.AutoSize = true; + this.materialLabel49.Depth = 0; + this.materialLabel49.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel49.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel49.Location = new System.Drawing.Point(32, 234); + this.materialLabel49.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel49.Name = "materialLabel49"; + this.materialLabel49.Size = new System.Drawing.Size(109, 51); + this.materialLabel49.TabIndex = 65; + this.materialLabel49.Text = "Slider"; + // + // materialFlatButton2 + // + this.materialFlatButton2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialFlatButton2.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialFlatButton2.Depth = 0; + this.materialFlatButton2.HighEmphasis = false; + this.materialFlatButton2.Icon = null; + this.materialFlatButton2.Location = new System.Drawing.Point(29, 156); + this.materialFlatButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialFlatButton2.MouseState = MaterialSkin.MouseState.HOVER; + this.materialFlatButton2.Name = "materialFlatButton2"; + this.materialFlatButton2.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialFlatButton2.Size = new System.Drawing.Size(80, 36); + this.materialFlatButton2.TabIndex = 1; + this.materialFlatButton2.Text = "Remove"; + this.materialFlatButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; + this.materialFlatButton2.UseAccentColor = false; + this.materialFlatButton2.UseVisualStyleBackColor = true; + this.materialFlatButton2.Click += new System.EventHandler(this.materialFlatButton4_Click); + // + // materialLabel50 + // + this.materialLabel50.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.materialLabel50.Depth = 0; + this.materialLabel50.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel50.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel50.Location = new System.Drawing.Point(29, 292); + this.materialLabel50.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel50.Name = "materialLabel50"; + this.materialLabel50.Size = new System.Drawing.Size(821, 32); + this.materialLabel50.TabIndex = 3; + this.materialLabel50.Text = "Sliders allow users to make selections from a range of values"; + // + // materialLabel2 + // + this.materialLabel2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.materialLabel2.Depth = 0; + this.materialLabel2.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel2.Location = new System.Drawing.Point(29, 76); + this.materialLabel2.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel2.Name = "materialLabel2"; + this.materialLabel2.Size = new System.Drawing.Size(821, 63); + this.materialLabel2.TabIndex = 3; + this.materialLabel2.Text = "Here we\'re showcasing the progressbar\r\nThis control is planned be improved with a" + + "nimation and more status types\r\n"; + // + // MaterialButton2 + // + this.MaterialButton2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.MaterialButton2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.MaterialButton2.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.MaterialButton2.Depth = 0; + this.MaterialButton2.HighEmphasis = true; + this.MaterialButton2.Icon = null; + this.MaterialButton2.Location = new System.Drawing.Point(769, 156); + this.MaterialButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.MaterialButton2.MouseState = MaterialSkin.MouseState.HOVER; + this.MaterialButton2.Name = "MaterialButton2"; + this.MaterialButton2.NoAccentTextColor = System.Drawing.Color.Empty; + this.MaterialButton2.Size = new System.Drawing.Size(64, 36); + this.MaterialButton2.TabIndex = 2; + this.MaterialButton2.Text = "Add"; + this.MaterialButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; + this.MaterialButton2.UseAccentColor = false; + this.MaterialButton2.UseVisualStyleBackColor = true; + this.MaterialButton2.Click += new System.EventHandler(this.MaterialButton2_Click); + // + // materialProgressBar1 + // + this.materialProgressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.materialProgressBar1.Depth = 0; + this.materialProgressBar1.Location = new System.Drawing.Point(29, 142); + this.materialProgressBar1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialProgressBar1.Name = "materialProgressBar1"; + this.materialProgressBar1.Size = new System.Drawing.Size(804, 5); + this.materialProgressBar1.TabIndex = 0; + this.materialProgressBar1.Value = 45; + // + // materialLabel29 + // + this.materialLabel29.AutoSize = true; + this.materialLabel29.Depth = 0; + this.materialLabel29.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel29.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel29.Location = new System.Drawing.Point(32, 14); + this.materialLabel29.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel29.Name = "materialLabel29"; + this.materialLabel29.Size = new System.Drawing.Size(250, 51); + this.materialLabel29.TabIndex = 64; + this.materialLabel29.Text = "Progress bar"; + // + // tabPage6 + // + this.tabPage6.BackColor = System.Drawing.Color.White; + this.tabPage6.Controls.Add(this.materialDivider3); + this.tabPage6.Controls.Add(this.materialDivider2); + this.tabPage6.Controls.Add(this.materialDivider1); + this.tabPage6.Controls.Add(this.materialLabel7); + this.tabPage6.Controls.Add(this.materialCard1); + this.tabPage6.Controls.Add(this.materialTabControl2); + this.tabPage6.Controls.Add(this.materialTabSelector1); + this.tabPage6.Controls.Add(this.materialLabel30); + this.tabPage6.ImageKey = "round_swap_vert_white_24dp.png"; + this.tabPage6.Location = new System.Drawing.Point(4, 31); + this.tabPage6.Margin = new System.Windows.Forms.Padding(0); + this.tabPage6.Name = "tabPage6"; + this.tabPage6.Size = new System.Drawing.Size(1015, 520); + this.tabPage6.TabIndex = 5; + this.tabPage6.Text = "نگهدارنده‌ها"; + // + // materialDivider3 + // + this.materialDivider3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialDivider3.Depth = 0; + this.materialDivider3.Location = new System.Drawing.Point(40, 417); + this.materialDivider3.MouseState = MaterialSkin.MouseState.HOVER; + this.materialDivider3.Name = "materialDivider3"; + this.materialDivider3.Size = new System.Drawing.Size(490, 1); + this.materialDivider3.TabIndex = 70; + this.materialDivider3.Text = "materialDivider3"; + // + // materialDivider2 + // + this.materialDivider2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialDivider2.Depth = 0; + this.materialDivider2.Location = new System.Drawing.Point(40, 128); + this.materialDivider2.MouseState = MaterialSkin.MouseState.HOVER; + this.materialDivider2.Name = "materialDivider2"; + this.materialDivider2.Size = new System.Drawing.Size(1, 290); + this.materialDivider2.TabIndex = 69; + this.materialDivider2.Text = "materialDivider2"; + // + // materialDivider1 + // + this.materialDivider1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialDivider1.Depth = 0; + this.materialDivider1.Location = new System.Drawing.Point(530, 128); + this.materialDivider1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialDivider1.Name = "materialDivider1"; + this.materialDivider1.Size = new System.Drawing.Size(1, 290); + this.materialDivider1.TabIndex = 68; + this.materialDivider1.Text = "materialDivider1"; + // + // materialLabel7 + // + this.materialLabel7.AutoSize = true; + this.materialLabel7.Depth = 0; + this.materialLabel7.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel7.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel7.Location = new System.Drawing.Point(34, 16); + this.materialLabel7.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel7.Name = "materialLabel7"; + this.materialLabel7.Size = new System.Drawing.Size(96, 51); + this.materialLabel7.TabIndex = 67; + this.materialLabel7.Text = "Tabs"; + // + // materialCard1 + // + this.materialCard1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialCard1.Controls.Add(this.materialButton1); + this.materialCard1.Controls.Add(this.materialLabel4); + this.materialCard1.Controls.Add(this.materialLabel38); + this.materialCard1.Depth = 0; + this.materialCard1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialCard1.Location = new System.Drawing.Point(572, 90); + this.materialCard1.Margin = new System.Windows.Forms.Padding(7); + this.materialCard1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialCard1.Name = "materialCard1"; + this.materialCard1.Padding = new System.Windows.Forms.Padding(14); + this.materialCard1.Size = new System.Drawing.Size(301, 187); + this.materialCard1.TabIndex = 66; + // + // materialButton1 + // + this.materialButton1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.materialButton1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.materialButton1.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default; + this.materialButton1.Depth = 0; + this.materialButton1.HighEmphasis = true; + this.materialButton1.Icon = null; + this.materialButton1.Location = new System.Drawing.Point(220, 131); + this.materialButton1.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.materialButton1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialButton1.Name = "materialButton1"; + this.materialButton1.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton1.Size = new System.Drawing.Size(64, 36); + this.materialButton1.TabIndex = 1; + this.materialButton1.Text = "Nice!"; + this.materialButton1.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; + this.materialButton1.UseAccentColor = false; + this.materialButton1.UseVisualStyleBackColor = true; + // + // materialLabel4 + // + this.materialLabel4.AutoSize = true; + this.materialLabel4.Depth = 0; + this.materialLabel4.Font = new System.Drawing.Font("Roboto Medium", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel4.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; + this.materialLabel4.HighEmphasis = true; + this.materialLabel4.Location = new System.Drawing.Point(17, 14); + this.materialLabel4.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel4.Name = "materialLabel4"; + this.materialLabel4.Size = new System.Drawing.Size(212, 22); + this.materialLabel4.TabIndex = 0; + this.materialLabel4.Text = "Cards are also supported!"; + // + // materialLabel38 + // + this.materialLabel38.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.materialLabel38.Depth = 0; + this.materialLabel38.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel38.Location = new System.Drawing.Point(17, 52); + this.materialLabel38.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel38.Name = "materialLabel38"; + this.materialLabel38.Size = new System.Drawing.Size(267, 73); + this.materialLabel38.TabIndex = 2; + this.materialLabel38.Text = "These are simple containers, but with a very nice shadow under them"; + // + // materialTabControl2 + // + this.materialTabControl2.Controls.Add(this.tabPage8); + this.materialTabControl2.Controls.Add(this.tabPage9); + this.materialTabControl2.Depth = 0; + this.materialTabControl2.Location = new System.Drawing.Point(40, 128); + this.materialTabControl2.Margin = new System.Windows.Forms.Padding(0); + this.materialTabControl2.MouseState = MaterialSkin.MouseState.HOVER; + this.materialTabControl2.Multiline = true; + this.materialTabControl2.Name = "materialTabControl2"; + this.materialTabControl2.SelectedIndex = 0; + this.materialTabControl2.Size = new System.Drawing.Size(491, 278); + this.materialTabControl2.TabIndex = 23; + // + // tabPage8 + // + this.tabPage8.BackColor = System.Drawing.Color.White; + this.tabPage8.Controls.Add(this.materialLabel45); + this.tabPage8.Controls.Add(this.materialLabel44); + this.tabPage8.Location = new System.Drawing.Point(4, 22); + this.tabPage8.Name = "tabPage8"; + this.tabPage8.Padding = new System.Windows.Forms.Padding(3); + this.tabPage8.Size = new System.Drawing.Size(483, 252); + this.tabPage8.TabIndex = 0; + this.tabPage8.Text = "FirSt"; + // + // materialLabel45 + // + this.materialLabel45.AutoSize = true; + this.materialLabel45.Depth = 0; + this.materialLabel45.Font = new System.Drawing.Font("Roboto Medium", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel45.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; + this.materialLabel45.HighEmphasis = true; + this.materialLabel45.Location = new System.Drawing.Point(15, 14); + this.materialLabel45.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel45.Name = "materialLabel45"; + this.materialLabel45.Size = new System.Drawing.Size(160, 22); + this.materialLabel45.TabIndex = 4; + this.materialLabel45.Text = "Tabs are supported"; + // + // materialLabel44 + // + this.materialLabel44.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.materialLabel44.Depth = 0; + this.materialLabel44.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel44.Location = new System.Drawing.Point(15, 55); + this.materialLabel44.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel44.Name = "materialLabel44"; + this.materialLabel44.Size = new System.Drawing.Size(446, 179); + this.materialLabel44.TabIndex = 3; + this.materialLabel44.Text = "However, in accordance with the Material Design principles, tabs should NOT be us" + + "ed together with the Drawer menu, chose one or the other :)\r\n\r\nTry \'em!"; + // + // tabPage9 + // + this.tabPage9.BackColor = System.Drawing.Color.White; + this.tabPage9.Controls.Add(this.materialLabel10); + this.tabPage9.Location = new System.Drawing.Point(4, 22); + this.tabPage9.Name = "tabPage9"; + this.tabPage9.Padding = new System.Windows.Forms.Padding(3); + this.tabPage9.Size = new System.Drawing.Size(483, 252); + this.tabPage9.TabIndex = 1; + this.tabPage9.Text = "seConD"; + // + // materialLabel10 + // + this.materialLabel10.AutoSize = true; + this.materialLabel10.Depth = 0; + this.materialLabel10.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel10.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel10.HighEmphasis = true; + this.materialLabel10.Location = new System.Drawing.Point(6, 7); + this.materialLabel10.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel10.Name = "materialLabel10"; + this.materialLabel10.Size = new System.Drawing.Size(431, 51); + this.materialLabel10.TabIndex = 1; + this.materialLabel10.Text = "Everything is possible!"; + this.materialLabel10.UseAccent = true; + // + // materialTabSelector1 + // + this.materialTabSelector1.BaseTabControl = this.materialTabControl2; + this.materialTabSelector1.CharacterCasing = MaterialSkin.Controls.MaterialTabSelector.CustomCharacterCasing.Proper; + this.materialTabSelector1.Depth = 0; + this.materialTabSelector1.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialTabSelector1.Location = new System.Drawing.Point(40, 90); + this.materialTabSelector1.Margin = new System.Windows.Forms.Padding(0); + this.materialTabSelector1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialTabSelector1.Name = "materialTabSelector1"; + this.materialTabSelector1.Size = new System.Drawing.Size(491, 38); + this.materialTabSelector1.TabIndex = 24; + this.materialTabSelector1.Text = "materialTabSelector1"; + // + // materialLabel30 + // + this.materialLabel30.AutoSize = true; + this.materialLabel30.Depth = 0; + this.materialLabel30.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel30.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel30.Location = new System.Drawing.Point(562, 16); + this.materialLabel30.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel30.Name = "materialLabel30"; + this.materialLabel30.Size = new System.Drawing.Size(113, 51); + this.materialLabel30.TabIndex = 65; + this.materialLabel30.Text = "Cards"; + // + // tabPage10 + // + this.tabPage10.BackColor = System.Drawing.Color.White; + this.tabPage10.Controls.Add(this.materialLabel55); + this.tabPage10.Controls.Add(this.materialLabel48); + this.tabPage10.Controls.Add(this.materialLabel47); + this.tabPage10.Controls.Add(this.materialLabel46); + this.tabPage10.Controls.Add(this.materialListBox3); + this.tabPage10.Controls.Add(this.materialListBox2); + this.tabPage10.Controls.Add(this.materialListBox1); + this.tabPage10.ImageKey = "round_bookmark_white_24dp.png"; + this.tabPage10.Location = new System.Drawing.Point(4, 31); + this.tabPage10.Name = "tabPage10"; + this.tabPage10.Size = new System.Drawing.Size(1015, 520); + this.tabPage10.TabIndex = 7; + this.tabPage10.Text = "کادر فهرست"; + // + // materialLabel55 + // + this.materialLabel55.AutoSize = true; + this.materialLabel55.Depth = 0; + this.materialLabel55.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel55.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel55.Location = new System.Drawing.Point(28, 18); + this.materialLabel55.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel55.Name = "materialLabel55"; + this.materialLabel55.Size = new System.Drawing.Size(140, 51); + this.materialLabel55.TabIndex = 63; + this.materialLabel55.Text = "Listbox"; + // + // materialLabel48 + // + this.materialLabel48.AutoSize = true; + this.materialLabel48.Depth = 0; + this.materialLabel48.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel48.Location = new System.Drawing.Point(587, 98); + this.materialLabel48.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel48.Name = "materialLabel48"; + this.materialLabel48.Size = new System.Drawing.Size(121, 17); + this.materialLabel48.TabIndex = 3; + this.materialLabel48.Text = "ListBox three lines"; + // + // materialLabel47 + // + this.materialLabel47.AutoSize = true; + this.materialLabel47.Depth = 0; + this.materialLabel47.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel47.Location = new System.Drawing.Point(314, 98); + this.materialLabel47.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel47.Name = "materialLabel47"; + this.materialLabel47.Size = new System.Drawing.Size(111, 17); + this.materialLabel47.TabIndex = 3; + this.materialLabel47.Text = "ListBox two lines"; + // + // materialLabel46 + // + this.materialLabel46.AutoSize = true; + this.materialLabel46.Depth = 0; + this.materialLabel46.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel46.Location = new System.Drawing.Point(49, 98); + this.materialLabel46.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel46.Name = "materialLabel46"; + this.materialLabel46.Size = new System.Drawing.Size(117, 17); + this.materialLabel46.TabIndex = 3; + this.materialLabel46.Text = "ListBox single line"; + // + // materialListBox3 + // + this.materialListBox3.BackColor = System.Drawing.Color.White; + this.materialListBox3.BorderColor = System.Drawing.Color.LightGray; + this.materialListBox3.Depth = 0; + this.materialListBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + materialListBoxItem1.SecondaryText = "A very very long secondary text to display 1 "; + materialListBoxItem1.Tag = null; + materialListBoxItem1.Text = "ListBoxItem1"; + materialListBoxItem2.SecondaryText = "A very very long secondary text to display 2"; + materialListBoxItem2.Tag = null; + materialListBoxItem2.Text = "ListBoxItem2"; + materialListBoxItem3.SecondaryText = "A very very long secondary text to display 3"; + materialListBoxItem3.Tag = null; + materialListBoxItem3.Text = "ListBoxItem3"; + materialListBoxItem4.SecondaryText = "A very very long secondary text to display 4"; + materialListBoxItem4.Tag = null; + materialListBoxItem4.Text = "ListBoxItem4"; + materialListBoxItem5.SecondaryText = "A very very long secondary text to display 5"; + materialListBoxItem5.Tag = null; + materialListBoxItem5.Text = "ListBoxItem5"; + materialListBoxItem6.SecondaryText = "A very very long secondary text to display 6"; + materialListBoxItem6.Tag = null; + materialListBoxItem6.Text = "ListBoxItem6"; + this.materialListBox3.Items.Add(materialListBoxItem1); + this.materialListBox3.Items.Add(materialListBoxItem2); + this.materialListBox3.Items.Add(materialListBoxItem3); + this.materialListBox3.Items.Add(materialListBoxItem4); + this.materialListBox3.Items.Add(materialListBoxItem5); + this.materialListBox3.Items.Add(materialListBoxItem6); + this.materialListBox3.Location = new System.Drawing.Point(579, 132); + this.materialListBox3.MouseState = MaterialSkin.MouseState.HOVER; + this.materialListBox3.Name = "materialListBox3"; + this.materialListBox3.SelectedIndex = -1; + this.materialListBox3.SelectedItem = null; + this.materialListBox3.Size = new System.Drawing.Size(200, 160); + this.materialListBox3.Style = MaterialSkin.Controls.MaterialListBox.ListBoxStyle.ThreeLine; + this.materialListBox3.TabIndex = 2; + // + // materialListBox2 + // + this.materialListBox2.BackColor = System.Drawing.Color.White; + this.materialListBox2.BorderColor = System.Drawing.Color.LightGray; + this.materialListBox2.Depth = 0; + this.materialListBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + materialListBoxItem7.SecondaryText = "Secondary text1"; + materialListBoxItem7.Tag = null; + materialListBoxItem7.Text = "ListBoxItem1"; + materialListBoxItem8.SecondaryText = "Secondary text2"; + materialListBoxItem8.Tag = null; + materialListBoxItem8.Text = "ListBoxItem2"; + materialListBoxItem9.SecondaryText = "Secondary text3"; + materialListBoxItem9.Tag = null; + materialListBoxItem9.Text = "ListBoxItem3"; + materialListBoxItem10.SecondaryText = "Secondary text4"; + materialListBoxItem10.Tag = null; + materialListBoxItem10.Text = "ListBoxItem4"; + materialListBoxItem11.SecondaryText = "Secondary text5"; + materialListBoxItem11.Tag = null; + materialListBoxItem11.Text = "ListBoxItem5"; + materialListBoxItem12.SecondaryText = "Secondary text6"; + materialListBoxItem12.Tag = null; + materialListBoxItem12.Text = "ListBoxItem6"; + this.materialListBox2.Items.Add(materialListBoxItem7); + this.materialListBox2.Items.Add(materialListBoxItem8); + this.materialListBox2.Items.Add(materialListBoxItem9); + this.materialListBox2.Items.Add(materialListBoxItem10); + this.materialListBox2.Items.Add(materialListBoxItem11); + this.materialListBox2.Items.Add(materialListBoxItem12); + this.materialListBox2.Location = new System.Drawing.Point(306, 132); + this.materialListBox2.MouseState = MaterialSkin.MouseState.HOVER; + this.materialListBox2.Name = "materialListBox2"; + this.materialListBox2.SelectedIndex = -1; + this.materialListBox2.SelectedItem = null; + this.materialListBox2.Size = new System.Drawing.Size(200, 160); + this.materialListBox2.Style = MaterialSkin.Controls.MaterialListBox.ListBoxStyle.TwoLine; + this.materialListBox2.TabIndex = 1; + this.materialListBox2.UseAccentColor = true; + // + // materialListBox1 + // + this.materialListBox1.BackColor = System.Drawing.Color.White; + this.materialListBox1.BorderColor = System.Drawing.Color.LightGray; + this.materialListBox1.Depth = 0; + this.materialListBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + materialListBoxItem13.SecondaryText = ""; + materialListBoxItem13.Tag = null; + materialListBoxItem13.Text = "ListBoxItem1"; + materialListBoxItem14.SecondaryText = ""; + materialListBoxItem14.Tag = null; + materialListBoxItem14.Text = "ListBoxItem2"; + materialListBoxItem15.SecondaryText = ""; + materialListBoxItem15.Tag = null; + materialListBoxItem15.Text = "ListBoxItem3"; + materialListBoxItem16.SecondaryText = ""; + materialListBoxItem16.Tag = null; + materialListBoxItem16.Text = "ListBoxItem4"; + materialListBoxItem17.SecondaryText = ""; + materialListBoxItem17.Tag = null; + materialListBoxItem17.Text = "ListBoxItem5"; + materialListBoxItem18.SecondaryText = ""; + materialListBoxItem18.Tag = null; + materialListBoxItem18.Text = "ListBoxItem6"; + this.materialListBox1.Items.Add(materialListBoxItem13); + this.materialListBox1.Items.Add(materialListBoxItem14); + this.materialListBox1.Items.Add(materialListBoxItem15); + this.materialListBox1.Items.Add(materialListBoxItem16); + this.materialListBox1.Items.Add(materialListBoxItem17); + this.materialListBox1.Items.Add(materialListBoxItem18); + this.materialListBox1.Location = new System.Drawing.Point(38, 132); + this.materialListBox1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialListBox1.Name = "materialListBox1"; + this.materialListBox1.SelectedIndex = -1; + this.materialListBox1.SelectedItem = null; + this.materialListBox1.Size = new System.Drawing.Size(200, 160); + this.materialListBox1.TabIndex = 0; + // + // tabPage11 + // + this.tabPage11.BackColor = System.Drawing.Color.White; + this.tabPage11.Controls.Add(this.flowLayoutPanel1); + this.tabPage11.ImageKey = "round_http_white_24dp.png"; + this.tabPage11.Location = new System.Drawing.Point(4, 31); + this.tabPage11.Name = "tabPage11"; + this.tabPage11.Size = new System.Drawing.Size(1015, 520); + this.tabPage11.TabIndex = 8; + this.tabPage11.Text = "پنل توسعه"; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.flowLayoutPanel1.AutoScroll = true; + this.flowLayoutPanel1.Controls.Add(this.materialExpansionPanel1); + this.flowLayoutPanel1.Controls.Add(this.materialExpansionPanel2); + this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; + this.flowLayoutPanel1.Location = new System.Drawing.Point(3, 3); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Size = new System.Drawing.Size(561, 541); + this.flowLayoutPanel1.TabIndex = 0; + this.flowLayoutPanel1.WrapContents = false; + // + // materialExpansionPanel1 + // + this.materialExpansionPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialExpansionPanel1.Controls.Add(this.materialLabel51); + this.materialExpansionPanel1.Depth = 0; + this.materialExpansionPanel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialExpansionPanel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialExpansionPanel1.Location = new System.Drawing.Point(22, 16); + this.materialExpansionPanel1.Margin = new System.Windows.Forms.Padding(16); + this.materialExpansionPanel1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialExpansionPanel1.Name = "materialExpansionPanel1"; + this.materialExpansionPanel1.Padding = new System.Windows.Forms.Padding(24, 64, 24, 16); + this.materialExpansionPanel1.Size = new System.Drawing.Size(523, 240); + this.materialExpansionPanel1.TabIndex = 0; + this.materialExpansionPanel1.Title = "Expansion panel"; + // + // materialLabel51 + // + this.materialLabel51.Depth = 0; + this.materialLabel51.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel51.Location = new System.Drawing.Point(28, 68); + this.materialLabel51.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel51.Name = "materialLabel51"; + this.materialLabel51.Size = new System.Drawing.Size(468, 64); + this.materialLabel51.TabIndex = 2; + this.materialLabel51.Text = "An expansion panel is a lightweight container that may either stand alone or be c" + + "onnected to a larger surface, such as a card."; + // + // materialExpansionPanel2 + // + this.materialExpansionPanel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialExpansionPanel2.Collapse = true; + this.materialExpansionPanel2.Depth = 0; + this.materialExpansionPanel2.Description = "With accent color"; + this.materialExpansionPanel2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialExpansionPanel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialExpansionPanel2.Location = new System.Drawing.Point(22, 273); + this.materialExpansionPanel2.Margin = new System.Windows.Forms.Padding(16, 1, 16, 0); + this.materialExpansionPanel2.MouseState = MaterialSkin.MouseState.HOVER; + this.materialExpansionPanel2.Name = "materialExpansionPanel2"; + this.materialExpansionPanel2.Padding = new System.Windows.Forms.Padding(24, 64, 24, 16); + this.materialExpansionPanel2.Size = new System.Drawing.Size(523, 48); + this.materialExpansionPanel2.TabIndex = 2; + this.materialExpansionPanel2.Title = "Expansion panel"; + this.materialExpansionPanel2.UseAccentColor = true; + // + // tabPage12 + // + this.tabPage12.BackColor = System.Drawing.Color.White; + this.tabPage12.Controls.Add(this.materialLabel58); + this.tabPage12.Controls.Add(this.materialLabel43); + this.tabPage12.Controls.Add(this.materialLabel42); + this.tabPage12.Controls.Add(this.materialLabel41); + this.tabPage12.Controls.Add(this.materialLabel40); + this.tabPage12.Controls.Add(this.materialLabel22); + this.tabPage12.Controls.Add(this.materialLabel21); + this.tabPage12.Controls.Add(this.materialLabel20); + this.tabPage12.Controls.Add(this.materialLabel19); + this.tabPage12.Controls.Add(this.materialLabel18); + this.tabPage12.Controls.Add(this.materialLabel17); + this.tabPage12.Controls.Add(this.materialLabel1); + this.tabPage12.Controls.Add(this.materialLabel16); + this.tabPage12.Controls.Add(this.materialLabel15); + this.tabPage12.Controls.Add(this.materialLabel14); + this.tabPage12.Controls.Add(this.materialLabel13); + this.tabPage12.Controls.Add(this.materialLabel12); + this.tabPage12.Controls.Add(this.materialLabel11); + this.tabPage12.Controls.Add(this.materialLabel54); + this.tabPage12.ImageKey = "round_phone_black_24dp.png"; + this.tabPage12.Location = new System.Drawing.Point(4, 31); + this.tabPage12.Name = "tabPage12"; + this.tabPage12.Size = new System.Drawing.Size(1015, 520); + this.tabPage12.TabIndex = 9; + this.tabPage12.Text = "برچسب"; + // + // materialLabel58 + // + this.materialLabel58.AutoSize = true; + this.materialLabel58.Depth = 0; + this.materialLabel58.Font = new System.Drawing.Font("Roboto", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel58.FontType = MaterialSkin.MaterialSkinManager.fontType.SubtleEmphasis; + this.materialLabel58.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel58.Location = new System.Drawing.Point(492, 483); + this.materialLabel58.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel58.Name = "materialLabel58"; + this.materialLabel58.Size = new System.Drawing.Size(80, 13); + this.materialLabel58.TabIndex = 84; + this.materialLabel58.Text = "SubtleEmphasis"; + // + // materialLabel43 + // + this.materialLabel43.Depth = 0; + this.materialLabel43.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel43.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel43.Location = new System.Drawing.Point(675, 283); + this.materialLabel43.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel43.Name = "materialLabel43"; + this.materialLabel43.Size = new System.Drawing.Size(245, 103); + this.materialLabel43.TabIndex = 83; + this.materialLabel43.Text = "Want to make a multiline label?\r\nNo problem! just disable the AutoSize Property\r\n" + + "TextAlign should work too"; + this.materialLabel43.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // materialLabel42 + // + this.materialLabel42.AutoSize = true; + this.materialLabel42.Depth = 0; + this.materialLabel42.Enabled = false; + this.materialLabel42.Font = new System.Drawing.Font("Roboto Medium", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel42.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; + this.materialLabel42.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel42.Location = new System.Drawing.Point(643, 468); + this.materialLabel42.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel42.Name = "materialLabel42"; + this.materialLabel42.Size = new System.Drawing.Size(240, 15); + this.materialLabel42.TabIndex = 82; + this.materialLabel42.Text = "This is a label is disabled (use it for hints!)"; + // + // materialLabel41 + // + this.materialLabel41.AutoSize = true; + this.materialLabel41.Depth = 0; + this.materialLabel41.Font = new System.Drawing.Font("Roboto Medium", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel41.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; + this.materialLabel41.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel41.HighEmphasis = true; + this.materialLabel41.Location = new System.Drawing.Point(643, 441); + this.materialLabel41.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel41.Name = "materialLabel41"; + this.materialLabel41.Size = new System.Drawing.Size(275, 15); + this.materialLabel41.TabIndex = 81; + this.materialLabel41.Text = "This is a label with High Emphasis + Use Accent"; + this.materialLabel41.UseAccent = true; + // + // materialLabel40 + // + this.materialLabel40.AutoSize = true; + this.materialLabel40.Depth = 0; + this.materialLabel40.Font = new System.Drawing.Font("Roboto Medium", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel40.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; + this.materialLabel40.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel40.HighEmphasis = true; + this.materialLabel40.Location = new System.Drawing.Point(643, 415); + this.materialLabel40.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel40.Name = "materialLabel40"; + this.materialLabel40.Size = new System.Drawing.Size(195, 15); + this.materialLabel40.TabIndex = 80; + this.materialLabel40.Text = "This is a label with High Emphasis"; + // + // materialLabel22 + // + this.materialLabel22.AutoSize = true; + this.materialLabel22.Depth = 0; + this.materialLabel22.Font = new System.Drawing.Font("Roboto", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel22.FontType = MaterialSkin.MaterialSkinManager.fontType.Overline; + this.materialLabel22.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel22.Location = new System.Drawing.Point(492, 468); + this.materialLabel22.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel22.Name = "materialLabel22"; + this.materialLabel22.Size = new System.Drawing.Size(42, 10); + this.materialLabel22.TabIndex = 79; + this.materialLabel22.Text = "OVERLINE"; + // + // materialLabel21 + // + this.materialLabel21.AutoSize = true; + this.materialLabel21.Depth = 0; + this.materialLabel21.Font = new System.Drawing.Font("Roboto", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel21.FontType = MaterialSkin.MaterialSkinManager.fontType.Caption; + this.materialLabel21.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel21.Location = new System.Drawing.Point(492, 448); + this.materialLabel21.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel21.Name = "materialLabel21"; + this.materialLabel21.Size = new System.Drawing.Size(39, 13); + this.materialLabel21.TabIndex = 78; + this.materialLabel21.Text = "Caption"; + // + // materialLabel20 + // + this.materialLabel20.AutoSize = true; + this.materialLabel20.Depth = 0; + this.materialLabel20.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel20.FontType = MaterialSkin.MaterialSkinManager.fontType.Button; + this.materialLabel20.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel20.Location = new System.Drawing.Point(492, 428); + this.materialLabel20.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel20.Name = "materialLabel20"; + this.materialLabel20.Size = new System.Drawing.Size(51, 15); + this.materialLabel20.TabIndex = 77; + this.materialLabel20.Text = "BUTTON"; + // + // materialLabel19 + // + this.materialLabel19.AutoSize = true; + this.materialLabel19.Depth = 0; + this.materialLabel19.Font = new System.Drawing.Font("Roboto", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel19.FontType = MaterialSkin.MaterialSkinManager.fontType.Body2; + this.materialLabel19.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel19.Location = new System.Drawing.Point(492, 407); + this.materialLabel19.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel19.Name = "materialLabel19"; + this.materialLabel19.Size = new System.Drawing.Size(40, 15); + this.materialLabel19.TabIndex = 76; + this.materialLabel19.Text = "Body 2"; + // + // materialLabel18 + // + this.materialLabel18.AutoSize = true; + this.materialLabel18.Depth = 0; + this.materialLabel18.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel18.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel18.Location = new System.Drawing.Point(492, 384); + this.materialLabel18.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel18.Name = "materialLabel18"; + this.materialLabel18.Size = new System.Drawing.Size(42, 17); + this.materialLabel18.TabIndex = 75; + this.materialLabel18.Text = "Body 1"; + // + // materialLabel17 + // + this.materialLabel17.AutoSize = true; + this.materialLabel17.Depth = 0; + this.materialLabel17.Font = new System.Drawing.Font("Roboto Medium", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel17.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; + this.materialLabel17.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel17.Location = new System.Drawing.Point(492, 365); + this.materialLabel17.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel17.Name = "materialLabel17"; + this.materialLabel17.Size = new System.Drawing.Size(55, 15); + this.materialLabel17.TabIndex = 74; + this.materialLabel17.Text = "Subtitle 2"; + // + // materialLabel1 + // + this.materialLabel1.AutoSize = true; + this.materialLabel1.Depth = 0; + this.materialLabel1.Font = new System.Drawing.Font("Roboto", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel1.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle1; + this.materialLabel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel1.Location = new System.Drawing.Point(491, 342); + this.materialLabel1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel1.Name = "materialLabel1"; + this.materialLabel1.Size = new System.Drawing.Size(59, 17); + this.materialLabel1.TabIndex = 73; + this.materialLabel1.Text = "Subtitle 1"; + // + // materialLabel16 + // + this.materialLabel16.AutoSize = true; + this.materialLabel16.Depth = 0; + this.materialLabel16.Font = new System.Drawing.Font("Roboto Medium", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel16.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; + this.materialLabel16.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel16.Location = new System.Drawing.Point(491, 314); + this.materialLabel16.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel16.Name = "materialLabel16"; + this.materialLabel16.Size = new System.Drawing.Size(84, 22); + this.materialLabel16.TabIndex = 72; + this.materialLabel16.Text = "Heading 6"; + // + // materialLabel15 + // + this.materialLabel15.AutoSize = true; + this.materialLabel15.Depth = 0; + this.materialLabel15.Font = new System.Drawing.Font("Roboto", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel15.FontType = MaterialSkin.MaterialSkinManager.fontType.H5; + this.materialLabel15.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel15.Location = new System.Drawing.Point(490, 283); + this.materialLabel15.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel15.Name = "materialLabel15"; + this.materialLabel15.Size = new System.Drawing.Size(100, 26); + this.materialLabel15.TabIndex = 71; + this.materialLabel15.Text = "Heading 5"; + // + // materialLabel14 + // + this.materialLabel14.AutoSize = true; + this.materialLabel14.Depth = 0; + this.materialLabel14.Font = new System.Drawing.Font("Roboto", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel14.FontType = MaterialSkin.MaterialSkinManager.fontType.H4; + this.materialLabel14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel14.Location = new System.Drawing.Point(488, 242); + this.materialLabel14.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel14.Name = "materialLabel14"; + this.materialLabel14.Size = new System.Drawing.Size(143, 36); + this.materialLabel14.TabIndex = 70; + this.materialLabel14.Text = "Heading 4"; + // + // materialLabel13 + // + this.materialLabel13.AutoSize = true; + this.materialLabel13.Depth = 0; + this.materialLabel13.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel13.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel13.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel13.Location = new System.Drawing.Point(485, 185); + this.materialLabel13.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel13.Name = "materialLabel13"; + this.materialLabel13.Size = new System.Drawing.Size(203, 51); + this.materialLabel13.TabIndex = 69; + this.materialLabel13.Text = "Heading 3"; + // + // materialLabel12 + // + this.materialLabel12.AutoSize = true; + this.materialLabel12.Depth = 0; + this.materialLabel12.Font = new System.Drawing.Font("Roboto Light", 60F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel12.FontType = MaterialSkin.MaterialSkinManager.fontType.H2; + this.materialLabel12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel12.Location = new System.Drawing.Point(482, 114); + this.materialLabel12.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel12.Name = "materialLabel12"; + this.materialLabel12.Size = new System.Drawing.Size(243, 64); + this.materialLabel12.TabIndex = 68; + this.materialLabel12.Text = "Heading 2"; + // + // materialLabel11 + // + this.materialLabel11.AutoSize = true; + this.materialLabel11.Depth = 0; + this.materialLabel11.Font = new System.Drawing.Font("Roboto Light", 96F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel11.FontType = MaterialSkin.MaterialSkinManager.fontType.H1; + this.materialLabel11.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialLabel11.Location = new System.Drawing.Point(475, 18); + this.materialLabel11.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel11.Name = "materialLabel11"; + this.materialLabel11.Size = new System.Drawing.Size(366, 102); + this.materialLabel11.TabIndex = 67; + this.materialLabel11.Text = "Heading 1"; + // + // materialLabel54 + // + this.materialLabel54.AutoSize = true; + this.materialLabel54.Depth = 0; + this.materialLabel54.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel54.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; + this.materialLabel54.Location = new System.Drawing.Point(28, 18); + this.materialLabel54.MouseState = MaterialSkin.MouseState.HOVER; + this.materialLabel54.Name = "materialLabel54"; + this.materialLabel54.Size = new System.Drawing.Size(104, 51); + this.materialLabel54.TabIndex = 63; + this.materialLabel54.Text = "Label"; + // + // menuIconList + // + this.menuIconList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("menuIconList.ImageStream"))); + this.menuIconList.TransparentColor = System.Drawing.Color.Transparent; + this.menuIconList.Images.SetKeyName(0, "round_assessment_white_24dp.png"); + this.menuIconList.Images.SetKeyName(1, "round_backup_white_24dp.png"); + this.menuIconList.Images.SetKeyName(2, "round_bluetooth_white_24dp.png"); + this.menuIconList.Images.SetKeyName(3, "round_bookmark_white_24dp.png"); + this.menuIconList.Images.SetKeyName(4, "round_build_white_24dp.png"); + this.menuIconList.Images.SetKeyName(5, "round_gps_fixed_white_24dp.png"); + this.menuIconList.Images.SetKeyName(6, "round_http_white_24dp.png"); + this.menuIconList.Images.SetKeyName(7, "round_report_problem_white_24dp.png"); + this.menuIconList.Images.SetKeyName(8, "round_swap_vert_white_24dp.png"); + this.menuIconList.Images.SetKeyName(9, "round_phone_black_24dp.png"); + this.menuIconList.Images.SetKeyName(10, "round_push_pin_black_24dp.png"); + this.menuIconList.Images.SetKeyName(11, "round_mail_outline_black_24dp.png"); + this.menuIconList.Images.SetKeyName(12, "round_person_black_24dp.png"); + this.menuIconList.Images.SetKeyName(13, "round_add_a_photo_black_24dp.png"); + this.menuIconList.Images.SetKeyName(14, "round_alternate_email_black_24dp.png"); + this.menuIconList.Images.SetKeyName(15, "round_cancel_black_24dp.png"); + this.menuIconList.Images.SetKeyName(16, "round_error_black_24dp.png"); + this.menuIconList.Images.SetKeyName(17, "round_event_black_24dp.png"); + // + // materialContextMenuStrip1 + // + this.materialContextMenuStrip1.BackColor = System.Drawing.Color.White; + this.materialContextMenuStrip1.Depth = 0; + this.materialContextMenuStrip1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F); + this.materialContextMenuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); + this.materialContextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.item1ToolStripMenuItem, + this.disabledItemToolStripMenuItem, + this.item2ToolStripMenuItem, + this.toolStripSeparator1, + this.item3ToolStripMenuItem}); + this.materialContextMenuStrip1.Margin = new System.Windows.Forms.Padding(16, 8, 16, 8); + this.materialContextMenuStrip1.MouseState = MaterialSkin.MouseState.HOVER; + this.materialContextMenuStrip1.Name = "materialContextMenuStrip1"; + this.materialContextMenuStrip1.Size = new System.Drawing.Size(166, 130); + // + // item1ToolStripMenuItem + // + this.item1ToolStripMenuItem.AutoSize = false; + this.item1ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.subItem1ToolStripMenuItem, + this.subItem2ToolStripMenuItem}); + this.item1ToolStripMenuItem.Name = "item1ToolStripMenuItem"; + this.item1ToolStripMenuItem.Size = new System.Drawing.Size(170, 30); + this.item1ToolStripMenuItem.Text = "Item 1"; + // + // subItem1ToolStripMenuItem + // + this.subItem1ToolStripMenuItem.AutoSize = false; + this.subItem1ToolStripMenuItem.Name = "subItem1ToolStripMenuItem"; + this.subItem1ToolStripMenuItem.Size = new System.Drawing.Size(152, 30); + this.subItem1ToolStripMenuItem.Text = "SubItem 1"; + // + // subItem2ToolStripMenuItem + // + this.subItem2ToolStripMenuItem.AutoSize = false; + this.subItem2ToolStripMenuItem.Name = "subItem2ToolStripMenuItem"; + this.subItem2ToolStripMenuItem.Size = new System.Drawing.Size(152, 30); + this.subItem2ToolStripMenuItem.Text = "SubItem 2"; + // + // disabledItemToolStripMenuItem + // + this.disabledItemToolStripMenuItem.AutoSize = false; + this.disabledItemToolStripMenuItem.Enabled = false; + this.disabledItemToolStripMenuItem.Name = "disabledItemToolStripMenuItem"; + this.disabledItemToolStripMenuItem.Size = new System.Drawing.Size(170, 30); + this.disabledItemToolStripMenuItem.Text = "Disabled item"; + // + // item2ToolStripMenuItem + // + this.item2ToolStripMenuItem.AutoSize = false; + this.item2ToolStripMenuItem.Name = "item2ToolStripMenuItem"; + this.item2ToolStripMenuItem.Size = new System.Drawing.Size(170, 30); + this.item2ToolStripMenuItem.Text = "Item 2"; + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(162, 6); + // + // item3ToolStripMenuItem + // + this.item3ToolStripMenuItem.AutoSize = false; + this.item3ToolStripMenuItem.Name = "item3ToolStripMenuItem"; + this.item3ToolStripMenuItem.Size = new System.Drawing.Size(170, 30); + this.item3ToolStripMenuItem.Text = "Item 3"; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(1029, 622); + this.ContextMenuStrip = this.materialContextMenuStrip1; + this.Controls.Add(this.materialTabControl1); + this.DrawerShowIconsWhenHidden = true; + this.DrawerTabControl = this.materialTabControl1; + this.MinimumSize = new System.Drawing.Size(300, 200); + this.Name = "MainForm"; + this.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.RightToLeftLayout = true; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "دمو راستچین متریال‌اسکین"; + this.Move += new System.EventHandler(this.MainForm_Move); + this.materialTabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + this.tabPage7.ResumeLayout(false); + this.tabPage7.PerformLayout(); + this.tabPage2.ResumeLayout(false); + this.tabPage2.PerformLayout(); + this.tabPage3.ResumeLayout(false); + this.tabPage3.PerformLayout(); + this.tabPage4.ResumeLayout(false); + this.tabPage4.PerformLayout(); + this.tabPage5.ResumeLayout(false); + this.tabPage5.PerformLayout(); + this.tabPage6.ResumeLayout(false); + this.tabPage6.PerformLayout(); + this.materialCard1.ResumeLayout(false); + this.materialCard1.PerformLayout(); + this.materialTabControl2.ResumeLayout(false); + this.tabPage8.ResumeLayout(false); + this.tabPage8.PerformLayout(); + this.tabPage9.ResumeLayout(false); + this.tabPage9.PerformLayout(); + this.tabPage10.ResumeLayout(false); + this.tabPage10.PerformLayout(); + this.tabPage11.ResumeLayout(false); + this.flowLayoutPanel1.ResumeLayout(false); + this.materialExpansionPanel1.ResumeLayout(false); + this.materialExpansionPanel1.PerformLayout(); + this.tabPage12.ResumeLayout(false); + this.tabPage12.PerformLayout(); + this.materialContextMenuStrip1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private MaterialSkin.Controls.MaterialCheckbox materialCheckbox1; + private MaterialSkin.Controls.MaterialCheckbox materialCheckbox3; + private MaterialTabControl materialTabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.TabPage tabPage3; + private MaterialCheckbox materialCheckBox5; + private MaterialContextMenuStrip materialContextMenuStrip1; + private MaterialSkin.Controls.MaterialToolStripMenuItem item1ToolStripMenuItem; + private MaterialSkin.Controls.MaterialToolStripMenuItem subItem1ToolStripMenuItem; + private MaterialSkin.Controls.MaterialToolStripMenuItem subItem2ToolStripMenuItem; + private MaterialSkin.Controls.MaterialToolStripMenuItem item2ToolStripMenuItem; + private MaterialSkin.Controls.MaterialToolStripMenuItem item3ToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripMenuItem disabledItemToolStripMenuItem; + private MaterialCheckbox materialCheckBox6; + private TabPage tabPage4; + private TabPage tabPage5; + private MaterialProgressBar materialProgressBar1; + private MaterialButton MaterialButton2; + private MaterialLabel materialLabel2; + private TabPage tabPage6; + private ImageList menuIconList; + private MaterialListView materialListView1; + private ColumnHeader columnHeader1; + private ColumnHeader columnHeader2; + private ColumnHeader columnHeader3; + private ColumnHeader columnHeader4; + private MaterialButton materialFlatButton2; + private TabPage tabPage7; + private MaterialLabel materialLabel8; + private MaterialButton materialButton19; + private MaterialButton materialButton20; + private MaterialButton materialButton21; + private MaterialButton materialButton5; + private MaterialButton materialButton8; + private MaterialButton materialButton9; + private MaterialButton materialButton18; + private MaterialButton materialButton17; + private MaterialButton materialButton16; + private MaterialButton materialButton15; + private MaterialButton materialButton14; + private MaterialButton materialButton13; + private MaterialButton materialButton12; + private MaterialButton materialButton11; + private MaterialButton materialButton10; + private MaterialButton materialButton24; + private MaterialButton materialButton22; + private MaterialTabSelector materialTabSelector1; + private MaterialTabControl materialTabControl2; + private TabPage tabPage8; + private MaterialLabel materialLabel9; + private TabPage tabPage9; + private MaterialLabel materialLabel10; + private MaterialButton MaterialButton4; + private MaterialButton materialButton7; + private MaterialSwitch materialSwitch3; + private MaterialSwitch materialSwitch2; + private MaterialSwitch materialSwitch1; + private MaterialSwitch materialSwitch4; + private MaterialSwitch materialSwitch6; + private MaterialSwitch materialSwitch5; + private MaterialRadioButton materialRadioButton4; + private MaterialRadioButton materialRadioButton1; + private MaterialRadioButton materialRadioButton2; + private MaterialLabel materialLabel23; + private MaterialTextBox2 materialTextBox2; + private MaterialTextBox2 materialTextBox1; + private MaterialTextBox2 materialSingleLineTextField2; + private MaterialLabel materialLabel24; + private MaterialLabel materialLabel25; + private MaterialLabel materialLabel26; + private MaterialLabel materialLabel27; + private MaterialLabel materialLabel28; + private MaterialLabel materialLabel29; + private MaterialLabel materialLabel30; + private MaterialSwitch materialSwitch7; + private MaterialRadioButton materialRadioButton5; + private MaterialFloatingActionButton materialFloatingActionButton1; + private MaterialLabel materialLabel3; + private MaterialLabel materialLabel34; + private MaterialLabel materialLabel33; + private MaterialLabel materialLabel32; + private MaterialLabel materialLabel31; + private MaterialLabel materialLabel37; + private MaterialLabel materialLabel36; + private MaterialLabel materialLabel35; + private MaterialLabel materialLabel5; + private MaterialCheckedListBox materialCheckedListBox1; + private MaterialButton MaterialButton3; + private MaterialLabel materialLabel6; + private MaterialLabel materialLabel39; + private MaterialButton materialButton23; + private MaterialTextBox2 materialTextBox3; + private MaterialTextBox2 materialTextBox5; + private MaterialTextBox2 materialTextBox4; + private MaterialSwitch materialSwitch8; + private MaterialLabel materialLabel7; + private MaterialLabel materialLabel45; + private MaterialLabel materialLabel44; + private MaterialDivider materialDivider1; + private MaterialCard materialCard1; + private MaterialButton materialButton1; + private MaterialLabel materialLabel4; + private MaterialLabel materialLabel38; + private MaterialDivider materialDivider3; + private MaterialDivider materialDivider2; + private TabPage tabPage10; + private MaterialLabel materialLabel47; + private MaterialLabel materialLabel46; + private MaterialListBox materialListBox3; + private MaterialListBox materialListBox2; + private MaterialListBox materialListBox1; + private MaterialLabel materialLabel48; + private MaterialSlider materialSlider1; + private MaterialLabel materialLabel49; + private MaterialLabel materialLabel50; + private TabPage tabPage11; + private FlowLayoutPanel flowLayoutPanel1; + private MaterialExpansionPanel materialExpansionPanel1; + private MaterialExpansionPanel materialExpansionPanel2; + private MaterialLabel materialLabel51; + private MaterialSwitch materialSwitch9; + private MaterialListBox materialListBoxFormStyle; + private MaterialLabel materialLabel52; + private MaterialButton materialButton6; + private MaterialLabel materialLabel53; + private MaterialMultiLineTextBox2 materialMultiLineTextBox21; + private TabPage tabPage12; + private MaterialLabel materialLabel55; + private MaterialLabel materialLabel43; + private MaterialLabel materialLabel42; + private MaterialLabel materialLabel41; + private MaterialLabel materialLabel40; + private MaterialLabel materialLabel22; + private MaterialLabel materialLabel21; + private MaterialLabel materialLabel20; + private MaterialLabel materialLabel19; + private MaterialLabel materialLabel18; + private MaterialLabel materialLabel17; + private MaterialLabel materialLabel1; + private MaterialLabel materialLabel16; + private MaterialLabel materialLabel15; + private MaterialLabel materialLabel14; + private MaterialLabel materialLabel13; + private MaterialLabel materialLabel12; + private MaterialLabel materialLabel11; + private MaterialLabel materialLabel54; + private MaterialTextBox2 materialTextBox21; + private MaterialLabel materialLabel56; + private MaterialSwitch materialSwitch12; + private MaterialSwitch materialSwitch11; + private MaterialSwitch materialSwitch10; + private MaterialSwitch materialSwitch13; + private MaterialSwitch materialSwitch15; + private MaterialSwitch materialSwitch14; + private MaterialSwitch msReadOnly; + private MaterialMaskedTextBox materialMaskedTextBox1; + private MaterialButton materialButton25; + private MaterialLabel materialLabel57; + private MaterialSwitch materialSwitch16; + private MaterialLabel materialLabel58; + } +} diff --git a/MaterialSkinExample.RTL/MainForm.cs b/MaterialSkinExample.RTL/MainForm.cs new file mode 100644 index 00000000..c2c0440f --- /dev/null +++ b/MaterialSkinExample.RTL/MainForm.cs @@ -0,0 +1,311 @@ +using MaterialSkin; +using MaterialSkin.Controls; +using System; +using System.Text; +using System.Windows.Forms; + +namespace MaterialSkinExample +{ + public partial class MainForm : MaterialForm + { + private readonly MaterialSkinManager materialSkinManager; + + public MainForm(RightToLeft RightToLeft = RightToLeft.Yes) : base(RightToLeft) + { + base.RightToLeft = RightToLeft.Yes; + InitializeComponent(); + // Initialize MaterialSkinManager + materialSkinManager = MaterialSkinManager.Instance; + + materialSkinManager.RightToLeft = RightToLeft; + // Set this to false to disable backcolor enforcing on non-materialSkin components + // This HAS to be set before the AddFormToManage() + materialSkinManager.EnforceBackcolorOnAllComponents = true; + + // MaterialSkinManager properties + materialSkinManager.AddFormToManage(this); + materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT; + materialSkinManager.ColorScheme = new ColorScheme(Primary.Indigo500, Primary.Indigo700, Primary.Indigo100, Accent.Pink200, TextShade.WHITE); + + // Add dummy data to the listview + seedListView(); + materialCheckedListBox1.Items.Add("Item1", false); + materialCheckedListBox1.Items.Add("Item2", true); + materialCheckedListBox1.Items.Add("Item3", true); + materialCheckedListBox1.Items.Add("Item4", false); + materialCheckedListBox1.Items.Add("Item5", true); + materialCheckedListBox1.Items.Add("Item6", false); + materialCheckedListBox1.Items.Add("Item7", false); + + + materialListBoxFormStyle.Clear(); + foreach (var FormStyleItem in Enum.GetNames(typeof(MaterialForm.FormStyles))) + { + materialListBoxFormStyle.AddItem(FormStyleItem); + if (FormStyleItem == this.FormStyle.ToString()) materialListBoxFormStyle.SelectedIndex = materialListBoxFormStyle.Items.Count-1; + } + + materialListBoxFormStyle.SelectedIndexChanged += (sender, args) => + { + MaterialForm.FormStyles SelectedStyle = (MaterialForm.FormStyles)Enum.Parse(typeof(MaterialForm.FormStyles), args.Text); + if (this.FormStyle!= SelectedStyle) this.FormStyle = SelectedStyle; + }; + + materialMaskedTextBox1.ValidatingType = typeof(System.Int16); + + } + + private void seedListView() + { + //Define + var data = new[] + { + new []{"Lollipop", "392", "0.2", "0"}, + new []{"KitKat", "518", "26.0", "7"}, + new []{"Ice cream sandwich", "237", "9.0", "4.3"}, + new []{"Jelly Bean", "375", "0.0", "0.0"}, + new []{"Honeycomb", "408", "3.2", "6.5"} + }; + + //Add + foreach (string[] version in data) + { + var item = new ListViewItem(version); + materialListView1.Items.Add(item); + } + } + + private void materialButton1_Click(object sender, EventArgs e) + { + materialSkinManager.Theme = materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? MaterialSkinManager.Themes.LIGHT : MaterialSkinManager.Themes.DARK; + updateColor(); + } + + private int colorSchemeIndex; + + private void MaterialButton1_Click(object sender, EventArgs e) + { + colorSchemeIndex++; + if (colorSchemeIndex > 2) + colorSchemeIndex = 0; + updateColor(); + } + + private void updateColor() + { + //These are just example color schemes + switch (colorSchemeIndex) + { + case 0: + materialSkinManager.ColorScheme = new ColorScheme( + materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? Primary.Teal500 : Primary.Indigo500, + materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? Primary.Teal700 : Primary.Indigo700, + materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ? Primary.Teal200 : Primary.Indigo100, + Accent.Pink200, + TextShade.WHITE); + break; + + case 1: + materialSkinManager.ColorScheme = new ColorScheme( + Primary.Green600, + Primary.Green700, + Primary.Green200, + Accent.Red100, + TextShade.WHITE); + break; + + case 2: + materialSkinManager.ColorScheme = new ColorScheme( + Primary.BlueGrey800, + Primary.BlueGrey900, + Primary.BlueGrey500, + Accent.LightBlue200, + TextShade.WHITE); + break; + } + Invalidate(); + } + + private void MaterialButton2_Click(object sender, EventArgs e) + { + materialProgressBar1.Value = Math.Min(materialProgressBar1.Value + 10, 100); + } + + private void materialFlatButton4_Click(object sender, EventArgs e) + { + materialProgressBar1.Value = Math.Max(materialProgressBar1.Value - 10, 0); + } + + private void materialSwitch4_CheckedChanged(object sender, EventArgs e) + { + DrawerUseColors = materialSwitch4.Checked; + } + + private void MaterialSwitch5_CheckedChanged(object sender, EventArgs e) + { + DrawerHighlightWithAccent = materialSwitch5.Checked; + } + + private void MaterialSwitch6_CheckedChanged(object sender, EventArgs e) + { + DrawerBackgroundWithAccent = materialSwitch6.Checked; + } + + private void materialSwitch8_CheckedChanged(object sender, EventArgs e) + { + DrawerShowIconsWhenHidden = materialSwitch8.Checked; + } + + private void MaterialButton3_Click(object sender, EventArgs e) + { + var builder = new StringBuilder("Batch operation report:\n\n"); + var random = new Random(); + var result = 0; + + for (int i = 0; i < 200; i++) + { + result = random.Next(1000); + + if (result < 950) + { + builder.AppendFormat(" - Task {0}: Operation completed sucessfully.\n", i); + } + else + { + builder.AppendFormat(" - Task {0}: Operation failed! A very very very very very very very very very very very very serious error has occured during this sub-operation. The errorcode is: {1}).\n", i, result); + } + } + + var batchOperationResults = builder.ToString(); + batchOperationResults = "Simple text"; + var mresult = MaterialMessageBox.Show(batchOperationResults, "Batch Operation", MessageBoxButtons.YesNoCancel, FlexibleMaterialForm.ButtonsPosition.Center); + //materialComboBox1.Items.Add("this is a very long string"); + } + + private void materialSwitch9_CheckedChanged(object sender, EventArgs e) + { + DrawerAutoShow = materialSwitch9.Checked; + } + + private void materialTextBox2_LeadingIconClick(object sender, EventArgs e) + { + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("Leading Icon Click"); + SnackBarMessage.Show(this); + + } + + private void materialButton6_Click(object sender, EventArgs e) + { + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("SnackBar started succesfully", "OK", true); + SnackBarMessage.Show(this); + } + + private void materialSwitch10_CheckedChanged(object sender, EventArgs e) + { + materialTextBox21.UseAccent = materialSwitch10.Checked; + } + + private void materialSwitch11_CheckedChanged(object sender, EventArgs e) + { + materialTextBox21.UseTallSize = materialSwitch11.Checked; + } + + private void materialSwitch12_CheckedChanged(object sender, EventArgs e) + { + if (materialSwitch12.Checked) + materialTextBox21.Hint = "Hint text"; + else + materialTextBox21.Hint = ""; + } + + private void materialComboBox7_SelectionChangeCommitted(object sender, EventArgs e) + { + //if (materialComboBox7.SelectedIndex == 1) + //{ + // materialTextBox21.PrefixSuffix = MaterialTextBox2.PrefixSuffixTypes.Prefix; + //} + //else if (materialComboBox7.SelectedIndex == 2) + //{ + // materialTextBox21.PrefixSuffix = MaterialTextBox2.PrefixSuffixTypes.Suffix; + //} + //else + //{ + // materialTextBox21.PrefixSuffix = MaterialTextBox2.PrefixSuffixTypes.None; + //} + } + + private void materialSwitch13_CheckedChanged(object sender, EventArgs e) + { + materialTextBox21.UseSystemPasswordChar = materialSwitch13.Checked; + + } + + private void materialSwitch14_CheckedChanged(object sender, EventArgs e) + { + if (materialSwitch14.Checked) + materialTextBox21.LeadingIcon = global::MaterialSkinExample.Properties.Resources.baseline_fingerprint_black_24dp; + else + materialTextBox21.LeadingIcon = null; + } + + private void materialSwitch15_CheckedChanged(object sender, EventArgs e) + { + if (materialSwitch15.Checked) + materialTextBox21.TrailingIcon = global::MaterialSkinExample.Properties.Resources.baseline_build_black_24dp; + else + materialTextBox21.TrailingIcon = null; + } + + private void materialTextBox21_LeadingIconClick(object sender, EventArgs e) + { + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("Leading Icon Click"); + SnackBarMessage.Show(this); + } + + private void materialTextBox21_TrailingIconClick(object sender, EventArgs e) + { + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("Trailing Icon Click"); + SnackBarMessage.Show(this); + } + + private void MsReadOnly_CheckedChanged(object sender, EventArgs e) + { + materialCheckbox1.ReadOnly = msReadOnly.Checked; + } + + private void materialButton25_Click(object sender, EventArgs e) + { + MaterialDialog materialDialog = new MaterialDialog(this,"Dialog Title", "Dialogs inform users about a task and can contain critical information, require decisions, or involve multiple tasks.", "OK", true, "Cancel"); + DialogResult result = materialDialog.ShowDialog(this); + + MaterialSnackBar SnackBarMessage = new MaterialSnackBar(result.ToString(),750); + SnackBarMessage.Show(this); + + } + + private void materialSwitch16_CheckedChanged(object sender, EventArgs e) + { + materialTextBox21.ShowAssistiveText = materialSwitch16.Checked; + } + + private void tabPage1_Click(object sender, EventArgs e) + { + + } + + private void materialLabel52_Click(object sender, EventArgs e) + { + + } + + private void materialTextBox1_Click(object sender, EventArgs e) + { + + } + + private void MainForm_Move(object sender, EventArgs e) + { + + } + } +} diff --git a/MaterialSkinExample.RTL/MainForm.resx b/MaterialSkinExample.RTL/MainForm.resx new file mode 100644 index 00000000..9222fdf0 --- /dev/null +++ b/MaterialSkinExample.RTL/MainForm.resx @@ -0,0 +1,375 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Here is a list of every variant a Material Button can be. Contained button's shadows are only drawn at run-time. +Click on them and checkout those sweet animations. Oh yeah, the buttons follow the theme and colors, try changing those too. +Normally the buttons should be AutoSize = true, but for the sake of my OCD, it's set to false here +If any of the buttons looks weird while designing, change the tab background color from transparent to white. + + + 219, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABq + NgAAAk1TRnQBSQFMAgEBEgIAAQcBAAEHARgBAAEYAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABYAMA + AXgDAAEBAQABIAYAAbT/AP8A/wAxAAMMARADPQFnA1gBuwNcAecDAAH/AwAB/wNdAeMDVAGvAzkBXwMG + AQgoAAMvAUkDXQHjAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DXQHjAy4BSOQAAz4BawNgAesDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNc + Ad8DNQFXJAADXQHiAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wNdAeLcAAMJAQwDUgGjAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/A0oBiwMDAQQfAAH/AwAB/wMnATswAAMnATsDAAH/AwAB/9wAA1IBowMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0cBgx8A + Af8DAAH/OwAB/wMAAf/YAAM+AWsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AzABSxsAAf8DAAH/HAADWQHEAwAB/wMAAf8DAAH/A1kBxAsA + Af8DAAH/1AADDAEQA2AB6wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/A10B1wMDAQQUAAMGAf4DAAH/HwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/9QA + Az0BZwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DLgFHFAADBgH+AwAB/x8AAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf/UAANYAbsDAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DTwGbFAADBgH+AwAB/x8AAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf/UAANcAecDAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DWQHHFAADBgH+AwAB/xwAA1kBxAMAAf8DAAH/AwAB/wNZAcQLAAH/AwAB/9cAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNAAW8DQAFvAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DXQHjFAADBgH+AwAB/zsAAf8DAAH/1wAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXAHfFAADKwH9AwAB/zsAAf8DAAH/ + 1AADXQHjAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wNZAcMUAAMrAf0DAAH/OwAB/wMAAf/UAANUAa8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0sBjxQAAysB/QMAAf87AAH/ + AwAB/9QAAzkBXwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DKgFAFAADKwH9AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf/UAAMGAQgDXAHfAwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wNLAY8DSwGPAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNZAccYAAMrAf0DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/9gAAzUBVwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMhAfsDKAE8GAADKwH8AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf/cAANKAYsDAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wM+AWscAANfAeADAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A10B4twAAwMBBANH + AYMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMhAfsDPgFrIAADLgFI + A10B4wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + A10B4wMuAUjkAAMwAUsDXQHXAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DWQHHAygBPDMA + Af8DAAH/IwAB/wMAAf/0AAMDAQQDLgFHA08BmwNZAccDXAHfA1wB3wNZAcMDSwGPAyoBQDgAA1kBxANZ + AcQgAANZAcQDWQHE/wD/AP8A/wD/AP8A/wBLAAMuAUgDXQHjAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNdAeMDLgFIJAADKwFCA0wBkwNc + AdQDXAHqAwAB/wMAAf8DAAH/AwAB/wNZAcQ4AAMEAQUDNQFWA1ABpANfAdsDTwHzA08B8wNfAdsDUAGk + AzUBVgMEAQWIAANdAeIDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHiHAADJwE6A1oBygMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/A1kBxDQAAzMBUgNcAdwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNc + AdwDMwFSKAADWQHEAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DWQHEHwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8YAANCAXYDIQH7AwAB/wNaAeQDRgF+AyYBOAMN + ARFAAAMBAQIDSgGLAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + A0oBiwMBAQIjAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/HwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNWAbMDKgFAAwkBDAMJAQwDKgFA + A1YBswMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8UAANDAXgDAAH/AysB/ANHAYIDBAEGTAADSgGL + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSgGL + IAADXAHfAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DXAHfHwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0QBehgAA0QBegMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/xAAAywBQwMGAf4DKwH8AzIBUVAAAzMBUgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DMwFSHAADMgFRAykB+gMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMpAfoDMgFRHwAB/wMAAf8DAAH/AwAB/wMA + Af8DVQGyBAADBAEGA0kBhwNhAeYDYQHmA0kBhwMEAQYEAANVAbIDAAH/AwAB/wMAAf8DAAH/AwAB/wwA + AwMBBANfAdsDAAH/A0IBdAwAAzEBTQNZAb4DUgHwA1kB8gNYAcEDMAFMBAADOQFfA1wB0QMpAfoDXAHO + AzUBVhQAAwQBBgNcAdwDAAH/AwAB/wMAAf8DWwHeA0cBgwNcAeoDAAH/AwAB/wMAAf8DAAH/A1oB6QNH + AYMDXAHfAwAB/wMAAf8DAAH/A1wB3AMEAQYcAAMkATYDWAHBAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wNYAcEDJAE2IwAB/wMAAf8DAAH/AwAB/wMAAf8DKgFABAADSQGIAwAB/wMA + Af8DAAH/AwAB/wNJAYgEAAMqAUADAAH/AwAB/wMAAf8DAAH/AwAB/wwAAzEBTgMAAf8DWwHWAwIBAwgA + A0gBhQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNYAcEDAAH/AwAB/wMAAf8DAAH/AwYB/gMzAVIQAAM1 + AVUDAAH/AwAB/wMAAf8DAAH/A0cBgwQAAx8BLANaAekDAAH/AwAB/wNaAekDHgErBAADSAGFAwAB/wMA + Af8DAAH/AwAB/wM1AVUkAAMZASMDPwFsA1UBsgNbAdgDWQHyAwAB/wNgAeEDVQGyAz8BbAMZASMrAAH/ + AwAB/wMAAf8DAAH/AwAB/wMKAQ0EAANeAeUDAAH/AwAB/wMAAf8DAAH/A14B5QQAAwoBDQMAAf8DAAH/ + AwAB/wMAAf8DAAH/DAADUgGmAwAB/wNAAXAIAAMwAUsDAAH/A0EB+QNDAXcDEgEYAxIBGANDAXcDQQH5 + AwAB/wMAAf8DSAGGAwsBDwNIAYYDAAH/A1wBzBAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DXAHqAx8BLAQA + Ax8BLANaAekDWgHpAx4BKwQAAx8BLQNgAesDAAH/AwAB/wMAAf8DAAH/A1EBpXcAAf8DAAH/AwAB/wMA + Af8DAAH/AwoBDQQAA14B5QMAAf8DAAH/AwAB/wMAAf8DXgHlBAADCgENAwAB/wMAAf8DAAH/AwAB/wMA + Af8MAANeAdUDAAH/AyIBMggAA1YBuQMAAf8DQgF2EAADQgF2AwAB/wMAAf8DBgEIBAADBgEIAwAB/wM+ + AfgQAANbAdgDAAH/AwAB/wMAAf8DAAH/AwAB/wNaAekDHwEsBAADHwEsAx8BLAQAAx8BLQNcAeoDAAH/ + AwAB/wMAAf8DAAH/AwAB/wNbAdh3AAH/AwAB/wMAAf8DAAH/AwAB/wMqAUAEAANJAYgDAAH/AwAB/wMA + Af8DAAH/A0kBiAQAAyoBQAMAAf8DAAH/AwAB/wMAAf8DAAH/DAADTwHzAwAB/wMPARQIAANWAfEDAAH/ + AxIBGRAAAxIBGQMAAf8DBgH+CwABAQMAAf8DBgH+EAADWQHyAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + A1oB6QMfASwIAAMfASwDXAHqAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kB8iwAAxQBHANSAaYDYQHm + A2EB5gNSAaYDFAEcMwAB/wMAAf8DAAH/AwAB/wMAAf8DVQGyBAADBAEGA0kBhwNhAeYDYQHmA0kBhwME + AQYEAANVAbIDAAH/AwAB/wMAAf8DAAH/AwAB/wwAA2AB6wMAAf8DCgEOCAADVgHxAwAB/wMSARkQAAMS + ARkDAAH/A18B4AgAAw0BEQMAAf8DYAHrEAADWQHyAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1wB6gMf + ASwIAAMfASwDWgHpAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kB8igAAxQBHANdAe0DAAH/AwAB/wMA + Af8DAAH/A10B7QMUARwvAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DRAF6GAADRAF6AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/DAADXgHaAwAB/wMkATYIAANWAbwDAAH/A0IBdhAAA0IBdgMAAf8DVQGtCAADJgE4 + AwAB/wNbAdAQAANbAdgDAAH/AwAB/wMAAf8DAAH/AwAB/wNcAeoDHwEtBAADHwEsAx8BLAQAAx8BLANa + AekDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAdgoAANSAaYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUgGm + LAADGQEjAxQBHANXAbcDAAH/AwAB/wMAAf8DAAH/A1YBswMqAUADCQEMAwkBDAMqAUADVgGzAwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1ABngMAAf8DQgF1CAADLwFKAwAB/wNBAfkDQwF3AxIBGAMS + ARgDQwF3A0EB+QMrAf0DIgEyCAADRgF/AwAB/wNMAZIQAANRAaUDAAH/AwAB/wMAAf8DAAH/A2AB6wMf + AS0EAAMeASsDWgHpA1oB6QMfASwEAAMfASwDXAHqAwAB/wMAAf8DAAH/AwAB/wNRAaUoAANeAeUDAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DXgHlLAADWQHEA1kBxAMVAR0DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAAzUBVgMAAf8DXwHg + AwMBBAgAA0cBggMAAf8DAAH/AwAB/wMAAf8DAAH/AysB/QNAAW8IAAMFAQcDXQHjAwAB/wMrAUIQAAM1 + AVUDAAH/AwAB/wMAAf8DAAH/A0gBhQQAAx4BKwNaAekDAAH/AwAB/wNaAekDHwEsBAADRwGDAwAB/wMA + Af8DAAH/AwAB/wM1AVUoAANeAeUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXgHlLwAB/wMAAf8HAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + A10B4gwAAwIBAwNbAdkDAAH/A0YBfgwAAy8BSQNYAbsDTwHzA1EB9wNUAawDKwFCDAADRwGCAwAB/wNc + AckUAAMEAQYDXAHcAwAB/wMAAf8DAAH/A1wB3wNHAYMDWgHpAwAB/wMAAf8DAAH/AwAB/wNcAeoDRwGD + A1sB3gMAAf8DAAH/AwAB/wNcAdwDBAEGKAADUgGmAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1IBpi8A + Af8DAAH/CAADFAEcA1cBtwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wNdAeMDLgFIEAADMgFQAwYB/gMrAf0DMgFRKAADMwFTAysB/AMhAfsDJwE6GAADMwFSAwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMz + AVIsAAMUARwDXQHtAwAB/wMAAf8DAAH/AwAB/wNdAe0DFAEcIAADWQHEAwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/A1kBxAMVAR0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwYB/gM5AV8oAANJAYcDAAH/ + AysB/QNGAX4DAwEEGAADAwEEA0IBdgMrAfwDAAH/A0IBdSAAA0oBiwMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0oBizQAAxQBHANSAaYDYQHmA2EB5gNS + AaYDFAEcJAADWQHEAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxAMZASMDAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DXAHqAzsBYywAAwEBAgNJAYcDAAH/AwAB/wNgAeEDQgF1AyQBNQMLAQ8DEQEXAyQBNQNB + AXMDXQHXAwAB/wMAAf8DQwF3JAADAQECA0oBiwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wNKAYsDAQECfwAB/wMAAf9kAAMyAVADWwHZAwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DXwHbAysBQjAAAzMBUgNcAdwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wNcAdwDMwFShwAB/wMAAf9oAAMCAQMDNQFWA1ABngNbAdgDXQHjAysB/ANaAdMDUgGmAzEBTgMD + AQQ4AAMEAQUDNQFWA1ABpANfAdsDTwHzA08B8wNfAdsDUAGkAzUBVgMEAQWIAANZAcQDWQHE/wD/AP8A + /wD/AP8AfgADSwGPA0sBj8QAA0oBigNKAYpYAAMKAQ0DOQFfA04BlQNZAb8DXwHoA18B2wMsAUQ0AAMX + ASADAAH/A1wB38AAA0gBhAj/A0gBhEwAAycBOwNUAasDUQH3AwAB/wMAAf8DAAH/AwAB/wMAAf8DXgHd + NAADFwEgAwAB/wNcAd80AAMuAUgDXQHjAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNdAeMDLgFIOAADQAFvEP8DQAFvQAADFgEeA1IBpgMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AysB/DQAAxcBIAMAAf8DXAHfNAADXQHiAwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/A10B4jQAAx4BKxj/AyABLjgAAzEETwHzAwAB/wNZAfIDXAHcAwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AyEB+zQAAxcBIAMAAf8DXAHfNwAB/wMAAf8DJwE7OAADJwE7AwAB/wMAAf9AAAj/QAADQwF4 + AysB/QMAAf8DVAGrAxQBGwMQARUDWgHTAwAB/wMAAf8DAAH/AwAB/wMAAf8DWwHLNAADFwEgAwAB/wNc + Ad83AAH/AwAB/0MAAf8DAAH/QAAI/zwAA0MBdwMAAf8DKwH8A0ABcQwAAxABFQNYAbsDAAH/A1gB7wNd + AdIDUQGlAxkBIzQAAxcBIAMAAf8DXAHfNAADBgH+AwAB/0MAAf8DAAH/QAAI/zgAAzIBUAMrAf0DKwH8 + AzUBVWAAAxcBIAMAAf8DXAHfNAADBgH+AwAB/0MAAf8DAAH/KAADXQHSA10B0hAACP80AAMWAR8DTwHz + AwAB/wNAAXFQAANLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DSwGPHAADBgH+AwAB/0MAAf8DAAH/KAAI/xAACP80AANSAacDAAH/A1QBq1QAA1YBswMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNOAZccAAMGAf4DAAH/GAADFQEd + A0YBgANGAYADFQEdGwAB/wMAAf8oAAj/EAAI/zAAAycBOwMGAf4DWQHyAxQBG1QAAwYBCANKAYsDIQH7 + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUQH3A0EBcwMDAQQcAAMGAf4DAAH/EAADAgED + A0ABcANZAfIDAAH/AwAB/wNZAfIDQAFwAwIBAxMAAf8DAAH/KAAI/xAAA2AB1ANeAdUwAANUAasDAAH/ + A18B2wMQARVcAANLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNAAW8kAAMrAf0DAAH/ + DAADIwEzA1wBzAMAAf8DXQHiAzEBTwMxAU8DXQHiAwAB/wNcAcwDIwEzDwAB/wMAAf8oAAj/RAADCgEO + A1EB9wMAAf8DAAH/A1oB0wMQARVYAAMmATgDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMU + ARwkAAMrAf0DAAH/BAADCgENA0sBjwMrAfwDKwH8A0sBjwMKAQ0IAAMKAQ0DSwGPAysB/AMrAfwDSwGP + AwoBDQcAAf8DAAH/KAAI/0QAAzkBXwMAAf8DAAH/AwAB/wMAAf8DVgG8XwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8oAAMrAf0DAAH/AzEBTwNdAeIDAAH/A1wBzAMjATMYAAMjATMDXAHMAwAB/wNd + AeIDMQFPAwAB/wMAAf8oAAj/RAADTgGXAwAB/wMAAf8DAAH/AwAB/wMrAf0DAgEDWwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8oAAMrAf0DAAH/AwAB/wNZAfIDQAFvAwIBAyAAAwIBAwNAAW8DWQHy + AwAB/wMAAf8DAAH/HAADHwEsFP8DfwH+Ax8BLDgAA1kBvwMAAf8DAAH/AwAB/wMAAf8DWQHyXwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8oAAMrAf0DAAH/A1QBrwMVAR0wAAMVAR0DVAGvAwAB/wMA + Af8gAANAAW8Q/wM9AWg8AANhAeYDAAH/AwAB/wMAAf8DAAH/A1wB1F8AAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/KAADXAHfAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A10B4iQAA0gBhAj/A0cBgUAAA1wB3AMAAf8DAAH/ + AwAB/wMAAf8DUgGoXwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8oAAMuAUcDXQHjAwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNd + AeMDLgFIKAADSgGKA0oBikQAAywBQwNbAd4DAAH/AwAB/wNcAckDGQEjVAADSwGPAwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNLAY//AFEAA0ABbwMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DQAFv/wD/AP8A/wD/AEUAAwMBBAMhATADBwEKOAADXQHSA10B0v8A + MQADLQFFA2EB5gT/A1kB9QM6AWE0AAj//wAtAAMrAUIDagH5DP8DqAH9AxABFSQAAyUBNwNWAbYDXQHt + CP8DXQHtA1gBuwM7AWQDBgEIgAADFAEcA1wB30j/A14B3QMTARpAAAMrAUIDXAH4FP8DHwEsHAADFAEb + A1QBrCD/A18B4wMtAUV8AAMWAR4DKwH8SP8DTQH6AxQBHDwAAysBQgNcAfgU/wNhAeIDAwEEGAADHwEs + A2QB5wT/A2QB7ANEAXkDLAFEAxEBFwMQARYDLQFFA0QBeQNdAe0E/wMrAfwDNQFVfAADTAGSSP8DSgGL + PAADKwFCA1wB+BT/A18B8wMmATkYAAMbASYDXQHtBP8DVAGvAw4BExgAAw4BEwNVAbIE/wNcAfgDHQEp + eAADDQERA2EB7hz/CAAc/wNcAeoDCgENOAADKwFCA1wB+BT/A18B8wMkATUcAANcAcwE/wNTAaUoAANT + AaUE/wNcAc18AAM9AWkc/wgAHP8DOwFjOAADKwFCA1wB+BT/A2QB8QMkATUcAAMuAUgE/wNkAecDBgEI + CAADEgEZA1UBtQNdAe0DXQHtA1UBsgMSARkIAAMGAQgDXwHoBP8DLgFHewABAQNeAdU4/wNcAc8DAAEB + NAADKAE8A1wB+BT/A2EB7gMhATAgAANQAZ4E/wNEAXsIAAMQARYDYQHmEP8DYQHmAxABFQgAA0QBegT/ + A1ABnhAAA14B0AM1AVUEAAM1AVUDXgHQCAADNQFVA14B0BAAA14B0AM1AVUIAANeAdADNQFVIAADKQE+ + OP8DJQE3IAADJgE5A0oBjQNcAckDXQHwA2EB4QNOAZgDWQH1FP8DYQHuAx4BKyQAA10B1wT/AyABLggA + A1EBoBj/A1IBoQgAAx8BLQT/A2AB1hAABP8DRwGABAADRwGABP8IAANHAYAE/xAABP8DRwGACAAE/wNH + AYAkAANUAawU/wMgAS8DIAEvFP8DVAGmHwABAQNGAX4s/wNgAesDHgErIAADXQHSDP8DCgENCAADZQHl + GP8DZQHlCAADCgENDP8DXQHSCAAE/wNaAcADRwGAA1oBwAT/CAADRwGABP8QAAT/A0cBgAgAEP8DSQGH + GAADFgEeA1wB+BD/CAAQ/wNcAfgDEgEZHAADRwGCLP8DXwHoAxwBJyQAA2AB1Az/AwkBDAgAA2AB6xj/ + A2AB6wgAAwkBDAz/A14B1QgAFP8IAANHAYAE/xAABP8DRwGACAAE/wNaAcADRwGAA1oBwANqAfkcAANI + AYMQ/wgAEP8DRgF+HAADKQE+LP8DXwHoAxgBIjAAA14B2AT/Ax8BLAgAA1EBoBj/A1IBoQgAAx4BKwT/ + A10B1xAABP8DRwGABAADRwGABP8EAAM1AVYDWgHABP8DRQF9AxIBGQMSARkDRQF9BP8DWgHAAzUBVgQA + BP8DWgHAA0cBgANaAcADXwH7HAADBwEKA2EB5gz/AyABLwMgAS4M/wNhAeEDBQEHHAADUAGdLP8DUgGp + NAADUAGeBP8DRAF6CAADEAEVA2EB5hD/A2QB5wMNAREIAANEAXkE/wNQAZ4QAANeAdADNQFXBAADNQFX + A14B0AQAA14B0Aj/AysB/AMzAVMDMwFTAysB/Aj/A14B0AQAA2AB1Az/A0kBhyAAAzcBWiD/AzUBVSAA + A18B4wz/A1UBsgNWAbYY/wNhAeY0AAMtAUYE/wNkAecDBgEICAADEgEYA1YBswNkAewDZAHsA1YBswMS + ARgIAAMHAQkDZAHnBP8DLQFFjAADXAHJGP8DWAHBJAADYQHuCP8DRgF/CAADSAGDFP8DYgHvNwABAQNc + Ac0E/wNTAaUoAANTAaUE/wNcAc0DAAEBjAADIQEwA38B/hD/A38B/gMdASokAANfAdsE/wNAAXAQAANT + AaUQ/wNcAd84AAMdASkDYgH2BP8DVAGvAw0BEhgAAw0BEgNUAa8E/wNdAe0DGwEmlAADUQGcEP8DTgGY + KAADTAGSAz0BaRQAA1QBphD/A04BmTwAAzQBVAMrAfwE/wNkAewDQwF4AywBRAMPARQDDwEUAywBRAND + AXgDZAHsBP8DZAHnAx4BK5gAAxABFQNnAfII/wNnAfIDDQERKAADBwEKFAADRwGAEP8DqAH9AyIBMkAA + AywBRANfAeMg/wNUAawDEwEaoAADQgFzCP8DQAFwQAADTAGPFP8DRAF5SAADBgEIAzwBZgNYAbsDZAHs + CP8DZAHsA1cBtwMmATioAAMEAQUDYAHUA10B0wMCAQM8AANOAZYQ/wNNAfoDQAFwXAAI//wAAw0BEgNE + AXkDVgG2A1oBwANXAbgDRgF+Ax0BKmAAA2AB1ANeAdX/AP8A/wD/AP8A/wBeAAMxAU0DMgFRmAADMQFP + A10B1zj/A10B1wMxAU+YAANZAfUE/wM/AWw8AANdAcoDOAFcAwQBBSAAAwQBBQM3AVsDXAHPIAADYQHi + QP8DYQHiFAADBQEHAz4BawNeAd08/wNYAbwDMgFRNAAM/wNCAXQ4AAj/A18B6ANHAYADEAEWEAADEQEX + A0YBfwNiAekI/yAASP8QAAMUARsDXgHVTP8DSAGEGAADFAEbAz4BagMLAQ8MAAj/A2oB+QT/A0IBdDQA + EP8DTQH6A1IBpAMjATQDJAE2A1IBowNNAfoQ/yAASP8MAAMBAQIDWQHHVP8DMAFLFAADQwF3BP8DXAHR + Aw4BEwgACP8DLwFKAysB/AT/A0UBfDAAOP8gABD/AyABLwMgAS8I/wMgAS8DIAEvCP8DIAEvAyABLxD/ + DAADOgFiJP8QACT/A1kBwhQAAwcBCgNbAcgE/wNhAdoDEAEWBAAI/wQAAz4Bawj/Ax8BLSwAOP8gABD/ + CAAI/wgACP8IABD/DAADWwHIJP8QACT/A2UB9BgAAwkBDANeAc4E/wNgAd4DEwEaCP8DEAEWA10B1wT/ + A1wB3wMKAQ0sADj/IAAQ/wgACP8IAAj/CAAQ/wwAA2UB9CT/EAAk/wNiAekcAAMLAQ8DXgHOBP8DXAHf + CP8DXgHdBP8DXgHdAxQBGzAAOP8gABD/CAAI/wgACP8DIAEvAyABLhD/DAADTQH6JP8QACT/A1QBryAA + AwsBDwNdAdIQ/wNeAdgDEQEXNAA4/yAAEP8IAAj/CAAg/wwAA1wBzxj/A0MBeCAAA0UBfRj/AyYBOCQA + Aw0BEgNdAdcI/wNgAdQDDwEUOAA4/yAAEP8IAAj/CAAg/wwAA0IBdhz/A0ABcBgAA0ABcBj/A0oBiSgA + Aw0BEgNdAdcI/wNeAdgDDwEUOAA4/yAAEP8DIAEvAyABLgj/CAAg/wwAAwgBCwNdAdcc/wM9AWkQAAM9 + AWkQ/wNkAfEDVAGvAy0BRigAAwsBDwNdAdIQ/wNeAdgDEQEXNAA4/yAAIP8IACD/EAADEAEWA14B0Bz/ + Az0BaQgAAz0BaRT/AyQBNiwAAwsBDwNeAc4E/wNcAd8I/wNfAeME/wNeAd0DFAEbMAA4/yAAIP8IACD/ + FAADAQECAzgBXgNdAcoDKwH8FP8DQQFyA0EBchT/A14B3SwAAwkBDANeAc4E/wNgAd4DEwEaCP8DEgEZ + A10B1wT/A1wB3wMKAQ0sADj/IAAg/wMgAS8DIAEuIP8gAAMsAUQDfwH+LP8DOwFkKAADBwEKA1sByAT/ + A14B1QMQARYEAAj/BAADPgFrCP8DHwEsLAA4/yAASP8kAANCAXUo/wNSAaEsAANEAXkE/wNcAdEDDAEQ + CAAI/wMwAUwDKwH8BP8DQgF0MAA4/yAASP8oAANAAXAc/wNNAfoDQgF0MAADEwEaAz4BagMLAQ8MAAj/ + A1wB+AT/A0IBdDQAOP8gAANhAeRA/wNfAeMsAAMdASoDTgGYA10B0gNlAfQE/wNgAesDSQGIAxUBHUwA + DP8DQgF0OAADYQHkMP8DXwHjIAADMQFPA2AB1jj/A2AB1gMxAU+YAANtAfcE/wM/AWw8AAMxAU8DYAHW + KP8DYAHWAzEBT/8AAQADMQFNAzMBUv8A/wD/AI8AAUIBTQE+BwABPgMAASgDAAFgAwABeAMAAQEBAAEB + BQABoAEFFgAD/wEABv8GAAb/BgAB/gEAAX8B4AEAAQcGAAH8AQABPwHgAQABBwYAAfABAAEPAeMB/wHH + BgAB8AEAAQ8B5wH/AecGAAHgAQABBwHnAfABZwYAAcABGAEDAecB8AFnBgABwAEYAQMB5wHwAWcGAAHA + AQABAwHnAfABZwYAAcABAAEDAecB8AFnBgABwAEAAQMB5wH/AecGAAHAARgBAwHnAf8B5wYAAcABGAED + AecB/wHnBgABwAEYAQMB5wH/AecGAAHAARgBAwHgAQABBwYAAcABAAEHAeABAAEHBgAB4AEAAQcB4AEA + AQcGAAHwAQABDwHgAQABBwYAAfABAAEfAeABAAEHBgAB/AEAAT8B/AH/AT8GAAH+AQAB/wH8Af8BPwYA + Bv8GAAb/BgAb/wHgAQABAQH/AQABfwH+AQABfwP/AeABAAEBAfwBAAF/AfwBAAE/AfABAAEPAeABAAEB + AfgBDwH/AfABAAEPAfABAAEPAeABAAEBAfABfwH/AfABAAEPAfABAAEPAeABPwEBAeEC/wHgAQABBwHw + AQABDwHgAUABgQHDAYEBBwHAAQABAwH4AQABHwHgAUABgQHDAQABAwHAAYEBAwH+AQABfwHgAUABgQHG + AQABAwHAAUIBAwP/AeABQAGBAcYBPAEjAcABJAEDA/8B4AFAAYEBxgE8AWMBwAEYAQMB/wGBAf8B4AFA + AYEBxgE8AWMBwAEYAQMB/wEAAf8B4AE/AQEBxgE8AWMBwAEkAQMB/wEAAf8B4AEAAQEBxgEAAWMBwAFC + AQMB/wEAAf8B4AEAAQEBwwEAAcMBwAGBAQMB/wEAAf8B5AEAAQEBwwGBAccBwAEAAQMB/wEAAf8B5gEA + AQEB4QH/AYcB4AEAAQcB/wEAAf8CAAE/AfABfgEPAfABAAEPAf8BgQH/AgABfwHwAQABHwHwAQABDwP/ + AecC/wH8AQABPwH8AQABPwP/AecC/wH+AQABfwH+AQABfwP/Aecz/wHnBf8B/AL/AfwBBwH/AccF/wH4 + AX8B/wHwAQcB/wHHAf8BwAEAAQMB/wHwAT8B/wHAAQcB/wHHAf8BwAEAAQMB/wHgAR8B/wGAAQcB/wHH + Af8BxwH/AeMB/wH8Av8BAAEHAf8BxwH/Ac8B/wHzAf8B/AH/Af4BHAEHAf8BxwH/Ac8B/wHzAf8B/AH/ + AfwBPwL/AccB/wHPAf8B8wH/ATwB/wH4AX8B/wH4AQABHwHPAf8B8wH/ATwB/wH4Av8B+AEAAR8BzwHD + AfMB/wE8Af8B8AL/AfgBAAEfAc8BAAHzAf8BPAH/AfAC/wH+AQABfwHOAQABcwH/AT8B/wHgAX8B/wH+ + AQABfwHIARgBEwH/AT8B/wHgAX8C/wEAAf8BwAF+AQMB/wE/Af8B4AE/Av8BAAH/AcAB/wEDAfgBBwH/ + AeABfwL/AQAB/wHDAf8BwwH8AQ8B/wHgAX8C/wEAAf8BwAEAAQMB/gEfAf8B4AF/Av8BAAH/AcABAAED + Af8BPwH/AeABfwH/AfwBAAE/Cf8B/AEAAT8p/wHHAf8B5wn/AYMB/wHnCf8BAQH/AQABfwP/AYABAAEB + Af8B/gEBAfwBAAE/A/8BgAEAAQEB/wH8AQEB+AEAAR8D/wHAAQABAwH/AfgBAwHwAX4BDwP/AcABGAED + Af8B8AEHAfEB/wGPA/8B4AEYAQcB/wHgAQ8B4QGBAYcD/wHgAQABBwH/AcABHwHjAQABxwGTATwBzwHw + AQABDwHwAQABPwHjAQABxwGTATwBzwH4AQABHwHAAQABfwGDAQABwQGDATwBwQH4ARgBHwHAAQAB/wGD + AQABwQGDATwBwQH8ARgBPwGAAQEB/wHjAQABxwGSAQABQQH8AQABPwGAAQMB/wHjAQABxwGSAQABQQH+ + AQABfwGAAQMB/wHhAYEBhwT/AQAB/wGGAQMB/wHhAf8BhwT/AQAB/wGPAQMB/wHwAX4BDwT/AYEB/wGf + AQMB/wH4AQABHwT/AYEB/wG+AQMB/wH8AQABPwT/AcMB/wH8AQcB/wH+AQAF/wHDAf8B+AEPAv8B5wf/ + AfABHwL/Aecy/wHnBP8B4AEAAQcE/wHjAf8B+AH/AR8B4AEAAQcBwAEAAQMB/wHhAf8B+AE8AR8B4AEA + AQcBgAEAAQEB+AHgAf8B+AEAAR8B4AEAAQcDAAH4AWABfwH4AQABHwHgAQABBwEAATwBAAH4ASQBPwH4 + AQABHwHhAZkBhwEAATwBAAH8AQABPwH4AQABHwHhAZkBhwEAATwBAAH+AQABfwH4AQABHwHhAZgBBwEA + ATwBAAH/AQAB/wH4AQABHwHhAZgBBwEAAf8BAAH/AYEB/wH4AQABHwHhAZgBBwEAAX4BAQH/AYEB/wH4 + AQABHwHgARgBBwEAATwBAwH/AQAB/wH4AQABHwHgARgBBwGAARgBDwH+AQABfwH4AQABHwHgARgBBwHA + AQABHwH8AQABPwH4AQABHwHgAQABBwH4AQABHwH4ASQBPwH4AQABHwHgAQABBwH8AQABPwH4AWABfwH4 + AQABHwHgAQABBwH+AQABfwH4AeAB/wH4AQABHwHgAQABBwH/AQAC/wHhAf8B+AEAAR8B4AEAAQcE/wHj + Af8B+AEAAR8H/wHnHP8L + + + + 17, 17 + + + 50 + + \ No newline at end of file diff --git a/MaterialSkinExample.RTL/MaterialSkinExample.RTL.csproj b/MaterialSkinExample.RTL/MaterialSkinExample.RTL.csproj new file mode 100644 index 00000000..94068a14 --- /dev/null +++ b/MaterialSkinExample.RTL/MaterialSkinExample.RTL.csproj @@ -0,0 +1,145 @@ + + + + + Debug + AnyCPU + {8E08A8CF-A5DB-41DF-B486-E0E5DE552697} + WinExe + Properties + MaterialSkinExample.RTL + MaterialSkinExample.RTL + v4.6.1 + 512 + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + Form + + + MainForm.cs + + + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + {8eb7611b-68cd-4b8b-987a-11717e2b250c} + MaterialSkin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MaterialSkinExample.RTL/Program.cs b/MaterialSkinExample.RTL/Program.cs new file mode 100644 index 00000000..45164be5 --- /dev/null +++ b/MaterialSkinExample.RTL/Program.cs @@ -0,0 +1,16 @@ +using System; +using System.Windows.Forms; + +namespace MaterialSkinExample +{ + internal static class Program + { + [STAThread] + private static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(true); + Application.Run(new MainForm()); + } + } +} \ No newline at end of file diff --git a/MaterialSkinExample.RTL/Properties/AssemblyInfo.cs b/MaterialSkinExample.RTL/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..798dfc80 --- /dev/null +++ b/MaterialSkinExample.RTL/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MaterialSkinExample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MaterialSkinExample")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b3fe1c46-7ac9-4dc9-bfe7-f66f3136e410")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/MaterialSkinExample.RTL/Properties/Resources.Designer.cs b/MaterialSkinExample.RTL/Properties/Resources.Designer.cs new file mode 100644 index 00000000..eccbad9e --- /dev/null +++ b/MaterialSkinExample.RTL/Properties/Resources.Designer.cs @@ -0,0 +1,243 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MaterialSkinExample.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MaterialSkinExample.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap baseline_bluetooth_black_24dp { + get { + object obj = ResourceManager.GetObject("baseline_bluetooth_black_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap baseline_build_black_24dp { + get { + object obj = ResourceManager.GetObject("baseline_build_black_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap baseline_favorite_border_black_24dp { + get { + object obj = ResourceManager.GetObject("baseline_favorite_border_black_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap baseline_fingerprint_black_24dp { + get { + object obj = ResourceManager.GetObject("baseline_fingerprint_black_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap baseline_thumb_up_black_24dp { + get { + object obj = ResourceManager.GetObject("baseline_thumb_up_black_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap minus { + get { + object obj = ResourceManager.GetObject("minus", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap plus { + get { + object obj = ResourceManager.GetObject("plus", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Recherche une ressource localisée de type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_add_black_24dp { + get { + object obj = ResourceManager.GetObject("round_add_black_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_assessment_white_24dp { + get { + object obj = ResourceManager.GetObject("round_assessment_white_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_backup_white_24dp { + get { + object obj = ResourceManager.GetObject("round_backup_white_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_bluetooth_white_24dp { + get { + object obj = ResourceManager.GetObject("round_bluetooth_white_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_bookmark_white_24dp { + get { + object obj = ResourceManager.GetObject("round_bookmark_white_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_build_white_24dp { + get { + object obj = ResourceManager.GetObject("round_build_white_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_gps_fixed_white_24dp { + get { + object obj = ResourceManager.GetObject("round_gps_fixed_white_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_http_white_24dp { + get { + object obj = ResourceManager.GetObject("round_http_white_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Recherche une ressource localisée de type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_phone_black_24dp { + get { + object obj = ResourceManager.GetObject("round_phone_black_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_report_problem_white_24dp { + get { + object obj = ResourceManager.GetObject("round_report_problem_white_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_swap_vert_white_24dp { + get { + object obj = ResourceManager.GetObject("round_swap_vert_white_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/MaterialSkin/Controls/MaterialForm.fa-IR.resx b/MaterialSkinExample.RTL/Properties/Resources.resx similarity index 52% rename from MaterialSkin/Controls/MaterialForm.fa-IR.resx rename to MaterialSkinExample.RTL/Properties/Resources.resx index 25409080..f49864df 100644 --- a/MaterialSkin/Controls/MaterialForm.fa-IR.resx +++ b/MaterialSkinExample.RTL/Properties/Resources.resx @@ -117,8 +117,59 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 300, 261 + + + ..\Resources\round_report_problem_white_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - \ No newline at end of file + + ..\Resources\round_build_white_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_swap_vert_white_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\baseline_thumb_up_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_gps_fixed_white_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_bookmark_white_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_assessment_white_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_backup_white_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\baseline_build_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\baseline_fingerprint_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_http_white_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_bluetooth_white_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\baseline_bluetooth_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\baseline_favorite_border_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_add_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_phone_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + diff --git a/MaterialSkinExample.RTL/Properties/Settings.Designer.cs b/MaterialSkinExample.RTL/Properties/Settings.Designer.cs new file mode 100644 index 00000000..5f02ea1d --- /dev/null +++ b/MaterialSkinExample.RTL/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MaterialSkinExample.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.2.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/MaterialSkinExample.RTL/Properties/Settings.settings b/MaterialSkinExample.RTL/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/MaterialSkinExample.RTL/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/MaterialSkinExample.RTL/Resources/baseline_bluetooth_black_24dp.png b/MaterialSkinExample.RTL/Resources/baseline_bluetooth_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..c505e9abf56da9ff97e03503c04c603a1827a3bc GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+ig`O^sAr*|t5(XdUFYI&Sb%=0W z#C9m^io`dg4u#Agj7M01n8>hb?Kr5wcm2WP5A6HJGTYi6Sj#1kC`vV?n9cAzvizxD zM7K%ALY2d%D;O&pEFw=m~0d*m(b0u5cHDD;&BfYy6?ZE=+tEMr;;2C=lo+}@VlJ(^`KzG RTcBeZJYD@<);T3K0RRP@Pc;Al literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/baseline_build_black_24dp.png b/MaterialSkinExample.RTL/Resources/baseline_build_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..f9b6fa126a36ce157fc99631f8331f1b19276109 GIT binary patch literal 258 zcmV+d0sa1oP)Dsk74)W$pqR}hiX>^8rkG%ojZI-Rn;V^kmItcqCJliZ0SG@;~4dI;^XDD$o5fHgu-6p9J} zb(FIQLVNq5<~mng2;tcj<+(XRIRTuAA=L3pLNu`il0YcMfE7nJjJav#EE25@55FY) zLy{)ssgbJ*$p;}X7fJKC0&k6MF{r4K5f~BssY8q_aiB}EKA#S(bsc4oQvd(}07*qo IM6N<$f@NZ8wg3PC literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/baseline_favorite_border_black_24dp.png b/MaterialSkinExample.RTL/Resources/baseline_favorite_border_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..b5758382104c07737922809bb17070d3218ba246 GIT binary patch literal 324 zcmV-K0lWT*P)IM2Q&+v9-0oO zI_|AD%?=o)kJTDQ+Gd?i+C*A!m4vYxgqvoowag5OO^-?#>;UO22sf+B~7dUIs3NTYB;34jupg+_~HW`zdf zwo*{)w$NaO9A^6~JW;LMbK##^ax>XC;f=S#HbO{7Y;dL={SL^>o)wJ;j6)URwzSAg)0kI&PU!##rX0dj^Oj0A*d( zMSPG^CSj0J50{kSU)^mN5BaTi!$}u?cGV=YB(y^pe`(=>Fyh-}qSSyWS~=;3V!}G6 zg+DA7RbgjjLt^bMvELL)(B5Y`#n8=PBDf+WI=Q2_%9>i`sgXkK6Og%H|w`!LKPJQc?u zvO9)(T8iu)Dk~(6cfzP;HqOZ84{4piL>+|j7Cnr_0TqQ3OA?<&^M~*rqr0)VC7m=b z3n`yRhMD7~0se7R2D#i4!U#jLz%(Jm(ojFu{7Y|*a7IOmyp=^v`|VaybaBKNphm8X zuCY533aOqW-Z-v`0EM*KA|aG^UPq|}O>7&aLQ=~-mrtxg%JPJ&3Q((nY)7$@tQg|49j|OKhZ;$ng0Kn*C>uF;v@g>;Zomvv9+P zkB5#g$@<}6%$x6V^@8K9w*5RtOEM#Pr>J{2^JYq&V@~zFB+wpvSXt&&ywQe)>krNs j$aa5v&*R9`EY84?Ey6R^N3<#$=o$u3S3j3^P6oX38;%l=9wDDb#C&iPwj_G-x@!}!2= zYzJ&E&e+P(FlUz4j@`cvS7fDJGZii9YA|8UWV*z%gwx~pJ^y>V&;B@SR=)iF{)PsV i|BY}dVFrdjH+iot<}te}RW=W34}+(xpUXO@geCxv=tFt{ literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/round_add_black_24dp.png b/MaterialSkinExample.RTL/Resources/round_add_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..a77cfcd943fa2be37ba49027ef9c671cdb42e4a3 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1bx#+^5R22v2@Fq-HZx&Kn0URCzPj|)dJ?9t7CgSsMcECBN*=4UI9|+FpWBHWbSn?xOVM09j66foU z4tabrZ{M>Cbae6l+UMF`cKYh!nRm?>FIjkuZ?-`jzsm2Ei-1-!c)I$ztaD0e0swVV BI8^`u literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/round_backup_white_24dp.png b/MaterialSkinExample.RTL/Resources/round_backup_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4a1da43d5f7ca37528abb9381e35333b93d45086 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iO`a}}Ar*{wFX;0yGBUJ&Gw-rY0piQlikU3X7^|9YFHf~sON z8ymEZySm)?^=CK!OZJ$t^ibea#~s`DoVbv3T-JTQ9ba(X6UzrzFLKMur2d`oSjOzT zsyRd)Efe3*wG#8-!TJH~NZ1ESjnj(aj_MXtnpE1DzGi jekpj1PtMSm^6FH-<;hXwt7RMkbUlNotDnm{r-UW|uIE~i literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/round_bluetooth_white_24dp.png b/MaterialSkinExample.RTL/Resources/round_bluetooth_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..c437dc2901ca0e367118feac86269f2fabe3db0f GIT binary patch literal 241 zcmVQu0tP~ubrANoL_KI4=$K8_0P0GLq2c6I0Ny7`AG-_}=NE$8i r{e-6^%9A&yhOeY%Am9Ii355R!2DuyV#whYZSnu7|1tlW|E=C|f@{Fx?*F|1k3LX(^#Aq${YTb5 ryz+m>|1}be*8E@mf4=+`OL>M*%9le=J_z3kG@rrK)z4*}Q$iB}jo?06 literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/round_build_white_24dp.png b/MaterialSkinExample.RTL/Resources/round_build_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..38a0e8c71f3ae42b5ecaf3306e0685adaef65a31 GIT binary patch literal 262 zcmV+h0r~!kP)FKKFaQJrHCnJnW3B@ z>qt9a-BVy4X#lB6>B6KWDg`_dr3206D~UlNT{^G;$eI}tu%ZLU092^gs6paH2R8U< zj432wTL=0uZbS#tFm4ww9jVq5e`DZ4ImR6jtc)X(I_5ZKjZUtRI2NLh6mEZ!2+Jhv z7da!=R&rqvNwk%$<7_JlQOX)}CqKkPSrfTz16SlJYr~lcOv=7q03^P6$Pd8^q5uE@ M07*qoM6N<$g2}{XBLDyZ literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/round_gps_fixed_white_24dp.png b/MaterialSkinExample.RTL/Resources/round_gps_fixed_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..ae93dd7e9c0b09da50078a823db7b65efc2c02d0 GIT binary patch literal 350 zcmV-k0iphhP)=ba*(^Q61q|M=%-`Tp)(skklRr=YE<2h9GUr0WzHK~ zhD+_R77DYWOrL8Ug$^9yT3@+bMWz<#NvCqTQ_FW*kN(p fw$N|VlXAVK>JASwU+0+u-NE4L>gTe~DWM4fxj{%` literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/round_phone_black_24dp.png b/MaterialSkinExample.RTL/Resources/round_phone_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..7abe7e62d50eea8b9d257b03f92c2e9fe52f4293 GIT binary patch literal 241 zcmVix)1xauuTT#I-9|B$Y*LBAJ zI`Jmr$w-m4h=_Yd-bF;bC^8oj(I|2)BBFDkz(hpEqap)a5lfXqwOFYX8~fH6>fuh* zdN{TbQ$3vPv@Y~;DOyv%Di7k*!i|v~W;#(Dsw_oB#Iv2wY(!%%A|m3;ACBCLh=_=2 r{bQ`Q6%i4y3LKiaGWTKS)V}%w_UvIWG{7Vz00000NkvXXu0mjf;$L1T literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/round_report_problem_white_24dp.png b/MaterialSkinExample.RTL/Resources/round_report_problem_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..44ee7827596ae7199f591bec4fd4f4df288b63d6 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iEuJopAr*{QFD!L(VH9wMzh3+v{ zEO+>mzk zpt@*MyQzupmIaZb+P4ZXr}_CmU@(tX>5yaAIAgBy%hj3j{5;n0Pdb_`|IE00?`OCC l{Sa@Ct8*S47n~~8%_K8<316?XFcZ-I44$rjF6*2UngBRHUSR+L literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/round_swap_vert_white_24dp.png b/MaterialSkinExample.RTL/Resources/round_swap_vert_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e965d7a4793472ee4f1bbd48b23160667e7d89 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjF`h1tAr*|t3nY4){{R19-e|Cv zC;w+ZL+=$coB#G|Cl*Y5X!U<%bG?G)t6wZ!9IIuvG6etO5{O?qmo>mZMP~=gA!Zr# x#bOFPSO4`(zqq(b;LP$=!+S + { + MaterialForm.FormStyles SelectedStyle = (MaterialForm.FormStyles)Enum.Parse(typeof(MaterialForm.FormStyles), args.Text); + if (this.FormStyle!= SelectedStyle) this.FormStyle = SelectedStyle; + }; + + materialMaskedTextBox1.ValidatingType = typeof(System.Int16); + } private void seedListView() @@ -143,7 +158,7 @@ private void materialSwitch8_CheckedChanged(object sender, EventArgs e) private void MaterialButton3_Click(object sender, EventArgs e) { - var builder = new StringBuilder("گزارش عملیات گروهی :\n\n"); + var builder = new StringBuilder("Batch operation report:\n\n"); var random = new Random(); var result = 0; @@ -153,52 +168,127 @@ private void MaterialButton3_Click(object sender, EventArgs e) if (result < 950) { - builder.AppendFormat(" - عملیات {0}: عملیات با موفقیت انجام شد.\n", i); + builder.AppendFormat(" - Task {0}: Operation completed sucessfully.\n", i); } else { - builder.AppendFormat(" - عملیات {0}: عملیاتی انجام نشد! یک خطای خیلی خیلی خیلی خیلی خیلی خیلی خیلی خیلی جدی در طول این عملیات رخ داده است. کد خطا: {1}).\n", i, result); + builder.AppendFormat(" - Task {0}: Operation failed! A very very very very very very very very very very very very serious error has occured during this sub-operation. The errorcode is: {1}).\n", i, result); } } var batchOperationResults = builder.ToString(); - var mresult = MaterialMessageBox.Show(batchOperationResults, "عملیات گروهی"); - materialComboBox1.Items.Add("این رشته بسیار طولانی است"); + batchOperationResults = "Simple text"; + var mresult = MaterialMessageBox.Show(batchOperationResults, "Batch Operation", MessageBoxButtons.YesNoCancel, FlexibleMaterialForm.ButtonsPosition.Center); + materialComboBox1.Items.Add("this is a very long string"); } - private void materialLabel9_Click(object sender, EventArgs e) + private void materialSwitch9_CheckedChanged(object sender, EventArgs e) { + DrawerAutoShow = materialSwitch9.Checked; + } + + private void materialTextBox2_LeadingIconClick(object sender, EventArgs e) + { + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("Leading Icon Click"); + SnackBarMessage.Show(this); } - private void materialLabel46_Click(object sender, EventArgs e) + private void materialButton6_Click(object sender, EventArgs e) { + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("SnackBar started succesfully", "OK", true); + SnackBarMessage.Show(this); + } + private void materialSwitch10_CheckedChanged(object sender, EventArgs e) + { + materialTextBox21.UseAccent = materialSwitch10.Checked; } - private void materialTextBox1_TextChanged(object sender, EventArgs e) + private void materialSwitch11_CheckedChanged(object sender, EventArgs e) { + materialTextBox21.UseTallSize = materialSwitch11.Checked; + } + private void materialSwitch12_CheckedChanged(object sender, EventArgs e) + { + if (materialSwitch12.Checked) + materialTextBox21.Hint = "Hint text"; + else + materialTextBox21.Hint = ""; } - private void MainForm_Load(object sender, EventArgs e) + private void materialComboBox7_SelectionChangeCommitted(object sender, EventArgs e) { - CultureInfo.CurrentUICulture = new CultureInfo("fa-IR", false); + if (materialComboBox7.SelectedIndex == 1) + { + materialTextBox21.PrefixSuffix = MaterialTextBox2.PrefixSuffixTypes.Prefix; + } + else if (materialComboBox7.SelectedIndex == 2) + { + materialTextBox21.PrefixSuffix = MaterialTextBox2.PrefixSuffixTypes.Suffix; + } + else + { + materialTextBox21.PrefixSuffix = MaterialTextBox2.PrefixSuffixTypes.None; + } } - private void materialLabel7_Click(object sender, EventArgs e) + private void materialSwitch13_CheckedChanged(object sender, EventArgs e) { + materialTextBox21.UseSystemPasswordChar = materialSwitch13.Checked; } - private void materialLabel8_Click(object sender, EventArgs e) + private void materialSwitch14_CheckedChanged(object sender, EventArgs e) + { + if (materialSwitch14.Checked) + materialTextBox21.LeadingIcon = global::MaterialSkinExample.Properties.Resources.baseline_fingerprint_black_24dp; + else + materialTextBox21.LeadingIcon = null; + } + + private void materialSwitch15_CheckedChanged(object sender, EventArgs e) { + if (materialSwitch15.Checked) + materialTextBox21.TrailingIcon = global::MaterialSkinExample.Properties.Resources.baseline_build_black_24dp; + else + materialTextBox21.TrailingIcon = null; + } + + private void materialTextBox21_LeadingIconClick(object sender, EventArgs e) + { + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("Leading Icon Click"); + SnackBarMessage.Show(this); + } + private void materialTextBox21_TrailingIconClick(object sender, EventArgs e) + { + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("Trailing Icon Click"); + SnackBarMessage.Show(this); } - private void tabPage2_Click(object sender, EventArgs e) + private void MsReadOnly_CheckedChanged(object sender, EventArgs e) + { + materialCheckbox1.ReadOnly = msReadOnly.Checked; + } + + private void materialButton25_Click(object sender, EventArgs e) { + MaterialDialog materialDialog = new MaterialDialog(this,"Dialog Title", "Dialogs inform users about a task and can contain critical information, require decisions, or involve multiple tasks.", "OK", true, "Cancel"); + DialogResult result = materialDialog.ShowDialog(this); + + MaterialSnackBar SnackBarMessage = new MaterialSnackBar(result.ToString(),750); + SnackBarMessage.Show(this); } + + private void materialSwitch16_CheckedChanged(object sender, EventArgs e) + { + materialTextBox21.ShowAssistiveText = materialSwitch16.Checked; + } + + + } -} \ No newline at end of file +} diff --git a/MaterialSkinExample/MainForm.resx b/MaterialSkinExample/MainForm.resx index 81f88994..e788af04 100644 --- a/MaterialSkinExample/MainForm.resx +++ b/MaterialSkinExample/MainForm.resx @@ -1,4 +1,4 @@ - + - \ No newline at end of file + diff --git a/MaterialSkinExample/Properties/Resources.Designer.cs b/MaterialSkinExample/Properties/Resources.Designer.cs index 35c199d0..eccbad9e 100644 --- a/MaterialSkinExample/Properties/Resources.Designer.cs +++ b/MaterialSkinExample/Properties/Resources.Designer.cs @@ -130,6 +130,16 @@ internal static System.Drawing.Bitmap plus { } } + /// + /// Recherche une ressource localisée de type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_add_black_24dp { + get { + object obj = ResourceManager.GetObject("round_add_black_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -200,6 +210,16 @@ internal static System.Drawing.Bitmap round_http_white_24dp { } } + /// + /// Recherche une ressource localisée de type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap round_phone_black_24dp { + get { + object obj = ResourceManager.GetObject("round_phone_black_24dp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/MaterialSkinExample/Properties/Resources.resx b/MaterialSkinExample/Properties/Resources.resx index fe7a503a..f49864df 100644 --- a/MaterialSkinExample/Properties/Resources.resx +++ b/MaterialSkinExample/Properties/Resources.resx @@ -166,4 +166,10 @@ ..\Resources\baseline_favorite_border_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - \ No newline at end of file + + ..\Resources\round_add_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\round_phone_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + diff --git a/MaterialSkinExample/Resources/round_add_black_24dp.png b/MaterialSkinExample/Resources/round_add_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..a77cfcd943fa2be37ba49027ef9c671cdb42e4a3 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1bx#+^5R22v2@ix)1xauuTT#I-9|B$Y*LBAJ zI`Jmr$w-m4h=_Yd-bF;bC^8oj(I|2)BBFDkz(hpEqap)a5lfXqwOFYX8~fH6>fuh* zdN{TbQ$3vPv@Y~;DOyv%Di7k*!i|v~W;#(Dsw_oB#Iv2wY(!%%A|m3;ACBCLh=_=2 r{bQ`Q6%i4y3LKiaGWTKS)V}%w_UvIWG{7Vz00000NkvXXu0mjf;$L1T literal 0 HcmV?d00001 diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache index d3873103ee7f8b2ba26a845166f273ca0c4e3fee..6c4357b43d2297df5f8b0cd4250d4190a6a4eef6 100644 GIT binary patch literal 12745 zcmeHN&y(9$9k*=D_VXs$1WKX6z^0T!>DJ!OX1htIA#A+aY-qDhA0rdKRr8NnXSxJW~QfVL(3aF@^oJgJ;$)7r!Ebfmf3nz?ylL}vVXccGuN5#EOcgP z+w(KVoT2k#N0YBn-*r9Nt9yngSxahbFj{6~o=~jHV^oYLNrv z2_IRtfC}ZOY@@wwv^?7>j_zjy&8^wJf#FD}MBci2L*`NF7Ooi9P`a5+E~D!crTa(i zc-m>3eZv}`^S@_KoOyuF$ODSp&P4B&2eG5a|t}ME)>@}_3Rih`* z{m7GjikZ!=?B|558$3ljG}6LILoC~U<1m4B6d^-iEb93UJ76b=E(JICQQb2D?Z zCp9t2(!+p*mDO`=%MRLf-FCJMM^Kc}*bD5r_ul;8rT?EFQGSkvpC{Z0D0~4Bp}e1^ zUj#%c1u1p5XI~w|tLa;YySSR~qjA~6c5blkMg4I>(^QGY7*(kO;Ha8~W~Ca%9gK3}ic_ zWsCIaOfIKo*`--6yQkAjC9O0+jt%{e*&R9t!$UCCrgVeN-4)e3+cCYZ-V>kntkLkQ z`!SoQWqP}sruh;m(B}_?eXuOPj3V(B0FABIUI66(i#Yq~T1t-M4#UvqW~P+C39|oy z?9Of=!pSQXz6NN}$xcxD?gw3%NQ-q_02MOOGJVf{=;bFiL`YkO_ zSKXsLM)ktxMdLZ!!Jml;UfA^KOR;%b?wAZLJhcS#t74no%<1;Px3IA~)?avDWq9~x z)9S*4G2fbheD>traXEA1q)unuS0{YtygUCH^6uBQ@$h{3z;RyoG1s>I2ame+uFYP( zx}RxddTMX&yZdCdu|Zv_xb$so?TJf|ph$cNK%*4>xTL)cK{7VwZ=&R%*kEk&1Hxmd zv+-#H!m)_!S3fEuRB(;E6cI!fTt!ZfcM=t5aJrZ!93#vTjuYkyj{}Zy>ZNI%Z5bK% z`u8NK09sb#Jisa(6;5UBSeiZsxL4gZo8|4K?urn92QNZlcU?e#mU?c>b}X}57ALSP zP67f`uKLc%RavUN9dgxj*?(Gm0_FNqKq@S&dv~7l?)7=#G}Lh4XexWw?6>XfZe`ha zdTv>K7l*_dKwwH_Z-qtnW?W=vQC)u!kcuo78Rr45Py+@}$4icJ-RyVEVhM%f93U_y zuYZK)^+sG?E2ysXSv-|jDla9k3sA$sQ4Cv>F0y51@qLtuCjo&eb-f-|*WcpmT19pJ zAwa6GR9#A4PeTm_rLMBLgdOn=ATTAX*TS-TH7=_)RM(j{NM)7EO37*+YM2Oumf;y? zaRnvfSwLV)TYm{_>y@~+et_yavr(zGQf(=1U4s*>k)s?DCsp|&RFwW)t7(3#5 zKwwH%KMTw1#kj2av5wBg-c(kptdy*7LJh(D_L85=`6)`oi-5qCwtf=U*7I>~{T$VG zenXIIE7g|L)=N-Bpe>cl`2|YEEkIyOTi3(d+KFrHm#99;4+l#4W&eJoapi&I|9)BH zR|L%I;*IEw>u0xtXc1b;oV`NENR%cnH10VWcx zBoc6CCrZF&oJTU3lcL{(F##VN6AAcq7$@K}LG%{*fRISQ q=YTi?1Aml&vp^yNgMFNU-W?^lbvpujbc{fwt5P4D#)0v-CO!a)4EqBB delta 1786 zcmZuw%}*0S6yMphZD*@if+naWRuMryx==oXRKrKXj?aZ}-v1DdJP0x3Pf_ir~ zJ82!DJSE_?N?NnKgRr6sx_WdC=t8W~*S-VGVc%#{fcMg~jAtFp`5zn5;J>2gVZL+wa$s!3XbjF~9S!a7-XS>g{seqJ1X0NkWua_X>l*KGW zXbPNRdI@GPafdIF2Dl&Ju@{E8wlq1mr|IWS(#%MG>5*25p&roaWqlU>_%Jo}YF9j4 z{6!9vHVut0k4JYKXp_4~L*q;0(fEFxo%CyHd>}j;pMn!Ti0FN&bq+0|hHKajUpafH z)Rmw}oqI>MN~l6}?-f{}`B7}nGf!w}R1=Rz@i@7sG<4#>XcUJNJ)@!V_IYl+XD2#^ U=xV%34o&dV@Z5ypQM51LKVAfdv;Y7A diff --git a/README.md b/README.md index 319452c4..abb798e5 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,12 @@ -# MaterialSkin for .NET WinForms +# MaterialSkin 2 for .NET WinForms Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. -This project is **temporarily paused** _(While I don't updated it very often, I still plan to in the future; that said, I still read every issue and check every PR)_ - -![home](https://user-images.githubusercontent.com/8310271/66237904-9dff9380-e6cc-11e9-9f08-3c5ba182e144.png) +> This project state is: **not very active** +> +> This means I still read every issue and check every PR and occasionally release new versions when enough pull requests have pilled up, also [@orapps44](https://github.com/orapps44) has been doing excelent work and is keeping this project alive and updated, Thank you! ❤️ -## [Join us on Slack!](https://join.slack.com/t/cmaterialskin/shared_invite/enQtNzk1NjM5NTEyNTE0LTI0ZDY0ODlkNGRmMGRmMTc4NTdjNmMwZjY2YTU5NTg4ODNiZmY5ZTUxNTE0YTZmOTlhMGFlYmZiNzQ3ZmViOWQ) -Have a quick question? want to discuss some improvement or question some code? [come here](https://join.slack.com/t/cmaterialskin/shared_invite/enQtNzk1NjM5NTEyNTE0LTI0ZDY0ODlkNGRmMGRmMTc4NTdjNmMwZjY2YTU5NTg4ODNiZmY5ZTUxNTE0YTZmOTlhMGFlYmZiNzQ3ZmViOWQ), let's talk about it +![home](https://user-images.githubusercontent.com/77468294/134770847-0f20f37f-e3e7-4e15-b838-cf53b0b32c4e.png) ## Nuget Package @@ -25,55 +24,73 @@ You can access it [here](https://github.com/leocb/MaterialSkin/wiki) | Component | Supported | Disabled mode | Animated | | ---------------------------- | :-------: | :-----------: | :------: | -| Buttons | Yes | Yes | Yes | | Backdrop | **No** | - | - | +| Banner | **No** | - | - | +| Buttons | Yes | Yes | Yes | | Cards | Yes | N/A | N/A | | Check Box | Yes | Yes | Yes | | Check Box List | Yes | Yes | Yes | +| Chips | **No** | - | - | | Combobox | Yes | Yes | Yes | | Context Menu | Yes | Yes | Yes | -| Dialog | **No** | - | - | +| Date Picker | **No** | - | - | +| Dialog | Yes | N/A | **No** | | Divider | Yes | N/A | N/A | | Drawer | Yes | N/A | Yes | +| Expansion Panel | Yes | Yes | **No** | | Flexible Dialog (big) | Yes | Yes | N/A | -| FAB - Floating Action Button | Yes | **No** | Yes | +| FAB - Floating Action Button | Yes | Yes | Yes | | Label | Yes | Yes | N/A | +| ListBox | Yes | Yes | N/A | | ListView | Yes | **No** | N/A | -| Progress Bar | _Partial_ | **No** | **No** | +| Progress Bar | _Partial_ | **No** | **No** | | Radio Button | Yes | Yes | Yes | -| Text field | Yes | **No** | Yes | -| Sliders | **No** | - | - | +| Text field | Yes | Yes | Yes | +| Sliders | Yes | Yes | **No** | +| SnackBar | Yes | N/A | Yes | | Switch | Yes | Yes | Yes | | Tabs | Yes | N/A | Yes | +| Time Picker | **No** | - | - | +| Tooltips | **No** | - | - | All supported components have a dark theme ## TODO List -- Progress bar - Animation and variants, maybe round loading thingy -- Sliders -- Dialog (!= message box) -- Backdrop (maybe) -- Better FAB -- Better Listview -- Disabled textfield -- Some Color code improvements and refactoring +- [ ] Progress bar - Animation and variants, maybe round loading thingy +- [ ] Backdrop (maybe) +- [ ] Some Color code improvements and refactoring +- [ ] DatePicker +- [ ] Drawer - Header, Divider, subtitle & submenu +- [ ] Textfield ContextualMenu translation +- [ ] Controls code cleanup +- [ ] Add Noto font support --- -## Contributting +## Contributing + +Thanks for taking the time to contribute! :+1: If you have any issues please open an issue; have an improvement? open a pull request. ->This project was heavily updated by @leocb [leocb/MaterialSkin](https://github.com/leocb/MaterialSkin) -> ->forked from [donaldsteele/MaterialSkin](https://github.com/donaldsteele/MaterialSkin) -> ->and he forked it from the original [IgnaceMaes/MaterialSkin](https://github.com/IgnaceMaes/MaterialSkin) +> - This project was heavily updated by [@leocb](https://github.com/leocb/MaterialSkin) +> - Currently it's kept alive by [@orapps44](https://github.com/orapps44/MaterialSkin) +> - forked from [@donaldsteele](https://github.com/donaldsteele/MaterialSkin) +> - and he forked it from the original [@IgnaceMaes](https://github.com/IgnaceMaes/MaterialSkin) + +## Contributors + +Thank you to all the people who have already contributed to MaterialSkin 2 ! + + + + + --- -## Implementing MaterialSkin in your application +## Implementing MaterialSkin 2 in your application ### 1. Add the library to your project @@ -157,31 +174,40 @@ If you love .NET and Material Design, you should definitely check out [Material ## Images *A simple demo interface with MaterialSkin components.* -![home](https://user-images.githubusercontent.com/8310271/66237904-9dff9380-e6cc-11e9-9f08-3c5ba182e144.png) +![home](https://user-images.githubusercontent.com/77468294/134770847-0f20f37f-e3e7-4e15-b838-cf53b0b32c4e.png) *The MaterialSkin Drawer (menu).* -![drawer](https://user-images.githubusercontent.com/8310271/66237910-a0fa8400-e6cc-11e9-8f1d-0bc424f404c3.png) +![drawer](https://user-images.githubusercontent.com/77468294/119880600-b4570480-bf2c-11eb-9a83-e2d59b88bf22.png) *Every MaterialSkin button variant - this is 1 control, 3 properties* -![buttons](https://user-images.githubusercontent.com/8310271/66237911-a0fa8400-e6cc-11e9-8781-3e4c8cb0362b.png) +![buttons](https://user-images.githubusercontent.com/77468294/119880777-e1a3b280-bf2c-11eb-8042-45b767459b41.png) *The MaterialSkin checkboxes, radio and Switch.* -![selection](https://user-images.githubusercontent.com/8310271/66237912-a0fa8400-e6cc-11e9-9fb8-2cb247d2eff1.png) +![selection](https://user-images.githubusercontent.com/77468294/134740844-795cd759-e4dc-4592-b2c1-86896e61f66f.png) -*Material skin textfield and labels* -![text](https://user-images.githubusercontent.com/8310271/66237914-a0fa8400-e6cc-11e9-8afa-b9f6da2382fe.png) +*Material skin textfield* +![text](https://user-images.githubusercontent.com/77468294/134825517-23f517e7-0793-4c4c-bcb2-6c2c2fb36b4a.png) *Table control* ![table](https://user-images.githubusercontent.com/8310271/66237915-a1931a80-e6cc-11e9-8e68-bc919f533366.png) *Progress bar* -![progress bar](https://user-images.githubusercontent.com/8310271/66237916-a1931a80-e6cc-11e9-836b-157596b4ed33.png) +![progress bar](https://user-images.githubusercontent.com/77468294/119880969-131c7e00-bf2d-11eb-9ec6-b00e928e59ed.png) *Cards* -![cards](https://user-images.githubusercontent.com/8310271/66237917-a1931a80-e6cc-11e9-9b32-47374554bc07.png) +![cards](https://user-images.githubusercontent.com/77468294/119881312-6f7f9d80-bf2d-11eb-93b8-e4dc58dc3a4e.png) + +*List Box* +![listbox](https://user-images.githubusercontent.com/77468294/119881063-2891a800-bf2d-11eb-93d8-d0395dc1f19e.png) + +*Expansion Panel* +![expansion](https://user-images.githubusercontent.com/77468294/119881153-419a5900-bf2d-11eb-95a2-ab29089acdd3.png) + +*Label* +![label](https://user-images.githubusercontent.com/77468294/132769098-440841c8-07d2-4b9b-bff7-e525402525dd.png) *MaterialSkin using a custom color scheme.* -![custom](https://user-images.githubusercontent.com/8310271/66237918-a1931a80-e6cc-11e9-820e-8c811629d937.png) +![custom](https://user-images.githubusercontent.com/77468294/119881411-8e7e2f80-bf2d-11eb-9fa3-883eceabfadc.png) *FlexibleMaterial Messagebox* ![messagebox](https://user-images.githubusercontent.com/8310271/66238105-25e59d80-e6cd-11e9-88c9-5a21ceae1a5a.png) From 6b1d7da51c4c6d43d4d5cf71c9131fca43cb8f1f Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Tue, 7 Jun 2022 12:54:21 +0430 Subject: [PATCH 15/30] MaterialDrawer rtl suppot --- MaterialSkin/Controls/MaterialDrawer.cs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/MaterialSkin/Controls/MaterialDrawer.cs b/MaterialSkin/Controls/MaterialDrawer.cs index 0e0f8f88..6ebbc6ae 100644 --- a/MaterialSkin/Controls/MaterialDrawer.cs +++ b/MaterialSkin/Controls/MaterialDrawer.cs @@ -289,7 +289,7 @@ private void preProcessIcons() // add to dictionary iconsBrushes.Add(tabPage.ImageKey, textureBrushGray); iconsSelectedBrushes.Add(tabPage.ImageKey, textureBrushColor); - iconsSize.Add(tabPage.ImageKey, new Rectangle(0, 0, iconRect.Width, iconRect.Height)); + iconsSize.Add(tabPage.ImageKey, new Rectangle(0, 0, iconRect.Width*3, iconRect.Height)); } } @@ -510,7 +510,7 @@ protected override void OnPaint(PaintEventArgs e) IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2, RightToLeft); Rectangle textRect = _drawerItemRects[currentTabIndex]; - var textRectX = RightToLeft == RightToLeft.Yes ? SkinManager.FORM_PADDING : _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); + var textRectX = RightToLeft == RightToLeft.Yes ? SkinManager.FORM_PADDING - Location.X : _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); textRect.X += textRectX; textRect.Width -= SkinManager.FORM_PADDING << 2; @@ -523,7 +523,7 @@ protected override void OnPaint(PaintEventArgs e) // Icons if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) { - var rectangleX = RightToLeft == RightToLeft.Yes ? Width - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width/2)*2) - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1) : + var rectangleX = RightToLeft == RightToLeft.Yes ? Width - Location.X - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width/2)*2) - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1) : _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1); Rectangle iconRect = new Rectangle( rectangleX, @@ -545,7 +545,8 @@ protected override void OnPaint(PaintEventArgs e) { using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) { - g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); + var lineX = RightToLeft == RightToLeft.Yes ? 0 : Width - 1; + g.DrawLine(dividerPen, lineX, 0, lineX, Height); } } @@ -553,9 +554,9 @@ protected override void OnPaint(PaintEventArgs e) var previousSelectedTabIndexIfHasOne = _previousSelectedTabIndex == -1 ? _baseTabControl.SelectedIndex : _previousSelectedTabIndex; var previousActiveTabRect = _drawerItemRects[previousSelectedTabIndexIfHasOne]; var activeTabPageRect = _drawerItemRects[_baseTabControl.SelectedIndex]; - var y = previousActiveTabRect.Y + (int)((activeTabPageRect.Y - previousActiveTabRect.Y) * clickAnimProgress); - var x = ShowIconsWhenHidden ? -Location.X : 0; + var offset = RightToLeft == RightToLeft.Yes ? Width - IndicatorWidth:0; + var x = ShowIconsWhenHidden ? offset - Location.X : 0; var height = drawerItemHeight; g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, IndicatorWidth, height); @@ -779,8 +780,8 @@ private void UpdateTabRects() (TAB_HEADER_PADDING * 2) * i + (int)(SkinManager.FORM_PADDING >> 1), (Width + (ShowIconsWhenHidden ? LocationX : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, drawerItemHeight)); - - _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, _drawerItemRects[i].Width, _drawerItemRects[i].Height), 4); + var drawerItemRectWidth = _drawerItemRects[i].Width - Location.X; + _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, drawerItemRectWidth, _drawerItemRects[i].Height), 4); } } } From 42a509c76bd18488337891b9782fafe37e844167 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Tue, 7 Jun 2022 14:14:49 +0430 Subject: [PATCH 16/30] MaterialSkinExample rollback --- MaterialSkinExample/MainForm.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MaterialSkinExample/MainForm.cs b/MaterialSkinExample/MainForm.cs index c3861403..f401528e 100644 --- a/MaterialSkinExample/MainForm.cs +++ b/MaterialSkinExample/MainForm.cs @@ -10,7 +10,7 @@ public partial class MainForm : MaterialForm { private readonly MaterialSkinManager materialSkinManager; - public MainForm(RightToLeft RightToLeft=RightToLeft.No) :base(RightToLeft) + public MainForm() { InitializeComponent(); From 52f0786deb2cd5682b2a27b189ef354a33d3ef1f Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Tue, 7 Jun 2022 16:00:44 +0430 Subject: [PATCH 17/30] rtl support controls --- MaterialSkin.sln | 12 +- MaterialSkin/Controls/MaterialCheckBox.cs | 20 +- .../Controls/MaterialCheckedListBox.cs | 1 + MaterialSkin/Controls/MaterialComboBox.cs | 63 +- .../Controls/MaterialDrawer - Copy (2).cs | 787 ------------------ .../Controls/MaterialDrawer - Copy (3).cs | 787 ------------------ .../Controls/MaterialDrawer - Copy.cs | 786 ----------------- MaterialSkin/Controls/MaterialDrawer.cs | 2 +- MaterialSkin/Controls/MaterialForm.cs | 2 +- MaterialSkin/Controls/MaterialTextBox2.cs | 9 +- MaterialSkinExample.RTL/MainForm.Designer.cs | 708 +++++++++++++--- MaterialSkinExample.RTL/MainForm.cs | 16 +- MaterialSkinExample.RTL/MainForm.resx | 470 +++++------ ...lSkinExample.csprojAssemblyReference.cache | Bin 12745 -> 0 bytes 14 files changed, 900 insertions(+), 2763 deletions(-) delete mode 100644 MaterialSkin/Controls/MaterialDrawer - Copy (2).cs delete mode 100644 MaterialSkin/Controls/MaterialDrawer - Copy (3).cs delete mode 100644 MaterialSkin/Controls/MaterialDrawer - Copy.cs delete mode 100644 MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache diff --git a/MaterialSkin.sln b/MaterialSkin.sln index 4da0e141..140bfb4f 100644 --- a/MaterialSkin.sln +++ b/MaterialSkin.sln @@ -2,8 +2,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30717.126 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialSkinExample", "MaterialSkinExample\MaterialSkinExample.csproj", "{47409AA5-62AE-4189-8E83-C471502DF5E9}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialSkin", "MaterialSkin\MaterialSkin.csproj", "{8EB7611B-68CD-4B8B-987A-11717E2B250C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{17028688-3699-4BC7-849F-A6B0F6E766BC}" @@ -15,16 +13,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MaterialSkinCore", "Materia EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialSkinExample.RTL", "MaterialSkinExample.RTL\MaterialSkinExample.RTL.csproj", "{8E08A8CF-A5DB-41DF-B486-E0E5DE552697}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialSkinExample", "MaterialSkinExample\MaterialSkinExample.csproj", "{47409AA5-62AE-4189-8E83-C471502DF5E9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {47409AA5-62AE-4189-8E83-C471502DF5E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {47409AA5-62AE-4189-8E83-C471502DF5E9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {47409AA5-62AE-4189-8E83-C471502DF5E9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {47409AA5-62AE-4189-8E83-C471502DF5E9}.Release|Any CPU.Build.0 = Release|Any CPU {8EB7611B-68CD-4B8B-987A-11717E2B250C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8EB7611B-68CD-4B8B-987A-11717E2B250C}.Debug|Any CPU.Build.0 = Debug|Any CPU {8EB7611B-68CD-4B8B-987A-11717E2B250C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -37,6 +33,10 @@ Global {8E08A8CF-A5DB-41DF-B486-E0E5DE552697}.Debug|Any CPU.Build.0 = Debug|Any CPU {8E08A8CF-A5DB-41DF-B486-E0E5DE552697}.Release|Any CPU.ActiveCfg = Release|Any CPU {8E08A8CF-A5DB-41DF-B486-E0E5DE552697}.Release|Any CPU.Build.0 = Release|Any CPU + {47409AA5-62AE-4189-8E83-C471502DF5E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47409AA5-62AE-4189-8E83-C471502DF5E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47409AA5-62AE-4189-8E83-C471502DF5E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47409AA5-62AE-4189-8E83-C471502DF5E9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/MaterialSkin/Controls/MaterialCheckBox.cs b/MaterialSkin/Controls/MaterialCheckBox.cs index aac2ccf2..7a776912 100644 --- a/MaterialSkin/Controls/MaterialCheckBox.cs +++ b/MaterialSkin/Controls/MaterialCheckBox.cs @@ -126,8 +126,9 @@ protected override void OnPaint(PaintEventArgs pevent) // clear the control g.Clear(Parent.BackColor); - int CHECKBOX_CENTER = _boxOffset + CHECKBOX_SIZE_HALF - 1; - Point animationSource = new Point(CHECKBOX_CENTER, CHECKBOX_CENTER); + int CHECKBOX_CENTER_X = RightToLeft==RightToLeft.Yes?Width - (_boxOffset + CHECKBOX_SIZE_HALF +1) : _boxOffset + CHECKBOX_SIZE_HALF - 1; + int CHECKBOX_CENTER_Y = _boxOffset + CHECKBOX_SIZE_HALF - 1; + Point animationSource = new Point(CHECKBOX_CENTER_X, CHECKBOX_CENTER_Y); double animationProgress = _checkAM.GetProgress(); int colorAlpha = Enabled ? (int)(animationProgress * 255.0) : SkinManager.CheckBoxOffDisabledColor.A; @@ -165,8 +166,9 @@ protected override void OnPaint(PaintEventArgs pevent) } } - Rectangle checkMarkLineFill = new Rectangle(_boxOffset, _boxOffset, (int)(CHECKBOX_SIZE * animationProgress), CHECKBOX_SIZE); - using (GraphicsPath checkmarkPath = DrawHelper.CreateRoundRect(_boxOffset - 0.5f, _boxOffset - 0.5f, CHECKBOX_SIZE, CHECKBOX_SIZE, 1)) + var boxOffset_x = RightToLeft == RightToLeft.Yes ? Width - CHECKBOX_SIZE - _boxOffset : _boxOffset; + Rectangle checkMarkLineFill = new Rectangle(boxOffset_x , _boxOffset, (int)(CHECKBOX_SIZE * animationProgress), CHECKBOX_SIZE); + using (GraphicsPath checkmarkPath = DrawHelper.CreateRoundRect(boxOffset_x - 0.5f, _boxOffset - 0.5f, CHECKBOX_SIZE, CHECKBOX_SIZE, 1)) { if (Enabled) { @@ -188,16 +190,18 @@ protected override void OnPaint(PaintEventArgs pevent) g.DrawImageUnscaledAndClipped(DrawCheckMarkBitmap(), checkMarkLineFill); } - + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; // draw checkbox text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { - Rectangle textLocation = new Rectangle(_boxOffset + TEXT_OFFSET, 0, Width - (_boxOffset + TEXT_OFFSET), HEIGHT_RIPPLE); - NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft), + var x = RightToLeft == RightToLeft.Yes ? 0 : _boxOffset + TEXT_OFFSET; + var w = RightToLeft == RightToLeft.Yes ? Width - (_boxOffset + TEXT_OFFSET) : Width; + Rectangle textLocation = new Rectangle(x, 0, w, HEIGHT_RIPPLE); + NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1,RightToLeft), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textLocation.Location, textLocation.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } // dispose used paint objects diff --git a/MaterialSkin/Controls/MaterialCheckedListBox.cs b/MaterialSkin/Controls/MaterialCheckedListBox.cs index eabc44ec..81bd372f 100644 --- a/MaterialSkin/Controls/MaterialCheckedListBox.cs +++ b/MaterialSkin/Controls/MaterialCheckedListBox.cs @@ -71,6 +71,7 @@ public void Add(string text, bool defaultValue) Add(cb); cb.Checked = defaultValue; cb.Text = text; + cb.RightToLeft = RightToLeft.Inherit; } public new void Add(MaterialSkin.Controls.MaterialCheckbox value) diff --git a/MaterialSkin/Controls/MaterialComboBox.cs b/MaterialSkin/Controls/MaterialComboBox.cs index eb81f29a..7f2482af 100644 --- a/MaterialSkin/Controls/MaterialComboBox.cs +++ b/MaterialSkin/Controls/MaterialComboBox.cs @@ -165,6 +165,7 @@ protected override void OnPaint(PaintEventArgs pevent) { Graphics g = pevent.Graphics; + g.Clear(Parent.BackColor); g.FillRectangle(Enabled ? Focused ? SkinManager.BackgroundFocusBrush : // Focused @@ -184,9 +185,12 @@ protected override void OnPaint(PaintEventArgs pevent) // Create and Draw the arrow System.Drawing.Drawing2D.GraphicsPath pth = new System.Drawing.Drawing2D.GraphicsPath(); - PointF TopRight = new PointF(this.Width - 0.5f - SkinManager.FORM_PADDING, (this.Height >> 1) - 2.5f); - PointF MidBottom = new PointF(this.Width - 4.5f - SkinManager.FORM_PADDING, (this.Height >> 1) + 2.5f); - PointF TopLeft = new PointF(this.Width - 8.5f - SkinManager.FORM_PADDING, (this.Height >> 1) - 2.5f); + var TopRight_X= RightToLeft == RightToLeft.Yes ? 0.5f + SkinManager.FORM_PADDING : Width - 0.5f - SkinManager.FORM_PADDING; + PointF TopRight = new PointF(TopRight_X, (this.Height >> 1) - 2.5f); + var MidBottom_X = RightToLeft == RightToLeft.Yes ? 4.5f + SkinManager.FORM_PADDING : Width - 4.5f - SkinManager.FORM_PADDING; + PointF MidBottom = new PointF(MidBottom_X , (this.Height >> 1) + 2.5f); + var TopLeft_X = RightToLeft == RightToLeft.Yes ? 8.5f + SkinManager.FORM_PADDING : Width - 8.5f - SkinManager.FORM_PADDING; + PointF TopLeft = new PointF(TopLeft_X, (this.Height >> 1) - 2.5f); pth.AddLine(TopLeft, TopRight); pth.AddLine(TopRight, MidBottom); @@ -200,7 +204,8 @@ protected override void OnPaint(PaintEventArgs pevent) // HintText bool userTextPresent = SelectedIndex >= 0; - Rectangle hintRect = new Rectangle(SkinManager.FORM_PADDING, ClientRectangle.Y, Width, LINE_Y); + var RectangleWidth = RightToLeft == RightToLeft.Yes ? Width - (SkinManager.FORM_PADDING * 2) : Width; + Rectangle hintRect = new Rectangle(SkinManager.FORM_PADDING, ClientRectangle.Y, RectangleWidth, LINE_Y); int hintTextSize = 16; // bottom line base @@ -212,7 +217,7 @@ protected override void OnPaint(PaintEventArgs pevent) if (hasHint && UseTallSize && (DroppedDown || Focused || SelectedIndex >= 0)) { // hint text - hintRect = new Rectangle(SkinManager.FORM_PADDING, TEXT_SMALL_Y, Width, TEXT_SMALL_SIZE); + hintRect = new Rectangle(SkinManager.FORM_PADDING, TEXT_SMALL_Y, RectangleWidth, TEXT_SMALL_SIZE); hintTextSize = 12; } @@ -233,7 +238,7 @@ protected override void OnPaint(PaintEventArgs pevent) hintRect = new Rectangle( SkinManager.FORM_PADDING, userTextPresent && !_animationManager.IsAnimating() ? (TEXT_SMALL_Y) : ClientRectangle.Y + (int)((TEXT_SMALL_Y - ClientRectangle.Y) * animationProgress), - Width, + RectangleWidth, userTextPresent && !_animationManager.IsAnimating() ? (TEXT_SMALL_SIZE) : (int)(LINE_Y + (TEXT_SMALL_SIZE - LINE_Y) * animationProgress)); hintTextSize = userTextPresent && !_animationManager.IsAnimating() ? 12 : (int)(16 + (12 - 16) * animationProgress); } @@ -244,35 +249,40 @@ protected override void OnPaint(PaintEventArgs pevent) g.FillRectangle(SelectedBrush, LineAnimationX, LINE_Y, LineAnimationWidth, 2); } + + // Calc text Rect + RectangleWidth = RightToLeft == RightToLeft.Yes ? ClientRectangle.Width - SkinManager.FORM_PADDING - (SkinManager.FORM_PADDING * 3 - 8) : ClientRectangle.Width - SkinManager.FORM_PADDING * 3 - 8; + var RectangleX= RightToLeft == RightToLeft.Yes ? SkinManager.FORM_PADDING * 3 - 8 : SkinManager.FORM_PADDING; Rectangle textRect = new Rectangle( - SkinManager.FORM_PADDING, + RectangleX, hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, - ClientRectangle.Width - SkinManager.FORM_PADDING * 3 - 8, + RectangleWidth, hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); g.Clip = new Region(textRect); - - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + using (NativeTextRenderer nativeText = new NativeTextRenderer(g)) { // Draw user text - NativeText.DrawTransparentText( + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; + nativeText.DrawTransparentText( Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textRect.Location, textRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } g.ResetClip(); // Draw hint text - if (hasHint && (UseTallSize || String.IsNullOrEmpty(Text))) + if (hasHint && (UseTallSize || string.IsNullOrEmpty(Text))) { - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; + using (NativeTextRenderer nativeText = new NativeTextRenderer(g)) { - NativeText.DrawTransparentText( + nativeText.DrawTransparentText( Hint, SkinManager.getTextBoxFontBySize(hintTextSize,RightToLeft), Enabled ? DroppedDown || Focused ? @@ -281,7 +291,7 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.TextDisabledOrHintColor, // Disabled hintRect.Location, hintRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } } @@ -309,15 +319,15 @@ private void CustomDrawItem(object sender, System.Windows.Forms.DrawItemEventArg string Text = ""; if (!string.IsNullOrWhiteSpace(DisplayMember)) { - if (!Items[e.Index].GetType().Equals(typeof(DataRowView))) + if (Items[e.Index].GetType() != typeof(DataRowView)) { - var item = Items[e.Index].GetType().GetProperty(DisplayMember).GetValue(Items[e.Index]); - Text = item.ToString(); + var item = Items[e.Index].GetType().GetProperty(DisplayMember)?.GetValue(Items[e.Index]); + Text = item?.ToString(); } else { - var table = ((DataRow)Items[e.Index].GetType().GetProperty("Row").GetValue(Items[e.Index])).Table; - Text = table.Rows[e.Index][DisplayMember].ToString(); + var table = ((DataRow)Items[e.Index].GetType().GetProperty("Row")?.GetValue(Items[e.Index]))?.Table; + Text = table?.Rows[e.Index][DisplayMember].ToString(); } } else @@ -325,15 +335,16 @@ private void CustomDrawItem(object sender, System.Windows.Forms.DrawItemEventArg Text = Items[e.Index].ToString(); } - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + using (NativeTextRenderer nativeText = new NativeTextRenderer(g)) { - NativeText.DrawTransparentText( + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; + nativeText.DrawTransparentText( Text, SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), SkinManager.TextHighEmphasisNoAlphaColor, new Point(e.Bounds.Location.X + SkinManager.FORM_PADDING, e.Bounds.Location.Y), new Size(e.Bounds.Size.Width - SkinManager.FORM_PADDING * 2, e.Bounds.Size.Height), - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); ; + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } @@ -374,12 +385,12 @@ public void recalculateAutoSize() int vertScrollBarWidth = (Items.Count > MaxDropDownItems) ? SystemInformation.VerticalScrollBarWidth : 0; Graphics g = CreateGraphics(); - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) + using (NativeTextRenderer nativeText = new NativeTextRenderer(g)) { var itemsList = this.Items.Cast().Select(item => item.ToString()); foreach (string s in itemsList) { - int newWidth = NativeText.MeasureLogString(s, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft)).Width + vertScrollBarWidth + padding; + int newWidth = nativeText.MeasureLogString(s, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft)).Width + vertScrollBarWidth + padding; if (w < newWidth) w = newWidth; } } diff --git a/MaterialSkin/Controls/MaterialDrawer - Copy (2).cs b/MaterialSkin/Controls/MaterialDrawer - Copy (2).cs deleted file mode 100644 index 2e4582aa..00000000 --- a/MaterialSkin/Controls/MaterialDrawer - Copy (2).cs +++ /dev/null @@ -1,787 +0,0 @@ -namespace MaterialSkin.Controls -{ - using MaterialSkin.Animations; - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Drawing2D; - using System.Drawing.Imaging; - using System.Drawing.Text; - using System.Windows.Forms; - - public class MaterialDrawer : Control, IMaterialControl - { - // TODO: Invalidate when changing custom properties - - private bool _showIconsWhenHidden; - public new RightToLeft RightToLeft; - - [Category("Drawer")] - public bool ShowIconsWhenHidden - { - get - { - return _showIconsWhenHidden; - } - set - { - if (_showIconsWhenHidden != value) - { - _showIconsWhenHidden = value; - UpdateTabRects(); - preProcessIcons(); - showHideAnimation(); - Paint(new PaintEventArgs(CreateGraphics(), ClientRectangle)); - DrawerShowIconsWhenHiddenChanged?.Invoke(this); - } - } - } - - private bool _isOpen; - - [Category("Drawer")] - public bool IsOpen - { - get - { - return _isOpen; - } - set - { - _isOpen = value; - if (value) - Show(); - else - Hide(); - } - } - - [Category("Drawer")] - public bool AutoHide { get; set; } - - [Category("Drawer")] - public bool AutoShow { get; set; } - - [Category("Drawer")] - private bool _useColors; - - public bool UseColors - { - get - { - return _useColors; - } - set - { - _useColors = value; - preProcessIcons(); - Invalidate(); - } - } - - [Category("Drawer")] - private bool _highlightWithAccent; - - public bool HighlightWithAccent - { - get - { - return _highlightWithAccent; - } - set - { - _highlightWithAccent = value; - preProcessIcons(); - Invalidate(); - } - } - - [Category("Drawer")] - private bool _backgroundWithAccent; - - public bool BackgroundWithAccent - { - get - { - return _backgroundWithAccent; - } - set - { - _backgroundWithAccent = value; - Invalidate(); - } - } - - [Category("Drawer")] - public int IndicatorWidth { get; set; } - - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - public delegate void DrawerStateHandler(object sender); - - public event DrawerStateHandler DrawerStateChanged; - - public event DrawerStateHandler DrawerBeginOpen; - - public event DrawerStateHandler DrawerEndOpen; - - public event DrawerStateHandler DrawerBeginClose; - - public event DrawerStateHandler DrawerEndClose; - - public event DrawerStateHandler DrawerShowIconsWhenHiddenChanged; - - public event EventHandler CursorUpdate; - - // icons - private Dictionary iconsBrushes; - - private Dictionary iconsSelectedBrushes; - private Dictionary iconsSize; - private int prevLocation; - - private int rippleSize = 0; - - private MaterialTabControl _baseTabControl; - - [Category("Behavior")] - public MaterialTabControl BaseTabControl - { - get { return _baseTabControl; } - set - { - _baseTabControl = value; - if (_baseTabControl == null) - return; - - UpdateTabRects(); - preProcessIcons(); - - // Other helpers - - _previousSelectedTabIndex = _baseTabControl.SelectedIndex; - _baseTabControl.Deselected += (sender, args) => - { - _previousSelectedTabIndex = _baseTabControl.SelectedIndex; - }; - _baseTabControl.SelectedIndexChanged += (sender, args) => - { - _clickAnimManager.SetProgress(0); - _clickAnimManager.StartNewAnimation(AnimationDirection.In); - }; - _baseTabControl.ControlAdded += delegate - { - Invalidate(); - }; - _baseTabControl.ControlRemoved += delegate - { - Invalidate(); - }; - } - } - - private void preProcessIcons() - { - // pre-process and pre-allocate texture brushes (icons) - if (_baseTabControl == null || _baseTabControl.TabCount == 0 || _baseTabControl.ImageList == null || _drawerItemRects == null || _drawerItemRects.Count == 0) - return; - - // Calculate lightness and color - float l = UseColors ? SkinManager.ColorScheme.TextColor.R / 255 : SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? 0f : 1f; - float r = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.R : SkinManager.ColorScheme.PrimaryColor.R) / 255f; - float g = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.G : SkinManager.ColorScheme.PrimaryColor.G) / 255f; - float b = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.B : SkinManager.ColorScheme.PrimaryColor.B) / 255f; - - // Create matrices - float[][] matrixGray = { - new float[] { 0, 0, 0, 0, 0}, // Red scale factor - new float[] { 0, 0, 0, 0, 0}, // Green scale factor - new float[] { 0, 0, 0, 0, 0}, // Blue scale factor - new float[] { 0, 0, 0, .7f, 0}, // alpha scale factor - new float[] { l, l, l, 0, 1}};// offset - - float[][] matrixColor = { - new float[] { 0, 0, 0, 0, 0}, // Red scale factor - new float[] { 0, 0, 0, 0, 0}, // Green scale factor - new float[] { 0, 0, 0, 0, 0}, // Blue scale factor - new float[] { 0, 0, 0, 1, 0}, // alpha scale factor - new float[] { r, g, b, 0, 1}};// offset - - ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); - ColorMatrix colorMatrixColor = new ColorMatrix(matrixColor); - - ImageAttributes grayImageAttributes = new ImageAttributes(); - ImageAttributes colorImageAttributes = new ImageAttributes(); - - // Set color matrices - grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); - colorImageAttributes.SetColorMatrix(colorMatrixColor, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); - - // Create brushes - iconsBrushes = new Dictionary(_baseTabControl.TabPages.Count); - iconsSelectedBrushes = new Dictionary(_baseTabControl.TabPages.Count); - iconsSize = new Dictionary(_baseTabControl.TabPages.Count); - - foreach (TabPage tabPage in _baseTabControl.TabPages) - { - // skip items without image - if (String.IsNullOrEmpty(tabPage.ImageKey) || _drawerItemRects == null) - continue; - - // Image Rect - Rectangle destRect = new Rectangle(0, 0, _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); - - // Create a pre-processed copy of the image (GRAY) - Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); - using (Graphics gGray = Graphics.FromImage(bgray)) - { - gGray.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], - new Point[] { - new Point(0, 0), - new Point(destRect.Width, 0), - new Point(0, destRect.Height), - }, - destRect, GraphicsUnit.Pixel, grayImageAttributes); - } - - // Create a pre-processed copy of the image (PRIMARY COLOR) - Bitmap bcolor = new Bitmap(destRect.Width, destRect.Height); - using (Graphics gColor = Graphics.FromImage(bcolor)) - { - gColor.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], - new Point[] { - new Point(0, 0), - new Point(destRect.Width, 0), - new Point(0, destRect.Height), - }, - destRect, GraphicsUnit.Pixel, colorImageAttributes); - } - - // added processed image to brush for drawing - TextureBrush textureBrushGray = new TextureBrush(bgray); - TextureBrush textureBrushColor = new TextureBrush(bcolor); - - textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; - textureBrushColor.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; - - // Translate the brushes to the correct positions - var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); - var rectangleX = RightToLeft == RightToLeft.Yes ? Width - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2) * 2) - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)) - : (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)); - Rectangle iconRect = new Rectangle( - rectangleX, - _drawerItemRects[currentTabIndex].Y + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2), - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width + 18 , _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); - - textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, - iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); - textureBrushColor.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, - iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); - - // add to dictionary - iconsBrushes.Add(tabPage.ImageKey, textureBrushGray); - iconsSelectedBrushes.Add(tabPage.ImageKey, textureBrushColor); - iconsSize.Add(tabPage.ImageKey, new Rectangle(0, 0, iconRect.Width, iconRect.Height)); - } - } - - private int _previousSelectedTabIndex; - - private Point _animationSource; - - private readonly AnimationManager _clickAnimManager; - - private readonly AnimationManager _showHideAnimManager; - - private List _drawerItemRects; - private List _drawerItemPaths; - - private const int TAB_HEADER_PADDING = 24; - private const int BORDER_WIDTH = 7; - - private int drawerItemHeight; - - public int MinWidth; - private int _lastMouseY; - private int _lastLocationY; - - public MaterialDrawer(RightToLeft rightToLeft) - { - RightToLeft = rightToLeft; - SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); - Height = 120; - Width = 250; - IndicatorWidth = 0; - _isOpen = false; - ShowIconsWhenHidden = false; - AutoHide = false; - AutoShow = false; - HighlightWithAccent = true; - BackgroundWithAccent = false; - - _showHideAnimManager = new AnimationManager - { - AnimationType = AnimationType.EaseInOut, - Increment = 0.04 - }; - _showHideAnimManager.OnAnimationProgress += sender => - { - Invalidate(); - showHideAnimation(); - }; - _showHideAnimManager.OnAnimationFinished += sender => - { - if (_baseTabControl != null && _drawerItemRects.Count > 0) - rippleSize = _drawerItemRects[_baseTabControl.SelectedIndex].Width; - if (_isOpen) - { - DrawerEndOpen?.Invoke(this); - } - else - { - DrawerEndClose?.Invoke(this); - } - }; - - SkinManager.ColorSchemeChanged += sender => - { - preProcessIcons(); - }; - - SkinManager.ThemeChanged += sender => - { - preProcessIcons(); - }; - - _clickAnimManager = new AnimationManager - { - AnimationType = AnimationType.EaseOut, - Increment = 0.04 - }; - _clickAnimManager.OnAnimationProgress += sender => Invalidate(); - - MouseWheel += MaterialDrawer_MouseWheel; - } - - private void MaterialDrawer_MouseWheel(object sender, MouseEventArgs e) - { - int step = 20; - if (e.Delta > 0) - { - if (Location.Y < 0) - { - Location = new Point(Location.X, Location.Y + step > 0 ? 0 : Location.Y + step); - Height = Location.Y + step > 0 ? Parent.Height : Height - step; - } - } - else - { - if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) - { - Location = new Point(Location.X, Location.Y - step); - Height += step; - } - } - } - - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected override void InitLayout() - { - drawerItemHeight = TAB_HEADER_PADDING * 2 - SkinManager.FORM_PADDING / 2; - MinWidth = (int)(SkinManager.FORM_PADDING * 1.5 + drawerItemHeight); - _showHideAnimManager.SetProgress(_isOpen ? 0 : 1); - showHideAnimation(); - Invalidate(); - - base.InitLayout(); - } - - private void showHideAnimation() - { - var showHideAnimProgress = _showHideAnimManager.GetProgress(); - if (_showHideAnimManager.IsAnimating()) - { - var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; - if (ShowIconsWhenHidden) - { - Location = new Point((int)((-Width + MinWidth) * showHideAnimProgress) * rtlDir, Location.Y); - } - else - { - Location = new Point((int)(-Width * showHideAnimProgress) * rtlDir, Location.Y); - } - } - else - { - if (_isOpen) - { - Location = new Point(0, Location.Y); - } - else - { - var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; - if (ShowIconsWhenHidden) - { - Location = new Point((int)(-Width + MinWidth) * rtlDir, Location.Y); - } - else - { - Location = new Point(-Width * rtlDir, Location.Y); - } - } - } - UpdateTabRects(); - } - - protected override void OnPaint(PaintEventArgs e) - { - Paint(e); - } - - private new void Paint(PaintEventArgs e) - { - var g = e.Graphics; - g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; - - // redraw stuff - g.Clear(UseColors ? SkinManager.ColorScheme.PrimaryColor : SkinManager.BackdropColor); - - if (_baseTabControl == null) - return; - - if (!_clickAnimManager.IsAnimating() || _drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) - UpdateTabRects(); - - if (_drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) - return; - - // Click Animation - var clickAnimProgress = _clickAnimManager.GetProgress(); - // Show/Hide Drawer Animation - var showHideAnimProgress = _showHideAnimManager.GetProgress(); - var rSize = (int)(clickAnimProgress * rippleSize * 1.75); - - int dx = prevLocation - Location.X; - prevLocation = Location.X; - - // Ripple - if (_clickAnimManager.IsAnimating()) - { - var rippleBrush = new SolidBrush(Color.FromArgb((int)(70 - (clickAnimProgress * 70)), - UseColors ? SkinManager.ColorScheme.AccentColor : // Using colors - SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // light theme - SkinManager.ColorScheme.LightPrimaryColor)); // dark theme - - g.SetClip(_drawerItemPaths[_baseTabControl.SelectedIndex]); - g.FillEllipse(rippleBrush, new Rectangle(_animationSource.X + dx - (rSize / 2), _animationSource.Y - rSize / 2, rSize, rSize)); - g.ResetClip(); - rippleBrush.Dispose(); - } - - // Draw menu items - foreach (TabPage tabPage in _baseTabControl.TabPages) - { - var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); - - // Background - Brush bgBrush = new SolidBrush(Color.FromArgb(CalculateAlpha(60, 0, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), - UseColors ? _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.LightPrimaryColor : // using colors - _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : // defaul accent - SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // default light - SkinManager.ColorScheme.LightPrimaryColor)); // default dark - g.FillPath(bgBrush, _drawerItemPaths[currentTabIndex]); - bgBrush.Dispose(); - - // Text - Color textColor = Color.FromArgb(CalculateAlphaZeroWhenClosed(SkinManager.TextHighEmphasisColor.A, UseColors ? SkinManager.TextMediumEmphasisColor.A : 255, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), // alpha - UseColors ? (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) // Use colors - selected - : SkinManager.ColorScheme.TextColor) : // Use colors - not selected - (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) : // selected - SkinManager.TextHighEmphasisColor)); - - IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2, RightToLeft); - - Rectangle textRect = _drawerItemRects[currentTabIndex]; - var textRectX = RightToLeft == RightToLeft.Yes ? SkinManager.FORM_PADDING : _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); - textRect.X += textRectX; - textRect.Width -= SkinManager.FORM_PADDING << 2; - - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - var direction = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle : NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; - NativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, direction); - } - - // Icons - if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) - { - var rectangleX = RightToLeft == RightToLeft.Yes ? Width - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width/2)*2) - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1) : - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1); - Rectangle iconRect = new Rectangle( - rectangleX, - _drawerItemRects[currentTabIndex].Y + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Height >> 1), - iconsSize[tabPage.ImageKey].Width + 18, iconsSize[tabPage.ImageKey].Height); - - if (ShowIconsWhenHidden) - { - iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); - iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); - } - - g.FillRectangle(currentTabIndex == _baseTabControl.SelectedIndex ? iconsSelectedBrushes[tabPage.ImageKey] : iconsBrushes[tabPage.ImageKey], iconRect); - } - } - - // Draw divider if not using colors - if (!UseColors) - { - using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) - { - g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); - } - } - - // Animate tab indicator - var previousSelectedTabIndexIfHasOne = _previousSelectedTabIndex == -1 ? _baseTabControl.SelectedIndex : _previousSelectedTabIndex; - var previousActiveTabRect = _drawerItemRects[previousSelectedTabIndexIfHasOne]; - var activeTabPageRect = _drawerItemRects[_baseTabControl.SelectedIndex]; - - var y = previousActiveTabRect.Y + (int)((activeTabPageRect.Y - previousActiveTabRect.Y) * clickAnimProgress); - var x = ShowIconsWhenHidden ? -Location.X : 0; - var height = drawerItemHeight; - - g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, IndicatorWidth, height); - } - - public new void Show() - { - _isOpen = true; - DrawerStateChanged?.Invoke(this); - DrawerBeginOpen?.Invoke(this); - _showHideAnimManager.StartNewAnimation(AnimationDirection.Out); - } - - public new void Hide() - { - _isOpen = false; - DrawerStateChanged?.Invoke(this); - DrawerBeginClose?.Invoke(this); - _showHideAnimManager.StartNewAnimation(AnimationDirection.In); - } - - public void Toggle() - { - if (_isOpen) - Hide(); - else - Show(); - } - - private int CalculateAlphaZeroWhenClosed(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) - { - // Drawer is closed - if (!_isOpen && !_showHideAnimManager.IsAnimating()) - { - return 0; - } - // Active menu (no change) - if (tabIndex == _baseTabControl.SelectedIndex && (!_clickAnimManager.IsAnimating() || _showHideAnimManager.IsAnimating())) - { - return (int)(primaryA * showHideAnimProgress); - } - // Previous menu (changing) - if (tabIndex == _previousSelectedTabIndex && !_showHideAnimManager.IsAnimating()) - { - return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); - } - // Inactive menu (no change) - if (tabIndex != _baseTabControl.SelectedIndex) - { - return (int)(secondaryA * showHideAnimProgress); - } - // Active menu (changing) - return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); - } - - private int CalculateAlpha(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) - { - if (tabIndex == _baseTabControl.SelectedIndex && !_clickAnimManager.IsAnimating()) - { - return (int)(primaryA); - } - if (tabIndex != _previousSelectedTabIndex && tabIndex != _baseTabControl.SelectedIndex) - { - return secondaryA; - } - if (tabIndex == _previousSelectedTabIndex) - { - return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); - } - return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); - } - - protected override void OnMouseClick(MouseEventArgs e) - { - base.OnMouseClick(e); - - if (_drawerItemRects == null) - UpdateTabRects(); - for (var i = 0; i < _drawerItemRects.Count; i++) - { - if (_drawerItemRects[i].Contains(e.Location) && _lastLocationY == Location.Y) - { - _baseTabControl.SelectedIndex = i; - if (AutoHide && !AutoShow) - Hide(); - } - } - - _animationSource = e.Location; - } - - protected override void OnMouseDown(MouseEventArgs e) - { - _lastMouseY = e.Y; - _lastLocationY = Location.Y; // memorize Y location of drawer - base.OnMouseDown(e); - if (DesignMode) - return; - MouseState = MouseState.DOWN; - } - - protected override void OnMouseUp(MouseEventArgs e) - { - base.OnMouseUp(e); - if (DesignMode) - return; - MouseState = MouseState.OUT; - } - - protected override void OnMouseMove(MouseEventArgs e) - { - if (DesignMode) - return; - - if (e.Button == MouseButtons.Left && e.Y != _lastMouseY && (Location.Y < 0 || Height < (8 + drawerItemHeight) * _drawerItemRects.Count)) - { - int diff = e.Y - _lastMouseY; - if (diff > 0) - { - if (Location.Y < 0) - { - Location = new Point(Location.X, Location.Y + diff > 0 ? 0 : Location.Y + diff); - Height = Parent.Height + Math.Abs(Location.Y); - } - } - else - { - if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) - { - Location = new Point(Location.X, Location.Y + diff); - Height = Parent.Height + Math.Abs(Location.Y); - } - } - //return; - } - - base.OnMouseMove(e); - - if (_drawerItemRects == null) - UpdateTabRects(); - - Cursor previousCursor = Cursor; - - if (e.Location.X + this.Location.X < BORDER_WIDTH) - { - if (e.Location.Y > this.Height - BORDER_WIDTH) - Cursor = Cursors.SizeNESW; //Bottom Left - else - Cursor = Cursors.SizeWE; //Left - } - else if (e.Location.Y > this.Height - BORDER_WIDTH) - { - Cursor = Cursors.SizeNS; //Bottom - } - else - { - if (e.Location.Y < _drawerItemRects[_drawerItemRects.Count - 1].Bottom && (e.Location.X + this.Location.X) >= BORDER_WIDTH) - Cursor = Cursors.Hand; - else - Cursor = Cursors.Default; - } - - if (previousCursor != Cursor) CursorUpdate?.Invoke(this, Cursor); - - } - - protected override void OnMouseEnter(EventArgs e) - { - base.OnMouseEnter(e); - if (AutoShow && _isOpen==false) - { - Show(); - } - } - - protected override void OnMouseLeave(EventArgs e) - { - base.OnMouseLeave(e); - - if (MouseState != MouseState.DOWN) - { - Cursor = Cursors.Default; - CursorUpdate?.Invoke(this, Cursor); - } - - if (AutoShow) - { - Hide(); - } - } - - private void UpdateTabRects() - { - //If there isn't a base tab control, the rects shouldn't be calculated - //or if there aren't tab pages in the base tab control, the list should just be empty - if (_baseTabControl == null || _baseTabControl.TabCount == 0 || SkinManager == null || _drawerItemRects == null) - { - _drawerItemRects = new List(); - _drawerItemPaths = new List(); - return; - } - - if (_drawerItemRects.Count != _baseTabControl.TabCount) - { - _drawerItemRects = new List(_baseTabControl.TabCount); - _drawerItemPaths = new List(_baseTabControl.TabCount); - - for (var i = 0; i < _baseTabControl.TabCount; i++) - { - _drawerItemRects.Add(new Rectangle()); - _drawerItemPaths.Add(new GraphicsPath()); - } - } - - //Calculate the bounds of each tab header specified in the base tab control - for (int i = 0; i < _baseTabControl.TabPages.Count; i++) - { - var LocationX = this.RightToLeft == RightToLeft.Yes ? 0 : Location.X; - _drawerItemRects[i] = (new Rectangle( - (int)(SkinManager.FORM_PADDING * 0.75) - (ShowIconsWhenHidden ? LocationX : 0), - (TAB_HEADER_PADDING * 2) * i + (int)(SkinManager.FORM_PADDING >> 1), - (Width + (ShowIconsWhenHidden ? LocationX : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, - drawerItemHeight)); - - _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, _drawerItemRects[i].Width, _drawerItemRects[i].Height), 4); - } - } - } -} diff --git a/MaterialSkin/Controls/MaterialDrawer - Copy (3).cs b/MaterialSkin/Controls/MaterialDrawer - Copy (3).cs deleted file mode 100644 index 4006c3ce..00000000 --- a/MaterialSkin/Controls/MaterialDrawer - Copy (3).cs +++ /dev/null @@ -1,787 +0,0 @@ -namespace MaterialSkin.Controls -{ - using MaterialSkin.Animations; - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Drawing2D; - using System.Drawing.Imaging; - using System.Drawing.Text; - using System.Windows.Forms; - - public class MaterialDrawer : Control, IMaterialControl - { - // TODO: Invalidate when changing custom properties - - private bool _showIconsWhenHidden; - public new RightToLeft RightToLeft; - - [Category("Drawer")] - public bool ShowIconsWhenHidden - { - get - { - return _showIconsWhenHidden; - } - set - { - if (_showIconsWhenHidden != value) - { - _showIconsWhenHidden = value; - UpdateTabRects(); - preProcessIcons(); - showHideAnimation(); - Paint(new PaintEventArgs(CreateGraphics(), ClientRectangle)); - DrawerShowIconsWhenHiddenChanged?.Invoke(this); - } - } - } - - private bool _isOpen; - - [Category("Drawer")] - public bool IsOpen - { - get - { - return _isOpen; - } - set - { - _isOpen = value; - if (value) - Show(); - else - Hide(); - } - } - - [Category("Drawer")] - public bool AutoHide { get; set; } - - [Category("Drawer")] - public bool AutoShow { get; set; } - - [Category("Drawer")] - private bool _useColors; - - public bool UseColors - { - get - { - return _useColors; - } - set - { - _useColors = value; - preProcessIcons(); - Invalidate(); - } - } - - [Category("Drawer")] - private bool _highlightWithAccent; - - public bool HighlightWithAccent - { - get - { - return _highlightWithAccent; - } - set - { - _highlightWithAccent = value; - preProcessIcons(); - Invalidate(); - } - } - - [Category("Drawer")] - private bool _backgroundWithAccent; - - public bool BackgroundWithAccent - { - get - { - return _backgroundWithAccent; - } - set - { - _backgroundWithAccent = value; - Invalidate(); - } - } - - [Category("Drawer")] - public int IndicatorWidth { get; set; } - - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - public delegate void DrawerStateHandler(object sender); - - public event DrawerStateHandler DrawerStateChanged; - - public event DrawerStateHandler DrawerBeginOpen; - - public event DrawerStateHandler DrawerEndOpen; - - public event DrawerStateHandler DrawerBeginClose; - - public event DrawerStateHandler DrawerEndClose; - - public event DrawerStateHandler DrawerShowIconsWhenHiddenChanged; - - public event EventHandler CursorUpdate; - - // icons - private Dictionary iconsBrushes; - - private Dictionary iconsSelectedBrushes; - private Dictionary iconsSize; - private int prevLocation; - - private int rippleSize = 0; - - private MaterialTabControl _baseTabControl; - - [Category("Behavior")] - public MaterialTabControl BaseTabControl - { - get { return _baseTabControl; } - set - { - _baseTabControl = value; - if (_baseTabControl == null) - return; - - UpdateTabRects(); - preProcessIcons(); - - // Other helpers - - _previousSelectedTabIndex = _baseTabControl.SelectedIndex; - _baseTabControl.Deselected += (sender, args) => - { - _previousSelectedTabIndex = _baseTabControl.SelectedIndex; - }; - _baseTabControl.SelectedIndexChanged += (sender, args) => - { - _clickAnimManager.SetProgress(0); - _clickAnimManager.StartNewAnimation(AnimationDirection.In); - }; - _baseTabControl.ControlAdded += delegate - { - Invalidate(); - }; - _baseTabControl.ControlRemoved += delegate - { - Invalidate(); - }; - } - } - - private void preProcessIcons() - { - // pre-process and pre-allocate texture brushes (icons) - if (_baseTabControl == null || _baseTabControl.TabCount == 0 || _baseTabControl.ImageList == null || _drawerItemRects == null || _drawerItemRects.Count == 0) - return; - - // Calculate lightness and color - float l = UseColors ? SkinManager.ColorScheme.TextColor.R / 255 : SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? 0f : 1f; - float r = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.R : SkinManager.ColorScheme.PrimaryColor.R) / 255f; - float g = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.G : SkinManager.ColorScheme.PrimaryColor.G) / 255f; - float b = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.B : SkinManager.ColorScheme.PrimaryColor.B) / 255f; - - // Create matrices - float[][] matrixGray = { - new float[] { 0, 0, 0, 0, 0}, // Red scale factor - new float[] { 0, 0, 0, 0, 0}, // Green scale factor - new float[] { 0, 0, 0, 0, 0}, // Blue scale factor - new float[] { 0, 0, 0, .7f, 0}, // alpha scale factor - new float[] { l, l, l, 0, 1}};// offset - - float[][] matrixColor = { - new float[] { 0, 0, 0, 0, 0}, // Red scale factor - new float[] { 0, 0, 0, 0, 0}, // Green scale factor - new float[] { 0, 0, 0, 0, 0}, // Blue scale factor - new float[] { 0, 0, 0, 1, 0}, // alpha scale factor - new float[] { r, g, b, 0, 1}};// offset - - ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); - ColorMatrix colorMatrixColor = new ColorMatrix(matrixColor); - - ImageAttributes grayImageAttributes = new ImageAttributes(); - ImageAttributes colorImageAttributes = new ImageAttributes(); - - // Set color matrices - grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); - colorImageAttributes.SetColorMatrix(colorMatrixColor, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); - - // Create brushes - iconsBrushes = new Dictionary(_baseTabControl.TabPages.Count); - iconsSelectedBrushes = new Dictionary(_baseTabControl.TabPages.Count); - iconsSize = new Dictionary(_baseTabControl.TabPages.Count); - - foreach (TabPage tabPage in _baseTabControl.TabPages) - { - // skip items without image - if (String.IsNullOrEmpty(tabPage.ImageKey) || _drawerItemRects == null) - continue; - - // Image Rect - Rectangle destRect = new Rectangle(0, 0, _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); - - // Create a pre-processed copy of the image (GRAY) - Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); - using (Graphics gGray = Graphics.FromImage(bgray)) - { - gGray.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], - new Point[] { - new Point(0, 0), - new Point(destRect.Width, 0), - new Point(0, destRect.Height), - }, - destRect, GraphicsUnit.Pixel, grayImageAttributes); - } - - // Create a pre-processed copy of the image (PRIMARY COLOR) - Bitmap bcolor = new Bitmap(destRect.Width, destRect.Height); - using (Graphics gColor = Graphics.FromImage(bcolor)) - { - gColor.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], - new Point[] { - new Point(0, 0), - new Point(destRect.Width, 0), - new Point(0, destRect.Height), - }, - destRect, GraphicsUnit.Pixel, colorImageAttributes); - } - - // added processed image to brush for drawing - TextureBrush textureBrushGray = new TextureBrush(bgray); - TextureBrush textureBrushColor = new TextureBrush(bcolor); - - textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; - textureBrushColor.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; - - // Translate the brushes to the correct positions - var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); - var rectangleX = RightToLeft == RightToLeft.Yes ? Width - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2) * 2) - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)) - : (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)); - Rectangle iconRect = new Rectangle( - rectangleX, - _drawerItemRects[currentTabIndex].Y + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2), - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width , _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); - - textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, - iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); - textureBrushColor.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, - iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); - - // add to dictionary - iconsBrushes.Add(tabPage.ImageKey, textureBrushGray); - iconsSelectedBrushes.Add(tabPage.ImageKey, textureBrushColor); - iconsSize.Add(tabPage.ImageKey, new Rectangle(0, 0, iconRect.Width, iconRect.Height)); - } - } - - private int _previousSelectedTabIndex; - - private Point _animationSource; - - private readonly AnimationManager _clickAnimManager; - - private readonly AnimationManager _showHideAnimManager; - - private List _drawerItemRects; - private List _drawerItemPaths; - - private const int TAB_HEADER_PADDING = 24; - private const int BORDER_WIDTH = 7; - - private int drawerItemHeight; - - public int MinWidth; - private int _lastMouseY; - private int _lastLocationY; - - public MaterialDrawer(RightToLeft rightToLeft) - { - RightToLeft = rightToLeft; - SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); - Height = 120; - Width = 250; - IndicatorWidth = 0; - _isOpen = false; - ShowIconsWhenHidden = false; - AutoHide = false; - AutoShow = false; - HighlightWithAccent = true; - BackgroundWithAccent = false; - - _showHideAnimManager = new AnimationManager - { - AnimationType = AnimationType.EaseInOut, - Increment = 0.04 - }; - _showHideAnimManager.OnAnimationProgress += sender => - { - Invalidate(); - showHideAnimation(); - }; - _showHideAnimManager.OnAnimationFinished += sender => - { - if (_baseTabControl != null && _drawerItemRects.Count > 0) - rippleSize = _drawerItemRects[_baseTabControl.SelectedIndex].Width; - if (_isOpen) - { - DrawerEndOpen?.Invoke(this); - } - else - { - DrawerEndClose?.Invoke(this); - } - }; - - SkinManager.ColorSchemeChanged += sender => - { - preProcessIcons(); - }; - - SkinManager.ThemeChanged += sender => - { - preProcessIcons(); - }; - - _clickAnimManager = new AnimationManager - { - AnimationType = AnimationType.EaseOut, - Increment = 0.04 - }; - _clickAnimManager.OnAnimationProgress += sender => Invalidate(); - - MouseWheel += MaterialDrawer_MouseWheel; - } - - private void MaterialDrawer_MouseWheel(object sender, MouseEventArgs e) - { - int step = 20; - if (e.Delta > 0) - { - if (Location.Y < 0) - { - Location = new Point(Location.X, Location.Y + step > 0 ? 0 : Location.Y + step); - Height = Location.Y + step > 0 ? Parent.Height : Height - step; - } - } - else - { - if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) - { - Location = new Point(Location.X, Location.Y - step); - Height += step; - } - } - } - - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected override void InitLayout() - { - drawerItemHeight = TAB_HEADER_PADDING * 2 - SkinManager.FORM_PADDING / 2; - MinWidth = (int)(SkinManager.FORM_PADDING * 1.5 + drawerItemHeight); - _showHideAnimManager.SetProgress(_isOpen ? 0 : 1); - showHideAnimation(); - Invalidate(); - - base.InitLayout(); - } - - private void showHideAnimation() - { - var showHideAnimProgress = _showHideAnimManager.GetProgress(); - if (_showHideAnimManager.IsAnimating()) - { - var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; - if (ShowIconsWhenHidden) - { - Location = new Point((int)((-Width + MinWidth) * showHideAnimProgress) * rtlDir, Location.Y); - } - else - { - Location = new Point((int)(-Width * showHideAnimProgress) * rtlDir, Location.Y); - } - } - else - { - if (_isOpen) - { - Location = new Point(0, Location.Y); - } - else - { - var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; - if (ShowIconsWhenHidden) - { - Location = new Point((int)(-Width + MinWidth) * rtlDir, Location.Y); - } - else - { - Location = new Point(-Width * rtlDir, Location.Y); - } - } - } - UpdateTabRects(); - } - - protected override void OnPaint(PaintEventArgs e) - { - Paint(e); - } - - private new void Paint(PaintEventArgs e) - { - var g = e.Graphics; - g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; - - // redraw stuff - g.Clear(UseColors ? SkinManager.ColorScheme.PrimaryColor : SkinManager.BackdropColor); - - if (_baseTabControl == null) - return; - - if (!_clickAnimManager.IsAnimating() || _drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) - UpdateTabRects(); - - if (_drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) - return; - - // Click Animation - var clickAnimProgress = _clickAnimManager.GetProgress(); - // Show/Hide Drawer Animation - var showHideAnimProgress = _showHideAnimManager.GetProgress(); - var rSize = (int)(clickAnimProgress * rippleSize * 1.75); - - int dx = prevLocation - Location.X; - prevLocation = Location.X; - - // Ripple - if (_clickAnimManager.IsAnimating()) - { - var rippleBrush = new SolidBrush(Color.FromArgb((int)(70 - (clickAnimProgress * 70)), - UseColors ? SkinManager.ColorScheme.AccentColor : // Using colors - SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // light theme - SkinManager.ColorScheme.LightPrimaryColor)); // dark theme - - g.SetClip(_drawerItemPaths[_baseTabControl.SelectedIndex]); - g.FillEllipse(rippleBrush, new Rectangle(_animationSource.X + dx - (rSize / 2), _animationSource.Y - rSize / 2, rSize, rSize)); - g.ResetClip(); - rippleBrush.Dispose(); - } - - // Draw menu items - foreach (TabPage tabPage in _baseTabControl.TabPages) - { - var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); - - // Background - Brush bgBrush = new SolidBrush(Color.FromArgb(CalculateAlpha(60, 0, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), - UseColors ? _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.LightPrimaryColor : // using colors - _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : // defaul accent - SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // default light - SkinManager.ColorScheme.LightPrimaryColor)); // default dark - g.FillPath(bgBrush, _drawerItemPaths[currentTabIndex]); - bgBrush.Dispose(); - - // Text - Color textColor = Color.FromArgb(CalculateAlphaZeroWhenClosed(SkinManager.TextHighEmphasisColor.A, UseColors ? SkinManager.TextMediumEmphasisColor.A : 255, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), // alpha - UseColors ? (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) // Use colors - selected - : SkinManager.ColorScheme.TextColor) : // Use colors - not selected - (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) : // selected - SkinManager.TextHighEmphasisColor)); - - IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2, RightToLeft); - - Rectangle textRect = _drawerItemRects[currentTabIndex]; - var textRectX = RightToLeft == RightToLeft.Yes ? SkinManager.FORM_PADDING : _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); - textRect.X += textRectX; - textRect.Width -= SkinManager.FORM_PADDING << 2; - - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - var direction = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle : NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; - NativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, direction); - } - - // Icons - if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) - { - var rectangleX = RightToLeft == RightToLeft.Yes ? Width - ((_baseTabControl.ImageList.Images[tabPage.ImageKey].Width/2)*2) - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1) : - _drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1); - Rectangle iconRect = new Rectangle( - rectangleX, - _drawerItemRects[currentTabIndex].Y + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Height >> 1), - iconsSize[tabPage.ImageKey].Width, iconsSize[tabPage.ImageKey].Height); - - if (ShowIconsWhenHidden) - { - iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); - iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); - } - - g.FillRectangle(currentTabIndex == _baseTabControl.SelectedIndex ? iconsSelectedBrushes[tabPage.ImageKey] : iconsBrushes[tabPage.ImageKey], iconRect); - } - } - - // Draw divider if not using colors - if (!UseColors) - { - using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) - { - g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); - } - } - - // Animate tab indicator - var previousSelectedTabIndexIfHasOne = _previousSelectedTabIndex == -1 ? _baseTabControl.SelectedIndex : _previousSelectedTabIndex; - var previousActiveTabRect = _drawerItemRects[previousSelectedTabIndexIfHasOne]; - var activeTabPageRect = _drawerItemRects[_baseTabControl.SelectedIndex]; - - var y = previousActiveTabRect.Y + (int)((activeTabPageRect.Y - previousActiveTabRect.Y) * clickAnimProgress); - var x = ShowIconsWhenHidden ? -Location.X : 0; - var height = drawerItemHeight; - - g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, IndicatorWidth, height); - } - - public new void Show() - { - _isOpen = true; - DrawerStateChanged?.Invoke(this); - DrawerBeginOpen?.Invoke(this); - _showHideAnimManager.StartNewAnimation(AnimationDirection.Out); - } - - public new void Hide() - { - _isOpen = false; - DrawerStateChanged?.Invoke(this); - DrawerBeginClose?.Invoke(this); - _showHideAnimManager.StartNewAnimation(AnimationDirection.In); - } - - public void Toggle() - { - if (_isOpen) - Hide(); - else - Show(); - } - - private int CalculateAlphaZeroWhenClosed(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) - { - // Drawer is closed - if (!_isOpen && !_showHideAnimManager.IsAnimating()) - { - return 0; - } - // Active menu (no change) - if (tabIndex == _baseTabControl.SelectedIndex && (!_clickAnimManager.IsAnimating() || _showHideAnimManager.IsAnimating())) - { - return (int)(primaryA * showHideAnimProgress); - } - // Previous menu (changing) - if (tabIndex == _previousSelectedTabIndex && !_showHideAnimManager.IsAnimating()) - { - return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); - } - // Inactive menu (no change) - if (tabIndex != _baseTabControl.SelectedIndex) - { - return (int)(secondaryA * showHideAnimProgress); - } - // Active menu (changing) - return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); - } - - private int CalculateAlpha(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) - { - if (tabIndex == _baseTabControl.SelectedIndex && !_clickAnimManager.IsAnimating()) - { - return (int)(primaryA); - } - if (tabIndex != _previousSelectedTabIndex && tabIndex != _baseTabControl.SelectedIndex) - { - return secondaryA; - } - if (tabIndex == _previousSelectedTabIndex) - { - return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); - } - return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); - } - - protected override void OnMouseClick(MouseEventArgs e) - { - base.OnMouseClick(e); - - if (_drawerItemRects == null) - UpdateTabRects(); - for (var i = 0; i < _drawerItemRects.Count; i++) - { - if (_drawerItemRects[i].Contains(e.Location) && _lastLocationY == Location.Y) - { - _baseTabControl.SelectedIndex = i; - if (AutoHide && !AutoShow) - Hide(); - } - } - - _animationSource = e.Location; - } - - protected override void OnMouseDown(MouseEventArgs e) - { - _lastMouseY = e.Y; - _lastLocationY = Location.Y; // memorize Y location of drawer - base.OnMouseDown(e); - if (DesignMode) - return; - MouseState = MouseState.DOWN; - } - - protected override void OnMouseUp(MouseEventArgs e) - { - base.OnMouseUp(e); - if (DesignMode) - return; - MouseState = MouseState.OUT; - } - - protected override void OnMouseMove(MouseEventArgs e) - { - if (DesignMode) - return; - - if (e.Button == MouseButtons.Left && e.Y != _lastMouseY && (Location.Y < 0 || Height < (8 + drawerItemHeight) * _drawerItemRects.Count)) - { - int diff = e.Y - _lastMouseY; - if (diff > 0) - { - if (Location.Y < 0) - { - Location = new Point(Location.X, Location.Y + diff > 0 ? 0 : Location.Y + diff); - Height = Parent.Height + Math.Abs(Location.Y); - } - } - else - { - if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) - { - Location = new Point(Location.X, Location.Y + diff); - Height = Parent.Height + Math.Abs(Location.Y); - } - } - //return; - } - - base.OnMouseMove(e); - - if (_drawerItemRects == null) - UpdateTabRects(); - - Cursor previousCursor = Cursor; - - if (e.Location.X + this.Location.X < BORDER_WIDTH) - { - if (e.Location.Y > this.Height - BORDER_WIDTH) - Cursor = Cursors.SizeNESW; //Bottom Left - else - Cursor = Cursors.SizeWE; //Left - } - else if (e.Location.Y > this.Height - BORDER_WIDTH) - { - Cursor = Cursors.SizeNS; //Bottom - } - else - { - if (e.Location.Y < _drawerItemRects[_drawerItemRects.Count - 1].Bottom && (e.Location.X + this.Location.X) >= BORDER_WIDTH) - Cursor = Cursors.Hand; - else - Cursor = Cursors.Default; - } - - if (previousCursor != Cursor) CursorUpdate?.Invoke(this, Cursor); - - } - - protected override void OnMouseEnter(EventArgs e) - { - base.OnMouseEnter(e); - if (AutoShow && _isOpen==false) - { - Show(); - } - } - - protected override void OnMouseLeave(EventArgs e) - { - base.OnMouseLeave(e); - - if (MouseState != MouseState.DOWN) - { - Cursor = Cursors.Default; - CursorUpdate?.Invoke(this, Cursor); - } - - if (AutoShow) - { - Hide(); - } - } - - private void UpdateTabRects() - { - //If there isn't a base tab control, the rects shouldn't be calculated - //or if there aren't tab pages in the base tab control, the list should just be empty - if (_baseTabControl == null || _baseTabControl.TabCount == 0 || SkinManager == null || _drawerItemRects == null) - { - _drawerItemRects = new List(); - _drawerItemPaths = new List(); - return; - } - - if (_drawerItemRects.Count != _baseTabControl.TabCount) - { - _drawerItemRects = new List(_baseTabControl.TabCount); - _drawerItemPaths = new List(_baseTabControl.TabCount); - - for (var i = 0; i < _baseTabControl.TabCount; i++) - { - _drawerItemRects.Add(new Rectangle()); - _drawerItemPaths.Add(new GraphicsPath()); - } - } - - //Calculate the bounds of each tab header specified in the base tab control - for (int i = 0; i < _baseTabControl.TabPages.Count; i++) - { - var LocationX = this.RightToLeft == RightToLeft.Yes ? 0 : Location.X; - _drawerItemRects[i] = (new Rectangle( - (int)(SkinManager.FORM_PADDING * 0.75) - (ShowIconsWhenHidden ? LocationX : 0), - (TAB_HEADER_PADDING * 2) * i + (int)(SkinManager.FORM_PADDING >> 1), - (Width + (ShowIconsWhenHidden ? LocationX : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, - drawerItemHeight)); - - _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, _drawerItemRects[i].Width, _drawerItemRects[i].Height), 4); - } - } - } -} diff --git a/MaterialSkin/Controls/MaterialDrawer - Copy.cs b/MaterialSkin/Controls/MaterialDrawer - Copy.cs deleted file mode 100644 index 5276161f..00000000 --- a/MaterialSkin/Controls/MaterialDrawer - Copy.cs +++ /dev/null @@ -1,786 +0,0 @@ -namespace MaterialSkin.Controls -{ - using MaterialSkin.Animations; - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Drawing2D; - using System.Drawing.Imaging; - using System.Drawing.Text; - using System.Windows.Forms; - - public class MaterialDrawer : Control, IMaterialControl - { - // TODO: Invalidate when changing custom properties - - private bool _showIconsWhenHidden; - public new RightToLeft RightToLeft; - - [Category("Drawer")] - public bool ShowIconsWhenHidden - { - get - { - return _showIconsWhenHidden; - } - set - { - if (_showIconsWhenHidden != value) - { - _showIconsWhenHidden = value; - UpdateTabRects(); - preProcessIcons(); - showHideAnimation(); - Paint(new PaintEventArgs(CreateGraphics(), ClientRectangle)); - DrawerShowIconsWhenHiddenChanged?.Invoke(this); - } - } - } - - private bool _isOpen; - - [Category("Drawer")] - public bool IsOpen - { - get - { - return _isOpen; - } - set - { - _isOpen = value; - if (value) - Show(); - else - Hide(); - } - } - - [Category("Drawer")] - public bool AutoHide { get; set; } - - [Category("Drawer")] - public bool AutoShow { get; set; } - - [Category("Drawer")] - private bool _useColors; - - public bool UseColors - { - get - { - return _useColors; - } - set - { - _useColors = value; - preProcessIcons(); - Invalidate(); - } - } - - [Category("Drawer")] - private bool _highlightWithAccent; - - public bool HighlightWithAccent - { - get - { - return _highlightWithAccent; - } - set - { - _highlightWithAccent = value; - preProcessIcons(); - Invalidate(); - } - } - - [Category("Drawer")] - private bool _backgroundWithAccent; - - public bool BackgroundWithAccent - { - get - { - return _backgroundWithAccent; - } - set - { - _backgroundWithAccent = value; - Invalidate(); - } - } - - [Category("Drawer")] - public int IndicatorWidth { get; set; } - - [Browsable(false)] - public int Depth { get; set; } - - [Browsable(false)] - public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; - - [Browsable(false)] - public MouseState MouseState { get; set; } - - public delegate void DrawerStateHandler(object sender); - - public event DrawerStateHandler DrawerStateChanged; - - public event DrawerStateHandler DrawerBeginOpen; - - public event DrawerStateHandler DrawerEndOpen; - - public event DrawerStateHandler DrawerBeginClose; - - public event DrawerStateHandler DrawerEndClose; - - public event DrawerStateHandler DrawerShowIconsWhenHiddenChanged; - - public event EventHandler CursorUpdate; - - // icons - private Dictionary iconsBrushes; - - private Dictionary iconsSelectedBrushes; - private Dictionary iconsSize; - private int prevLocation; - - private int rippleSize = 0; - - private MaterialTabControl _baseTabControl; - - [Category("Behavior")] - public MaterialTabControl BaseTabControl - { - get { return _baseTabControl; } - set - { - _baseTabControl = value; - if (_baseTabControl == null) - return; - - UpdateTabRects(); - preProcessIcons(); - - // Other helpers - - _previousSelectedTabIndex = _baseTabControl.SelectedIndex; - _baseTabControl.Deselected += (sender, args) => - { - _previousSelectedTabIndex = _baseTabControl.SelectedIndex; - }; - _baseTabControl.SelectedIndexChanged += (sender, args) => - { - _clickAnimManager.SetProgress(0); - _clickAnimManager.StartNewAnimation(AnimationDirection.In); - }; - _baseTabControl.ControlAdded += delegate - { - Invalidate(); - }; - _baseTabControl.ControlRemoved += delegate - { - Invalidate(); - }; - } - } - - private void preProcessIcons() - { - // pre-process and pre-allocate texture brushes (icons) - if (_baseTabControl == null || _baseTabControl.TabCount == 0 || _baseTabControl.ImageList == null || _drawerItemRects == null || _drawerItemRects.Count == 0) - return; - - // Calculate lightness and color - float l = UseColors ? SkinManager.ColorScheme.TextColor.R / 255 : SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? 0f : 1f; - float r = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.R : SkinManager.ColorScheme.PrimaryColor.R) / 255f; - float g = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.G : SkinManager.ColorScheme.PrimaryColor.G) / 255f; - float b = (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor.B : SkinManager.ColorScheme.PrimaryColor.B) / 255f; - - // Create matrices - float[][] matrixGray = { - new float[] { 0, 0, 0, 0, 0}, // Red scale factor - new float[] { 0, 0, 0, 0, 0}, // Green scale factor - new float[] { 0, 0, 0, 0, 0}, // Blue scale factor - new float[] { 0, 0, 0, .7f, 0}, // alpha scale factor - new float[] { l, l, l, 0, 1}};// offset - - float[][] matrixColor = { - new float[] { 0, 0, 0, 0, 0}, // Red scale factor - new float[] { 0, 0, 0, 0, 0}, // Green scale factor - new float[] { 0, 0, 0, 0, 0}, // Blue scale factor - new float[] { 0, 0, 0, 1, 0}, // alpha scale factor - new float[] { r, g, b, 0, 1}};// offset - - ColorMatrix colorMatrixGray = new ColorMatrix(matrixGray); - ColorMatrix colorMatrixColor = new ColorMatrix(matrixColor); - - ImageAttributes grayImageAttributes = new ImageAttributes(); - ImageAttributes colorImageAttributes = new ImageAttributes(); - - // Set color matrices - grayImageAttributes.SetColorMatrix(colorMatrixGray, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); - colorImageAttributes.SetColorMatrix(colorMatrixColor, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); - - // Create brushes - iconsBrushes = new Dictionary(_baseTabControl.TabPages.Count); - iconsSelectedBrushes = new Dictionary(_baseTabControl.TabPages.Count); - iconsSize = new Dictionary(_baseTabControl.TabPages.Count); - - foreach (TabPage tabPage in _baseTabControl.TabPages) - { - // skip items without image - if (String.IsNullOrEmpty(tabPage.ImageKey) || _drawerItemRects == null) - continue; - - // Image Rect - Rectangle destRect = new Rectangle(0, 0, _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); - - // Create a pre-processed copy of the image (GRAY) - Bitmap bgray = new Bitmap(destRect.Width, destRect.Height); - using (Graphics gGray = Graphics.FromImage(bgray)) - { - gGray.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], - new Point[] { - new Point(0, 0), - new Point(destRect.Width, 0), - new Point(0, destRect.Height), - }, - destRect, GraphicsUnit.Pixel, grayImageAttributes); - } - - // Create a pre-processed copy of the image (PRIMARY COLOR) - Bitmap bcolor = new Bitmap(destRect.Width, destRect.Height); - using (Graphics gColor = Graphics.FromImage(bcolor)) - { - gColor.DrawImage(_baseTabControl.ImageList.Images[tabPage.ImageKey], - new Point[] { - new Point(0, 0), - new Point(destRect.Width, 0), - new Point(0, destRect.Height), - }, - destRect, GraphicsUnit.Pixel, colorImageAttributes); - } - - // added processed image to brush for drawing - TextureBrush textureBrushGray = new TextureBrush(bgray); - TextureBrush textureBrushColor = new TextureBrush(bcolor); - - textureBrushGray.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; - textureBrushColor.WrapMode = System.Drawing.Drawing2D.WrapMode.Clamp; - - // Translate the brushes to the correct positions - var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); - var rtlWidth = RightToLeft == RightToLeft.Yes ? Width - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width : 0; - Rectangle iconRect = new Rectangle( - rtlWidth - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2)), - _drawerItemRects[currentTabIndex].Y + (drawerItemHeight / 2) - (_baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2), - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width, _baseTabControl.ImageList.Images[tabPage.ImageKey].Height); - - textureBrushGray.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, - iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); - textureBrushColor.TranslateTransform(iconRect.X + iconRect.Width / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Width / 2, - iconRect.Y + iconRect.Height / 2 - _baseTabControl.ImageList.Images[tabPage.ImageKey].Height / 2); - - // add to dictionary - iconsBrushes.Add(tabPage.ImageKey, textureBrushGray); - iconsSelectedBrushes.Add(tabPage.ImageKey, textureBrushColor); - iconsSize.Add(tabPage.ImageKey, new Rectangle(0, 0, iconRect.Width, iconRect.Height)); - } - } - - private int _previousSelectedTabIndex; - - private Point _animationSource; - - private readonly AnimationManager _clickAnimManager; - - private readonly AnimationManager _showHideAnimManager; - - private List _drawerItemRects; - private List _drawerItemPaths; - - private const int TAB_HEADER_PADDING = 24; - private const int BORDER_WIDTH = 7; - - private int drawerItemHeight; - - public int MinWidth; - private int _lastMouseY; - private int _lastLocationY; - - public MaterialDrawer(RightToLeft rightToLeft) - { - RightToLeft = rightToLeft; - SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); - Height = 120; - Width = 250; - IndicatorWidth = 0; - _isOpen = false; - ShowIconsWhenHidden = false; - AutoHide = false; - AutoShow = false; - HighlightWithAccent = true; - BackgroundWithAccent = false; - - _showHideAnimManager = new AnimationManager - { - AnimationType = AnimationType.EaseInOut, - Increment = 0.04 - }; - _showHideAnimManager.OnAnimationProgress += sender => - { - Invalidate(); - showHideAnimation(); - }; - _showHideAnimManager.OnAnimationFinished += sender => - { - if (_baseTabControl != null && _drawerItemRects.Count > 0) - rippleSize = _drawerItemRects[_baseTabControl.SelectedIndex].Width; - if (_isOpen) - { - DrawerEndOpen?.Invoke(this); - } - else - { - DrawerEndClose?.Invoke(this); - } - }; - - SkinManager.ColorSchemeChanged += sender => - { - preProcessIcons(); - }; - - SkinManager.ThemeChanged += sender => - { - preProcessIcons(); - }; - - _clickAnimManager = new AnimationManager - { - AnimationType = AnimationType.EaseOut, - Increment = 0.04 - }; - _clickAnimManager.OnAnimationProgress += sender => Invalidate(); - - MouseWheel += MaterialDrawer_MouseWheel; - } - - private void MaterialDrawer_MouseWheel(object sender, MouseEventArgs e) - { - int step = 20; - if (e.Delta > 0) - { - if (Location.Y < 0) - { - Location = new Point(Location.X, Location.Y + step > 0 ? 0 : Location.Y + step); - Height = Location.Y + step > 0 ? Parent.Height : Height - step; - } - } - else - { - if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) - { - Location = new Point(Location.X, Location.Y - step); - Height += step; - } - } - } - - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected override void InitLayout() - { - drawerItemHeight = TAB_HEADER_PADDING * 2 - SkinManager.FORM_PADDING / 2; - MinWidth = (int)(SkinManager.FORM_PADDING * 1.5 + drawerItemHeight); - _showHideAnimManager.SetProgress(_isOpen ? 0 : 1); - showHideAnimation(); - Invalidate(); - - base.InitLayout(); - } - - private void showHideAnimation() - { - var showHideAnimProgress = _showHideAnimManager.GetProgress(); - if (_showHideAnimManager.IsAnimating()) - { - var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; - if (ShowIconsWhenHidden) - { - Location = new Point((int)((-Width + MinWidth) * showHideAnimProgress) * rtlDir, Location.Y); - } - else - { - Location = new Point((int)(-Width * showHideAnimProgress) * rtlDir, Location.Y); - } - } - else - { - if (_isOpen) - { - Location = new Point(0, Location.Y); - } - else - { - var rtlDir = RightToLeft == RightToLeft.Yes ? -1 : 1; - if (ShowIconsWhenHidden) - { - Location = new Point((int)(-Width + MinWidth) * rtlDir, Location.Y); - } - else - { - Location = new Point(-Width * rtlDir, Location.Y); - } - } - } - UpdateTabRects(); - } - - protected override void OnPaint(PaintEventArgs e) - { - Paint(e); - } - - private new void Paint(PaintEventArgs e) - { - var g = e.Graphics; - g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; - - // redraw stuff - g.Clear(UseColors ? SkinManager.ColorScheme.PrimaryColor : SkinManager.BackdropColor); - - if (_baseTabControl == null) - return; - - if (!_clickAnimManager.IsAnimating() || _drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) - UpdateTabRects(); - - if (_drawerItemRects == null || _drawerItemRects.Count != _baseTabControl.TabCount) - return; - - // Click Animation - var clickAnimProgress = _clickAnimManager.GetProgress(); - // Show/Hide Drawer Animation - var showHideAnimProgress = _showHideAnimManager.GetProgress(); - var rSize = (int)(clickAnimProgress * rippleSize * 1.75); - - int dx = prevLocation - Location.X; - prevLocation = Location.X; - - // Ripple - if (_clickAnimManager.IsAnimating()) - { - var rippleBrush = new SolidBrush(Color.FromArgb((int)(70 - (clickAnimProgress * 70)), - UseColors ? SkinManager.ColorScheme.AccentColor : // Using colors - SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // light theme - SkinManager.ColorScheme.LightPrimaryColor)); // dark theme - - g.SetClip(_drawerItemPaths[_baseTabControl.SelectedIndex]); - g.FillEllipse(rippleBrush, new Rectangle(_animationSource.X + dx - (rSize / 2), _animationSource.Y - rSize / 2, rSize, rSize)); - g.ResetClip(); - rippleBrush.Dispose(); - } - - // Draw menu items - foreach (TabPage tabPage in _baseTabControl.TabPages) - { - var currentTabIndex = _baseTabControl.TabPages.IndexOf(tabPage); - - // Background - Brush bgBrush = new SolidBrush(Color.FromArgb(CalculateAlpha(60, 0, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), - UseColors ? _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.LightPrimaryColor : // using colors - _backgroundWithAccent ? SkinManager.ColorScheme.AccentColor : // defaul accent - SkinManager.Theme == MaterialSkinManager.Themes.LIGHT ? SkinManager.ColorScheme.PrimaryColor : // default light - SkinManager.ColorScheme.LightPrimaryColor)); // default dark - g.FillPath(bgBrush, _drawerItemPaths[currentTabIndex]); - bgBrush.Dispose(); - - // Text - Color textColor = Color.FromArgb(CalculateAlphaZeroWhenClosed(SkinManager.TextHighEmphasisColor.A, UseColors ? SkinManager.TextMediumEmphasisColor.A : 255, currentTabIndex, clickAnimProgress, 1 - showHideAnimProgress), // alpha - UseColors ? (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) // Use colors - selected - : SkinManager.ColorScheme.TextColor) : // Use colors - not selected - (currentTabIndex == _baseTabControl.SelectedIndex ? (_highlightWithAccent ? SkinManager.ColorScheme.AccentColor : SkinManager.ColorScheme.PrimaryColor) : // selected - SkinManager.TextHighEmphasisColor)); - - IntPtr textFont = SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2, RightToLeft); - - Rectangle textRect = _drawerItemRects[currentTabIndex]; - var textRectX = RightToLeft == RightToLeft.Yes ? SkinManager.FORM_PADDING : _baseTabControl.ImageList != null ? drawerItemHeight : (int)(SkinManager.FORM_PADDING * 0.75); - textRect.X += textRectX; - textRect.Width -= SkinManager.FORM_PADDING << 2; - - using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) - { - var direction = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle : NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; - NativeText.DrawTransparentText(tabPage.Text, textFont, textColor, textRect.Location, textRect.Size, direction); - } - - // Icons - if (_baseTabControl.ImageList != null && !String.IsNullOrEmpty(tabPage.ImageKey)) - { - var rtlWidth = RightToLeft == RightToLeft.Yes ? Width - iconsSize[tabPage.ImageKey].Width : 0; - Rectangle iconRect = new Rectangle( - rtlWidth - (_drawerItemRects[currentTabIndex].X + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Width >> 1)), - _drawerItemRects[currentTabIndex].Y + (drawerItemHeight >> 1) - (iconsSize[tabPage.ImageKey].Height >> 1), - iconsSize[tabPage.ImageKey].Width, iconsSize[tabPage.ImageKey].Height); - - if (ShowIconsWhenHidden) - { - var rtldx = RightToLeft == RightToLeft.Yes ? Width - iconsSize[tabPage.ImageKey].Width : dx; - iconsBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); - iconsSelectedBrushes[tabPage.ImageKey].TranslateTransform(dx, 0); - } - - g.FillRectangle(currentTabIndex == _baseTabControl.SelectedIndex ? iconsSelectedBrushes[tabPage.ImageKey] : iconsBrushes[tabPage.ImageKey], iconRect); - } - } - - // Draw divider if not using colors - if (!UseColors) - { - using (Pen dividerPen = new Pen(SkinManager.DividersColor, 1)) - { - g.DrawLine(dividerPen, Width - 1, 0, Width - 1, Height); - } - } - - // Animate tab indicator - var previousSelectedTabIndexIfHasOne = _previousSelectedTabIndex == -1 ? _baseTabControl.SelectedIndex : _previousSelectedTabIndex; - var previousActiveTabRect = _drawerItemRects[previousSelectedTabIndexIfHasOne]; - var activeTabPageRect = _drawerItemRects[_baseTabControl.SelectedIndex]; - - var y = previousActiveTabRect.Y + (int)((activeTabPageRect.Y - previousActiveTabRect.Y) * clickAnimProgress); - var x = ShowIconsWhenHidden ? -Location.X : 0; - var height = drawerItemHeight; - - g.FillRectangle(SkinManager.ColorScheme.AccentBrush, x, y, IndicatorWidth, height); - } - - public new void Show() - { - _isOpen = true; - DrawerStateChanged?.Invoke(this); - DrawerBeginOpen?.Invoke(this); - _showHideAnimManager.StartNewAnimation(AnimationDirection.Out); - } - - public new void Hide() - { - _isOpen = false; - DrawerStateChanged?.Invoke(this); - DrawerBeginClose?.Invoke(this); - _showHideAnimManager.StartNewAnimation(AnimationDirection.In); - } - - public void Toggle() - { - if (_isOpen) - Hide(); - else - Show(); - } - - private int CalculateAlphaZeroWhenClosed(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) - { - // Drawer is closed - if (!_isOpen && !_showHideAnimManager.IsAnimating()) - { - return 0; - } - // Active menu (no change) - if (tabIndex == _baseTabControl.SelectedIndex && (!_clickAnimManager.IsAnimating() || _showHideAnimManager.IsAnimating())) - { - return (int)(primaryA * showHideAnimProgress); - } - // Previous menu (changing) - if (tabIndex == _previousSelectedTabIndex && !_showHideAnimManager.IsAnimating()) - { - return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); - } - // Inactive menu (no change) - if (tabIndex != _baseTabControl.SelectedIndex) - { - return (int)(secondaryA * showHideAnimProgress); - } - // Active menu (changing) - return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); - } - - private int CalculateAlpha(int primaryA, int secondaryA, int tabIndex, double clickAnimProgress, double showHideAnimProgress) - { - if (tabIndex == _baseTabControl.SelectedIndex && !_clickAnimManager.IsAnimating()) - { - return (int)(primaryA); - } - if (tabIndex != _previousSelectedTabIndex && tabIndex != _baseTabControl.SelectedIndex) - { - return secondaryA; - } - if (tabIndex == _previousSelectedTabIndex) - { - return primaryA - (int)((primaryA - secondaryA) * clickAnimProgress); - } - return secondaryA + (int)((primaryA - secondaryA) * clickAnimProgress); - } - - protected override void OnMouseClick(MouseEventArgs e) - { - base.OnMouseClick(e); - - if (_drawerItemRects == null) - UpdateTabRects(); - for (var i = 0; i < _drawerItemRects.Count; i++) - { - if (_drawerItemRects[i].Contains(e.Location) && _lastLocationY == Location.Y) - { - _baseTabControl.SelectedIndex = i; - if (AutoHide && !AutoShow) - Hide(); - } - } - - _animationSource = e.Location; - } - - protected override void OnMouseDown(MouseEventArgs e) - { - _lastMouseY = e.Y; - _lastLocationY = Location.Y; // memorize Y location of drawer - base.OnMouseDown(e); - if (DesignMode) - return; - MouseState = MouseState.DOWN; - } - - protected override void OnMouseUp(MouseEventArgs e) - { - base.OnMouseUp(e); - if (DesignMode) - return; - MouseState = MouseState.OUT; - } - - protected override void OnMouseMove(MouseEventArgs e) - { - if (DesignMode) - return; - - if (e.Button == MouseButtons.Left && e.Y != _lastMouseY && (Location.Y < 0 || Height < (8 + drawerItemHeight) * _drawerItemRects.Count)) - { - int diff = e.Y - _lastMouseY; - if (diff > 0) - { - if (Location.Y < 0) - { - Location = new Point(Location.X, Location.Y + diff > 0 ? 0 : Location.Y + diff); - Height = Parent.Height + Math.Abs(Location.Y); - } - } - else - { - if (Height < (8 + drawerItemHeight) * _drawerItemRects.Count) - { - Location = new Point(Location.X, Location.Y + diff); - Height = Parent.Height + Math.Abs(Location.Y); - } - } - //return; - } - - base.OnMouseMove(e); - - if (_drawerItemRects == null) - UpdateTabRects(); - - Cursor previousCursor = Cursor; - - if (e.Location.X + this.Location.X < BORDER_WIDTH) - { - if (e.Location.Y > this.Height - BORDER_WIDTH) - Cursor = Cursors.SizeNESW; //Bottom Left - else - Cursor = Cursors.SizeWE; //Left - } - else if (e.Location.Y > this.Height - BORDER_WIDTH) - { - Cursor = Cursors.SizeNS; //Bottom - } - else - { - if (e.Location.Y < _drawerItemRects[_drawerItemRects.Count - 1].Bottom && (e.Location.X + this.Location.X) >= BORDER_WIDTH) - Cursor = Cursors.Hand; - else - Cursor = Cursors.Default; - } - - if (previousCursor != Cursor) CursorUpdate?.Invoke(this, Cursor); - - } - - protected override void OnMouseEnter(EventArgs e) - { - base.OnMouseEnter(e); - if (AutoShow && _isOpen==false) - { - Show(); - } - } - - protected override void OnMouseLeave(EventArgs e) - { - base.OnMouseLeave(e); - - if (MouseState != MouseState.DOWN) - { - Cursor = Cursors.Default; - CursorUpdate?.Invoke(this, Cursor); - } - - if (AutoShow) - { - Hide(); - } - } - - private void UpdateTabRects() - { - //If there isn't a base tab control, the rects shouldn't be calculated - //or if there aren't tab pages in the base tab control, the list should just be empty - if (_baseTabControl == null || _baseTabControl.TabCount == 0 || SkinManager == null || _drawerItemRects == null) - { - _drawerItemRects = new List(); - _drawerItemPaths = new List(); - return; - } - - if (_drawerItemRects.Count != _baseTabControl.TabCount) - { - _drawerItemRects = new List(_baseTabControl.TabCount); - _drawerItemPaths = new List(_baseTabControl.TabCount); - - for (var i = 0; i < _baseTabControl.TabCount; i++) - { - _drawerItemRects.Add(new Rectangle()); - _drawerItemPaths.Add(new GraphicsPath()); - } - } - - //Calculate the bounds of each tab header specified in the base tab control - for (int i = 0; i < _baseTabControl.TabPages.Count; i++) - { - var LocationX = this.RightToLeft == RightToLeft.Yes ? 0 : Location.X; - _drawerItemRects[i] = (new Rectangle( - (int)(SkinManager.FORM_PADDING * 0.75) - (ShowIconsWhenHidden ? LocationX : 0), - (TAB_HEADER_PADDING * 2) * i + (int)(SkinManager.FORM_PADDING >> 1), - (Width + (ShowIconsWhenHidden ? LocationX : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, - drawerItemHeight)); - - _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, _drawerItemRects[i].Width, _drawerItemRects[i].Height), 4); - } - } - } -} diff --git a/MaterialSkin/Controls/MaterialDrawer.cs b/MaterialSkin/Controls/MaterialDrawer.cs index 6ebbc6ae..29e78914 100644 --- a/MaterialSkin/Controls/MaterialDrawer.cs +++ b/MaterialSkin/Controls/MaterialDrawer.cs @@ -780,7 +780,7 @@ private void UpdateTabRects() (TAB_HEADER_PADDING * 2) * i + (int)(SkinManager.FORM_PADDING >> 1), (Width + (ShowIconsWhenHidden ? LocationX : 0)) - (int)(SkinManager.FORM_PADDING * 1.5) - 1, drawerItemHeight)); - var drawerItemRectWidth = _drawerItemRects[i].Width - Location.X; + var drawerItemRectWidth = this.RightToLeft == RightToLeft.Yes ? _drawerItemRects[i].Width - Location.X: _drawerItemRects[i].Width; _drawerItemPaths[i] = DrawHelper.CreateRoundRect(new RectangleF(_drawerItemRects[i].X - 0.5f, _drawerItemRects[i].Y - 0.5f, drawerItemRectWidth, _drawerItemRects[i].Height), 4); } } diff --git a/MaterialSkin/Controls/MaterialForm.cs b/MaterialSkin/Controls/MaterialForm.cs index 718cd753..6414f885 100644 --- a/MaterialSkin/Controls/MaterialForm.cs +++ b/MaterialSkin/Controls/MaterialForm.cs @@ -414,7 +414,7 @@ private bool Maximized public MaterialForm() : this(RightToLeft.No) { - + } public MaterialForm(RightToLeft rightToLeft) { diff --git a/MaterialSkin/Controls/MaterialTextBox2.cs b/MaterialSkin/Controls/MaterialTextBox2.cs index 389c91b3..bf9dfe4e 100644 --- a/MaterialSkin/Controls/MaterialTextBox2.cs +++ b/MaterialSkin/Controls/MaterialTextBox2.cs @@ -1860,7 +1860,7 @@ private void UpdateRects() else _right_padding = RIGHT_PADDING; - if (_prefixsuffix == PrefixSuffixTypes.Prefix && _prefixsuffixText != null && _prefixsuffixText.Length > 0) + if (_prefixsuffix == PrefixSuffixTypes.Prefix && !string.IsNullOrEmpty(_prefixsuffixText)) { using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) { @@ -1871,7 +1871,7 @@ private void UpdateRects() else _prefix_padding = 0; - if (_prefixsuffix == PrefixSuffixTypes.Suffix && _prefixsuffixText != null && _prefixsuffixText.Length > 0) + if (_prefixsuffix == PrefixSuffixTypes.Suffix && !string.IsNullOrEmpty(_prefixsuffixText)) { using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) { @@ -1882,7 +1882,7 @@ private void UpdateRects() else _suffix_padding = 0; - if (hasHint && UseTallSize && (isFocused || !String.IsNullOrEmpty(Text))) + if (hasHint && UseTallSize && (isFocused || !string.IsNullOrEmpty(Text))) { baseTextBox.Location = new Point(_left_padding, 22); baseTextBox.Width = Width - (_left_padding + _right_padding); @@ -1942,8 +1942,7 @@ private void ContextMenuStripOnItemClickStart(object sender, ToolStripItemClicke private void ContextMenuStripOnOpening(object sender, CancelEventArgs cancelEventArgs) { - var strip = sender as BaseTextBoxContextMenuStrip; - if (strip != null) + if (sender is BaseTextBoxContextMenuStrip strip) { strip.undo.Enabled = baseTextBox.CanUndo && !ReadOnly; strip.cut.Enabled = !string.IsNullOrEmpty(SelectedText) && !ReadOnly; diff --git a/MaterialSkinExample.RTL/MainForm.Designer.cs b/MaterialSkinExample.RTL/MainForm.Designer.cs index d1754727..05d7f955 100644 --- a/MaterialSkinExample.RTL/MainForm.Designer.cs +++ b/MaterialSkinExample.RTL/MainForm.Designer.cs @@ -57,6 +57,8 @@ private void InitializeComponent() this.materialCheckbox1 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialTabControl1 = new MaterialSkin.Controls.MaterialTabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); + this.materialComboBox7 = new MaterialSkin.Controls.MaterialComboBox(); + this.materialComboBox8 = new MaterialSkin.Controls.MaterialComboBox(); this.materialButton25 = new MaterialSkin.Controls.MaterialButton(); this.materialButton6 = new MaterialSkin.Controls.MaterialButton(); this.materialLabel57 = new MaterialSkin.Controls.MaterialLabel(); @@ -101,6 +103,12 @@ private void InitializeComponent() this.materialButton11 = new MaterialSkin.Controls.MaterialButton(); this.materialButton10 = new MaterialSkin.Controls.MaterialButton(); this.tabPage2 = new System.Windows.Forms.TabPage(); + this.materialComboBox6 = new MaterialSkin.Controls.MaterialComboBox(); + this.materialComboBox2 = new MaterialSkin.Controls.MaterialComboBox(); + this.materialComboBox5 = new MaterialSkin.Controls.MaterialComboBox(); + this.materialComboBox4 = new MaterialSkin.Controls.MaterialComboBox(); + this.materialComboBox3 = new MaterialSkin.Controls.MaterialComboBox(); + this.materialComboBox1 = new MaterialSkin.Controls.MaterialComboBox(); this.msReadOnly = new MaterialSkin.Controls.MaterialSwitch(); this.materialLabel5 = new MaterialSkin.Controls.MaterialLabel(); this.materialCheckedListBox1 = new MaterialSkin.Controls.MaterialCheckedListBox(); @@ -241,12 +249,13 @@ private void InitializeComponent() this.materialCheckbox3.Cursor = System.Windows.Forms.Cursors.Default; this.materialCheckbox3.Depth = 0; this.materialCheckbox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckbox3.Location = new System.Drawing.Point(31, 167); + this.materialCheckbox3.Location = new System.Drawing.Point(767, 162); this.materialCheckbox3.Margin = new System.Windows.Forms.Padding(0); this.materialCheckbox3.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckbox3.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckbox3.Name = "materialCheckbox3"; this.materialCheckbox3.ReadOnly = false; + this.materialCheckbox3.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialCheckbox3.Ripple = true; this.materialCheckbox3.Size = new System.Drawing.Size(161, 37); this.materialCheckbox3.TabIndex = 2; @@ -261,12 +270,13 @@ private void InitializeComponent() this.materialCheckbox1.Cursor = System.Windows.Forms.Cursors.Default; this.materialCheckbox1.Depth = 0; this.materialCheckbox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckbox1.Location = new System.Drawing.Point(31, 125); + this.materialCheckbox1.Location = new System.Drawing.Point(773, 120); this.materialCheckbox1.Margin = new System.Windows.Forms.Padding(0); this.materialCheckbox1.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckbox1.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckbox1.Name = "materialCheckbox1"; this.materialCheckbox1.ReadOnly = false; + this.materialCheckbox1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialCheckbox1.Ripple = true; this.materialCheckbox1.Size = new System.Drawing.Size(155, 37); this.materialCheckbox1.TabIndex = 1; @@ -300,6 +310,8 @@ private void InitializeComponent() // tabPage1 // this.tabPage1.BackColor = System.Drawing.Color.White; + this.tabPage1.Controls.Add(this.materialComboBox7); + this.tabPage1.Controls.Add(this.materialComboBox8); this.tabPage1.Controls.Add(this.materialButton25); this.tabPage1.Controls.Add(this.materialButton6); this.tabPage1.Controls.Add(this.materialLabel57); @@ -325,6 +337,134 @@ private void InitializeComponent() this.tabPage1.Text = "خانه"; this.tabPage1.Click += new System.EventHandler(this.tabPage1_Click); // + // materialComboBox7 + // + this.materialComboBox7.AutoResize = false; + this.materialComboBox7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialComboBox7.Depth = 0; + this.materialComboBox7.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.materialComboBox7.DropDownHeight = 174; + this.materialComboBox7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.materialComboBox7.DropDownWidth = 121; + this.materialComboBox7.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialComboBox7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialComboBox7.FormattingEnabled = true; + this.materialComboBox7.Hint = "رنگ اولیه"; + this.materialComboBox7.IntegralHeight = false; + this.materialComboBox7.ItemHeight = 43; + this.materialComboBox7.Items.AddRange(new object[] { + "طولانی", + "فهرست کنید", + "چه زمانی", + "زندگی", + "می دهد", + "شما", + "لیمو،", + "نکن", + "ساختن", + "لیموناد!", + "بسازید", + "زندگی", + "گرفتن", + "را", + "لیمو", + "بازگشت!", + "گرفتن", + "دیوانه!", + "من این کار را نمی کنم", + "خواستن", + "شما", + "لعنتی", + "لیمو؛", + "چی", + "من هستم", + "فرض می شود", + "انجام دادن", + "با", + "اینها؟", + "تقاضا", + "دیدن", + "زندگی", + "مدیر!", + "بسازید", + "زندگی", + "غم و اندوه", + "را", + "روز", + "فکر کرد", + "آن می تواند", + "دادن", + "غار", + "جانسون", + "لیمو!", + "آیا تو", + "دانستن", + "سازمان بهداشت جهانی", + "من هستم؟", + "من هستم", + "را", + "مرد", + "کیست", + "میخوام", + "سوختن", + "شما", + "خانه", + "پایین...", + "با", + "لیمو!", + "من هستم", + "میخوام", + "من را دریافت کنید", + "مهندسان به", + "اختراع الف", + "قابل احتراق", + "لیمو", + "که", + "می سوزد", + "شما", + "خانه", + "پایین!"}); + this.materialComboBox7.Location = new System.Drawing.Point(317, 264); + this.materialComboBox7.MaxDropDownItems = 4; + this.materialComboBox7.MouseState = MaterialSkin.MouseState.OUT; + this.materialComboBox7.Name = "materialComboBox7"; + this.materialComboBox7.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialComboBox7.Size = new System.Drawing.Size(190, 49); + this.materialComboBox7.StartIndex = 0; + this.materialComboBox7.TabIndex = 80; + this.materialComboBox7.UseAccent = false; + // + // materialComboBox8 + // + this.materialComboBox8.AutoResize = false; + this.materialComboBox8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(237)))), ((int)(((byte)(237)))), ((int)(((byte)(237))))); + this.materialComboBox8.Depth = 0; + this.materialComboBox8.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.materialComboBox8.DropDownHeight = 174; + this.materialComboBox8.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.materialComboBox8.DropDownWidth = 121; + this.materialComboBox8.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.materialComboBox8.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F); + this.materialComboBox8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialComboBox8.FormattingEnabled = true; + this.materialComboBox8.Hint = "ComboBox hints!"; + this.materialComboBox8.IntegralHeight = false; + this.materialComboBox8.ItemHeight = 43; + this.materialComboBox8.Items.AddRange(new object[] { + "آیتم ۱", + "آیتم ۲", + "آیتم ۳", + "آیتم ۴", + "مورد بلندی که در اینجا جا نمی شود"}); + this.materialComboBox8.Location = new System.Drawing.Point(317, 209); + this.materialComboBox8.MaxDropDownItems = 4; + this.materialComboBox8.MouseState = MaterialSkin.MouseState.OUT; + this.materialComboBox8.Name = "materialComboBox8"; + this.materialComboBox8.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialComboBox8.Size = new System.Drawing.Size(190, 49); + this.materialComboBox8.StartIndex = 0; + this.materialComboBox8.TabIndex = 79; + // // materialButton25 // this.materialButton25.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; @@ -687,13 +827,13 @@ private void InitializeComponent() this.materialLabel37.Depth = 0; this.materialLabel37.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel37.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel37.Location = new System.Drawing.Point(519, 183); + this.materialLabel37.Location = new System.Drawing.Point(649, 183); this.materialLabel37.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel37.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel37.Name = "materialLabel37"; - this.materialLabel37.Size = new System.Drawing.Size(46, 17); + this.materialLabel37.Size = new System.Drawing.Size(53, 17); this.materialLabel37.TabIndex = 63; - this.materialLabel37.Text = "Outline"; + this.materialLabel37.Text = "طرح کلی"; // // materialLabel36 // @@ -701,13 +841,13 @@ private void InitializeComponent() this.materialLabel36.Depth = 0; this.materialLabel36.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel36.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel36.Location = new System.Drawing.Point(277, 183); + this.materialLabel36.Location = new System.Drawing.Point(385, 183); this.materialLabel36.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel36.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel36.Name = "materialLabel36"; - this.materialLabel36.Size = new System.Drawing.Size(66, 17); + this.materialLabel36.Size = new System.Drawing.Size(67, 17); this.materialLabel36.TabIndex = 62; - this.materialLabel36.Text = "Contained"; + this.materialLabel36.Text = "احاطه شده"; // // materialLabel35 // @@ -715,20 +855,20 @@ private void InitializeComponent() this.materialLabel35.Depth = 0; this.materialLabel35.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel35.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel35.Location = new System.Drawing.Point(42, 183); + this.materialLabel35.Location = new System.Drawing.Point(856, 183); this.materialLabel35.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel35.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel35.Name = "materialLabel35"; - this.materialLabel35.Size = new System.Drawing.Size(61, 17); + this.materialLabel35.Size = new System.Drawing.Size(60, 17); this.materialLabel35.TabIndex = 61; - this.materialLabel35.Text = "Text only"; + this.materialLabel35.Text = "فقط متنی"; // // materialFloatingActionButton1 // this.materialFloatingActionButton1.AnimateShowHideButton = true; this.materialFloatingActionButton1.Depth = 0; this.materialFloatingActionButton1.Icon = null; - this.materialFloatingActionButton1.Location = new System.Drawing.Point(761, 221); + this.materialFloatingActionButton1.Location = new System.Drawing.Point(98, 221); this.materialFloatingActionButton1.Margin = new System.Windows.Forms.Padding(2); this.materialFloatingActionButton1.MouseState = MaterialSkin.MouseState.HOVER; this.materialFloatingActionButton1.Name = "materialFloatingActionButton1"; @@ -743,26 +883,27 @@ private void InitializeComponent() this.materialLabel3.Depth = 0; this.materialLabel3.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel3.Location = new System.Drawing.Point(758, 183); + this.materialLabel3.Location = new System.Drawing.Point(47, 183); this.materialLabel3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel3.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel3.Name = "materialLabel3"; - this.materialLabel3.Size = new System.Drawing.Size(146, 17); + this.materialLabel3.Size = new System.Drawing.Size(110, 17); this.materialLabel3.TabIndex = 60; - this.materialLabel3.Text = "Floating Action Button"; + this.materialLabel3.Text = "دکمه اکشن شناور"; // // materialLabel25 // this.materialLabel25.AutoSize = true; this.materialLabel25.Depth = 0; - this.materialLabel25.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel25.Font = new System.Drawing.Font("IRANYekanMobileFN", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel25.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel25.Location = new System.Drawing.Point(22, 13); + this.materialLabel25.Location = new System.Drawing.Point(766, 16); this.materialLabel25.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel25.Name = "materialLabel25"; - this.materialLabel25.Size = new System.Drawing.Size(162, 51); + this.materialLabel25.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialLabel25.Size = new System.Drawing.Size(145, 51); this.materialLabel25.TabIndex = 58; - this.materialLabel25.Text = "Buttons!"; + this.materialLabel25.Text = "دکمه‌ها!"; // // materialButton24 // @@ -772,7 +913,7 @@ private void InitializeComponent() this.materialButton24.Depth = 0; this.materialButton24.HighEmphasis = false; this.materialButton24.Icon = null; - this.materialButton24.Location = new System.Drawing.Point(522, 221); + this.materialButton24.Location = new System.Drawing.Point(510, 221); this.materialButton24.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton24.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton24.Name = "materialButton24"; @@ -792,7 +933,7 @@ private void InitializeComponent() this.materialButton22.Depth = 0; this.materialButton22.HighEmphasis = false; this.materialButton22.Icon = null; - this.materialButton22.Location = new System.Drawing.Point(32, 221); + this.materialButton22.Location = new System.Drawing.Point(739, 221); this.materialButton22.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton22.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton22.Name = "materialButton22"; @@ -807,14 +948,16 @@ private void InitializeComponent() // materialLabel8 // this.materialLabel8.Depth = 0; - this.materialLabel8.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel8.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel8.Location = new System.Drawing.Point(25, 76); this.materialLabel8.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel8.Name = "materialLabel8"; + this.materialLabel8.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialLabel8.Size = new System.Drawing.Size(891, 95); this.materialLabel8.TabIndex = 57; this.materialLabel8.Text = resources.GetString("materialLabel8.Text"); + this.materialLabel8.TextAlign = System.Drawing.ContentAlignment.TopRight; // // materialButton19 // @@ -824,7 +967,7 @@ private void InitializeComponent() this.materialButton19.Depth = 0; this.materialButton19.HighEmphasis = false; this.materialButton19.Icon = null; - this.materialButton19.Location = new System.Drawing.Point(522, 365); + this.materialButton19.Location = new System.Drawing.Point(510, 365); this.materialButton19.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton19.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton19.Name = "materialButton19"; @@ -844,7 +987,7 @@ private void InitializeComponent() this.materialButton20.Depth = 0; this.materialButton20.HighEmphasis = false; this.materialButton20.Icon = null; - this.materialButton20.Location = new System.Drawing.Point(32, 365); + this.materialButton20.Location = new System.Drawing.Point(739, 365); this.materialButton20.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton20.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton20.Name = "materialButton20"; @@ -884,7 +1027,7 @@ private void InitializeComponent() this.materialButton5.Depth = 0; this.materialButton5.HighEmphasis = true; this.materialButton5.Icon = null; - this.materialButton5.Location = new System.Drawing.Point(522, 269); + this.materialButton5.Location = new System.Drawing.Point(510, 269); this.materialButton5.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton5.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton5.Name = "materialButton5"; @@ -904,7 +1047,7 @@ private void InitializeComponent() this.materialButton8.Depth = 0; this.materialButton8.HighEmphasis = true; this.materialButton8.Icon = null; - this.materialButton8.Location = new System.Drawing.Point(32, 269); + this.materialButton8.Location = new System.Drawing.Point(739, 269); this.materialButton8.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton8.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton8.Name = "materialButton8"; @@ -945,7 +1088,7 @@ private void InitializeComponent() this.materialButton18.Enabled = false; this.materialButton18.HighEmphasis = false; this.materialButton18.Icon = null; - this.materialButton18.Location = new System.Drawing.Point(522, 461); + this.materialButton18.Location = new System.Drawing.Point(510, 461); this.materialButton18.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton18.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton18.Name = "materialButton18"; @@ -965,7 +1108,7 @@ private void InitializeComponent() this.materialButton17.Depth = 0; this.materialButton17.HighEmphasis = false; this.materialButton17.Icon = null; - this.materialButton17.Location = new System.Drawing.Point(522, 413); + this.materialButton17.Location = new System.Drawing.Point(510, 413); this.materialButton17.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton17.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton17.Name = "materialButton17"; @@ -985,7 +1128,7 @@ private void InitializeComponent() this.materialButton16.Depth = 0; this.materialButton16.HighEmphasis = true; this.materialButton16.Icon = null; - this.materialButton16.Location = new System.Drawing.Point(522, 317); + this.materialButton16.Location = new System.Drawing.Point(510, 317); this.materialButton16.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton16.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton16.Name = "materialButton16"; @@ -1005,7 +1148,7 @@ private void InitializeComponent() this.materialButton15.Depth = 0; this.materialButton15.HighEmphasis = false; this.materialButton15.Icon = null; - this.materialButton15.Location = new System.Drawing.Point(32, 413); + this.materialButton15.Location = new System.Drawing.Point(739, 413); this.materialButton15.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton15.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton15.Name = "materialButton15"; @@ -1025,7 +1168,7 @@ private void InitializeComponent() this.materialButton14.Depth = 0; this.materialButton14.HighEmphasis = true; this.materialButton14.Icon = null; - this.materialButton14.Location = new System.Drawing.Point(32, 317); + this.materialButton14.Location = new System.Drawing.Point(739, 317); this.materialButton14.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton14.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton14.Name = "materialButton14"; @@ -1067,7 +1210,7 @@ private void InitializeComponent() this.materialButton12.Enabled = false; this.materialButton12.HighEmphasis = false; this.materialButton12.Icon = null; - this.materialButton12.Location = new System.Drawing.Point(32, 461); + this.materialButton12.Location = new System.Drawing.Point(739, 461); this.materialButton12.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton12.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton12.Name = "materialButton12"; @@ -1122,6 +1265,12 @@ private void InitializeComponent() // tabPage2 // this.tabPage2.BackColor = System.Drawing.Color.White; + this.tabPage2.Controls.Add(this.materialComboBox6); + this.tabPage2.Controls.Add(this.materialComboBox2); + this.tabPage2.Controls.Add(this.materialComboBox5); + this.tabPage2.Controls.Add(this.materialComboBox4); + this.tabPage2.Controls.Add(this.materialComboBox3); + this.tabPage2.Controls.Add(this.materialComboBox1); this.tabPage2.Controls.Add(this.msReadOnly); this.tabPage2.Controls.Add(this.materialLabel5); this.tabPage2.Controls.Add(this.materialCheckedListBox1); @@ -1150,20 +1299,326 @@ private void InitializeComponent() this.tabPage2.TabIndex = 1; this.tabPage2.Text = "کنترل‌های انتخابی"; // + // materialComboBox6 + // + this.materialComboBox6.AutoResize = false; + this.materialComboBox6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialComboBox6.Depth = 0; + this.materialComboBox6.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.materialComboBox6.DropDownHeight = 174; + this.materialComboBox6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.materialComboBox6.DropDownWidth = 121; + this.materialComboBox6.Enabled = false; + this.materialComboBox6.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialComboBox6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialComboBox6.FormattingEnabled = true; + this.materialComboBox6.Hint = "This is Disabled"; + this.materialComboBox6.IntegralHeight = false; + this.materialComboBox6.ItemHeight = 43; + this.materialComboBox6.Items.AddRange(new object[] { + "اما با ارزش", + "سلام"}); + this.materialComboBox6.Location = new System.Drawing.Point(310, 405); + this.materialComboBox6.MaxDropDownItems = 4; + this.materialComboBox6.MouseState = MaterialSkin.MouseState.OUT; + this.materialComboBox6.Name = "materialComboBox6"; + this.materialComboBox6.Size = new System.Drawing.Size(190, 49); + this.materialComboBox6.StartIndex = 0; + this.materialComboBox6.TabIndex = 81; + // + // materialComboBox2 + // + this.materialComboBox2.AutoResize = true; + this.materialComboBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialComboBox2.Depth = 0; + this.materialComboBox2.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.materialComboBox2.DropDownHeight = 174; + this.materialComboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.materialComboBox2.DropDownWidth = 435; + this.materialComboBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialComboBox2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialComboBox2.FormattingEnabled = true; + this.materialComboBox2.Hint = "AutoResize = true"; + this.materialComboBox2.IntegralHeight = false; + this.materialComboBox2.ItemHeight = 43; + this.materialComboBox2.Items.AddRange(new object[] { + "رشته اقلام طولانی که معمولاً در جعبه ترکیبی قرار نمی گیرد", + "سلام، امیدوارم روز فوق العاده ای داشته باشید"}); + this.materialComboBox2.Location = new System.Drawing.Point(65, 460); + this.materialComboBox2.MaxDropDownItems = 4; + this.materialComboBox2.MouseState = MaterialSkin.MouseState.OUT; + this.materialComboBox2.Name = "materialComboBox2"; + this.materialComboBox2.Size = new System.Drawing.Size(435, 49); + this.materialComboBox2.StartIndex = 0; + this.materialComboBox2.TabIndex = 80; + // + // materialComboBox5 + // + this.materialComboBox5.AutoResize = false; + this.materialComboBox5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialComboBox5.Depth = 0; + this.materialComboBox5.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.materialComboBox5.DropDownHeight = 174; + this.materialComboBox5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.materialComboBox5.DropDownWidth = 121; + this.materialComboBox5.Enabled = false; + this.materialComboBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialComboBox5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialComboBox5.FormattingEnabled = true; + this.materialComboBox5.Hint = "This is Disabled"; + this.materialComboBox5.IntegralHeight = false; + this.materialComboBox5.ItemHeight = 43; + this.materialComboBox5.Items.AddRange(new object[] { + "چه زمانی", + "زندگی", + "می دهد", + "شما", + "لیمو،", + "نکن", + "ساختن", + "لیموناد!", + "بسازید", + "زندگی", + "گرفتن", + "را", + "لیمو", + "بازگشت!", + "گرفتن", + "دیوانه!", + "من این کار را نمی کنم", + "خواستن", + "شما", + "لعنتی", + "لیمو؛", + "چی", + "من هستم", + "فرض می شود", + "انجام دادن", + "با", + "اینها؟", + "تقاضا", + "دیدن", + "زندگی", + "مدیر!", + "بسازید", + "زندگی", + "غم و اندوه", + "را", + "روز", + "فکر کرد", + "آن می تواند", + "دادن", + "غار", + "جانسون", + "لیمو!", + "آیا تو", + "دانستن", + "سازمان بهداشت جهانی", + "من هستم؟", + "من هستم", + "را", + "مرد", + "کیست", + "میخوام", + "سوختن", + "شما", + "خانه", + "پایین...", + "با", + "لیمو!", + "من هستم", + "میخوام", + "من را دریافت کنید", + "مهندسان به", + "اختراع الف", + "قابل احتراق", + "لیمو", + "که", + "می سوزد", + "شما", + "خانه", + "پایین!"}); + this.materialComboBox5.Location = new System.Drawing.Point(310, 350); + this.materialComboBox5.MaxDropDownItems = 4; + this.materialComboBox5.MouseState = MaterialSkin.MouseState.OUT; + this.materialComboBox5.Name = "materialComboBox5"; + this.materialComboBox5.Size = new System.Drawing.Size(190, 49); + this.materialComboBox5.StartIndex = 0; + this.materialComboBox5.TabIndex = 79; + // + // materialComboBox4 + // + this.materialComboBox4.AutoResize = false; + this.materialComboBox4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialComboBox4.Depth = 0; + this.materialComboBox4.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.materialComboBox4.DropDownHeight = 174; + this.materialComboBox4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.materialComboBox4.DropDownWidth = 121; + this.materialComboBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialComboBox4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialComboBox4.FormattingEnabled = true; + this.materialComboBox4.Hint = "Primary color"; + this.materialComboBox4.IntegralHeight = false; + this.materialComboBox4.ItemHeight = 43; + this.materialComboBox4.Items.AddRange(new object[] { + "طولانی", + "فهرست کنید", + "چه زمانی", + "زندگی", + "می دهد", + "شما", + "لیمو،", + "نکن", + "ساختن", + "لیموناد!", + "بسازید", + "زندگی", + "گرفتن", + "را", + "لیمو", + "بازگشت!", + "گرفتن", + "دیوانه!", + "من این کار را نمی کنم", + "خواستن", + "شما", + "لعنتی", + "لیمو؛", + "چی", + "من هستم", + "فرض می شود", + "انجام دادن", + "با", + "اینها؟", + "تقاضا", + "دیدن", + "زندگی", + "مدیر!", + "بسازید", + "زندگی", + "غم و اندوه", + "را", + "روز", + "فکر کرد", + "آن می تواند", + "دادن", + "غار", + "جانسون", + "لیمو!", + "آیا تو", + "دانستن", + "سازمان بهداشت جهانی", + "من هستم؟", + "من هستم", + "را", + "مرد", + "کیست", + "میخوام", + "سوختن", + "شما", + "خانه", + "پایین...", + "با", + "لیمو!", + "من هستم", + "میخوام", + "من را دریافت کنید", + "مهندسان به", + "اختراع الف", + "قابل احتراق", + "لیمو", + "که", + "می سوزد", + "شما", + "خانه", + "پایین!"}); + this.materialComboBox4.Location = new System.Drawing.Point(517, 405); + this.materialComboBox4.MaxDropDownItems = 4; + this.materialComboBox4.MouseState = MaterialSkin.MouseState.OUT; + this.materialComboBox4.Name = "materialComboBox4"; + this.materialComboBox4.Size = new System.Drawing.Size(190, 49); + this.materialComboBox4.StartIndex = 0; + this.materialComboBox4.TabIndex = 78; + this.materialComboBox4.UseAccent = false; + // + // materialComboBox3 + // + this.materialComboBox3.AutoResize = false; + this.materialComboBox3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialComboBox3.Depth = 0; + this.materialComboBox3.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.materialComboBox3.DropDownHeight = 118; + this.materialComboBox3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.materialComboBox3.DropDownWidth = 121; + this.materialComboBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialComboBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialComboBox3.FormattingEnabled = true; + this.materialComboBox3.Hint = "small combo"; + this.materialComboBox3.IntegralHeight = false; + this.materialComboBox3.ItemHeight = 29; + this.materialComboBox3.Items.AddRange(new object[] { + "آیتم ۱", + "آیتم ۲", + "آیتم ۳", + "آیتم ۴", + "آیتم ۵", + "آیتم ۶", + "آیتم ۷"}); + this.materialComboBox3.Location = new System.Drawing.Point(517, 460); + this.materialComboBox3.MaxDropDownItems = 4; + this.materialComboBox3.MouseState = MaterialSkin.MouseState.OUT; + this.materialComboBox3.Name = "materialComboBox3"; + this.materialComboBox3.Size = new System.Drawing.Size(190, 35); + this.materialComboBox3.StartIndex = 0; + this.materialComboBox3.TabIndex = 77; + this.materialComboBox3.UseTallSize = false; + // + // materialComboBox1 + // + this.materialComboBox1.AutoResize = false; + this.materialComboBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(237)))), ((int)(((byte)(237)))), ((int)(((byte)(237))))); + this.materialComboBox1.Depth = 0; + this.materialComboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.materialComboBox1.DropDownHeight = 174; + this.materialComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.materialComboBox1.DropDownWidth = 121; + this.materialComboBox1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.materialComboBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F); + this.materialComboBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.materialComboBox1.FormattingEnabled = true; + this.materialComboBox1.Hint = "ComboBox hints!"; + this.materialComboBox1.IntegralHeight = false; + this.materialComboBox1.ItemHeight = 43; + this.materialComboBox1.Items.AddRange(new object[] { + "آیتم ۱", + "آیتم ۲", + "آیتم ۳", + "آیتم ۴", + "مورد بلندی که در اینجا جا نمی شود"}); + this.materialComboBox1.Location = new System.Drawing.Point(517, 350); + this.materialComboBox1.MaxDropDownItems = 4; + this.materialComboBox1.MouseState = MaterialSkin.MouseState.OUT; + this.materialComboBox1.Name = "materialComboBox1"; + this.materialComboBox1.Size = new System.Drawing.Size(190, 49); + this.materialComboBox1.StartIndex = 0; + this.materialComboBox1.TabIndex = 76; + // // msReadOnly // this.msReadOnly.AutoSize = true; this.msReadOnly.Depth = 0; this.msReadOnly.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.msReadOnly.Location = new System.Drawing.Point(237, 125); + this.msReadOnly.Location = new System.Drawing.Point(286, 120); this.msReadOnly.Margin = new System.Windows.Forms.Padding(0); this.msReadOnly.MouseLocation = new System.Drawing.Point(-1, -1); this.msReadOnly.MouseState = MaterialSkin.MouseState.HOVER; this.msReadOnly.Name = "msReadOnly"; + this.msReadOnly.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.msReadOnly.Ripple = true; - this.msReadOnly.Size = new System.Drawing.Size(124, 37); + this.msReadOnly.Size = new System.Drawing.Size(134, 37); this.msReadOnly.TabIndex = 75; - this.msReadOnly.Text = "Read Only"; + this.msReadOnly.Text = "فقط خواندنی"; this.msReadOnly.UseVisualStyleBackColor = true; this.msReadOnly.CheckedChanged += new System.EventHandler(this.MsReadOnly_CheckedChanged); // @@ -1173,13 +1628,13 @@ private void InitializeComponent() this.materialLabel5.Depth = 0; this.materialLabel5.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel5.Location = new System.Drawing.Point(28, 315); + this.materialLabel5.Location = new System.Drawing.Point(755, 313); this.materialLabel5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel5.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel5.Name = "materialLabel5"; - this.materialLabel5.Size = new System.Drawing.Size(104, 17); + this.materialLabel5.Size = new System.Drawing.Size(173, 17); this.materialLabel5.TabIndex = 69; - this.materialLabel5.Text = "CheckedListBox"; + this.materialLabel5.Text = "کادر فهرست قابل علامت زدن"; // // materialCheckedListBox1 // @@ -1187,7 +1642,7 @@ private void InitializeComponent() this.materialCheckedListBox1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.materialCheckedListBox1.BackColor = System.Drawing.Color.White; this.materialCheckedListBox1.Depth = 0; - this.materialCheckedListBox1.Location = new System.Drawing.Point(31, 352); + this.materialCheckedListBox1.Location = new System.Drawing.Point(738, 350); this.materialCheckedListBox1.Margin = new System.Windows.Forms.Padding(2); this.materialCheckedListBox1.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckedListBox1.Name = "materialCheckedListBox1"; @@ -1202,13 +1657,13 @@ private void InitializeComponent() this.materialLabel34.Depth = 0; this.materialLabel34.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel34.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel34.Location = new System.Drawing.Point(255, 315); + this.materialLabel34.Location = new System.Drawing.Point(636, 313); this.materialLabel34.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel34.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel34.Name = "materialLabel34"; - this.materialLabel34.Size = new System.Drawing.Size(70, 17); + this.materialLabel34.Size = new System.Drawing.Size(71, 17); this.materialLabel34.TabIndex = 66; - this.materialLabel34.Text = "Combobox"; + this.materialLabel34.Text = "کادر ترکیبی"; // // materialLabel33 // @@ -1216,13 +1671,13 @@ private void InitializeComponent() this.materialLabel33.Depth = 0; this.materialLabel33.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel33.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel33.Location = new System.Drawing.Point(675, 90); + this.materialLabel33.Location = new System.Drawing.Point(215, 85); this.materialLabel33.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel33.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel33.Name = "materialLabel33"; - this.materialLabel33.Size = new System.Drawing.Size(45, 17); + this.materialLabel33.Size = new System.Drawing.Size(43, 17); this.materialLabel33.TabIndex = 65; - this.materialLabel33.Text = "Switch"; + this.materialLabel33.Text = "سوئیچ"; // // materialLabel32 // @@ -1230,13 +1685,13 @@ private void InitializeComponent() this.materialLabel32.Depth = 0; this.materialLabel32.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel32.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel32.Location = new System.Drawing.Point(428, 90); + this.materialLabel32.Location = new System.Drawing.Point(530, 85); this.materialLabel32.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel32.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel32.Name = "materialLabel32"; - this.materialLabel32.Size = new System.Drawing.Size(92, 17); + this.materialLabel32.Size = new System.Drawing.Size(106, 17); this.materialLabel32.TabIndex = 64; - this.materialLabel32.Text = "Radio Buttons"; + this.materialLabel32.Text = "دکمه‌های رادیویی"; // // materialLabel31 // @@ -1244,28 +1699,29 @@ private void InitializeComponent() this.materialLabel31.Depth = 0; this.materialLabel31.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel31.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel31.Location = new System.Drawing.Point(28, 90); + this.materialLabel31.Location = new System.Drawing.Point(842, 85); this.materialLabel31.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel31.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel31.Name = "materialLabel31"; - this.materialLabel31.Size = new System.Drawing.Size(64, 17); + this.materialLabel31.Size = new System.Drawing.Size(89, 17); this.materialLabel31.TabIndex = 63; - this.materialLabel31.Text = "Checkbox"; + this.materialLabel31.Text = "کادر علامت‌خور"; // // materialSwitch7 // this.materialSwitch7.AutoSize = true; this.materialSwitch7.Depth = 0; this.materialSwitch7.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch7.Location = new System.Drawing.Point(678, 168); + this.materialSwitch7.Location = new System.Drawing.Point(114, 162); this.materialSwitch7.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch7.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch7.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch7.Name = "materialSwitch7"; + this.materialSwitch7.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch7.Ripple = true; - this.materialSwitch7.Size = new System.Drawing.Size(160, 37); + this.materialSwitch7.Size = new System.Drawing.Size(144, 37); this.materialSwitch7.TabIndex = 12; - this.materialSwitch7.Text = "Material Switch"; + this.materialSwitch7.Text = "متریال سوئیچ"; this.materialSwitch7.UseVisualStyleBackColor = true; // // materialRadioButton5 @@ -1274,11 +1730,12 @@ private void InitializeComponent() this.materialRadioButton5.Cursor = System.Windows.Forms.Cursors.Default; this.materialRadioButton5.Depth = 0; this.materialRadioButton5.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton5.Location = new System.Drawing.Point(431, 251); + this.materialRadioButton5.Location = new System.Drawing.Point(460, 247); this.materialRadioButton5.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton5.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton5.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton5.Name = "materialRadioButton5"; + this.materialRadioButton5.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialRadioButton5.Ripple = true; this.materialRadioButton5.Size = new System.Drawing.Size(176, 37); this.materialRadioButton5.TabIndex = 10; @@ -1292,12 +1749,12 @@ private void InitializeComponent() this.materialLabel26.Depth = 0; this.materialLabel26.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel26.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel26.Location = new System.Drawing.Point(21, 12); + this.materialLabel26.Location = new System.Drawing.Point(606, 15); this.materialLabel26.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel26.Name = "materialLabel26"; - this.materialLabel26.Size = new System.Drawing.Size(356, 51); + this.materialLabel26.Size = new System.Drawing.Size(325, 51); this.materialLabel26.TabIndex = 59; - this.materialLabel26.Text = "Selection Controls"; + this.materialLabel26.Text = "کنترل‌های انتخابی"; // // materialRadioButton4 // @@ -1307,11 +1764,12 @@ private void InitializeComponent() this.materialRadioButton4.Depth = 0; this.materialRadioButton4.Enabled = false; this.materialRadioButton4.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton4.Location = new System.Drawing.Point(431, 209); + this.materialRadioButton4.Location = new System.Drawing.Point(460, 205); this.materialRadioButton4.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton4.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton4.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton4.Name = "materialRadioButton4"; + this.materialRadioButton4.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialRadioButton4.Ripple = true; this.materialRadioButton4.Size = new System.Drawing.Size(176, 37); this.materialRadioButton4.TabIndex = 9; @@ -1325,11 +1783,12 @@ private void InitializeComponent() this.materialRadioButton1.Cursor = System.Windows.Forms.Cursors.Default; this.materialRadioButton1.Depth = 0; this.materialRadioButton1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton1.Location = new System.Drawing.Point(431, 125); + this.materialRadioButton1.Location = new System.Drawing.Point(465, 121); this.materialRadioButton1.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton1.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton1.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton1.Name = "materialRadioButton1"; + this.materialRadioButton1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialRadioButton1.Ripple = true; this.materialRadioButton1.Size = new System.Drawing.Size(171, 37); this.materialRadioButton1.TabIndex = 6; @@ -1343,11 +1802,12 @@ private void InitializeComponent() this.materialRadioButton2.Cursor = System.Windows.Forms.Cursors.Default; this.materialRadioButton2.Depth = 0; this.materialRadioButton2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton2.Location = new System.Drawing.Point(431, 167); + this.materialRadioButton2.Location = new System.Drawing.Point(461, 163); this.materialRadioButton2.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton2.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton2.Name = "materialRadioButton2"; + this.materialRadioButton2.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialRadioButton2.Ripple = true; this.materialRadioButton2.Size = new System.Drawing.Size(175, 37); this.materialRadioButton2.TabIndex = 7; @@ -1363,15 +1823,16 @@ private void InitializeComponent() this.materialSwitch3.Depth = 0; this.materialSwitch3.Enabled = false; this.materialSwitch3.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch3.Location = new System.Drawing.Point(678, 252); + this.materialSwitch3.Location = new System.Drawing.Point(10, 246); this.materialSwitch3.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch3.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch3.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch3.Name = "materialSwitch3"; + this.materialSwitch3.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch3.Ripple = true; - this.materialSwitch3.Size = new System.Drawing.Size(259, 37); + this.materialSwitch3.Size = new System.Drawing.Size(248, 37); this.materialSwitch3.TabIndex = 15; - this.materialSwitch3.Text = "Switch - Checked and disabled"; + this.materialSwitch3.Text = "سوئیچ - انتخاب‌شده و غیرفعال"; this.materialSwitch3.UseVisualStyleBackColor = true; // // materialSwitch2 @@ -1380,15 +1841,16 @@ private void InitializeComponent() this.materialSwitch2.Depth = 0; this.materialSwitch2.Enabled = false; this.materialSwitch2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch2.Location = new System.Drawing.Point(678, 210); + this.materialSwitch2.Location = new System.Drawing.Point(97, 204); this.materialSwitch2.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch2.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch2.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch2.Name = "materialSwitch2"; + this.materialSwitch2.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch2.Ripple = true; - this.materialSwitch2.Size = new System.Drawing.Size(170, 37); + this.materialSwitch2.Size = new System.Drawing.Size(161, 37); this.materialSwitch2.TabIndex = 14; - this.materialSwitch2.Text = "Switch - Disabled"; + this.materialSwitch2.Text = "سوئیچ - غیرفعال"; this.materialSwitch2.UseVisualStyleBackColor = true; // // materialSwitch1 @@ -1396,15 +1858,16 @@ private void InitializeComponent() this.materialSwitch1.AutoSize = true; this.materialSwitch1.Depth = 0; this.materialSwitch1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialSwitch1.Location = new System.Drawing.Point(678, 126); + this.materialSwitch1.Location = new System.Drawing.Point(114, 120); this.materialSwitch1.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch1.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch1.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch1.Name = "materialSwitch1"; + this.materialSwitch1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch1.Ripple = true; - this.materialSwitch1.Size = new System.Drawing.Size(160, 37); + this.materialSwitch1.Size = new System.Drawing.Size(144, 37); this.materialSwitch1.TabIndex = 11; - this.materialSwitch1.Text = "Material Switch"; + this.materialSwitch1.Text = "متریال سوئیچ"; this.materialSwitch1.UseVisualStyleBackColor = true; // // materialCheckBox6 @@ -1414,12 +1877,13 @@ private void InitializeComponent() this.materialCheckBox6.Depth = 0; this.materialCheckBox6.Enabled = false; this.materialCheckBox6.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckBox6.Location = new System.Drawing.Point(31, 251); + this.materialCheckBox6.Location = new System.Drawing.Point(769, 246); this.materialCheckBox6.Margin = new System.Windows.Forms.Padding(0); this.materialCheckBox6.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckBox6.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckBox6.Name = "materialCheckBox6"; this.materialCheckBox6.ReadOnly = false; + this.materialCheckBox6.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialCheckBox6.Ripple = true; this.materialCheckBox6.Size = new System.Drawing.Size(159, 37); this.materialCheckBox6.TabIndex = 5; @@ -1435,12 +1899,13 @@ private void InitializeComponent() this.materialCheckBox5.Depth = 0; this.materialCheckBox5.Enabled = false; this.materialCheckBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckBox5.Location = new System.Drawing.Point(31, 209); + this.materialCheckBox5.Location = new System.Drawing.Point(767, 204); this.materialCheckBox5.Margin = new System.Windows.Forms.Padding(0); this.materialCheckBox5.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckBox5.MouseState = MaterialSkin.MouseState.HOVER; this.materialCheckBox5.Name = "materialCheckBox5"; this.materialCheckBox5.ReadOnly = false; + this.materialCheckBox5.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialCheckBox5.Ripple = true; this.materialCheckBox5.Size = new System.Drawing.Size(161, 37); this.materialCheckBox5.TabIndex = 4; @@ -1492,7 +1957,7 @@ private void InitializeComponent() this.materialMaskedTextBox1.Hint = "Phone number mask"; this.materialMaskedTextBox1.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Default; this.materialMaskedTextBox1.LeadingIcon = null; - this.materialMaskedTextBox1.Location = new System.Drawing.Point(528, 437); + this.materialMaskedTextBox1.Location = new System.Drawing.Point(31, 436); this.materialMaskedTextBox1.Mask = "+00-0-00-00-00-00"; this.materialMaskedTextBox1.MaxLength = 32767; this.materialMaskedTextBox1.MouseState = MaterialSkin.MouseState.OUT; @@ -1524,15 +1989,16 @@ private void InitializeComponent() // this.materialSwitch15.AutoSize = true; this.materialSwitch15.Depth = 0; - this.materialSwitch15.Location = new System.Drawing.Point(528, 368); + this.materialSwitch15.Location = new System.Drawing.Point(272, 367); this.materialSwitch15.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch15.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch15.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch15.Name = "materialSwitch15"; + this.materialSwitch15.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch15.Ripple = true; - this.materialSwitch15.Size = new System.Drawing.Size(138, 37); + this.materialSwitch15.Size = new System.Drawing.Size(143, 37); this.materialSwitch15.TabIndex = 78; - this.materialSwitch15.Text = "Trailing Icon"; + this.materialSwitch15.Text = "آیکون انتهایی"; this.materialSwitch15.UseVisualStyleBackColor = true; this.materialSwitch15.CheckedChanged += new System.EventHandler(this.materialSwitch15_CheckedChanged); // @@ -1540,15 +2006,16 @@ private void InitializeComponent() // this.materialSwitch14.AutoSize = true; this.materialSwitch14.Depth = 0; - this.materialSwitch14.Location = new System.Drawing.Point(528, 331); + this.materialSwitch14.Location = new System.Drawing.Point(282, 330); this.materialSwitch14.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch14.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch14.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch14.Name = "materialSwitch14"; + this.materialSwitch14.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch14.Ripple = true; - this.materialSwitch14.Size = new System.Drawing.Size(142, 37); + this.materialSwitch14.Size = new System.Drawing.Size(133, 37); this.materialSwitch14.TabIndex = 77; - this.materialSwitch14.Text = "Leading Icon"; + this.materialSwitch14.Text = "آیکون جانبی"; this.materialSwitch14.UseVisualStyleBackColor = true; this.materialSwitch14.CheckedChanged += new System.EventHandler(this.materialSwitch14_CheckedChanged); // @@ -1558,15 +2025,16 @@ private void InitializeComponent() this.materialSwitch16.Checked = true; this.materialSwitch16.CheckState = System.Windows.Forms.CheckState.Checked; this.materialSwitch16.Depth = 0; - this.materialSwitch16.Location = new System.Drawing.Point(729, 295); + this.materialSwitch16.Location = new System.Drawing.Point(31, 292); this.materialSwitch16.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch16.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch16.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch16.Name = "materialSwitch16"; + this.materialSwitch16.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch16.Ripple = true; - this.materialSwitch16.Size = new System.Drawing.Size(189, 37); + this.materialSwitch16.Size = new System.Drawing.Size(168, 37); this.materialSwitch16.TabIndex = 76; - this.materialSwitch16.Text = "Show Assistive Text"; + this.materialSwitch16.Text = "نمایش متن کمکی"; this.materialSwitch16.UseVisualStyleBackColor = true; this.materialSwitch16.CheckedChanged += new System.EventHandler(this.materialSwitch16_CheckedChanged); // @@ -1574,15 +2042,16 @@ private void InitializeComponent() // this.materialSwitch13.AutoSize = true; this.materialSwitch13.Depth = 0; - this.materialSwitch13.Location = new System.Drawing.Point(528, 293); + this.materialSwitch13.Location = new System.Drawing.Point(316, 292); this.materialSwitch13.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch13.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch13.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch13.Name = "materialSwitch13"; + this.materialSwitch13.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch13.Ripple = true; - this.materialSwitch13.Size = new System.Drawing.Size(121, 37); + this.materialSwitch13.Size = new System.Drawing.Size(99, 37); this.materialSwitch13.TabIndex = 76; - this.materialSwitch13.Text = "Password"; + this.materialSwitch13.Text = "رمزعبور"; this.materialSwitch13.UseVisualStyleBackColor = true; this.materialSwitch13.CheckedChanged += new System.EventHandler(this.materialSwitch13_CheckedChanged); // @@ -1590,15 +2059,16 @@ private void InitializeComponent() // this.materialSwitch12.AutoSize = true; this.materialSwitch12.Depth = 0; - this.materialSwitch12.Location = new System.Drawing.Point(528, 256); + this.materialSwitch12.Location = new System.Drawing.Point(296, 255); this.materialSwitch12.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch12.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch12.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch12.Name = "materialSwitch12"; + this.materialSwitch12.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch12.Ripple = true; - this.materialSwitch12.Size = new System.Drawing.Size(114, 37); + this.materialSwitch12.Size = new System.Drawing.Size(119, 37); this.materialSwitch12.TabIndex = 74; - this.materialSwitch12.Text = "Hint text"; + this.materialSwitch12.Text = "متن اشاره"; this.materialSwitch12.UseVisualStyleBackColor = true; this.materialSwitch12.CheckedChanged += new System.EventHandler(this.materialSwitch12_CheckedChanged); // @@ -1608,15 +2078,16 @@ private void InitializeComponent() this.materialSwitch11.Checked = true; this.materialSwitch11.CheckState = System.Windows.Forms.CheckState.Checked; this.materialSwitch11.Depth = 0; - this.materialSwitch11.Location = new System.Drawing.Point(528, 219); + this.materialSwitch11.Location = new System.Drawing.Point(231, 218); this.materialSwitch11.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch11.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch11.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch11.Name = "materialSwitch11"; + this.materialSwitch11.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch11.Ripple = true; - this.materialSwitch11.Size = new System.Drawing.Size(142, 37); + this.materialSwitch11.Size = new System.Drawing.Size(184, 37); this.materialSwitch11.TabIndex = 73; - this.materialSwitch11.Text = "Use Tall Size"; + this.materialSwitch11.Text = "فعال سازی اندازه بلند"; this.materialSwitch11.UseVisualStyleBackColor = true; this.materialSwitch11.CheckedChanged += new System.EventHandler(this.materialSwitch11_CheckedChanged); // @@ -1626,15 +2097,16 @@ private void InitializeComponent() this.materialSwitch10.Checked = true; this.materialSwitch10.CheckState = System.Windows.Forms.CheckState.Checked; this.materialSwitch10.Depth = 0; - this.materialSwitch10.Location = new System.Drawing.Point(528, 182); + this.materialSwitch10.Location = new System.Drawing.Point(246, 181); this.materialSwitch10.Margin = new System.Windows.Forms.Padding(0); this.materialSwitch10.MouseLocation = new System.Drawing.Point(-1, -1); this.materialSwitch10.MouseState = MaterialSkin.MouseState.HOVER; this.materialSwitch10.Name = "materialSwitch10"; + this.materialSwitch10.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSwitch10.Ripple = true; - this.materialSwitch10.Size = new System.Drawing.Size(133, 37); + this.materialSwitch10.Size = new System.Drawing.Size(169, 37); this.materialSwitch10.TabIndex = 72; - this.materialSwitch10.Text = "Use Accent"; + this.materialSwitch10.Text = "فعال سازی رنگ مد"; this.materialSwitch10.UseVisualStyleBackColor = true; this.materialSwitch10.CheckedChanged += new System.EventHandler(this.materialSwitch10_CheckedChanged); // @@ -1651,7 +2123,7 @@ private void InitializeComponent() this.materialTextBox21.HelperText = "Helper Text"; this.materialTextBox21.HideSelection = true; this.materialTextBox21.LeadingIcon = null; - this.materialTextBox21.Location = new System.Drawing.Point(528, 114); + this.materialTextBox21.Location = new System.Drawing.Point(31, 113); this.materialTextBox21.MaxLength = 32767; this.materialTextBox21.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox21.Name = "materialTextBox21"; @@ -1683,7 +2155,7 @@ private void InitializeComponent() this.materialMultiLineTextBox21.Depth = 0; this.materialMultiLineTextBox21.HideSelection = true; this.materialMultiLineTextBox21.Hint = "MaterialMultiLineTextBox2"; - this.materialMultiLineTextBox21.Location = new System.Drawing.Point(25, 385); + this.materialMultiLineTextBox21.Location = new System.Drawing.Point(530, 384); this.materialMultiLineTextBox21.MaxLength = 2147483647; this.materialMultiLineTextBox21.MouseState = MaterialSkin.MouseState.OUT; this.materialMultiLineTextBox21.Name = "materialMultiLineTextBox21"; @@ -1714,7 +2186,7 @@ private void InitializeComponent() this.materialTextBox5.HideSelection = true; this.materialTextBox5.Hint = "This is Disabled"; this.materialTextBox5.LeadingIcon = null; - this.materialTextBox5.Location = new System.Drawing.Point(222, 170); + this.materialTextBox5.Location = new System.Drawing.Point(530, 169); this.materialTextBox5.MaxLength = 50; this.materialTextBox5.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox5.Name = "materialTextBox5"; @@ -1748,7 +2220,7 @@ private void InitializeComponent() this.materialTextBox4.HideSelection = true; this.materialTextBox4.Hint = "This is Disabled"; this.materialTextBox4.LeadingIcon = null; - this.materialTextBox4.Location = new System.Drawing.Point(25, 170); + this.materialTextBox4.Location = new System.Drawing.Point(745, 169); this.materialTextBox4.MaxLength = 50; this.materialTextBox4.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox4.Name = "materialTextBox4"; @@ -1780,7 +2252,7 @@ private void InitializeComponent() this.materialTextBox3.HideSelection = true; this.materialTextBox3.Hint = "This field has UseTallSize = false"; this.materialTextBox3.LeadingIcon = null; - this.materialTextBox3.Location = new System.Drawing.Point(25, 338); + this.materialTextBox3.Location = new System.Drawing.Point(530, 337); this.materialTextBox3.MaxLength = 50; this.materialTextBox3.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox3.Name = "materialTextBox3"; @@ -1806,25 +2278,27 @@ private void InitializeComponent() this.materialLabel27.Depth = 0; this.materialLabel27.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel27.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel27.Location = new System.Drawing.Point(28, 18); + this.materialLabel27.Location = new System.Drawing.Point(758, 17); this.materialLabel27.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel27.Name = "materialLabel27"; - this.materialLabel27.Size = new System.Drawing.Size(155, 51); + this.materialLabel27.Size = new System.Drawing.Size(178, 51); this.materialLabel27.TabIndex = 62; - this.materialLabel27.Text = "Textbox"; + this.materialLabel27.Text = "کادر متنی"; // // materialLabel56 // this.materialLabel56.Depth = 0; - this.materialLabel56.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel56.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel56.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel56.Location = new System.Drawing.Point(525, 51); + this.materialLabel56.Location = new System.Drawing.Point(28, 50); this.materialLabel56.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel56.Name = "materialLabel56"; - this.materialLabel56.Size = new System.Drawing.Size(413, 51); + this.materialLabel56.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialLabel56.Size = new System.Drawing.Size(387, 51); this.materialLabel56.TabIndex = 61; - this.materialLabel56.Text = "Material TextBox2 is a new variant of Material TextBox but with new code approach" + - " and with new functionality."; + this.materialLabel56.Text = "Material TextBox2 نوع جدیدی از Material TextBox است اما با رویکرد کد جدید و با عم" + + "لکرد جدید."; + this.materialLabel56.TextAlign = System.Drawing.ContentAlignment.TopRight; // // materialLabel23 // @@ -1832,12 +2306,12 @@ private void InitializeComponent() this.materialLabel23.Depth = 0; this.materialLabel23.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel23.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel23.Location = new System.Drawing.Point(35, 89); + this.materialLabel23.Location = new System.Drawing.Point(712, 88); this.materialLabel23.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel23.Name = "materialLabel23"; - this.materialLabel23.Size = new System.Drawing.Size(158, 17); + this.materialLabel23.Size = new System.Drawing.Size(224, 17); this.materialLabel23.TabIndex = 61; - this.materialLabel23.Text = "This texbox has no hint!"; + this.materialLabel23.Text = "این تکس باکس هیچ اشاره ای ندارد!"; // // materialTextBox2 // @@ -1852,7 +2326,7 @@ private void InitializeComponent() this.materialTextBox2.HideSelection = true; this.materialTextBox2.Hint = "Password"; this.materialTextBox2.LeadingIcon = null; - this.materialTextBox2.Location = new System.Drawing.Point(25, 282); + this.materialTextBox2.Location = new System.Drawing.Point(530, 281); this.materialTextBox2.MaxLength = 50; this.materialTextBox2.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox2.Name = "materialTextBox2"; @@ -1884,7 +2358,7 @@ private void InitializeComponent() this.materialTextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialTextBox1.HideSelection = true; this.materialTextBox1.LeadingIcon = null; - this.materialTextBox1.Location = new System.Drawing.Point(25, 114); + this.materialTextBox1.Location = new System.Drawing.Point(530, 113); this.materialTextBox1.MaxLength = 50; this.materialTextBox1.MouseState = MaterialSkin.MouseState.OUT; this.materialTextBox1.Name = "materialTextBox1"; @@ -1917,7 +2391,7 @@ private void InitializeComponent() this.materialSingleLineTextField2.HideSelection = true; this.materialSingleLineTextField2.Hint = "Type here"; this.materialSingleLineTextField2.LeadingIcon = null; - this.materialSingleLineTextField2.Location = new System.Drawing.Point(25, 226); + this.materialSingleLineTextField2.Location = new System.Drawing.Point(530, 225); this.materialSingleLineTextField2.MaxLength = 50; this.materialSingleLineTextField2.MouseState = MaterialSkin.MouseState.OUT; this.materialSingleLineTextField2.Name = "materialSingleLineTextField2"; @@ -3257,5 +3731,13 @@ private void InitializeComponent() private MaterialLabel materialLabel57; private MaterialSwitch materialSwitch16; private MaterialLabel materialLabel58; + private MaterialComboBox materialComboBox6; + private MaterialComboBox materialComboBox2; + private MaterialComboBox materialComboBox5; + private MaterialComboBox materialComboBox4; + private MaterialComboBox materialComboBox3; + private MaterialComboBox materialComboBox1; + private MaterialComboBox materialComboBox7; + private MaterialComboBox materialComboBox8; } } diff --git a/MaterialSkinExample.RTL/MainForm.cs b/MaterialSkinExample.RTL/MainForm.cs index c2c0440f..f95271c3 100644 --- a/MaterialSkinExample.RTL/MainForm.cs +++ b/MaterialSkinExample.RTL/MainForm.cs @@ -1,4 +1,4 @@ -using MaterialSkin; +using MaterialSkin; using MaterialSkin.Controls; using System; using System.Text; @@ -29,13 +29,13 @@ public MainForm(RightToLeft RightToLeft = RightToLeft.Yes) : base(RightToLeft) // Add dummy data to the listview seedListView(); - materialCheckedListBox1.Items.Add("Item1", false); - materialCheckedListBox1.Items.Add("Item2", true); - materialCheckedListBox1.Items.Add("Item3", true); - materialCheckedListBox1.Items.Add("Item4", false); - materialCheckedListBox1.Items.Add("Item5", true); - materialCheckedListBox1.Items.Add("Item6", false); - materialCheckedListBox1.Items.Add("Item7", false); + materialCheckedListBox1.Items.Add("آیتم ۱", false); + materialCheckedListBox1.Items.Add("آیتم ۲", true); + materialCheckedListBox1.Items.Add("آیتم ۳", true); + materialCheckedListBox1.Items.Add("آیتم ۴", false); + materialCheckedListBox1.Items.Add("آیتم ۵", true); + materialCheckedListBox1.Items.Add("آیتم ۶", false); + materialCheckedListBox1.Items.Add("آیتم ۷", false); materialListBoxFormStyle.Clear(); diff --git a/MaterialSkinExample.RTL/MainForm.resx b/MaterialSkinExample.RTL/MainForm.resx index 9222fdf0..6d7135ed 100644 --- a/MaterialSkinExample.RTL/MainForm.resx +++ b/MaterialSkinExample.RTL/MainForm.resx @@ -118,10 +118,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Here is a list of every variant a Material Button can be. Contained button's shadows are only drawn at run-time. -Click on them and checkout those sweet animations. Oh yeah, the buttons follow the theme and colors, try changing those too. -Normally the buttons should be AutoSize = true, but for the sake of my OCD, it's set to false here -If any of the buttons looks weird while designing, change the tab background color from transparent to white. + در اینجا فهرستی از هر گونه‌ای که یک دکمه Material می‌تواند باشد، آمده است. سایه های دکمه موجود فقط در زمان اجرا کشیده می شوند. +روی آنها کلیک کنید و آن انیمیشن های شیرین را بررسی کنید. اوه بله، دکمه‌ها از تم و رنگ‌ها پیروی می‌کنند، آن‌ها را نیز تغییر دهید. +به طور معمول دکمه ها باید AutoSize = true باشند، اما به خاطر OCD من، در اینجا روی false تنظیم شده است. +اگر هر یک از دکمه ها هنگام طراحی عجیب به نظر می رسد، رنگ پس زمینه برگه را از شفاف به سفید تغییر دهید. 219, 17 @@ -130,240 +130,240 @@ If any of the buttons looks weird while designing, change the tab background col AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABq - NgAAAk1TRnQBSQFMAgEBEgIAAQcBAAEHARgBAAEYAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABYAMA - AXgDAAEBAQABIAYAAbT/AP8A/wAxAAMMARADPQFnA1gBuwNcAecDAAH/AwAB/wNdAeMDVAGvAzkBXwMG - AQgoAAMvAUkDXQHjAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DXQHjAy4BSOQAAz4BawNgAesDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNc - Ad8DNQFXJAADXQHiAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wNdAeLcAAMJAQwDUgGjAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/A0oBiwMDAQQfAAH/AwAB/wMnATswAAMnATsDAAH/AwAB/9wAA1IBowMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0cBgx8A - Af8DAAH/OwAB/wMAAf/YAAM+AWsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AzABSxsAAf8DAAH/HAADWQHEAwAB/wMAAf8DAAH/A1kBxAsA - Af8DAAH/1AADDAEQA2AB6wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A10B1wMDAQQUAAMGAf4DAAH/HwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/9QA - Az0BZwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DLgFHFAADBgH+AwAB/x8AAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf/UAANYAbsDAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DTwGbFAADBgH+AwAB/x8AAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf/UAANcAecDAAH/ + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABs + NgAAAk1TRnQBSQFMAgEBEgEAASgBBwEoAQcBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + AwABeAMAAQEBAAEgBgABtP8A/wD/ADEAAwwBEAM9AWcDWAG7A1wB5wMAAf8DAAH/A10B4wNUAa8DOQFf + AwYBCCgAAy8BSQNdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wNdAeMDLgFI5AADPgFrA2AB6wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + A1wB3wM1AVckAANdAeIDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/A10B4twAAwkBDANSAaMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DSgGLAwMBBB8AAf8DAAH/AycBOzAAAycBOwMAAf8DAAH/3AADUgGj + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DRwGD + HwAB/wMAAf87AAH/AwAB/9gAAz4BawMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DMAFLGwAB/wMAAf8cAANZAcQDAAH/AwAB/wMAAf8DWQHE + CwAB/wMAAf/UAAMMARADYAHrAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DXQHXAwMBBBQAAwYB/gMAAf8fAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/ + 1AADPQFnAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMuAUcUAAMGAf4DAAH/HwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/9QAA1gBuwMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wNPAZsUAAMGAf4DAAH/HwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/9QAA1wB5wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wNZAccUAAMGAf4DAAH/HAADWQHEAwAB/wMAAf8DAAH/A1kBxAsAAf8DAAH/1wAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbwNAAW8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wNdAeMUAAMGAf4DAAH/OwAB/wMAAf/XAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8UAAMwAf0DAAH/OwAB/wMA + Af/UAANdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/A1kBwxQAAzAB/QMAAf87AAH/AwAB/9QAA1QBrwMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSwGPFAADMAH9AwAB/zsA + Af8DAAH/1AADOQFfAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMqAUAUAAMwAf0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/9QAAwYBCANcAd8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/A0sBjwNLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxxgAAzAB/QMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/2AADNQFXAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AyEB+wMoATwYAAMrAfwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/9wAA0oBiwMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/Az4BaxwAA18B4AMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHi3AADAwEE + A0cBgwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AyEB+wM+AWsgAAMu + AUgDXQHjAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DXQHjAy4BSOQAAzABSwNdAdcDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNZAccDKAE8 + MwAB/wMAAf8jAAH/AwAB//QAAwMBBAMuAUcDTwGbA1kBxwNcAd8DXAHfA1kBwwNLAY8DKgFAOAADWQHE + A1kBxCAAA1kBxANZAcT/AP8A/wD/AP8A/wD/AEsAAy4BSANdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A10B4wMuAUgkAAMrAUIDTAGT + A1wB1ANcAeoDAAH/AwAB/wMAAf8DAAH/A1kBxDgAAwQBBQM1AVYDUAGkA18B2wNPAfMDTwHzA18B2wNQ + AaQDNQFWAwQBBYgAA10B4gMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNdAeIcAAMnAToDWgHKAwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DWQHENAADMwFSA1wB3AMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + A1wB3AMzAVIoAANZAcQDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wNZAcQfAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xgAA0IBdgMhAfsDAAH/A1oB5ANGAX4DJgE4 + Aw0BEUAAAwEBAgNKAYsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DSgGLAwEBAiMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8fAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1YBswMqAUADCQEMAwkBDAMq + AUADVgGzAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xQAA0MBeAMAAf8DKwH8A0cBggMEAQZMAANK + AYsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNK + AYsgAANcAd8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wNcAd8fAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DRAF6GAADRAF6AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/EAADLAFDAwYB/gMrAfwDMgFRUAADMwFSAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMzAVIcAAMyAVEDKQH6AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AykB+gMyAVEfAAH/AwAB/wMAAf8DAAH/ + AwAB/wNVAbIEAAMEAQYDSQGHA2EB5gNhAeYDSQGHAwQBBgQAA1UBsgMAAf8DAAH/AwAB/wMAAf8DAAH/ + DAADAwEEA18B2wMAAf8DQgF0DAADMQFNA1kBvgNSAfADWQHyA1gBwQMwAUwEAAM5AV8DXAHRAykB+gNc + Ac4DNQFWFAADBAEGA1wB3AMAAf8DAAH/AwAB/wNbAd4DRwGDA1wB6gMAAf8DAAH/AwAB/wMAAf8DWgHp + A0cBgwNcAd8DAAH/AwAB/wMAAf8DXAHcAwQBBhwAAyQBNgNYAcEDAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/A1gBwQMkATYjAAH/AwAB/wMAAf8DAAH/AwAB/wMqAUAEAANJAYgDAAH/ + AwAB/wMAAf8DAAH/A0kBiAQAAyoBQAMAAf8DAAH/AwAB/wMAAf8DAAH/DAADMQFOAwAB/wNbAdYDAgED + CAADSAGFAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1gBwQMAAf8DAAH/AwAB/wMAAf8DBgH+AzMBUhAA + AzUBVQMAAf8DAAH/AwAB/wMAAf8DRwGDBAADHwEsA1oB6QMAAf8DAAH/A1oB6QMeASsEAANIAYUDAAH/ + AwAB/wMAAf8DAAH/AzUBVSQAAxkBIwM/AWwDVQGyA1sB2ANZAfIDAAH/A2AB4QNVAbIDPwFsAxkBIysA + Af8DAAH/AwAB/wMAAf8DAAH/AwoBDQQAA14B5QMAAf8DAAH/AwAB/wMAAf8DXgHlBAADCgENAwAB/wMA + Af8DAAH/AwAB/wMAAf8MAANSAaYDAAH/A0ABcAgAAzABSwMAAf8DQQH5A0MBdwMSARgDEgEYA0MBdwNB + AfkDAAH/AwAB/wNIAYYDCwEPA0gBhgMAAf8DXAHMEAADUQGlAwAB/wMAAf8DAAH/AwAB/wNcAeoDHwEs + BAADHwEsA1oB6QNaAekDHgErBAADHwEtA2AB6wMAAf8DAAH/AwAB/wMAAf8DUQGldwAB/wMAAf8DAAH/ + AwAB/wMAAf8DCgENBAADXgHlAwAB/wMAAf8DAAH/AwAB/wNeAeUEAAMKAQ0DAAH/AwAB/wMAAf8DAAH/ + AwAB/wwAA14B1QMAAf8DIgEyCAADVgG5AwAB/wNCAXYQAANCAXYDAAH/AwAB/wMGAQgEAAMGAQgDAAH/ + Az4B+BAAA1sB2AMAAf8DAAH/AwAB/wMAAf8DAAH/A1oB6QMfASwEAAMfASwDHwEsBAADHwEtA1wB6gMA + Af8DAAH/AwAB/wMAAf8DAAH/A1sB2HcAAf8DAAH/AwAB/wMAAf8DAAH/AyoBQAQAA0kBiAMAAf8DAAH/ + AwAB/wMAAf8DSQGIBAADKgFAAwAB/wMAAf8DAAH/AwAB/wMAAf8MAANPAfMDAAH/Aw8BFAgAA1YB8QMA + Af8DEgEZEAADEgEZAwAB/wMGAf4LAAEBAwAB/wMGAf4QAANZAfIDAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DWgHpAx8BLAgAAx8BLANcAeoDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DWQHyLAADFAEcA1IBpgNh + AeYDYQHmA1IBpgMUARwzAAH/AwAB/wMAAf8DAAH/AwAB/wNVAbIEAAMEAQYDSQGHA2EB5gNhAeYDSQGH + AwQBBgQAA1UBsgMAAf8DAAH/AwAB/wMAAf8DAAH/DAADYAHrAwAB/wMKAQ4IAANWAfEDAAH/AxIBGRAA + AxIBGQMAAf8DXwHgCAADDQERAwAB/wNgAesQAANZAfIDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXAHq + Ax8BLAgAAx8BLANaAekDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DWQHyKAADFAEcA10B7QMAAf8DAAH/ + AwAB/wMAAf8DXQHtAxQBHC8AAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNEAXoYAANEAXoDAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8MAANeAdoDAAH/AyQBNggAA1YBvAMAAf8DQgF2EAADQgF2AwAB/wNVAa0IAAMm + ATgDAAH/A1sB0BAAA1sB2AMAAf8DAAH/AwAB/wMAAf8DAAH/A1wB6gMfAS0EAAMfASwDHwEsBAADHwEs + A1oB6QMAAf8DAAH/AwAB/wMAAf8DAAH/A1sB2CgAA1IBpgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNS + AaYsAAMZASMDFAEcA1cBtwMAAf8DAAH/AwAB/wMAAf8DVgGzAyoBQAMJAQwDCQEMAyoBQANWAbMDAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADUAGeAwAB/wNCAXUIAAMvAUoDAAH/A0EB+QNDAXcDEgEY + AxIBGANDAXcDQQH5AzAB/QMiATIIAANGAX8DAAH/A0wBkhAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DYAHr + Ax8BLQQAAx4BKwNaAekDWgHpAx8BLAQAAx8BLANcAeoDAAH/AwAB/wMAAf8DAAH/A1EBpSgAA14B5QMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUsAANZAcQDWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADNQFWAwAB/wNf + AeADAwEECAADRwGCAwAB/wMAAf8DAAH/AwAB/wMAAf8DMAH9A0ABbwgAAwUBBwNdAeMDAAH/AysBQhAA + AzUBVQMAAf8DAAH/AwAB/wMAAf8DSAGFBAADHgErA1oB6QMAAf8DAAH/A1oB6QMfASwEAANHAYMDAAH/ + AwAB/wMAAf8DAAH/AzUBVSgAA14B5QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUvAAH/AwAB/wcA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DXQHiDAADAgEDA1sB2QMAAf8DRgF+DAADLwFJA1gBuwNPAfMDUQH3A1QBrAMrAUIMAANHAYIDAAH/ + A1wByRQAAwQBBgNcAdwDAAH/AwAB/wMAAf8DXAHfA0cBgwNaAekDAAH/AwAB/wMAAf8DAAH/A1wB6gNH + AYMDWwHeAwAB/wMAAf8DAAH/A1wB3AMEAQYoAANSAaYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUgGm + LwAB/wMAAf8IAAMUARwDVwG3AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/A10B4wMuAUgQAAMyAVADBgH+AzAB/QMyAVEoAAMzAVMDKwH8AyEB+wMnAToYAAMzAVIDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DWQHHFAADBgH+AwAB/xwAA1kBxAMAAf8DAAH/AwAB/wNZAcQLAAH/AwAB/9cAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNAAW8DQAFvAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DXQHjFAADBgH+AwAB/zsAAf8DAAH/1wAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXAHfFAADKwH9AwAB/zsAAf8DAAH/ - 1AADXQHjAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wNZAcMUAAMrAf0DAAH/OwAB/wMAAf/UAANUAa8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0sBjxQAAysB/QMAAf87AAH/ - AwAB/9QAAzkBXwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DKgFAFAADKwH9AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf/UAAMGAQgDXAHfAwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wNLAY8DSwGPAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNZAccYAAMrAf0DAAH/ + AzMBUiwAAxQBHANdAe0DAAH/AwAB/wMAAf8DAAH/A10B7QMUARwgAANZAcQDAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DBgH+AzkBXygAA0kBhwMA + Af8DMAH9A0YBfgMDAQQYAAMDAQQDQgF2AysB/AMAAf8DQgF1IAADSgGLAwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSgGLNAADFAEcA1IBpgNhAeYDYQHm + A1IBpgMUARwkAANZAcQDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DWQHEAxkBIwMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wNcAeoDOwFjLAADAQECA0kBhwMAAf8DAAH/A2AB4QNCAXUDJAE1AwsBDwMRARcDJAE1 + A0EBcwNdAdcDAAH/AwAB/wNDAXckAAMBAQIDSgGLAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/A0oBiwMBAQJ/AAH/AwAB/2QAAzIBUANbAdkDAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wNfAdsDKwFCMAADMwFSA1wB3AMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/A1wB3AMzAVKHAAH/AwAB/2gAAwIBAwM1AVYDUAGeA1sB2ANdAeMDKwH8A1oB0wNSAaYDMQFO + AwMBBDgAAwQBBQM1AVYDUAGkA18B2wNPAfMDTwHzA18B2wNQAaQDNQFWAwQBBYgAA1kBxANZAcT/AP8A + /wD/AP8A/wB+AANLAY8DSwGPxAADSgGKA0oBilgAAwoBDQM5AV8DTgGVA1kBvwNfAegDXwHbAywBRDQA + AxcBIAMAAf8DXAHfwAADSAGECP8DSAGETAADJwE7A1QBqwNRAfcDAAH/AwAB/wMAAf8DAAH/AwAB/wNe + Ad00AAMXASADAAH/A1wB3zQAAy4BSANdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A10B4wMuAUg4AANAAW8Q/wNAAW9AAAMWAR4DUgGm + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DKwH8NAADFwEgAwAB/wNcAd80AANdAeIDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/9gAAzUBVwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMhAfsDKAE8GAADKwH8AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf/cAANKAYsDAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wM+AWscAANfAeADAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A10B4twAAwMBBANH - AYMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMhAfsDPgFrIAADLgFI - A10B4wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - A10B4wMuAUjkAAMwAUsDXQHXAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DWQHHAygBPDMA - Af8DAAH/IwAB/wMAAf/0AAMDAQQDLgFHA08BmwNZAccDXAHfA1wB3wNZAcMDSwGPAyoBQDgAA1kBxANZ - AcQgAANZAcQDWQHE/wD/AP8A/wD/AP8A/wBLAAMuAUgDXQHjAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNdAeMDLgFIJAADKwFCA0wBkwNc - AdQDXAHqAwAB/wMAAf8DAAH/AwAB/wNZAcQ4AAMEAQUDNQFWA1ABpANfAdsDTwHzA08B8wNfAdsDUAGk - AzUBVgMEAQWIAANdAeIDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHiHAADJwE6A1oBygMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A1kBxDQAAzMBUgNcAdwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNc - AdwDMwFSKAADWQHEAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DWQHEHwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8YAANCAXYDIQH7AwAB/wNaAeQDRgF+AyYBOAMN - ARFAAAMBAQIDSgGLAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - A0oBiwMBAQIjAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/HwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNWAbMDKgFAAwkBDAMJAQwDKgFA - A1YBswMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8UAANDAXgDAAH/AysB/ANHAYIDBAEGTAADSgGL - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSgGL - IAADXAHfAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DXAHfHwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0QBehgAA0QBegMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/xAAAywBQwMGAf4DKwH8AzIBUVAAAzMBUgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DMwFSHAADMgFRAykB+gMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMpAfoDMgFRHwAB/wMAAf8DAAH/AwAB/wMA - Af8DVQGyBAADBAEGA0kBhwNhAeYDYQHmA0kBhwMEAQYEAANVAbIDAAH/AwAB/wMAAf8DAAH/AwAB/wwA - AwMBBANfAdsDAAH/A0IBdAwAAzEBTQNZAb4DUgHwA1kB8gNYAcEDMAFMBAADOQFfA1wB0QMpAfoDXAHO - AzUBVhQAAwQBBgNcAdwDAAH/AwAB/wMAAf8DWwHeA0cBgwNcAeoDAAH/AwAB/wMAAf8DAAH/A1oB6QNH - AYMDXAHfAwAB/wMAAf8DAAH/A1wB3AMEAQYcAAMkATYDWAHBAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wNYAcEDJAE2IwAB/wMAAf8DAAH/AwAB/wMAAf8DKgFABAADSQGIAwAB/wMA - Af8DAAH/AwAB/wNJAYgEAAMqAUADAAH/AwAB/wMAAf8DAAH/AwAB/wwAAzEBTgMAAf8DWwHWAwIBAwgA - A0gBhQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNYAcEDAAH/AwAB/wMAAf8DAAH/AwYB/gMzAVIQAAM1 - AVUDAAH/AwAB/wMAAf8DAAH/A0cBgwQAAx8BLANaAekDAAH/AwAB/wNaAekDHgErBAADSAGFAwAB/wMA - Af8DAAH/AwAB/wM1AVUkAAMZASMDPwFsA1UBsgNbAdgDWQHyAwAB/wNgAeEDVQGyAz8BbAMZASMrAAH/ - AwAB/wMAAf8DAAH/AwAB/wMKAQ0EAANeAeUDAAH/AwAB/wMAAf8DAAH/A14B5QQAAwoBDQMAAf8DAAH/ - AwAB/wMAAf8DAAH/DAADUgGmAwAB/wNAAXAIAAMwAUsDAAH/A0EB+QNDAXcDEgEYAxIBGANDAXcDQQH5 - AwAB/wMAAf8DSAGGAwsBDwNIAYYDAAH/A1wBzBAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DXAHqAx8BLAQA - Ax8BLANaAekDWgHpAx4BKwQAAx8BLQNgAesDAAH/AwAB/wMAAf8DAAH/A1EBpXcAAf8DAAH/AwAB/wMA - Af8DAAH/AwoBDQQAA14B5QMAAf8DAAH/AwAB/wMAAf8DXgHlBAADCgENAwAB/wMAAf8DAAH/AwAB/wMA - Af8MAANeAdUDAAH/AyIBMggAA1YBuQMAAf8DQgF2EAADQgF2AwAB/wMAAf8DBgEIBAADBgEIAwAB/wM+ - AfgQAANbAdgDAAH/AwAB/wMAAf8DAAH/AwAB/wNaAekDHwEsBAADHwEsAx8BLAQAAx8BLQNcAeoDAAH/ - AwAB/wMAAf8DAAH/AwAB/wNbAdh3AAH/AwAB/wMAAf8DAAH/AwAB/wMqAUAEAANJAYgDAAH/AwAB/wMA - Af8DAAH/A0kBiAQAAyoBQAMAAf8DAAH/AwAB/wMAAf8DAAH/DAADTwHzAwAB/wMPARQIAANWAfEDAAH/ - AxIBGRAAAxIBGQMAAf8DBgH+CwABAQMAAf8DBgH+EAADWQHyAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - A1oB6QMfASwIAAMfASwDXAHqAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kB8iwAAxQBHANSAaYDYQHm - A2EB5gNSAaYDFAEcMwAB/wMAAf8DAAH/AwAB/wMAAf8DVQGyBAADBAEGA0kBhwNhAeYDYQHmA0kBhwME - AQYEAANVAbIDAAH/AwAB/wMAAf8DAAH/AwAB/wwAA2AB6wMAAf8DCgEOCAADVgHxAwAB/wMSARkQAAMS - ARkDAAH/A18B4AgAAw0BEQMAAf8DYAHrEAADWQHyAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1wB6gMf - ASwIAAMfASwDWgHpAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kB8igAAxQBHANdAe0DAAH/AwAB/wMA - Af8DAAH/A10B7QMUARwvAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DRAF6GAADRAF6AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/DAADXgHaAwAB/wMkATYIAANWAbwDAAH/A0IBdhAAA0IBdgMAAf8DVQGtCAADJgE4 - AwAB/wNbAdAQAANbAdgDAAH/AwAB/wMAAf8DAAH/AwAB/wNcAeoDHwEtBAADHwEsAx8BLAQAAx8BLANa - AekDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAdgoAANSAaYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUgGm - LAADGQEjAxQBHANXAbcDAAH/AwAB/wMAAf8DAAH/A1YBswMqAUADCQEMAwkBDAMqAUADVgGzAwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1ABngMAAf8DQgF1CAADLwFKAwAB/wNBAfkDQwF3AxIBGAMS - ARgDQwF3A0EB+QMrAf0DIgEyCAADRgF/AwAB/wNMAZIQAANRAaUDAAH/AwAB/wMAAf8DAAH/A2AB6wMf - AS0EAAMeASsDWgHpA1oB6QMfASwEAAMfASwDXAHqAwAB/wMAAf8DAAH/AwAB/wNRAaUoAANeAeUDAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DXgHlLAADWQHEA1kBxAMVAR0DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAAzUBVgMAAf8DXwHg - AwMBBAgAA0cBggMAAf8DAAH/AwAB/wMAAf8DAAH/AysB/QNAAW8IAAMFAQcDXQHjAwAB/wMrAUIQAAM1 - AVUDAAH/AwAB/wMAAf8DAAH/A0gBhQQAAx4BKwNaAekDAAH/AwAB/wNaAekDHwEsBAADRwGDAwAB/wMA - Af8DAAH/AwAB/wM1AVUoAANeAeUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXgHlLwAB/wMAAf8HAAH/ + AwAB/wMAAf8DXQHiNAADHgErGP8DIAEuOAADMQRPAfMDAAH/A1kB8gNcAdwDAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DIQH7NAADFwEgAwAB/wNcAd83AAH/AwAB/wMnATs4AAMnATsDAAH/AwAB/0AACP9AAAND + AXgDMAH9AwAB/wNUAasDFAEbAxABFQNaAdMDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAcs0AAMXASADAAH/ + A1wB3zcAAf8DAAH/QwAB/wMAAf9AAAj/PAADQwF3AwAB/wMrAfwDQAFxDAADEAEVA1gBuwMAAf8DWAHv + A10B0gNRAaUDGQEjNAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf9AAAj/OAADMgFQAzAB/QMr + AfwDNQFVYAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf8oAANdAdIDXQHSEAAI/zQAAxYBHwNP + AfMDAAH/A0ABcVAAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wNLAY8cAAMGAf4DAAH/QwAB/wMAAf8oAAj/EAAI/zQAA1IBpwMAAf8DVAGrVAADVgGzAwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A04BlxwAAwYB/gMAAf8YAAMV + AR0DRgGAA0YBgAMVAR0bAAH/AwAB/ygACP8QAAj/MAADJwE7AwYB/gNZAfIDFAEbVAADBgEIA0oBiwMh + AfsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNRAfcDQQFzAwMBBBwAAwYB/gMAAf8QAAMC + AQMDQAFwA1kB8gMAAf8DAAH/A1kB8gNAAXADAgEDEwAB/wMAAf8oAAj/EAADYAHUA14B1TAAA1QBqwMA + Af8DXwHbAxABFVwAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbyQAAzAB/QMA + Af8MAAMjATMDXAHMAwAB/wNdAeIDMQFPAzEBTwNdAeIDAAH/A1wBzAMjATMPAAH/AwAB/ygACP9EAAMK + AQ4DUQH3AwAB/wMAAf8DWgHTAxABFVgAAyYBOAMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AxQBHCQAAzAB/QMAAf8EAAMKAQ0DSwGPAysB/AMrAfwDSwGPAwoBDQgAAwoBDQNLAY8DKwH8AysB/ANL + AY8DCgENBwAB/wMAAf8oAAj/RAADOQFfAwAB/wMAAf8DAAH/AwAB/wNWAbxfAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/ygAAzAB/QMAAf8DMQFPA10B4gMAAf8DXAHMAyMBMxgAAyMBMwNcAcwDAAH/ + A10B4gMxAU8DAAH/AwAB/ygACP9EAANOAZcDAAH/AwAB/wMAAf8DAAH/AzAB/QMCAQNbAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzAB/QMAAf8DAAH/A1kB8gNAAW8DAgEDIAADAgEDA0ABbwNZ + AfIDAAH/AwAB/wMAAf8cAAMfASwU/wN/Af4DHwEsOAADWQG/AwAB/wMAAf8DAAH/AwAB/wNZAfJfAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzAB/QMAAf8DVAGvAxUBHTAAAxUBHQNUAa8DAAH/ + AwAB/yAAA0ABbxD/Az0BaDwAA2EB5gMAAf8DAAH/AwAB/wMAAf8DXAHUXwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8oAANcAd8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHiJAADSAGECP8DRwGBQAADXAHcAwAB/wMA + Af8DAAH/AwAB/wNSAahfAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAy4BRwNdAeMDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - A10B4gwAAwIBAwNbAdkDAAH/A0YBfgwAAy8BSQNYAbsDTwHzA1EB9wNUAawDKwFCDAADRwGCAwAB/wNc - AckUAAMEAQYDXAHcAwAB/wMAAf8DAAH/A1wB3wNHAYMDWgHpAwAB/wMAAf8DAAH/AwAB/wNcAeoDRwGD - A1sB3gMAAf8DAAH/AwAB/wNcAdwDBAEGKAADUgGmAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1IBpi8A - Af8DAAH/CAADFAEcA1cBtwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wNdAeMDLgFIEAADMgFQAwYB/gMrAf0DMgFRKAADMwFTAysB/AMhAfsDJwE6GAADMwFSAwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMz - AVIsAAMUARwDXQHtAwAB/wMAAf8DAAH/AwAB/wNdAe0DFAEcIAADWQHEAwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/A1kBxAMVAR0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwYB/gM5AV8oAANJAYcDAAH/ - AysB/QNGAX4DAwEEGAADAwEEA0IBdgMrAfwDAAH/A0IBdSAAA0oBiwMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0oBizQAAxQBHANSAaYDYQHmA2EB5gNS - AaYDFAEcJAADWQHEAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxAMZASMDAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DXAHqAzsBYywAAwEBAgNJAYcDAAH/AwAB/wNgAeEDQgF1AyQBNQMLAQ8DEQEXAyQBNQNB - AXMDXQHXAwAB/wMAAf8DQwF3JAADAQECA0oBiwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wNKAYsDAQECfwAB/wMAAf9kAAMyAVADWwHZAwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DXwHbAysBQjAAAzMBUgNcAdwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wNcAdwDMwFShwAB/wMAAf9oAAMCAQMDNQFWA1ABngNbAdgDXQHjAysB/ANaAdMDUgGmAzEBTgMD - AQQ4AAMEAQUDNQFWA1ABpANfAdsDTwHzA08B8wNfAdsDUAGkAzUBVgMEAQWIAANZAcQDWQHE/wD/AP8A - /wD/AP8AfgADSwGPA0sBj8QAA0oBigNKAYpYAAMKAQ0DOQFfA04BlQNZAb8DXwHoA18B2wMsAUQ0AAMX - ASADAAH/A1wB38AAA0gBhAj/A0gBhEwAAycBOwNUAasDUQH3AwAB/wMAAf8DAAH/AwAB/wMAAf8DXgHd - NAADFwEgAwAB/wNcAd80AAMuAUgDXQHjAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNdAeMDLgFIOAADQAFvEP8DQAFvQAADFgEeA1IBpgMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AysB/DQAAxcBIAMAAf8DXAHfNAADXQHiAwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/A10B4jQAAx4BKxj/AyABLjgAAzEETwHzAwAB/wNZAfIDXAHcAwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AyEB+zQAAxcBIAMAAf8DXAHfNwAB/wMAAf8DJwE7OAADJwE7AwAB/wMAAf9AAAj/QAADQwF4 - AysB/QMAAf8DVAGrAxQBGwMQARUDWgHTAwAB/wMAAf8DAAH/AwAB/wMAAf8DWwHLNAADFwEgAwAB/wNc - Ad83AAH/AwAB/0MAAf8DAAH/QAAI/zwAA0MBdwMAAf8DKwH8A0ABcQwAAxABFQNYAbsDAAH/A1gB7wNd - AdIDUQGlAxkBIzQAAxcBIAMAAf8DXAHfNAADBgH+AwAB/0MAAf8DAAH/QAAI/zgAAzIBUAMrAf0DKwH8 - AzUBVWAAAxcBIAMAAf8DXAHfNAADBgH+AwAB/0MAAf8DAAH/KAADXQHSA10B0hAACP80AAMWAR8DTwHz - AwAB/wNAAXFQAANLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DSwGPHAADBgH+AwAB/0MAAf8DAAH/KAAI/xAACP80AANSAacDAAH/A1QBq1QAA1YBswMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNOAZccAAMGAf4DAAH/GAADFQEd - A0YBgANGAYADFQEdGwAB/wMAAf8oAAj/EAAI/zAAAycBOwMGAf4DWQHyAxQBG1QAAwYBCANKAYsDIQH7 - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUQH3A0EBcwMDAQQcAAMGAf4DAAH/EAADAgED - A0ABcANZAfIDAAH/AwAB/wNZAfIDQAFwAwIBAxMAAf8DAAH/KAAI/xAAA2AB1ANeAdUwAANUAasDAAH/ - A18B2wMQARVcAANLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNAAW8kAAMrAf0DAAH/ - DAADIwEzA1wBzAMAAf8DXQHiAzEBTwMxAU8DXQHiAwAB/wNcAcwDIwEzDwAB/wMAAf8oAAj/RAADCgEO - A1EB9wMAAf8DAAH/A1oB0wMQARVYAAMmATgDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMU - ARwkAAMrAf0DAAH/BAADCgENA0sBjwMrAfwDKwH8A0sBjwMKAQ0IAAMKAQ0DSwGPAysB/AMrAfwDSwGP - AwoBDQcAAf8DAAH/KAAI/0QAAzkBXwMAAf8DAAH/AwAB/wMAAf8DVgG8XwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8oAAMrAf0DAAH/AzEBTwNdAeIDAAH/A1wBzAMjATMYAAMjATMDXAHMAwAB/wNd - AeIDMQFPAwAB/wMAAf8oAAj/RAADTgGXAwAB/wMAAf8DAAH/AwAB/wMrAf0DAgEDWwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8oAAMrAf0DAAH/AwAB/wNZAfIDQAFvAwIBAyAAAwIBAwNAAW8DWQHy - AwAB/wMAAf8DAAH/HAADHwEsFP8DfwH+Ax8BLDgAA1kBvwMAAf8DAAH/AwAB/wMAAf8DWQHyXwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8oAAMrAf0DAAH/A1QBrwMVAR0wAAMVAR0DVAGvAwAB/wMA - Af8gAANAAW8Q/wM9AWg8AANhAeYDAAH/AwAB/wMAAf8DAAH/A1wB1F8AAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/KAADXAHfAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A10B4iQAA0gBhAj/A0cBgUAAA1wB3AMAAf8DAAH/ - AwAB/wMAAf8DUgGoXwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8oAAMuAUcDXQHjAwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNd - AeMDLgFIKAADSgGKA0oBikQAAywBQwNbAd4DAAH/AwAB/wNcAckDGQEjVAADSwGPAwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNLAY//AFEAA0ABbwMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DQAFv/wD/AP8A/wD/AEUAAwMBBAMhATADBwEKOAADXQHSA10B0v8A - MQADLQFFA2EB5gT/A1kB9QM6AWE0AAj//wAtAAMrAUIDagH5DP8DqAH9AxABFSQAAyUBNwNWAbYDXQHt - CP8DXQHtA1gBuwM7AWQDBgEIgAADFAEcA1wB30j/A14B3QMTARpAAAMrAUIDXAH4FP8DHwEsHAADFAEb - A1QBrCD/A18B4wMtAUV8AAMWAR4DKwH8SP8DTQH6AxQBHDwAAysBQgNcAfgU/wNhAeIDAwEEGAADHwEs - A2QB5wT/A2QB7ANEAXkDLAFEAxEBFwMQARYDLQFFA0QBeQNdAe0E/wMrAfwDNQFVfAADTAGSSP8DSgGL - PAADKwFCA1wB+BT/A18B8wMmATkYAAMbASYDXQHtBP8DVAGvAw4BExgAAw4BEwNVAbIE/wNcAfgDHQEp - eAADDQERA2EB7hz/CAAc/wNcAeoDCgENOAADKwFCA1wB+BT/A18B8wMkATUcAANcAcwE/wNTAaUoAANT - AaUE/wNcAc18AAM9AWkc/wgAHP8DOwFjOAADKwFCA1wB+BT/A2QB8QMkATUcAAMuAUgE/wNkAecDBgEI - CAADEgEZA1UBtQNdAe0DXQHtA1UBsgMSARkIAAMGAQgDXwHoBP8DLgFHewABAQNeAdU4/wNcAc8DAAEB - NAADKAE8A1wB+BT/A2EB7gMhATAgAANQAZ4E/wNEAXsIAAMQARYDYQHmEP8DYQHmAxABFQgAA0QBegT/ - A1ABnhAAA14B0AM1AVUEAAM1AVUDXgHQCAADNQFVA14B0BAAA14B0AM1AVUIAANeAdADNQFVIAADKQE+ - OP8DJQE3IAADJgE5A0oBjQNcAckDXQHwA2EB4QNOAZgDWQH1FP8DYQHuAx4BKyQAA10B1wT/AyABLggA - A1EBoBj/A1IBoQgAAx8BLQT/A2AB1hAABP8DRwGABAADRwGABP8IAANHAYAE/xAABP8DRwGACAAE/wNH - AYAkAANUAawU/wMgAS8DIAEvFP8DVAGmHwABAQNGAX4s/wNgAesDHgErIAADXQHSDP8DCgENCAADZQHl - GP8DZQHlCAADCgENDP8DXQHSCAAE/wNaAcADRwGAA1oBwAT/CAADRwGABP8QAAT/A0cBgAgAEP8DSQGH - GAADFgEeA1wB+BD/CAAQ/wNcAfgDEgEZHAADRwGCLP8DXwHoAxwBJyQAA2AB1Az/AwkBDAgAA2AB6xj/ - A2AB6wgAAwkBDAz/A14B1QgAFP8IAANHAYAE/xAABP8DRwGACAAE/wNaAcADRwGAA1oBwANqAfkcAANI - AYMQ/wgAEP8DRgF+HAADKQE+LP8DXwHoAxgBIjAAA14B2AT/Ax8BLAgAA1EBoBj/A1IBoQgAAx4BKwT/ - A10B1xAABP8DRwGABAADRwGABP8EAAM1AVYDWgHABP8DRQF9AxIBGQMSARkDRQF9BP8DWgHAAzUBVgQA - BP8DWgHAA0cBgANaAcADXwH7HAADBwEKA2EB5gz/AyABLwMgAS4M/wNhAeEDBQEHHAADUAGdLP8DUgGp - NAADUAGeBP8DRAF6CAADEAEVA2EB5hD/A2QB5wMNAREIAANEAXkE/wNQAZ4QAANeAdADNQFXBAADNQFX - A14B0AQAA14B0Aj/AysB/AMzAVMDMwFTAysB/Aj/A14B0AQAA2AB1Az/A0kBhyAAAzcBWiD/AzUBVSAA - A18B4wz/A1UBsgNWAbYY/wNhAeY0AAMtAUYE/wNkAecDBgEICAADEgEYA1YBswNkAewDZAHsA1YBswMS - ARgIAAMHAQkDZAHnBP8DLQFFjAADXAHJGP8DWAHBJAADYQHuCP8DRgF/CAADSAGDFP8DYgHvNwABAQNc - Ac0E/wNTAaUoAANTAaUE/wNcAc0DAAEBjAADIQEwA38B/hD/A38B/gMdASokAANfAdsE/wNAAXAQAANT - AaUQ/wNcAd84AAMdASkDYgH2BP8DVAGvAw0BEhgAAw0BEgNUAa8E/wNdAe0DGwEmlAADUQGcEP8DTgGY - KAADTAGSAz0BaRQAA1QBphD/A04BmTwAAzQBVAMrAfwE/wNkAewDQwF4AywBRAMPARQDDwEUAywBRAND - AXgDZAHsBP8DZAHnAx4BK5gAAxABFQNnAfII/wNnAfIDDQERKAADBwEKFAADRwGAEP8DqAH9AyIBMkAA - AywBRANfAeMg/wNUAawDEwEaoAADQgFzCP8DQAFwQAADTAGPFP8DRAF5SAADBgEIAzwBZgNYAbsDZAHs - CP8DZAHsA1cBtwMmATioAAMEAQUDYAHUA10B0wMCAQM8AANOAZYQ/wNNAfoDQAFwXAAI//wAAw0BEgNE - AXkDVgG2A1oBwANXAbgDRgF+Ax0BKmAAA2AB1ANeAdX/AP8A/wD/AP8A/wBeAAMxAU0DMgFRmAADMQFP - A10B1zj/A10B1wMxAU+YAANZAfUE/wM/AWw8AANdAcoDOAFcAwQBBSAAAwQBBQM3AVsDXAHPIAADYQHi - QP8DYQHiFAADBQEHAz4BawNeAd08/wNYAbwDMgFRNAAM/wNCAXQ4AAj/A18B6ANHAYADEAEWEAADEQEX - A0YBfwNiAekI/yAASP8QAAMUARsDXgHVTP8DSAGEGAADFAEbAz4BagMLAQ8MAAj/A2oB+QT/A0IBdDQA - EP8DTQH6A1IBpAMjATQDJAE2A1IBowNNAfoQ/yAASP8MAAMBAQIDWQHHVP8DMAFLFAADQwF3BP8DXAHR - Aw4BEwgACP8DLwFKAysB/AT/A0UBfDAAOP8gABD/AyABLwMgAS8I/wMgAS8DIAEvCP8DIAEvAyABLxD/ - DAADOgFiJP8QACT/A1kBwhQAAwcBCgNbAcgE/wNhAdoDEAEWBAAI/wQAAz4Bawj/Ax8BLSwAOP8gABD/ - CAAI/wgACP8IABD/DAADWwHIJP8QACT/A2UB9BgAAwkBDANeAc4E/wNgAd4DEwEaCP8DEAEWA10B1wT/ - A1wB3wMKAQ0sADj/IAAQ/wgACP8IAAj/CAAQ/wwAA2UB9CT/EAAk/wNiAekcAAMLAQ8DXgHOBP8DXAHf - CP8DXgHdBP8DXgHdAxQBGzAAOP8gABD/CAAI/wgACP8DIAEvAyABLhD/DAADTQH6JP8QACT/A1QBryAA - AwsBDwNdAdIQ/wNeAdgDEQEXNAA4/yAAEP8IAAj/CAAg/wwAA1wBzxj/A0MBeCAAA0UBfRj/AyYBOCQA - Aw0BEgNdAdcI/wNgAdQDDwEUOAA4/yAAEP8IAAj/CAAg/wwAA0IBdhz/A0ABcBgAA0ABcBj/A0oBiSgA - Aw0BEgNdAdcI/wNeAdgDDwEUOAA4/yAAEP8DIAEvAyABLgj/CAAg/wwAAwgBCwNdAdcc/wM9AWkQAAM9 - AWkQ/wNkAfEDVAGvAy0BRigAAwsBDwNdAdIQ/wNeAdgDEQEXNAA4/yAAIP8IACD/EAADEAEWA14B0Bz/ - Az0BaQgAAz0BaRT/AyQBNiwAAwsBDwNeAc4E/wNcAd8I/wNfAeME/wNeAd0DFAEbMAA4/yAAIP8IACD/ - FAADAQECAzgBXgNdAcoDKwH8FP8DQQFyA0EBchT/A14B3SwAAwkBDANeAc4E/wNgAd4DEwEaCP8DEgEZ - A10B1wT/A1wB3wMKAQ0sADj/IAAg/wMgAS8DIAEuIP8gAAMsAUQDfwH+LP8DOwFkKAADBwEKA1sByAT/ - A14B1QMQARYEAAj/BAADPgFrCP8DHwEsLAA4/yAASP8kAANCAXUo/wNSAaEsAANEAXkE/wNcAdEDDAEQ - CAAI/wMwAUwDKwH8BP8DQgF0MAA4/yAASP8oAANAAXAc/wNNAfoDQgF0MAADEwEaAz4BagMLAQ8MAAj/ - A1wB+AT/A0IBdDQAOP8gAANhAeRA/wNfAeMsAAMdASoDTgGYA10B0gNlAfQE/wNgAesDSQGIAxUBHUwA - DP8DQgF0OAADYQHkMP8DXwHjIAADMQFPA2AB1jj/A2AB1gMxAU+YAANtAfcE/wM/AWw8AAMxAU8DYAHW - KP8DYAHWAzEBT/8AAQADMQFNAzMBUv8A/wD/AI8AAUIBTQE+BwABPgMAASgDAAFgAwABeAMAAQEBAAEB - BQABoAEFFgAD/wEABv8GAAb/BgAB/gEAAX8B4AEAAQcGAAH8AQABPwHgAQABBwYAAfABAAEPAeMB/wHH - BgAB8AEAAQ8B5wH/AecGAAHgAQABBwHnAfABZwYAAcABGAEDAecB8AFnBgABwAEYAQMB5wHwAWcGAAHA - AQABAwHnAfABZwYAAcABAAEDAecB8AFnBgABwAEAAQMB5wH/AecGAAHAARgBAwHnAf8B5wYAAcABGAED - AecB/wHnBgABwAEYAQMB5wH/AecGAAHAARgBAwHgAQABBwYAAcABAAEHAeABAAEHBgAB4AEAAQcB4AEA - AQcGAAHwAQABDwHgAQABBwYAAfABAAEfAeABAAEHBgAB/AEAAT8B/AH/AT8GAAH+AQAB/wH8Af8BPwYA - Bv8GAAb/BgAb/wHgAQABAQH/AQABfwH+AQABfwP/AeABAAEBAfwBAAF/AfwBAAE/AfABAAEPAeABAAEB - AfgBDwH/AfABAAEPAfABAAEPAeABAAEBAfABfwH/AfABAAEPAfABAAEPAeABPwEBAeEC/wHgAQABBwHw - AQABDwHgAUABgQHDAYEBBwHAAQABAwH4AQABHwHgAUABgQHDAQABAwHAAYEBAwH+AQABfwHgAUABgQHG - AQABAwHAAUIBAwP/AeABQAGBAcYBPAEjAcABJAEDA/8B4AFAAYEBxgE8AWMBwAEYAQMB/wGBAf8B4AFA - AYEBxgE8AWMBwAEYAQMB/wEAAf8B4AE/AQEBxgE8AWMBwAEkAQMB/wEAAf8B4AEAAQEBxgEAAWMBwAFC - AQMB/wEAAf8B4AEAAQEBwwEAAcMBwAGBAQMB/wEAAf8B5AEAAQEBwwGBAccBwAEAAQMB/wEAAf8B5gEA - AQEB4QH/AYcB4AEAAQcB/wEAAf8CAAE/AfABfgEPAfABAAEPAf8BgQH/AgABfwHwAQABHwHwAQABDwP/ - AecC/wH8AQABPwH8AQABPwP/AecC/wH+AQABfwH+AQABfwP/Aecz/wHnBf8B/AL/AfwBBwH/AccF/wH4 - AX8B/wHwAQcB/wHHAf8BwAEAAQMB/wHwAT8B/wHAAQcB/wHHAf8BwAEAAQMB/wHgAR8B/wGAAQcB/wHH - Af8BxwH/AeMB/wH8Av8BAAEHAf8BxwH/Ac8B/wHzAf8B/AH/Af4BHAEHAf8BxwH/Ac8B/wHzAf8B/AH/ - AfwBPwL/AccB/wHPAf8B8wH/ATwB/wH4AX8B/wH4AQABHwHPAf8B8wH/ATwB/wH4Av8B+AEAAR8BzwHD - AfMB/wE8Af8B8AL/AfgBAAEfAc8BAAHzAf8BPAH/AfAC/wH+AQABfwHOAQABcwH/AT8B/wHgAX8B/wH+ - AQABfwHIARgBEwH/AT8B/wHgAX8C/wEAAf8BwAF+AQMB/wE/Af8B4AE/Av8BAAH/AcAB/wEDAfgBBwH/ - AeABfwL/AQAB/wHDAf8BwwH8AQ8B/wHgAX8C/wEAAf8BwAEAAQMB/gEfAf8B4AF/Av8BAAH/AcABAAED - Af8BPwH/AeABfwH/AfwBAAE/Cf8B/AEAAT8p/wHHAf8B5wn/AYMB/wHnCf8BAQH/AQABfwP/AYABAAEB - Af8B/gEBAfwBAAE/A/8BgAEAAQEB/wH8AQEB+AEAAR8D/wHAAQABAwH/AfgBAwHwAX4BDwP/AcABGAED - Af8B8AEHAfEB/wGPA/8B4AEYAQcB/wHgAQ8B4QGBAYcD/wHgAQABBwH/AcABHwHjAQABxwGTATwBzwHw - AQABDwHwAQABPwHjAQABxwGTATwBzwH4AQABHwHAAQABfwGDAQABwQGDATwBwQH4ARgBHwHAAQAB/wGD - AQABwQGDATwBwQH8ARgBPwGAAQEB/wHjAQABxwGSAQABQQH8AQABPwGAAQMB/wHjAQABxwGSAQABQQH+ - AQABfwGAAQMB/wHhAYEBhwT/AQAB/wGGAQMB/wHhAf8BhwT/AQAB/wGPAQMB/wHwAX4BDwT/AYEB/wGf - AQMB/wH4AQABHwT/AYEB/wG+AQMB/wH8AQABPwT/AcMB/wH8AQcB/wH+AQAF/wHDAf8B+AEPAv8B5wf/ - AfABHwL/Aecy/wHnBP8B4AEAAQcE/wHjAf8B+AH/AR8B4AEAAQcBwAEAAQMB/wHhAf8B+AE8AR8B4AEA - AQcBgAEAAQEB+AHgAf8B+AEAAR8B4AEAAQcDAAH4AWABfwH4AQABHwHgAQABBwEAATwBAAH4ASQBPwH4 - AQABHwHhAZkBhwEAATwBAAH8AQABPwH4AQABHwHhAZkBhwEAATwBAAH+AQABfwH4AQABHwHhAZgBBwEA - ATwBAAH/AQAB/wH4AQABHwHhAZgBBwEAAf8BAAH/AYEB/wH4AQABHwHhAZgBBwEAAX4BAQH/AYEB/wH4 - AQABHwHgARgBBwEAATwBAwH/AQAB/wH4AQABHwHgARgBBwGAARgBDwH+AQABfwH4AQABHwHgARgBBwHA - AQABHwH8AQABPwH4AQABHwHgAQABBwH4AQABHwH4ASQBPwH4AQABHwHgAQABBwH8AQABPwH4AWABfwH4 - AQABHwHgAQABBwH+AQABfwH4AeAB/wH4AQABHwHgAQABBwH/AQAC/wHhAf8B+AEAAR8B4AEAAQcE/wHj - Af8B+AEAAR8H/wHnHP8L + A10B4wMuAUgoAANKAYoDSgGKRAADLAFDA1sB3gMAAf8DAAH/A1wByQMZASNUAANLAY8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0sBj/8AUQADQAFvAwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wNAAW//AP8A/wD/AP8ARQADAwEEAyEBMAMHAQo4AANdAdIDXQHS + /wAxAAMtAUUDYQHmBP8DWQH1AzoBYTQACP//AC0AAysBQgNqAfkM/wOoAf0DEAEVJAADJQE3A1YBtgNd + Ae0I/wNdAe0DWAG7AzsBZAMGAQiAAAMUARwDXAHfSP8DXgHdAxMBGkAAAysBQgNcAfgU/wMfASwcAAMU + ARsDVAGsIP8DXwHjAy0BRXwAAxYBHgMrAfxI/wNNAfoDFAEcPAADKwFCA1wB+BT/A2EB4gMDAQQYAAMf + ASwDZAHnBP8DZAHsA0QBeQMsAUQDEQEXAxABFgMtAUUDRAF5A10B7QT/AysB/AM1AVV8AANMAZJI/wNK + AYs8AAMrAUIDXAH4FP8DXwHzAyYBORgAAxsBJgNdAe0E/wNUAa8DDgETGAADDgETA1UBsgT/A1wB+AMd + ASl4AAMNAREDYQHuHP8IABz/A1wB6gMKAQ04AAMrAUIDXAH4FP8DXwHzAyQBNRwAA1wBzAT/A1MBpSgA + A1MBpQT/A1wBzXwAAz0BaRz/CAAc/wM7AWM4AAMrAUIDXAH4FP8DZAHxAyQBNRwAAy4BSAT/A2QB5wMG + AQgIAAMSARkDVQG1A10B7QNdAe0DVQGyAxIBGQgAAwYBCANfAegE/wMuAUd7AAEBA14B1Tj/A1wBzwMA + AQE0AAMoATwDXAH4FP8DYQHuAyEBMCAAA1ABngT/A0QBewgAAxABFgNhAeYQ/wNhAeYDEAEVCAADRAF6 + BP8DUAGeEAADXgHQAzUBVQQAAzUBVQNeAdAIAAM1AVUDXgHQEAADXgHQAzUBVQgAA14B0AM1AVUgAAMp + AT44/wMlATcgAAMmATkDSgGNA1wByQNdAfADYQHhA04BmANZAfUU/wNhAe4DHgErJAADXQHXBP8DIAEu + CAADUQGgGP8DUgGhCAADHwEtBP8DYAHWEAAE/wNHAYAEAANHAYAE/wgAA0cBgAT/EAAE/wNHAYAIAAT/ + A0cBgCQAA1QBrBT/AyABLwMgAS8U/wNUAaYfAAEBA0YBfiz/A2AB6wMeASsgAANdAdIM/wMKAQ0IAANl + AeUY/wNlAeUIAAMKAQ0M/wNdAdIIAAT/A1oBwANHAYADWgHABP8IAANHAYAE/xAABP8DRwGACAAQ/wNJ + AYcYAAMWAR4DXAH4EP8IABD/A1wB+AMSARkcAANHAYIs/wNfAegDHAEnJAADYAHUDP8DCQEMCAADYAHr + GP8DYAHrCAADCQEMDP8DXgHVCAAU/wgAA0cBgAT/EAAE/wNHAYAIAAT/A1oBwANHAYADWgHAA2oB+RwA + A0gBgxD/CAAQ/wNGAX4cAAMpAT4s/wNfAegDGAEiMAADXgHYBP8DHwEsCAADUQGgGP8DUgGhCAADHgEr + BP8DXQHXEAAE/wNHAYAEAANHAYAE/wQAAzUBVgNaAcAE/wNFAX0DEgEZAxIBGQNFAX0E/wNaAcADNQFW + BAAE/wNaAcADRwGAA1oBwANfAfscAAMHAQoDYQHmDP8DIAEvAyABLgz/A2EB4QMFAQccAANQAZ0s/wNS + Aak0AANQAZ4E/wNEAXoIAAMQARUDYQHmEP8DZAHnAw0BEQgAA0QBeQT/A1ABnhAAA14B0AM1AVcEAAM1 + AVcDXgHQBAADXgHQCP8DKwH8AzMBUwMzAVMDKwH8CP8DXgHQBAADYAHUDP8DSQGHIAADNwFaIP8DNQFV + IAADXwHjDP8DVQGyA1YBthj/A2EB5jQAAy0BRgT/A2QB5wMGAQgIAAMSARgDVgGzA2QB7ANkAewDVgGz + AxIBGAgAAwcBCQNkAecE/wMtAUWMAANcAckY/wNYAcEkAANhAe4I/wNGAX8IAANIAYMU/wNiAe83AAEB + A1wBzQT/A1MBpSgAA1MBpQT/A1wBzQMAAQGMAAMhATADfwH+EP8DfwH+Ax0BKiQAA18B2wT/A0ABcBAA + A1MBpRD/A1wB3zgAAx0BKQNiAfYE/wNUAa8DDQESGAADDQESA1QBrwT/A10B7QMbASaUAANRAZwQ/wNO + AZgoAANMAZIDPQFpFAADVAGmEP8DTgGZPAADNAFUAysB/AT/A2QB7ANDAXgDLAFEAw8BFAMPARQDLAFE + A0MBeANkAewE/wNkAecDHgErmAADEAEVA2cB8gj/A2cB8gMNAREoAAMHAQoUAANHAYAQ/wOoAf0DIgEy + QAADLAFEA18B4yD/A1QBrAMTARqgAANCAXMI/wNAAXBAAANMAY8U/wNEAXlIAAMGAQgDPAFmA1gBuwNk + AewI/wNkAewDVwG3AyYBOKgAAwQBBQNgAdQDXQHTAwIBAzwAA04BlhD/A00B+gNAAXBcAAj//AADDQES + A0QBeQNWAbYDWgHAA1cBuANGAX4DHQEqYAADYAHUA14B1f8A/wD/AP8A/wD/AF4AAzEBTQMyAVGYAAMx + AU8DXQHXOP8DXQHXAzEBT5gAA1kB9QT/Az8BbDwAA10BygM4AVwDBAEFIAADBAEFAzcBWwNcAc8gAANh + AeJA/wNhAeIUAAMFAQcDPgFrA14B3Tz/A1gBvAMyAVE0AAz/A0IBdDgACP8DXwHoA0cBgAMQARYQAAMR + ARcDRgF/A2IB6Qj/IABI/xAAAxQBGwNeAdVM/wNIAYQYAAMUARsDPgFqAwsBDwwACP8DagH5BP8DQgF0 + NAAQ/wNNAfoDUgGkAyMBNAMkATYDUgGjA00B+hD/IABI/wwAAwEBAgNZAcdU/wMwAUsUAANDAXcE/wNc + AdEDDgETCAAI/wMvAUoDKwH8BP8DRQF8MAA4/yAAEP8DIAEvAyABLwj/AyABLwMgAS8I/wMgAS8DIAEv + EP8MAAM6AWIk/xAAJP8DWQHCFAADBwEKA1sByAT/A2EB2gMQARYEAAj/BAADPgFrCP8DHwEtLAA4/yAA + EP8IAAj/CAAI/wgAEP8MAANbAcgk/xAAJP8DZQH0GAADCQEMA14BzgT/A2AB3gMTARoI/wMQARYDXQHX + BP8DXAHfAwoBDSwAOP8gABD/CAAI/wgACP8IABD/DAADZQH0JP8QACT/A2IB6RwAAwsBDwNeAc4E/wNc + Ad8I/wNeAd0E/wNeAd0DFAEbMAA4/yAAEP8IAAj/CAAI/wMgAS8DIAEuEP8MAANNAfok/xAAJP8DVAGv + IAADCwEPA10B0hD/A14B2AMRARc0ADj/IAAQ/wgACP8IACD/DAADXAHPGP8DQwF4IAADRQF9GP8DJgE4 + JAADDQESA10B1wj/A2AB1AMPARQ4ADj/IAAQ/wgACP8IACD/DAADQgF2HP8DQAFwGAADQAFwGP8DSgGJ + KAADDQESA10B1wj/A14B2AMPARQ4ADj/IAAQ/wMgAS8DIAEuCP8IACD/DAADCAELA10B1xz/Az0BaRAA + Az0BaRD/A2QB8QNUAa8DLQFGKAADCwEPA10B0hD/A14B2AMRARc0ADj/IAAg/wgAIP8QAAMQARYDXgHQ + HP8DPQFpCAADPQFpFP8DJAE2LAADCwEPA14BzgT/A1wB3wj/A18B4wT/A14B3QMUARswADj/IAAg/wgA + IP8UAAMBAQIDOAFeA10BygMrAfwU/wNBAXIDQQFyFP8DXgHdLAADCQEMA14BzgT/A2AB3gMTARoI/wMS + ARkDXQHXBP8DXAHfAwoBDSwAOP8gACD/AyABLwMgAS4g/yAAAywBRAN/Af4s/wM7AWQoAAMHAQoDWwHI + BP8DXgHVAxABFgQACP8EAAM+AWsI/wMfASwsADj/IABI/yQAA0IBdSj/A1IBoSwAA0QBeQT/A1wB0QMM + ARAIAAj/AzABTAMrAfwE/wNCAXQwADj/IABI/ygAA0ABcBz/A00B+gNCAXQwAAMTARoDPgFqAwsBDwwA + CP8DXAH4BP8DQgF0NAA4/yAAA2EB5ED/A18B4ywAAx0BKgNOAZgDXQHSA2UB9AT/A2AB6wNJAYgDFQEd + TAAM/wNCAXQ4AANhAeQw/wNfAeMgAAMxAU8DYAHWOP8DYAHWAzEBT5gAA20B9wT/Az8BbDwAAzEBTwNg + AdYo/wNgAdYDMQFP/wABAAMxAU0DMwFS/wD/AP8AjwABQgFNAT4HAAE+AwABKAMAAWADAAF4AwABAQEA + AQEFAAGgAQUWAAP/AQAG/wYABv8GAAH+AQABfwHgAQABBwYAAfwBAAE/AeABAAEHBgAB8AEAAQ8B4wH/ + AccGAAHwAQABDwHnAf8B5wYAAeABAAEHAecB8AFnBgABwAEYAQMB5wHwAWcGAAHAARgBAwHnAfABZwYA + AcABAAEDAecB8AFnBgABwAEAAQMB5wHwAWcGAAHAAQABAwHnAf8B5wYAAcABGAEDAecB/wHnBgABwAEY + AQMB5wH/AecGAAHAARgBAwHnAf8B5wYAAcABGAEDAeABAAEHBgABwAEAAQcB4AEAAQcGAAHgAQABBwHg + AQABBwYAAfABAAEPAeABAAEHBgAB8AEAAR8B4AEAAQcGAAH8AQABPwH8Af8BPwYAAf4BAAH/AfwB/wE/ + BgAG/wYABv8GABv/AeABAAEBAf8BAAF/Af4BAAF/A/8B4AEAAQEB/AEAAX8B/AEAAT8B8AEAAQ8B4AEA + AQEB+AEPAf8B8AEAAQ8B8AEAAQ8B4AEAAQEB8AF/Af8B8AEAAQ8B8AEAAQ8B4AE/AQEB4QL/AeABAAEH + AfABAAEPAeABQAGBAcMBgQEHAcABAAEDAfgBAAEfAeABQAGBAcMBAAEDAcABgQEDAf4BAAF/AeABQAGB + AcYBAAEDAcABQgEDA/8B4AFAAYEBxgE8ASMBwAEkAQMD/wHgAUABgQHGATwBYwHAARgBAwH/AYEB/wHg + AUABgQHGATwBYwHAARgBAwH/AQAB/wHgAT8BAQHGATwBYwHAASQBAwH/AQAB/wHgAQABAQHGAQABYwHA + AUIBAwH/AQAB/wHgAQABAQHDAQABwwHAAYEBAwH/AQAB/wHkAQABAQHDAYEBxwHAAQABAwH/AQAB/wHm + AQABAQHhAf8BhwHgAQABBwH/AQAB/wIAAT8B8AF+AQ8B8AEAAQ8B/wGBAf8CAAF/AfABAAEfAfABAAEP + A/8B5wL/AfwBAAE/AfwBAAE/A/8B5wL/Af4BAAF/Af4BAAF/A/8B5zP/AecF/wH8Av8B/AEHAf8BxwX/ + AfgBfwH/AfABBwH/AccB/wHAAQABAwH/AfABPwH/AcABBwH/AccB/wHAAQABAwH/AeABHwH/AYABBwH/ + AccB/wHHAf8B4wH/AfwC/wEAAQcB/wHHAf8BzwH/AfMB/wH8Af8B/gEcAQcB/wHHAf8BzwH/AfMB/wH8 + Af8B/AE/Av8BxwH/Ac8B/wHzAf8BPAH/AfgBfwH/AfgBAAEfAc8B/wHzAf8BPAH/AfgC/wH4AQABHwHP + AcMB8wH/ATwB/wHwAv8B+AEAAR8BzwEAAfMB/wE8Af8B8AL/Af4BAAF/Ac4BAAFzAf8BPwH/AeABfwH/ + Af4BAAF/AcgBGAETAf8BPwH/AeABfwL/AQAB/wHAAX4BAwH/AT8B/wHgAT8C/wEAAf8BwAH/AQMB+AEH + Af8B4AF/Av8BAAH/AcMB/wHDAfwBDwH/AeABfwL/AQAB/wHAAQABAwH+AR8B/wHgAX8C/wEAAf8BwAEA + AQMB/wE/Af8B4AF/Af8B/AEAAT8J/wH8AQABPyn/AccB/wHnCf8BgwH/AecJ/wEBAf8BAAF/A/8BgAEA + AQEB/wH+AQEB/AEAAT8D/wGAAQABAQH/AfwBAQH4AQABHwP/AcABAAEDAf8B+AEDAfABfgEPA/8BwAEY + AQMB/wHwAQcB8QH/AY8D/wHgARgBBwH/AeABDwHhAYEBhwP/AeABAAEHAf8BwAEfAeMBAAHHAZMBPAHP + AfABAAEPAfABAAE/AeMBAAHHAZMBPAHPAfgBAAEfAcABAAF/AYMBAAHBAYMBPAHBAfgBGAEfAcABAAH/ + AYMBAAHBAYMBPAHBAfwBGAE/AYABAQH/AeMBAAHHAZIBAAFBAfwBAAE/AYABAwH/AeMBAAHHAZIBAAFB + Af4BAAF/AYABAwH/AeEBgQGHBP8BAAH/AYYBAwH/AeEB/wGHBP8BAAH/AY8BAwH/AfABfgEPBP8BgQH/ + AZ8BAwH/AfgBAAEfBP8BgQH/Ab4BAwH/AfwBAAE/BP8BwwH/AfwBBwH/Af4BAAX/AcMB/wH4AQ8C/wHn + B/8B8AEfAv8B5zL/AecE/wHgAQABBwT/AeMB/wH4Af8BHwHgAQABBwHAAQABAwH/AeEB/wH4ATwBHwHg + AQABBwGAAQABAQH4AeAB/wH4AQABHwHgAQABBwMAAfgBYAF/AfgBAAEfAeABAAEHAQABPAEAAfgBJAE/ + AfgBAAEfAeEBmQGHAQABPAEAAfwBAAE/AfgBAAEfAeEBmQGHAQABPAEAAf4BAAF/AfgBAAEfAeEBmAEH + AQABPAEAAf8BAAH/AfgBAAEfAeEBmAEHAQAB/wEAAf8BgQH/AfgBAAEfAeEBmAEHAQABfgEBAf8BgQH/ + AfgBAAEfAeABGAEHAQABPAEDAf8BAAH/AfgBAAEfAeABGAEHAYABGAEPAf4BAAF/AfgBAAEfAeABGAEH + AcABAAEfAfwBAAE/AfgBAAEfAeABAAEHAfgBAAEfAfgBJAE/AfgBAAEfAeABAAEHAfwBAAE/AfgBYAF/ + AfgBAAEfAeABAAEHAf4BAAF/AfgB4AH/AfgBAAEfAeABAAEHAf8BAAL/AeEB/wH4AQABHwHgAQABBwT/ + AeMB/wH4AQABHwf/Aecc/ws= diff --git a/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache b/MaterialSkinExample/obj/Debug/MaterialSkinExample.csprojAssemblyReference.cache deleted file mode 100644 index 6c4357b43d2297df5f8b0cd4250d4190a6a4eef6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12745 zcmeHN&y(9$9k*=D_VXs$1WKX6z^0T!>DJ!OX1htIA#A+aY-qDhA0rdKRr8NnXSxJW~QfVL(3aF@^oJgJ;$)7r!Ebfmf3nz?ylL}vVXccGuN5#EOcgP z+w(KVoT2k#N0YBn-*r9Nt9yngSxahbFj{6~o=~jHV^oYLNrv z2_IRtfC}ZOY@@wwv^?7>j_zjy&8^wJf#FD}MBci2L*`NF7Ooi9P`a5+E~D!crTa(i zc-m>3eZv}`^S@_KoOyuF$ODSp&P4B&2eG5a|t}ME)>@}_3Rih`* z{m7GjikZ!=?B|558$3ljG}6LILoC~U<1m4B6d^-iEb93UJ76b=E(JICQQb2D?Z zCp9t2(!+p*mDO`=%MRLf-FCJMM^Kc}*bD5r_ul;8rT?EFQGSkvpC{Z0D0~4Bp}e1^ zUj#%c1u1p5XI~w|tLa;YySSR~qjA~6c5blkMg4I>(^QGY7*(kO;Ha8~W~Ca%9gK3}ic_ zWsCIaOfIKo*`--6yQkAjC9O0+jt%{e*&R9t!$UCCrgVeN-4)e3+cCYZ-V>kntkLkQ z`!SoQWqP}sruh;m(B}_?eXuOPj3V(B0FABIUI66(i#Yq~T1t-M4#UvqW~P+C39|oy z?9Of=!pSQXz6NN}$xcxD?gw3%NQ-q_02MOOGJVf{=;bFiL`YkO_ zSKXsLM)ktxMdLZ!!Jml;UfA^KOR;%b?wAZLJhcS#t74no%<1;Px3IA~)?avDWq9~x z)9S*4G2fbheD>traXEA1q)unuS0{YtygUCH^6uBQ@$h{3z;RyoG1s>I2ame+uFYP( zx}RxddTMX&yZdCdu|Zv_xb$so?TJf|ph$cNK%*4>xTL)cK{7VwZ=&R%*kEk&1Hxmd zv+-#H!m)_!S3fEuRB(;E6cI!fTt!ZfcM=t5aJrZ!93#vTjuYkyj{}Zy>ZNI%Z5bK% z`u8NK09sb#Jisa(6;5UBSeiZsxL4gZo8|4K?urn92QNZlcU?e#mU?c>b}X}57ALSP zP67f`uKLc%RavUN9dgxj*?(Gm0_FNqKq@S&dv~7l?)7=#G}Lh4XexWw?6>XfZe`ha zdTv>K7l*_dKwwH_Z-qtnW?W=vQC)u!kcuo78Rr45Py+@}$4icJ-RyVEVhM%f93U_y zuYZK)^+sG?E2ysXSv-|jDla9k3sA$sQ4Cv>F0y51@qLtuCjo&eb-f-|*WcpmT19pJ zAwa6GR9#A4PeTm_rLMBLgdOn=ATTAX*TS-TH7=_)RM(j{NM)7EO37*+YM2Oumf;y? zaRnvfSwLV)TYm{_>y@~+et_yavr(zGQf(=1U4s*>k)s?DCsp|&RFwW)t7(3#5 zKwwH%KMTw1#kj2av5wBg-c(kptdy*7LJh(D_L85=`6)`oi-5qCwtf=U*7I>~{T$VG zenXIIE7g|L)=N-Bpe>cl`2|YEEkIyOTi3(d+KFrHm#99;4+l#4W&eJoapi&I|9)BH zR|L%I;*IEw>u0xtXc1b;oV`NENR%cnH10VWcx zBoc6CCrZF&oJTU3lcL{(F##VN6AAcq7$@K}LG%{*fRISQ q=YTi?1Aml&vp^yNgMFNU-W?^lbvpujbc{fwt5P4D#)0v-CO!a)4EqBB From 2f8012b152e1d8b2aa1562f8b9df19b06a5797a1 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Tue, 7 Jun 2022 16:26:08 +0430 Subject: [PATCH 18/30] translate MainForm --- MaterialSkinExample.RTL/MainForm.Designer.cs | 310 ++++++++++--------- MaterialSkinExample.RTL/MainForm.cs | 5 + MaterialSkinExample.RTL/MainForm.resx | 48 +-- 3 files changed, 185 insertions(+), 178 deletions(-) diff --git a/MaterialSkinExample.RTL/MainForm.Designer.cs b/MaterialSkinExample.RTL/MainForm.Designer.cs index 05d7f955..aa56d376 100644 --- a/MaterialSkinExample.RTL/MainForm.Designer.cs +++ b/MaterialSkinExample.RTL/MainForm.Designer.cs @@ -35,24 +35,24 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - MaterialSkin.MaterialListBoxItem materialListBoxItem1 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem2 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem3 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem4 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem5 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem6 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem7 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem8 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem9 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem10 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem11 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem12 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem13 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem14 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem15 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem16 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem17 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem18 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem19 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem20 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem21 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem22 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem23 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem24 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem25 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem26 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem27 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem28 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem29 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem30 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem31 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem32 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem33 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem34 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem35 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem36 = new MaterialSkin.MaterialListBoxItem(); this.materialCheckbox3 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialCheckbox1 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialTabControl1 = new MaterialSkin.Controls.MaterialTabControl(); @@ -2852,7 +2852,7 @@ private void InitializeComponent() this.materialTabSelector1.BaseTabControl = this.materialTabControl2; this.materialTabSelector1.CharacterCasing = MaterialSkin.Controls.MaterialTabSelector.CustomCharacterCasing.Proper; this.materialTabSelector1.Depth = 0; - this.materialTabSelector1.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialTabSelector1.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialTabSelector1.Location = new System.Drawing.Point(40, 90); this.materialTabSelector1.Margin = new System.Windows.Forms.Padding(0); this.materialTabSelector1.MouseState = MaterialSkin.MouseState.HOVER; @@ -2946,30 +2946,30 @@ private void InitializeComponent() this.materialListBox3.BorderColor = System.Drawing.Color.LightGray; this.materialListBox3.Depth = 0; this.materialListBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem1.SecondaryText = "A very very long secondary text to display 1 "; - materialListBoxItem1.Tag = null; - materialListBoxItem1.Text = "ListBoxItem1"; - materialListBoxItem2.SecondaryText = "A very very long secondary text to display 2"; - materialListBoxItem2.Tag = null; - materialListBoxItem2.Text = "ListBoxItem2"; - materialListBoxItem3.SecondaryText = "A very very long secondary text to display 3"; - materialListBoxItem3.Tag = null; - materialListBoxItem3.Text = "ListBoxItem3"; - materialListBoxItem4.SecondaryText = "A very very long secondary text to display 4"; - materialListBoxItem4.Tag = null; - materialListBoxItem4.Text = "ListBoxItem4"; - materialListBoxItem5.SecondaryText = "A very very long secondary text to display 5"; - materialListBoxItem5.Tag = null; - materialListBoxItem5.Text = "ListBoxItem5"; - materialListBoxItem6.SecondaryText = "A very very long secondary text to display 6"; - materialListBoxItem6.Tag = null; - materialListBoxItem6.Text = "ListBoxItem6"; - this.materialListBox3.Items.Add(materialListBoxItem1); - this.materialListBox3.Items.Add(materialListBoxItem2); - this.materialListBox3.Items.Add(materialListBoxItem3); - this.materialListBox3.Items.Add(materialListBoxItem4); - this.materialListBox3.Items.Add(materialListBoxItem5); - this.materialListBox3.Items.Add(materialListBoxItem6); + materialListBoxItem19.SecondaryText = "A very very long secondary text to display 1 "; + materialListBoxItem19.Tag = null; + materialListBoxItem19.Text = "ListBoxItem1"; + materialListBoxItem20.SecondaryText = "A very very long secondary text to display 2"; + materialListBoxItem20.Tag = null; + materialListBoxItem20.Text = "ListBoxItem2"; + materialListBoxItem21.SecondaryText = "A very very long secondary text to display 3"; + materialListBoxItem21.Tag = null; + materialListBoxItem21.Text = "ListBoxItem3"; + materialListBoxItem22.SecondaryText = "A very very long secondary text to display 4"; + materialListBoxItem22.Tag = null; + materialListBoxItem22.Text = "ListBoxItem4"; + materialListBoxItem23.SecondaryText = "A very very long secondary text to display 5"; + materialListBoxItem23.Tag = null; + materialListBoxItem23.Text = "ListBoxItem5"; + materialListBoxItem24.SecondaryText = "A very very long secondary text to display 6"; + materialListBoxItem24.Tag = null; + materialListBoxItem24.Text = "ListBoxItem6"; + this.materialListBox3.Items.Add(materialListBoxItem19); + this.materialListBox3.Items.Add(materialListBoxItem20); + this.materialListBox3.Items.Add(materialListBoxItem21); + this.materialListBox3.Items.Add(materialListBoxItem22); + this.materialListBox3.Items.Add(materialListBoxItem23); + this.materialListBox3.Items.Add(materialListBoxItem24); this.materialListBox3.Location = new System.Drawing.Point(579, 132); this.materialListBox3.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox3.Name = "materialListBox3"; @@ -2985,30 +2985,30 @@ private void InitializeComponent() this.materialListBox2.BorderColor = System.Drawing.Color.LightGray; this.materialListBox2.Depth = 0; this.materialListBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem7.SecondaryText = "Secondary text1"; - materialListBoxItem7.Tag = null; - materialListBoxItem7.Text = "ListBoxItem1"; - materialListBoxItem8.SecondaryText = "Secondary text2"; - materialListBoxItem8.Tag = null; - materialListBoxItem8.Text = "ListBoxItem2"; - materialListBoxItem9.SecondaryText = "Secondary text3"; - materialListBoxItem9.Tag = null; - materialListBoxItem9.Text = "ListBoxItem3"; - materialListBoxItem10.SecondaryText = "Secondary text4"; - materialListBoxItem10.Tag = null; - materialListBoxItem10.Text = "ListBoxItem4"; - materialListBoxItem11.SecondaryText = "Secondary text5"; - materialListBoxItem11.Tag = null; - materialListBoxItem11.Text = "ListBoxItem5"; - materialListBoxItem12.SecondaryText = "Secondary text6"; - materialListBoxItem12.Tag = null; - materialListBoxItem12.Text = "ListBoxItem6"; - this.materialListBox2.Items.Add(materialListBoxItem7); - this.materialListBox2.Items.Add(materialListBoxItem8); - this.materialListBox2.Items.Add(materialListBoxItem9); - this.materialListBox2.Items.Add(materialListBoxItem10); - this.materialListBox2.Items.Add(materialListBoxItem11); - this.materialListBox2.Items.Add(materialListBoxItem12); + materialListBoxItem25.SecondaryText = "Secondary text1"; + materialListBoxItem25.Tag = null; + materialListBoxItem25.Text = "ListBoxItem1"; + materialListBoxItem26.SecondaryText = "Secondary text2"; + materialListBoxItem26.Tag = null; + materialListBoxItem26.Text = "ListBoxItem2"; + materialListBoxItem27.SecondaryText = "Secondary text3"; + materialListBoxItem27.Tag = null; + materialListBoxItem27.Text = "ListBoxItem3"; + materialListBoxItem28.SecondaryText = "Secondary text4"; + materialListBoxItem28.Tag = null; + materialListBoxItem28.Text = "ListBoxItem4"; + materialListBoxItem29.SecondaryText = "Secondary text5"; + materialListBoxItem29.Tag = null; + materialListBoxItem29.Text = "ListBoxItem5"; + materialListBoxItem30.SecondaryText = "Secondary text6"; + materialListBoxItem30.Tag = null; + materialListBoxItem30.Text = "ListBoxItem6"; + this.materialListBox2.Items.Add(materialListBoxItem25); + this.materialListBox2.Items.Add(materialListBoxItem26); + this.materialListBox2.Items.Add(materialListBoxItem27); + this.materialListBox2.Items.Add(materialListBoxItem28); + this.materialListBox2.Items.Add(materialListBoxItem29); + this.materialListBox2.Items.Add(materialListBoxItem30); this.materialListBox2.Location = new System.Drawing.Point(306, 132); this.materialListBox2.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox2.Name = "materialListBox2"; @@ -3025,30 +3025,30 @@ private void InitializeComponent() this.materialListBox1.BorderColor = System.Drawing.Color.LightGray; this.materialListBox1.Depth = 0; this.materialListBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem13.SecondaryText = ""; - materialListBoxItem13.Tag = null; - materialListBoxItem13.Text = "ListBoxItem1"; - materialListBoxItem14.SecondaryText = ""; - materialListBoxItem14.Tag = null; - materialListBoxItem14.Text = "ListBoxItem2"; - materialListBoxItem15.SecondaryText = ""; - materialListBoxItem15.Tag = null; - materialListBoxItem15.Text = "ListBoxItem3"; - materialListBoxItem16.SecondaryText = ""; - materialListBoxItem16.Tag = null; - materialListBoxItem16.Text = "ListBoxItem4"; - materialListBoxItem17.SecondaryText = ""; - materialListBoxItem17.Tag = null; - materialListBoxItem17.Text = "ListBoxItem5"; - materialListBoxItem18.SecondaryText = ""; - materialListBoxItem18.Tag = null; - materialListBoxItem18.Text = "ListBoxItem6"; - this.materialListBox1.Items.Add(materialListBoxItem13); - this.materialListBox1.Items.Add(materialListBoxItem14); - this.materialListBox1.Items.Add(materialListBoxItem15); - this.materialListBox1.Items.Add(materialListBoxItem16); - this.materialListBox1.Items.Add(materialListBoxItem17); - this.materialListBox1.Items.Add(materialListBoxItem18); + materialListBoxItem31.SecondaryText = ""; + materialListBoxItem31.Tag = null; + materialListBoxItem31.Text = "ListBoxItem1"; + materialListBoxItem32.SecondaryText = ""; + materialListBoxItem32.Tag = null; + materialListBoxItem32.Text = "ListBoxItem2"; + materialListBoxItem33.SecondaryText = ""; + materialListBoxItem33.Tag = null; + materialListBoxItem33.Text = "ListBoxItem3"; + materialListBoxItem34.SecondaryText = ""; + materialListBoxItem34.Tag = null; + materialListBoxItem34.Text = "ListBoxItem4"; + materialListBoxItem35.SecondaryText = ""; + materialListBoxItem35.Tag = null; + materialListBoxItem35.Text = "ListBoxItem5"; + materialListBoxItem36.SecondaryText = ""; + materialListBoxItem36.Tag = null; + materialListBoxItem36.Text = "ListBoxItem6"; + this.materialListBox1.Items.Add(materialListBoxItem31); + this.materialListBox1.Items.Add(materialListBoxItem32); + this.materialListBox1.Items.Add(materialListBoxItem33); + this.materialListBox1.Items.Add(materialListBoxItem34); + this.materialListBox1.Items.Add(materialListBoxItem35); + this.materialListBox1.Items.Add(materialListBoxItem36); this.materialListBox1.Location = new System.Drawing.Point(38, 132); this.materialListBox1.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox1.Name = "materialListBox1"; @@ -3078,7 +3078,7 @@ private void InitializeComponent() this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; this.flowLayoutPanel1.Location = new System.Drawing.Point(3, 3); this.flowLayoutPanel1.Name = "flowLayoutPanel1"; - this.flowLayoutPanel1.Size = new System.Drawing.Size(561, 541); + this.flowLayoutPanel1.Size = new System.Drawing.Size(561, 517); this.flowLayoutPanel1.TabIndex = 0; this.flowLayoutPanel1.WrapContents = false; // @@ -3087,7 +3087,7 @@ private void InitializeComponent() this.materialExpansionPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); this.materialExpansionPanel1.Controls.Add(this.materialLabel51); this.materialExpansionPanel1.Depth = 0; - this.materialExpansionPanel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialExpansionPanel1.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialExpansionPanel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialExpansionPanel1.Location = new System.Drawing.Point(22, 16); this.materialExpansionPanel1.Margin = new System.Windows.Forms.Padding(16); @@ -3107,8 +3107,9 @@ private void InitializeComponent() this.materialLabel51.Name = "materialLabel51"; this.materialLabel51.Size = new System.Drawing.Size(468, 64); this.materialLabel51.TabIndex = 2; - this.materialLabel51.Text = "An expansion panel is a lightweight container that may either stand alone or be c" + - "onnected to a larger surface, such as a card."; + this.materialLabel51.Text = "پانل گسترش یک ظرف سبک وزن است که ممکن است به تنهایی یا به یک سطح بزرگتر مانند کار" + + "ت متصل شود."; + this.materialLabel51.TextAlign = System.Drawing.ContentAlignment.TopRight; // // materialExpansionPanel2 // @@ -3116,7 +3117,7 @@ private void InitializeComponent() this.materialExpansionPanel2.Collapse = true; this.materialExpansionPanel2.Depth = 0; this.materialExpansionPanel2.Description = "With accent color"; - this.materialExpansionPanel2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialExpansionPanel2.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialExpansionPanel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialExpansionPanel2.Location = new System.Drawing.Point(22, 273); this.materialExpansionPanel2.Margin = new System.Windows.Forms.Padding(16, 1, 16, 0); @@ -3127,6 +3128,7 @@ private void InitializeComponent() this.materialExpansionPanel2.TabIndex = 2; this.materialExpansionPanel2.Title = "Expansion panel"; this.materialExpansionPanel2.UseAccentColor = true; + this.materialExpansionPanel2.Paint += new System.Windows.Forms.PaintEventHandler(this.materialExpansionPanel2_Paint); // // tabPage12 // @@ -3164,25 +3166,25 @@ private void InitializeComponent() this.materialLabel58.Font = new System.Drawing.Font("Roboto", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); this.materialLabel58.FontType = MaterialSkin.MaterialSkinManager.fontType.SubtleEmphasis; this.materialLabel58.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel58.Location = new System.Drawing.Point(492, 483); + this.materialLabel58.Location = new System.Drawing.Point(433, 483); this.materialLabel58.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel58.Name = "materialLabel58"; - this.materialLabel58.Size = new System.Drawing.Size(80, 13); + this.materialLabel58.Size = new System.Drawing.Size(54, 13); this.materialLabel58.TabIndex = 84; - this.materialLabel58.Text = "SubtleEmphasis"; + this.materialLabel58.Text = "تاکید ظریف"; // // materialLabel43 // this.materialLabel43.Depth = 0; this.materialLabel43.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel43.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel43.Location = new System.Drawing.Point(675, 283); + this.materialLabel43.Location = new System.Drawing.Point(12, 298); this.materialLabel43.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel43.Name = "materialLabel43"; - this.materialLabel43.Size = new System.Drawing.Size(245, 103); + this.materialLabel43.Size = new System.Drawing.Size(345, 103); this.materialLabel43.TabIndex = 83; - this.materialLabel43.Text = "Want to make a multiline label?\r\nNo problem! just disable the AutoSize Property\r\n" + - "TextAlign should work too"; + this.materialLabel43.Text = "آیا می خواهید یک برچسب چند خطی بسازید؟\r\nمشکلی نیست! فقط ویژگی AutoSize را غیرفعال" + + " کنید\r\nTextAign نیز باید کار کند"; this.materialLabel43.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // materialLabel42 @@ -3193,12 +3195,12 @@ private void InitializeComponent() this.materialLabel42.Font = new System.Drawing.Font("Roboto Medium", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel42.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel42.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel42.Location = new System.Drawing.Point(643, 468); + this.materialLabel42.Location = new System.Drawing.Point(12, 483); this.materialLabel42.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel42.Name = "materialLabel42"; - this.materialLabel42.Size = new System.Drawing.Size(240, 15); + this.materialLabel42.Size = new System.Drawing.Size(345, 15); this.materialLabel42.TabIndex = 82; - this.materialLabel42.Text = "This is a label is disabled (use it for hints!)"; + this.materialLabel42.Text = "این یک برچسب غیرفعال است (از آن برای راهنمایی استفاده کنید!)"; // // materialLabel41 // @@ -3208,12 +3210,12 @@ private void InitializeComponent() this.materialLabel41.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel41.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel41.HighEmphasis = true; - this.materialLabel41.Location = new System.Drawing.Point(643, 441); + this.materialLabel41.Location = new System.Drawing.Point(65, 456); this.materialLabel41.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel41.Name = "materialLabel41"; - this.materialLabel41.Size = new System.Drawing.Size(275, 15); + this.materialLabel41.Size = new System.Drawing.Size(292, 15); this.materialLabel41.TabIndex = 81; - this.materialLabel41.Text = "This is a label with High Emphasis + Use Accent"; + this.materialLabel41.Text = "این یک برچسب با تأکید زیاد + استفاده از رنگ مد است"; this.materialLabel41.UseAccent = true; // // materialLabel40 @@ -3224,12 +3226,12 @@ private void InitializeComponent() this.materialLabel40.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel40.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel40.HighEmphasis = true; - this.materialLabel40.Location = new System.Drawing.Point(643, 415); + this.materialLabel40.Location = new System.Drawing.Point(175, 430); this.materialLabel40.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel40.Name = "materialLabel40"; - this.materialLabel40.Size = new System.Drawing.Size(195, 15); + this.materialLabel40.Size = new System.Drawing.Size(182, 15); this.materialLabel40.TabIndex = 80; - this.materialLabel40.Text = "This is a label with High Emphasis"; + this.materialLabel40.Text = "این یک برچسب با تأکید زیاد است"; // // materialLabel22 // @@ -3238,12 +3240,12 @@ private void InitializeComponent() this.materialLabel22.Font = new System.Drawing.Font("Roboto", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel22.FontType = MaterialSkin.MaterialSkinManager.fontType.Overline; this.materialLabel22.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel22.Location = new System.Drawing.Point(492, 468); + this.materialLabel22.Location = new System.Drawing.Point(457, 468); this.materialLabel22.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel22.Name = "materialLabel22"; - this.materialLabel22.Size = new System.Drawing.Size(42, 10); + this.materialLabel22.Size = new System.Drawing.Size(30, 10); this.materialLabel22.TabIndex = 79; - this.materialLabel22.Text = "OVERLINE"; + this.materialLabel22.Text = "روی خط"; // // materialLabel21 // @@ -3252,12 +3254,12 @@ private void InitializeComponent() this.materialLabel21.Font = new System.Drawing.Font("Roboto", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel21.FontType = MaterialSkin.MaterialSkinManager.fontType.Caption; this.materialLabel21.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel21.Location = new System.Drawing.Point(492, 448); + this.materialLabel21.Location = new System.Drawing.Point(460, 448); this.materialLabel21.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel21.Name = "materialLabel21"; - this.materialLabel21.Size = new System.Drawing.Size(39, 13); + this.materialLabel21.Size = new System.Drawing.Size(27, 13); this.materialLabel21.TabIndex = 78; - this.materialLabel21.Text = "Caption"; + this.materialLabel21.Text = "عنوان"; // // materialLabel20 // @@ -3266,12 +3268,12 @@ private void InitializeComponent() this.materialLabel20.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel20.FontType = MaterialSkin.MaterialSkinManager.fontType.Button; this.materialLabel20.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel20.Location = new System.Drawing.Point(492, 428); + this.materialLabel20.Location = new System.Drawing.Point(459, 428); this.materialLabel20.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel20.Name = "materialLabel20"; - this.materialLabel20.Size = new System.Drawing.Size(51, 15); + this.materialLabel20.Size = new System.Drawing.Size(28, 15); this.materialLabel20.TabIndex = 77; - this.materialLabel20.Text = "BUTTON"; + this.materialLabel20.Text = "دکمه"; // // materialLabel19 // @@ -3280,12 +3282,12 @@ private void InitializeComponent() this.materialLabel19.Font = new System.Drawing.Font("Roboto", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel19.FontType = MaterialSkin.MaterialSkinManager.fontType.Body2; this.materialLabel19.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel19.Location = new System.Drawing.Point(492, 407); + this.materialLabel19.Location = new System.Drawing.Point(452, 407); this.materialLabel19.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel19.Name = "materialLabel19"; - this.materialLabel19.Size = new System.Drawing.Size(40, 15); + this.materialLabel19.Size = new System.Drawing.Size(35, 15); this.materialLabel19.TabIndex = 76; - this.materialLabel19.Text = "Body 2"; + this.materialLabel19.Text = "متن ۲"; // // materialLabel18 // @@ -3293,12 +3295,12 @@ private void InitializeComponent() this.materialLabel18.Depth = 0; this.materialLabel18.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel18.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel18.Location = new System.Drawing.Point(492, 384); + this.materialLabel18.Location = new System.Drawing.Point(452, 384); this.materialLabel18.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel18.Name = "materialLabel18"; - this.materialLabel18.Size = new System.Drawing.Size(42, 17); + this.materialLabel18.Size = new System.Drawing.Size(35, 17); this.materialLabel18.TabIndex = 75; - this.materialLabel18.Text = "Body 1"; + this.materialLabel18.Text = "متن ۱"; // // materialLabel17 // @@ -3307,12 +3309,12 @@ private void InitializeComponent() this.materialLabel17.Font = new System.Drawing.Font("Roboto Medium", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel17.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle2; this.materialLabel17.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel17.Location = new System.Drawing.Point(492, 365); + this.materialLabel17.Location = new System.Drawing.Point(431, 365); this.materialLabel17.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel17.Name = "materialLabel17"; - this.materialLabel17.Size = new System.Drawing.Size(55, 15); + this.materialLabel17.Size = new System.Drawing.Size(56, 15); this.materialLabel17.TabIndex = 74; - this.materialLabel17.Text = "Subtitle 2"; + this.materialLabel17.Text = "زیرعنوان ۲"; // // materialLabel1 // @@ -3321,12 +3323,12 @@ private void InitializeComponent() this.materialLabel1.Font = new System.Drawing.Font("Roboto", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel1.FontType = MaterialSkin.MaterialSkinManager.fontType.Subtitle1; this.materialLabel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel1.Location = new System.Drawing.Point(491, 342); + this.materialLabel1.Location = new System.Drawing.Point(427, 342); this.materialLabel1.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel1.Name = "materialLabel1"; - this.materialLabel1.Size = new System.Drawing.Size(59, 17); + this.materialLabel1.Size = new System.Drawing.Size(60, 17); this.materialLabel1.TabIndex = 73; - this.materialLabel1.Text = "Subtitle 1"; + this.materialLabel1.Text = "زیرعنوان ۱"; // // materialLabel16 // @@ -3335,12 +3337,12 @@ private void InitializeComponent() this.materialLabel16.Font = new System.Drawing.Font("Roboto Medium", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel16.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; this.materialLabel16.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel16.Location = new System.Drawing.Point(491, 314); + this.materialLabel16.Location = new System.Drawing.Point(418, 314); this.materialLabel16.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel16.Name = "materialLabel16"; - this.materialLabel16.Size = new System.Drawing.Size(84, 22); + this.materialLabel16.Size = new System.Drawing.Size(69, 22); this.materialLabel16.TabIndex = 72; - this.materialLabel16.Text = "Heading 6"; + this.materialLabel16.Text = "سرتیتر ۶"; // // materialLabel15 // @@ -3349,12 +3351,12 @@ private void InitializeComponent() this.materialLabel15.Font = new System.Drawing.Font("Roboto", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel15.FontType = MaterialSkin.MaterialSkinManager.fontType.H5; this.materialLabel15.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel15.Location = new System.Drawing.Point(490, 283); + this.materialLabel15.Location = new System.Drawing.Point(402, 283); this.materialLabel15.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel15.Name = "materialLabel15"; - this.materialLabel15.Size = new System.Drawing.Size(100, 26); + this.materialLabel15.Size = new System.Drawing.Size(85, 26); this.materialLabel15.TabIndex = 71; - this.materialLabel15.Text = "Heading 5"; + this.materialLabel15.Text = "سرتیتر ۵"; // // materialLabel14 // @@ -3363,12 +3365,12 @@ private void InitializeComponent() this.materialLabel14.Font = new System.Drawing.Font("Roboto", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel14.FontType = MaterialSkin.MaterialSkinManager.fontType.H4; this.materialLabel14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel14.Location = new System.Drawing.Point(488, 242); + this.materialLabel14.Location = new System.Drawing.Point(364, 242); this.materialLabel14.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel14.Name = "materialLabel14"; - this.materialLabel14.Size = new System.Drawing.Size(143, 36); + this.materialLabel14.Size = new System.Drawing.Size(123, 36); this.materialLabel14.TabIndex = 70; - this.materialLabel14.Text = "Heading 4"; + this.materialLabel14.Text = "سرتیتر ۴"; // // materialLabel13 // @@ -3377,12 +3379,12 @@ private void InitializeComponent() this.materialLabel13.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel13.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel13.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel13.Location = new System.Drawing.Point(485, 185); + this.materialLabel13.Location = new System.Drawing.Point(313, 185); this.materialLabel13.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel13.Name = "materialLabel13"; - this.materialLabel13.Size = new System.Drawing.Size(203, 51); + this.materialLabel13.Size = new System.Drawing.Size(174, 51); this.materialLabel13.TabIndex = 69; - this.materialLabel13.Text = "Heading 3"; + this.materialLabel13.Text = "سرتیتر ۳"; // // materialLabel12 // @@ -3391,12 +3393,12 @@ private void InitializeComponent() this.materialLabel12.Font = new System.Drawing.Font("Roboto Light", 60F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel12.FontType = MaterialSkin.MaterialSkinManager.fontType.H2; this.materialLabel12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel12.Location = new System.Drawing.Point(482, 114); + this.materialLabel12.Location = new System.Drawing.Point(278, 114); this.materialLabel12.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel12.Name = "materialLabel12"; - this.materialLabel12.Size = new System.Drawing.Size(243, 64); + this.materialLabel12.Size = new System.Drawing.Size(209, 64); this.materialLabel12.TabIndex = 68; - this.materialLabel12.Text = "Heading 2"; + this.materialLabel12.Text = "سرتیتر ۲"; // // materialLabel11 // @@ -3405,12 +3407,12 @@ private void InitializeComponent() this.materialLabel11.Font = new System.Drawing.Font("Roboto Light", 96F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel11.FontType = MaterialSkin.MaterialSkinManager.fontType.H1; this.materialLabel11.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel11.Location = new System.Drawing.Point(475, 18); + this.materialLabel11.Location = new System.Drawing.Point(175, 18); this.materialLabel11.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel11.Name = "materialLabel11"; - this.materialLabel11.Size = new System.Drawing.Size(366, 102); + this.materialLabel11.Size = new System.Drawing.Size(312, 102); this.materialLabel11.TabIndex = 67; - this.materialLabel11.Text = "Heading 1"; + this.materialLabel11.Text = "سرتیتر ۱"; // // materialLabel54 // @@ -3418,12 +3420,12 @@ private void InitializeComponent() this.materialLabel54.Depth = 0; this.materialLabel54.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel54.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel54.Location = new System.Drawing.Point(28, 18); + this.materialLabel54.Location = new System.Drawing.Point(809, 18); this.materialLabel54.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel54.Name = "materialLabel54"; - this.materialLabel54.Size = new System.Drawing.Size(104, 51); + this.materialLabel54.Size = new System.Drawing.Size(133, 51); this.materialLabel54.TabIndex = 63; - this.materialLabel54.Text = "Label"; + this.materialLabel54.Text = "برچسب"; // // menuIconList // diff --git a/MaterialSkinExample.RTL/MainForm.cs b/MaterialSkinExample.RTL/MainForm.cs index f95271c3..c58312d4 100644 --- a/MaterialSkinExample.RTL/MainForm.cs +++ b/MaterialSkinExample.RTL/MainForm.cs @@ -307,5 +307,10 @@ private void MainForm_Move(object sender, EventArgs e) { } + + private void materialExpansionPanel2_Paint(object sender, PaintEventArgs e) + { + + } } } diff --git a/MaterialSkinExample.RTL/MainForm.resx b/MaterialSkinExample.RTL/MainForm.resx index 6d7135ed..8f293233 100644 --- a/MaterialSkinExample.RTL/MainForm.resx +++ b/MaterialSkinExample.RTL/MainForm.resx @@ -117,12 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - در اینجا فهرستی از هر گونه‌ای که یک دکمه Material می‌تواند باشد، آمده است. سایه های دکمه موجود فقط در زمان اجرا کشیده می شوند. -روی آنها کلیک کنید و آن انیمیشن های شیرین را بررسی کنید. اوه بله، دکمه‌ها از تم و رنگ‌ها پیروی می‌کنند، آن‌ها را نیز تغییر دهید. -به طور معمول دکمه ها باید AutoSize = true باشند، اما به خاطر OCD من، در اینجا روی false تنظیم شده است. -اگر هر یک از دکمه ها هنگام طراحی عجیب به نظر می رسد، رنگ پس زمینه برگه را از شفاف به سفید تغییر دهید. - 219, 17 @@ -131,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABs - NgAAAk1TRnQBSQFMAgEBEgEAASgBBwEoAQcBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + NgAAAk1TRnQBSQFMAgEBEgEAATABBwEwAQcBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABeAMAAQEBAAEgBgABtP8A/wD/ADEAAwwBEAM9AWcDWAG7A1wB5wMAAf8DAAH/A10B4wNUAa8DOQFf AwYBCCgAAy8BSQNdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNdAeMDLgFI5AADPgFrA2AB6wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ @@ -151,14 +145,14 @@ Af8DAAH/AwAB/wNZAccUAAMGAf4DAAH/HAADWQHEAwAB/wMAAf8DAAH/A1kBxAsAAf8DAAH/1wAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbwNAAW8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNdAeMUAAMGAf4DAAH/OwAB/wMAAf/XAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8UAAMwAf0DAAH/OwAB/wMA + AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8UAAMxAf0DAAH/OwAB/wMA Af/UAANdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A1kBwxQAAzAB/QMAAf87AAH/AwAB/9QAA1QBrwMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSwGPFAADMAH9AwAB/zsA + AwAB/wMAAf8DAAH/A1kBwxQAAzEB/QMAAf87AAH/AwAB/9QAA1QBrwMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSwGPFAADMQH9AwAB/zsA Af8DAAH/1AADOQFfAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMqAUAUAAMwAf0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + AwAB/wMAAf8DAAH/AwAB/wMqAUAUAAMxAf0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/9QAAwYBCANcAd8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A0sBjwNLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxxgAAzAB/QMA + AwAB/wMAAf8DAAH/A0sBjwNLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxxgAAzEB/QMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/2AADNQFXAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AyEB+wMoATwYAAMrAfwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA @@ -218,11 +212,11 @@ A1oB6QMAAf8DAAH/AwAB/wMAAf8DAAH/A1sB2CgAA1IBpgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNS AaYsAAMZASMDFAEcA1cBtwMAAf8DAAH/AwAB/wMAAf8DVgGzAyoBQAMJAQwDCQEMAyoBQANWAbMDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADUAGeAwAB/wNCAXUIAAMvAUoDAAH/A0EB+QNDAXcDEgEY - AxIBGANDAXcDQQH5AzAB/QMiATIIAANGAX8DAAH/A0wBkhAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DYAHr + AxIBGANDAXcDQQH5AzEB/QMiATIIAANGAX8DAAH/A0wBkhAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DYAHr Ax8BLQQAAx4BKwNaAekDWgHpAx8BLAQAAx8BLANcAeoDAAH/AwAB/wMAAf8DAAH/A1EBpSgAA14B5QMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUsAANZAcQDWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADNQFWAwAB/wNf - AeADAwEECAADRwGCAwAB/wMAAf8DAAH/AwAB/wMAAf8DMAH9A0ABbwgAAwUBBwNdAeMDAAH/AysBQhAA + AeADAwEECAADRwGCAwAB/wMAAf8DAAH/AwAB/wMAAf8DMQH9A0ABbwgAAwUBBwNdAeMDAAH/AysBQhAA AzUBVQMAAf8DAAH/AwAB/wMAAf8DSAGFBAADHgErA1oB6QMAAf8DAAH/A1oB6QMfASwEAANHAYMDAAH/ AwAB/wMAAf8DAAH/AzUBVSgAA14B5QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUvAAH/AwAB/wcA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA @@ -230,11 +224,11 @@ A1wByRQAAwQBBgNcAdwDAAH/AwAB/wMAAf8DXAHfA0cBgwNaAekDAAH/AwAB/wMAAf8DAAH/A1wB6gNH AYMDWwHeAwAB/wMAAf8DAAH/A1wB3AMEAQYoAANSAaYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUgGm LwAB/wMAAf8IAAMUARwDVwG3AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/A10B4wMuAUgQAAMyAVADBgH+AzAB/QMyAVEoAAMzAVMDKwH8AyEB+wMnAToYAAMzAVIDAAH/ + Af8DAAH/A10B4wMuAUgQAAMyAVADBgH+AzEB/QMyAVEoAAMzAVMDKwH8AyEB+wMnAToYAAMzAVIDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AzMBUiwAAxQBHANdAe0DAAH/AwAB/wMAAf8DAAH/A10B7QMUARwgAANZAcQDAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DBgH+AzkBXygAA0kBhwMA - Af8DMAH9A0YBfgMDAQQYAAMDAQQDQgF2AysB/AMAAf8DQgF1IAADSgGLAwAB/wMAAf8DAAH/AwAB/wMA + Af8DMQH9A0YBfgMDAQQYAAMDAQQDQgF2AysB/AMAAf8DQgF1IAADSgGLAwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSgGLNAADFAEcA1IBpgNhAeYDYQHm A1IBpgMUARwkAANZAcQDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DWQHEAxkBIwMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNcAeoDOwFjLAADAQECA0kBhwMAAf8DAAH/A2AB4QNCAXUDJAE1AwsBDwMRARcDJAE1 @@ -251,9 +245,9 @@ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DXQHiNAADHgErGP8DIAEuOAADMQRPAfMDAAH/A1kB8gNcAdwDAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DIQH7NAADFwEgAwAB/wNcAd83AAH/AwAB/wMnATs4AAMnATsDAAH/AwAB/0AACP9AAAND - AXgDMAH9AwAB/wNUAasDFAEbAxABFQNaAdMDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAcs0AAMXASADAAH/ + AXgDMQH9AwAB/wNUAasDFAEbAxABFQNaAdMDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAcs0AAMXASADAAH/ A1wB3zcAAf8DAAH/QwAB/wMAAf9AAAj/PAADQwF3AwAB/wMrAfwDQAFxDAADEAEVA1gBuwMAAf8DWAHv - A10B0gNRAaUDGQEjNAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf9AAAj/OAADMgFQAzAB/QMr + A10B0gNRAaUDGQEjNAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf9AAAj/OAADMgFQAzEB/QMr AfwDNQFVYAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf8oAANdAdIDXQHSEAAI/zQAAxYBHwNP AfMDAAH/A0ABcVAAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wNLAY8cAAMGAf4DAAH/QwAB/wMAAf8oAAj/EAAI/zQAA1IBpwMAAf8DVAGrVAADVgGzAwAB/wMA @@ -261,16 +255,16 @@ AR0DRgGAA0YBgAMVAR0bAAH/AwAB/ygACP8QAAj/MAADJwE7AwYB/gNZAfIDFAEbVAADBgEIA0oBiwMh AfsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNRAfcDQQFzAwMBBBwAAwYB/gMAAf8QAAMC AQMDQAFwA1kB8gMAAf8DAAH/A1kB8gNAAXADAgEDEwAB/wMAAf8oAAj/EAADYAHUA14B1TAAA1QBqwMA - Af8DXwHbAxABFVwAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbyQAAzAB/QMA + Af8DXwHbAxABFVwAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbyQAAzEB/QMA Af8MAAMjATMDXAHMAwAB/wNdAeIDMQFPAzEBTwNdAeIDAAH/A1wBzAMjATMPAAH/AwAB/ygACP9EAAMK AQ4DUQH3AwAB/wMAAf8DWgHTAxABFVgAAyYBOAMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AxQBHCQAAzAB/QMAAf8EAAMKAQ0DSwGPAysB/AMrAfwDSwGPAwoBDQgAAwoBDQNLAY8DKwH8AysB/ANL + AxQBHCQAAzEB/QMAAf8EAAMKAQ0DSwGPAysB/AMrAfwDSwGPAwoBDQgAAwoBDQNLAY8DKwH8AysB/ANL AY8DCgENBwAB/wMAAf8oAAj/RAADOQFfAwAB/wMAAf8DAAH/AwAB/wNWAbxfAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/ygAAzAB/QMAAf8DMQFPA10B4gMAAf8DXAHMAyMBMxgAAyMBMwNcAcwDAAH/ - A10B4gMxAU8DAAH/AwAB/ygACP9EAANOAZcDAAH/AwAB/wMAAf8DAAH/AzAB/QMCAQNbAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzAB/QMAAf8DAAH/A1kB8gNAAW8DAgEDIAADAgEDA0ABbwNZ + AwAB/wMAAf8DAAH/AwAB/ygAAzEB/QMAAf8DMQFPA10B4gMAAf8DXAHMAyMBMxgAAyMBMwNcAcwDAAH/ + A10B4gMxAU8DAAH/AwAB/ygACP9EAANOAZcDAAH/AwAB/wMAAf8DAAH/AzEB/QMCAQNbAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzEB/QMAAf8DAAH/A1kB8gNAAW8DAgEDIAADAgEDA0ABbwNZ AfIDAAH/AwAB/wMAAf8cAAMfASwU/wN/Af4DHwEsOAADWQG/AwAB/wMAAf8DAAH/AwAB/wNZAfJfAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzAB/QMAAf8DVAGvAxUBHTAAAxUBHQNUAa8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzEB/QMAAf8DVAGvAxUBHTAAAxUBHQNUAa8DAAH/ AwAB/yAAA0ABbxD/Az0BaDwAA2EB5gMAAf8DAAH/AwAB/wMAAf8DXAHUXwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8oAANcAd8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHiJAADSAGECP8DRwGBQAADXAHcAwAB/wMA @@ -365,6 +359,12 @@ AfgBAAEfAeABAAEHAf4BAAF/AfgB4AH/AfgBAAEfAeABAAEHAf8BAAL/AeEB/wH4AQABHwHgAQABBwT/ AeMB/wH4AQABHwf/Aecc/ws= + + + در اینجا فهرستی از هر گونه‌ای که یک دکمه Material می‌تواند باشد، آمده است. سایه های دکمه موجود فقط در زمان اجرا کشیده می شوند. +روی آنها کلیک کنید و آن انیمیشن های شیرین را بررسی کنید. اوه بله، دکمه‌ها از تم و رنگ‌ها پیروی می‌کنند، آن‌ها را نیز تغییر دهید. +به طور معمول دکمه ها باید AutoSize = true باشند، اما به خاطر OCD من، در اینجا روی false تنظیم شده است. +اگر هر یک از دکمه ها هنگام طراحی عجیب به نظر می رسد، رنگ پس زمینه برگه را از شفاف به سفید تغییر دهید. 17, 17 From a3429907f0ecb0ac83f77c77bd521ea1e2514888 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Thu, 9 Jun 2022 01:10:40 +0430 Subject: [PATCH 19/30] BaseTextBox,MaterialListBox,MaterialMultiLineTextBox2,MaterialTabSelector,MaterialTextBox2 --- MaterialSkin/Controls/BaseTextBox.cs | 6 +- .../Controls/MaterialExpansionPanel.cs | 6 +- MaterialSkin/Controls/MaterialListBox.cs | 43 +- MaterialSkin/Controls/MaterialListView.cs | 7 +- .../Controls/MaterialMaskedTextBox.cs | 68 ++- .../Controls/MaterialMultiLineTextBox2.cs | 8 +- MaterialSkin/Controls/MaterialTabSelector.cs | 12 +- MaterialSkin/Controls/MaterialTextBox2.cs | 44 +- MaterialSkinExample.RTL/MainForm.Designer.cs | 545 +++++++----------- MaterialSkinExample.RTL/MainForm.cs | 6 +- MaterialSkinExample.RTL/MainForm.resx | 36 +- .../Properties/Resources.Designer.cs | 10 +- 12 files changed, 362 insertions(+), 429 deletions(-) diff --git a/MaterialSkin/Controls/BaseTextBox.cs b/MaterialSkin/Controls/BaseTextBox.cs index 13a870e9..0a6d46e9 100644 --- a/MaterialSkin/Controls/BaseTextBox.cs +++ b/MaterialSkin/Controls/BaseTextBox.cs @@ -83,6 +83,7 @@ protected override void WndProc(ref Message m) { using (NativeTextRenderer NativeText = new NativeTextRenderer(Graphics.FromHwnd(m.HWnd))) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( Hint, SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1,RightToLeft), @@ -91,7 +92,7 @@ protected override void WndProc(ref Message m) ColorHelper.RemoveAlpha(SkinManager.TextDisabledOrHintColor, BackColor), // Disabled ClientRectangle.Location, ClientRectangle.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Top); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Top); } } @@ -183,6 +184,7 @@ protected override void WndProc(ref Message m) { using (NativeTextRenderer NativeText = new NativeTextRenderer(Graphics.FromHwnd(m.HWnd))) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( Hint, SkinManager.getFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), @@ -191,7 +193,7 @@ protected override void WndProc(ref Message m) ColorHelper.RemoveAlpha(SkinManager.TextDisabledOrHintColor, BackColor), // Disabled ClientRectangle.Location, ClientRectangle.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Top); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Top); } } diff --git a/MaterialSkin/Controls/MaterialExpansionPanel.cs b/MaterialSkin/Controls/MaterialExpansionPanel.cs index 9b8a1340..0185b8a2 100644 --- a/MaterialSkin/Controls/MaterialExpansionPanel.cs +++ b/MaterialSkin/Controls/MaterialExpansionPanel.cs @@ -507,13 +507,14 @@ protected override void OnPaint(PaintEventArgs e) using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { // Draw header text + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( _titleHeader, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, headerRect.Location, headerRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } if (!String.IsNullOrEmpty(_descriptionHeader)) @@ -529,13 +530,14 @@ protected override void OnPaint(PaintEventArgs e) using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { // Draw description header text + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( _descriptionHeader, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft), SkinManager.TextDisabledOrHintColor, headerDescriptionRect.Location, headerDescriptionRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } diff --git a/MaterialSkin/Controls/MaterialListBox.cs b/MaterialSkin/Controls/MaterialListBox.cs index 0e89b52d..cb7f8c85 100644 --- a/MaterialSkin/Controls/MaterialListBox.cs +++ b/MaterialSkin/Controls/MaterialListBox.cs @@ -39,7 +39,7 @@ public class MaterialListBox : Control, IMaterialControl private MaterialScrollBar _scrollBar; private object _selectedValue; - private bool _updating=false; + private bool _updating = false; private int _itemHeight; private bool _showBorder; private Color _borderColor; @@ -88,7 +88,7 @@ public enum MaterialItemDensity public bool UseAccentColor { get { return useAccentColor; } - set { useAccentColor = value; _scrollBar.UseAccentColor = value; Invalidate(); } + set { useAccentColor = value; _scrollBar.UseAccentColor = value; Invalidate(); } } [TypeConverter(typeof(CollectionConverter))] @@ -244,9 +244,10 @@ public MaterialItemDensity Density #endregion Properties #region Constructors - - public MaterialListBox() + public MaterialListBox() : this(RightToLeft.No) { } + public MaterialListBox(RightToLeft RightToLeft) { + this.RightToLeft = RightToLeft; SetStyle ( ControlStyles.UserPaint | @@ -383,16 +384,17 @@ protected override void OnPaint(PaintEventArgs e) g.FillRectangle(Enabled ? SkinManager.BackgroundBrush : SkinManager.BackgroundDisabledBrush, mainRect); //Set TextAlignFlags + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeTextRenderer.TextAlignFlags primaryTextAlignFlags; - NativeTextRenderer.TextAlignFlags secondaryTextAlignFlags = NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Top; + NativeTextRenderer.TextAlignFlags secondaryTextAlignFlags = textAlignFlag | NativeTextRenderer.TextAlignFlags.Top; if (_style == ListBoxStyle.TwoLine || _style == ListBoxStyle.ThreeLine) { - primaryTextAlignFlags = NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Bottom; + primaryTextAlignFlags = textAlignFlag | NativeTextRenderer.TextAlignFlags.Bottom; } else { //SingleLine - primaryTextAlignFlags = NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle; + primaryTextAlignFlags = textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle; } //Set color and brush @@ -466,8 +468,8 @@ protected override void OnPaint(PaintEventArgs e) NativeText.DrawTransparentText( itemText, _primaryFont, - Enabled ? (i != SelectedIndex || UseAccentColor) ? - SkinManager.TextHighEmphasisColor : + Enabled ? (i != SelectedIndex || UseAccentColor) ? + SkinManager.TextHighEmphasisColor : SkinManager.ColorScheme.TextColor : SkinManager.TextDisabledOrHintColor, // Disabled primaryTextRect.Location, @@ -478,8 +480,8 @@ protected override void OnPaint(PaintEventArgs e) NativeText.DrawTransparentText( itemSecondaryText, _secondaryFont, - Enabled ? (i != SelectedIndex || UseAccentColor) ? - SkinManager.TextDisabledOrHintColor : + Enabled ? (i != SelectedIndex || UseAccentColor) ? + SkinManager.TextDisabledOrHintColor : SkinManager.ColorScheme.TextColor.Darken(0.25f) : SkinManager.TextDisabledOrHintColor, // Disabled secondaryTextRect.Location, @@ -491,8 +493,8 @@ protected override void OnPaint(PaintEventArgs e) NativeText.DrawMultilineTransparentText( itemSecondaryText, _secondaryFont, - Enabled ? (i != SelectedIndex || UseAccentColor) ? - SkinManager.TextDisabledOrHintColor : + Enabled ? (i != SelectedIndex || UseAccentColor) ? + SkinManager.TextDisabledOrHintColor : SkinManager.ColorScheme.TextColor.Darken(0.25f) : SkinManager.TextDisabledOrHintColor, // Disabled secondaryTextRect.Location, @@ -555,9 +557,9 @@ public void AddItems(string[] newItems) public void RemoveItemAt(int index) { - if (index<= _selectedIndex) + if (index <= _selectedIndex) { - _selectedIndex -=1; + _selectedIndex -= 1; update_selection(); } _items.RemoveAt(index); @@ -567,7 +569,7 @@ public void RemoveItemAt(int index) public void RemoveItem(MaterialListBoxItem item) { - if (_items.IndexOf(item)<= _selectedIndex) + if (_items.IndexOf(item) <= _selectedIndex) { _selectedIndex -= 1; update_selection(); @@ -725,7 +727,8 @@ private void VS_MouseDown(object sender, MouseEventArgs e) private void InvalidateLayout() { _scrollBar.Size = new Size(12, Height - (ShowBorder ? 2 : 0)); - _scrollBar.Location = new Point(Width - (_scrollBar.Width + (ShowBorder ? 1 : 0)), ShowBorder ? 1 : 0); + var PointX = (RightToLeft == RightToLeft.Yes) ? 0 : Width - (_scrollBar.Width + (ShowBorder ? 1 : 0)); + _scrollBar.Location = new Point(PointX, ShowBorder ? 1 : 0); Invalidate(); } @@ -737,7 +740,7 @@ protected override void OnMouseWheel(MouseEventArgs e) _scrollBar.Value = _scrollBar.Minimum; else if (_scrollBar.Maximum < _scrollBar.Value + Height) { - if (e.Delta>0) + if (e.Delta > 0) _scrollBar.Value -= e.Delta / 2; else { } //Do nothing, maximum reached @@ -805,7 +808,7 @@ private void _updateHoveredItem(MouseEventArgs e) index = -1; } - if (index >= 0 && index= 0 && index < Items.Count) { _hoveredItem = index; } @@ -824,7 +827,7 @@ protected override void OnHandleCreated(EventArgs e) { base.OnHandleCreated(e); _scrollBar.Size = new Size(12, Height - (ShowBorder ? 2 : 0)); - _scrollBar.Location = new Point( Width - (_scrollBar.Width + (ShowBorder ? 1 : 0)), ShowBorder ? 1 : 0); + _scrollBar.Location = new Point(Width - (_scrollBar.Width + (ShowBorder ? 1 : 0)), ShowBorder ? 1 : 0); InvalidateScroll(this, e); } diff --git a/MaterialSkin/Controls/MaterialListView.cs b/MaterialSkin/Controls/MaterialListView.cs index 413ff834..e743431b 100644 --- a/MaterialSkin/Controls/MaterialListView.cs +++ b/MaterialSkin/Controls/MaterialListView.cs @@ -98,13 +98,14 @@ protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e) // Draw Text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( e.Header.Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle2, RightToLeft), Enabled ? SkinManager.TextHighEmphasisNoAlphaColor : SkinManager.TextDisabledOrHintColor, new Point(e.Bounds.Location.X + PAD, e.Bounds.Location.Y), new Size(e.Bounds.Size.Width - PAD * 2, e.Bounds.Size.Height), - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } @@ -136,13 +137,14 @@ protected override void OnDrawItem(DrawListViewItemEventArgs e) // Draw Text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( subItem.Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body2, RightToLeft), Enabled ? SkinManager.TextHighEmphasisNoAlphaColor : SkinManager.TextDisabledOrHintColor, new Point(subItem.Bounds.X + PAD, subItem.Bounds.Y), new Size(subItem.Bounds.Width - PAD * 2, subItem.Bounds.Height), - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } } @@ -199,6 +201,7 @@ protected override void InitLayout() OwnerDraw = true; ResizeRedraw = true; BorderStyle = BorderStyle.None; + RightToLeft = RightToLeft; } protected override void OnCreateControl() diff --git a/MaterialSkin/Controls/MaterialMaskedTextBox.cs b/MaterialSkin/Controls/MaterialMaskedTextBox.cs index f74606a7..b78389c8 100644 --- a/MaterialSkin/Controls/MaterialMaskedTextBox.cs +++ b/MaterialSkin/Controls/MaterialMaskedTextBox.cs @@ -39,7 +39,7 @@ public class MaterialMaskedTextBox : Control, IMaterialControl [Browsable(false)] public int SelectionLength { get { return baseTextBox.SelectionLength; } set { baseTextBox.SelectionLength = value; } } - + [Browsable(false)] public int TextLength { get { return baseTextBox.TextLength; } } @@ -193,9 +193,9 @@ public string PrefixSuffixText { //if (_prefixsuffixText != value) //{ - _prefixsuffixText = value; - UpdateRects(); - Invalidate(); + _prefixsuffixText = value; + UpdateRects(); + Invalidate(); //} } } @@ -275,12 +275,12 @@ public override ContextMenuStrip ContextMenuStrip public bool ResetOnSpace { get { return baseTextBox.ResetOnSpace; } set { baseTextBox.ResetOnSpace = value; } } [Category("Behavior")] - public bool ShortcutsEnabled - { - get - { return baseTextBox.ShortcutsEnabled; } - set - { + public bool ShortcutsEnabled + { + get + { return baseTextBox.ShortcutsEnabled; } + set + { baseTextBox.ShortcutsEnabled = value; if (value == false) { @@ -506,7 +506,7 @@ public event EventHandler BorderStyleChanged } } - #if NETFRAMEWORK +#if NETFRAMEWORK public new event EventHandler ContextMenuChanged { add @@ -518,7 +518,7 @@ public event EventHandler BorderStyleChanged baseTextBox.ContextMenuChanged -= value; } } - #endif +#endif public new event EventHandler ContextMenuStripChanged { @@ -916,7 +916,7 @@ public event EventHandler MaskChanged } } - public event MaskInputRejectedEventHandler MaskInputRejected + public event MaskInputRejectedEventHandler MaskInputRejected { add { @@ -1264,7 +1264,7 @@ public event EventHandler ReadOnlyChanged } } - public event EventHandler TextAlignChanged + public event EventHandler TextAlignChanged { add { @@ -1288,7 +1288,7 @@ public event EventHandler TextAlignChanged } } - public event TypeValidationEventHandler TypeValidationCompleted + public event TypeValidationEventHandler TypeValidationCompleted { add { @@ -1351,7 +1351,7 @@ public event TypeValidationEventHandler TypeValidationCompleted private const int ACTIVATION_INDICATOR_HEIGHT = 2; private const int HELPER_TEXT_HEIGHT = 16; private const int FONT_HEIGHT = 20; - + private int HEIGHT = 48; private int LINE_Y; @@ -1369,8 +1369,10 @@ public event TypeValidationEventHandler TypeValidationCompleted private Dictionary iconsErrorBrushes; protected readonly BaseMaskedTextBox baseTextBox; - - public MaterialMaskedTextBox() + public MaterialMaskedTextBox():this(RightToLeft.No) + { + } + public MaterialMaskedTextBox(RightToLeft RightToLeft) { // Material Properties UseAccent = true; @@ -1405,9 +1407,10 @@ public MaterialMaskedTextBox() Font = base.Font, ForeColor = SkinManager.TextHighEmphasisColor, Multiline = false, - Location = new Point(LEFT_PADDING, HEIGHT/2- FONT_HEIGHT/2), + Location = new Point(LEFT_PADDING, HEIGHT / 2 - FONT_HEIGHT / 2), Width = Width - (LEFT_PADDING + RIGHT_PADDING), - Height = FONT_HEIGHT + Height = FONT_HEIGHT, + RightToLeft = RightToLeft }; Enabled = true; @@ -1442,7 +1445,7 @@ public MaterialMaskedTextBox() _animationManager.StartNewAnimation(AnimationDirection.Out); UpdateRects(); }; - + baseTextBox.TextChanged += new EventHandler(Redraw); baseTextBox.BackColorChanged += new EventHandler(Redraw); @@ -1468,7 +1471,7 @@ protected override void OnPaint(PaintEventArgs pevent) g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; g.Clear(Parent.BackColor); SolidBrush backBrush = new SolidBrush(DrawHelper.BlendColor(Parent.BackColor, SkinManager.BackgroundAlternativeColor, SkinManager.BackgroundAlternativeColor.A)); - + //backColor g.FillRectangle( !Enabled ? SkinManager.BackgroundDisabledBrush : // Disabled @@ -1545,13 +1548,14 @@ protected override void OnPaint(PaintEventArgs pevent) hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); // Draw Prefix text + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( _prefixsuffixText, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), Enabled ? SkinManager.TextMediumEmphasisColor : SkinManager.TextDisabledOrHintColor, prefixRect.Location, prefixRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } @@ -1561,25 +1565,27 @@ protected override void OnPaint(PaintEventArgs pevent) using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { Rectangle suffixRect = new Rectangle( - Width - _right_padding , + Width - _right_padding, hasHint && UseTallSize ? (hintRect.Y + hintRect.Height) - 2 : ClientRectangle.Y, _suffix_padding, hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); // Draw Suffix text + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Left: NativeTextRenderer.TextAlignFlags.Right; NativeText.DrawTransparentText( _prefixsuffixText, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), Enabled ? SkinManager.TextMediumEmphasisColor : SkinManager.TextDisabledOrHintColor, suffixRect.Location, suffixRect.Size, - NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } // Draw hint text if (hasHint && UseTallSize && (isFocused || userTextPresent)) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { NativeText.DrawTransparentText( @@ -1593,7 +1599,7 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.TextDisabledOrHintColor, // Disabled hintRect.Location, hintRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } @@ -1602,6 +1608,7 @@ protected override void OnPaint(PaintEventArgs pevent) { using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( HelperText, SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), @@ -1613,24 +1620,25 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.TextDisabledOrHintColor, // Disabled helperTextRect.Location, helperTextRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } // Draw error message - if (_showAssistiveText && _errorState && ErrorMessage!=null) + if (_showAssistiveText && _errorState && ErrorMessage != null) { using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( ErrorMessage, SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), - Enabled ? + Enabled ? SkinManager.BackgroundHoverRedColor : // error state SkinManager.TextDisabledOrHintColor, // Disabled helperTextRect.Location, helperTextRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } diff --git a/MaterialSkin/Controls/MaterialMultiLineTextBox2.cs b/MaterialSkin/Controls/MaterialMultiLineTextBox2.cs index a53ada33..8c709407 100644 --- a/MaterialSkin/Controls/MaterialMultiLineTextBox2.cs +++ b/MaterialSkin/Controls/MaterialMultiLineTextBox2.cs @@ -1130,7 +1130,11 @@ public event EventHandler TextAlignChanged private readonly IntPtr ptrLparam = new IntPtr(0); protected readonly BaseTextBox baseTextBox; - public MaterialMultiLineTextBox2() + public MaterialMultiLineTextBox2():this(RightToLeft.No) + { + + } + public MaterialMultiLineTextBox2(RightToLeft RightToLeft) { AllowScroll = true; // Material Properties @@ -1278,7 +1282,7 @@ protected void OnMouseWheel(object sender, MouseEventArgs e) base.OnMouseDown(e); } } - + protected override void OnMouseMove(MouseEventArgs e) { if (DesignMode) diff --git a/MaterialSkin/Controls/MaterialTabSelector.cs b/MaterialSkin/Controls/MaterialTabSelector.cs index cb368bf2..0ca04051 100644 --- a/MaterialSkin/Controls/MaterialTabSelector.cs +++ b/MaterialSkin/Controls/MaterialTabSelector.cs @@ -379,10 +379,16 @@ private void UpdateTabRects() else if (TabWidth < TAB_WIDTH_MIN) TabWidth = TAB_WIDTH_MIN; - if (i==0) - _tabRects.Add(new Rectangle(FIRST_TAB_PADDING - (TAB_HEADER_PADDING), 0, TabWidth, Height)); + if (i == 0) + { + var RectangleX = (RightToLeft == RightToLeft.Yes) ? Width - TabWidth - FIRST_TAB_PADDING + (TAB_HEADER_PADDING) : FIRST_TAB_PADDING - (TAB_HEADER_PADDING); + _tabRects.Add(new Rectangle(RectangleX, 0, TabWidth, Height)); + } else - _tabRects.Add(new Rectangle(_tabRects[i - 1].Right, 0, TabWidth, Height)); + { + var RectangleX = (RightToLeft == RightToLeft.Yes) ? _tabRects[i - 1].Left - TabWidth : _tabRects[i - 1].Right; + _tabRects.Add(new Rectangle(RectangleX, 0, TabWidth, Height)); + } } } } diff --git a/MaterialSkin/Controls/MaterialTextBox2.cs b/MaterialSkin/Controls/MaterialTextBox2.cs index bf9dfe4e..89a7aa28 100644 --- a/MaterialSkin/Controls/MaterialTextBox2.cs +++ b/MaterialSkin/Controls/MaterialTextBox2.cs @@ -1262,12 +1262,13 @@ public event EventHandler TextAlignChanged private const int ICON_SIZE = 24; private const int HINT_TEXT_SMALL_SIZE = 18; private const int HINT_TEXT_SMALL_Y = 4; - private const int LEFT_PADDING = 16; - private const int RIGHT_PADDING = 12; private const int ACTIVATION_INDICATOR_HEIGHT = 2; private const int HELPER_TEXT_HEIGHT = 16; private const int FONT_HEIGHT = 20; - + + private int LEFT_PADDING = 16; + private int RIGHT_PADDING = 12; + private int HEIGHT = 48; private int LINE_Y; @@ -1286,9 +1287,20 @@ public event EventHandler TextAlignChanged protected readonly BaseTextBox baseTextBox; - public MaterialTextBox2() + public MaterialTextBox2():this(RightToLeft.No) + { + + } + public MaterialTextBox2(RightToLeft RightToLeft) { // Material Properties + if (RightToLeft == RightToLeft.Yes) + { + var temp = LEFT_PADDING; + LEFT_PADDING = RIGHT_PADDING; + RIGHT_PADDING = temp; + } + UseAccent = true; MouseState = MouseState.OUT; @@ -1323,7 +1335,9 @@ public MaterialTextBox2() Multiline = false, Location = new Point(LEFT_PADDING, HEIGHT/2- FONT_HEIGHT/2), Width = Width - (LEFT_PADDING + RIGHT_PADDING), - Height = FONT_HEIGHT + Height = FONT_HEIGHT, + RightToLeft=RightToLeft, + TextAlign= (RightToLeft == RightToLeft.Yes)? HorizontalAlignment.Right: HorizontalAlignment.Left }; Enabled = true; @@ -1346,6 +1360,7 @@ public MaterialTextBox2() if (Enabled) { isFocused = true; + if (RightToLeft==RightToLeft.Yes) SendKeys.Send("^+"); _animationManager.StartNewAnimation(AnimationDirection.In); } else @@ -1376,9 +1391,9 @@ private void Redraw(object sencer, EventArgs e) Invalidate(); ResumeLayout(false); } - + protected override void OnPaint(PaintEventArgs pevent) - { + { var g = pevent.Graphics; g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; g.Clear(Parent.BackColor); @@ -1461,13 +1476,14 @@ protected override void OnPaint(PaintEventArgs pevent) hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); // Draw Prefix text + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( _prefixsuffixText, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), Enabled ? SkinManager.TextMediumEmphasisColor : SkinManager.TextDisabledOrHintColor, prefixRect.Location, prefixRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } @@ -1484,19 +1500,21 @@ protected override void OnPaint(PaintEventArgs pevent) hasHint && UseTallSize ? LINE_Y - (hintRect.Y + hintRect.Height) : LINE_Y); // Draw Suffix text + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Left : NativeTextRenderer.TextAlignFlags.Right; NativeText.DrawTransparentText( _prefixsuffixText, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), Enabled ? SkinManager.TextMediumEmphasisColor : SkinManager.TextDisabledOrHintColor, suffixRect.Location, suffixRect.Size, - NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } // Draw hint text if(hasHint && UseTallSize && (isFocused || userTextPresent)) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { NativeText.DrawTransparentText( @@ -1510,7 +1528,7 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.TextDisabledOrHintColor, // Disabled hintRect.Location, hintRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } @@ -1519,6 +1537,7 @@ protected override void OnPaint(PaintEventArgs pevent) { using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( HelperText, SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), @@ -1530,7 +1549,7 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.TextDisabledOrHintColor, // Disabled helperTextRect.Location, helperTextRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } @@ -1539,6 +1558,7 @@ protected override void OnPaint(PaintEventArgs pevent) { using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( ErrorMessage, SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), @@ -1547,7 +1567,7 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.TextDisabledOrHintColor, // Disabled helperTextRect.Location, helperTextRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } diff --git a/MaterialSkinExample.RTL/MainForm.Designer.cs b/MaterialSkinExample.RTL/MainForm.Designer.cs index aa56d376..2c8378c9 100644 --- a/MaterialSkinExample.RTL/MainForm.Designer.cs +++ b/MaterialSkinExample.RTL/MainForm.Designer.cs @@ -35,30 +35,28 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - MaterialSkin.MaterialListBoxItem materialListBoxItem19 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem20 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem21 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem22 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem23 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem24 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem25 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem26 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem27 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem28 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem29 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem30 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem31 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem32 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem33 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem34 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem35 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem36 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem55 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem56 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem57 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem58 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem59 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem60 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem61 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem62 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem63 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem64 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem65 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem66 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem67 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem68 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem69 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem70 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem71 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem72 = new MaterialSkin.MaterialListBoxItem(); this.materialCheckbox3 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialCheckbox1 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialTabControl1 = new MaterialSkin.Controls.MaterialTabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); - this.materialComboBox7 = new MaterialSkin.Controls.MaterialComboBox(); - this.materialComboBox8 = new MaterialSkin.Controls.MaterialComboBox(); this.materialButton25 = new MaterialSkin.Controls.MaterialButton(); this.materialButton6 = new MaterialSkin.Controls.MaterialButton(); this.materialLabel57 = new MaterialSkin.Controls.MaterialLabel(); @@ -186,9 +184,9 @@ private void InitializeComponent() this.materialLabel48 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel47 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel46 = new MaterialSkin.Controls.MaterialLabel(); - this.materialListBox3 = new MaterialSkin.Controls.MaterialListBox(); - this.materialListBox2 = new MaterialSkin.Controls.MaterialListBox(); - this.materialListBox1 = new MaterialSkin.Controls.MaterialListBox(); + this.materialListBox3 = new MaterialSkin.Controls.MaterialListBox(RightToLeft.Yes); + this.materialListBox2 = new MaterialSkin.Controls.MaterialListBox(RightToLeft.Yes); + this.materialListBox1 = new MaterialSkin.Controls.MaterialListBox(RightToLeft.Yes); this.tabPage11 = new System.Windows.Forms.TabPage(); this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.materialExpansionPanel1 = new MaterialSkin.Controls.MaterialExpansionPanel(); @@ -310,8 +308,6 @@ private void InitializeComponent() // tabPage1 // this.tabPage1.BackColor = System.Drawing.Color.White; - this.tabPage1.Controls.Add(this.materialComboBox7); - this.tabPage1.Controls.Add(this.materialComboBox8); this.tabPage1.Controls.Add(this.materialButton25); this.tabPage1.Controls.Add(this.materialButton6); this.tabPage1.Controls.Add(this.materialLabel57); @@ -337,134 +333,6 @@ private void InitializeComponent() this.tabPage1.Text = "خانه"; this.tabPage1.Click += new System.EventHandler(this.tabPage1_Click); // - // materialComboBox7 - // - this.materialComboBox7.AutoResize = false; - this.materialComboBox7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.materialComboBox7.Depth = 0; - this.materialComboBox7.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; - this.materialComboBox7.DropDownHeight = 174; - this.materialComboBox7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.materialComboBox7.DropDownWidth = 121; - this.materialComboBox7.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialComboBox7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialComboBox7.FormattingEnabled = true; - this.materialComboBox7.Hint = "رنگ اولیه"; - this.materialComboBox7.IntegralHeight = false; - this.materialComboBox7.ItemHeight = 43; - this.materialComboBox7.Items.AddRange(new object[] { - "طولانی", - "فهرست کنید", - "چه زمانی", - "زندگی", - "می دهد", - "شما", - "لیمو،", - "نکن", - "ساختن", - "لیموناد!", - "بسازید", - "زندگی", - "گرفتن", - "را", - "لیمو", - "بازگشت!", - "گرفتن", - "دیوانه!", - "من این کار را نمی کنم", - "خواستن", - "شما", - "لعنتی", - "لیمو؛", - "چی", - "من هستم", - "فرض می شود", - "انجام دادن", - "با", - "اینها؟", - "تقاضا", - "دیدن", - "زندگی", - "مدیر!", - "بسازید", - "زندگی", - "غم و اندوه", - "را", - "روز", - "فکر کرد", - "آن می تواند", - "دادن", - "غار", - "جانسون", - "لیمو!", - "آیا تو", - "دانستن", - "سازمان بهداشت جهانی", - "من هستم؟", - "من هستم", - "را", - "مرد", - "کیست", - "میخوام", - "سوختن", - "شما", - "خانه", - "پایین...", - "با", - "لیمو!", - "من هستم", - "میخوام", - "من را دریافت کنید", - "مهندسان به", - "اختراع الف", - "قابل احتراق", - "لیمو", - "که", - "می سوزد", - "شما", - "خانه", - "پایین!"}); - this.materialComboBox7.Location = new System.Drawing.Point(317, 264); - this.materialComboBox7.MaxDropDownItems = 4; - this.materialComboBox7.MouseState = MaterialSkin.MouseState.OUT; - this.materialComboBox7.Name = "materialComboBox7"; - this.materialComboBox7.RightToLeft = System.Windows.Forms.RightToLeft.Yes; - this.materialComboBox7.Size = new System.Drawing.Size(190, 49); - this.materialComboBox7.StartIndex = 0; - this.materialComboBox7.TabIndex = 80; - this.materialComboBox7.UseAccent = false; - // - // materialComboBox8 - // - this.materialComboBox8.AutoResize = false; - this.materialComboBox8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(237)))), ((int)(((byte)(237)))), ((int)(((byte)(237))))); - this.materialComboBox8.Depth = 0; - this.materialComboBox8.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; - this.materialComboBox8.DropDownHeight = 174; - this.materialComboBox8.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.materialComboBox8.DropDownWidth = 121; - this.materialComboBox8.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.materialComboBox8.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F); - this.materialComboBox8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialComboBox8.FormattingEnabled = true; - this.materialComboBox8.Hint = "ComboBox hints!"; - this.materialComboBox8.IntegralHeight = false; - this.materialComboBox8.ItemHeight = 43; - this.materialComboBox8.Items.AddRange(new object[] { - "آیتم ۱", - "آیتم ۲", - "آیتم ۳", - "آیتم ۴", - "مورد بلندی که در اینجا جا نمی شود"}); - this.materialComboBox8.Location = new System.Drawing.Point(317, 209); - this.materialComboBox8.MaxDropDownItems = 4; - this.materialComboBox8.MouseState = MaterialSkin.MouseState.OUT; - this.materialComboBox8.Name = "materialComboBox8"; - this.materialComboBox8.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.materialComboBox8.Size = new System.Drawing.Size(190, 49); - this.materialComboBox8.StartIndex = 0; - this.materialComboBox8.TabIndex = 79; - // // materialButton25 // this.materialButton25.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; @@ -559,6 +427,7 @@ private void InitializeComponent() this.materialListBoxFormStyle.Location = new System.Drawing.Point(45, 103); this.materialListBoxFormStyle.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBoxFormStyle.Name = "materialListBoxFormStyle"; + this.materialListBoxFormStyle.RightToLeft = System.Windows.Forms.RightToLeft.No; this.materialListBoxFormStyle.SelectedIndex = -1; this.materialListBoxFormStyle.SelectedItem = null; this.materialListBoxFormStyle.Size = new System.Drawing.Size(225, 258); @@ -816,7 +685,7 @@ private void InitializeComponent() this.materialButton23.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton23.Size = new System.Drawing.Size(168, 36); this.materialButton23.TabIndex = 7; - this.materialButton23.Text = "CONT - ICON"; + this.materialButton23.Text = "تو پر - آیکون"; this.materialButton23.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.materialButton23.UseAccentColor = false; this.materialButton23.UseVisualStyleBackColor = true; @@ -827,13 +696,13 @@ private void InitializeComponent() this.materialLabel37.Depth = 0; this.materialLabel37.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel37.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel37.Location = new System.Drawing.Point(649, 183); + this.materialLabel37.Location = new System.Drawing.Point(645, 183); this.materialLabel37.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel37.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel37.Name = "materialLabel37"; - this.materialLabel37.Size = new System.Drawing.Size(53, 17); + this.materialLabel37.Size = new System.Drawing.Size(57, 17); this.materialLabel37.TabIndex = 63; - this.materialLabel37.Text = "طرح کلی"; + this.materialLabel37.Text = "حاشیه‌دار"; // // materialLabel36 // @@ -841,13 +710,13 @@ private void InitializeComponent() this.materialLabel36.Depth = 0; this.materialLabel36.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel36.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel36.Location = new System.Drawing.Point(385, 183); + this.materialLabel36.Location = new System.Drawing.Point(420, 183); this.materialLabel36.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.materialLabel36.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel36.Name = "materialLabel36"; - this.materialLabel36.Size = new System.Drawing.Size(67, 17); + this.materialLabel36.Size = new System.Drawing.Size(31, 17); this.materialLabel36.TabIndex = 62; - this.materialLabel36.Text = "احاطه شده"; + this.materialLabel36.Text = "تو پر"; // // materialLabel35 // @@ -903,7 +772,7 @@ private void InitializeComponent() this.materialLabel25.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialLabel25.Size = new System.Drawing.Size(145, 51); this.materialLabel25.TabIndex = 58; - this.materialLabel25.Text = "دکمه‌ها!"; + this.materialLabel25.Text = "!دکمه‌ها"; // // materialButton24 // @@ -918,9 +787,10 @@ private void InitializeComponent() this.materialButton24.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton24.Name = "materialButton24"; this.materialButton24.NoAccentTextColor = System.Drawing.Color.Empty; + this.materialButton24.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialButton24.Size = new System.Drawing.Size(189, 36); this.materialButton24.TabIndex = 13; - this.materialButton24.Text = "OUTLINE - ICON"; + this.materialButton24.Text = "حاشیه‌دار - آیکون"; this.materialButton24.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; this.materialButton24.UseAccentColor = false; this.materialButton24.UseVisualStyleBackColor = true; @@ -940,7 +810,7 @@ private void InitializeComponent() this.materialButton22.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton22.Size = new System.Drawing.Size(174, 36); this.materialButton22.TabIndex = 1; - this.materialButton22.Text = "TEXT - ICON"; + this.materialButton22.Text = "متنی - آیکون"; this.materialButton22.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; this.materialButton22.UseAccentColor = false; this.materialButton22.UseVisualStyleBackColor = true; @@ -974,7 +844,7 @@ private void InitializeComponent() this.materialButton19.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton19.Size = new System.Drawing.Size(189, 36); this.materialButton19.TabIndex = 16; - this.materialButton19.Text = "OUTLINE - LOW - NORMAL"; + this.materialButton19.Text = "حاشیه‌دار - بی‌رنگ - معمولی"; this.materialButton19.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; this.materialButton19.UseAccentColor = false; this.materialButton19.UseVisualStyleBackColor = true; @@ -994,7 +864,7 @@ private void InitializeComponent() this.materialButton20.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton20.Size = new System.Drawing.Size(174, 36); this.materialButton20.TabIndex = 4; - this.materialButton20.Text = "TEXT - LOW - NORMAL"; + this.materialButton20.Text = "متنی - بی‌رنگ - معمولی"; this.materialButton20.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; this.materialButton20.UseAccentColor = false; this.materialButton20.UseVisualStyleBackColor = true; @@ -1014,7 +884,7 @@ private void InitializeComponent() this.materialButton21.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton21.Size = new System.Drawing.Size(168, 36); this.materialButton21.TabIndex = 10; - this.materialButton21.Text = "CONT - LOW - NORMAL"; + this.materialButton21.Text = "تو پر - بی‌رنگ - معمولی"; this.materialButton21.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.materialButton21.UseAccentColor = false; this.materialButton21.UseVisualStyleBackColor = true; @@ -1034,7 +904,7 @@ private void InitializeComponent() this.materialButton5.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton5.Size = new System.Drawing.Size(189, 36); this.materialButton5.TabIndex = 14; - this.materialButton5.Text = "OUTLINE - HIGH - NORMAL"; + this.materialButton5.Text = "حاشیه‌دار - رنگی - معمولی"; this.materialButton5.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; this.materialButton5.UseAccentColor = false; this.materialButton5.UseVisualStyleBackColor = true; @@ -1054,7 +924,7 @@ private void InitializeComponent() this.materialButton8.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton8.Size = new System.Drawing.Size(174, 36); this.materialButton8.TabIndex = 2; - this.materialButton8.Text = "TEXT - HIGH - NORMAL"; + this.materialButton8.Text = "متنی - رنگی - معمولی"; this.materialButton8.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; this.materialButton8.UseAccentColor = false; this.materialButton8.UseVisualStyleBackColor = true; @@ -1074,7 +944,7 @@ private void InitializeComponent() this.materialButton9.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton9.Size = new System.Drawing.Size(168, 36); this.materialButton9.TabIndex = 8; - this.materialButton9.Text = "CONT - HIGH - NORMAL"; + this.materialButton9.Text = "تو پر - رنگی - معمولی"; this.materialButton9.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.materialButton9.UseAccentColor = false; this.materialButton9.UseVisualStyleBackColor = true; @@ -1095,7 +965,7 @@ private void InitializeComponent() this.materialButton18.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton18.Size = new System.Drawing.Size(189, 36); this.materialButton18.TabIndex = 18; - this.materialButton18.Text = "OUTLINE - DISABLED"; + this.materialButton18.Text = "حاشیه‌دار - غیرفعال"; this.materialButton18.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; this.materialButton18.UseAccentColor = false; this.materialButton18.UseVisualStyleBackColor = true; @@ -1115,7 +985,7 @@ private void InitializeComponent() this.materialButton17.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton17.Size = new System.Drawing.Size(189, 36); this.materialButton17.TabIndex = 17; - this.materialButton17.Text = "OUTLINE - LOW - ACCENT"; + this.materialButton17.Text = "حاشیه‌دار - بی‌رنگ - رنگ مد"; this.materialButton17.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; this.materialButton17.UseAccentColor = true; this.materialButton17.UseVisualStyleBackColor = true; @@ -1135,7 +1005,7 @@ private void InitializeComponent() this.materialButton16.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton16.Size = new System.Drawing.Size(189, 36); this.materialButton16.TabIndex = 15; - this.materialButton16.Text = "OUTLINE - HIGH - ACCENT"; + this.materialButton16.Text = "حاشیه‌دار - رنگی - رنگ مد"; this.materialButton16.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; this.materialButton16.UseAccentColor = true; this.materialButton16.UseVisualStyleBackColor = true; @@ -1155,7 +1025,7 @@ private void InitializeComponent() this.materialButton15.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton15.Size = new System.Drawing.Size(174, 36); this.materialButton15.TabIndex = 5; - this.materialButton15.Text = "TEXT - LOW - ACCENT"; + this.materialButton15.Text = "متنی - بی‌رنگ - رنگ مد"; this.materialButton15.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; this.materialButton15.UseAccentColor = true; this.materialButton15.UseVisualStyleBackColor = true; @@ -1175,7 +1045,7 @@ private void InitializeComponent() this.materialButton14.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton14.Size = new System.Drawing.Size(174, 36); this.materialButton14.TabIndex = 3; - this.materialButton14.Text = "TEXT - HIGH - ACCENT"; + this.materialButton14.Text = "متنی - رنگی - رنگ مد"; this.materialButton14.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; this.materialButton14.UseAccentColor = true; this.materialButton14.UseVisualStyleBackColor = true; @@ -1196,7 +1066,7 @@ private void InitializeComponent() this.materialButton13.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton13.Size = new System.Drawing.Size(168, 36); this.materialButton13.TabIndex = 12; - this.materialButton13.Text = "CONT - DISABLED"; + this.materialButton13.Text = "تو پر - غیرفعال"; this.materialButton13.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.materialButton13.UseAccentColor = false; this.materialButton13.UseVisualStyleBackColor = true; @@ -1217,7 +1087,7 @@ private void InitializeComponent() this.materialButton12.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton12.Size = new System.Drawing.Size(174, 36); this.materialButton12.TabIndex = 6; - this.materialButton12.Text = "TEXT - DISABLED"; + this.materialButton12.Text = "متنی - غیرفعال"; this.materialButton12.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; this.materialButton12.UseAccentColor = false; this.materialButton12.UseVisualStyleBackColor = true; @@ -1237,7 +1107,7 @@ private void InitializeComponent() this.materialButton11.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton11.Size = new System.Drawing.Size(168, 36); this.materialButton11.TabIndex = 11; - this.materialButton11.Text = "CONT - LOW - ACCENT"; + this.materialButton11.Text = "تو پر - بی‌رنگ - رنگ مد"; this.materialButton11.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.materialButton11.UseAccentColor = true; this.materialButton11.UseVisualStyleBackColor = true; @@ -1257,7 +1127,7 @@ private void InitializeComponent() this.materialButton10.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton10.Size = new System.Drawing.Size(168, 36); this.materialButton10.TabIndex = 9; - this.materialButton10.Text = "CONT - HIGH - ACCENT"; + this.materialButton10.Text = "تو پر - رنگی - رنگ مد"; this.materialButton10.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.materialButton10.UseAccentColor = true; this.materialButton10.UseVisualStyleBackColor = true; @@ -1954,7 +1824,7 @@ private void InitializeComponent() this.materialMaskedTextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialMaskedTextBox1.HidePromptOnLeave = true; this.materialMaskedTextBox1.HideSelection = false; - this.materialMaskedTextBox1.Hint = "Phone number mask"; + this.materialMaskedTextBox1.Hint = "ماسک شماره تلفن"; this.materialMaskedTextBox1.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Default; this.materialMaskedTextBox1.LeadingIcon = null; this.materialMaskedTextBox1.Location = new System.Drawing.Point(31, 436); @@ -1969,7 +1839,7 @@ private void InitializeComponent() this.materialMaskedTextBox1.RejectInputOnFirstFailure = true; this.materialMaskedTextBox1.ResetOnPrompt = true; this.materialMaskedTextBox1.ResetOnSpace = true; - this.materialMaskedTextBox1.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialMaskedTextBox1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialMaskedTextBox1.SelectedText = ""; this.materialMaskedTextBox1.SelectionLength = 0; this.materialMaskedTextBox1.SelectionStart = 15; @@ -2120,7 +1990,7 @@ private void InitializeComponent() this.materialTextBox21.Depth = 0; this.materialTextBox21.ErrorMessage = "Invalid entry"; this.materialTextBox21.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialTextBox21.HelperText = "Helper Text"; + this.materialTextBox21.HelperText = "متن کمکی"; this.materialTextBox21.HideSelection = true; this.materialTextBox21.LeadingIcon = null; this.materialTextBox21.Location = new System.Drawing.Point(31, 113); @@ -2130,7 +2000,7 @@ private void InitializeComponent() this.materialTextBox21.PasswordChar = '\0'; this.materialTextBox21.PrefixSuffixText = "$"; this.materialTextBox21.ReadOnly = false; - this.materialTextBox21.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox21.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialTextBox21.SelectedText = ""; this.materialTextBox21.SelectionLength = 0; this.materialTextBox21.SelectionStart = 0; @@ -2139,7 +2009,7 @@ private void InitializeComponent() this.materialTextBox21.Size = new System.Drawing.Size(384, 64); this.materialTextBox21.TabIndex = 71; this.materialTextBox21.TabStop = false; - this.materialTextBox21.Text = "MaterialTextBox2"; + this.materialTextBox21.Text = "کادر متنی متریال"; this.materialTextBox21.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.materialTextBox21.TrailingIcon = null; this.materialTextBox21.UseSystemPasswordChar = false; @@ -2154,13 +2024,14 @@ private void InitializeComponent() this.materialMultiLineTextBox21.Cursor = System.Windows.Forms.Cursors.IBeam; this.materialMultiLineTextBox21.Depth = 0; this.materialMultiLineTextBox21.HideSelection = true; - this.materialMultiLineTextBox21.Hint = "MaterialMultiLineTextBox2"; + this.materialMultiLineTextBox21.Hint = "کادر متنی چند خطی متریال"; this.materialMultiLineTextBox21.Location = new System.Drawing.Point(530, 384); this.materialMultiLineTextBox21.MaxLength = 2147483647; this.materialMultiLineTextBox21.MouseState = MaterialSkin.MouseState.OUT; this.materialMultiLineTextBox21.Name = "materialMultiLineTextBox21"; this.materialMultiLineTextBox21.PasswordChar = '\0'; this.materialMultiLineTextBox21.ReadOnly = false; + this.materialMultiLineTextBox21.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialMultiLineTextBox21.ScrollBars = System.Windows.Forms.ScrollBars.None; this.materialMultiLineTextBox21.SelectedText = ""; this.materialMultiLineTextBox21.SelectionLength = 0; @@ -2184,7 +2055,7 @@ private void InitializeComponent() this.materialTextBox5.Enabled = false; this.materialTextBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); this.materialTextBox5.HideSelection = true; - this.materialTextBox5.Hint = "This is Disabled"; + this.materialTextBox5.Hint = "این غیرفعال است"; this.materialTextBox5.LeadingIcon = null; this.materialTextBox5.Location = new System.Drawing.Point(530, 169); this.materialTextBox5.MaxLength = 50; @@ -2193,7 +2064,7 @@ private void InitializeComponent() this.materialTextBox5.PasswordChar = '\0'; this.materialTextBox5.PrefixSuffixText = null; this.materialTextBox5.ReadOnly = false; - this.materialTextBox5.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox5.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialTextBox5.SelectedText = ""; this.materialTextBox5.SelectionLength = 0; this.materialTextBox5.SelectionStart = 0; @@ -2201,7 +2072,7 @@ private void InitializeComponent() this.materialTextBox5.Size = new System.Drawing.Size(209, 48); this.materialTextBox5.TabIndex = 69; this.materialTextBox5.TabStop = false; - this.materialTextBox5.Text = "But with value"; + this.materialTextBox5.Text = "با مقدار پیش فرض"; this.materialTextBox5.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.materialTextBox5.TrailingIcon = null; this.materialTextBox5.UseSystemPasswordChar = false; @@ -2218,7 +2089,7 @@ private void InitializeComponent() this.materialTextBox4.Enabled = false; this.materialTextBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialTextBox4.HideSelection = true; - this.materialTextBox4.Hint = "This is Disabled"; + this.materialTextBox4.Hint = "این غیرفعال است"; this.materialTextBox4.LeadingIcon = null; this.materialTextBox4.Location = new System.Drawing.Point(745, 169); this.materialTextBox4.MaxLength = 50; @@ -2227,7 +2098,7 @@ private void InitializeComponent() this.materialTextBox4.PasswordChar = '\0'; this.materialTextBox4.PrefixSuffixText = null; this.materialTextBox4.ReadOnly = false; - this.materialTextBox4.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox4.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialTextBox4.SelectedText = ""; this.materialTextBox4.SelectionLength = 0; this.materialTextBox4.SelectionStart = 0; @@ -2250,7 +2121,7 @@ private void InitializeComponent() this.materialTextBox3.Depth = 0; this.materialTextBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialTextBox3.HideSelection = true; - this.materialTextBox3.Hint = "This field has UseTallSize = false"; + this.materialTextBox3.Hint = "این فیلد دارای UseTallSize = false است"; this.materialTextBox3.LeadingIcon = null; this.materialTextBox3.Location = new System.Drawing.Point(530, 337); this.materialTextBox3.MaxLength = 50; @@ -2259,7 +2130,7 @@ private void InitializeComponent() this.materialTextBox3.PasswordChar = '\0'; this.materialTextBox3.PrefixSuffixText = null; this.materialTextBox3.ReadOnly = false; - this.materialTextBox3.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox3.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialTextBox3.SelectedText = ""; this.materialTextBox3.SelectionLength = 0; this.materialTextBox3.SelectionStart = 0; @@ -2333,7 +2204,7 @@ private void InitializeComponent() this.materialTextBox2.PasswordChar = '●'; this.materialTextBox2.PrefixSuffixText = null; this.materialTextBox2.ReadOnly = false; - this.materialTextBox2.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox2.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialTextBox2.SelectedText = ""; this.materialTextBox2.SelectionLength = 0; this.materialTextBox2.SelectionStart = 0; @@ -2365,7 +2236,7 @@ private void InitializeComponent() this.materialTextBox1.PasswordChar = '\0'; this.materialTextBox1.PrefixSuffixText = null; this.materialTextBox1.ReadOnly = false; - this.materialTextBox1.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialTextBox1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialTextBox1.SelectedText = ""; this.materialTextBox1.SelectionLength = 0; this.materialTextBox1.SelectionStart = 0; @@ -2389,7 +2260,7 @@ private void InitializeComponent() this.materialSingleLineTextField2.Depth = 0; this.materialSingleLineTextField2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialSingleLineTextField2.HideSelection = true; - this.materialSingleLineTextField2.Hint = "Type here"; + this.materialSingleLineTextField2.Hint = "اینجا تایپ کنید"; this.materialSingleLineTextField2.LeadingIcon = null; this.materialSingleLineTextField2.Location = new System.Drawing.Point(530, 225); this.materialSingleLineTextField2.MaxLength = 50; @@ -2398,7 +2269,7 @@ private void InitializeComponent() this.materialSingleLineTextField2.PasswordChar = '\0'; this.materialSingleLineTextField2.PrefixSuffixText = null; this.materialSingleLineTextField2.ReadOnly = false; - this.materialSingleLineTextField2.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialSingleLineTextField2.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialSingleLineTextField2.SelectedText = ""; this.materialSingleLineTextField2.SelectionLength = 0; this.materialSingleLineTextField2.SelectionStart = 0; @@ -2427,15 +2298,17 @@ private void InitializeComponent() // materialLabel39 // this.materialLabel39.Depth = 0; - this.materialLabel39.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialLabel39.Location = new System.Drawing.Point(22, 76); + this.materialLabel39.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel39.Location = new System.Drawing.Point(251, 76); this.materialLabel39.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel39.Name = "materialLabel39"; - this.materialLabel39.Size = new System.Drawing.Size(647, 70); + this.materialLabel39.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialLabel39.Size = new System.Drawing.Size(671, 70); this.materialLabel39.TabIndex = 64; - this.materialLabel39.Text = "This control could be better, but it\'s good enough for now - PRs are welcome! :)\r" + - "\nRecommended: AutoSizeTable = true;\r\nand then configure with Maximum/Minimum Siz" + - "e\r\n"; + this.materialLabel39.Text = "این کنترل می تواند بهتر باشد، اما در حال حاضر به اندازه کافی خوب است - روابط عموم" + + "ی استقبال می شود! :)\r\nتوصیه می شود: AutoSizeTable = true;\r\nو سپس با Maximum/Mini" + + "mum Size پیکربندی کنید"; + this.materialLabel39.TextAlign = System.Drawing.ContentAlignment.TopRight; // // materialLabel28 // @@ -2443,12 +2316,12 @@ private void InitializeComponent() this.materialLabel28.Depth = 0; this.materialLabel28.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel28.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel28.Location = new System.Drawing.Point(28, 18); + this.materialLabel28.Location = new System.Drawing.Point(830, 16); this.materialLabel28.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel28.Name = "materialLabel28"; - this.materialLabel28.Size = new System.Drawing.Size(107, 51); + this.materialLabel28.Size = new System.Drawing.Size(99, 51); this.materialLabel28.TabIndex = 63; - this.materialLabel28.Text = "Table"; + this.materialLabel28.Text = "جدول"; // // materialListView1 // @@ -2465,12 +2338,14 @@ private void InitializeComponent() this.materialListView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialListView1.FullRowSelect = true; this.materialListView1.HideSelection = false; - this.materialListView1.Location = new System.Drawing.Point(25, 149); + this.materialListView1.Location = new System.Drawing.Point(372, 149); this.materialListView1.MinimumSize = new System.Drawing.Size(200, 100); this.materialListView1.MouseLocation = new System.Drawing.Point(-1, -1); this.materialListView1.MouseState = MaterialSkin.MouseState.OUT; this.materialListView1.Name = "materialListView1"; this.materialListView1.OwnerDraw = true; + this.materialListView1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialListView1.RightToLeftLayout = true; this.materialListView1.Scrollable = false; this.materialListView1.Size = new System.Drawing.Size(547, 100); this.materialListView1.TabIndex = 0; @@ -2479,22 +2354,25 @@ private void InitializeComponent() // // columnHeader1 // - this.columnHeader1.Text = "Dessert (100g serving)"; + this.columnHeader1.Text = "دسر (100 گرم)"; this.columnHeader1.Width = 200; // // columnHeader2 // - this.columnHeader2.Text = "Calories"; + this.columnHeader2.Text = "کالری"; + this.columnHeader2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; this.columnHeader2.Width = 99; // // columnHeader3 // - this.columnHeader3.Text = "Fat (g)"; + this.columnHeader3.Text = "چربی (گرم)"; + this.columnHeader3.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; this.columnHeader3.Width = 94; // // columnHeader4 // - this.columnHeader4.Text = "Protein (g)"; + this.columnHeader4.Text = "پروتئین (گرم)"; + this.columnHeader4.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; this.columnHeader4.Width = 154; // // tabPage5 @@ -2659,7 +2537,7 @@ private void InitializeComponent() // this.materialDivider3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialDivider3.Depth = 0; - this.materialDivider3.Location = new System.Drawing.Point(40, 417); + this.materialDivider3.Location = new System.Drawing.Point(431, 415); this.materialDivider3.MouseState = MaterialSkin.MouseState.HOVER; this.materialDivider3.Name = "materialDivider3"; this.materialDivider3.Size = new System.Drawing.Size(490, 1); @@ -2670,7 +2548,7 @@ private void InitializeComponent() // this.materialDivider2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialDivider2.Depth = 0; - this.materialDivider2.Location = new System.Drawing.Point(40, 128); + this.materialDivider2.Location = new System.Drawing.Point(431, 126); this.materialDivider2.MouseState = MaterialSkin.MouseState.HOVER; this.materialDivider2.Name = "materialDivider2"; this.materialDivider2.Size = new System.Drawing.Size(1, 290); @@ -2681,7 +2559,7 @@ private void InitializeComponent() // this.materialDivider1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialDivider1.Depth = 0; - this.materialDivider1.Location = new System.Drawing.Point(530, 128); + this.materialDivider1.Location = new System.Drawing.Point(921, 126); this.materialDivider1.MouseState = MaterialSkin.MouseState.HOVER; this.materialDivider1.Name = "materialDivider1"; this.materialDivider1.Size = new System.Drawing.Size(1, 290); @@ -2694,12 +2572,12 @@ private void InitializeComponent() this.materialLabel7.Depth = 0; this.materialLabel7.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel7.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel7.Location = new System.Drawing.Point(34, 16); + this.materialLabel7.Location = new System.Drawing.Point(817, 16); this.materialLabel7.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel7.Name = "materialLabel7"; - this.materialLabel7.Size = new System.Drawing.Size(96, 51); + this.materialLabel7.Size = new System.Drawing.Size(102, 51); this.materialLabel7.TabIndex = 67; - this.materialLabel7.Text = "Tabs"; + this.materialLabel7.Text = "تب‌ها"; // // materialCard1 // @@ -2709,7 +2587,7 @@ private void InitializeComponent() this.materialCard1.Controls.Add(this.materialLabel38); this.materialCard1.Depth = 0; this.materialCard1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialCard1.Location = new System.Drawing.Point(572, 90); + this.materialCard1.Location = new System.Drawing.Point(40, 90); this.materialCard1.Margin = new System.Windows.Forms.Padding(7); this.materialCard1.MouseState = MaterialSkin.MouseState.HOVER; this.materialCard1.Name = "materialCard1"; @@ -2725,14 +2603,14 @@ private void InitializeComponent() this.materialButton1.Depth = 0; this.materialButton1.HighEmphasis = true; this.materialButton1.Icon = null; - this.materialButton1.Location = new System.Drawing.Point(220, 131); + this.materialButton1.Location = new System.Drawing.Point(18, 131); this.materialButton1.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialButton1.MouseState = MaterialSkin.MouseState.HOVER; this.materialButton1.Name = "materialButton1"; this.materialButton1.NoAccentTextColor = System.Drawing.Color.Empty; this.materialButton1.Size = new System.Drawing.Size(64, 36); this.materialButton1.TabIndex = 1; - this.materialButton1.Text = "Nice!"; + this.materialButton1.Text = "!خب"; this.materialButton1.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text; this.materialButton1.UseAccentColor = false; this.materialButton1.UseVisualStyleBackColor = true; @@ -2744,12 +2622,12 @@ private void InitializeComponent() this.materialLabel4.Font = new System.Drawing.Font("Roboto Medium", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel4.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; this.materialLabel4.HighEmphasis = true; - this.materialLabel4.Location = new System.Drawing.Point(17, 14); + this.materialLabel4.Location = new System.Drawing.Point(45, 14); this.materialLabel4.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel4.Name = "materialLabel4"; - this.materialLabel4.Size = new System.Drawing.Size(212, 22); + this.materialLabel4.Size = new System.Drawing.Size(243, 22); this.materialLabel4.TabIndex = 0; - this.materialLabel4.Text = "Cards are also supported!"; + this.materialLabel4.Text = "!کارت ها نیز پشتیبانی می شوند"; // // materialLabel38 // @@ -2757,24 +2635,28 @@ private void InitializeComponent() | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.materialLabel38.Depth = 0; - this.materialLabel38.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel38.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel38.Location = new System.Drawing.Point(17, 52); this.materialLabel38.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel38.Name = "materialLabel38"; + this.materialLabel38.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialLabel38.Size = new System.Drawing.Size(267, 73); this.materialLabel38.TabIndex = 2; - this.materialLabel38.Text = "These are simple containers, but with a very nice shadow under them"; + this.materialLabel38.Text = "این ظروف ساده هستند، اما با سایه ای بسیار زیبا در زیر آنها"; + this.materialLabel38.TextAlign = System.Drawing.ContentAlignment.TopRight; // // materialTabControl2 // this.materialTabControl2.Controls.Add(this.tabPage8); this.materialTabControl2.Controls.Add(this.tabPage9); this.materialTabControl2.Depth = 0; - this.materialTabControl2.Location = new System.Drawing.Point(40, 128); + this.materialTabControl2.Location = new System.Drawing.Point(431, 125); this.materialTabControl2.Margin = new System.Windows.Forms.Padding(0); this.materialTabControl2.MouseState = MaterialSkin.MouseState.HOVER; this.materialTabControl2.Multiline = true; this.materialTabControl2.Name = "materialTabControl2"; + this.materialTabControl2.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialTabControl2.RightToLeftLayout = true; this.materialTabControl2.SelectedIndex = 0; this.materialTabControl2.Size = new System.Drawing.Size(491, 278); this.materialTabControl2.TabIndex = 23; @@ -2789,7 +2671,7 @@ private void InitializeComponent() this.tabPage8.Padding = new System.Windows.Forms.Padding(3); this.tabPage8.Size = new System.Drawing.Size(483, 252); this.tabPage8.TabIndex = 0; - this.tabPage8.Text = "FirSt"; + this.tabPage8.Text = "اولین"; // // materialLabel45 // @@ -2798,12 +2680,12 @@ private void InitializeComponent() this.materialLabel45.Font = new System.Drawing.Font("Roboto Medium", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel45.FontType = MaterialSkin.MaterialSkinManager.fontType.H6; this.materialLabel45.HighEmphasis = true; - this.materialLabel45.Location = new System.Drawing.Point(15, 14); + this.materialLabel45.Location = new System.Drawing.Point(254, 15); this.materialLabel45.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel45.Name = "materialLabel45"; - this.materialLabel45.Size = new System.Drawing.Size(160, 22); + this.materialLabel45.Size = new System.Drawing.Size(208, 22); this.materialLabel45.TabIndex = 4; - this.materialLabel45.Text = "Tabs are supported"; + this.materialLabel45.Text = "زبانه ها پشتیبانی می شوند"; // // materialLabel44 // @@ -2817,8 +2699,9 @@ private void InitializeComponent() this.materialLabel44.Name = "materialLabel44"; this.materialLabel44.Size = new System.Drawing.Size(446, 179); this.materialLabel44.TabIndex = 3; - this.materialLabel44.Text = "However, in accordance with the Material Design principles, tabs should NOT be us" + - "ed together with the Drawer menu, chose one or the other :)\r\n\r\nTry \'em!"; + this.materialLabel44.Text = "با این حال، مطابق با اصول طراحی متریال، تب ها نباید همراه با منوی کشو استفاده شون" + + "د، یکی یا دیگری را انتخاب کنید :)\r\n\r\nآنها را امتحان کنید"; + this.materialLabel44.TextAlign = System.Drawing.ContentAlignment.TopRight; // // tabPage9 // @@ -2829,7 +2712,7 @@ private void InitializeComponent() this.tabPage9.Padding = new System.Windows.Forms.Padding(3); this.tabPage9.Size = new System.Drawing.Size(483, 252); this.tabPage9.TabIndex = 1; - this.tabPage9.Text = "seConD"; + this.tabPage9.Text = "دومین"; // // materialLabel10 // @@ -2839,12 +2722,12 @@ private void InitializeComponent() this.materialLabel10.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; this.materialLabel10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialLabel10.HighEmphasis = true; - this.materialLabel10.Location = new System.Drawing.Point(6, 7); + this.materialLabel10.Location = new System.Drawing.Point(79, 14); this.materialLabel10.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel10.Name = "materialLabel10"; - this.materialLabel10.Size = new System.Drawing.Size(431, 51); + this.materialLabel10.Size = new System.Drawing.Size(389, 51); this.materialLabel10.TabIndex = 1; - this.materialLabel10.Text = "Everything is possible!"; + this.materialLabel10.Text = "!همه چیز ممکن است"; this.materialLabel10.UseAccent = true; // // materialTabSelector1 @@ -2853,10 +2736,11 @@ private void InitializeComponent() this.materialTabSelector1.CharacterCasing = MaterialSkin.Controls.MaterialTabSelector.CustomCharacterCasing.Proper; this.materialTabSelector1.Depth = 0; this.materialTabSelector1.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialTabSelector1.Location = new System.Drawing.Point(40, 90); + this.materialTabSelector1.Location = new System.Drawing.Point(431, 86); this.materialTabSelector1.Margin = new System.Windows.Forms.Padding(0); this.materialTabSelector1.MouseState = MaterialSkin.MouseState.HOVER; this.materialTabSelector1.Name = "materialTabSelector1"; + this.materialTabSelector1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialTabSelector1.Size = new System.Drawing.Size(491, 38); this.materialTabSelector1.TabIndex = 24; this.materialTabSelector1.Text = "materialTabSelector1"; @@ -2867,12 +2751,12 @@ private void InitializeComponent() this.materialLabel30.Depth = 0; this.materialLabel30.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel30.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel30.Location = new System.Drawing.Point(562, 16); + this.materialLabel30.Location = new System.Drawing.Point(211, 16); this.materialLabel30.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel30.Name = "materialLabel30"; - this.materialLabel30.Size = new System.Drawing.Size(113, 51); + this.materialLabel30.Size = new System.Drawing.Size(130, 51); this.materialLabel30.TabIndex = 65; - this.materialLabel30.Text = "Cards"; + this.materialLabel30.Text = "کارت‌ها"; // // tabPage10 // @@ -2897,48 +2781,48 @@ private void InitializeComponent() this.materialLabel55.Depth = 0; this.materialLabel55.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel55.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel55.Location = new System.Drawing.Point(28, 18); + this.materialLabel55.Location = new System.Drawing.Point(680, 17); this.materialLabel55.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel55.Name = "materialLabel55"; - this.materialLabel55.Size = new System.Drawing.Size(140, 51); + this.materialLabel55.Size = new System.Drawing.Size(221, 51); this.materialLabel55.TabIndex = 63; - this.materialLabel55.Text = "Listbox"; + this.materialLabel55.Text = "کادر فهرست"; // // materialLabel48 // this.materialLabel48.AutoSize = true; this.materialLabel48.Depth = 0; this.materialLabel48.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialLabel48.Location = new System.Drawing.Point(587, 98); + this.materialLabel48.Location = new System.Drawing.Point(99, 98); this.materialLabel48.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel48.Name = "materialLabel48"; - this.materialLabel48.Size = new System.Drawing.Size(121, 17); + this.materialLabel48.Size = new System.Drawing.Size(135, 17); this.materialLabel48.TabIndex = 3; - this.materialLabel48.Text = "ListBox three lines"; + this.materialLabel48.Text = "کادر فهرست سه خطی"; // // materialLabel47 // this.materialLabel47.AutoSize = true; this.materialLabel47.Depth = 0; this.materialLabel47.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialLabel47.Location = new System.Drawing.Point(314, 98); + this.materialLabel47.Location = new System.Drawing.Point(431, 98); this.materialLabel47.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel47.Name = "materialLabel47"; - this.materialLabel47.Size = new System.Drawing.Size(111, 17); + this.materialLabel47.Size = new System.Drawing.Size(129, 17); this.materialLabel47.TabIndex = 3; - this.materialLabel47.Text = "ListBox two lines"; + this.materialLabel47.Text = "کادر فهرست دو خطی"; // // materialLabel46 // this.materialLabel46.AutoSize = true; this.materialLabel46.Depth = 0; this.materialLabel46.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialLabel46.Location = new System.Drawing.Point(49, 98); + this.materialLabel46.Location = new System.Drawing.Point(759, 98); this.materialLabel46.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel46.Name = "materialLabel46"; - this.materialLabel46.Size = new System.Drawing.Size(117, 17); + this.materialLabel46.Size = new System.Drawing.Size(135, 17); this.materialLabel46.TabIndex = 3; - this.materialLabel46.Text = "ListBox single line"; + this.materialLabel46.Text = "کادر فهرست تک خطی"; // // materialListBox3 // @@ -2946,33 +2830,34 @@ private void InitializeComponent() this.materialListBox3.BorderColor = System.Drawing.Color.LightGray; this.materialListBox3.Depth = 0; this.materialListBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem19.SecondaryText = "A very very long secondary text to display 1 "; - materialListBoxItem19.Tag = null; - materialListBoxItem19.Text = "ListBoxItem1"; - materialListBoxItem20.SecondaryText = "A very very long secondary text to display 2"; - materialListBoxItem20.Tag = null; - materialListBoxItem20.Text = "ListBoxItem2"; - materialListBoxItem21.SecondaryText = "A very very long secondary text to display 3"; - materialListBoxItem21.Tag = null; - materialListBoxItem21.Text = "ListBoxItem3"; - materialListBoxItem22.SecondaryText = "A very very long secondary text to display 4"; - materialListBoxItem22.Tag = null; - materialListBoxItem22.Text = "ListBoxItem4"; - materialListBoxItem23.SecondaryText = "A very very long secondary text to display 5"; - materialListBoxItem23.Tag = null; - materialListBoxItem23.Text = "ListBoxItem5"; - materialListBoxItem24.SecondaryText = "A very very long secondary text to display 6"; - materialListBoxItem24.Tag = null; - materialListBoxItem24.Text = "ListBoxItem6"; - this.materialListBox3.Items.Add(materialListBoxItem19); - this.materialListBox3.Items.Add(materialListBoxItem20); - this.materialListBox3.Items.Add(materialListBoxItem21); - this.materialListBox3.Items.Add(materialListBoxItem22); - this.materialListBox3.Items.Add(materialListBoxItem23); - this.materialListBox3.Items.Add(materialListBoxItem24); - this.materialListBox3.Location = new System.Drawing.Point(579, 132); + materialListBoxItem55.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش 1"; + materialListBoxItem55.Tag = null; + materialListBoxItem55.Text = "فهرست مورد 1"; + materialListBoxItem56.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۲"; + materialListBoxItem56.Tag = null; + materialListBoxItem56.Text = "فهرست مورد ۲"; + materialListBoxItem57.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۳"; + materialListBoxItem57.Tag = null; + materialListBoxItem57.Text = "فهرست مورد ۳"; + materialListBoxItem58.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۴"; + materialListBoxItem58.Tag = null; + materialListBoxItem58.Text = "فهرست مورد ۴"; + materialListBoxItem59.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۵"; + materialListBoxItem59.Tag = null; + materialListBoxItem59.Text = "فهرست مورد ۵"; + materialListBoxItem60.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۶"; + materialListBoxItem60.Tag = null; + materialListBoxItem60.Text = "فهرست مورد ۶"; + this.materialListBox3.Items.Add(materialListBoxItem55); + this.materialListBox3.Items.Add(materialListBoxItem56); + this.materialListBox3.Items.Add(materialListBoxItem57); + this.materialListBox3.Items.Add(materialListBoxItem58); + this.materialListBox3.Items.Add(materialListBoxItem59); + this.materialListBox3.Items.Add(materialListBoxItem60); + this.materialListBox3.Location = new System.Drawing.Point(31, 132); this.materialListBox3.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox3.Name = "materialListBox3"; + this.materialListBox3.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialListBox3.SelectedIndex = -1; this.materialListBox3.SelectedItem = null; this.materialListBox3.Size = new System.Drawing.Size(200, 160); @@ -2985,33 +2870,34 @@ private void InitializeComponent() this.materialListBox2.BorderColor = System.Drawing.Color.LightGray; this.materialListBox2.Depth = 0; this.materialListBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem25.SecondaryText = "Secondary text1"; - materialListBoxItem25.Tag = null; - materialListBoxItem25.Text = "ListBoxItem1"; - materialListBoxItem26.SecondaryText = "Secondary text2"; - materialListBoxItem26.Tag = null; - materialListBoxItem26.Text = "ListBoxItem2"; - materialListBoxItem27.SecondaryText = "Secondary text3"; - materialListBoxItem27.Tag = null; - materialListBoxItem27.Text = "ListBoxItem3"; - materialListBoxItem28.SecondaryText = "Secondary text4"; - materialListBoxItem28.Tag = null; - materialListBoxItem28.Text = "ListBoxItem4"; - materialListBoxItem29.SecondaryText = "Secondary text5"; - materialListBoxItem29.Tag = null; - materialListBoxItem29.Text = "ListBoxItem5"; - materialListBoxItem30.SecondaryText = "Secondary text6"; - materialListBoxItem30.Tag = null; - materialListBoxItem30.Text = "ListBoxItem6"; - this.materialListBox2.Items.Add(materialListBoxItem25); - this.materialListBox2.Items.Add(materialListBoxItem26); - this.materialListBox2.Items.Add(materialListBoxItem27); - this.materialListBox2.Items.Add(materialListBoxItem28); - this.materialListBox2.Items.Add(materialListBoxItem29); - this.materialListBox2.Items.Add(materialListBoxItem30); - this.materialListBox2.Location = new System.Drawing.Point(306, 132); + materialListBoxItem61.SecondaryText = "متن ثانویه ۱"; + materialListBoxItem61.Tag = null; + materialListBoxItem61.Text = "فهرست مورد ۱"; + materialListBoxItem62.SecondaryText = "متن ثانویه ۲"; + materialListBoxItem62.Tag = null; + materialListBoxItem62.Text = "فهرست مورد ۲"; + materialListBoxItem63.SecondaryText = "متن ثانویه ۳"; + materialListBoxItem63.Tag = null; + materialListBoxItem63.Text = "فهرست مورد ۳"; + materialListBoxItem64.SecondaryText = "متن ثانویه ۴"; + materialListBoxItem64.Tag = null; + materialListBoxItem64.Text = "فهرست مورد ۴"; + materialListBoxItem65.SecondaryText = "متن ثانویه ۵"; + materialListBoxItem65.Tag = null; + materialListBoxItem65.Text = "فهرست مورد ۵"; + materialListBoxItem66.SecondaryText = "متن ثانویه ۶"; + materialListBoxItem66.Tag = null; + materialListBoxItem66.Text = "فهرست مورد ۶"; + this.materialListBox2.Items.Add(materialListBoxItem61); + this.materialListBox2.Items.Add(materialListBoxItem62); + this.materialListBox2.Items.Add(materialListBoxItem63); + this.materialListBox2.Items.Add(materialListBoxItem64); + this.materialListBox2.Items.Add(materialListBoxItem65); + this.materialListBox2.Items.Add(materialListBoxItem66); + this.materialListBox2.Location = new System.Drawing.Point(357, 132); this.materialListBox2.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox2.Name = "materialListBox2"; + this.materialListBox2.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialListBox2.SelectedIndex = -1; this.materialListBox2.SelectedItem = null; this.materialListBox2.Size = new System.Drawing.Size(200, 160); @@ -3025,33 +2911,34 @@ private void InitializeComponent() this.materialListBox1.BorderColor = System.Drawing.Color.LightGray; this.materialListBox1.Depth = 0; this.materialListBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem31.SecondaryText = ""; - materialListBoxItem31.Tag = null; - materialListBoxItem31.Text = "ListBoxItem1"; - materialListBoxItem32.SecondaryText = ""; - materialListBoxItem32.Tag = null; - materialListBoxItem32.Text = "ListBoxItem2"; - materialListBoxItem33.SecondaryText = ""; - materialListBoxItem33.Tag = null; - materialListBoxItem33.Text = "ListBoxItem3"; - materialListBoxItem34.SecondaryText = ""; - materialListBoxItem34.Tag = null; - materialListBoxItem34.Text = "ListBoxItem4"; - materialListBoxItem35.SecondaryText = ""; - materialListBoxItem35.Tag = null; - materialListBoxItem35.Text = "ListBoxItem5"; - materialListBoxItem36.SecondaryText = ""; - materialListBoxItem36.Tag = null; - materialListBoxItem36.Text = "ListBoxItem6"; - this.materialListBox1.Items.Add(materialListBoxItem31); - this.materialListBox1.Items.Add(materialListBoxItem32); - this.materialListBox1.Items.Add(materialListBoxItem33); - this.materialListBox1.Items.Add(materialListBoxItem34); - this.materialListBox1.Items.Add(materialListBoxItem35); - this.materialListBox1.Items.Add(materialListBoxItem36); - this.materialListBox1.Location = new System.Drawing.Point(38, 132); + materialListBoxItem67.SecondaryText = ""; + materialListBoxItem67.Tag = null; + materialListBoxItem67.Text = "فهرست مورد ۱"; + materialListBoxItem68.SecondaryText = ""; + materialListBoxItem68.Tag = null; + materialListBoxItem68.Text = "فهرست مورد ۲"; + materialListBoxItem69.SecondaryText = ""; + materialListBoxItem69.Tag = null; + materialListBoxItem69.Text = "فهرست مورد ۳"; + materialListBoxItem70.SecondaryText = ""; + materialListBoxItem70.Tag = null; + materialListBoxItem70.Text = "فهرست مورد ۴"; + materialListBoxItem71.SecondaryText = ""; + materialListBoxItem71.Tag = null; + materialListBoxItem71.Text = "فهرست مورد ۵"; + materialListBoxItem72.SecondaryText = ""; + materialListBoxItem72.Tag = null; + materialListBoxItem72.Text = "فهرست مورد ۶"; + this.materialListBox1.Items.Add(materialListBoxItem67); + this.materialListBox1.Items.Add(materialListBoxItem68); + this.materialListBox1.Items.Add(materialListBoxItem69); + this.materialListBox1.Items.Add(materialListBoxItem70); + this.materialListBox1.Items.Add(materialListBoxItem71); + this.materialListBox1.Items.Add(materialListBoxItem72); + this.materialListBox1.Location = new System.Drawing.Point(691, 132); this.materialListBox1.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox1.Name = "materialListBox1"; + this.materialListBox1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialListBox1.SelectedIndex = -1; this.materialListBox1.SelectedItem = null; this.materialListBox1.Size = new System.Drawing.Size(200, 160); @@ -3087,7 +2974,7 @@ private void InitializeComponent() this.materialExpansionPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); this.materialExpansionPanel1.Controls.Add(this.materialLabel51); this.materialExpansionPanel1.Depth = 0; - this.materialExpansionPanel1.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialExpansionPanel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialExpansionPanel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialExpansionPanel1.Location = new System.Drawing.Point(22, 16); this.materialExpansionPanel1.Margin = new System.Windows.Forms.Padding(16); @@ -3117,7 +3004,7 @@ private void InitializeComponent() this.materialExpansionPanel2.Collapse = true; this.materialExpansionPanel2.Depth = 0; this.materialExpansionPanel2.Description = "With accent color"; - this.materialExpansionPanel2.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialExpansionPanel2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialExpansionPanel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialExpansionPanel2.Location = new System.Drawing.Point(22, 273); this.materialExpansionPanel2.Margin = new System.Windows.Forms.Padding(16, 1, 16, 0); @@ -3452,7 +3339,7 @@ private void InitializeComponent() // // materialContextMenuStrip1 // - this.materialContextMenuStrip1.BackColor = System.Drawing.Color.White; + this.materialContextMenuStrip1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); this.materialContextMenuStrip1.Depth = 0; this.materialContextMenuStrip1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F); this.materialContextMenuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); @@ -3739,7 +3626,5 @@ private void InitializeComponent() private MaterialComboBox materialComboBox4; private MaterialComboBox materialComboBox3; private MaterialComboBox materialComboBox1; - private MaterialComboBox materialComboBox7; - private MaterialComboBox materialComboBox8; } } diff --git a/MaterialSkinExample.RTL/MainForm.cs b/MaterialSkinExample.RTL/MainForm.cs index c58312d4..cf7d005b 100644 --- a/MaterialSkinExample.RTL/MainForm.cs +++ b/MaterialSkinExample.RTL/MainForm.cs @@ -213,7 +213,7 @@ private void materialSwitch11_CheckedChanged(object sender, EventArgs e) private void materialSwitch12_CheckedChanged(object sender, EventArgs e) { if (materialSwitch12.Checked) - materialTextBox21.Hint = "Hint text"; + materialTextBox21.Hint = "متن اشاره"; else materialTextBox21.Hint = ""; } @@ -243,7 +243,7 @@ private void materialSwitch13_CheckedChanged(object sender, EventArgs e) private void materialSwitch14_CheckedChanged(object sender, EventArgs e) { if (materialSwitch14.Checked) - materialTextBox21.LeadingIcon = global::MaterialSkinExample.Properties.Resources.baseline_fingerprint_black_24dp; + materialTextBox21.LeadingIcon = global::MaterialSkinExample.RTL.Properties.Resources.baseline_fingerprint_black_24dp; else materialTextBox21.LeadingIcon = null; } @@ -251,7 +251,7 @@ private void materialSwitch14_CheckedChanged(object sender, EventArgs e) private void materialSwitch15_CheckedChanged(object sender, EventArgs e) { if (materialSwitch15.Checked) - materialTextBox21.TrailingIcon = global::MaterialSkinExample.Properties.Resources.baseline_build_black_24dp; + materialTextBox21.TrailingIcon = global::MaterialSkinExample.RTL.Properties.Resources.baseline_build_black_24dp; else materialTextBox21.TrailingIcon = null; } diff --git a/MaterialSkinExample.RTL/MainForm.resx b/MaterialSkinExample.RTL/MainForm.resx index 8f293233..e641dca5 100644 --- a/MaterialSkinExample.RTL/MainForm.resx +++ b/MaterialSkinExample.RTL/MainForm.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABs - NgAAAk1TRnQBSQFMAgEBEgEAATABBwEwAQcBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + NgAAAk1TRnQBSQFMAgEBEgEAAYgBBwGIAQcBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABeAMAAQEBAAEgBgABtP8A/wD/ADEAAwwBEAM9AWcDWAG7A1wB5wMAAf8DAAH/A10B4wNUAa8DOQFf AwYBCCgAAy8BSQNdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNdAeMDLgFI5AADPgFrA2AB6wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ @@ -145,14 +145,14 @@ Af8DAAH/AwAB/wNZAccUAAMGAf4DAAH/HAADWQHEAwAB/wMAAf8DAAH/A1kBxAsAAf8DAAH/1wAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbwNAAW8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNdAeMUAAMGAf4DAAH/OwAB/wMAAf/XAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8UAAMxAf0DAAH/OwAB/wMA + AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8UAAM8Af0DAAH/OwAB/wMA Af/UAANdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A1kBwxQAAzEB/QMAAf87AAH/AwAB/9QAA1QBrwMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSwGPFAADMQH9AwAB/zsA + AwAB/wMAAf8DAAH/A1kBwxQAAzwB/QMAAf87AAH/AwAB/9QAA1QBrwMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSwGPFAADPAH9AwAB/zsA Af8DAAH/1AADOQFfAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMqAUAUAAMxAf0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + AwAB/wMAAf8DAAH/AwAB/wMqAUAUAAM8Af0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/9QAAwYBCANcAd8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A0sBjwNLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxxgAAzEB/QMA + AwAB/wMAAf8DAAH/A0sBjwNLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxxgAAzwB/QMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/2AADNQFXAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AyEB+wMoATwYAAMrAfwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA @@ -212,11 +212,11 @@ A1oB6QMAAf8DAAH/AwAB/wMAAf8DAAH/A1sB2CgAA1IBpgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNS AaYsAAMZASMDFAEcA1cBtwMAAf8DAAH/AwAB/wMAAf8DVgGzAyoBQAMJAQwDCQEMAyoBQANWAbMDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADUAGeAwAB/wNCAXUIAAMvAUoDAAH/A0EB+QNDAXcDEgEY - AxIBGANDAXcDQQH5AzEB/QMiATIIAANGAX8DAAH/A0wBkhAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DYAHr + AxIBGANDAXcDQQH5AzwB/QMiATIIAANGAX8DAAH/A0wBkhAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DYAHr Ax8BLQQAAx4BKwNaAekDWgHpAx8BLAQAAx8BLANcAeoDAAH/AwAB/wMAAf8DAAH/A1EBpSgAA14B5QMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUsAANZAcQDWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADNQFWAwAB/wNf - AeADAwEECAADRwGCAwAB/wMAAf8DAAH/AwAB/wMAAf8DMQH9A0ABbwgAAwUBBwNdAeMDAAH/AysBQhAA + AeADAwEECAADRwGCAwAB/wMAAf8DAAH/AwAB/wMAAf8DPAH9A0ABbwgAAwUBBwNdAeMDAAH/AysBQhAA AzUBVQMAAf8DAAH/AwAB/wMAAf8DSAGFBAADHgErA1oB6QMAAf8DAAH/A1oB6QMfASwEAANHAYMDAAH/ AwAB/wMAAf8DAAH/AzUBVSgAA14B5QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUvAAH/AwAB/wcA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA @@ -224,11 +224,11 @@ A1wByRQAAwQBBgNcAdwDAAH/AwAB/wMAAf8DXAHfA0cBgwNaAekDAAH/AwAB/wMAAf8DAAH/A1wB6gNH AYMDWwHeAwAB/wMAAf8DAAH/A1wB3AMEAQYoAANSAaYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUgGm LwAB/wMAAf8IAAMUARwDVwG3AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/A10B4wMuAUgQAAMyAVADBgH+AzEB/QMyAVEoAAMzAVMDKwH8AyEB+wMnAToYAAMzAVIDAAH/ + Af8DAAH/A10B4wMuAUgQAAMyAVADBgH+AzwB/QMyAVEoAAMzAVMDKwH8AyEB+wMnAToYAAMzAVIDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AzMBUiwAAxQBHANdAe0DAAH/AwAB/wMAAf8DAAH/A10B7QMUARwgAANZAcQDAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DBgH+AzkBXygAA0kBhwMA - Af8DMQH9A0YBfgMDAQQYAAMDAQQDQgF2AysB/AMAAf8DQgF1IAADSgGLAwAB/wMAAf8DAAH/AwAB/wMA + Af8DPAH9A0YBfgMDAQQYAAMDAQQDQgF2AysB/AMAAf8DQgF1IAADSgGLAwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSgGLNAADFAEcA1IBpgNhAeYDYQHm A1IBpgMUARwkAANZAcQDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DWQHEAxkBIwMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNcAeoDOwFjLAADAQECA0kBhwMAAf8DAAH/A2AB4QNCAXUDJAE1AwsBDwMRARcDJAE1 @@ -245,9 +245,9 @@ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DXQHiNAADHgErGP8DIAEuOAADMQRPAfMDAAH/A1kB8gNcAdwDAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DIQH7NAADFwEgAwAB/wNcAd83AAH/AwAB/wMnATs4AAMnATsDAAH/AwAB/0AACP9AAAND - AXgDMQH9AwAB/wNUAasDFAEbAxABFQNaAdMDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAcs0AAMXASADAAH/ + AXgDPAH9AwAB/wNUAasDFAEbAxABFQNaAdMDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAcs0AAMXASADAAH/ A1wB3zcAAf8DAAH/QwAB/wMAAf9AAAj/PAADQwF3AwAB/wMrAfwDQAFxDAADEAEVA1gBuwMAAf8DWAHv - A10B0gNRAaUDGQEjNAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf9AAAj/OAADMgFQAzEB/QMr + A10B0gNRAaUDGQEjNAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf9AAAj/OAADMgFQAzwB/QMr AfwDNQFVYAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf8oAANdAdIDXQHSEAAI/zQAAxYBHwNP AfMDAAH/A0ABcVAAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wNLAY8cAAMGAf4DAAH/QwAB/wMAAf8oAAj/EAAI/zQAA1IBpwMAAf8DVAGrVAADVgGzAwAB/wMA @@ -255,16 +255,16 @@ AR0DRgGAA0YBgAMVAR0bAAH/AwAB/ygACP8QAAj/MAADJwE7AwYB/gNZAfIDFAEbVAADBgEIA0oBiwMh AfsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNRAfcDQQFzAwMBBBwAAwYB/gMAAf8QAAMC AQMDQAFwA1kB8gMAAf8DAAH/A1kB8gNAAXADAgEDEwAB/wMAAf8oAAj/EAADYAHUA14B1TAAA1QBqwMA - Af8DXwHbAxABFVwAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbyQAAzEB/QMA + Af8DXwHbAxABFVwAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbyQAAzwB/QMA Af8MAAMjATMDXAHMAwAB/wNdAeIDMQFPAzEBTwNdAeIDAAH/A1wBzAMjATMPAAH/AwAB/ygACP9EAAMK AQ4DUQH3AwAB/wMAAf8DWgHTAxABFVgAAyYBOAMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AxQBHCQAAzEB/QMAAf8EAAMKAQ0DSwGPAysB/AMrAfwDSwGPAwoBDQgAAwoBDQNLAY8DKwH8AysB/ANL + AxQBHCQAAzwB/QMAAf8EAAMKAQ0DSwGPAysB/AMrAfwDSwGPAwoBDQgAAwoBDQNLAY8DKwH8AysB/ANL AY8DCgENBwAB/wMAAf8oAAj/RAADOQFfAwAB/wMAAf8DAAH/AwAB/wNWAbxfAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/ygAAzEB/QMAAf8DMQFPA10B4gMAAf8DXAHMAyMBMxgAAyMBMwNcAcwDAAH/ - A10B4gMxAU8DAAH/AwAB/ygACP9EAANOAZcDAAH/AwAB/wMAAf8DAAH/AzEB/QMCAQNbAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzEB/QMAAf8DAAH/A1kB8gNAAW8DAgEDIAADAgEDA0ABbwNZ + AwAB/wMAAf8DAAH/AwAB/ygAAzwB/QMAAf8DMQFPA10B4gMAAf8DXAHMAyMBMxgAAyMBMwNcAcwDAAH/ + A10B4gMxAU8DAAH/AwAB/ygACP9EAANOAZcDAAH/AwAB/wMAAf8DAAH/AzwB/QMCAQNbAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzwB/QMAAf8DAAH/A1kB8gNAAW8DAgEDIAADAgEDA0ABbwNZ AfIDAAH/AwAB/wMAAf8cAAMfASwU/wN/Af4DHwEsOAADWQG/AwAB/wMAAf8DAAH/AwAB/wNZAfJfAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzEB/QMAAf8DVAGvAxUBHTAAAxUBHQNUAa8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzwB/QMAAf8DVAGvAxUBHTAAAxUBHQNUAa8DAAH/ AwAB/yAAA0ABbxD/Az0BaDwAA2EB5gMAAf8DAAH/AwAB/wMAAf8DXAHUXwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8oAANcAd8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHiJAADSAGECP8DRwGBQAADXAHcAwAB/wMA diff --git a/MaterialSkinExample.RTL/Properties/Resources.Designer.cs b/MaterialSkinExample.RTL/Properties/Resources.Designer.cs index eccbad9e..863ea05c 100644 --- a/MaterialSkinExample.RTL/Properties/Resources.Designer.cs +++ b/MaterialSkinExample.RTL/Properties/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace MaterialSkinExample.Properties { +namespace MaterialSkinExample.RTL.Properties { using System; @@ -39,7 +39,7 @@ internal Resources() { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MaterialSkinExample.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MaterialSkinExample.RTL.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; @@ -131,7 +131,7 @@ internal static System.Drawing.Bitmap plus { } /// - /// Recherche une ressource localisée de type System.Drawing.Bitmap. + /// Looks up a localized resource of type System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap round_add_black_24dp { get { @@ -211,7 +211,7 @@ internal static System.Drawing.Bitmap round_http_white_24dp { } /// - /// Recherche une ressource localisée de type System.Drawing.Bitmap. + /// Looks up a localized resource of type System.Drawing.Bitmap. /// internal static System.Drawing.Bitmap round_phone_black_24dp { get { @@ -219,7 +219,7 @@ internal static System.Drawing.Bitmap round_phone_black_24dp { return ((System.Drawing.Bitmap)(obj)); } } - + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// From d0d249ccd772b4a0ea3ea624eb685d2164f571b7 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Thu, 9 Jun 2022 14:48:54 +0430 Subject: [PATCH 20/30] MaterialExpansionPanel rtl --- .../Controls/MaterialExpansionPanel.cs | 75 ++++--- MaterialSkinExample.RTL/MainForm.Designer.cs | 206 +++++++++--------- MaterialSkinExample.RTL/MainForm.resx | 36 +-- 3 files changed, 172 insertions(+), 145 deletions(-) diff --git a/MaterialSkin/Controls/MaterialExpansionPanel.cs b/MaterialSkin/Controls/MaterialExpansionPanel.cs index 0185b8a2..64d3a5bd 100644 --- a/MaterialSkin/Controls/MaterialExpansionPanel.cs +++ b/MaterialSkin/Controls/MaterialExpansionPanel.cs @@ -1,4 +1,4 @@ -using MaterialSkin.Animations; +using MaterialSkin.Animations; using System; using System.Configuration; using System.Collections.Generic; @@ -29,20 +29,20 @@ public class MaterialExpansionPanel : Panel, IMaterialControl private const int _footerHeight = 68; private const int _footerButtonHeight = 36; private const int _minHeight = 200; - private int _headerHeight ; + private int _headerHeight; - private bool _collapse ; + private bool _collapse; private bool _useAccentColor; private int _expandHeight; - - + + private string _titleHeader; private string _descriptionHeader; private string _validationButtonText; private string _cancelButtonText; - - - + + + private bool _showValidationButtons; private bool _showCollapseExpand; private bool _drawShadows; @@ -231,9 +231,9 @@ public MaterialExpansionPanel() ForeColor = SkinManager.TextHighEmphasisColor; Padding = new Padding(24, 64, 24, 16); - Margin = new Padding( 3, 16, 3, 16); + Margin = new Padding(3, 16, 3, 16); Size = new Size(480, ExpandHeight); - + //CollapseOrExpand(); _validationButton = new MaterialButton @@ -254,18 +254,18 @@ public MaterialExpansionPanel() Text = "CANCEL" }; - if (!Controls.Contains(_validationButton) ) + if (!Controls.Contains(_validationButton)) { Controls.Add(_validationButton); } - if (!Controls.Contains(_cancelButton) ) + if (!Controls.Contains(_cancelButton)) { Controls.Add(_cancelButton); } _validationButton.Click += _validationButton_Click; _cancelButton.Click += _cancelButton_Click; - + UpdateRects(); } @@ -378,12 +378,17 @@ protected override void OnResize(EventArgs e) base.OnResize(e); _headerBounds = new Rectangle(ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, _headerHeight); - _expandcollapseBounds = new Rectangle((Width) - _leftrightPadding - _expandcollapsbuttonsize, (int)((_headerHeight - _expandcollapsbuttonsize) / 2), _expandcollapsbuttonsize, _expandcollapsbuttonsize); + var RectangleX=(RightToLeft==RightToLeft.Yes)? _leftrightPadding : (Width) - _leftrightPadding - _expandcollapsbuttonsize; + _expandcollapseBounds = new Rectangle( + RectangleX, + (int)((_headerHeight - _expandcollapsbuttonsize) / 2) + , _expandcollapsbuttonsize, + _expandcollapsbuttonsize); UpdateRects(); if (Parent != null) - { + { RemoveShadowPaintEvent(Parent, drawShadowOnParent); AddShadowPaintEvent(Parent, drawShadowOnParent); } @@ -435,7 +440,7 @@ protected override void OnMouseDown(MouseEventArgs e) return; } - base.OnMouseDown(e); + base.OnMouseDown(e); } protected override void OnMouseLeave(EventArgs e) @@ -484,7 +489,7 @@ protected override void OnPaint(PaintEventArgs e) expansionPanelBorderRectF.X -= 0.5f; expansionPanelBorderRectF.Y -= 0.5f; GraphicsPath expansionPanelBoarderPath = DrawHelper.CreateRoundRect(expansionPanelBorderRectF, 2); - + g.FillPath(SkinManager.ExpansionPanelFocusBrush, expansionPanelBoarderPath); } else @@ -497,8 +502,9 @@ protected override void OnPaint(PaintEventArgs e) } // Calc text Rect + var RectangleX = (RightToLeft == RightToLeft.Yes) ? Width - (TextRenderer.MeasureText(_titleHeader, Font).Width + _expansionPanelDefaultPadding + _leftrightPadding) : _leftrightPadding; Rectangle headerRect = new Rectangle( - _leftrightPadding, + RectangleX, (_headerHeight - _textHeaderHeight) / 2, TextRenderer.MeasureText(_titleHeader, Font).Width + _expansionPanelDefaultPadding, _textHeaderHeight); @@ -514,17 +520,18 @@ protected override void OnPaint(PaintEventArgs e) Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, headerRect.Location, headerRect.Size, - textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } if (!String.IsNullOrEmpty(_descriptionHeader)) - { + { //Draw description header text - + RectangleX = (RightToLeft == RightToLeft.Yes) ? _leftrightPadding + _expansionPanelDefaultPadding : headerRect.Right + _expansionPanelDefaultPadding; + var RectangleW = (RightToLeft == RightToLeft.Yes) ? headerRect.Left - _expansionPanelDefaultPadding - _expansionPanelDefaultPadding : _expandcollapseBounds.Left - (headerRect.Right + _expansionPanelDefaultPadding) - _expansionPanelDefaultPadding; Rectangle headerDescriptionRect = new Rectangle( - headerRect.Right + _expansionPanelDefaultPadding, + RectangleX, (_headerHeight - _textHeaderHeight) / 2, - _expandcollapseBounds.Left - (headerRect.Right + _expansionPanelDefaultPadding ) - _expansionPanelDefaultPadding, + RectangleW, _textHeaderHeight); using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) @@ -541,7 +548,7 @@ protected override void OnPaint(PaintEventArgs e) } } - if (_showCollapseExpand==true) + if (_showCollapseExpand == true) { using (var formButtonsPen = new Pen(_useAccentColor && Enabled ? SkinManager.ColorScheme.AccentColor : SkinManager.TextDisabledOrHintColor, 2)) { @@ -612,14 +619,25 @@ private void UpdateRects() if (!_collapse && _showValidationButtons) { int _buttonWidth = ((TextRenderer.MeasureText(ValidationButtonText, SkinManager.getFontByType(MaterialSkinManager.fontType.Button, RightToLeft))).Width + 32); - _savebuttonBounds = new Rectangle((Width) - _buttonPadding - _buttonWidth, Height - _expansionPanelDefaultPadding - _footerButtonHeight, _buttonWidth, _footerButtonHeight); + var savebuttonBoundsX=(RightToLeft==RightToLeft.Yes)? _buttonPadding : (Width) - _buttonPadding - _buttonWidth; + _savebuttonBounds = new Rectangle( + savebuttonBoundsX, + Height - _expansionPanelDefaultPadding - _footerButtonHeight, + _buttonWidth, + _footerButtonHeight); _buttonWidth = ((TextRenderer.MeasureText(CancelButtonText, SkinManager.getFontByType(MaterialSkinManager.fontType.Button, RightToLeft))).Width + 32); - _cancelbuttonBounds = new Rectangle(_savebuttonBounds.Left - _buttonPadding - _buttonWidth, Height - _expansionPanelDefaultPadding - _footerButtonHeight, _buttonWidth, _footerButtonHeight); + var cancelbuttonBoundsX= (RightToLeft == RightToLeft.Yes) ? _savebuttonBounds.Right + _buttonPadding : _savebuttonBounds.Left - _buttonPadding - _buttonWidth; + _cancelbuttonBounds = new Rectangle( + cancelbuttonBoundsX, + Height - _expansionPanelDefaultPadding - _footerButtonHeight, + _buttonWidth, + _footerButtonHeight); if (_validationButton != null) { + var validationButtonLeft= (RightToLeft == RightToLeft.Yes) ? _buttonPadding : Width - _buttonPadding - _validationButton.Width; _validationButton.Width = _savebuttonBounds.Width; - _validationButton.Left = Width - _buttonPadding - _validationButton.Width; //Button minimum width management + _validationButton.Left = validationButtonLeft; //Button minimum width management _validationButton.Top = _savebuttonBounds.Top; _validationButton.Height = _savebuttonBounds.Height; _validationButton.Text = _validationButtonText; @@ -628,8 +646,9 @@ private void UpdateRects() } if (_cancelButton != null) { + var cancelButtonLeft = (RightToLeft == RightToLeft.Yes) ? _validationButton.Right + _buttonPadding : _validationButton.Left - _buttonPadding - _cancelbuttonBounds.Width; _cancelButton.Width = _cancelbuttonBounds.Width; - _cancelButton.Left = _validationButton.Left - _buttonPadding - _cancelbuttonBounds.Width; //Button minimum width management + _cancelButton.Left = cancelButtonLeft; //Button minimum width management _cancelButton.Top = _cancelbuttonBounds.Top; _cancelButton.Height = _cancelbuttonBounds.Height; _cancelButton.Text = _cancelButtonText; diff --git a/MaterialSkinExample.RTL/MainForm.Designer.cs b/MaterialSkinExample.RTL/MainForm.Designer.cs index 2c8378c9..5b364918 100644 --- a/MaterialSkinExample.RTL/MainForm.Designer.cs +++ b/MaterialSkinExample.RTL/MainForm.Designer.cs @@ -35,24 +35,24 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - MaterialSkin.MaterialListBoxItem materialListBoxItem55 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem56 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem57 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem58 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem59 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem60 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem61 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem62 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem63 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem64 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem65 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem66 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem67 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem68 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem69 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem70 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem71 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem72 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem19 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem20 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem21 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem22 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem23 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem24 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem25 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem26 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem27 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem28 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem29 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem30 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem31 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem32 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem33 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem34 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem35 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem36 = new MaterialSkin.MaterialListBoxItem(); this.materialCheckbox3 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialCheckbox1 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialTabControl1 = new MaterialSkin.Controls.MaterialTabControl(); @@ -184,9 +184,9 @@ private void InitializeComponent() this.materialLabel48 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel47 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel46 = new MaterialSkin.Controls.MaterialLabel(); - this.materialListBox3 = new MaterialSkin.Controls.MaterialListBox(RightToLeft.Yes); - this.materialListBox2 = new MaterialSkin.Controls.MaterialListBox(RightToLeft.Yes); - this.materialListBox1 = new MaterialSkin.Controls.MaterialListBox(RightToLeft.Yes); + this.materialListBox3 = new MaterialSkin.Controls.MaterialListBox(); + this.materialListBox2 = new MaterialSkin.Controls.MaterialListBox(); + this.materialListBox1 = new MaterialSkin.Controls.MaterialListBox(); this.tabPage11 = new System.Windows.Forms.TabPage(); this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.materialExpansionPanel1 = new MaterialSkin.Controls.MaterialExpansionPanel(); @@ -2431,7 +2431,7 @@ private void InitializeComponent() this.materialFlatButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialFlatButton2.Name = "materialFlatButton2"; this.materialFlatButton2.NoAccentTextColor = System.Drawing.Color.Empty; - this.materialFlatButton2.Size = new System.Drawing.Size(80, 36); + this.materialFlatButton2.Size = new System.Drawing.Size(79, 36); this.materialFlatButton2.TabIndex = 1; this.materialFlatButton2.Text = "Remove"; this.materialFlatButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; @@ -2830,30 +2830,30 @@ private void InitializeComponent() this.materialListBox3.BorderColor = System.Drawing.Color.LightGray; this.materialListBox3.Depth = 0; this.materialListBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem55.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش 1"; - materialListBoxItem55.Tag = null; - materialListBoxItem55.Text = "فهرست مورد 1"; - materialListBoxItem56.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۲"; - materialListBoxItem56.Tag = null; - materialListBoxItem56.Text = "فهرست مورد ۲"; - materialListBoxItem57.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۳"; - materialListBoxItem57.Tag = null; - materialListBoxItem57.Text = "فهرست مورد ۳"; - materialListBoxItem58.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۴"; - materialListBoxItem58.Tag = null; - materialListBoxItem58.Text = "فهرست مورد ۴"; - materialListBoxItem59.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۵"; - materialListBoxItem59.Tag = null; - materialListBoxItem59.Text = "فهرست مورد ۵"; - materialListBoxItem60.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۶"; - materialListBoxItem60.Tag = null; - materialListBoxItem60.Text = "فهرست مورد ۶"; - this.materialListBox3.Items.Add(materialListBoxItem55); - this.materialListBox3.Items.Add(materialListBoxItem56); - this.materialListBox3.Items.Add(materialListBoxItem57); - this.materialListBox3.Items.Add(materialListBoxItem58); - this.materialListBox3.Items.Add(materialListBoxItem59); - this.materialListBox3.Items.Add(materialListBoxItem60); + materialListBoxItem19.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش 1"; + materialListBoxItem19.Tag = null; + materialListBoxItem19.Text = "فهرست مورد 1"; + materialListBoxItem20.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۲"; + materialListBoxItem20.Tag = null; + materialListBoxItem20.Text = "فهرست مورد ۲"; + materialListBoxItem21.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۳"; + materialListBoxItem21.Tag = null; + materialListBoxItem21.Text = "فهرست مورد ۳"; + materialListBoxItem22.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۴"; + materialListBoxItem22.Tag = null; + materialListBoxItem22.Text = "فهرست مورد ۴"; + materialListBoxItem23.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۵"; + materialListBoxItem23.Tag = null; + materialListBoxItem23.Text = "فهرست مورد ۵"; + materialListBoxItem24.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۶"; + materialListBoxItem24.Tag = null; + materialListBoxItem24.Text = "فهرست مورد ۶"; + this.materialListBox3.Items.Add(materialListBoxItem19); + this.materialListBox3.Items.Add(materialListBoxItem20); + this.materialListBox3.Items.Add(materialListBoxItem21); + this.materialListBox3.Items.Add(materialListBoxItem22); + this.materialListBox3.Items.Add(materialListBoxItem23); + this.materialListBox3.Items.Add(materialListBoxItem24); this.materialListBox3.Location = new System.Drawing.Point(31, 132); this.materialListBox3.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox3.Name = "materialListBox3"; @@ -2870,30 +2870,30 @@ private void InitializeComponent() this.materialListBox2.BorderColor = System.Drawing.Color.LightGray; this.materialListBox2.Depth = 0; this.materialListBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem61.SecondaryText = "متن ثانویه ۱"; - materialListBoxItem61.Tag = null; - materialListBoxItem61.Text = "فهرست مورد ۱"; - materialListBoxItem62.SecondaryText = "متن ثانویه ۲"; - materialListBoxItem62.Tag = null; - materialListBoxItem62.Text = "فهرست مورد ۲"; - materialListBoxItem63.SecondaryText = "متن ثانویه ۳"; - materialListBoxItem63.Tag = null; - materialListBoxItem63.Text = "فهرست مورد ۳"; - materialListBoxItem64.SecondaryText = "متن ثانویه ۴"; - materialListBoxItem64.Tag = null; - materialListBoxItem64.Text = "فهرست مورد ۴"; - materialListBoxItem65.SecondaryText = "متن ثانویه ۵"; - materialListBoxItem65.Tag = null; - materialListBoxItem65.Text = "فهرست مورد ۵"; - materialListBoxItem66.SecondaryText = "متن ثانویه ۶"; - materialListBoxItem66.Tag = null; - materialListBoxItem66.Text = "فهرست مورد ۶"; - this.materialListBox2.Items.Add(materialListBoxItem61); - this.materialListBox2.Items.Add(materialListBoxItem62); - this.materialListBox2.Items.Add(materialListBoxItem63); - this.materialListBox2.Items.Add(materialListBoxItem64); - this.materialListBox2.Items.Add(materialListBoxItem65); - this.materialListBox2.Items.Add(materialListBoxItem66); + materialListBoxItem25.SecondaryText = "متن ثانویه ۱"; + materialListBoxItem25.Tag = null; + materialListBoxItem25.Text = "فهرست مورد ۱"; + materialListBoxItem26.SecondaryText = "متن ثانویه ۲"; + materialListBoxItem26.Tag = null; + materialListBoxItem26.Text = "فهرست مورد ۲"; + materialListBoxItem27.SecondaryText = "متن ثانویه ۳"; + materialListBoxItem27.Tag = null; + materialListBoxItem27.Text = "فهرست مورد ۳"; + materialListBoxItem28.SecondaryText = "متن ثانویه ۴"; + materialListBoxItem28.Tag = null; + materialListBoxItem28.Text = "فهرست مورد ۴"; + materialListBoxItem29.SecondaryText = "متن ثانویه ۵"; + materialListBoxItem29.Tag = null; + materialListBoxItem29.Text = "فهرست مورد ۵"; + materialListBoxItem30.SecondaryText = "متن ثانویه ۶"; + materialListBoxItem30.Tag = null; + materialListBoxItem30.Text = "فهرست مورد ۶"; + this.materialListBox2.Items.Add(materialListBoxItem25); + this.materialListBox2.Items.Add(materialListBoxItem26); + this.materialListBox2.Items.Add(materialListBoxItem27); + this.materialListBox2.Items.Add(materialListBoxItem28); + this.materialListBox2.Items.Add(materialListBoxItem29); + this.materialListBox2.Items.Add(materialListBoxItem30); this.materialListBox2.Location = new System.Drawing.Point(357, 132); this.materialListBox2.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox2.Name = "materialListBox2"; @@ -2911,30 +2911,30 @@ private void InitializeComponent() this.materialListBox1.BorderColor = System.Drawing.Color.LightGray; this.materialListBox1.Depth = 0; this.materialListBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem67.SecondaryText = ""; - materialListBoxItem67.Tag = null; - materialListBoxItem67.Text = "فهرست مورد ۱"; - materialListBoxItem68.SecondaryText = ""; - materialListBoxItem68.Tag = null; - materialListBoxItem68.Text = "فهرست مورد ۲"; - materialListBoxItem69.SecondaryText = ""; - materialListBoxItem69.Tag = null; - materialListBoxItem69.Text = "فهرست مورد ۳"; - materialListBoxItem70.SecondaryText = ""; - materialListBoxItem70.Tag = null; - materialListBoxItem70.Text = "فهرست مورد ۴"; - materialListBoxItem71.SecondaryText = ""; - materialListBoxItem71.Tag = null; - materialListBoxItem71.Text = "فهرست مورد ۵"; - materialListBoxItem72.SecondaryText = ""; - materialListBoxItem72.Tag = null; - materialListBoxItem72.Text = "فهرست مورد ۶"; - this.materialListBox1.Items.Add(materialListBoxItem67); - this.materialListBox1.Items.Add(materialListBoxItem68); - this.materialListBox1.Items.Add(materialListBoxItem69); - this.materialListBox1.Items.Add(materialListBoxItem70); - this.materialListBox1.Items.Add(materialListBoxItem71); - this.materialListBox1.Items.Add(materialListBoxItem72); + materialListBoxItem31.SecondaryText = ""; + materialListBoxItem31.Tag = null; + materialListBoxItem31.Text = "فهرست مورد ۱"; + materialListBoxItem32.SecondaryText = ""; + materialListBoxItem32.Tag = null; + materialListBoxItem32.Text = "فهرست مورد ۲"; + materialListBoxItem33.SecondaryText = ""; + materialListBoxItem33.Tag = null; + materialListBoxItem33.Text = "فهرست مورد ۳"; + materialListBoxItem34.SecondaryText = ""; + materialListBoxItem34.Tag = null; + materialListBoxItem34.Text = "فهرست مورد ۴"; + materialListBoxItem35.SecondaryText = ""; + materialListBoxItem35.Tag = null; + materialListBoxItem35.Text = "فهرست مورد ۵"; + materialListBoxItem36.SecondaryText = ""; + materialListBoxItem36.Tag = null; + materialListBoxItem36.Text = "فهرست مورد ۶"; + this.materialListBox1.Items.Add(materialListBoxItem31); + this.materialListBox1.Items.Add(materialListBoxItem32); + this.materialListBox1.Items.Add(materialListBoxItem33); + this.materialListBox1.Items.Add(materialListBoxItem34); + this.materialListBox1.Items.Add(materialListBoxItem35); + this.materialListBox1.Items.Add(materialListBoxItem36); this.materialListBox1.Location = new System.Drawing.Point(691, 132); this.materialListBox1.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox1.Name = "materialListBox1"; @@ -2965,6 +2965,7 @@ private void InitializeComponent() this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; this.flowLayoutPanel1.Location = new System.Drawing.Point(3, 3); this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.flowLayoutPanel1.Size = new System.Drawing.Size(561, 517); this.flowLayoutPanel1.TabIndex = 0; this.flowLayoutPanel1.WrapContents = false; @@ -2972,18 +2973,22 @@ private void InitializeComponent() // materialExpansionPanel1 // this.materialExpansionPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialExpansionPanel1.CancelButtonText = "انصراف"; this.materialExpansionPanel1.Controls.Add(this.materialLabel51); this.materialExpansionPanel1.Depth = 0; - this.materialExpansionPanel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialExpansionPanel1.Description = "توضیحات"; + this.materialExpansionPanel1.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialExpansionPanel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialExpansionPanel1.Location = new System.Drawing.Point(22, 16); this.materialExpansionPanel1.Margin = new System.Windows.Forms.Padding(16); this.materialExpansionPanel1.MouseState = MaterialSkin.MouseState.HOVER; this.materialExpansionPanel1.Name = "materialExpansionPanel1"; this.materialExpansionPanel1.Padding = new System.Windows.Forms.Padding(24, 64, 24, 16); + this.materialExpansionPanel1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialExpansionPanel1.Size = new System.Drawing.Size(523, 240); this.materialExpansionPanel1.TabIndex = 0; - this.materialExpansionPanel1.Title = "Expansion panel"; + this.materialExpansionPanel1.Title = "پنل توسعه"; + this.materialExpansionPanel1.ValidationButtonText = "ذخیره"; // // materialLabel51 // @@ -3001,20 +3006,23 @@ private void InitializeComponent() // materialExpansionPanel2 // this.materialExpansionPanel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialExpansionPanel2.CancelButtonText = "انصراف"; this.materialExpansionPanel2.Collapse = true; this.materialExpansionPanel2.Depth = 0; - this.materialExpansionPanel2.Description = "With accent color"; - this.materialExpansionPanel2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialExpansionPanel2.Description = "همراه با رنگ مد"; + this.materialExpansionPanel2.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialExpansionPanel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.materialExpansionPanel2.Location = new System.Drawing.Point(22, 273); this.materialExpansionPanel2.Margin = new System.Windows.Forms.Padding(16, 1, 16, 0); this.materialExpansionPanel2.MouseState = MaterialSkin.MouseState.HOVER; this.materialExpansionPanel2.Name = "materialExpansionPanel2"; this.materialExpansionPanel2.Padding = new System.Windows.Forms.Padding(24, 64, 24, 16); + this.materialExpansionPanel2.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialExpansionPanel2.Size = new System.Drawing.Size(523, 48); this.materialExpansionPanel2.TabIndex = 2; - this.materialExpansionPanel2.Title = "Expansion panel"; + this.materialExpansionPanel2.Title = "پنل توسعه"; this.materialExpansionPanel2.UseAccentColor = true; + this.materialExpansionPanel2.ValidationButtonText = "ذخیره"; this.materialExpansionPanel2.Paint += new System.Windows.Forms.PaintEventHandler(this.materialExpansionPanel2_Paint); // // tabPage12 diff --git a/MaterialSkinExample.RTL/MainForm.resx b/MaterialSkinExample.RTL/MainForm.resx index e641dca5..4aef8e34 100644 --- a/MaterialSkinExample.RTL/MainForm.resx +++ b/MaterialSkinExample.RTL/MainForm.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABs - NgAAAk1TRnQBSQFMAgEBEgEAAYgBBwGIAQcBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + NgAAAk1TRnQBSQFMAgEBEgEAAZABBwGQAQcBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABeAMAAQEBAAEgBgABtP8A/wD/ADEAAwwBEAM9AWcDWAG7A1wB5wMAAf8DAAH/A10B4wNUAa8DOQFf AwYBCCgAAy8BSQNdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNdAeMDLgFI5AADPgFrA2AB6wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ @@ -145,14 +145,14 @@ Af8DAAH/AwAB/wNZAccUAAMGAf4DAAH/HAADWQHEAwAB/wMAAf8DAAH/A1kBxAsAAf8DAAH/1wAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbwNAAW8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNdAeMUAAMGAf4DAAH/OwAB/wMAAf/XAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8UAAM8Af0DAAH/OwAB/wMA + AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8UAAM9Af0DAAH/OwAB/wMA Af/UAANdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A1kBwxQAAzwB/QMAAf87AAH/AwAB/9QAA1QBrwMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSwGPFAADPAH9AwAB/zsA + AwAB/wMAAf8DAAH/A1kBwxQAAz0B/QMAAf87AAH/AwAB/9QAA1QBrwMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSwGPFAADPQH9AwAB/zsA Af8DAAH/1AADOQFfAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMqAUAUAAM8Af0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + AwAB/wMAAf8DAAH/AwAB/wMqAUAUAAM9Af0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/9QAAwYBCANcAd8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A0sBjwNLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxxgAAzwB/QMA + AwAB/wMAAf8DAAH/A0sBjwNLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxxgAAz0B/QMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/2AADNQFXAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AyEB+wMoATwYAAMrAfwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA @@ -212,11 +212,11 @@ A1oB6QMAAf8DAAH/AwAB/wMAAf8DAAH/A1sB2CgAA1IBpgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNS AaYsAAMZASMDFAEcA1cBtwMAAf8DAAH/AwAB/wMAAf8DVgGzAyoBQAMJAQwDCQEMAyoBQANWAbMDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADUAGeAwAB/wNCAXUIAAMvAUoDAAH/A0EB+QNDAXcDEgEY - AxIBGANDAXcDQQH5AzwB/QMiATIIAANGAX8DAAH/A0wBkhAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DYAHr + AxIBGANDAXcDQQH5Az0B/QMiATIIAANGAX8DAAH/A0wBkhAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DYAHr Ax8BLQQAAx4BKwNaAekDWgHpAx8BLAQAAx8BLANcAeoDAAH/AwAB/wMAAf8DAAH/A1EBpSgAA14B5QMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUsAANZAcQDWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADNQFWAwAB/wNf - AeADAwEECAADRwGCAwAB/wMAAf8DAAH/AwAB/wMAAf8DPAH9A0ABbwgAAwUBBwNdAeMDAAH/AysBQhAA + AeADAwEECAADRwGCAwAB/wMAAf8DAAH/AwAB/wMAAf8DPQH9A0ABbwgAAwUBBwNdAeMDAAH/AysBQhAA AzUBVQMAAf8DAAH/AwAB/wMAAf8DSAGFBAADHgErA1oB6QMAAf8DAAH/A1oB6QMfASwEAANHAYMDAAH/ AwAB/wMAAf8DAAH/AzUBVSgAA14B5QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUvAAH/AwAB/wcA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA @@ -224,11 +224,11 @@ A1wByRQAAwQBBgNcAdwDAAH/AwAB/wMAAf8DXAHfA0cBgwNaAekDAAH/AwAB/wMAAf8DAAH/A1wB6gNH AYMDWwHeAwAB/wMAAf8DAAH/A1wB3AMEAQYoAANSAaYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUgGm LwAB/wMAAf8IAAMUARwDVwG3AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/A10B4wMuAUgQAAMyAVADBgH+AzwB/QMyAVEoAAMzAVMDKwH8AyEB+wMnAToYAAMzAVIDAAH/ + Af8DAAH/A10B4wMuAUgQAAMyAVADBgH+Az0B/QMyAVEoAAMzAVMDKwH8AyEB+wMnAToYAAMzAVIDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AzMBUiwAAxQBHANdAe0DAAH/AwAB/wMAAf8DAAH/A10B7QMUARwgAANZAcQDAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DBgH+AzkBXygAA0kBhwMA - Af8DPAH9A0YBfgMDAQQYAAMDAQQDQgF2AysB/AMAAf8DQgF1IAADSgGLAwAB/wMAAf8DAAH/AwAB/wMA + Af8DPQH9A0YBfgMDAQQYAAMDAQQDQgF2AysB/AMAAf8DQgF1IAADSgGLAwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSgGLNAADFAEcA1IBpgNhAeYDYQHm A1IBpgMUARwkAANZAcQDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DWQHEAxkBIwMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNcAeoDOwFjLAADAQECA0kBhwMAAf8DAAH/A2AB4QNCAXUDJAE1AwsBDwMRARcDJAE1 @@ -245,9 +245,9 @@ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DXQHiNAADHgErGP8DIAEuOAADMQRPAfMDAAH/A1kB8gNcAdwDAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DIQH7NAADFwEgAwAB/wNcAd83AAH/AwAB/wMnATs4AAMnATsDAAH/AwAB/0AACP9AAAND - AXgDPAH9AwAB/wNUAasDFAEbAxABFQNaAdMDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAcs0AAMXASADAAH/ + AXgDPQH9AwAB/wNUAasDFAEbAxABFQNaAdMDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAcs0AAMXASADAAH/ A1wB3zcAAf8DAAH/QwAB/wMAAf9AAAj/PAADQwF3AwAB/wMrAfwDQAFxDAADEAEVA1gBuwMAAf8DWAHv - A10B0gNRAaUDGQEjNAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf9AAAj/OAADMgFQAzwB/QMr + A10B0gNRAaUDGQEjNAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf9AAAj/OAADMgFQAz0B/QMr AfwDNQFVYAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf8oAANdAdIDXQHSEAAI/zQAAxYBHwNP AfMDAAH/A0ABcVAAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wNLAY8cAAMGAf4DAAH/QwAB/wMAAf8oAAj/EAAI/zQAA1IBpwMAAf8DVAGrVAADVgGzAwAB/wMA @@ -255,16 +255,16 @@ AR0DRgGAA0YBgAMVAR0bAAH/AwAB/ygACP8QAAj/MAADJwE7AwYB/gNZAfIDFAEbVAADBgEIA0oBiwMh AfsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNRAfcDQQFzAwMBBBwAAwYB/gMAAf8QAAMC AQMDQAFwA1kB8gMAAf8DAAH/A1kB8gNAAXADAgEDEwAB/wMAAf8oAAj/EAADYAHUA14B1TAAA1QBqwMA - Af8DXwHbAxABFVwAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbyQAAzwB/QMA + Af8DXwHbAxABFVwAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbyQAAz0B/QMA Af8MAAMjATMDXAHMAwAB/wNdAeIDMQFPAzEBTwNdAeIDAAH/A1wBzAMjATMPAAH/AwAB/ygACP9EAAMK AQ4DUQH3AwAB/wMAAf8DWgHTAxABFVgAAyYBOAMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AxQBHCQAAzwB/QMAAf8EAAMKAQ0DSwGPAysB/AMrAfwDSwGPAwoBDQgAAwoBDQNLAY8DKwH8AysB/ANL + AxQBHCQAAz0B/QMAAf8EAAMKAQ0DSwGPAysB/AMrAfwDSwGPAwoBDQgAAwoBDQNLAY8DKwH8AysB/ANL AY8DCgENBwAB/wMAAf8oAAj/RAADOQFfAwAB/wMAAf8DAAH/AwAB/wNWAbxfAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/ygAAzwB/QMAAf8DMQFPA10B4gMAAf8DXAHMAyMBMxgAAyMBMwNcAcwDAAH/ - A10B4gMxAU8DAAH/AwAB/ygACP9EAANOAZcDAAH/AwAB/wMAAf8DAAH/AzwB/QMCAQNbAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzwB/QMAAf8DAAH/A1kB8gNAAW8DAgEDIAADAgEDA0ABbwNZ + AwAB/wMAAf8DAAH/AwAB/ygAAz0B/QMAAf8DMQFPA10B4gMAAf8DXAHMAyMBMxgAAyMBMwNcAcwDAAH/ + A10B4gMxAU8DAAH/AwAB/ygACP9EAANOAZcDAAH/AwAB/wMAAf8DAAH/Az0B/QMCAQNbAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAz0B/QMAAf8DAAH/A1kB8gNAAW8DAgEDIAADAgEDA0ABbwNZ AfIDAAH/AwAB/wMAAf8cAAMfASwU/wN/Af4DHwEsOAADWQG/AwAB/wMAAf8DAAH/AwAB/wNZAfJfAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAzwB/QMAAf8DVAGvAxUBHTAAAxUBHQNUAa8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAz0B/QMAAf8DVAGvAxUBHTAAAxUBHQNUAa8DAAH/ AwAB/yAAA0ABbxD/Az0BaDwAA2EB5gMAAf8DAAH/AwAB/wMAAf8DXAHUXwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8oAANcAd8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHiJAADSAGECP8DRwGBQAADXAHcAwAB/wMA From ea963ea83ee8f0ce6074e4b541f2d64dcf9b7b6a Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Fri, 10 Jun 2022 14:19:33 +0430 Subject: [PATCH 21/30] completed --- MaterialSkin/Controls/MaterialListView.cs | 10 +- MaterialSkinExample.RTL/MainForm.Designer.cs | 307 +++++++++---------- MaterialSkinExample.RTL/MainForm.resx | 36 +-- 3 files changed, 179 insertions(+), 174 deletions(-) diff --git a/MaterialSkin/Controls/MaterialListView.cs b/MaterialSkin/Controls/MaterialListView.cs index e743431b..cc6103d3 100644 --- a/MaterialSkin/Controls/MaterialListView.cs +++ b/MaterialSkin/Controls/MaterialListView.cs @@ -41,8 +41,12 @@ public bool AutoSizeTable private const int PAD = 16; private const int ITEMS_HEIGHT = 52; - public MaterialListView() + public MaterialListView() : this(RightToLeft.Yes) + { } + + public MaterialListView(RightToLeft RightToLeft) { + this.RightToLeft = RightToLeft; GridLines = false; FullRowSelect = true; View = View.Details; @@ -130,7 +134,9 @@ protected override void OnDrawItem(DrawListViewItemEventArgs e) } // Draw separator line - g.DrawLine(new Pen(SkinManager.DividersColor), e.Bounds.Left, e.Bounds.Y, e.Bounds.Right, e.Bounds.Y); + var gx1 = (RightToLeft == RightToLeft.Yes) ? e.Bounds.Right : e.Bounds.Left; + var gx2 = (RightToLeft == RightToLeft.Yes) ? e.Bounds.Left : e.Bounds.Right; + g.DrawLine(new Pen(SkinManager.DividersColor), gx1, e.Bounds.Y, gx2, e.Bounds.Y); foreach (ListViewItem.ListViewSubItem subItem in e.Item.SubItems) { diff --git a/MaterialSkinExample.RTL/MainForm.Designer.cs b/MaterialSkinExample.RTL/MainForm.Designer.cs index 5b364918..10f45ace 100644 --- a/MaterialSkinExample.RTL/MainForm.Designer.cs +++ b/MaterialSkinExample.RTL/MainForm.Designer.cs @@ -35,24 +35,24 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - MaterialSkin.MaterialListBoxItem materialListBoxItem19 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem20 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem21 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem22 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem23 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem24 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem25 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem26 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem27 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem28 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem29 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem30 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem31 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem32 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem33 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem34 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem35 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem36 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem37 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem38 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem39 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem40 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem41 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem42 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem43 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem44 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem45 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem46 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem47 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem48 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem49 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem50 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem51 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem52 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem53 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem54 = new MaterialSkin.MaterialListBoxItem(); this.materialCheckbox3 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialCheckbox1 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialTabControl1 = new MaterialSkin.Controls.MaterialTabControl(); @@ -148,11 +148,6 @@ private void InitializeComponent() this.tabPage4 = new System.Windows.Forms.TabPage(); this.materialLabel39 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel28 = new MaterialSkin.Controls.MaterialLabel(); - this.materialListView1 = new MaterialSkin.Controls.MaterialListView(); - this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.tabPage5 = new System.Windows.Forms.TabPage(); this.materialSlider1 = new MaterialSkin.Controls.MaterialSlider(); this.materialLabel49 = new MaterialSkin.Controls.MaterialLabel(); @@ -221,6 +216,11 @@ private void InitializeComponent() this.item2ToolStripMenuItem = new MaterialSkin.Controls.MaterialToolStripMenuItem(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.item3ToolStripMenuItem = new MaterialSkin.Controls.MaterialToolStripMenuItem(); + this.materialListView1 = new MaterialSkin.Controls.MaterialListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.materialTabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.tabPage7.SuspendLayout(); @@ -2284,9 +2284,9 @@ private void InitializeComponent() // tabPage4 // this.tabPage4.BackColor = System.Drawing.Color.White; + this.tabPage4.Controls.Add(this.materialListView1); this.tabPage4.Controls.Add(this.materialLabel39); this.tabPage4.Controls.Add(this.materialLabel28); - this.tabPage4.Controls.Add(this.materialListView1); this.tabPage4.ImageKey = "round_backup_white_24dp.png"; this.tabPage4.Location = new System.Drawing.Point(4, 31); this.tabPage4.Name = "tabPage4"; @@ -2323,58 +2323,6 @@ private void InitializeComponent() this.materialLabel28.TabIndex = 63; this.materialLabel28.Text = "جدول"; // - // materialListView1 - // - this.materialListView1.AllowColumnReorder = true; - this.materialListView1.AutoSizeTable = true; - this.materialListView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.materialListView1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.materialListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.columnHeader1, - this.columnHeader2, - this.columnHeader3, - this.columnHeader4}); - this.materialListView1.Depth = 0; - this.materialListView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialListView1.FullRowSelect = true; - this.materialListView1.HideSelection = false; - this.materialListView1.Location = new System.Drawing.Point(372, 149); - this.materialListView1.MinimumSize = new System.Drawing.Size(200, 100); - this.materialListView1.MouseLocation = new System.Drawing.Point(-1, -1); - this.materialListView1.MouseState = MaterialSkin.MouseState.OUT; - this.materialListView1.Name = "materialListView1"; - this.materialListView1.OwnerDraw = true; - this.materialListView1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; - this.materialListView1.RightToLeftLayout = true; - this.materialListView1.Scrollable = false; - this.materialListView1.Size = new System.Drawing.Size(547, 100); - this.materialListView1.TabIndex = 0; - this.materialListView1.UseCompatibleStateImageBehavior = false; - this.materialListView1.View = System.Windows.Forms.View.Details; - // - // columnHeader1 - // - this.columnHeader1.Text = "دسر (100 گرم)"; - this.columnHeader1.Width = 200; - // - // columnHeader2 - // - this.columnHeader2.Text = "کالری"; - this.columnHeader2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.columnHeader2.Width = 99; - // - // columnHeader3 - // - this.columnHeader3.Text = "چربی (گرم)"; - this.columnHeader3.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.columnHeader3.Width = 94; - // - // columnHeader4 - // - this.columnHeader4.Text = "پروتئین (گرم)"; - this.columnHeader4.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.columnHeader4.Width = 154; - // // tabPage5 // this.tabPage5.BackColor = System.Drawing.Color.White; @@ -2431,7 +2379,7 @@ private void InitializeComponent() this.materialFlatButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialFlatButton2.Name = "materialFlatButton2"; this.materialFlatButton2.NoAccentTextColor = System.Drawing.Color.Empty; - this.materialFlatButton2.Size = new System.Drawing.Size(79, 36); + this.materialFlatButton2.Size = new System.Drawing.Size(80, 36); this.materialFlatButton2.TabIndex = 1; this.materialFlatButton2.Text = "Remove"; this.materialFlatButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; @@ -2830,30 +2778,30 @@ private void InitializeComponent() this.materialListBox3.BorderColor = System.Drawing.Color.LightGray; this.materialListBox3.Depth = 0; this.materialListBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem19.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش 1"; - materialListBoxItem19.Tag = null; - materialListBoxItem19.Text = "فهرست مورد 1"; - materialListBoxItem20.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۲"; - materialListBoxItem20.Tag = null; - materialListBoxItem20.Text = "فهرست مورد ۲"; - materialListBoxItem21.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۳"; - materialListBoxItem21.Tag = null; - materialListBoxItem21.Text = "فهرست مورد ۳"; - materialListBoxItem22.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۴"; - materialListBoxItem22.Tag = null; - materialListBoxItem22.Text = "فهرست مورد ۴"; - materialListBoxItem23.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۵"; - materialListBoxItem23.Tag = null; - materialListBoxItem23.Text = "فهرست مورد ۵"; - materialListBoxItem24.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۶"; - materialListBoxItem24.Tag = null; - materialListBoxItem24.Text = "فهرست مورد ۶"; - this.materialListBox3.Items.Add(materialListBoxItem19); - this.materialListBox3.Items.Add(materialListBoxItem20); - this.materialListBox3.Items.Add(materialListBoxItem21); - this.materialListBox3.Items.Add(materialListBoxItem22); - this.materialListBox3.Items.Add(materialListBoxItem23); - this.materialListBox3.Items.Add(materialListBoxItem24); + materialListBoxItem37.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش 1"; + materialListBoxItem37.Tag = null; + materialListBoxItem37.Text = "فهرست مورد 1"; + materialListBoxItem38.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۲"; + materialListBoxItem38.Tag = null; + materialListBoxItem38.Text = "فهرست مورد ۲"; + materialListBoxItem39.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۳"; + materialListBoxItem39.Tag = null; + materialListBoxItem39.Text = "فهرست مورد ۳"; + materialListBoxItem40.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۴"; + materialListBoxItem40.Tag = null; + materialListBoxItem40.Text = "فهرست مورد ۴"; + materialListBoxItem41.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۵"; + materialListBoxItem41.Tag = null; + materialListBoxItem41.Text = "فهرست مورد ۵"; + materialListBoxItem42.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۶"; + materialListBoxItem42.Tag = null; + materialListBoxItem42.Text = "فهرست مورد ۶"; + this.materialListBox3.Items.Add(materialListBoxItem37); + this.materialListBox3.Items.Add(materialListBoxItem38); + this.materialListBox3.Items.Add(materialListBoxItem39); + this.materialListBox3.Items.Add(materialListBoxItem40); + this.materialListBox3.Items.Add(materialListBoxItem41); + this.materialListBox3.Items.Add(materialListBoxItem42); this.materialListBox3.Location = new System.Drawing.Point(31, 132); this.materialListBox3.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox3.Name = "materialListBox3"; @@ -2870,30 +2818,30 @@ private void InitializeComponent() this.materialListBox2.BorderColor = System.Drawing.Color.LightGray; this.materialListBox2.Depth = 0; this.materialListBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem25.SecondaryText = "متن ثانویه ۱"; - materialListBoxItem25.Tag = null; - materialListBoxItem25.Text = "فهرست مورد ۱"; - materialListBoxItem26.SecondaryText = "متن ثانویه ۲"; - materialListBoxItem26.Tag = null; - materialListBoxItem26.Text = "فهرست مورد ۲"; - materialListBoxItem27.SecondaryText = "متن ثانویه ۳"; - materialListBoxItem27.Tag = null; - materialListBoxItem27.Text = "فهرست مورد ۳"; - materialListBoxItem28.SecondaryText = "متن ثانویه ۴"; - materialListBoxItem28.Tag = null; - materialListBoxItem28.Text = "فهرست مورد ۴"; - materialListBoxItem29.SecondaryText = "متن ثانویه ۵"; - materialListBoxItem29.Tag = null; - materialListBoxItem29.Text = "فهرست مورد ۵"; - materialListBoxItem30.SecondaryText = "متن ثانویه ۶"; - materialListBoxItem30.Tag = null; - materialListBoxItem30.Text = "فهرست مورد ۶"; - this.materialListBox2.Items.Add(materialListBoxItem25); - this.materialListBox2.Items.Add(materialListBoxItem26); - this.materialListBox2.Items.Add(materialListBoxItem27); - this.materialListBox2.Items.Add(materialListBoxItem28); - this.materialListBox2.Items.Add(materialListBoxItem29); - this.materialListBox2.Items.Add(materialListBoxItem30); + materialListBoxItem43.SecondaryText = "متن ثانویه ۱"; + materialListBoxItem43.Tag = null; + materialListBoxItem43.Text = "فهرست مورد ۱"; + materialListBoxItem44.SecondaryText = "متن ثانویه ۲"; + materialListBoxItem44.Tag = null; + materialListBoxItem44.Text = "فهرست مورد ۲"; + materialListBoxItem45.SecondaryText = "متن ثانویه ۳"; + materialListBoxItem45.Tag = null; + materialListBoxItem45.Text = "فهرست مورد ۳"; + materialListBoxItem46.SecondaryText = "متن ثانویه ۴"; + materialListBoxItem46.Tag = null; + materialListBoxItem46.Text = "فهرست مورد ۴"; + materialListBoxItem47.SecondaryText = "متن ثانویه ۵"; + materialListBoxItem47.Tag = null; + materialListBoxItem47.Text = "فهرست مورد ۵"; + materialListBoxItem48.SecondaryText = "متن ثانویه ۶"; + materialListBoxItem48.Tag = null; + materialListBoxItem48.Text = "فهرست مورد ۶"; + this.materialListBox2.Items.Add(materialListBoxItem43); + this.materialListBox2.Items.Add(materialListBoxItem44); + this.materialListBox2.Items.Add(materialListBoxItem45); + this.materialListBox2.Items.Add(materialListBoxItem46); + this.materialListBox2.Items.Add(materialListBoxItem47); + this.materialListBox2.Items.Add(materialListBoxItem48); this.materialListBox2.Location = new System.Drawing.Point(357, 132); this.materialListBox2.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox2.Name = "materialListBox2"; @@ -2911,30 +2859,30 @@ private void InitializeComponent() this.materialListBox1.BorderColor = System.Drawing.Color.LightGray; this.materialListBox1.Depth = 0; this.materialListBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem31.SecondaryText = ""; - materialListBoxItem31.Tag = null; - materialListBoxItem31.Text = "فهرست مورد ۱"; - materialListBoxItem32.SecondaryText = ""; - materialListBoxItem32.Tag = null; - materialListBoxItem32.Text = "فهرست مورد ۲"; - materialListBoxItem33.SecondaryText = ""; - materialListBoxItem33.Tag = null; - materialListBoxItem33.Text = "فهرست مورد ۳"; - materialListBoxItem34.SecondaryText = ""; - materialListBoxItem34.Tag = null; - materialListBoxItem34.Text = "فهرست مورد ۴"; - materialListBoxItem35.SecondaryText = ""; - materialListBoxItem35.Tag = null; - materialListBoxItem35.Text = "فهرست مورد ۵"; - materialListBoxItem36.SecondaryText = ""; - materialListBoxItem36.Tag = null; - materialListBoxItem36.Text = "فهرست مورد ۶"; - this.materialListBox1.Items.Add(materialListBoxItem31); - this.materialListBox1.Items.Add(materialListBoxItem32); - this.materialListBox1.Items.Add(materialListBoxItem33); - this.materialListBox1.Items.Add(materialListBoxItem34); - this.materialListBox1.Items.Add(materialListBoxItem35); - this.materialListBox1.Items.Add(materialListBoxItem36); + materialListBoxItem49.SecondaryText = ""; + materialListBoxItem49.Tag = null; + materialListBoxItem49.Text = "فهرست مورد ۱"; + materialListBoxItem50.SecondaryText = ""; + materialListBoxItem50.Tag = null; + materialListBoxItem50.Text = "فهرست مورد ۲"; + materialListBoxItem51.SecondaryText = ""; + materialListBoxItem51.Tag = null; + materialListBoxItem51.Text = "فهرست مورد ۳"; + materialListBoxItem52.SecondaryText = ""; + materialListBoxItem52.Tag = null; + materialListBoxItem52.Text = "فهرست مورد ۴"; + materialListBoxItem53.SecondaryText = ""; + materialListBoxItem53.Tag = null; + materialListBoxItem53.Text = "فهرست مورد ۵"; + materialListBoxItem54.SecondaryText = ""; + materialListBoxItem54.Tag = null; + materialListBoxItem54.Text = "فهرست مورد ۶"; + this.materialListBox1.Items.Add(materialListBoxItem49); + this.materialListBox1.Items.Add(materialListBoxItem50); + this.materialListBox1.Items.Add(materialListBoxItem51); + this.materialListBox1.Items.Add(materialListBoxItem52); + this.materialListBox1.Items.Add(materialListBoxItem53); + this.materialListBox1.Items.Add(materialListBoxItem54); this.materialListBox1.Location = new System.Drawing.Point(691, 132); this.materialListBox1.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox1.Name = "materialListBox1"; @@ -3413,6 +3361,57 @@ private void InitializeComponent() this.item3ToolStripMenuItem.Size = new System.Drawing.Size(170, 30); this.item3ToolStripMenuItem.Text = "Item 3"; // + // materialListView1 + // + this.materialListView1.AllowColumnReorder = true; + this.materialListView1.AutoSizeTable = true; + this.materialListView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialListView1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.materialListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3, + this.columnHeader4}); + this.materialListView1.Depth = 0; + this.materialListView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialListView1.FullRowSelect = true; + this.materialListView1.HideSelection = false; + this.materialListView1.Location = new System.Drawing.Point(372, 149); + this.materialListView1.MinimumSize = new System.Drawing.Size(200, 100); + this.materialListView1.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialListView1.MouseState = MaterialSkin.MouseState.OUT; + this.materialListView1.Name = "materialListView1"; + this.materialListView1.OwnerDraw = true; + this.materialListView1.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialListView1.Scrollable = false; + this.materialListView1.Size = new System.Drawing.Size(547, 100); + this.materialListView1.TabIndex = 65; + this.materialListView1.UseCompatibleStateImageBehavior = false; + this.materialListView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Dessert (100g serving)"; + this.columnHeader1.Width = 200; + // + // columnHeader2 + // + this.columnHeader2.Text = "Calories"; + this.columnHeader2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.columnHeader2.Width = 99; + // + // columnHeader3 + // + this.columnHeader3.Text = "Fat (g)"; + this.columnHeader3.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.columnHeader3.Width = 94; + // + // columnHeader4 + // + this.columnHeader4.Text = "Protein (g)"; + this.columnHeader4.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.columnHeader4.Width = 154; + // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -3489,11 +3488,6 @@ private void InitializeComponent() private MaterialLabel materialLabel2; private TabPage tabPage6; private ImageList menuIconList; - private MaterialListView materialListView1; - private ColumnHeader columnHeader1; - private ColumnHeader columnHeader2; - private ColumnHeader columnHeader3; - private ColumnHeader columnHeader4; private MaterialButton materialFlatButton2; private TabPage tabPage7; private MaterialLabel materialLabel8; @@ -3634,5 +3628,10 @@ private void InitializeComponent() private MaterialComboBox materialComboBox4; private MaterialComboBox materialComboBox3; private MaterialComboBox materialComboBox1; + private MaterialListView materialListView1; + private ColumnHeader columnHeader1; + private ColumnHeader columnHeader2; + private ColumnHeader columnHeader3; + private ColumnHeader columnHeader4; } } diff --git a/MaterialSkinExample.RTL/MainForm.resx b/MaterialSkinExample.RTL/MainForm.resx index 4aef8e34..96f79af3 100644 --- a/MaterialSkinExample.RTL/MainForm.resx +++ b/MaterialSkinExample.RTL/MainForm.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABs - NgAAAk1TRnQBSQFMAgEBEgEAAZABBwGQAQcBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + NgAAAk1TRnQBSQFMAgEBEgEAAaABBwGgAQcBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABeAMAAQEBAAEgBgABtP8A/wD/ADEAAwwBEAM9AWcDWAG7A1wB5wMAAf8DAAH/A10B4wNUAa8DOQFf AwYBCCgAAy8BSQNdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNdAeMDLgFI5AADPgFrA2AB6wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ @@ -145,14 +145,14 @@ Af8DAAH/AwAB/wNZAccUAAMGAf4DAAH/HAADWQHEAwAB/wMAAf8DAAH/A1kBxAsAAf8DAAH/1wAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbwNAAW8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNdAeMUAAMGAf4DAAH/OwAB/wMAAf/XAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8UAAM9Af0DAAH/OwAB/wMA + AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8UAAM/Af0DAAH/OwAB/wMA Af/UAANdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A1kBwxQAAz0B/QMAAf87AAH/AwAB/9QAA1QBrwMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSwGPFAADPQH9AwAB/zsA + AwAB/wMAAf8DAAH/A1kBwxQAAz8B/QMAAf87AAH/AwAB/9QAA1QBrwMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSwGPFAADPwH9AwAB/zsA Af8DAAH/1AADOQFfAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMqAUAUAAM9Af0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + AwAB/wMAAf8DAAH/AwAB/wMqAUAUAAM/Af0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/9QAAwYBCANcAd8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A0sBjwNLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxxgAAz0B/QMA + AwAB/wMAAf8DAAH/A0sBjwNLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxxgAAz8B/QMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/2AADNQFXAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AyEB+wMoATwYAAMrAfwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA @@ -212,11 +212,11 @@ A1oB6QMAAf8DAAH/AwAB/wMAAf8DAAH/A1sB2CgAA1IBpgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNS AaYsAAMZASMDFAEcA1cBtwMAAf8DAAH/AwAB/wMAAf8DVgGzAyoBQAMJAQwDCQEMAyoBQANWAbMDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADUAGeAwAB/wNCAXUIAAMvAUoDAAH/A0EB+QNDAXcDEgEY - AxIBGANDAXcDQQH5Az0B/QMiATIIAANGAX8DAAH/A0wBkhAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DYAHr + AxIBGANDAXcDQQH5Az8B/QMiATIIAANGAX8DAAH/A0wBkhAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DYAHr Ax8BLQQAAx4BKwNaAekDWgHpAx8BLAQAAx8BLANcAeoDAAH/AwAB/wMAAf8DAAH/A1EBpSgAA14B5QMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUsAANZAcQDWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADNQFWAwAB/wNf - AeADAwEECAADRwGCAwAB/wMAAf8DAAH/AwAB/wMAAf8DPQH9A0ABbwgAAwUBBwNdAeMDAAH/AysBQhAA + AeADAwEECAADRwGCAwAB/wMAAf8DAAH/AwAB/wMAAf8DPwH9A0ABbwgAAwUBBwNdAeMDAAH/AysBQhAA AzUBVQMAAf8DAAH/AwAB/wMAAf8DSAGFBAADHgErA1oB6QMAAf8DAAH/A1oB6QMfASwEAANHAYMDAAH/ AwAB/wMAAf8DAAH/AzUBVSgAA14B5QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUvAAH/AwAB/wcA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA @@ -224,11 +224,11 @@ A1wByRQAAwQBBgNcAdwDAAH/AwAB/wMAAf8DXAHfA0cBgwNaAekDAAH/AwAB/wMAAf8DAAH/A1wB6gNH AYMDWwHeAwAB/wMAAf8DAAH/A1wB3AMEAQYoAANSAaYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUgGm LwAB/wMAAf8IAAMUARwDVwG3AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/A10B4wMuAUgQAAMyAVADBgH+Az0B/QMyAVEoAAMzAVMDKwH8AyEB+wMnAToYAAMzAVIDAAH/ + Af8DAAH/A10B4wMuAUgQAAMyAVADBgH+Az8B/QMyAVEoAAMzAVMDKwH8AyEB+wMnAToYAAMzAVIDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AzMBUiwAAxQBHANdAe0DAAH/AwAB/wMAAf8DAAH/A10B7QMUARwgAANZAcQDAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DBgH+AzkBXygAA0kBhwMA - Af8DPQH9A0YBfgMDAQQYAAMDAQQDQgF2AysB/AMAAf8DQgF1IAADSgGLAwAB/wMAAf8DAAH/AwAB/wMA + Af8DPwH9A0YBfgMDAQQYAAMDAQQDQgF2AysB/AMAAf8DQgF1IAADSgGLAwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSgGLNAADFAEcA1IBpgNhAeYDYQHm A1IBpgMUARwkAANZAcQDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DWQHEAxkBIwMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNcAeoDOwFjLAADAQECA0kBhwMAAf8DAAH/A2AB4QNCAXUDJAE1AwsBDwMRARcDJAE1 @@ -245,9 +245,9 @@ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DXQHiNAADHgErGP8DIAEuOAADMQRPAfMDAAH/A1kB8gNcAdwDAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DIQH7NAADFwEgAwAB/wNcAd83AAH/AwAB/wMnATs4AAMnATsDAAH/AwAB/0AACP9AAAND - AXgDPQH9AwAB/wNUAasDFAEbAxABFQNaAdMDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAcs0AAMXASADAAH/ + AXgDPwH9AwAB/wNUAasDFAEbAxABFQNaAdMDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAcs0AAMXASADAAH/ A1wB3zcAAf8DAAH/QwAB/wMAAf9AAAj/PAADQwF3AwAB/wMrAfwDQAFxDAADEAEVA1gBuwMAAf8DWAHv - A10B0gNRAaUDGQEjNAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf9AAAj/OAADMgFQAz0B/QMr + A10B0gNRAaUDGQEjNAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf9AAAj/OAADMgFQAz8B/QMr AfwDNQFVYAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf8oAANdAdIDXQHSEAAI/zQAAxYBHwNP AfMDAAH/A0ABcVAAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wNLAY8cAAMGAf4DAAH/QwAB/wMAAf8oAAj/EAAI/zQAA1IBpwMAAf8DVAGrVAADVgGzAwAB/wMA @@ -255,16 +255,16 @@ AR0DRgGAA0YBgAMVAR0bAAH/AwAB/ygACP8QAAj/MAADJwE7AwYB/gNZAfIDFAEbVAADBgEIA0oBiwMh AfsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNRAfcDQQFzAwMBBBwAAwYB/gMAAf8QAAMC AQMDQAFwA1kB8gMAAf8DAAH/A1kB8gNAAXADAgEDEwAB/wMAAf8oAAj/EAADYAHUA14B1TAAA1QBqwMA - Af8DXwHbAxABFVwAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbyQAAz0B/QMA + Af8DXwHbAxABFVwAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbyQAAz8B/QMA Af8MAAMjATMDXAHMAwAB/wNdAeIDMQFPAzEBTwNdAeIDAAH/A1wBzAMjATMPAAH/AwAB/ygACP9EAAMK AQ4DUQH3AwAB/wMAAf8DWgHTAxABFVgAAyYBOAMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AxQBHCQAAz0B/QMAAf8EAAMKAQ0DSwGPAysB/AMrAfwDSwGPAwoBDQgAAwoBDQNLAY8DKwH8AysB/ANL + AxQBHCQAAz8B/QMAAf8EAAMKAQ0DSwGPAysB/AMrAfwDSwGPAwoBDQgAAwoBDQNLAY8DKwH8AysB/ANL AY8DCgENBwAB/wMAAf8oAAj/RAADOQFfAwAB/wMAAf8DAAH/AwAB/wNWAbxfAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/ygAAz0B/QMAAf8DMQFPA10B4gMAAf8DXAHMAyMBMxgAAyMBMwNcAcwDAAH/ - A10B4gMxAU8DAAH/AwAB/ygACP9EAANOAZcDAAH/AwAB/wMAAf8DAAH/Az0B/QMCAQNbAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAz0B/QMAAf8DAAH/A1kB8gNAAW8DAgEDIAADAgEDA0ABbwNZ + AwAB/wMAAf8DAAH/AwAB/ygAAz8B/QMAAf8DMQFPA10B4gMAAf8DXAHMAyMBMxgAAyMBMwNcAcwDAAH/ + A10B4gMxAU8DAAH/AwAB/ygACP9EAANOAZcDAAH/AwAB/wMAAf8DAAH/Az8B/QMCAQNbAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAz8B/QMAAf8DAAH/A1kB8gNAAW8DAgEDIAADAgEDA0ABbwNZ AfIDAAH/AwAB/wMAAf8cAAMfASwU/wN/Af4DHwEsOAADWQG/AwAB/wMAAf8DAAH/AwAB/wNZAfJfAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAz0B/QMAAf8DVAGvAxUBHTAAAxUBHQNUAa8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAz8B/QMAAf8DVAGvAxUBHTAAAxUBHQNUAa8DAAH/ AwAB/yAAA0ABbxD/Az0BaDwAA2EB5gMAAf8DAAH/AwAB/wMAAf8DXAHUXwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8oAANcAd8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHiJAADSAGECP8DRwGBQAADXAHcAwAB/wMA From ce080499b82b3c2d7e50dd94bedd3c689436741c Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Sat, 11 Jun 2022 10:36:55 +0430 Subject: [PATCH 22/30] rtl support --- MaterialSkin/Controls/MaterialRadioButton.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/MaterialSkin/Controls/MaterialRadioButton.cs b/MaterialSkin/Controls/MaterialRadioButton.cs index e292bed8..218e9c0b 100644 --- a/MaterialSkin/Controls/MaterialRadioButton.cs +++ b/MaterialSkin/Controls/MaterialRadioButton.cs @@ -130,9 +130,10 @@ protected override void OnPaint(PaintEventArgs pevent) // clear the control g.Clear(Parent.BackColor); - int RADIOBUTTON_CENTER = _boxOffset + RADIOBUTTON_SIZE_HALF; - Point animationSource = new Point(RADIOBUTTON_CENTER, RADIOBUTTON_CENTER); - + int RADIOBUTTON_CENTER_X = RightToLeft == RightToLeft.Yes ? Width - (_boxOffset + RADIOBUTTON_SIZE_HALF) : _boxOffset + RADIOBUTTON_SIZE_HALF; + int RADIOBUTTON_CENTER_Y = _boxOffset + RADIOBUTTON_SIZE_HALF; + Point animationSource = new Point(RADIOBUTTON_CENTER_X, RADIOBUTTON_CENTER_Y); + double animationProgress = _checkAM.GetProgress(); int colorAlpha = Enabled ? (int)(animationProgress * 255.0) : SkinManager.CheckBoxOffDisabledColor.A; @@ -174,14 +175,16 @@ protected override void OnPaint(PaintEventArgs pevent) // draw radiobutton circle using (Pen pen = new Pen(DrawHelper.BlendColor(Parent.BackColor, Enabled ? SkinManager.CheckboxOffColor : SkinManager.CheckBoxOffDisabledColor, backgroundAlpha), 2)) { - g.DrawEllipse(pen, new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); + var x = RightToLeft == RightToLeft.Yes ? Width - RADIOBUTTON_SIZE - _boxOffset : _boxOffset; + g.DrawEllipse(pen, new Rectangle(x, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); } if (Enabled) { using (Pen pen = new Pen(RadioColor, 2)) { - g.DrawEllipse(pen, new Rectangle(_boxOffset, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); + var x = RightToLeft == RightToLeft.Yes ? Width - RADIOBUTTON_SIZE - _boxOffset : _boxOffset; + g.DrawEllipse(pen, new Rectangle(x, _boxOffset, RADIOBUTTON_SIZE, RADIOBUTTON_SIZE)); } } @@ -189,14 +192,16 @@ protected override void OnPaint(PaintEventArgs pevent) { using (SolidBrush brush = new SolidBrush(RadioColor)) { - g.FillEllipse(brush, new RectangleF(RADIOBUTTON_CENTER - animationSizeHalf, RADIOBUTTON_CENTER - animationSizeHalf, animationSize, animationSize)); + g.FillEllipse(brush, new RectangleF(RADIOBUTTON_CENTER_X - animationSizeHalf, RADIOBUTTON_CENTER_Y - animationSizeHalf, animationSize, animationSize)); } } // Text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { - Rectangle textLocation = new Rectangle(_boxOffset + TEXT_OFFSET, 0, Width, Height); + var x = RightToLeft == RightToLeft.Yes ? 0 : _boxOffset + TEXT_OFFSET; + var w = RightToLeft == RightToLeft.Yes ? Width - (_boxOffset + TEXT_OFFSET) : Width; + Rectangle textLocation = new Rectangle(x, 0, Width, Height); NativeText.DrawTransparentText(Text, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Body1, RightToLeft), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textLocation.Location, From ebf5a804276745ed77460730ac8f0877f0ca2261 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Sat, 11 Jun 2022 11:36:08 +0430 Subject: [PATCH 23/30] FlexibleMaterial rtl support --- .../Controls/FlexibleMaterialDialog.cs | 14 ++++++++-- MaterialSkinExample.RTL/MainForm.cs | 27 +++++++++++-------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/MaterialSkin/Controls/FlexibleMaterialDialog.cs b/MaterialSkin/Controls/FlexibleMaterialDialog.cs index e8e2e827..91d527db 100644 --- a/MaterialSkin/Controls/FlexibleMaterialDialog.cs +++ b/MaterialSkin/Controls/FlexibleMaterialDialog.cs @@ -360,7 +360,11 @@ private enum TwoLetterISOLanguageID /// /// Defines the pl /// - pl + pl, + /// + /// Defines the fa + /// + fa }; /// @@ -398,6 +402,11 @@ private enum TwoLetterISOLanguageID /// private static readonly String[] BUTTON_TEXTS_POLISH_PL = { "OK", "Anuluj", "Tak", "Nie", "Opuść", "Powtórz", "Ignoruj" }; + /// + /// Defines the BUTTON_TEXTS_ROMANIAN_PL + /// + private static readonly String[] BUTTON_TEXTS_PERSIAN_FA = { "حله", "انصراف", "بله", "خیر", "بیخیال", "دوباره", "رد‌ کن" };//Note: This is also the fallback language + /// /// Defines the defaultButton /// @@ -428,7 +437,7 @@ private FlexibleMaterialForm(RightToLeft rightToLeft) :base(rightToLeft) materialSkinManager = MaterialSkinManager.Instance; materialSkinManager.AddFormToManage(this); - FONT = materialSkinManager.getFontByType(MaterialSkinManager.fontType.Body1, RightToLeft); + FONT = materialSkinManager.getFontByType(MaterialSkinManager.fontType.Body1, rightToLeft); messageContainer.BackColor = this.BackColor; } @@ -466,6 +475,7 @@ private string GetButtonText(ButtonID buttonID) case TwoLetterISOLanguageID.fr: return BUTTON_TEXTS_FRENCH_FR[buttonTextArrayIndex]; case TwoLetterISOLanguageID.ro: return BUTTON_TEXTS_ROMANIAN_RO[buttonTextArrayIndex]; case TwoLetterISOLanguageID.pl: return BUTTON_TEXTS_POLISH_PL[buttonTextArrayIndex]; + case TwoLetterISOLanguageID.fa: return BUTTON_TEXTS_PERSIAN_FA[buttonTextArrayIndex]; default: return BUTTON_TEXTS_ENGLISH_EN[buttonTextArrayIndex]; } diff --git a/MaterialSkinExample.RTL/MainForm.cs b/MaterialSkinExample.RTL/MainForm.cs index cf7d005b..63887ed3 100644 --- a/MaterialSkinExample.RTL/MainForm.cs +++ b/MaterialSkinExample.RTL/MainForm.cs @@ -1,6 +1,7 @@ using MaterialSkin; using MaterialSkin.Controls; using System; +using System.Globalization; using System.Text; using System.Windows.Forms; @@ -12,6 +13,10 @@ public partial class MainForm : MaterialForm public MainForm(RightToLeft RightToLeft = RightToLeft.Yes) : base(RightToLeft) { + var culture = new CultureInfo("fa-IR"); + CultureInfo.DefaultThreadCurrentCulture = culture; + CultureInfo.DefaultThreadCurrentUICulture = culture; + base.RightToLeft = RightToLeft.Yes; InitializeComponent(); // Initialize MaterialSkinManager @@ -158,7 +163,7 @@ private void materialSwitch8_CheckedChanged(object sender, EventArgs e) private void MaterialButton3_Click(object sender, EventArgs e) { - var builder = new StringBuilder("Batch operation report:\n\n"); + var builder = new StringBuilder("گزارش عملیات دسته‌ای:\n\n"); var random = new Random(); var result = 0; @@ -168,17 +173,17 @@ private void MaterialButton3_Click(object sender, EventArgs e) if (result < 950) { - builder.AppendFormat(" - Task {0}: Operation completed sucessfully.\n", i); + builder.AppendFormat(" - وظیفه {0}: عملیات با موفقیت انجام شد.\n", i); } else { - builder.AppendFormat(" - Task {0}: Operation failed! A very very very very very very very very very very very very serious error has occured during this sub-operation. The errorcode is: {1}).\n", i, result); + builder.AppendFormat(" - وظیفه {0}: عملیات انجام نشد! یک خطای خیلی خیلی خیلی خیلی خیلی خیلی خیلی خیلی خیلی خیلی خیلی جدی در این عملیات فرعی رخ داده است. کد خطا این است: {1}).\n", i, result); } } var batchOperationResults = builder.ToString(); - batchOperationResults = "Simple text"; - var mresult = MaterialMessageBox.Show(batchOperationResults, "Batch Operation", MessageBoxButtons.YesNoCancel, FlexibleMaterialForm.ButtonsPosition.Center); + batchOperationResults = "متن ساده"; + var mresult = MaterialMessageBox.Show(batchOperationResults, "عملیات دسته‌ای", MessageBoxButtons.YesNoCancel, FlexibleMaterialForm.ButtonsPosition.Center, RightToLeft.Yes); //materialComboBox1.Items.Add("this is a very long string"); } @@ -189,14 +194,14 @@ private void materialSwitch9_CheckedChanged(object sender, EventArgs e) private void materialTextBox2_LeadingIconClick(object sender, EventArgs e) { - MaterialSnackBar SnackBarMessage = new MaterialSnackBar("Leading Icon Click"); + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("آیکون پیشرو کلیک کنید"); SnackBarMessage.Show(this); } private void materialButton6_Click(object sender, EventArgs e) { - MaterialSnackBar SnackBarMessage = new MaterialSnackBar("SnackBar started succesfully", "OK", true); + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("اسنک بار با موفقیت انجام شد", "حله", true, RightToLeft.Yes); SnackBarMessage.Show(this); } @@ -258,13 +263,13 @@ private void materialSwitch15_CheckedChanged(object sender, EventArgs e) private void materialTextBox21_LeadingIconClick(object sender, EventArgs e) { - MaterialSnackBar SnackBarMessage = new MaterialSnackBar("Leading Icon Click"); + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("آیکون پیشرو کلیک کنید"); SnackBarMessage.Show(this); } private void materialTextBox21_TrailingIconClick(object sender, EventArgs e) { - MaterialSnackBar SnackBarMessage = new MaterialSnackBar("Trailing Icon Click"); + MaterialSnackBar SnackBarMessage = new MaterialSnackBar("نماد دنباله کلیک کنید"); SnackBarMessage.Show(this); } @@ -275,10 +280,10 @@ private void MsReadOnly_CheckedChanged(object sender, EventArgs e) private void materialButton25_Click(object sender, EventArgs e) { - MaterialDialog materialDialog = new MaterialDialog(this,"Dialog Title", "Dialogs inform users about a task and can contain critical information, require decisions, or involve multiple tasks.", "OK", true, "Cancel"); + MaterialDialog materialDialog = new MaterialDialog(this, "عنوان دیالوگ", "دیالوگ ها به کاربران در مورد یک کار اطلاع می دهند و می توانند حاوی اطلاعات حیاتی باشند، نیاز به تصمیم گیری داشته باشند یا چندین کار را شامل شوند.", "حله", true, "انصراف", RightToLeft.Yes); DialogResult result = materialDialog.ShowDialog(this); - MaterialSnackBar SnackBarMessage = new MaterialSnackBar(result.ToString(),750); + MaterialSnackBar SnackBarMessage = new MaterialSnackBar(result.ToString(),750, false, "حله",false, RightToLeft.Yes); SnackBarMessage.Show(this); } From afb049dc77223da41ab0dd992430c4d9b4024567 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Sat, 11 Jun 2022 12:45:30 +0430 Subject: [PATCH 24/30] RTL supported in README --- MaterialSkin/Controls/MaterialSlider.cs | 39 +- MaterialSkin/Controls/MaterialTextBox.cs | 9 +- MaterialSkinExample.RTL/MainForm.Designer.cs | 408 ++++++++++--------- MaterialSkinExample.RTL/MainForm.resx | 48 +-- README.md | 62 +-- 5 files changed, 290 insertions(+), 276 deletions(-) diff --git a/MaterialSkin/Controls/MaterialSlider.cs b/MaterialSkin/Controls/MaterialSlider.cs index 9c0e0950..a9ca2c52 100644 --- a/MaterialSkin/Controls/MaterialSlider.cs +++ b/MaterialSkin/Controls/MaterialSlider.cs @@ -442,25 +442,32 @@ protected override void OnPaint(PaintEventArgs e) using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { + // Draw text if (_showText == true) - // Draw text + { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( - Text, - SkinManager.getLogFontByType(_fontType, RightToLeft), - Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, - _textRectangle.Location, - _textRectangle.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); - - if (_showValue==true) + Text, + SkinManager.getLogFontByType(_fontType, RightToLeft), + Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, + _textRectangle.Location, + _textRectangle.Size, + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); + } + + // Draw value - NativeText.DrawTransparentText( - Value.ToString()+ValueSuffix, - SkinManager.getLogFontByType(_fontType, RightToLeft), - Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, - _valueRectangle.Location, - _valueRectangle.Size, - NativeTextRenderer.TextAlignFlags.Right | NativeTextRenderer.TextAlignFlags.Middle); + if (_showValue == true) + { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Left : NativeTextRenderer.TextAlignFlags.Right; + NativeText.DrawTransparentText( + Value.ToString() + ValueSuffix, + SkinManager.getLogFontByType(_fontType, RightToLeft), + Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, + _valueRectangle.Location, + _valueRectangle.Size, + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); + } } } diff --git a/MaterialSkin/Controls/MaterialTextBox.cs b/MaterialSkin/Controls/MaterialTextBox.cs index 73d04e60..e27f9e07 100644 --- a/MaterialSkin/Controls/MaterialTextBox.cs +++ b/MaterialSkin/Controls/MaterialTextBox.cs @@ -653,13 +653,14 @@ protected override void OnPaint(PaintEventArgs pevent) LINE_Y - BOTTOM_PADDING * 2); // not tall // Draw user text + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( textToDisplay, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), Enabled ? SkinManager.TextHighEmphasisColor : SkinManager.TextDisabledOrHintColor, textRect.Location, textRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } if (Focused) @@ -670,13 +671,14 @@ protected override void OnPaint(PaintEventArgs pevent) // Draw Selected Text using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( textSelected, SkinManager.getLogFontByType(MaterialSkinManager.fontType.Subtitle1, RightToLeft), SkinManager.ColorScheme.TextColor, textSelectRect.Location, textSelectRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } @@ -687,6 +689,7 @@ protected override void OnPaint(PaintEventArgs pevent) { using (NativeTextRenderer NativeText = new NativeTextRenderer(g)) { + var textAlignFlag = RightToLeft == RightToLeft.Yes ? NativeTextRenderer.TextAlignFlags.Right : NativeTextRenderer.TextAlignFlags.Left; NativeText.DrawTransparentText( Hint, SkinManager.getTextBoxFontBySize(hintTextSize, RightToLeft), @@ -698,7 +701,7 @@ protected override void OnPaint(PaintEventArgs pevent) SkinManager.TextDisabledOrHintColor, // Disabled hintRect.Location, hintRect.Size, - NativeTextRenderer.TextAlignFlags.Left | NativeTextRenderer.TextAlignFlags.Middle); + textAlignFlag | NativeTextRenderer.TextAlignFlags.Middle); } } } diff --git a/MaterialSkinExample.RTL/MainForm.Designer.cs b/MaterialSkinExample.RTL/MainForm.Designer.cs index 10f45ace..be86f117 100644 --- a/MaterialSkinExample.RTL/MainForm.Designer.cs +++ b/MaterialSkinExample.RTL/MainForm.Designer.cs @@ -35,24 +35,24 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - MaterialSkin.MaterialListBoxItem materialListBoxItem37 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem38 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem39 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem40 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem41 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem42 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem43 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem44 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem45 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem46 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem47 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem48 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem49 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem50 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem51 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem52 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem53 = new MaterialSkin.MaterialListBoxItem(); - MaterialSkin.MaterialListBoxItem materialListBoxItem54 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem1 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem2 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem3 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem4 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem5 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem6 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem7 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem8 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem9 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem10 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem11 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem12 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem13 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem14 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem15 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem16 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem17 = new MaterialSkin.MaterialListBoxItem(); + MaterialSkin.MaterialListBoxItem materialListBoxItem18 = new MaterialSkin.MaterialListBoxItem(); this.materialCheckbox3 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialCheckbox1 = new MaterialSkin.Controls.MaterialCheckbox(); this.materialTabControl1 = new MaterialSkin.Controls.MaterialTabControl(); @@ -134,18 +134,23 @@ private void InitializeComponent() this.materialSwitch12 = new MaterialSkin.Controls.MaterialSwitch(); this.materialSwitch11 = new MaterialSkin.Controls.MaterialSwitch(); this.materialSwitch10 = new MaterialSkin.Controls.MaterialSwitch(); - this.materialTextBox21 = new MaterialSkin.Controls.MaterialTextBox2(); - this.materialMultiLineTextBox21 = new MaterialSkin.Controls.MaterialMultiLineTextBox2(); - this.materialTextBox5 = new MaterialSkin.Controls.MaterialTextBox2(); - this.materialTextBox4 = new MaterialSkin.Controls.MaterialTextBox2(); - this.materialTextBox3 = new MaterialSkin.Controls.MaterialTextBox2(); + this.materialTextBox21 = new MaterialSkin.Controls.MaterialTextBox2(RightToLeft.Yes); + this.materialMultiLineTextBox21 = new MaterialSkin.Controls.MaterialMultiLineTextBox2(RightToLeft.Yes); + this.materialTextBox5 = new MaterialSkin.Controls.MaterialTextBox2(RightToLeft.Yes); + this.materialTextBox4 = new MaterialSkin.Controls.MaterialTextBox2(RightToLeft.Yes); + this.materialTextBox3 = new MaterialSkin.Controls.MaterialTextBox2(RightToLeft.Yes); this.materialLabel27 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel56 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel23 = new MaterialSkin.Controls.MaterialLabel(); - this.materialTextBox2 = new MaterialSkin.Controls.MaterialTextBox2(); - this.materialTextBox1 = new MaterialSkin.Controls.MaterialTextBox2(); - this.materialSingleLineTextField2 = new MaterialSkin.Controls.MaterialTextBox2(); + this.materialTextBox2 = new MaterialSkin.Controls.MaterialTextBox2(RightToLeft.Yes); + this.materialTextBox1 = new MaterialSkin.Controls.MaterialTextBox2(RightToLeft.Yes); + this.materialSingleLineTextField2 = new MaterialSkin.Controls.MaterialTextBox2(RightToLeft.Yes); this.tabPage4 = new System.Windows.Forms.TabPage(); + this.materialListView1 = new MaterialSkin.Controls.MaterialListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.materialLabel39 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel28 = new MaterialSkin.Controls.MaterialLabel(); this.tabPage5 = new System.Windows.Forms.TabPage(); @@ -179,9 +184,9 @@ private void InitializeComponent() this.materialLabel48 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel47 = new MaterialSkin.Controls.MaterialLabel(); this.materialLabel46 = new MaterialSkin.Controls.MaterialLabel(); - this.materialListBox3 = new MaterialSkin.Controls.MaterialListBox(); - this.materialListBox2 = new MaterialSkin.Controls.MaterialListBox(); - this.materialListBox1 = new MaterialSkin.Controls.MaterialListBox(); + this.materialListBox3 = new MaterialSkin.Controls.MaterialListBox(RightToLeft.Yes); + this.materialListBox2 = new MaterialSkin.Controls.MaterialListBox(RightToLeft.Yes); + this.materialListBox1 = new MaterialSkin.Controls.MaterialListBox(RightToLeft.Yes); this.tabPage11 = new System.Windows.Forms.TabPage(); this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.materialExpansionPanel1 = new MaterialSkin.Controls.MaterialExpansionPanel(); @@ -216,11 +221,6 @@ private void InitializeComponent() this.item2ToolStripMenuItem = new MaterialSkin.Controls.MaterialToolStripMenuItem(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.item3ToolStripMenuItem = new MaterialSkin.Controls.MaterialToolStripMenuItem(); - this.materialListView1 = new MaterialSkin.Controls.MaterialListView(); - this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.materialTabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.tabPage7.SuspendLayout(); @@ -247,7 +247,7 @@ private void InitializeComponent() this.materialCheckbox3.Cursor = System.Windows.Forms.Cursors.Default; this.materialCheckbox3.Depth = 0; this.materialCheckbox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckbox3.Location = new System.Drawing.Point(767, 162); + this.materialCheckbox3.Location = new System.Drawing.Point(743, 162); this.materialCheckbox3.Margin = new System.Windows.Forms.Padding(0); this.materialCheckbox3.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckbox3.MouseState = MaterialSkin.MouseState.HOVER; @@ -255,9 +255,9 @@ private void InitializeComponent() this.materialCheckbox3.ReadOnly = false; this.materialCheckbox3.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialCheckbox3.Ripple = true; - this.materialCheckbox3.Size = new System.Drawing.Size(161, 37); + this.materialCheckbox3.Size = new System.Drawing.Size(185, 37); this.materialCheckbox3.TabIndex = 2; - this.materialCheckbox3.Text = "materialCheckbox3"; + this.materialCheckbox3.Text = "کادر علامت‌خور متریال ۲"; this.materialCheckbox3.UseVisualStyleBackColor = true; // // materialCheckbox1 @@ -268,7 +268,7 @@ private void InitializeComponent() this.materialCheckbox1.Cursor = System.Windows.Forms.Cursors.Default; this.materialCheckbox1.Depth = 0; this.materialCheckbox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckbox1.Location = new System.Drawing.Point(773, 120); + this.materialCheckbox1.Location = new System.Drawing.Point(752, 120); this.materialCheckbox1.Margin = new System.Windows.Forms.Padding(0); this.materialCheckbox1.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckbox1.MouseState = MaterialSkin.MouseState.HOVER; @@ -276,9 +276,9 @@ private void InitializeComponent() this.materialCheckbox1.ReadOnly = false; this.materialCheckbox1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialCheckbox1.Ripple = true; - this.materialCheckbox1.Size = new System.Drawing.Size(155, 37); + this.materialCheckbox1.Size = new System.Drawing.Size(176, 37); this.materialCheckbox1.TabIndex = 1; - this.materialCheckbox1.Text = "materialCheckbox1"; + this.materialCheckbox1.Text = "کادر علامت‌خور متریال ۱"; this.materialCheckbox1.UseVisualStyleBackColor = true; // // materialTabControl1 @@ -1600,17 +1600,17 @@ private void InitializeComponent() this.materialRadioButton5.Cursor = System.Windows.Forms.Cursors.Default; this.materialRadioButton5.Depth = 0; this.materialRadioButton5.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton5.Location = new System.Drawing.Point(460, 247); + this.materialRadioButton5.Location = new System.Drawing.Point(460, 246); this.materialRadioButton5.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton5.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton5.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton5.Name = "materialRadioButton5"; this.materialRadioButton5.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialRadioButton5.Ripple = true; - this.materialRadioButton5.Size = new System.Drawing.Size(176, 37); + this.materialRadioButton5.Size = new System.Drawing.Size(173, 37); this.materialRadioButton5.TabIndex = 10; this.materialRadioButton5.TabStop = true; - this.materialRadioButton5.Text = "materialRadioButton5"; + this.materialRadioButton5.Text = "دکمه رادیویی متریال ۴"; this.materialRadioButton5.UseVisualStyleBackColor = true; // // materialLabel26 @@ -1634,17 +1634,17 @@ private void InitializeComponent() this.materialRadioButton4.Depth = 0; this.materialRadioButton4.Enabled = false; this.materialRadioButton4.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton4.Location = new System.Drawing.Point(460, 205); + this.materialRadioButton4.Location = new System.Drawing.Point(459, 204); this.materialRadioButton4.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton4.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton4.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton4.Name = "materialRadioButton4"; this.materialRadioButton4.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialRadioButton4.Ripple = true; - this.materialRadioButton4.Size = new System.Drawing.Size(176, 37); + this.materialRadioButton4.Size = new System.Drawing.Size(174, 37); this.materialRadioButton4.TabIndex = 9; this.materialRadioButton4.TabStop = true; - this.materialRadioButton4.Text = "materialRadioButton4"; + this.materialRadioButton4.Text = "دکمه رادیویی متریال ۳"; this.materialRadioButton4.UseVisualStyleBackColor = true; // // materialRadioButton1 @@ -1653,17 +1653,17 @@ private void InitializeComponent() this.materialRadioButton1.Cursor = System.Windows.Forms.Cursors.Default; this.materialRadioButton1.Depth = 0; this.materialRadioButton1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton1.Location = new System.Drawing.Point(465, 121); + this.materialRadioButton1.Location = new System.Drawing.Point(465, 120); this.materialRadioButton1.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton1.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton1.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton1.Name = "materialRadioButton1"; this.materialRadioButton1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialRadioButton1.Ripple = true; - this.materialRadioButton1.Size = new System.Drawing.Size(171, 37); + this.materialRadioButton1.Size = new System.Drawing.Size(168, 37); this.materialRadioButton1.TabIndex = 6; this.materialRadioButton1.TabStop = true; - this.materialRadioButton1.Text = "materialRadioButton1"; + this.materialRadioButton1.Text = "دکمه رادیویی متریال ۱"; this.materialRadioButton1.UseVisualStyleBackColor = true; // // materialRadioButton2 @@ -1672,17 +1672,17 @@ private void InitializeComponent() this.materialRadioButton2.Cursor = System.Windows.Forms.Cursors.Default; this.materialRadioButton2.Depth = 0; this.materialRadioButton2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - this.materialRadioButton2.Location = new System.Drawing.Point(461, 163); + this.materialRadioButton2.Location = new System.Drawing.Point(461, 162); this.materialRadioButton2.Margin = new System.Windows.Forms.Padding(0); this.materialRadioButton2.MouseLocation = new System.Drawing.Point(-1, -1); this.materialRadioButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialRadioButton2.Name = "materialRadioButton2"; this.materialRadioButton2.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialRadioButton2.Ripple = true; - this.materialRadioButton2.Size = new System.Drawing.Size(175, 37); + this.materialRadioButton2.Size = new System.Drawing.Size(172, 37); this.materialRadioButton2.TabIndex = 7; this.materialRadioButton2.TabStop = true; - this.materialRadioButton2.Text = "materialRadioButton2"; + this.materialRadioButton2.Text = "دکمه رادیویی متریال ۲"; this.materialRadioButton2.UseVisualStyleBackColor = true; // // materialSwitch3 @@ -1747,7 +1747,7 @@ private void InitializeComponent() this.materialCheckBox6.Depth = 0; this.materialCheckBox6.Enabled = false; this.materialCheckBox6.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckBox6.Location = new System.Drawing.Point(769, 246); + this.materialCheckBox6.Location = new System.Drawing.Point(742, 246); this.materialCheckBox6.Margin = new System.Windows.Forms.Padding(0); this.materialCheckBox6.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckBox6.MouseState = MaterialSkin.MouseState.HOVER; @@ -1755,9 +1755,9 @@ private void InitializeComponent() this.materialCheckBox6.ReadOnly = false; this.materialCheckBox6.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialCheckBox6.Ripple = true; - this.materialCheckBox6.Size = new System.Drawing.Size(159, 37); + this.materialCheckBox6.Size = new System.Drawing.Size(186, 37); this.materialCheckBox6.TabIndex = 5; - this.materialCheckBox6.Text = "materialCheckBox6"; + this.materialCheckBox6.Text = "کادر علامت‌خور متریال ۴"; this.materialCheckBox6.UseVisualStyleBackColor = true; // // materialCheckBox5 @@ -1769,7 +1769,7 @@ private void InitializeComponent() this.materialCheckBox5.Depth = 0; this.materialCheckBox5.Enabled = false; this.materialCheckBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialCheckBox5.Location = new System.Drawing.Point(767, 204); + this.materialCheckBox5.Location = new System.Drawing.Point(741, 204); this.materialCheckBox5.Margin = new System.Windows.Forms.Padding(0); this.materialCheckBox5.MouseLocation = new System.Drawing.Point(-1, -1); this.materialCheckBox5.MouseState = MaterialSkin.MouseState.HOVER; @@ -1777,9 +1777,9 @@ private void InitializeComponent() this.materialCheckBox5.ReadOnly = false; this.materialCheckBox5.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialCheckBox5.Ripple = true; - this.materialCheckBox5.Size = new System.Drawing.Size(161, 37); + this.materialCheckBox5.Size = new System.Drawing.Size(187, 37); this.materialCheckBox5.TabIndex = 4; - this.materialCheckBox5.Text = "materialCheckBox5"; + this.materialCheckBox5.Text = "کادر علامت‌خور متریال ۳"; this.materialCheckBox5.UseVisualStyleBackColor = true; // // tabPage3 @@ -2295,6 +2295,57 @@ private void InitializeComponent() this.tabPage4.TabIndex = 3; this.tabPage4.Text = "نمونه‌ی جدول"; // + // materialListView1 + // + this.materialListView1.AllowColumnReorder = true; + this.materialListView1.AutoSizeTable = true; + this.materialListView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.materialListView1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.materialListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3, + this.columnHeader4}); + this.materialListView1.Depth = 0; + this.materialListView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); + this.materialListView1.FullRowSelect = true; + this.materialListView1.HideSelection = false; + this.materialListView1.Location = new System.Drawing.Point(372, 149); + this.materialListView1.MinimumSize = new System.Drawing.Size(200, 100); + this.materialListView1.MouseLocation = new System.Drawing.Point(-1, -1); + this.materialListView1.MouseState = MaterialSkin.MouseState.OUT; + this.materialListView1.Name = "materialListView1"; + this.materialListView1.OwnerDraw = true; + this.materialListView1.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.materialListView1.Scrollable = false; + this.materialListView1.Size = new System.Drawing.Size(547, 100); + this.materialListView1.TabIndex = 65; + this.materialListView1.UseCompatibleStateImageBehavior = false; + this.materialListView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Dessert (100g serving)"; + this.columnHeader1.Width = 200; + // + // columnHeader2 + // + this.columnHeader2.Text = "Calories"; + this.columnHeader2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.columnHeader2.Width = 99; + // + // columnHeader3 + // + this.columnHeader3.Text = "Fat (g)"; + this.columnHeader3.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.columnHeader3.Width = 94; + // + // columnHeader4 + // + this.columnHeader4.Text = "Protein (g)"; + this.columnHeader4.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.columnHeader4.Width = 154; + // // materialLabel39 // this.materialLabel39.Depth = 0; @@ -2346,12 +2397,13 @@ private void InitializeComponent() // this.materialSlider1.Depth = 0; this.materialSlider1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialSlider1.Location = new System.Drawing.Point(32, 327); + this.materialSlider1.Location = new System.Drawing.Point(604, 327); this.materialSlider1.MouseState = MaterialSkin.MouseState.HOVER; this.materialSlider1.Name = "materialSlider1"; - this.materialSlider1.Size = new System.Drawing.Size(300, 40); + this.materialSlider1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.materialSlider1.Size = new System.Drawing.Size(320, 40); this.materialSlider1.TabIndex = 66; - this.materialSlider1.Text = "materialSlider1"; + this.materialSlider1.Text = "لغزنده‌متریال۱"; this.materialSlider1.ValueSuffix = "%"; // // materialLabel49 @@ -2360,12 +2412,12 @@ private void InitializeComponent() this.materialLabel49.Depth = 0; this.materialLabel49.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel49.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel49.Location = new System.Drawing.Point(32, 234); + this.materialLabel49.Location = new System.Drawing.Point(821, 241); this.materialLabel49.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel49.Name = "materialLabel49"; - this.materialLabel49.Size = new System.Drawing.Size(109, 51); + this.materialLabel49.Size = new System.Drawing.Size(106, 51); this.materialLabel49.TabIndex = 65; - this.materialLabel49.Text = "Slider"; + this.materialLabel49.Text = "لغزنده"; // // materialFlatButton2 // @@ -2374,14 +2426,14 @@ private void InitializeComponent() this.materialFlatButton2.Depth = 0; this.materialFlatButton2.HighEmphasis = false; this.materialFlatButton2.Icon = null; - this.materialFlatButton2.Location = new System.Drawing.Point(29, 156); + this.materialFlatButton2.Location = new System.Drawing.Point(860, 156); this.materialFlatButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.materialFlatButton2.MouseState = MaterialSkin.MouseState.HOVER; this.materialFlatButton2.Name = "materialFlatButton2"; this.materialFlatButton2.NoAccentTextColor = System.Drawing.Color.Empty; - this.materialFlatButton2.Size = new System.Drawing.Size(80, 36); + this.materialFlatButton2.Size = new System.Drawing.Size(64, 36); this.materialFlatButton2.TabIndex = 1; - this.materialFlatButton2.Text = "Remove"; + this.materialFlatButton2.Text = "کاهش"; this.materialFlatButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; this.materialFlatButton2.UseAccentColor = false; this.materialFlatButton2.UseVisualStyleBackColor = true; @@ -2392,14 +2444,16 @@ private void InitializeComponent() this.materialLabel50.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.materialLabel50.Depth = 0; - this.materialLabel50.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + this.materialLabel50.Font = new System.Drawing.Font("IRANYekanMobileFN", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel50.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel50.Location = new System.Drawing.Point(29, 292); + this.materialLabel50.Location = new System.Drawing.Point(106, 292); this.materialLabel50.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel50.Name = "materialLabel50"; + this.materialLabel50.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.materialLabel50.Size = new System.Drawing.Size(821, 32); this.materialLabel50.TabIndex = 3; - this.materialLabel50.Text = "Sliders allow users to make selections from a range of values"; + this.materialLabel50.Text = "اسلایدرها به کاربران این امکان را می دهند که از طیف وسیعی از مقادیر انتخاب کنند"; + this.materialLabel50.TextAlign = System.Drawing.ContentAlignment.TopRight; // // materialLabel2 // @@ -2408,13 +2462,14 @@ private void InitializeComponent() this.materialLabel2.Depth = 0; this.materialLabel2.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); this.materialLabel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.materialLabel2.Location = new System.Drawing.Point(29, 76); + this.materialLabel2.Location = new System.Drawing.Point(106, 75); this.materialLabel2.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel2.Name = "materialLabel2"; this.materialLabel2.Size = new System.Drawing.Size(821, 63); this.materialLabel2.TabIndex = 3; - this.materialLabel2.Text = "Here we\'re showcasing the progressbar\r\nThis control is planned be improved with a" + - "nimation and more status types\r\n"; + this.materialLabel2.Text = "در اینجا ما نوار پیشرفت را به نمایش می گذاریم\r\nاین کنترل برنامه ریزی شده است که ب" + + "ا انیمیشن و انواع وضعیت بیشتر بهبود یابد"; + this.materialLabel2.TextAlign = System.Drawing.ContentAlignment.TopRight; // // MaterialButton2 // @@ -2424,14 +2479,14 @@ private void InitializeComponent() this.MaterialButton2.Depth = 0; this.MaterialButton2.HighEmphasis = true; this.MaterialButton2.Icon = null; - this.MaterialButton2.Location = new System.Drawing.Point(769, 156); + this.MaterialButton2.Location = new System.Drawing.Point(120, 156); this.MaterialButton2.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); this.MaterialButton2.MouseState = MaterialSkin.MouseState.HOVER; this.MaterialButton2.Name = "MaterialButton2"; this.MaterialButton2.NoAccentTextColor = System.Drawing.Color.Empty; this.MaterialButton2.Size = new System.Drawing.Size(64, 36); this.MaterialButton2.TabIndex = 2; - this.MaterialButton2.Text = "Add"; + this.MaterialButton2.Text = "افزایش"; this.MaterialButton2.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained; this.MaterialButton2.UseAccentColor = false; this.MaterialButton2.UseVisualStyleBackColor = true; @@ -2442,7 +2497,7 @@ private void InitializeComponent() this.materialProgressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.materialProgressBar1.Depth = 0; - this.materialProgressBar1.Location = new System.Drawing.Point(29, 142); + this.materialProgressBar1.Location = new System.Drawing.Point(120, 142); this.materialProgressBar1.MouseState = MaterialSkin.MouseState.HOVER; this.materialProgressBar1.Name = "materialProgressBar1"; this.materialProgressBar1.Size = new System.Drawing.Size(804, 5); @@ -2455,12 +2510,12 @@ private void InitializeComponent() this.materialLabel29.Depth = 0; this.materialLabel29.Font = new System.Drawing.Font("Roboto", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); this.materialLabel29.FontType = MaterialSkin.MaterialSkinManager.fontType.H3; - this.materialLabel29.Location = new System.Drawing.Point(32, 14); + this.materialLabel29.Location = new System.Drawing.Point(701, 10); this.materialLabel29.MouseState = MaterialSkin.MouseState.HOVER; this.materialLabel29.Name = "materialLabel29"; - this.materialLabel29.Size = new System.Drawing.Size(250, 51); + this.materialLabel29.Size = new System.Drawing.Size(226, 51); this.materialLabel29.TabIndex = 64; - this.materialLabel29.Text = "Progress bar"; + this.materialLabel29.Text = "نوار پیشرفت"; // // tabPage6 // @@ -2778,30 +2833,30 @@ private void InitializeComponent() this.materialListBox3.BorderColor = System.Drawing.Color.LightGray; this.materialListBox3.Depth = 0; this.materialListBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem37.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش 1"; - materialListBoxItem37.Tag = null; - materialListBoxItem37.Text = "فهرست مورد 1"; - materialListBoxItem38.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۲"; - materialListBoxItem38.Tag = null; - materialListBoxItem38.Text = "فهرست مورد ۲"; - materialListBoxItem39.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۳"; - materialListBoxItem39.Tag = null; - materialListBoxItem39.Text = "فهرست مورد ۳"; - materialListBoxItem40.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۴"; - materialListBoxItem40.Tag = null; - materialListBoxItem40.Text = "فهرست مورد ۴"; - materialListBoxItem41.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۵"; - materialListBoxItem41.Tag = null; - materialListBoxItem41.Text = "فهرست مورد ۵"; - materialListBoxItem42.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۶"; - materialListBoxItem42.Tag = null; - materialListBoxItem42.Text = "فهرست مورد ۶"; - this.materialListBox3.Items.Add(materialListBoxItem37); - this.materialListBox3.Items.Add(materialListBoxItem38); - this.materialListBox3.Items.Add(materialListBoxItem39); - this.materialListBox3.Items.Add(materialListBoxItem40); - this.materialListBox3.Items.Add(materialListBoxItem41); - this.materialListBox3.Items.Add(materialListBoxItem42); + materialListBoxItem1.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش 1"; + materialListBoxItem1.Tag = null; + materialListBoxItem1.Text = "فهرست مورد 1"; + materialListBoxItem2.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۲"; + materialListBoxItem2.Tag = null; + materialListBoxItem2.Text = "فهرست مورد ۲"; + materialListBoxItem3.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۳"; + materialListBoxItem3.Tag = null; + materialListBoxItem3.Text = "فهرست مورد ۳"; + materialListBoxItem4.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۴"; + materialListBoxItem4.Tag = null; + materialListBoxItem4.Text = "فهرست مورد ۴"; + materialListBoxItem5.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۵"; + materialListBoxItem5.Tag = null; + materialListBoxItem5.Text = "فهرست مورد ۵"; + materialListBoxItem6.SecondaryText = "یک متن ثانویه بسیار بسیار طولانی برای نمایش ۶"; + materialListBoxItem6.Tag = null; + materialListBoxItem6.Text = "فهرست مورد ۶"; + this.materialListBox3.Items.Add(materialListBoxItem1); + this.materialListBox3.Items.Add(materialListBoxItem2); + this.materialListBox3.Items.Add(materialListBoxItem3); + this.materialListBox3.Items.Add(materialListBoxItem4); + this.materialListBox3.Items.Add(materialListBoxItem5); + this.materialListBox3.Items.Add(materialListBoxItem6); this.materialListBox3.Location = new System.Drawing.Point(31, 132); this.materialListBox3.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox3.Name = "materialListBox3"; @@ -2818,30 +2873,30 @@ private void InitializeComponent() this.materialListBox2.BorderColor = System.Drawing.Color.LightGray; this.materialListBox2.Depth = 0; this.materialListBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem43.SecondaryText = "متن ثانویه ۱"; - materialListBoxItem43.Tag = null; - materialListBoxItem43.Text = "فهرست مورد ۱"; - materialListBoxItem44.SecondaryText = "متن ثانویه ۲"; - materialListBoxItem44.Tag = null; - materialListBoxItem44.Text = "فهرست مورد ۲"; - materialListBoxItem45.SecondaryText = "متن ثانویه ۳"; - materialListBoxItem45.Tag = null; - materialListBoxItem45.Text = "فهرست مورد ۳"; - materialListBoxItem46.SecondaryText = "متن ثانویه ۴"; - materialListBoxItem46.Tag = null; - materialListBoxItem46.Text = "فهرست مورد ۴"; - materialListBoxItem47.SecondaryText = "متن ثانویه ۵"; - materialListBoxItem47.Tag = null; - materialListBoxItem47.Text = "فهرست مورد ۵"; - materialListBoxItem48.SecondaryText = "متن ثانویه ۶"; - materialListBoxItem48.Tag = null; - materialListBoxItem48.Text = "فهرست مورد ۶"; - this.materialListBox2.Items.Add(materialListBoxItem43); - this.materialListBox2.Items.Add(materialListBoxItem44); - this.materialListBox2.Items.Add(materialListBoxItem45); - this.materialListBox2.Items.Add(materialListBoxItem46); - this.materialListBox2.Items.Add(materialListBoxItem47); - this.materialListBox2.Items.Add(materialListBoxItem48); + materialListBoxItem7.SecondaryText = "متن ثانویه ۱"; + materialListBoxItem7.Tag = null; + materialListBoxItem7.Text = "فهرست مورد ۱"; + materialListBoxItem8.SecondaryText = "متن ثانویه ۲"; + materialListBoxItem8.Tag = null; + materialListBoxItem8.Text = "فهرست مورد ۲"; + materialListBoxItem9.SecondaryText = "متن ثانویه ۳"; + materialListBoxItem9.Tag = null; + materialListBoxItem9.Text = "فهرست مورد ۳"; + materialListBoxItem10.SecondaryText = "متن ثانویه ۴"; + materialListBoxItem10.Tag = null; + materialListBoxItem10.Text = "فهرست مورد ۴"; + materialListBoxItem11.SecondaryText = "متن ثانویه ۵"; + materialListBoxItem11.Tag = null; + materialListBoxItem11.Text = "فهرست مورد ۵"; + materialListBoxItem12.SecondaryText = "متن ثانویه ۶"; + materialListBoxItem12.Tag = null; + materialListBoxItem12.Text = "فهرست مورد ۶"; + this.materialListBox2.Items.Add(materialListBoxItem7); + this.materialListBox2.Items.Add(materialListBoxItem8); + this.materialListBox2.Items.Add(materialListBoxItem9); + this.materialListBox2.Items.Add(materialListBoxItem10); + this.materialListBox2.Items.Add(materialListBoxItem11); + this.materialListBox2.Items.Add(materialListBoxItem12); this.materialListBox2.Location = new System.Drawing.Point(357, 132); this.materialListBox2.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox2.Name = "materialListBox2"; @@ -2859,30 +2914,30 @@ private void InitializeComponent() this.materialListBox1.BorderColor = System.Drawing.Color.LightGray; this.materialListBox1.Depth = 0; this.materialListBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); - materialListBoxItem49.SecondaryText = ""; - materialListBoxItem49.Tag = null; - materialListBoxItem49.Text = "فهرست مورد ۱"; - materialListBoxItem50.SecondaryText = ""; - materialListBoxItem50.Tag = null; - materialListBoxItem50.Text = "فهرست مورد ۲"; - materialListBoxItem51.SecondaryText = ""; - materialListBoxItem51.Tag = null; - materialListBoxItem51.Text = "فهرست مورد ۳"; - materialListBoxItem52.SecondaryText = ""; - materialListBoxItem52.Tag = null; - materialListBoxItem52.Text = "فهرست مورد ۴"; - materialListBoxItem53.SecondaryText = ""; - materialListBoxItem53.Tag = null; - materialListBoxItem53.Text = "فهرست مورد ۵"; - materialListBoxItem54.SecondaryText = ""; - materialListBoxItem54.Tag = null; - materialListBoxItem54.Text = "فهرست مورد ۶"; - this.materialListBox1.Items.Add(materialListBoxItem49); - this.materialListBox1.Items.Add(materialListBoxItem50); - this.materialListBox1.Items.Add(materialListBoxItem51); - this.materialListBox1.Items.Add(materialListBoxItem52); - this.materialListBox1.Items.Add(materialListBoxItem53); - this.materialListBox1.Items.Add(materialListBoxItem54); + materialListBoxItem13.SecondaryText = ""; + materialListBoxItem13.Tag = null; + materialListBoxItem13.Text = "فهرست مورد ۱"; + materialListBoxItem14.SecondaryText = ""; + materialListBoxItem14.Tag = null; + materialListBoxItem14.Text = "فهرست مورد ۲"; + materialListBoxItem15.SecondaryText = ""; + materialListBoxItem15.Tag = null; + materialListBoxItem15.Text = "فهرست مورد ۳"; + materialListBoxItem16.SecondaryText = ""; + materialListBoxItem16.Tag = null; + materialListBoxItem16.Text = "فهرست مورد ۴"; + materialListBoxItem17.SecondaryText = ""; + materialListBoxItem17.Tag = null; + materialListBoxItem17.Text = "فهرست مورد ۵"; + materialListBoxItem18.SecondaryText = ""; + materialListBoxItem18.Tag = null; + materialListBoxItem18.Text = "فهرست مورد ۶"; + this.materialListBox1.Items.Add(materialListBoxItem13); + this.materialListBox1.Items.Add(materialListBoxItem14); + this.materialListBox1.Items.Add(materialListBoxItem15); + this.materialListBox1.Items.Add(materialListBoxItem16); + this.materialListBox1.Items.Add(materialListBoxItem17); + this.materialListBox1.Items.Add(materialListBoxItem18); this.materialListBox1.Location = new System.Drawing.Point(691, 132); this.materialListBox1.MouseState = MaterialSkin.MouseState.HOVER; this.materialListBox1.Name = "materialListBox1"; @@ -3361,57 +3416,6 @@ private void InitializeComponent() this.item3ToolStripMenuItem.Size = new System.Drawing.Size(170, 30); this.item3ToolStripMenuItem.Text = "Item 3"; // - // materialListView1 - // - this.materialListView1.AllowColumnReorder = true; - this.materialListView1.AutoSizeTable = true; - this.materialListView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.materialListView1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.materialListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.columnHeader1, - this.columnHeader2, - this.columnHeader3, - this.columnHeader4}); - this.materialListView1.Depth = 0; - this.materialListView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 34F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel); - this.materialListView1.FullRowSelect = true; - this.materialListView1.HideSelection = false; - this.materialListView1.Location = new System.Drawing.Point(372, 149); - this.materialListView1.MinimumSize = new System.Drawing.Size(200, 100); - this.materialListView1.MouseLocation = new System.Drawing.Point(-1, -1); - this.materialListView1.MouseState = MaterialSkin.MouseState.OUT; - this.materialListView1.Name = "materialListView1"; - this.materialListView1.OwnerDraw = true; - this.materialListView1.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.materialListView1.Scrollable = false; - this.materialListView1.Size = new System.Drawing.Size(547, 100); - this.materialListView1.TabIndex = 65; - this.materialListView1.UseCompatibleStateImageBehavior = false; - this.materialListView1.View = System.Windows.Forms.View.Details; - // - // columnHeader1 - // - this.columnHeader1.Text = "Dessert (100g serving)"; - this.columnHeader1.Width = 200; - // - // columnHeader2 - // - this.columnHeader2.Text = "Calories"; - this.columnHeader2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.columnHeader2.Width = 99; - // - // columnHeader3 - // - this.columnHeader3.Text = "Fat (g)"; - this.columnHeader3.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.columnHeader3.Width = 94; - // - // columnHeader4 - // - this.columnHeader4.Text = "Protein (g)"; - this.columnHeader4.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.columnHeader4.Width = 154; - // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); diff --git a/MaterialSkinExample.RTL/MainForm.resx b/MaterialSkinExample.RTL/MainForm.resx index 96f79af3..5d7f62e4 100644 --- a/MaterialSkinExample.RTL/MainForm.resx +++ b/MaterialSkinExample.RTL/MainForm.resx @@ -117,6 +117,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + در اینجا فهرستی از هر گونه‌ای که یک دکمه Material می‌تواند باشد، آمده است. سایه های دکمه موجود فقط در زمان اجرا کشیده می شوند. +روی آنها کلیک کنید و آن انیمیشن های شیرین را بررسی کنید. اوه بله، دکمه‌ها از تم و رنگ‌ها پیروی می‌کنند، آن‌ها را نیز تغییر دهید. +به طور معمول دکمه ها باید AutoSize = true باشند، اما به خاطر OCD من، در اینجا روی false تنظیم شده است. +اگر هر یک از دکمه ها هنگام طراحی عجیب به نظر می رسد، رنگ پس زمینه برگه را از شفاف به سفید تغییر دهید. + 219, 17 @@ -125,7 +131,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABs - NgAAAk1TRnQBSQFMAgEBEgEAAaABBwGgAQcBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + NgAAAk1TRnQBSQFMAgEBEgEAAbgBBwG4AQcBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABeAMAAQEBAAEgBgABtP8A/wD/ADEAAwwBEAM9AWcDWAG7A1wB5wMAAf8DAAH/A10B4wNUAa8DOQFf AwYBCCgAAy8BSQNdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNdAeMDLgFI5AADPgFrA2AB6wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ @@ -145,14 +151,14 @@ Af8DAAH/AwAB/wNZAccUAAMGAf4DAAH/HAADWQHEAwAB/wMAAf8DAAH/A1kBxAsAAf8DAAH/1wAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbwNAAW8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNdAeMUAAMGAf4DAAH/OwAB/wMAAf/XAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8UAAM/Af0DAAH/OwAB/wMA + AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8UAANAAf0DAAH/OwAB/wMA Af/UAANdAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A1kBwxQAAz8B/QMAAf87AAH/AwAB/9QAA1QBrwMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSwGPFAADPwH9AwAB/zsA + AwAB/wMAAf8DAAH/A1kBwxQAA0AB/QMAAf87AAH/AwAB/9QAA1QBrwMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSwGPFAADQAH9AwAB/zsA Af8DAAH/1AADOQFfAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMqAUAUAAM/Af0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + AwAB/wMAAf8DAAH/AwAB/wMqAUAUAANAAf0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/9QAAwYBCANcAd8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/A0sBjwNLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxxgAAz8B/QMA + AwAB/wMAAf8DAAH/A0sBjwNLAY8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBxxgAA0AB/QMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/2AADNQFXAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AyEB+wMoATwYAAMrAfwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA @@ -212,11 +218,11 @@ A1oB6QMAAf8DAAH/AwAB/wMAAf8DAAH/A1sB2CgAA1IBpgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNS AaYsAAMZASMDFAEcA1cBtwMAAf8DAAH/AwAB/wMAAf8DVgGzAyoBQAMJAQwDCQEMAyoBQANWAbMDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADUAGeAwAB/wNCAXUIAAMvAUoDAAH/A0EB+QNDAXcDEgEY - AxIBGANDAXcDQQH5Az8B/QMiATIIAANGAX8DAAH/A0wBkhAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DYAHr + AxIBGANDAXcDQQH5A0AB/QMiATIIAANGAX8DAAH/A0wBkhAAA1EBpQMAAf8DAAH/AwAB/wMAAf8DYAHr Ax8BLQQAAx4BKwNaAekDWgHpAx8BLAQAAx8BLANcAeoDAAH/AwAB/wMAAf8DAAH/A1EBpSgAA14B5QMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUsAANZAcQDWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADNQFWAwAB/wNf - AeADAwEECAADRwGCAwAB/wMAAf8DAAH/AwAB/wMAAf8DPwH9A0ABbwgAAwUBBwNdAeMDAAH/AysBQhAA + AeADAwEECAADRwGCAwAB/wMAAf8DAAH/AwAB/wMAAf8DQAH9A0ABbwgAAwUBBwNdAeMDAAH/AysBQhAA AzUBVQMAAf8DAAH/AwAB/wMAAf8DSAGFBAADHgErA1oB6QMAAf8DAAH/A1oB6QMfASwEAANHAYMDAAH/ AwAB/wMAAf8DAAH/AzUBVSgAA14B5QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAeUvAAH/AwAB/wcA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA @@ -224,11 +230,11 @@ A1wByRQAAwQBBgNcAdwDAAH/AwAB/wMAAf8DXAHfA0cBgwNaAekDAAH/AwAB/wMAAf8DAAH/A1wB6gNH AYMDWwHeAwAB/wMAAf8DAAH/A1wB3AMEAQYoAANSAaYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUgGm LwAB/wMAAf8IAAMUARwDVwG3AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/A10B4wMuAUgQAAMyAVADBgH+Az8B/QMyAVEoAAMzAVMDKwH8AyEB+wMnAToYAAMzAVIDAAH/ + Af8DAAH/A10B4wMuAUgQAAMyAVADBgH+A0AB/QMyAVEoAAMzAVMDKwH8AyEB+wMnAToYAAMzAVIDAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AzMBUiwAAxQBHANdAe0DAAH/AwAB/wMAAf8DAAH/A10B7QMUARwgAANZAcQDAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DWQHEAxUBHQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DBgH+AzkBXygAA0kBhwMA - Af8DPwH9A0YBfgMDAQQYAAMDAQQDQgF2AysB/AMAAf8DQgF1IAADSgGLAwAB/wMAAf8DAAH/AwAB/wMA + Af8DQAH9A0YBfgMDAQQYAAMDAQQDQgF2AysB/AMAAf8DQgF1IAADSgGLAwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSgGLNAADFAEcA1IBpgNhAeYDYQHm A1IBpgMUARwkAANZAcQDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DWQHEAxkBIwMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wNcAeoDOwFjLAADAQECA0kBhwMAAf8DAAH/A2AB4QNCAXUDJAE1AwsBDwMRARcDJAE1 @@ -245,9 +251,9 @@ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DXQHiNAADHgErGP8DIAEuOAADMQRPAfMDAAH/A1kB8gNcAdwDAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DIQH7NAADFwEgAwAB/wNcAd83AAH/AwAB/wMnATs4AAMnATsDAAH/AwAB/0AACP9AAAND - AXgDPwH9AwAB/wNUAasDFAEbAxABFQNaAdMDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAcs0AAMXASADAAH/ + AXgDQAH9AwAB/wNUAasDFAEbAxABFQNaAdMDAAH/AwAB/wMAAf8DAAH/AwAB/wNbAcs0AAMXASADAAH/ A1wB3zcAAf8DAAH/QwAB/wMAAf9AAAj/PAADQwF3AwAB/wMrAfwDQAFxDAADEAEVA1gBuwMAAf8DWAHv - A10B0gNRAaUDGQEjNAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf9AAAj/OAADMgFQAz8B/QMr + A10B0gNRAaUDGQEjNAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf9AAAj/OAADMgFQA0AB/QMr AfwDNQFVYAADFwEgAwAB/wNcAd80AAMGAf4DAAH/QwAB/wMAAf8oAANdAdIDXQHSEAAI/zQAAxYBHwNP AfMDAAH/A0ABcVAAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wNLAY8cAAMGAf4DAAH/QwAB/wMAAf8oAAj/EAAI/zQAA1IBpwMAAf8DVAGrVAADVgGzAwAB/wMA @@ -255,16 +261,16 @@ AR0DRgGAA0YBgAMVAR0bAAH/AwAB/ygACP8QAAj/MAADJwE7AwYB/gNZAfIDFAEbVAADBgEIA0oBiwMh AfsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNRAfcDQQFzAwMBBBwAAwYB/gMAAf8QAAMC AQMDQAFwA1kB8gMAAf8DAAH/A1kB8gNAAXADAgEDEwAB/wMAAf8oAAj/EAADYAHUA14B1TAAA1QBqwMA - Af8DXwHbAxABFVwAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbyQAAz8B/QMA + Af8DXwHbAxABFVwAA0sBjwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0ABbyQAA0AB/QMA Af8MAAMjATMDXAHMAwAB/wNdAeIDMQFPAzEBTwNdAeIDAAH/A1wBzAMjATMPAAH/AwAB/ygACP9EAAMK AQ4DUQH3AwAB/wMAAf8DWgHTAxABFVgAAyYBOAMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AxQBHCQAAz8B/QMAAf8EAAMKAQ0DSwGPAysB/AMrAfwDSwGPAwoBDQgAAwoBDQNLAY8DKwH8AysB/ANL + AxQBHCQAA0AB/QMAAf8EAAMKAQ0DSwGPAysB/AMrAfwDSwGPAwoBDQgAAwoBDQNLAY8DKwH8AysB/ANL AY8DCgENBwAB/wMAAf8oAAj/RAADOQFfAwAB/wMAAf8DAAH/AwAB/wNWAbxfAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/ygAAz8B/QMAAf8DMQFPA10B4gMAAf8DXAHMAyMBMxgAAyMBMwNcAcwDAAH/ - A10B4gMxAU8DAAH/AwAB/ygACP9EAANOAZcDAAH/AwAB/wMAAf8DAAH/Az8B/QMCAQNbAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAz8B/QMAAf8DAAH/A1kB8gNAAW8DAgEDIAADAgEDA0ABbwNZ + AwAB/wMAAf8DAAH/AwAB/ygAA0AB/QMAAf8DMQFPA10B4gMAAf8DXAHMAyMBMxgAAyMBMwNcAcwDAAH/ + A10B4gMxAU8DAAH/AwAB/ygACP9EAANOAZcDAAH/AwAB/wMAAf8DAAH/A0AB/QMCAQNbAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAA0AB/QMAAf8DAAH/A1kB8gNAAW8DAgEDIAADAgEDA0ABbwNZ AfIDAAH/AwAB/wMAAf8cAAMfASwU/wN/Af4DHwEsOAADWQG/AwAB/wMAAf8DAAH/AwAB/wNZAfJfAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAAz8B/QMAAf8DVAGvAxUBHTAAAxUBHQNUAa8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ygAA0AB/QMAAf8DVAGvAxUBHTAAAxUBHQNUAa8DAAH/ AwAB/yAAA0ABbxD/Az0BaDwAA2EB5gMAAf8DAAH/AwAB/wMAAf8DXAHUXwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8oAANcAd8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHiJAADSAGECP8DRwGBQAADXAHcAwAB/wMA @@ -359,12 +365,6 @@ AfgBAAEfAeABAAEHAf4BAAF/AfgB4AH/AfgBAAEfAeABAAEHAf8BAAL/AeEB/wH4AQABHwHgAQABBwT/ AeMB/wH4AQABHwf/Aecc/ws= - - - در اینجا فهرستی از هر گونه‌ای که یک دکمه Material می‌تواند باشد، آمده است. سایه های دکمه موجود فقط در زمان اجرا کشیده می شوند. -روی آنها کلیک کنید و آن انیمیشن های شیرین را بررسی کنید. اوه بله، دکمه‌ها از تم و رنگ‌ها پیروی می‌کنند، آن‌ها را نیز تغییر دهید. -به طور معمول دکمه ها باید AutoSize = true باشند، اما به خاطر OCD من، در اینجا روی false تنظیم شده است. -اگر هر یک از دکمه ها هنگام طراحی عجیب به نظر می رسد، رنگ پس زمینه برگه را از شفاف به سفید تغییر دهید. 17, 17 diff --git a/README.md b/README.md index abb798e5..b04f774e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# MaterialSkin 2 for .NET WinForms +# MaterialSkin 2 for .NET WinForms with RTL support Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. @@ -22,36 +22,36 @@ You can access it [here](https://github.com/leocb/MaterialSkin/wiki) ## Current state of the MaterialSkin components -| Component | Supported | Disabled mode | Animated | -| ---------------------------- | :-------: | :-----------: | :------: | -| Backdrop | **No** | - | - | -| Banner | **No** | - | - | -| Buttons | Yes | Yes | Yes | -| Cards | Yes | N/A | N/A | -| Check Box | Yes | Yes | Yes | -| Check Box List | Yes | Yes | Yes | -| Chips | **No** | - | - | -| Combobox | Yes | Yes | Yes | -| Context Menu | Yes | Yes | Yes | -| Date Picker | **No** | - | - | -| Dialog | Yes | N/A | **No** | -| Divider | Yes | N/A | N/A | -| Drawer | Yes | N/A | Yes | -| Expansion Panel | Yes | Yes | **No** | -| Flexible Dialog (big) | Yes | Yes | N/A | -| FAB - Floating Action Button | Yes | Yes | Yes | -| Label | Yes | Yes | N/A | -| ListBox | Yes | Yes | N/A | -| ListView | Yes | **No** | N/A | -| Progress Bar | _Partial_ | **No** | **No** | -| Radio Button | Yes | Yes | Yes | -| Text field | Yes | Yes | Yes | -| Sliders | Yes | Yes | **No** | -| SnackBar | Yes | N/A | Yes | -| Switch | Yes | Yes | Yes | -| Tabs | Yes | N/A | Yes | -| Time Picker | **No** | - | - | -| Tooltips | **No** | - | - | +| Component | Supported | Disabled mode | Animated | RTL supported | +| ---------------------------- | :-------: | :-----------: | :------: | :-----------: | +| Backdrop | **No** | - | - | - | +| Banner | **No** | - | - | - | +| Buttons | Yes | Yes | Yes | Yes | +| Cards | Yes | N/A | N/A | Yes | +| Check Box | Yes | Yes | Yes | Yes | +| Check Box List | Yes | Yes | Yes | Yes | +| Chips | **No** | - | - | - | +| Combobox | Yes | Yes | Yes | Yes | +| Context Menu | Yes | Yes | Yes | Yes | +| Date Picker | **No** | - | - | - | +| Dialog | Yes | N/A | **No** | Yes | +| Divider | Yes | N/A | N/A | N/A | +| Drawer | Yes | N/A | Yes | Yes | +| Expansion Panel | Yes | Yes | **No** | Yes | +| Flexible Dialog (big) | Yes | Yes | N/A | Yes | +| FAB - Floating Action Button | Yes | Yes | Yes | Yes | +| Label | Yes | Yes | N/A | Yes | +| ListBox | Yes | Yes | N/A | Yes | +| ListView | Yes | **No** | N/A | N/A | +| Progress Bar | _Partial_ | **No** | **No** | N/A | +| Radio Button | Yes | Yes | Yes | Yes | +| Text field | Yes | Yes | Yes | Yes | +| Sliders | Yes | Yes | **No** | N/A | +| SnackBar | Yes | N/A | Yes | Yes | +| Switch | Yes | Yes | Yes | Yes | +| Tabs | Yes | N/A | Yes | Yes | +| Time Picker | **No** | - | - | - | +| Tooltips | **No** | - | - | - | All supported components have a dark theme From 691c02c50ebfc25b6ebd52fd422beaf334b4915f Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Sat, 11 Jun 2022 13:08:32 +0430 Subject: [PATCH 25/30] add gif file --- .../MaterialSkinExample.RTL.csproj | 3 +++ .../Resources/MaterialSkinExample.RTL.gif | Bin 0 -> 1560626 bytes 2 files changed, 3 insertions(+) create mode 100644 MaterialSkinExample.RTL/Resources/MaterialSkinExample.RTL.gif diff --git a/MaterialSkinExample.RTL/MaterialSkinExample.RTL.csproj b/MaterialSkinExample.RTL/MaterialSkinExample.RTL.csproj index 94068a14..80656090 100644 --- a/MaterialSkinExample.RTL/MaterialSkinExample.RTL.csproj +++ b/MaterialSkinExample.RTL/MaterialSkinExample.RTL.csproj @@ -134,6 +134,9 @@ + + + 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 ?=e!aDP;*RM@lzsDQaz3 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 z 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 r9e8UgEb_>K& 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

U3tEBXBHTQhO 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%0AXN_B9|E8=5yh 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%0AAR*H^95+DG$fQ5^s*}{U^*17p(6qw{! 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%0D}lS4PLs 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�W|B7))i^sEFPh9MdN))h9ymLc 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%0A#Nhz}_ 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

Z!EMOA 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 A_W%F@ literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/demo-6.png b/MaterialSkinExample.RTL/Resources/demo-6.png new file mode 100644 index 0000000000000000000000000000000000000000..e768467e34e78a2d320f0247fc9456f4b248cb77 GIT binary patch literal 31633 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 literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/demo-7.png b/MaterialSkinExample.RTL/Resources/demo-7.png new file mode 100644 index 0000000000000000000000000000000000000000..021616d0179f95b8359ffe071b68909f72e33a3b GIT binary patch literal 30300 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 literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/demo-8.png b/MaterialSkinExample.RTL/Resources/demo-8.png new file mode 100644 index 0000000000000000000000000000000000000000..35f960c7d30752aad136df0dae0f796ffbb8a867 GIT binary patch literal 32415 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 literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/demo-9.png b/MaterialSkinExample.RTL/Resources/demo-9.png new file mode 100644 index 0000000000000000000000000000000000000000..06df233858d9a1eba9a08dbba27930cb7cbd4062 GIT binary patch literal 30540 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 B&z=AP literal 0 HcmV?d00001 diff --git a/README.md b/README.md index e99a3f48..1e443d4b 100644 --- a/README.md +++ b/README.md @@ -2,23 +2,21 @@ Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. -> This project state is: **not very active** +> This project is ACTIVE (With some long pauses in between, but I still read every issue and check every PR) > -> This means I still read every issue and check every PR and occasionally release new versions when enough pull requests have pilled up, also [@orapps44](https://github.com/orapps44) has been doing excelent work and is keeping this project alive and updated, Thank you! ❤️ - ![home](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/MaterialSkinExample.RTL.gif) ## Nuget Package -A nuget package version is available [here](https://www.nuget.org/packages/MaterialSkin.2/) +A nuget package version is available [here](https://www.nuget.org/packages/MaterialSkin.2.RTL/) -Or simply search for MaterialSkin.2 on the **Nuget Package Manager** inside Visual Studio +Or simply search for MaterialSkin.2.RTL on the **Nuget Package Manager** inside Visual Studio ## WIKI Available! But there's not much in there for now, please contribute if you can. :smile: -You can access it [here](https://github.com/leocb/MaterialSkin/wiki) +You can access it [here](https://github.com/baqeryan/MaterialSkin/wiki) ## Current state of the MaterialSkin components @@ -55,18 +53,6 @@ You can access it [here](https://github.com/leocb/MaterialSkin/wiki) All supported components have a dark theme -## TODO List - -- [ ] Progress bar - Animation and variants, maybe round loading thingy -- [ ] Backdrop (maybe) -- [ ] Some Color code improvements and refactoring -- [ ] DatePicker -- [ ] Drawer - Header, Divider, subtitle & submenu -- [ ] Textfield ContextualMenu translation -- [ ] Controls code cleanup -- [ ] Add Noto font support - ---- ## Contributing @@ -136,7 +122,7 @@ Set your preferred colors & theme. Also add the form to the manager so it keeps #### C# (Form1.cs) ```cs -public Form1() +public Form1(RightToLeft RightToLeft = RightToLeft.Yes) : base(RightToLeft) { InitializeComponent(); From 047e7336a5403fb12613308f9c00ae436df97317 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Sun, 12 Jun 2022 10:00:23 +0430 Subject: [PATCH 28/30] README --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 1e443d4b..416287aa 100644 --- a/README.md +++ b/README.md @@ -160,37 +160,37 @@ If you love .NET and Material Design, you should definitely check out [Material ## Images *A simple demo interface with MaterialSkin components.* -![home](https://user-images.githubusercontent.com/77468294/134770847-0f20f37f-e3e7-4e15-b838-cf53b0b32c4e.png) +![home](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/demo-1.png) *The MaterialSkin Drawer (menu).* -![drawer](https://user-images.githubusercontent.com/77468294/119880600-b4570480-bf2c-11eb-9a83-e2d59b88bf22.png) +![drawer](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/demo-2.png) *Every MaterialSkin button variant - this is 1 control, 3 properties* -![buttons](https://user-images.githubusercontent.com/77468294/119880777-e1a3b280-bf2c-11eb-8042-45b767459b41.png) +![buttons](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/demo-3.png) *The MaterialSkin checkboxes, radio and Switch.* -![selection](https://user-images.githubusercontent.com/77468294/134740844-795cd759-e4dc-4592-b2c1-86896e61f66f.png) +![selection](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/demo-4.png) *Material skin textfield* -![text](https://user-images.githubusercontent.com/77468294/134825517-23f517e7-0793-4c4c-bcb2-6c2c2fb36b4a.png) +![text](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/demo-5.png) *Table control* -![table](https://user-images.githubusercontent.com/8310271/66237915-a1931a80-e6cc-11e9-8e68-bc919f533366.png) +![table](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/demo-6.png) *Progress bar* -![progress bar](https://user-images.githubusercontent.com/77468294/119880969-131c7e00-bf2d-11eb-9ec6-b00e928e59ed.png) +![progress bar](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/demo-7.png) *Cards* -![cards](https://user-images.githubusercontent.com/77468294/119881312-6f7f9d80-bf2d-11eb-93b8-e4dc58dc3a4e.png) +![cards](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/demo-8.png) *List Box* -![listbox](https://user-images.githubusercontent.com/77468294/119881063-2891a800-bf2d-11eb-93d8-d0395dc1f19e.png) +![listbox](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/demo-9.png) *Expansion Panel* -![expansion](https://user-images.githubusercontent.com/77468294/119881153-419a5900-bf2d-11eb-95a2-ab29089acdd3.png) +![expansion](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/demo-10.png) *Label* -![label](https://user-images.githubusercontent.com/77468294/132769098-440841c8-07d2-4b9b-bff7-e525402525dd.png) +![label](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/demo-11.png) *MaterialSkin using a custom color scheme.* ![custom](https://user-images.githubusercontent.com/77468294/119881411-8e7e2f80-bf2d-11eb-9fa3-883eceabfadc.png) From 1d7aa86d9b1a6549febea2e527a9c34c32d9a6b0 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Tue, 14 Jun 2022 11:01:40 +0430 Subject: [PATCH 29/30] bugfix --- MaterialSkin/MaterialSkinCore.csproj | 2 +- MaterialSkin/MaterialSkinManager.cs | 25 +++++++++++-------- MaterialSkin/Properties/Resources.Designer.cs | 2 +- MaterialSkin/Properties/Settings.Designer.cs | 2 +- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/MaterialSkin/MaterialSkinCore.csproj b/MaterialSkin/MaterialSkinCore.csproj index 0cbda138..efec56b9 100644 --- a/MaterialSkin/MaterialSkinCore.csproj +++ b/MaterialSkin/MaterialSkinCore.csproj @@ -1,6 +1,6 @@  - net5.0-windows;net48;net461 + net5.0-windows;net48;net472;net461 win Library false diff --git a/MaterialSkin/MaterialSkinManager.cs b/MaterialSkin/MaterialSkinManager.cs index f443d2c2..f45623f2 100644 --- a/MaterialSkin/MaterialSkinManager.cs +++ b/MaterialSkin/MaterialSkinManager.cs @@ -397,8 +397,7 @@ public IntPtr getTextBoxFontBySize(int size,RightToLeft RightToLeft= RightToLeft public IntPtr getLogFontByType(fontType type, RightToLeft RightToLeft = RightToLeft.No) { var rtl = (RightToLeft == RightToLeft.Yes) ? "_RTL" : ""; - var result = logicalFonts.FirstOrDefault(i => i.Key == $"{Enum.GetName(typeof(fontType), type)}{rtl}").Value; - return result==null?logicalFonts.First().Value:result; + return logicalFonts.Any(i => i.Key == $"{Enum.GetName(typeof(fontType), type)}{rtl}") ? logicalFonts.First(i => i.Key == $"{Enum.GetName(typeof(fontType), type)}{rtl}").Value : logicalFonts.First().Value; } // Font stuff @@ -411,17 +410,23 @@ public IntPtr getLogFontByType(fontType type, RightToLeft RightToLeft = RightToL private void addFont(byte[] fontdata) { - // Add font to system table in memory - int dataLength = fontdata.Length; + try + { + // Add font to system table in memory + int dataLength = fontdata.Length; - IntPtr ptrFont = Marshal.AllocCoTaskMem(dataLength); - Marshal.Copy(fontdata, 0, ptrFont, dataLength); + IntPtr ptrFont = Marshal.AllocCoTaskMem(dataLength); + Marshal.Copy(fontdata, 0, ptrFont, dataLength); - // GDI Font - NativeTextRenderer.AddFontMemResourceEx(fontdata, dataLength, IntPtr.Zero, out _); + // GDI Font + NativeTextRenderer.AddFontMemResourceEx(fontdata, dataLength, IntPtr.Zero, out _); - // GDI+ Font - privateFontCollection.AddMemoryFont(ptrFont, dataLength); + // GDI+ Font + privateFontCollection.AddMemoryFont(ptrFont, dataLength); + } + catch (Exception) + { + } } private void addFontRtl(byte[] fontdata) diff --git a/MaterialSkin/Properties/Resources.Designer.cs b/MaterialSkin/Properties/Resources.Designer.cs index 9edb332d..32626c7a 100644 --- a/MaterialSkin/Properties/Resources.Designer.cs +++ b/MaterialSkin/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace MaterialSkin.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class Resources { diff --git a/MaterialSkin/Properties/Settings.Designer.cs b/MaterialSkin/Properties/Settings.Designer.cs index 0efe634d..a2d77a34 100644 --- a/MaterialSkin/Properties/Settings.Designer.cs +++ b/MaterialSkin/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace MaterialSkin.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.2.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.2.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); From 88d44d29b68511cfd7aaac96ab8b71c2a9de1928 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Tue, 14 Jun 2022 11:07:59 +0430 Subject: [PATCH 30/30] 2.3.1.1 --- MaterialSkin/Properties/AssemblyInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MaterialSkin/Properties/AssemblyInfo.cs b/MaterialSkin/Properties/AssemblyInfo.cs index f916d069..0c937be7 100644 --- a/MaterialSkin/Properties/AssemblyInfo.cs +++ b/MaterialSkin/Properties/AssemblyInfo.cs @@ -32,6 +32,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.3.1.0")] -[assembly: AssemblyFileVersion("2.3.1.0")] +[assembly: AssemblyVersion("2.3.1.1")] +[assembly: AssemblyFileVersion("2.3.1.1")] [assembly: NeutralResourcesLanguage("en-US")]

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 tHZg_VJVo`G)EP~XJRQ0LIl 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

n-Q*>7F@@In& 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 V#my{G@Xir-ryyUM5d^yTzX06BJp}*& literal 0 HcmV?d00001 From 88b2175e34085dc98cc8a877b524cbf53e2d3651 Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Sat, 11 Jun 2022 13:10:36 +0430 Subject: [PATCH 26/30] add gif demo to readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b04f774e..e99a3f48 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. > > This means I still read every issue and check every PR and occasionally release new versions when enough pull requests have pilled up, also [@orapps44](https://github.com/orapps44) has been doing excelent work and is keeping this project alive and updated, Thank you! ❤️ -![home](https://user-images.githubusercontent.com/77468294/134770847-0f20f37f-e3e7-4e15-b838-cf53b0b32c4e.png) +![home](https://raw.githubusercontent.com/baqeryan/MaterialSkin/master/MaterialSkinExample.RTL/Resources/MaterialSkinExample.RTL.gif) ## Nuget Package From a68b949680ab62d42bd1dd1ebf3412d5b03e8acc Mon Sep 17 00:00:00 2001 From: ali bagherian Date: Sun, 12 Jun 2022 09:57:21 +0430 Subject: [PATCH 27/30] add demo files --- MaterialSkinExample.RTL/Resources/demo-1.png | Bin 0 -> 55058 bytes MaterialSkinExample.RTL/Resources/demo-10.png | Bin 0 -> 23088 bytes MaterialSkinExample.RTL/Resources/demo-11.png | Bin 0 -> 40836 bytes MaterialSkinExample.RTL/Resources/demo-2.png | Bin 0 -> 50327 bytes MaterialSkinExample.RTL/Resources/demo-3.png | Bin 0 -> 59231 bytes MaterialSkinExample.RTL/Resources/demo-4.png | Bin 0 -> 55828 bytes MaterialSkinExample.RTL/Resources/demo-5.png | Bin 0 -> 48505 bytes MaterialSkinExample.RTL/Resources/demo-6.png | Bin 0 -> 31633 bytes MaterialSkinExample.RTL/Resources/demo-7.png | Bin 0 -> 30300 bytes MaterialSkinExample.RTL/Resources/demo-8.png | Bin 0 -> 32415 bytes MaterialSkinExample.RTL/Resources/demo-9.png | Bin 0 -> 30540 bytes README.md | 24 ++++-------------- 12 files changed, 5 insertions(+), 19 deletions(-) create mode 100644 MaterialSkinExample.RTL/Resources/demo-1.png create mode 100644 MaterialSkinExample.RTL/Resources/demo-10.png create mode 100644 MaterialSkinExample.RTL/Resources/demo-11.png create mode 100644 MaterialSkinExample.RTL/Resources/demo-2.png create mode 100644 MaterialSkinExample.RTL/Resources/demo-3.png create mode 100644 MaterialSkinExample.RTL/Resources/demo-4.png create mode 100644 MaterialSkinExample.RTL/Resources/demo-5.png create mode 100644 MaterialSkinExample.RTL/Resources/demo-6.png create mode 100644 MaterialSkinExample.RTL/Resources/demo-7.png create mode 100644 MaterialSkinExample.RTL/Resources/demo-8.png create mode 100644 MaterialSkinExample.RTL/Resources/demo-9.png diff --git a/MaterialSkinExample.RTL/Resources/demo-1.png b/MaterialSkinExample.RTL/Resources/demo-1.png new file mode 100644 index 0000000000000000000000000000000000000000..2664ebbe64ec9877fa1e4bf1dc97293ad798d4df GIT binary patch literal 55058 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 R;72sMXG%{Cp6I>*zW`R1g^K_H literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/demo-10.png b/MaterialSkinExample.RTL/Resources/demo-10.png new file mode 100644 index 0000000000000000000000000000000000000000..345527c53ac5fb231503d1965c4495e393888dc8 GIT binary patch literal 23088 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 literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/Resources/demo-11.png b/MaterialSkinExample.RTL/Resources/demo-11.png new file mode 100644 index 0000000000000000000000000000000000000000..1ecce1fa377cd26e58b88d54685d84613e4eb26e GIT binary patch literal 40836 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 Xxe@eqC3Fe+i$Gpls`(a4iZ=D(vx9k2Cd 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 z

nV8h7F_|H7n$_2Xv%AXi+1m#UjH0|lIN%TMVNdIQQUtbj(M#dsoc+{Vnj)>mk# zET3~}{`=kBQ+|}}yJ3sd`-Ad0-}7wtrTTaE5EYZ4&{*y62-& z@Zfl$5e*!5f|wUR&c1^K*rx{n*a6zv>`z7o%lN?J8?qGCk)8o3dlX~Cu~cF94OCn8RF82} z=dmovZk8@-L>lx!)~9qygnAgOw@sPMK%t0vwqMwRza z9fW+HSBx5>)wY{}PWS8#Mj?{B5)ttD;xMPu8vWJyq(eGz@wbZEZ=<>ZJbDLcJK3vp z#_Op;R$T2`12Fgv^j`4jM4R#mj~>kTPv1RXXnme$txBku&uN+XICYnW)n`%h%Ub;i zxFM-NSbtYbuJbA8t)&mjnG+sw-Pt+-52{uvW90Q@B{4RM&+(5DNqyX;4+4BrGS{1z$jg;N0?EA6fgv$JJ zk<9cg`+)TNJTMdeZP(N4L!aM=vy{-}WqqdQ_>v8`ke`ApOmS-JCDql5e8=@cvP>;s zi;8IM+Me9}F49-%{ruLu-};>f5koitz0Y|8S4+_`3k?lPRlF8#$G6n?`3qGQ^t+Ct z{F@3K(>35{JQFmBIUFWhWv$gu!{{qoj3->zB9Ei+g6>Sq%c_Y7A~<`6>OJ$#aA(~g z>%G1Aj$AQ1gZl8O*fHhC77Qt%qDS&o zB=bJ}Iphv!PDnjj7yQ=gkvIp(&mDn*AnxGRiTH=@EOoCSEivlgOGflY$u@0~sgL^4 z570!&*Jidt&R;cs?%wW8&|qXapnPEH!FoQr6HYZ zU4Z^Ro&|A8JDS`(%`6s;)D^=Z{hsH_9EnUYP%C#JJru{FI|B4O>7vEsGxdSDAzp~x zZKBo#U-)eDi(8Nxe$)VzbWnFn{DV0vwZ4H`QGydrWOqkH$s_inWKvT3psFXbw*DxB zYn(PCD_F2?YV|QbjnpKS)hNIB1C31vT6X&Q;r4UHB}hZ{Ca;maySKVdBOavHHzE^T zTy-eG9l>mz=Vu?=3r>Kcm$R9+BieWE6X7hY!<;7VwI+pO1@fj;!o4hN{ub@ z$;`C+_36mbFm?NVo4VuE!T$dGDBsEEge=q6?b*hnV;^Bu_S1a!6JB2|;l}qUMlxJP zYy$UhGwi>=^-Cn5uDMw}9bIBvD;C_>Sb)a%NNr37Tu+I*F)r4eB_sVT8UouOGZd&$ z!vGUjs~!f#p}X+_Y3^ka4}*NCA03zo5}rXg#4#Z`AM*vD|a$zCBA*< zSWlM<^eb&>V&W{nJNfCTTVLo_n1e0s{f9BR)^={Z=AUdzq^yLw_?HZp5f-KOXyJGU|=`oxe z+m(t|q7Z`z+7~V)&YJ_e!nWJyC~BSKP`x=D?A~+MuUds>57cZen{H)dNju*Hw@M7p zS#|O_%?R4J&E|-^j+_gP9lTCGGGw_PhT8D6hUtXXT+EbwmrT0&4ym?BY3;>%&ODR{ zm{!(*YWV3UnOztMQ=Q#URBmRd{Mel+FO(1~m*^}ZTR+;q0azu$N!HMOOf!Fk&NIuuPOrB~lw-=`C&8qx-@%3vHp-ZKn zm>QG0nq;_~|G6O#DD8KfiYT-0M#N;hHB2~YxU>ds8;#`)he|Du27mw2-BfRkJ}*|Y zZSEOVb=K7LEZ&~8Vw^5_4>`~pI{Nf&&!cwJw33%*sg&xZTJ5X&P`ge?x`b76XrDsC zgUZ_4wlpPmRmODk+0UPY2?qMveQEvLpRKKRF3f&D`1hNe!=A-b;NlX6=8zi42JIE3 z-`TjqjaH3daZzjdR}|u8FUSsWv_n#$qpdqqJ?~CjS4ETLR>H)4{EV~ms7EXEc}LDY z2t+~g+>V9WpYJPm$=4UAw#>Vz^$XHQ%o*$tOj@d&O1aNGz!G3-F|uwNm26nusSP&Fryp=A)lZOqI32uuVn=WUo*4XdW4yviVok0cth8lW)59*}zb zC{u$=o_`Fr?&6a8IN;7&g*ui;K*Dx*;SOzR9^7(zHq2`hgbb;&&6jN1E|t_p`Jz4l+_%?tsH4HbSS2_M^+qt57M^#>2iqr-S1HzTS*$Xoj9%SpgX3Q zkQVQo83F7Vn!mePPHfUo!gvS3p)0dla}=~+Ub4U33B6e8d+p`-)FD2O6F;FrfUYz^ zHFI98o$r`7v%HUs9`NDW3xM77Y*?`i(7Jy=B+jVrPn+~c8Zc3jB}uiAvDVi@Q}(~F zY_!0Qe>;1=^7p9skSq&#FdOC=rFH#yjgOucHSAy7<<_=cn%pK z{{$g;KOW~a@F96hfbzo|u{`NiTqM57sHQC2x`!1h zaQV;dQH{=uOM(mGRM6IF>WDV%4B+wgfF9#s;tiSmua6ck1Yhi5j@np+gyLoow#bR^ z`qR4e^8CZuKd|kRW4<5sHT#;>&|bxS;LFJxgm@>4_-1xTt!~5`6-n|fJ^mam&%TN2 zT@x0auEu0=$LFtWt)^Ev(BMiBXcgvAGuk@^4&7xV*dr6ftLyda9x3ilv0MyXSE8H+ zb}J8+FEvQBZ<4uugVuW%4tjB9SK%d7H3{Aqz@zx${KR^zk z8t%wK^C3NzMA~;#+(BR_IEK^k4ZEzRFRnd-8Z$0-$vZ%pnPv^T^+DrbqZS|+6um9> z=!p+u!6d`X?iNJ*L0_QOzfyo5Ix7!PmBkw~tmhzgR&B$0)4|3TNScHd}th=%~VL^SIki$HT?doHQ%W_wR2sF`6>0U}VFk zKMgLb9n#D+!)fAVl3*WnXb&0Ull%2OxP5=7Yn%2ovgCc$Fv-W`9A18DRuy?_z_-2v z{~41VEG-_vB6%-g!+(k_S?sgpxDQK7Q2H`rvu2wn_cAL25V4~j2)LXHQeb!DES5MMD-wZanQBt+>B zm@HCpJ4iadi6p>~x>rcCovP8BOe^~y2X+h#nb7q9%r-Ce5l|-2hkL8Ov^ha5RG*l% zf3tfn9*$wbs&y($M?^7*cpuLFD3<%FGZsFF^+|?KPeaGNf1~F~Nj^Hn-q5OGlhYL_ zhTDkM3)rIOH-4#C#fC!a*_tv}A35J$irxttW7R@b}4Vx%MF`m8j!Vl=+ua@bj!C47;2Dam}4W&>#8(Wd^cOn4$L)3 zBC{v@ggY94tXl_02I|c>)6z#3SQ@7d!J(G?vNMn-{FHlNYa@_SIk-^@esJp9k<%)5 zZ#mFwepouO>#s@z4CAf~(@C^G^sr!2EjQd;9VPwyh#U-o&LWBiN2Caq-J}#^(7}qp zP<;yT_QsgzTI=UP8WWg<25l&69I+Aa=dNStU~Q6_hl=m6zu0itLersX)ne8bRM;+FLJq%!1=7 zL-wilyRFqwV?T|9qq^bqhuQMZC(U1vIH`89OZC2j55Qi=eY@nz}YPZ z$$ctb#D$DvQ6XCh!Dro32GKhsAn^muZSL|~#PZq_Y$c~QY!!;wfisep)JFd8F1>Ha z<>K=Ubtfa=>N+dm(MO9aGQJ~#E;_=LofbdV_ljCV)q!2^v1JZiSdwK31F;0zEs_td z_cxI;R0z^78i)tBA4LUp#oy}57hJu~u8%EG1sw27Xzy^^Ofj7>=Fec{|s zi1?6Dz07_VF!y0^y(3j`u`KGU!8{2GQ7}?g$*esrYBx=z6N?HF<%W${TLd z_~EG1OP_>jadbnb%T%N$XfpEUsmYgdTt{?@cXlQBW!A@DIE=(ev{w%@b(Z^Ng{M7Q zId{q0Z8FJPC6726c6iZZ{J~U|%#`16Gtnff*6Hhz7`kNbE2HW*KabiwC)=|KR{b)l zP7;_Yp{SJl{&}KkvFG;OR(F8c>)q1TSMJebhORAR=Af48mVn%0KZg72K*#QgU}Y0; zTnT^w__USthacKsmnQn^1~e%~O~sE4fi_I$sp$W1y5-UX=wcB~0wW@*$Ae<0Vm$4c zmP_b=@Vu8P4MHO^#FZ1vMFd;!=-v6r_OUc$N_w=57jIBx@k0}!$PQFLr0(#a4P1^GB@A#2Z%aFs7z(vw zF_@^??3sT-^RZ(J1)T55jki132i0b*a9G*{UKFhE*ORB%%EqeB$|VW{P<9M z$IIptNj1x5pnH{Ix7hM!tg27jDZ!(Gb>n^aNpxXaHFg>(->jb%Hxdc+2&W}sqxqf{ zaH1Spe{1w8eJ=h}ewXq5SQkkFHhZ%A3 z-%*relk#(16+6$sXL{r_mSGV-Hyi&q0N_#J5_E^5LUq57XoRR@;*<*%IS0r8VDG)9 z*Z_;KtOt`-eto2m@NExbBO=9&+_((J`=yg&j@~4IHG8WGL$J1v6Hxp|{kQw?kNrEn z_|BsI$XU#8bdxUZsjUupUAVs{lL^S7n9W%~*Coe{Yzu@_ZFVi;%g6(9B{z9+Xy9BJ z91fGW>}a2PpGY{1397e24wHY2{g;kbij7?I?hRQSx}rj~+!Ws;vuS6&S(*F=mrv+Y zby@ul>IUk5vZV%QL&HmcZkicc2FJrw>;x1H74s7~U05rwA5x?F@NgL`xztZi2vP&4?HrbpQ)8NN!oC~5W8&Hu91nLuu~ zWN)vSscGvvCX>h_W3FD>z#!Fi;LrAxn|FkX;ojmG0%8*iY|^X&OI`tjVQqWwHsZpu zFs?Nt5|u2O53oPy?4`l6lR$_=B(%0h27PCy+T0d7LLp6d+`ZxcCA_chc>wD_T7ZaX zm_4H}f=(L-`f(P1e1e!{u^1NoUwIWmA0lVPvGg!7!F7*Vqs2a21Qrxf9=$9KOpH4F zp(F%WhjhuiPU?#)RfP zb#kwJ4aNDlAb39rf8c@CC|6ErT+O~XzYpz9$_`N>j<}6nqCeBmEN&(Hm`+>Th7k$_ z12K(Kx`{A(1Qrn>LxV9nn?A~^-sNL4e5#vt^A`i}Mdn{?({@*K^{0cHGVAyX=VkI^W1?8&BcFiZ z^AX8>(ooUMN7Qz9Y*UzyX+T6ZE5(h4H-+C>B1V((D>{TVm;rYam3!43yg zSCrxtoAQ%qvW5zGCijNpdhvX@r>m9Ed}VspzB9%EJ&KjOThti&beO>Qby9f{Kyo}t z*1M8b>b?pp@&F77rKw_`KH9j?iC=Uvd08-v86#i6L21vA4m0f2o`25PbuvbrkoNWn zD)M~`B-FBqoXOYt%d_=M$)Tx@)#0g|s0DiK9n9h=8K9Iu`P@yvma>c2BR6_ZzN@3x zDe9nJT|T_i!L^#fr0VCID?`e%pZnjTW_9T1lDD=~vz+6d%|i!%j7jD#vQW#HZk?`m zy?eMhv3DULtD2$5V0%lS6|TX<*A?Y`{!Ia1`M1@OWXq6-bJEHs_0&+74>)$5VvbK# zu~NeoKp&D`KYfyb5HR#fi4_*`s!=*ILiE+ljoyE}6a z5*tQcMvWMSIm+A|t2AC&8t__v-2~d;Y{)b?&MUe6@s7)lc&=h=i5t8C%Xlx~D4H8$ zpl2Q{-fmRRO=^fIVYS47VKUN-X&LI3Cx-|?H%xr$-=W2(ZL6XWt|5+7^N~YsczJcR zP4_oTfa9V)Ol6|>P>MdH{-&D;NZgX|RU0`?RFkx|K3Uj@wgbr(9cT)C6bNZ;I1F zzSkl(TV;*5tANvWdG8>Z;lVG<#STOzVo^x{mSU-Ww6HWuLitY@j)O9EpUa2=+I?q9*A?VnB+YX=xWY>q`EB+ z`+bGb2+49h40Kl)GrQQZBWmty;=NaQ!8u(6;M>nLA6|O!&mD2vTto6txnZ8K6CehM zu{a&$%JfY9;I8KQi1?u%id|geDGireNpR-;W($+HZOW3kKk8saf|l1M?tj^%?1aOhYKPlIY%s6W4*+l1XFx;M0t%-v@CM z1YmJiKP$GmLwJ0a5u$(qx)wQh!CN_W`3Cau!6)$?rvr+9tS8$b zJG)qWpAG!iiAkggY3cvm=S@jX9Z0_hwpIVcmr#gaA z1p84yw_VM9L~&s&4=pQ0skIdqN~cX%1uXwf)GCk|a_lI_=f}HdJ7@+52G14H^WDxY z?Jsewf1wqbGMs($87#!gZ7-L{X1pYJq0r-L*W<3F(BQ)}u*d5ReJx@Q=07JLprI87 z0Wr2hwjh!)1^QYKj)AG4pWqG>%sekI?+h!yFvEYpxO2~C`|;_pdJJ109-{f_$iCcN z$`h#Je{E0{bOY?RtmgXyba>78`^B!21wP$T zKbD4W$LpNU`0{er&HUbEVZ+5JpXXT*&Oxoue>44lcaW}}J`I=K`9bYV_8u!)O5ke~u@;AQ2HFbsfHDhA z*y&v;GkxN>g)qL)+kPF}WT;3O9L>9tpr?f?=>UH7FY#aEa<)PQM_xghphP0G;AXM6 z`7pbYL%k|gXXk07V;qG;aPDhd=KpSiHdd~9-~6Q}PDCv4m>#;EPi-Y#V!N|&TqMFq zciOLp?im9;aE19N1+*TSozz^Dv(<``L6C`hD0srH@KsMkjlF-yPeiz9S6NTAr)wb z;(fVhs00YWp#JPaK?*X$E=YwroO8B&ri&pRFr^SHDO6lS5X+OGEdnvnJ7*h z+tG_z<@NKlem{sBR0TaH30^0Im;&Rybn8PNeY;qH0alSlWP~z8 zIs1~f8!44kwSQ@oG}UJQJI0$rqR3fz`l`O)TxAniS9z7dVEjsa=J8#NmLb-xL8^%m z+QpjN&BVbKIz3-SnpEPC-4spZ|6wSRNCHdGgixHi1xZAb?V*O=Iz)S`5@snvNv-S; zR2$rI_YU(mbAaaH3rSIswcf%PX-I1yn3aBRuo*MD<2o@XJPcy!lfruCSppTz>z&V4 z-M=Vu_xx-ju8FA529{P7NZ()VyS0g#N$mSJa-NN}~q$ix$A@3@K*brxR|;2epJ zVBBR5V6TsAakus{ec|4nxO<1$Eq!kzOh-AZqS43{KvvEE5mQbQ7gp&A#tv`bz1M@M zaFoP;R%jM7rQ4m*XcVSLt2rQ33lYbUl+LlFn9TFECLBa%+{JAhER{Uo4+RpTJR3oG zr5GBM$@~LSVw&pQkCsV3B$&e%)43-RVx&gElB1!lMZArUp!Tx}j*kRmkzzuDT%gEN zNeoR5Hgux<);&65B}n{@fTWt3+DRV@D6Hp@1_CU075DA>*9O7_$~w|Ss0M;LHipr| z*tD@Fb9YREf&3IeqB7n#^{rRktU7DZwCXY!%K{FEp*Q;{L_hDY5ej=`YAIFzlM1jf19I6_ac( zDOC;h`c^LJt66e}>u7;eWCRN!l&>Je)U`_#3qq>9+1rTWjhC$*m2weweh3OF3bJmE z7VL@7_}+4m>4b2k5`j;1a2JxBQUZkUdk*pCh@}QDrL7T7e#a74Fs0A@7a_0-Vna&S z-^#c0NWh@1DQDV{nWO|U9%@qbk>!~Sg=ab%JBG8x&d(We~R_6tq4^H#TQh5ELk62##`p)h7EDoNu#N@2j z_BTR4&UWKF4y}fR@<;2&spiBDljv@;?v2&U+qWp*bgdHTMQ{J2gdx2EE~h++6IvIc zgnRZEO%|0&hcCa{&1Hp#4`>9@bIi0TBtLd%`gQsiwL#(%f53EKuhU7vz9hUvJ#RSc z%|ML{qKX#aGxsJA3UW)>AirH#GLEl8wmHm$V1)W4)ImyY=kAp-*>+nr;*F{}95zO% zbsqufBN9n|-3Cobcb|l#IW@gq>)yC2ykDwUSwX=!3!T;+UdF=EitO0y*a!#)!tE9t zMY7;ALYbazchq+cj(r*28)s&zJXBd3(FPv?$Db0HT|U8$k1-tyH&2K=n5hK`U>C7+ zh^e>(_f4vZ*kAhpJnyZ9am;-SSN$N`Pe@ugLj%~48&23R(_kDh-?xMv51sh~K%)Oj z6y6kQ_&uqerXd5)(m!GeFV{47rR5g?SE#PMc@T0eshs$ZfKCC$PZB`uTx^h_Us9G_ zLG`|=`Pi-CF}-c&$pDY;zVpeQ_4C{StQIY?G|8d0t}vYIla-ZSZmU7o=6Wg=*2>2v zT=Or>@mWyi*Tv-jM6Kcyo9sa?x9~fCf1*qBAyLJ}W@N^BTeM@i;lgboIQU@2Idc{owyPHU9Gink;TL) zJ+O}zQk2y5-GxPSHZt(x{qKQ=MGRe1F*?SnxL9$D#zwIms{|xf$5>5e=<$(Xn{g`E ze$Ll(79F@`ZkT@Hl)Hf>$2CoWiIB>upHyVew5t9)m#%8T+G(A&rGV7BbJegH<9TXI zcoQKNT%R@(6}}0aYiN=h9V$vu0Zkq(ihSrB@ZC4~VidB=Yl22O;(MRr2++m*qQ?QOslx?Z2X6`AR>&SY9yY2CZtXO8`o(A{$~99`4STZ zn+h-#8CliYyu+L5z@WNFz{!05kn_xmH(Hv;+Say6r&W_PYGsaq_rE{7edg z!hb5fY!N4TPyL#N1MF;oxc~cv!}+H4apM6a{SfVarlQ|@qR%QcF~m1OU|0@%I^fAB z7V^s=myC6|+e)7O&|3?{JCp9miw)I`Y&d@d11%JVEPiQ*lbFK7!iJ4lKA>3uZ#oQy zXxCY}S9d#E9;qG^OuuL;%<_r^UQ}Vbz{%KpyPnnq|6b+as621`RkP@DI9K^S8w8yB z(Ju{e`kIVYjO<&n(O-b#;9T+LQV|gaMT3J<QB+C%a@!{^)O6O1-vDGH($8CGdfXTu z8A*Ct2BPJRi<>^d>&mLOyQP&UJ;9rXu~P0@n@03MFt4uzWEs`f)xd{=?^QgAU~_pa zU)lDtzm{J}ZE}DsEiL_3Qv<|m3KkYrI<+>IN}E-m=;`U11q4PSFsSCLEl~K}4h(%CTE*eOsmE8S0)8<7ktCa3}R#M-om z!B%?!w660AM+|Zy*}HcRZeFpe7tX_@jO@Gw@%%?e3^tbb`AtnRGxA=?C92-u-r~{$ zNgjZ7)QXeo!yC>YfbfEajjd~V7_n5Py!wdPz*u9QTgSjF6MV7tZhH^pOv;vgxHffi z<#1m0ZobOw9gv5d;$my0@5wRSmwS`V&-Vw-SEcr9cnJls1^=4rX zLsIDeQ)pONx*(0i{b30@RFxe)eR~mG_2FWfvlPp$uCx470#ve|o7Tv7eqK8)5Y7() z+-J3)sbMu9Wc09RFk`cPL{&I%(%MgSAwH__2HEypkvQwkWCSpueQlBt4D|F4+rxO< z+uL)kzTUZAXf&Szedh4k7@L5AyoSbX!FwIEl~!LF`2GUN9xM%Z-r%ay>{(5|s@4p? zLROu@0BE?|FwkvSRS=XqYiPUE%bL(*SW;+`#f9#jjnc)%MFziTLgL#fJWC!np;@BwjU!Sky4mE%bJ>+N}vZ?TwE+D z9s{c9>@KR<%&^xkS*|)%)$)&S@XW+SXZGVj_LR%1sQ)WadTavSoLF%R)nID&0q^4R zJg4AmeNsG(A=IBVvln`lt%W1rs5@zhUO{XPJMwm)oS$zfV3E2QLbRc&A~HpXe(lC; zs@zZXTW@=q&bu)bPlcZQURDA9DqYrWl7{|3&8+@V6VMsFm-vy_-pBz|=RFP3$a32~ z8sB=~d+ffl!q}>y!HM1jndTJ0o5WtlHjebfSz;Ltr-VDHxZSF@J zsU^6XoV`8EQMuO66Q46UBzbsK7vd)l`{#?kl)G6|D_!V#_8RmrR}%l=qj?(uMpyt8 zYvfYVz<4F|Q)7VwJ8y=#j=oUW^UM9suu$ge=0IW$vgBXtLHiBZC!ZB)|2zlW_6<9Z ze@3(HUAR59N5{^<<Xqp6 z5qqTBzTCIHCsgPGa_As(3p!61x`P0OVtF-cG0I|26ex}_v#rB=k1UDq#QiU~&-lA- z2U=x~`#&$g)~&VP*x9M;3+D;aW0<%Eqr$x^YlS$Q>pwbXC|Gz!1_i7^ENd^iYhss( z1a=^L;T;fDu4>noaA>#oM-qA`ND@8r8f+&L+&_9>2*oaT%7gHBGBwO&$Lc0tLKYf~ zR{n(2RO!>u{N4lxZJ@2qU!X9t^M3tl3$lyk$`b5!S>c;&bhQQ=lO@8yCTXkN0R#Uf zy{_wY%%b~AfauCPwcT;LPcZZV1-r_-fF6$oipoi`_=u8lv(#whyYTLgy-QT0QAK!v z@dU_D4A`=?72$N4B|&&aB@&!ZeBh9l7m}yzEgt{Z^db=OT~n+)UyPl$WOwqFKQbFU ziu#E{(Ccr%Z~eU7H{D17!}}d%lu4h>;gAA1K{a>nSZ}Lnc0>uZm(N1?_RbCufbE)| zIhS{p)NRJxsZz4C%-!5-$8*BjH4{G8-TYnw_5x}?LO#Y%2MFu&ws1$26(5{kYbrFs z`t`G)ozSn|9PFgXozRCwg2tBYXZ&L-t!GIx`N2*=$m;eW#r+rzh{h!Rw@}7aZ0ei! zbyHxL>;kv7`x?7h<>iVWZ=67;tFBFWJ;=FsiyvX9M@3C-wfKF$vz|~-WRtEY?IYq_lo1AQ*E~za%%#Jx8PvO;Ie?g)gc&fXe zG}vW%&RJ;4DGbZX!moc)+SY2!Oeb!L!zXSG!9QlY_7ND!c{tfo%8y$~4C8j8eqz!( zVtZg6qOC`!cO&F>dBGr1V}rD$#qRxr@1E0lYmRDf&(zYQ9~c!kZ|f1moE45z{^_ux zA;c0lNhq~WPLAzqO#80dBmIUX%OgCer=A|M9KVhUQX#yrw-_|hHfPWt%22J}(`pTS z=GEfSA`<;G{X;lrf>)Z~q=4c!=yGbw=g$=*a=qQ!av?Z&48QgML)pu*#jQ);?b)5n zrbt%V<@|glmFIoYWt&Mc&Fq^-IC@Gx1fT1vAfJ1cy3;-HsX*bhrE5M_=&Q_@8 zaBLpWDbe03w*P&#iPrL6i8FXJ=i?sbg_~Wgdvs+J3WW4=+f%3u+snsAzoCx~eZGtC zeG4ADU>&VNNP^YlO1{;yL(7I(iIep(NxJB*2;%cCCJ@iniFLl8OZb9)y?}jcPqLa7 z;m42`QHmYH%a@$q8Ss65W@|cVe>YapcK(rQ zUE=w68=9d04tlY_nqWZi>k*gp3890=%MpPw4_|T%lKziVwC1PnCQqP8QGOY8mG*GE zGtB=0RKcvuL`G<0Uf`}Y%tz)NGtR@B43(u+{IzG=EULP22p$Sq}m1o zx{AsxC$yB5cKG^JFKAp046!c1@Zi%JP6y^UT47n63w6Gs_7-*t)lJB91w-p9CO&Z} z7hzd9PBn$u2N8)X^f$g4Ib)s4&iAJlb8{=ui7H8i*$@167fI#I$@dyRWIHS2JXdSW zRmQ)-2r;lO&sOdAW%*=)TF%u&1z#NPo;pjLFA60+8@_)Qp8@lFa^(Qw!m9`Nth+|P z?e&YpF=JLCYt6@<>z@%+($s8%Yv_iM`YdyZafkLhfxy?zsv%a4MEaUzp~2bjV^CvG zLr4xQEiX*TW>1g1@7lLG;s`vzyBN~TFV6^IH8;Y2yh16g39iRA<(m~iw9+k=ralwJ zPY>3@o)Q z%C?r1v8)qdgeN)&<>X@HNfeA1zn9x*X!2ip0%9v}iZ8oGRO`*vJBb_! zN_l=?F+Ym}(SXb2x*G5D9QVkPj>XPibldRZgF6Q=W;~WGkuM}5%~)bccu^oZ^hz9Qm)wq^B=EzTWA{Okoz|YT%D+aD`CS0=?x2+Z@`-LxMC2xDcY8|{& zYzpx*S_3fLa55+!mKRRHF}ik~F$U!>8X`=6d-l#SIPP&#kk_1>oIxj-7^UV)ZPUz& z-J+zTQ31SXw_%PAHe$I?(Q%Y`+}zQ#Z$f8d#s~-R8YcIGzoZ`y%uhNA{v)QcdBt=W ze}S3fx~xzy8!Dw$Jv(!b>e1X(l*1MW57(LJwQq*d<5S<=gH-zu4i8Zow7ea1ld~J2)CO%uZAY=XkY_@JSiXZ3L1hBYy= zB^%QVy4pF}_`L%OoaH@hvC8zEs`Ks_WBuC2jbqo2EW=sLqSf=o{`!c~MrgU3rkO|*aQlJIaIzk% z%8&3Cg6kZ$Zqbjrn8r6@GpF2fwpzo{Q$gi{BFyfE6~&R9nEUsa&yzV6JeM_19@n&7 zCw0&R4-HS(57G&n&-ixKysJhkr9o0GfVxEN^vy_#`bm+-O~|@}ms8_A&6Ex_GLKz* zQ#y~K&ezpv$iFo%pGmk#NvarIfPU!?|M@cOu;YOq7&9OYo{KQN72F}C3Qz8MS2nsH z^^1;SuP(Fv%3k(b5GAvQ_gR&4XWt!rm!m^XOid|&8!)v?t84Zv7|)r~JviiV_KR#N z)xjr>>_;F3hRui78J&LHD-agfvZMVyjZeaZ{q9bgML@CLW^82>kCJ)Wz=Qoap?l8b z2b0@#2By`r^$0)5BC1D}_{fb`Njrr)yLx&KY+-ap?}dd(cF!MvgktZz0EI^=DRD#T zv&zV^3h=x9;$079AsmQZxFN&e%)_ydAQ+`HoT)>2%J516Ubz&LEN>kifB6slKpi5m zhAQ?{v)P8j>iBa5{jdasdT?x=L1!!>-+RKyl7Ls9a(`(#n!)qY-rhd9 ztEh6g-TS(vV~Cab!$7vC7x07|@*Jrrb;Of!%>6!9B1QGemkRDDKfB#Hu!5j!3-ZB2 zcQ*`hOtcw*Xlxd0OUKtrQu~O!qfr2$6@#2B!5RdI?J;PlrFyfw)cMP%-o`K$n^Pmk zu8QFu-2>8Fjw;+-GvoQGm$sBErDf37eJ`FOt%muj0R97bMT@xF(7?5CXR^;mw*@6u zz^t;INO83q4tG%_cLoZ7F2tJ;pHOrJU{aNMCo$7NjQ|+Hq?hqV4SN4)0msmgkT*c< z|NKgbxXFr@Nbo9dKh7b$))ExVlJ9W4r43hwQ1ux1WU(fQsSwpFc9*-h7iyO+bLFH{5F3 zlmL}3b=@lHd2Sk%i$-I^mONt0I{y#u02XCW?V=9uf1b^6C}BFHt;P?$HU{#~^`SHj`+(1Vrm1R^M92A*IUXtOHga7r1~!qS|a+xH+!0 zPsF3R!qbmBy{oNkZS@`jYRd!Q-RxBd?ztB4jSnrRPp`CvspS%#N-=9Q@EzmaSLpy0 z-`$TsJA5l^vIh6)$p(I&KuBB^Wy(4Lh;weI3I(Tkl?JV>t&PUY7@8fu!1G!k;PO0c z>gp;=n=%;)(+`>(KD`b*+S;$n1~(r0Zdg``3SHec__YKUn&R}1j;uaZMEt6&14x;O zh6WBG0D0weJ6Yak<3pFSqR> z(gI3{l7e(MDy@<#At2q|&8SF8gLH`~A>GZ;-Q5jCcgM^<2t*M9GPB&ABqD$7euVX-m+PiT_@RYeps>+4f0D)@z6tyapP&5v%_S*)+Z zQ_AYx@xc+StUM=S$Yf}Gx+ebNWUVX5+}vE!o;>JU(Azb&wNpTc17_{}Tcpw9ashz} zO#EC3$!__6)$Xo)(3jvDB^KIDmG~{xt-NHv+B}pAct=zSy;X2>b{-lZuh>j&wRQop zQy<8xc4v^^rU@j*2|?gq87+kApk;e|HZ?UhU{uq=(ProgC@kK|c!G=_9QAOZJ_v5B z0=RnI>9R(|k{bzufrSCKXuDu+dbO|nYrFNzCuYVZcF+(}7v+>4*qA zSSw|;XqLy#n`RvMkz||iF;*J)#I}voZoPaQ8tcv@1HhrdYosbHvixjN65k$N9nc0H zNEPb=(yyvauI%5>i7aewO#x{tC}3A?=;_Zvm>1v1Wsy^je@mWe@LQ;w??#)O3tnO9 zT>sq~ft;Cg-C!yJA}1OtaC_K61M{W1c?<-ny3v9sRRx&FslQyDoQfP_icuIlp?KzP zc?&ZGXZ5v6j1076PQPj&{GHw)WmEThdg7bU*=ZrfyKh-p^@qGOFc2^!fdQE=7{gkB zZ|~Rdna-ERfJT51Czf+J|AA@zwKTUIvUMPJQCb2qHQ>`eq9jqzSp1ZE@YnRr42c#t z2s!w+2z=~1*(;Cf3v#) zX9GOBGr^>Crg+LqXaq^};d}e=g1tk~rdIBJG$3%As&-_`kNeoV6s|qAQPeH$V2ux( zKO}b9o0SL9*&rC>FU^bW+W};A1&~dfwgt$^knAzx{qpgf@Dzb+pqlGX6?+YOr`C0U z{S;xHnwBQq@dy%U=46IeeW5Kd{$i2}tVY z<)usjeUdVxN`gCszGtnXADAj7{0*0Vw%kC0CLosZhWG})v%|V@vo3JCV=AFl8Slg} zy2{Ol2KsAbZ_fnQpHc_6p^(_MfPI6$9u!Z}{Xq^YB*)NAoY~!2P>}3QwT$O$0aG^Y ziDmOZODO{67=%kYAg99Nq4kQ(8@y0K;kk_>Bcf}8IA{AQh7_-ZMrt3}&pE4whLqS? zuoR3v7!WmeAfA9R=hXcCoQt zQSv4!MX-5-P!4heIwISPjNu8)IT3+H31Ht}?8sl25ib4;B*Om_>L7?@M2i0E_d-dC zi7#eh;vJ)-qu+dND`znMUOKx6rgNc<2lW!210$`lT>xY48DG2e(#PR|MR9Los;H{J z&it8#klUjXb?x5ydQTD}l!Uv4(m9U{mk!dg~~9bh}`;HOdT5K%ke# zXAQ%}+L^=;F~M;_a(iQAF@xszDG?D-D4w(we{ly5q|WH&;!*(3I{3qW<<6b3I+!l$ z9QXzxXa>*0hBpR3j=$)Lo+Gr|1`r$_i47$OvuA9S)fE8{c!ulH(fTM+#haHuz%Je2 z-_I8;oj3vDF*u?j7g0KnK4eVli;s&@A~+g=tyy4BkOV|LMxGaym}}chALEa+(o&27 zMWg#hdVrc(nyvS?7D)51KqpuO0nlwZa4yi%(E&UT8KnV%CglDD!1~RVE637B49Q_^ zTHTl3j<;4q@6(t{N_BSM+|pdf*LcvdiPTJu&-H;bA+fGlJQ*qoCS5YhW=oc}Ad5%QrmP%h)|ehH#o4AA4^aPPbwuX(o>T=-QX zg1m4-D|he?1KKz+S7Na5B%~^a(hbhdDS+)Ax%F*|w&WHl`dr#_tS`fSy4ns`tPpEC ziLB?nNfiz^DI`bT2)N0*t1Vcn*^ovLqGN6J&og@(O{nr-ANBS1S=TTXmiQR|D-3c3 zQnC-vA&7Inq=j=R!do1KfgPIANJgzvUt#6F1>F=Kupj z!t^~*IbhaxtrPLPDKg|yh;8jNtsG@s39Wf(qDszm z%|J2zyUlO^-13{mY1sjDEi-eU%_phSH=ufJlJJ4K@MIGvc7l$Q&ei9ab)=XCQK9yl zUvMW&PH!b+BdjqIQBKC&r}2mP7IHoNuRm_K3h#UNSO2;_Brlz=y|6`OMb8X`?q9~L z!%Pn4haefbdc+fZy*T0ukLl=8llo*VEG+CMbBG^(xAPKD1LwAoVDVD0J`pM~MhAh7 z_;|`RP5O5o_?xWvyNW23w;C1}EGDH1^Yb57RaNEW<(n+Zqhe#*Pq!zkeQt&8b8@^~ zU^wEJ4tS`jsJ$oJO*>SNPc1meQY2v++E6jJD)y!|Pn!-SZnUg>Mj!HjWo1Q!<>$i( za<$w?(OqA=jG8UVEfoKJ{jGw+J@)jk)_I86^UMk)<1=KmR5381WmbLv{*aaU^?|*g zT5inu@81`xZX3@i1Z*x4o`sORjnrx31^QI{(OnOFg{OK=z)#xce`*}TN0I;Xd@d&^ zCz1W1lPtG1GczY{{F}^0WjOfXg9{5Zb)IRUF%SskAgl6x-N5!EP(KTOcD}o~{`Bkf z;U`Xk--wAG{@pVYsJ}mqmqAftA|)mLQCP?!=p=GLDtW;1X5;wsi$qH}{teFlK@xbk z+}+?d!Zaene|DO9RaHH5tl2IMM6ylc1cf%5kErW8Dji0iTCNOQ;2Sbc(Tau#7>hS+ zWIo>P!b*<`B7?TpCkN(s(EcE1`=e^PL-FLKzKn`X-x(cATJJUC0pABCv2ye9fK9Lo z4Hfk*&dV%v(5d+D`I(rVCvk1wG64@5&V{~BmH04HL9NybeJ(NGl^%h3@?KND=B#UY zB2n&RHa^drjF^N4O)XWKAQaH3jY*U$0>@ zn?GZq?yi1y%OQcjSbX}suB3p|p6Kzp5iZ>Dir(DFKolz6SK7p}{#L7Bec!Y#t)(HY z{9yH5acH?%zQw58LElqLsHvyS(1XWZ=k`%qImjRJIA|S zHD0Q0JXR2!0?;uh5SO@Fc{5WG`(C?=oN5gmY&!~^!)uoAQ=MzC(X}ks#(;Cu z?(1I2%Kd)#-&URGumq@h^pE0ipjVLJH5TG`gW-_l-4D9oW>4p6*WhDAynLAbUA!gp z-Bw5Svj|dI=b^so{pwB~tzKW-@}oSaxHyQJQoJK!5bNP|7EC?M-31ytEp}dN#MzE2 zVfov*>-OD>Nl&p=IY$r~(w)l;s-s-Iu)WOn4{zD2@0NuvQx3*^zu65|Uz~lvc%O>i z;^?K3mnik(XD~3kJDi?8U1UlaqU47+e_~8!omguQ%W5tU&lIy+OuE!NxU#O;MP?wp z6nouYmkmBL+DB2+X2_SFB^-~T)!i_qTR)BNhJDj?P-hgH^xq{4`kM^#QcShi(h_C> zW1+FK{e4#7_|h9`jHI%7$rAIg@{iY1eBdG{ngTslgNnDhX-gAL+}Q5<4(x8?`i_!c zMHbIz`wXjn5iU9jjVPbhr!FU;ZSeLuw?2D6r~{sacyI@$Ysti;#4(xXUBj}6? zZxz3qyOi%(jyrxYvUaU>xT4!f9g>xVDq&_kaQWs4)-q)nci`omOck!jny`AWe>3;V zgz&p<=J5u5+#;2dSw-VwV&|lzQSpp%@fJqfJ*=`0&g*uE6sdN(=niS44<0*_wM<1t z^K(|3A|&${Y^S!`Yw6`}d1S0B;<8*6#4Q*dh1?K#W-aP!_g=c-(u>7VI?>~0f>igz z%AMbzWKpj7nODop(H1Yi9t)w>9i1=1P8ZG(v?*iI;AvSViU-N!nP+V-8a_OG%I?9~ zZuEmwFq?`S?~930hFGl_uCi49!f-opSqZhw8pHe)qIja2u8Q3hWoL=<_xy!zH8LJCRNj2MCtQ)_-x zjFrQiEnd&gwKcIeE8SFFSPL8NL{|k3jxNRHvQ!(q8_^;JU>gD2+e>R!`(G(V7+(J{ z_I##PV5Pr1Fef1L&VaOhfYVv3*c(*&_P4Yos0cq44ho5p!3yj=aa4K|R_=JY*cRR) zfO8vJE!xU7Dk8By(MZ<={VGNx7}qx3rs-95OXbpl5x~3_!{FNDNrOsLdL4@LQS)QS z^{tw4D$9>VmsIxw-BoY=fi|D?6jSp4gCVhl=?c~(Jt=LlTwOjheb~P_OU4i7ic_z6 zG*Vo5x^9M6Fue3RVBPetuPY2@?8jy>s_`=PDcu{fy99;%q+u~RyFZiaXGEAURrq68 zgbGf15<4@`a;I4DcAuv;dlOXUCK-0rFzaf)H0EMWk1>_lS#4XkdYts=eS&B$g7-{9 z^Lf9P4Wy%TQuh~ZK}1MIA}$VU%><*ZYJlzE$A|XB9*=>UKlU_vM8~B;YpknuK}1^7 zu7LA7qma+KBSY?9l`z#fu4nEI3=eGcQJ&I$!FLbULR?!@_ykzX} z{_VM$SgOqh_b1%zn?@mAiN{GK=il!kbS~ecXR%dHzC^bTplW8bPd_7@ITK3VrYOkw zn-U-2rsq}zIZT}=(Mf){%}iF}Bqh742f5Q6I?2+U^?NnnlB!q5qT0L*8lRO^?MK$S zo6W!PCmPo5OXx8?_j-e&dEg`B345empZ~C`d!9tX-?PLGr&BB0Z-&SZZ|^DWd)ziO zV`1rwEqgyo$>hO#ThS>F)#r)TJ0y%W-O8GxCw9aEk`+>UVBM%U#p&oCbtz6NJubc6 z(~+$7t1Wfj(Kzq3t#CDtQesLSw-IeJtUWCI_;byRvDyjMS9ek@&3?y#U&yH?ZBld7 zz7*z}|D5p|SRmP59B~dPw;3fmsE-|wv`<_gJM4Y&?x^_;X4m4w@_{+Z_3faU$_quj z8?4xyAly$3uS=#%5j+}6eN(&nd1A3$Q%#DpBNR5&b(Su28e&y<#PQtm*?s(jZL|^d zeNhtCQazWAaLcLz$vp>zC!yQ}w{JWFqN#(&`*DIEz0xD@osdPJk7_R)H7wFv%e=#u zt~}U3(!mNMD)@i(g;@D^{B%x{LI-6BX-E3K>GpU{i%oQx$BvupE}EG}F^JbiT+v~N z)m9o>ublM|)2h@cvm^!F5NqZ>%iE+ml9I`y-Jl4Ef}NXkv(#h#kD?Mu)6ba>*+s_iol3wg_C&d^tQ@|#Ixx^$ULV7RApjfL zH|aV5@Upw>R~-vQm~#ot^GV0R0R4jFH&b;yIK1(82?mutOg^Fk3kFU9-(`Qz^NHan z80_fCjrc4ndz|{iS?y%0MA4Jzqd#b@%>AotG|mn?`P8psIewIo;@$j+VOwy-6%vK` zFz(o{P2Db4;!a6O*i8sTGxU_2PtA9ic5rt|Ec8t^HXZXY>pDnqAUL&L`H4PFn_A7l zsthp8e(PJCNKu3gI}>6m1M-@g65g-t*OsnTP;v}b)r-^wR-JPO!~y(%c-^&gOJtMc z^_-Ra%4@L9SS-|5BN}A)&?h<~Nt%Osci^eD?yTonP#;?Zs`;Sg5m{W>NwS{Yn5~l-G(3n zcBVlFoW!ZbB{n*BOck_LZn^t&$nBNkpN9^P6l@LX-T0;BUOwn&Sv zZpcVn1z&&gr7tb_ZQVI0P46?kjFr6zW>iD(ULE4|x#%{-ZEUwdB{y4*fYXd~o5%-M zF^)7!f=}+eIZF1gW(w{|Woh(TBEm~c(i3gzsmh9A+s3XAXC1%sHlIYpxwY~3Hcn(| zh(0=I_qoaKk9bmQsI%5UG07ahL+90R21ztPZS6r!` zoRTJX^$HfvLI)4mjAnkmdpyoKBc4IlV;5boNbAds9J2KA9B;1Ri3;x^^;n4cMgewO zk*np`4ir2Wvs@T%!(Q7sChlo?Xi)0gr--@B0QB&jaLx|~2FBW_g=lv8PHqK8W1ort zLkr-~N=?cVSy}I@|Lr=RezerDiks?$_Ea9j#d052$r)-0P5b&o~|KT6{(+v zwY5or8F_ekTx=tlW>;GU@9XFt%#!ZqEkvWi2)z`q-3H7ridV!;@{DKSc3RG?A2sD? z647s*-d-bY#mUIXj7&_T5)wqI(tI)Sk3dP>j>_Rdw2D3QmbsGPInE`RPe<3kUcpFg z{1u#48M6e5*j<*ZEw=^`0;|X3W7*zeqWp>0mfXd1+HRuMQN^}-ktnp>^`Vuh$)Bjk z2^dFm(yU%Csu?GXw5*d1%zAjVy{l><)LOZvP2Qlwi=U0VHgm!;7_IKa#Ce^Hj(L}i zu6$sFiX!|->ZgvuLwY`3A^(<1%fI?}E-3wPP_FCmBNz4WykdHJl?RdL*_D-Xsj1W;d(x3zr=~S4 z#rx(@PPk*LPlhDX6Vrl(k~TH0V&HUw%?z`a$JmGuDC z;#zX3-q_q+0xou&NhujsSRg%Tc!wnSS?JpkJYd#^z|qZ9d$zf``Rn)ZNN~Pe&`uSl zVoxAPNmI%ld-dv-!>wl7hkVi7lMy7#r=>-IRbVSYOQ>#ADir@Pp3jn4JS`l!ww#=t zdQN7v@qH%4!^2g(6*HZkoyhN7Y!(&_y1zAGWbu41&mWv%X)wA$ zLVzm(ebp!7k5P84#MmHi*2H9t9O%|zP)e|c!nTg!<`(FwXML`Bk!jTat$F!lqJOqc6t&t`s zZ*mM9fPo_640n{oP9Hu$aLw3oN%?DCf&UxxdfafFvR`B~S5q~X#rGd6(1cQTB$T6a z|B=;A{~OE+LV=HkaiAj?Pd$)>sHfMs5kZfc&}WjTW_b|#m6`eK?NiYGhXTl`g(R}t zSES&^pHN; zGLXQpE;jl0Ch`RXD+J-9pg%xbFMfOSw!6C)SIb2K=A!?UC&_a%n)X#3w>zY4*_Wedz`{~Ro4eC_?I9fqGJKRy8vu51W%Tp z@#^Zz?YK|C{d%|3{iurxshp)>GE)HW%>jIeUALh(8FDG{>b_jFe6>SLHR493;A8zO zC8hA8rPjG7UkuG^hu?%K-1(aMYHE2JO#q380KQ58#2n1)){p^MMpjk;9PU#xEdpLm zpGTG@Zmg&GX?vnDIyE(HDp~aM$o+U-zx)G;O3|}79QbjNQhf=OlcEkcZ8f}~=CQ?m z$LD5+#;|h6P|fwo>zE+2>KG}u`v^#t45nOjiS~92?09Hl0Tck_6Hcy56tGPN6TLN5 z2Cziho~|zaweA?YibCyb?o1GA1v`a7HWaF>L>j?N7eR^)NpLlTm`c;pT8}T3L$@KB zDbpVsq$#lwEcR1In9C!=qbh9)LRZd^r?P>L(#Kk<}|qadYyzS0QBKY

3qFptue`oeEud4qE)6|O6YF&5oqCDA)_~L6j_sdCd|m0> zYbj@&ncNl1E02BiIp4#3HRVpUac;Gm6qd)L)rVC=>gqvc#-&OwU4RhN0B0y5h*Kct z>jh3_FO&!LXc^ncOPwpnf;e?Gj&XBo8zVx%pM;2jVGFBw=S}de2Lr%_%2U#BZ4$0a zaak1ptU~Gzi{ERyKmKWQ+-vzK#}QzETF{im1;AZS&8OBf@14cXJ!hAEmD^EIeSUr$ zweEb!aX9G6z_*#?Q+~=HanG){0~B2jQm-UUr3HOlCi|h50qspc7Ap%dkpO}oZg0Z!l!o43!XL&J@Q>!xCttv zpdh?j0f!pieTWHe*=yH@aZm{5CwU-0WT%7RCPsU70AN8D$#Ps_WXI%tAc&|8W44`Q zwzFlPVLr>k7alCcKS=lfL74pa!6o^N}#KkR%Ak9O{1{u`blqG3o|^ zEr+L5qvL$?Mue?)4)2?;4r%Jf6PJh_{*M}+a$^T?T&}xC+B7+%6i>kU;h!BU1XPJy zmDnhDB_E2-3KS-kL|w}SazqRUiL$js>wD2TLJ69fZPZIvP_R)|W@lKT`sJRX zC)uPNB)gsJP2ra@*kQv})gVpd9z91`tkHBtk@ju0fk&j+U$5CDfP@JU3i1G$0v^Gc zS-4pd{LJi(*X#){-t*|H^F~#d%$ub-xMlFEa)#B4m`cU#f3M=yTtSy#!PTmuQ~$gK z#kQ#!)u}RK5(bRcqO`y6L2IumDql19)i4UyFppteh@w5)w6N9MW;Od)p;$vbj3HL} z+MjP-!vq6;KSLRmp-K7mn~6r~gg-7pO-C-M%NBpP0S!0PSLo6=JKEbi`iDD* zw!6`HdV2bLCch7u`wp(`zI@d;g1-Bv|HtU?%dzp1iMbs{3DD%&_~hj9{_f5DsrOTJ z@0aH0Kg=#}ep#Ad-EX?y{Ia^aySl}gxY_(`-{#Ba*6!z@zat7;-?o44{`|W0d)(%K z?Q!7m3&sD#eqh{>UV!l@c1J6#{j*H_3H@^FN({6{nnPF#iyXxC9@4(o%Z>D?6@S+b~K5NXE!s5Mm*f7)hcG&57y_AKLm z)LS)OIYqwM=7+4uVs)8jhI!vx*9=)fEG9oQ#v^cw_Qyg_$lKy)f(>atr|!IKdZLvf z$$$S-N1u*TOh9Q_fydmcP68 z>C%>f^Xcx+;A5s%NPhJlYd1l)?W4E#9}fO}!*aZe`83kqqn`lrJ6IK`$sx`o#T3-y zdb@?quYtzxcQ`dT4hT`5;dKGn%Lq8%O$$99oV22UTmZ3}=O4)4=b~n4$Zn|2>}PfE z#E~;Ny?4P!m+EF&oMknJ1jS%Uz(i30Wdzgr_HV?aeyEL3Zn%<0)DeEbsGq zOm1(jlR(jrW1^5y_%Y=pCrLLUXRV~Jrm}N*K-2EhYYIXhP}OGPrRAZI4u~U8s&hc} zE{Z{H(~DXJZR!Aa;G@HP_YwkFTzDM{-QcQrAiD8?RT=Y(E1_{c`}OEhk`os#ECTq+i8gWV z?d6-PeuU>4Cw@_$2VUHj$cRhwm3a@BVB^~PSZlAujL2^NC3`*c>gv}w3LSAT>s8xu zw51=KE)LCngF7r%NiR|#+k~B8w-l*fQ^zNHdzO4~YiW&h!o}F^+WVQQCTZ3Zb@~($ zo?ySO??RDLe%ucWiyPy1zuhb{Yz&{U2Ph*U=Qvc|T$K$o*Uv2fIBU#oAN~}e*8KC* zfX@`us~=?D;wx+sD|MS#2Ld-Rs5sl?i$%#1%)EDGLo*I@P>)M1R47z*Gw>J}L`(@gieU?3&ab4OX>Jj_*qp!e&5%b6l#{H-| zqf9$UM8JvGkMv@cX|ol`bZQQ`B^xBkE#}Ma-;c&0N)vnQukZx*!h3B0ezZX8Tld}z zEZsfn^IQRn1+Dj>0~NQ|rlEYKN6%m2Viw$qaX-o%^hjm+I9LCI${BC{FxxLV9M$<6 z4~`C;Nc@tksZoU1m(vv`4riWtvMB1Khm9}&l7H29QS0-4y`-Ml{O?twm=u)Z15N<* zrNJWkwYLTtkz9o;$LtN87hfI&PZy$Z*ej+i89J!kC1Kgcc&Z53wFs9AEUa%EXW$Gd z@M_YnGsULSVIx_jyCvpM#b!6CA(yyX^01)}04e3s%8|Q8`1axp&D1w3Fa0^x*d33| z;Y_Gwchka3L~ilbgB87u4iMucti{6vTd5Z+hbJ6wDYCLCnpnVm)5rj**7)&hEY1uUEfTdLtxxXf7gJ!Z_hbmOcWyFYQ9&ehcJQEJ9a z4q6_G2SC*+5AVaL0gvv{9V`J3rg%# z6X=SLcEoT&0l>>Pwy}8%)?yhZnP%J?35~lS9)!pqx+UVC6iu6#zLR8DZx^!u_|CS? z#ZJ=!4q>UVaK@15&W|eSYnO~Y?FF~(3q6xMRoREeb(|$}L$|rRa*j>dUelF}i&oc_ zzDirv@$pVf66h_srn6+8F3VgvkVi63TVgEa^!?q2Y4XQ-3jl}(hJc|^RtTIE&c?;g z&CSho1bl#>gX`E4eu3jBk3+al9yoH6M?eh0e~t&q(DRfK{0!Xl$4Qd`bTFJJF>(rj z*>w8{NnJ(N{Zl04ILS!SGQ>Hop^2iViHbHO276P_&_>tT9;N-)@zCg>2SXPbZ8wae z8wS6BDm1e4K%3mXYV3)@d1CS27%LxLysx^6FB%`Lc_Ubt5UOGrW@Htvb2Ad_7=v?+ z*TCoF97~mqYbvU!I#vxTgmztr4r!|nb*o;C%K*LYrIGJzHP`uBjLmI(jL4r>gobMQCTLHrZznEZux($X_B_pwg$v)@?fab9T|rM#jtlgz+6 z1y%c4r|NkNy``Cfb@DiS9))!M#yXVVzTj8;Sf}~*zp&2y#L{xo!f&iIz48av85?=D z!@xQrZm4~%!vPk<7b3D+1K3WW8xriZ+r!_ASx$5fjRrksjF+Simgjc=ZiD>)vCecL zLjCki5SNkdOfZj4;Y=l^sL^*_cs{-)FWLYkejyJh?j;RIWyH!aDIj7h@euKQAG zI73LIGwLAiPB{yNA_LO?m?Y#R;WA9>GXECRs0&#qPKxaZQI}L4k{Lo;F8P6&eST`> zHk~1)*)Q2Mq_m|%auWmV$PN;U$-(MlK)cA7$@U;*7t*n$cHZ7Gtv+(3xU7IX6Gf>L z5VxzyKGRDE8eIf@VsAr-i&kfuE*ArgO<{Un@T-TRRfBh6Jx#R1WA~{Zv|^oI_fDZ8E;o23ji3ta)>U>6j;N>!mgg=#lfJ zb#qllOlBZr!FN>2@l zjL4*M8r$-n{>T_FSx7l*rI++UgiuPIXCq?h(5J>TL7;*ctMbdG29Wxdrkif3m~;(W z>eu=T;JeH5hpyCbhy+cq)bwB2Ygiw0h-s{vYNr15uxj-YY)Y3%-IHG)texEcFkgJ< z_UMr3yb@%sQ=oZwx0h`m8Q|T{j!7kWH4Md8m+p6Qt&h=_|ID8Y=Fddpd`o) zc!>cXpqvLGhxoVz1q4ot970MT5kZ;QsbI8KK|Jb4gljloEfZ(0n~vH>H+78kFXCfcS9eR}^zV1hF;#2Mjn zI71u`kH=ul4~Us#_05e9%#HCkO>YyfU$wYtZs9__g~i@7HooQLXs>PPXozyUZsv5y z`3~W_>s{jScf|f{!VRbEfik`u9Dg?~i1DWIG-5nfo_8JZ5g&MCExnCydiz=V2L=Zi zS_Q=C2H_loJY9n2u7|7OBO}9~-gAu7w~h+7k4lb=%P5bRHcZjAO2s;+#rUShL}p~C zWNO~Z#yDkT9kVN2a&)coF^>6I#^XUkTanO?Bn;#6AYt#2B7;aVjwI?tDaNrB<55~o zrI4%23)3sGE)`hcivF1@9jB_?h#Garn(7KFl}v4@s~?zZXc=s3s`}T2SN98gX%(GX zMW^rg7t=c?T6I0T+UY&&jy*5B`iJNGrxpeVs$R~nzIo9x`gU-1Y-VhvVM5DmYJO>6 z*MDJYaq;8m5-wut-J8|Lg|*e?&54!Ydt6_>T=Uxc`gMPHcWL! zG5e4Ejlf?D$w`a1mC-Q)>c>tN{w`$rL(DF*eU zuxWqADT_9JWoGy5+>o{m3Xgxpyc?EIc4ttg^yEkeGft($oGZ7cf6ID3{ylvk{Dv%h33}O|d*^smG7IS|UGTfi#&|5<0#fnD} z7}pzHg~CyIPtEkG;+E05eKC9PnF=^-KKZ)M;(WY0W182CKs}wG|gbNYNL@AhP@cujGOqfVcWlJ9Jow@g{3Hgou|S$}$O3T*`B zovv;y`rAL(u6R)y~Hat&m;vw4=$QL~Z2oEh$yj2A#$W!wE-KR9{!O5U=tjf5}>7!FSq7k5~VgC~#9vpQr*Od^4aJ*tb5=3IiUEe9M%*L{!6K7dqgBIbn@ z!-c$|@Raodh~X6Q&BG$~cm;rY|5EEdR|yi#zi)3tA%WSpTJ=I++$+rblWz8Av4j=_ zaoe8mFVJcrJB@LKNq#c_9lz+hO@zG@tal5KJ_u`hir_X%#1eg(wW2`6)(O z4yw9{c)RTj)O^XOV3Q=p6-0`-Oa#2j$~dxcr-&Wq$CRa5_wN%qmklzcHfeQ!3B$a1 zy!e)%u#lZUGuF4G27_3y3cwbcn;z%1!=Y#gakB(_TD$w>(}+)NdqaWfvAw*QB_&oU z1Fk@E5gyE4aCqLYv^+o6bD5h|W|=M*7l}b%!~I;}fCL<8#{w475jdNyadOBoq0Qk2 zO5G}9M15lii=+xaG?gd^6-eT083xGKIhD96u^E+r=e(!~dmqac@_H79VZwQ2l(|g+ zkO6JOXY`(lO@ZW0%A}Ha{Qh*o1N3;_00|}pJPC%7(f|Wz1t-o6Jukm39-S{X7`~*7 zZhEiIf^lzKmi%6IIfy_#duGj8g5*ICih4q*=2+jq!H=a3NNlG}B{o5{^Dx$)Rh&{@ z>Y`pV2ZX-b^~Z|GR5$!Ygo+L4n{w3xpn?bdi3vIw!k0y2ShIu1B?EZ!Zq3OH2Oczb zzW4lBd+OCF3AiJ>g?Rk1b5p9$n73LEoqc(T;AZ)bmFd`WCByiN?TZbXEuyYmp3_R5ZjncZV2!M14F_do5b+xuuiaD>T&&j z?#8LfQ+M(0l#jiikK}{X@eqt5D1Xv(KIf|CNsu*Cmib*T5mN4`hyad4R}V^LvtAQVI~eOtvYW+B}e7Dd<|V&jUx&=X3ceL0}magscKyCrgWH4)Qs>Kp_21^n|3fC6wR0hj>| zKxxbnJQfim7%>SW7bPVL6^A?x1q~eo6Ng4A=R;;*X?b2%djZv2LA4xVRfMo=!?Q&azu{(w)?HS4d^+&*aP#tM3bcJ2 zn6?)b85!=O7Lhm_QL-EP5dja2j7{4~NUKUh-emcke#+j?`81iEFrS-KT~I$**l}Ex z5>WB^sHUQ^uC1s3^LazGQ)8NMOG8^rdq->IL0iRfTjy9uOWS|@(cd{Z+4=PvSs2>g z*@;4(_I8x^j(_W&Kk4g7XM9Kc$8QHZ+6PW=2PY?nYBJDQ%gKp}X=MHM;^pk*)a>l^ z?Bew7*ROLksJWjv3;kD%^V8@}=HG|Q)%kC0Ya46dch+YS>tB~Q&abxC(KOQ^plNG= zZ+rJ@ccyE1Yh!l{4L5C|pTl+!zwe%2?wxGx|GGWcojdrsf4IAQc(`$Rh(33o9iCtQ zr$guA>FLk?v%k-sC%5P4XBS)Fua3|GVf3E!^mf1h_U82WFEk7_{r~=7{QvX65d94h z_FsPkpdZ8jD=Ay4d}!I9~AKlL+AWs-S@yTFArq~EJhfu_SUGlX%V;G`JfH4i-kG#Y= zol-rk3BkZ>H z8^(=GZt)=3MaQ{2FV`==KcyO1nnB(S>=^_GO>4|G{!NA9eBM;|It$Nm*_xRT8#fB^ zv#vB!voUcw(%CwmY$ul=H0h{X6EuG<$}?D4w8qGO#nQx3CdO1d!XToNFpTK`f%@mocPiXqn{?ZVq*pXcha!J$*- zZtaiU734nszs8xts;euUzb`sxiL87<8=tnlW5uv=s{DR^lX}eU%)WfKjsshM&__ZP zfY%aXBe-Vp<`o35IZ?{`{_Pa#D`t0EsNKVOm^8z=VK>Q%6!3j9Jx`J$0CWkbpkRU$ z-gyoXJuo+PgRla4900+ArxO4e1;a~gUtbKhC^M8a0FZ>l4(9N)1RqHd;E27#*g)d0 z#!J`Y0YGdxVqiwbb;&HKKyU_Kh{VTS0I?m`gDE0B6vF`5#~dhaI3~8Ds5na~MkEjO z35Js?Bh16%C0!E-E+s|~r7vtC@F*9@H!zfjaqyKi!)gS`Z~YjS8}U}GJ4TU2nlM=` zvXqlPRC_>t=Dq~BR-6Mip&OFeS_uHkFf;{Xm~e%~`n{f?jKL|U=HYUMVVo+Nq2}{Q zu;+u{BC0$Pbb*y86Syy+#AMbx>#w}&6`ZM<2m(x3#i2$(rF=dj`(mgFAj@(cH99&%>aA3&v0xaYn|+#1JhIDSK+#ZcD?s8TjRGxPwTnU};1#PV z#-Y>@Kd$_Oh9=s>Vr}@!6+eu%eVd(FTr4=ef-bjp`C0>qI>bP#I&70&4>t_XEdSX* zITQK<`yKA#uc$=YCB)S<`E&oHXphi#j`zLH>S1-~73EIW=HJ33^6#iz>WkGmZJj+E zztAV;z)4H5C@{5k_ye7?^lj{)4$tpr-pk1UrG8GZ(=^$@Ydti2c;)T6q)Vh(M`0r4 zOiHbHcTi791v9(_$9);cb}q;^>!l~c^!xsX+^=E|Zk{-p^#^-z#3 z+ipN8wguiUEZC0m<+0s(s_vL~WW%WL2gf40)&4J<^qaqI9bROtY=x7zK{A+~)jhv_ zv()rjjIRic+6y1~GSkQUQkt5|Q+Huesh4gmjCK9#Jw?OIUi5G>_-Cu(I$26JU)PI6SiE9a-J$sg%CaOuo_Y z3ZElA2}AiE_FrizR+efBtZdp#M1WLl!&`DEF#8>Hu(exT)N^*QxXtk+^%?i^+V+mh zfe>pWsL6aByI@TSgSI!T=Yo*3j*l1Ov7T5uvo(!F;xDrUtDcD#nRCGfz=)Fl#s0u! z!Hbyzd<*BtQ7eb$RBhkz>)b!zps}vT4kEK3Uf&R3e>YGffeN*L_w>xcFP@ALR~!ZJ zEvyOWNiowY9EblH;vySw>Ju8Xr`_EAc7MkWC6+}VE4R_6x$6k+W{6Jjd;=o~ln%jVNHzG>!1Z zF&1ONb7#(KI?N7AC{!u>tm49a$eLGpezfC0K~W~i1C21ebR3 z%kjIii72r^eEA1eGhpL0#D%8Cy9c3uhJ5FM)}GxDF`l-MiO$>a=K3utZzEQ6{>N{C zBE?_3x_8&};~nRXb^xhWpHo+Nzb;2;iZ4!+FCNqZRWjq`ZiSWlyW~Cz zC)NrtP6_|)?^x=_hL{h}J#nmrMr5Dh%Dj%qU&mE0BIOK>(8zT@>xt-EjmWDJ@p=`R zNi13$8kuISIRa(tZHOEXWeu{6{2YpIw)@Quu!88Umr__Oenzc7iQdqP-g1lHNr~QV zir!}lSDBAKqKG+p5_9^*yM7|fDc9!gQpp_Y>ELgEvtu0YD}T4c6G#g0pE0xZ=Lz$T zfiAE-xP*Hfo4P!T^)&`39YvE3J`#k-QeVZ=QN}SmjbqY|J79=nmU+a2uGcU`aJWBe zfI2;X|EOianeQq__s%t5xH(>QA^!PQJX*UZ@iak7JK>dkf^=$vY;%JALW06of)Zt- z%F{$O?L-atM6J|Bo#sTng+zm^M8gHUN<;9|)fgjprYLS+bN3{-P#$D|Qb-@%3OiZq z#KWnCsoqt>^(lk93^99iG6nhzdM(Zun*pDdn5V=!=!!l(ETy$6C9OgCg}qT|YCL?< zBF;TEtvNMgAvNnNHJdUm_vxSDNuhgMacWwrOtLx>O0vcC%gw*+DTB#r+Wl|RwX6)J zb?I%aI?aPAJ7gKRXX#YLy45c;22wMInlri+%|=SnwHw}#Kh2!h&YX46oKMYMY|dO> z$oz7Zxk{O}j+U}*XlHG?XYHi^C1qR4vR&t;`kr-#@#!RtP92U_r1j~SxSVIrH%+jTBCRUWT!-v5|Jxy}=#%Kt~oR!YX|k{>{XN1C4>h=HrMneWGA zhQnImK>tqTnp`XGPa0+0->_?^K$A`VHDjS;joC25emzou*xM*NdTDSe(w2bJ~399Tqb=u~X6xng1f#o&-+ zW>=$FodEmtmA}&{X(bWdSl>J}AP!+|cz>KehR4Q7iI?wMGKeb@@Tq5!s;EMV!pppnz2aKcZTRn?GrkCg<9x>3$+h zwX_lb-K_Pza&@n6FoKHel9X^tsH*im8!U8d)oy5{L+h!_>fckN|6Z3))DXbkFm=wE zU)4aM9B8{&X-D12FVgtds?m*|%QK=DkH}y1rtw2WqrXU#ldj*wI)j{6>Go)|WI zw`uY^FnYMskGh#uuF1KTGs&|tC88-K9TSI$EL54sIN2BMSK%e+LOe;DC)YxJgI%Z_ z+}P@eJy}_6)!I>wFqm z>(hnJinKkGgN>xMm3TI-t+%m?IWYKwQAiB)Y}~g;&Lle+Xq->{$e9mGGB||c>_=hB z1I&Sem@a^qOBi?@WRNPrTDZf?Ui;~8D@7S1)E;PhgsXu>vQJ>X$i^75?7&B0P_`l? zMSu}vG%WHMT-F%$dgK!#9Y!@BWlJ69at?UhKoK$=a{v-In;f$m%8mrY+I7Am_s85P z1??lpuj@I-}xTPHUg3anHyw=b@Z~8l5IBq8e8WFZoUkNH2yb-R9`9 z-_5Dl`z;(Cp)?R9+VLg<^~Sp2*R@Tjt#`??>un_YV|h@wA#SR?W3geC+J1FHMh#FI z+`HE;2}8+z3`mL`l#_Srm>jCS9rBXzk!Wl~MAR}B2}4COKizcSKEjUth+;<$k{n^7 z?8xj9eKcY;F3ZC;x5E|kgCNmCQrJ*#MtQz`Fy^5HRJQA98+3z7z z!cc`N8TyjkJDRMO2g(4bU)(zDRZYrokJ4A6I5H}JicH>G;hJ;9PS{;2xWR8Z0x6J~ z{4gTlk0U?!kWw%lmVL}vI*730q%{(&d!kFLYT%U~_?hpx4LA654^&z;c_ok6NaKob zfnc&=iz9oeZKlYTF!W&9?_jtwdWaj#F+NVj_uJ8*5m;KH?g3&byb*xsC}x#m6*mmq z2eyDQGdi;051gFTUg^qx14g%Chz+r3O38!tF@OV@qN1HSQNj6MQ`ATEI}sQO2a9j~ zF)#{1rZy9+yaNRCSP^!>SUsQWBcP1FbBiH({4QgTe01QU9l(MP@(kJSp|m1?i_~g& zw4sCS(SQVy*uJ!2M;Pe&J~dV=V2T}RL=Uk(`s_^91WaGpu^Obr_YtAPlY8^Ub`;xi zf&?In1vGQ6Xvfl^!xMuWxOoB24}cxjonCtLm~Kb`F}#{6ij#=16?#>m*l~cugrf0M z4y=kWr>&HFV2NSHtji|{fF%jrkl+S_t+9Uo!ctl7k(mHba4cTXZirfcF@bG3L?OjR zeKo$2I>2y39^vVWt*H`hTH1YOe}f0KsLF_1l0<7M;k~^2s{-WL)l(xn1gZl)* zO~1Z~S50x#ZJ1O+OOGJ$*2Y1{Sh9C8TtmAJ71*X3p6iAcrUeZ9vG2Atp}mtX4Em35}q5p z7@vBMGg)$y;&lKVKW7$!#`=z`(}1PFKxR2-v_5^N8pnL0q*CX7&bjK!3Xra|si~xC zjUGP_MJyN-pOq+_2|nuhz@a4Y^6IABar|6%^*Z;?P0e@5(GK|d%gYED2zj3@Q~6tDXQdv9)t%66@PUw*4&=MpLyXmteow~s(4dt zdDHaZW|Iv9JQ!ZUh0&VRG%3L`u?eA1?TRPt{KM!a)kLLs47(ta#0=2yaHh3>0=k#s zOd3-gG6}5e6{ZVQn{p{UW@GujS|535~4gfY9M2rXm!J%vI&ZD&1rYU*n@E{~H{<)E++ z+qQ`mCjHrW4p|2Fh@s}0Q4#XHeg?!zB&B%!u{Oj}y0sPfSFxVjTrj zpSL`Dd_@USUDGd|H4nu1Y!8TNYq=XFh@Cn^deXZ*vGJl9T~byUCjWu*5+)fHql zozG?xd4G*12pH9$p?6(4Gl9yRyaJjxVC-BOLsd%!f8%&g5>E14wR3F?BY`oTU8ys* z3VQD-vPS&Imq$_`dPY?kxq1aI^dyC@dhjStckAi#nC$h`_1!#XRF}l0nQEX7Z%~TV&Z=?f$Le1HsF!R{S(77G z2`qyj@2t+P`>Q9pZ)MBpFu_F}X5HUqd7fXr%MKv(u*fFL38YBzRHNdNw`0D3U!0fZ zv6~Zhez!q-U@_}qRneOD#^`lMbbw{eupqSvB3a|6Dt*-D#-=HPAU{?fI<{!l_H)+r zLxM|eP_+~$A&96OSLoIbbx-r7eIK=}-Vu`X_`Bs0d*iLc2;baC$1#zMTgM5>WSWzH zIiX)p)2fOYhh_2WH_r1W<61_l6!Et%%Z_vC$5+pbU#_cumHJNW5kkM+HX;bU-M7+R ze_w4{y_R*^Eo(H;&JS*+^^k43`0aVrOx}61F)VcV@$}^bAFuPJN1Z2o-;#a270Bi8 zyl;Qb`S|?4xw!M0=#BISG8tmD=RX5sD*54>8UkrA#h?TuzW4GCv2;%xLFOtH7^tzO!JAWJ^ z$&`!lI?zMMtc+e*8skS?O0kd~g-Tl+la{;nk{>dJ>uwmI6-xJx;``#$qKqj=-TKCy zm7}btm&m(PnlZ%;BTc1DXb(bP3T`RK@HsNlif97fW*A0$x0%r6FZ4WPR*C(+%SbOE z1TX?Qz(ev)ANn*&%bWA+sN$`#h+fI41jdp0M&{FqV9Tl%PQ~4Me%sW!8dB(y|=15J1WUtH4HLVwn?qRz^SE)EhNOs~yYPO_p}G1_aOV@*^@i z%s!`Rj+oCfd7iPb-h~5<3^6fI`K@Umq-zc5o|ng(S#RnL>&&p7)>ZWuncJjmj**eT zeFS>3VMOy?Ng7QS83&N}>5KDJ7uCaw92&8n3rnvqiklzqV7o2hJn?NH%CqUUYuD{9 zQ#o&XKYU+R_>$yAq1Sdx-PVE6f+AE_v*TsKp~#Oaux#j5W49Z?sFQkTt3nV7WafOb z?YSB@OI{czCPwg)b?y#Rt2El$)_O%p`=Udr;8@Bo8HcDW+brpx-$zbgH*d|0b9TaZ@w%lBxw3bcVUQ)JfmLe)V$JZ zmsZb|c^f9nOCqZtA}1>+r%)-U(WKy1rQltsqG7F~)uyhVt8Ut*Vdh*S z=ZezvX?q*KVeB?!q9SYR+G?hpU}n>8X6t6=&~NU7GItp<_ZWPq=l4#(#KL9fy=%dH zzb;D`l%>mvr3cE=W5n8_&)TKM)&*tjGGgn|=iub!;M3#imgne`?HJSSnBMQ?((C5! z=@$Rpt@P5*wG;h_=pVEkkhK-)Y7-LF93B=L9$OV@trY341yBE$oYs?8{w1yLG%F6C zl~INduGL#KMcgws-*s1sh+NZ`VHWt?gc~FE6jJFRyQIu3ubl?C)+) zcmFrC;6G4;-Tm8}gTu3f)APfFy~CgTN1MAxM~f#X8~-w=?3|pR{XF=2iiQYw+s;qW zB9+_opZkBiRBn%EZqfa>i=Erc>tFwyjVk~1{r~^cU(m2X>ihG!3Vi50Mf`-Rf!jLyKv3pgK)E2Z^}V0xE6>VT1iw5Ox|1#W@-ZNEFW(nJut?Il z>p;d^x2*GiEm&0$YbDz1Ovc>jbGz$CT=_wx2K;qt<9deca~B;sB)IxC zq(gIs!3HEc_uVosLT{SMwK2s{rY;G|aaPHRn=b==7l-X9#y|{3&?!XN!!GNNF>R?AI^^yyt!tk4s4 zU<4PxKPV&Amq}O|+Y|;R;918Naq{y36VXxE^utMT0%N?K#BeZV;ExOl=%gHr+mYDB?uSHhlerUfFzGX0br$Qdk7JL_Q3)=n)<`JZ?Bg# z_`DR?A(*`B8gdFDr1@MK+lUIQmt56^!r zKJ@3ME3RCEaY|31G{@G}i{ONNlpw!s&W}ZRqei2~&h-P2KtD@HJ*T=gw@C)L&)&DI zK|iNeTWq~t1V#ihqcqR0LSH!cPk8@UNGV|{dJ>b0rw2G9FS!Ig)9rrZLZz0qEm|Uf z?=?;i>EjgEmn@9^?zrYGzD);bCb{h^9`H+o~2mZ zY6-M`EY$N28 z3KnW>J~$V!3}E?Fsr$|I=8@&lUE*MhsodEe)8T1J8NZDk9Rz=_`4(vYzDQWtFaNCE z@2s~x%d#D@;!N*Qza%D))LG<8tnkx6G*wK~o4j_a>Q%{|`Xwl&ki9SQn1L+J>%qwSWea&j$TJ>#M}}|U7>(3+ zKzV@Nek>KE1}VTrMM@Kr-}hZ$ppvKDI&L0|jX(xc^0FqONPd&8zpr0otS0GgFs`0- zHUa6kLY_u>HiI=|VrEcu$_KeEWv{b43OlGH_xiHADkU(lYk@5bI13q}YaDaktL06? zu;`f-&kZ7wwK{ONka%>>jKsI=SVU_rPOH1W)RPymmlMkdQgmf(>9|YU@X4E`PCua* zD2*uGRo_O;RCG`xOy2D2EM3p~qzP2KE!@*@M9g&^_PA^k|c9u4#Duvl_3v+1BG9{IBgLyB-QOoE{;Ay$ej^MLgFr6TjZe znSn|&A@OQ`l6dFg0EUhGI`S8|ogs?1>(qCb1CM|Im_ckrCuD#3lIb}80}BLrUUka2 zn8@1F?(Yq_zq@O_vuJu?|Ksb z8}x9fi7gtSmE`XOF1G&%7MS-Xxb&S*dJ$Lifkev>2J?j~zeq9mqd`*x7BJ(VT3DeU zAF!|uYWn98-w*4e$O`s<-hIEU%YPJXxWUKtaoazJ9`C`s0Jo3;-{Ti1TLCW2xFVN~ zLM(w%)rye7K&v>B{#8?XEjCE6gfa^oNF&Jhm6ldhkY2H;{u4Hwi=ebPJL4TzQ?204 z8oZZUq>Mqqa_ja%aMIAN;M6!k-MwI^OCg`6kVFRDk4>!p!67~rtgcT&lXwB8jG@8v zEcTzZBkovOlXF62o`fZ6g(bO#rKE(VHHBr&hjF>7W>JKrNr8N=@ch@fey7YfX5lA+ zkVo0!2q;mCA1+M~v-3mO>SAT_VrCm>-sTh*=d+0VsgK>Ek6e_Ldj}p(J6R6SM~+=a zPEbTmJ&9Ul2%BzVo^^{dcL-kGVP2k(vdIm$heodr;8{uk2P`ljeR%mFuz*&~xm(O- zO3Zar%kfB^>i99Hb2gyThTWaGYj1-U6JU*{U@g^7;}kzK+fKIe_HKe>pIg zvYF9l28U)LR)ZS`kH%5)eZ&)v-yL5dRY|7%zvHMS>S&qWCsw~DPlNS}ME`#IpXSu_0!x>4DX zM82K`0Vmt18acTqyQL<3Q0ng2CsXBmc~hqNKTQeLP6>8T2~AB2Z%&C^NQu5mfm5c& zJxxu}PEB%8O-cO&3mC_RWAvtCtpDK!Y>tfbnjh%A6fP=xV55{aRG)TD9}8E)uF_6# za8GYaO^>w?YWe=5{VE+vnbG|;1ErnO=l%~YFtU&_c9k(fnK|`;9u_#f$~vO_bn^6* zg;Cn+ck)lppM30Xv*VxKR$n6Gf1FNscfI^cca=9C?x-A*jfY54;S7+e<^4&|wMa6J3|?9QpsBCXJ} zrOo*kault##dBtjHJwn)uREd;=?UgVpUSFViZoTPk%YDsQhV0n}B$g{v@i ztH4VjEnh5a-`rF(CQe^if)32k5IcN`e8 zL=9VOjlLl^>?IR(GHi|+CR_zAx~noEV@JSs$Z3~qpSPAwb_o`(LQhM}%hPJu)9YmA z%D#AD$xl?iU9Dk%87V)7!O!jMXJ2j7UHf9G-XNVu{02u-w@!YzRC=$@BE3PbwZSaC z@(pgiimuMON4+Nwg$}jj+w?|#T-u>~I8t)uiquVLF2F{vDaf-a7;SQnXi(n6UVB|H zr-I?Mgd_5vliju1BfXh=xUrkA!3P(ecy7uOY00%}vJ`2FiV*p5#T3_CmVnEZLfuNw z-TJk#xq-TRoW9OmuHl1ROTk_%lDe%(q^%vdF`B(mX{x0kx3$Kzbqu$z*@~wXx20RR zz0;~4713hf+R`E1oXGApdM8rSCf+*UT5aTqm|ViiJZfH8s+&ifocCG}mRd_9+Bz)j zD{k5+9B{K&q5QCpcwtBw4Dwj4g9;Z3jznT3ka*U}479#Yr1My$YmU9EH@)F(xLrM> zbGViBcCQl<3G{|z@gN}sFo-C?nR5bwkHll$@8&rwVaxF4Q0k$hBa=|Vd4a5-BkCD6 z>Zw}-n83RUg&e-OcC?9b-@MMy%J(g zhDd~NMx_K2{MN2Z7v80*Q~za{^TBN={RpZN2@w@TRd0Jdj_mGfbYMq%z03x`MfQw{ zA+hHHPTV*mcX}m+k*Mj21|uY@%@ArK)@uU5^E7NPfe!}C_YD;PIu4Mw;%kmUsS%tTM5Uw zryr{bvyKiTMl(v~izUKM7DdwqvZ^dbfU6`*S1fxwkdUvDRXNmHl2wBihC^kgV9D$; z)|)!z31|TfQZ~~2QmI#24A%=*wvXtmS+07M+g52cOh?mUysD&l)I$Xs>6RZcB!U#I zP6!~XiH@py=s!= z3VwV;ye>>jOl{p8%u$)p&?3*!DyuL*akhd3jzz(W@ z3-ndO2~?U_UWG8(w6!hv2~OF$(hy;mcaCG?iXZe#!6tDyf$16Dk*g5LDo;h)5!I-E zZGAH1Z&;`du!&u>_bLQm43u;Plz>Ccj(YF`(4I(pQf^4e#JiDw=mf`{(_MSH1QO*I zHN+``ll*KZ83BRf;w6beIgPLdqQvE8}Xg?wj5d_k^lfH1&}e1G=<62i6&9eM+5JOaId<5-KKaK#|Oz95h| zjtdOKl5U+F0F0V|zO+V-<+RR!tc(`JsgmzCtHKMho09}UqkO^Fh|wZ8$bNZm;}EWk z(pT3iJR7Br-voc0h;ur#m%&ONGrq-G=FyDFMz875(!Uv;2g)zNx?Fpd5U%o2AL2tN0n0_Efc-3;o zgnZ+)es=d23Jkr!VAip5b-G~**xeGv(eUp0THdf;4j!oh8^c3A=^#dM=)2$85!~SS zuvJebg(R_|((5e;!|ezZ1Y!f7QaFH*j@o384c_h#8A93+s~BA19oqu~vGHI!P-`Y+ zEE)%Xe>m>>Fu%(81+7Ume$HV}ewEFvti)9#dU9MGu{qe@3_#bGhrs3X*EIG%kp zHskF=8b+Vf5iWcb6y|n354`tQ6#VEh?&gLn*z9|y&YEbA?Y+rGv4b_IYLf6Aioj}; zT6CL$dtD0eoF56iqXxdB$1=>Mk+a!zJbH=@IOuzGIwqepD{#A^@A{i8wK zZZ5PF5vsTq(s>zH*=KZrTT-d?#SzfZ_p^-J{FpFkIpZ{96%t(uihes^7(TCmgyld7 z32nbleA9_RIPrX?i{`Kqr*bk*mO=%IQpdlX(VH|YpFn=1xfs3Rr4w1<><}EGZu>y4 z!8xbZL1R?k5%jj!+6uE>2>CGX z@qFRk-gW=d=h(9E^Xtt`9HV2OXz&PO1rwk!B1tJMY9SV>P*vGCrTjP|()n({$cN^X zd{f0x|CbTL`0W(?Pmc2>5+1#@_)oCFXj-?^q2FBxdH&cWh13FITaSBUHj*mvVQYEe=evo=Z-X3A%4WFJC5pN` zIaIw?^OP$4p~N}zcc5i@g2Sz-7AsleR?YkhFVFhDFZZ1*@m7|fj%JEJ`?ZYQ_(8jD zCf(X~-GXFp*QonRm`YYyGRL>UcXQsq%c%rRTGAkorz=+Wt`=?zSRd0~ zj2I}!z2^m(+UZCf%9vm$fx}*RB!R~_Z6`?}g0icdik9Sh8ZVn>6S7RF6^$Zt#y!kl z(;wPd=gauk4Y-N+ea=u`EX| zXcWm-?{t_VElT1j&pXWjQ=b3xJ}d$DZhzFD*zA@?=;?QUY=yOiviMhI?Wd~MG)2IG zj{DdvKPJu+KHfPzW+k$jX79Kk71z#sV{)V@&o{%*%*DQxz{fp9;;g13CvY~6zrcSW z_4HWpc;?wvP2pz_az9(2kNK|NVk(>Ja{XPl zOe)o)v?%EAv!T9I$sbstaL_#CHHa<|z$W`Yy5Dv*sRMj5Uim^io{JuQvf{|7jeeGNRXOt>$96}dtW~@Oz`om7 z`s*sXMMnd6(r{Wxi%XqZO3zg6sE>FRH<+tuMlR|2`L&E6M>ORo`hB6Q*p8Q(59 z-u>?1f-!h#zSWG_4?iaK{75W8bL;yeW1orflP`#GEBpR&?D)rf3Dnf<6CtNF#$Nl9 zh7kR!yMQM!32!RIC&(K&iKyw^M-gIDxcYy=0z`ZqNS#>+451OF5Z;YHus{#FET$bx zLYR+eb!gOURbTl$n~bhi&y~pj47-^UXLv z*yFwubf9c(5_@1>B4Y?vP3d7W=ZTV$P+*SNEl%0w$-I)cc%_>5Ik3=7&;5<{ow=h9 z;mOA1_L4!pU1C!5OY^6r?h4urs;PU+WWp;~3T}O>Sv@0pf(P!3ABlJ5p<2U_rycyL z0H>JyOcvt!9!jd4syVo3ESn=JMKcy4AVjMV>l8*CXs(t=y;&Scb*&5!p60$$!^HsQ z`0BHXWzw3xm(y=ii0xA= z)E;T6t4ZHPAbD@JC+^qP<~=+plJL}-wymivGqXujxzU+tuB)#t;Pf^2)Ll+1X=vTF zdFODWyJ}h7*z>T$#NShI<5h9fu$e7p{Egm@pk~YG6;h{iPrY69a0`dcoV zZPi#G+(SeRPIG75_R4KMR&KP<`;zN_6nrq<^!z$GtJxXa`@x63^)29TrW0sx?Tc@% ziTTK_3Sw@jOM1K7EU48T7i1SSC~Sm>JJU_wU>W@ER)rwMt?&V}{p*(>*WpQ8y_7HQ zBPd&pDafaL`TE{P+92eqwx6U6ZSgcY-F`!yYYi-6I>cT*F=ZN_9gvIeFpkTVXJdZ7 z5UyBQV_WcXlR!gzn6}#?xwg%W`@_JnNyFQe(S2p!qEyd!=0B&WZ?`(SwZ|L}ZPLr+ z--&K(k9%%8e)@I$P7I3mM# zaw>ZE>%CHl&U7BLbIBVoOSK}MnKEvUjX>|Lpnm0UVlWnfM{#2_OU$lLnJY z6c?Wg_Z~kn0VNr;DLI1@4IMunn>3e{p|G%;tgM=>PN1@Tmx^(uiU&eXCqu)yO53wi z$Gcb8y;sjPQr{kBFB)9aKw)7sfb{MsGL)f|m{&OvNow4;m+Io!G!4dWz=?)I1 z4i5be5#x@oC`b2cNAChhp8+TL5|_+zSC0(W^ldlW$d8_bAARdS!Z*B}tG!G2eItkb z!czTnIsd$C~-59&RofsQIXOhvU^;zWU!tC1O;=krb&D=-d_TJRdyT*M<@Vo(@gK7nM+Yaz ze=5r8?8xoO`Cp##|DI63_~Z0K8@-PIf7|%~@@$Vj(aT`dxRn^@2mDJWPSwU=^`H0r zwj2Ds@&A@vs)zrx=jSnJc!C}G?`BERmfoLcNva4Iua0S`Qg+$DV#~(*r*-JqvH+p_ zDQKF2oP}9w;9pKJ&BHi!8Z?I%EfYsR6aa)uuzv!qcf}P zZieF&?VCm5_S%?Q_>3WMMG5Sdn17}v)XfSL>q?=F;6h_DkCdBl8H)aAvLr+_{LPCyX0K}eR$c=D6v~`any)BW6(p;o| z<;afnoh&zT3K5B9>{&(vS3$Wu5KG-^Bm+f>E8gCSl{`1l&P@f1K=|E-Ya1iO_mDjk z7^Q0^QL`7ns0KG9-|;yWcRGpSJ95 zNI675_nRI+w>-1DCjVN`7NjDi(=G`NW>n}V4lFAh*nkY2J7rXj?)F02qi7ihl10N%mo=;ap01sTi8Hjdia3a4RCDEaop`w(U`SM1XT zOS!l_3aeu0UtfEJBM^F<{qzPwp^e9ELBzoF`NFD$>7| zo=n3pbbXUBZkOT%Hhb#U5IS{CqFh;tKO4S|UjQ%{3K}-b{bboKxgInLK4Ji1s_FLP zGB1b<+Hj%g6H~qDNoY7tR#=hLy~Oe~V2CCLI@%5#7c?b~y;Y5C2HT)JrB3|=fcZhk zULic^T5oQB+VP@5DSL%K-A4cz4pzhd;W(;@!1DPcgD8IQ*U64(_MhK5P!~4w z@OWUJAh;|K;|6NvK9GmyJBZ&!1$*>B;(__d18IbmXFV} z#@A}m;@?+MVmG+`NgI&0xDbeeUXu}j9kZ??ZA?!|-lF`jPtO(rfY6wLA$jPWn14y6 z85Gs)VV8>CZOpQm01~<$6>ZW`TY0zs$+)D;B4t4qMPYr)uT{LjC&ZT}6VhBa@NAKQ zN|}l)Yf0O!Ccc$2NC{m*GX`u|e5yZBnN>Pl1!)XbQDKoCv_nSRsVvj(XU&1`&NWT! zNE4tP{eUQDN0N2}khuJ$X2P}0_1(&yFpuRn^rt!vH31gz0=gfEa$Ux5D!$`(C;+yF zkpbL_V9|ZlTU0+Zj19a1V!t1>N=wtSNp(po91>^}$bF@aR-)JdIw3L;;%dbv9tzyg z)??J*=Q*IUOvN#PmuPTp+EN#pxLej6+yBRs1c2(O{JoMl0%VrCrAH-}VgUf|18Kol zNP%H1A%1j})NRu$XHKnLAxCC9Em7D*r1R7!_bxk_1)hPvH^L@Q@tXkj+g_h_CAjc( zaTiJ#=Vzkh5bzt%9;E0R_#Jc;&0wL|cOx+9&GEdn=k0guqVUk+-c8)~M0PsW_o3nr zTZ9RkP)Ia4@1o>3_0sKtz(j4d$JjRI!|fmxt1kA7@(wN8-OxWn$jM_njKX)ru;`b+ z=*J5D{v*oV0I>h_4G0D~0l$FI3BZKB==kIqjPzJ6@;I1SFQaXQ6v~9O%0y(0M9j=2 zY&xW*%A}Mp4^2{9Wm4LgXG1bVd@>ec3Mw)R8WBobHA+T9N+wN8Rzpfw3rdJF4JIlL z6B8|~1}&>0Evp4B#DtDfgO1UN{zZ!A(Pbb)Wn?vcL2?<{G#DYqjKXS6O!!R9Oib)h zCWr$IttJ~pmy-~gQ&^l!#GHo;pNEZ+m&c5cQG$<0=#8-H8ws^H8t(*nnT6CeghfR~ zWh_Otvc>c(q-3?E1$AV^-pf)_%L?(zDmg322qeOgQl9RtG%21CpRxwx4=lZvX#~`e)A0*Eh&FAjmf)=(EWiKTkV<8p(hFpMZd%fRLcTj~@ely@LeQ{&_hlDkL~4 zEWIT1tyz@y`>2l&QGp+0-SuLlGvZ>uB-YF&B@d)`FJ!`9vb+tla&wBJ{K^_f%EPQ{ za}#T8%j(9~+qU+*;y-q0x%L)>_m;PQZ<^>^IvBdTA8oB29~_)p82&j>ys-Lf>HcA- zqwd#0(XW-Wmrb1g<(d7*hu_;B7k?iv9}izh_3MY1ZgcBp3h(~u@`YA^SpM<%>iX&a z=hOZD)8B)qr_2A>6L~Kmf|nB?70N#=brR_RocK_3bH4|^qEpQH*L=+XC^-GMl{y}s z#ekuN+#lHj|HDch*r>6rSSv@jT5)xx@xLgp^%QP)M(JNUmi|2-(_FRM?s=l_wmgpj z{^s-N-}5p5D6YG0Z=6jABmPrx>fsN`XbjlR*{%=<5 z;O^fsr6u2g(ew*-p%p-0ke>A4l|-Ugv08Oo!2F*%bJmSZiwu`g&2!x#EZiJ8C6QT5 zZn((xi{c6ev+Tr56WZ>?$<*0=buFAtA&5d!NZyXtr2YSm)XB3B&oEg)lDi|L$s0Bj zwVF_O)16-w*NhjSfSnOop zPMGBDEnrM=J*0=FhNM~LMkm=FzG&uUhh_R@Zj&rI%+IdyNXIa*Wyh@W;`HSMp{~|ciR!;XTZ8&OHrcYXxpERwwA2~{wlmAxxvYupr+PYs< ze$2`kIhxycKEQU?afvoi)lN2Fe%AGPeZ;BmwN<|P4MgN{-h*P$t_VSWbA0|CTTWz_ zweQjLcR#Up#qR-fkK@`tsxRy=+H}bd7sJd68Feq0fsS8~at^Zp8RMF9_%klBSMg^; zrhFR4J_|=@QxyseNp~uP9Pxu#(>jjHs z$LmF#;>znKhvt*(W#>VTn-$lejyJ2GdzCk9K19!zgtLBcIXpLlh@5UW1DUD>wj$r0 z-fqXrLGE@Eb)4>grC7gk<{2KRcY8TsAou$P$xinNFP!=PVXQ{u?NP;di1%^BPp5~I zmc6Qn(~g_dhqG>E&d2kl>gkc=mlX5yV(iV?kmb99r00Gp$~i!yq3%PD z3V-a#|4%a?%K^vTbYps*2U26?qR7ej;-*ddQHbQC=?wJ}ww(uaMP?&Iq2Ead&Ofqr znJ5*jd4>x(J?;5i2|5~Y&C1`^p8@5Cdw+IMRhx(&LNCgnN)BxV}P6hIe(P8K1AXZ{dBI2PHP$LV{ z?ES5d3{@_mC0c~Of$T>?T8NK5okLkI)UaI(3K)K;4B}DuV93L_0rpZO>eGzz;|5f8 zI>RH{ZFSx(uq@JfKNR*$H6+gS{4JF3KrPs2yugMf3x8M#>cTXlyt5?Js>hhcfJXBCX!v>O%8w#L4SrKIY|+Wr7?eQb7ZryWE0gZjAPa(HQnVT3(FY4LC&C z`&`cYlVD3c2Sx?MQ)>$>m?gdh8TQ7fTNF<_n5_2w> zwlJ^I#CIm{9m8`143aLhTci)9vrAQtqBjajI`^RFaP>Z#K2&?Cq>yRZxa5eub8taE zCC>X0IKZh429|PgFU+A67+r9%%WO6?mK)#{eHj~GG#s_Gv|IC)Ru6d zz*TK*)G@lbV7eINhhh=HcZ!%ae-|@}Du!-J0;qm4#cVCUj({T`BvoM+Z349r-ivCr zylDPh$6fExe^`m3WYEkX)%*~YkGG4$x02V8F`BB1=S~WwWcP2*Se3NX+Atgqcny{x zVqyJ-vRZoLmoz;r<>BT{R_U~XG;M0XXO%J;L|O-qkE-_Bi|BEgxJ=UJdxx5lv+xxH zK>rwOKRrerA}_m%T~z3A&(gXS?W@^X9p(7Wba@qVl(2&McE=?hrl59Di1M=^fayen zq~n?lpj>ru|KKbOAR9!dG!7uK(+?1?F>O-P{m$_duHc{NlC~Pm;-`lZ3|LP}lgbJ7 z`vTB?^#Ln=!2*J;BeBkEa5n-5opZ>LD{-d;MCUcsPQact#e9tY((jVhRKCWHnJOX3!G|+!H`NeR_kF|Zv3zH$`O*nrjDY_COk#qh;&IF z<44Bd&SrD2UZ-5?Tc4##2pY)#DX*nQ6JYh!e(h9&4@simZvK zs5I(Rxi-@~z`_>@QvUFv5s?OPW>UtLulf@h;w4m>)NrY+K;a-noHPc97RI;k2k@F- zPR!&rUM)qy4EL4@yP{kAm>^I}VePBRl%wr#_n{m4B{T*KHMweAson$J_)C%#BT zeUFQLM2FjS2o#KNS;boW8YTQxnNmZm8C!*}m=dovFw#4&J_3%nzqgk{Flge9jXyFf zOWf3@`yOSO{dK*H8fj|(6rv>HwT&PV_S3#BM({L|v~a95Ns<#D@-M+DTY%e#5Rvr? z>gxtyXwSPuq62dzPnB&rWW#~FU+o{p{{jKuv;VdP`SMy?Pb3PwMTXrbYyJLdgud?! zECCw2B03QGKUzC6bldVK$`alhP!GsW_G`&Q%?}Gj@n8Wb!G5Kh$UDse?7E&=*M8hJ zZ+B$?Xvw}$vjWH{_WR&K^@PA5KSgXoAb^$=pS;v4Z@|S(pyIx3!SOFPD-U5}!_uzUl@jt^rZt z%Hv?~(@q1m32}(it+M5U+1w5SFLj^*1Kcac`t7BuknQFL}Rftl;+t(<@iPXWyA9Smc zPzsX0eV7#`P~cYA?)ksMC9Z=Si$f1x?OMM?tXY!zyM-OnM@`@*i!}R*wx1nbX3b021$?a%tW(`1z z_-slP>q68&QRYYgHz`56h_K<8ShEo*GVp0?TU}$@`J5+qF$Ije7)QyXCSns*oFBKJ zANnFznHNM+wZ^kA##`k_j4bf|(UoOAi0A*9An+WfDWsVo_%Fdp`Bxb9UxHIO$XE7X zf|F)ng7UuvCvN&g^?wOYWELVyE&m}nktCT3CRykuz1U4QsY!ONNe+uiPIpPpB*`v< z$*y|I?*EQ5Ta$ejlYQ@!trfod{f|**SY$lOKT)QQ0)gcQa#|_MzXhlC|0X!Krd2Ga zRo$i4kfhfMrZ@aYl-bsr-m#e8_1~gQmb7=V8I>=#`0)QZ$}CMCeO}C*ew~%`Uj(QB zj506vvadg8-==2Yw`M;sW-Sc_vgdn==+jb(tiY}#HB2;viH)-{|HVQOQl(8 z?nkX9QTn9?`eiRsW=UF^xK}CNO=()V+l$~-tLU10kDgyv){<7<)>huJRQ_;~U+q;= zCsa|7R(7z6+T>i`)mAaKRPhpJ#-mmAq80xWYldfKc9%@HRjw>muH9FfvR2OMSMHR3 zFnIZ$Ij3Tyt?DJpJiV{NXRX@Suj=!v+-v1JMEfVod=Z?U(y}i8VVx>+)6nnkt5MQx z(AsN8No&Y-+z^FpuF=wNM`{SYYl+iqTMuhqp_lit*6fm&4VTr@8`Ql-nKmP}lx(Or zFcioUDi>M(YXg)5DBAopYaMb#oltwd$Z|acTFtL;u*P{Ek5YrQcYU}by5Ld0@^XXf zLjz)2ouht(rf|KycLf-|QNO*>aJliBrSTIoSWCDm%eiqO?WNIdvTJX0cu0khzL$Nd zGnz!wvTwQxZ*oj;_G)hyd1xXdYUUzyaZ{=Z4{!GIZV63q(P#sY_#;P;=J~QUakDjW zJv3|DH{%P}g}1k6EVuI6A=6VM0J#vu?pvIe5!{H-=1E##r=yj^S`D~bD7~w~?U0m? zT3gcF+tRa{?-4)4QS+Qpdmq|!MiKJaI*KAX@?yb^Z~#(lTMVEhGp7T6q>a11s0O{o zQmJL|u%P{+bK^zuc>ahqe$+lC+|fwhPpe`6R=~1`q zzNyV7$!%uq0*Z9E94R3IzCrwa`qEJjADC_wy9T_w3))lvD1Ae*`?hS*>VVzi`cRkh z@Qob18zj<8-_h)y({-MXw4aWG;n0D#(p6D|Y=qsz1AyZj_F#nf|lO z0$M!E)}}RyQgGK7uJ5rB*7ISs$A!G!U?nvZ-eQ_D=;cty?9~kfAWfrp{1NPQSn2Zb z$Rt*7N_aLH%wQ?=ejJL8to`KE-RU}Xp)dp?&kw5@x)~h`hZV<>kK~P2d&h##?Eyn^ zeIb#@#y5(b5&UJ;;Nus{X`t4y+MjE* z!J)oMxpu96bXsJ*a|x8^J@V55aN#}NmoYp@`h|xJ6E7v!2C(4W}#nW!f#L#mlLU75tcZR5FpOqk6mw|~h&Yc% z?jBuofNx{6#hM%dRA)OXqp>LEuDoTS8}biE%x~h*NpRY%((1PZpQg7QbFM}|X{95mzT5D-aw6ahyW0iMVkIgBc1y(U^JQwf%r*Pj2b zQnPY==13E{9~J(x^3!21+X0z8c4^@8+n2G0;>Wq~w#)B2SA{BDH#*lJ9doygehgNo z(qVqP?#NOk|8Y3pJC2zf5jFn}V{tw+D^^(lq}&5JZL2}@OkjInz6Tu?%Vv}>rRRZZ7C>9B=S${%*3+of>Q;&B9$olg%GzO- z@lx>VLGja4Kn7xg?@=UVqI6=K_7EfK>98AXP3Ig@3UlnC<0!oqsgLr9^vQy_GtxKJ z?5VEo3d-Yo-;*KA?C{RKnThtf=#ve~(}u3H^0kvK-_!l**?Z{ux$*g-?(R4Snsm2 z#eWlL|IX6;eU*An`uv+TdlNd5J%M_`81tJ%Y=2Q~i1PCV`>Y@Eyh-`6GLFhCsd?xCZhcS>nj~NnwIW{`pe#$8xh0Sc&t% z0(uM+A5u5Dg0G)8D;-O%r%Ih)Qc#VXe!Ir`hQyjZW#N1+xxQ67?)7^ZqLE#$Q*-0< z<3`|f+GEEKzCJQJRDpE-I&}T~`r|bVCYsB}KK&$cn`Ala^RUU=I&!1gudi+eSHSVU zSwZh^2{UdBewBb|)14E5R~mwW?%$^PYmecuuD zP$>Rb#F=e)wnRd48R)woLv^=HmfcoaYfglXy(iV!eJ_l}ki*#1q>k7d3F4?iE>wiVB7KP7h zwg8LkrV_7Psl6;wA|eB)L2DCU4!}WS=RTSmgMHC_nVRm0F49|RB3S<^IJuqfEY9q` z&5;PkV$h%6|F42mZWl>fU=VqTl)l3+p&*)6Lct*1eAc;Ry#}#SVw?9oDz6aV+zACi=*9q3FVSuYpOi{qKgPgRDywGysJo&A~{3 z6hDR&+u2gBYODV(IQ=lz=P!AlXH217qMk|*(p^>2-@#H$x_-ZdDcm~j{lN*3KS@Z* zkG3e`>l7}N?LrsDeq zQV<|FP?#D^Z%lN9*d<1w!r~r1TuS@3DUjQB)E^?`I`it=TKD!@Jp^Ph7ELFb=%UD4 z{*T~P{}?8fQ_)sag!Vujp~Nwoh}zf6T&^6aWw$XZ6UXWwA$siR8UO8&xNV|c>0YxB z4eJ=+mRocV@hyY6%*gW)Z-_E0O`#9~K3$(kNHH73fXeql<3(_~)Ih|MDND#apP7|- zJ-1{h!tGW7hvxb!5NNWU>>snfb{W@t`zElV9GBs?;*ToUg*1vV6E2eGq|(kL77q_#h;8;ypPV^fKTy&Y{HRgUmg zk)Fv>axq86h(EnxQ%f?4j5qSi#Ek?L*YECTj%Q&1w}Kw^?D{d1<}`AZM^8Mt($ge@ z5f4yH`%iG7ZXt0#su_GS!gd2VJG`m_|Odi7)Inr0eSY=?_$^H0VpF!D(vP;2V} zlXSvngC}4@Hp6M_7%x#KdbRp~-aFDQrC-y20_%yW&3wPZL+8KlultOXmii5TWj4#T znObsQ8Yn8oyDvHkGK)gBGI z+vIoSm#MmnIRWknnG!OM?<;g2BaDVN_^ZWERNs^#+mGLJ7FmU#8)*O+5PY#}jY)*Qkqt%>79(+XPqR}Gt>Q|~Y%NB7xeJfQ z=Fc&J;DlddJ}Mi{MYPw$7WScl?%=Xt4Bg*4$ohVBOHsa)E@Q}B3}@=Mg$t5+lRf&h z3kp(6QpvGGH;9tV;z@Nn-|H$DHuVDqZ*L&hNi_PYiX!Wg3xey0?IEqktEML?8dEvJ{q%RTs%B~XyILTqSG|JAK zRF^tP+x{9t-QMxuI|pB2ZSTIs&cfc{#RY@&qJg6F-NEta>A=YMACT-Ac=2|mW`~en zeV5?jk$Xz&ugCM*EK3(6<&kA65yaSXfe2QPE4E=1V}=TUyGX=b$>nZN^?4h*wE2fJSWF2uS`&;)kAp#JSN=S#669Al?9TzD*}^EOzO3Dz*-{;iSEeU*KmKcvmAp(Z&s zZwY|UGLL-GPTi=dl{7M!S_>nXuj)n1{%Fs_K|e1&d-cjAG*l565F%=5iK!P`IThNh z2&^a@r@or!qI?5l_bNw^#B3N0=4}DBfxo{y#3#pbWD(%C zC~&s@p+CZx`HBBtvUjRj@OwW!Licyai z%-OrmSpM(eXfuK9YP(&wNXlB<)8@KY&8_)YcF0yN2q#r40NW9zq($7fh%hYn`i#+c zvh|Ea0NF37wV{77!mYR?7c9QVDan3&vp=xUj<8^+iF+NXhhv4rg>&bkIE}6R9bhG3 z%ko-Z2q9Wkjzm)hPLQ3>{t{&_u}@30S>DJe9>K4^X&^zc@kXTR2TReRy^->7S357; z`a#+n(e|rmi1R^9>{8lIW#g{88qZ6MGe!JC8TiK{Vn2q(esiW5b-<>qB)JDEM%*0I z?6Y7r;|699HFv?kX#d_67U#>KXwMv%aJ4V}BRCbFC_e=SPg{;do@tF>_8wF6oZKCk z1RJ7A+;#O#Dt@Dr(E)Kuzd&?)Db1XzW7RDi=;Pv63bI1j-)A<+SnsbrMva~>tR?Ab zDap<#n{=HrcaJc5gVd>BRKe;+Ql=ZUwpeT32_12k?WrbIV{6}uj}p@Q&N2}r*}X0) z)<#DLpH&!t%{iSvk*!9akSu;Rb1QB@Ju$TQUS3sgD)^ik6UZmre6&{6PGxzbtoE?{ z_vxlKaOCJmQ}F`gb8gA{(Shk3pQH;cj~MYTW^a=b)*^*^Au7j#kVK7nEuT#a=8AsEfY!Ajir4ftYbiCQ2 zm|A~0C)K|FV^Vs(UY+lo1VQCT3hr~vV-t+vJrG74q6xI^Eq!QD>QK*lR${qgOUt1_ zyh@-six64p&7vU@cRxbhB4fb3ETlSwqOpH9krcVMCwNH6k5Y`*iY2)Bme|R~e%{U_ zVb6Q~5PGuQWLVyVAQF(y#-~0l)`8sv|2+8cXzW%M>l7ZiSH8H04F$ZV9- zP7lQ)=n4lqKZ7Dpmaj4i%#>9sn?-@*(r<`Y`+{X+#uL?Qu4mqDOxlb!{zQ=N(ALaZo_jw-Cpa`Xf9|&+7_G0bC6n@O7uw{C7rjd)tC`$a8KLr?w^vn2do)gOp zFzbs90fxoY;PBe#52F>Zh(NsSUm?T-+7(ID*@qJ}zghPMk^dP838H4fkmV-94a6_! z3FYCwE9!tFJmI_v?!be>Q7_=RSwSq(nl%8HWDQ$H+fvy~fdH&y5WY~+Pzm~L_ACeT za;%{0Lcz4s459Ll*w@TLuraDyP)x5UK}o?#OU1~e0TxpW=^toXmnLdmKt$9c0gYbq z&4CC^iQfZXexyQqv_pApOnJOPIUwU3MT#HXyB0;A6>9}UtiDnSTS~>0#ynrv_=x4F zWE&+}0RLt=!Z2i+CY02rlCq|y(I)~`IOTb1n&!uaVB*yH1?+nOH_x{)HVT)PgLsI@ z`EY1kUqNlTTn%l3%t@qs_w?F#!OG}p7Y%?a9gepr7N39O}cuM^bC(9moLLVDS zuJp=l3$TQoIflJZ3M653V^pov87Dz)bAo}o=<)3vZ_&EZip%;CEP93<2FE+p$j8+v zR@Ep@#x}Mil~{im{ArT&PhivaA2FL0^PiaOh@A&zhWC!2s4L2hgwiY^(tgKB^+Sb| zs!lF8Nc+Klnc*&O!3xLt`}ftiEkd6s(U>CW$LcN;y7U7vh6CU0Bk^*~w1sk$lNZH} z#2tsn1>f>dJ*K;rXB2>9CIsYh&y)VHL@}h7_0rAm#7|0f3mhIYVPz6NZ7D(mFlq`q z<&>t>hNwVMRpd1gzoo|9G$Oj$9)-GS?92is3hepFnf{F#@2xmGctBo9zT)aD3tG9EX*>ZafLqH%xv}n zLG_#}ihf}Nn)0zlF#@knmVZ7|ddIML1A`fA)N6>Har{WT5s)UiBQ3=!&@s~;bQ6!* zjQr(gZs$dZP?)fPCRpkqY1Cvt&eEW8-`pcCc%vugv^c$fMR?8~YsSR|(An6Gx$^uO z*e&^l-K|Pd*o8JH*7Ei70AZiGue7%|5|(z@ox-H4J zXt~p(G*C#dZ$gfg{2t5@-7WRm{S0uCaIVg@lNsB*@v>X`BTtYRQpx! zkxIkS&K2)t?Qcpyr{n>suOrF*>Ibn`Nw8NBXL!vXi!lD8Df2YQrM%(`L+AP{n{Z$# zpp?NKS~5KrooKrniN^T6(HY1OFAE9+{b9yXoIzR7Oe>qMOIWFG7bH<$Mw_}dYO=xF z8)-OO!4!R1Y3Y95O}wgH&dYcd5Xl?r>ZZ(}#;`7mF&$Ox!2xLZ*H#fk4E-fj5^O#0+y&&SEFMZhOKcE`SARER7}NlXlW_#&kWYB7 zsc!+1DG=xJg`Pq13hGJ8QW4U=Es)PVA^s3z(dX*iJ5-K1W#b z2-F$NF=5AQE=gCQ`K?(m9NZG1D^^aVGx1%`)_nQsmkd_berg({@DC}%Ho;2^<0?!! zebJJA`Ybv!xg!fQO9_G`W#uj_hlyR!*&US-nt8jRc-lsRLU|cSv25J5S;V5q0BD4U zwPAlge*{yBsgMaUKNO`%=lI(twwcBJubh^?ce@s!uYX0W>@pqzlA+cFc3I|DR=^%M z3`NY)reDvWCfLo5B^cs&u4Z;eA3@QC@-bMpD#W(&A*N1*U6qcq82O|h2EMt1%3SFi zlifp4T9t+a145l^rl)=d#7dY@_Iqn|ls825ryhWN%B_5;I?U)v6=QmAifk~$35tm9 zR`+ATwsBpDzGH{+r*>na2PDRnaGyed{+^idLlcPoD-w|a)z+n-S*2}Cxg)^{y~cE zS;x;(IiQvK6N*gGR*{1r=xA(LNRYohC(MR)w~JRkw~~ZT?a?+OOyJAifH2H@u#=L} zGg2ygfE|U=#FDg74@LjU;ZnONycT$9JX`=(l@E!nCLx-y3e%pnX(M#{7`fOvS#s5- zT|N}F2AR8vi&Ht@M_519h;;D5H@bB_U(p5y*@k+|hL5T`VJ6FCNo1skPSvnWU9+Un zD|d->fjkFR$%;yK|AM9iD$7 zzH%!=j|CHLQ9IR*oMV3JK~(Aa=J}rLX|Xe;qt0y~3MP&|4ix4jy@A^u?TT8dN~{gN zPmN^+Jc}n>1`0V^j`{s+*rh``QqZ;x4^oq8V?*jGFSEIAg&6i(l~yOPAR;XCMfn2GZgSqh95fq62$XMNVtRa=TK zz7n|Q*CS^ioS|6ok6nJREwE<}}?igH2!?U^TjyZy_0v`Wq<#+_Ls&{lKOOKx}a zld}UF6+i9jt0}gm0nFs;*yMc}Kik-OMgB14F%0a(vcG)|qb0sPsZ z$gsDOo4{vaa59sV+xB0NUi(qw zlGdhqT5|5>q;6K!(rPh}ylrM1$XOf)xQn*&Qlr zigp%x>a&JPu0;OVRyt3~0e3-eI-1SZ$hTxzAbi$gND&FrSQc-z{ z>vPcXBmJfQMN4Jra15rD^cy2X$WFH+6X@I-HGnd#R`FF7_l*=fH-#Di2@FSBWtQ6E zA`d#gN~Vx}K4}U^h3>=!p*}FEeP=>-5ts{9yP+*Z*`bieoLE%ak zufW<$pP(XiN1v#sD9G>?=B1gd0(;+NWd51P0#_QI*Z16K5F0j)gbHt+lxDKkgyE}d zhPK2?<8v_5NV~fsyv*~2Dd@k_gq`hB=V~h#n-L;w^Ep=k7okC}=@yP`VBHONxyaS6jS+sMUQZxDltxn~ra@4b zP2;wk*+YzB8k7`q-B;?7r~YNQMyFz0#v_8g&NeyQztHk)_#`6(tg>@p$80+UeK}61 zt$oBt6y==Y{eX%v8k-e3bf|GqB{b80SW>_r?>5cloQa;RXXTx?We9n&0K<7cvjhs#hy{k?9Jp=o5kbs+PGb=uraKyQyUSJW*YP-Xe>vB`kwLpgI7pG8keIjLK$ZP60M zrIf;~-S&+tq@&Vf!Pc!ebt4w#H06DnY-5w2VJoau>yN^|QG}m^-XOg6-5}!XK&CPf z-%xoBwiHDmT+HlJCPW}H!B0uO%6D5F+f2C5c5az`9+64d6*wQLPaYgxh zR&G1i0*zV%VKv$(lclOAzT%Ty3d|2vm-^y4tob^sMRA(kJUmGO1LHZ)_`RJD1s?mR zHC5mkLLpsuJPxKMP(Ux}0#3!aK+P&Rg4j{g-FAl{CuL-o1NIo;*(#6^Z1Y~M33qQu zK*Bb`!J`3i1?7@q+WJVp7>ohTeKfeWp|TF@cqsW_X)) zUdciVV|D{g%%@nA!hjiRHbpo(<&+_{j1)&sV>gy<$~GQPe{kc*`#2qk@A^e~eX-|G z2|4Wah4PaD{u!G*?`+L*UkCS#hH^ctmEu{_G=_@Tbf8L7+L;gngZp_K{FsX!zGGOO z6M@>wwDY=0|LpiB^E)f5MShI^-Azz+##d@sK8%3Kfpe6z3>mshFG{igu9&2X$(^vO@X4lt z?xLYs>@N$fv?*V?!SYobhB>Xr{ve0(Ppg`&T%q?&nzfL&>=H7Z$7%9*iwWqO>n0SH$FWNkSzXk*>kw`Aq|KT)dh zD*WERZDnmDv?Iy4V@8NfL6*loz~Y`84p$_`<5({XA_%30A*35ah>Y6W~ud#lw^4S~HGhgJmi0!dDO{M9AUW=|k2@Pn@QB-?R_ z=8$R4tM4SUI0-F%jAGo+RQFr5H0m^9PA$;n#IqW zddK;eQ~?5)!}y9yEfrLT*F2G&fea*C{x;3h5LT_k{tA5SLUel{#kzZsUyO1G&Ds_8 zu!$!6MSLRr!Kfu4Q1@EANJ}f+Ignw8FBZL3z#mMK1G;ASzb{e8++YYFtgD&Oa&C6y z10h*m(@FA+PWy*rEn55Kz*OQ6ETsSBSTb_(;Fd5;KS%A2E(sG9&BkHWy7~vGl=Y^~ zwe~2;`|a{4m8vZt2+ljE9z!hT);zZN>VTFWj`ju7Pg%m@B@%w1Nq z`{2l|sUTBPL|sn85U($R;b(9%zP&vwi3#N?Rv^cFcWy4_xnL)Qflvu*xV1vAnp(lG zX=}Ull(=mB6?cZQFuJrw=w6@Pkn*Tyr=rA+f)Ss&iCp*Q$2gg*AP62~Gv6@K8pcdr z(ylGC$A{eHlrphNaOhe*)+IDwUv)*V;4`X@Mj;)9J3w!uz-&t)&?<*#Q!PA9hsyPU zKj+X`g>GkrZzI1t%sw+4TDK;}s?JLeEF~B%5t)O;Jlw5kU6vGo{;QJx{Pz#l^G$Kv+9lG*$Lwc< zjpHjyAY%^jKJki!dY+FuJT)6J5B#_YwhuB%fEnWqXCs_aA^5_PPY2k1vi5`F&m@^o z5@aW-8>j&rx1kH5fgFqpYRuPgOzrW#J_Af`xMKwvY(*{T2uH7@#vz37Q*6GXpvKMG zz^!`D!4u2HT{6Lor+(_$z%-^Iw8|xPq9FnkysC=;y&iV{MDx`dj+2%9tddJwMMKt< zOD4NXhLyYTMnf^5OR+{nxoheeOY<`_7kh+;6iiDnKtn^AM_z~;9p#2sT>3A1?+#{Ab1I-af^E-^Y@*?iuuTyA5` zd@b_?YI7bZx;O6m)E8U4A^8H)bb_kejc~dIoBTIbbiz$^yZ+{a1NkBobfWw#VMfpS zjBWX1r*z^%=Aut@P;dcM2vtZuN*cc)zQkM{LNCQgCxS&UEn6TRO(z+m)V5i zdRt1hK+cz5zQ{~QdsxtHM>dOI(aB6MgkGtsK&fj>^fXMNh+bvh0=a5OX}3VtYxC<> z!P_T#7`PC2ot`?DJ|9J&I!uqlQlP?LsBs8ZJuT2wEu8o3Co^Qwwkp(iV$g9f)B#iL zh7{^XGw3B1s##H}s}8#t{Gx>6t$}(uVZ)#yt+!!Gk?-m-LGMHQ!nmjSU!9{Se zl@x{qu_8S&wLg{*z}(8uT#V5|w#Y)2(Nf#W+?dhIs>sS|*Xj_8r-^XE@=R@@I4qBe zqtVM?XIEf2Vaf0WCv>3#P16w{`}sQ;Ij%7}?G`zmT3L|}nVzoM$cAlk6dDv2y}#JD ztJ}37u)Y4RP7W2(bB5wMQ7q9G1l#3qG*&0(_DzIqlq!Jtz?!crJ;YFG=X4i_W9< zH``1E7KFakpjIz9Cm?PuHO`459-@F5bYQ-}=bL1lAZ8miZ=I-~AHT~SIUSra!IC*& znz_c3wOg8X%96cg>lhA2105z|9flP_;~>6V7=|q&LLxq8|mzcATvAhn#R?lBvFUHm&Ti&2vhQ4wbvt$>$RTfSQ&!a`H z4)|dUlnE0#WX2er*eEne(n{*L!91TFc8g6=E$^6M>zscs?_6W++AZ%AvTwX##0-@n zm;@w81DdQ#n|u${PVJgUg2?THLQ-h%cSwAwqsMahUN$DDTMoH56|)k%SBF&=dQv8OzKia%Nn`^0=1acIxN zZbjflh0WUbk7%YlW(<5kaH#7FRiy-`b9V?A&}%0oNNeH4v7d1i5^6^1G*(2&4iO5= zm?8P5*T;FG)ifK=#SV516qTS2LO)9zWGn)f*@EX%4!g?zXvjfQ)j<}d^t32^1pzye zBgv}VF-?L%(|;lUWP;LexrzC9)kd*{<2{yXWN8l!XQ9f?Fi#%l#>`PM)Kef4LO2ek zksz9llP=1z&#CQs$E<&c0>#Bl3CkJ6hWEfw7nmy2NFQaZ5wNHn5Ha0&*Y>eAy64e8#2e2xw*o-JHS)5s*#I z3?c%Ci0rULeQym=1kh|>2USpz?19*5RK)ZbCd`k!iefhsu_RA2C08>3ZZQuC!mKuC zcUW;M*o@+t$WgDP+rdvOD!yCIM`aa&i&escnJWv+0PbuD6%mjj$Iy6b z0zqvGU9As$@Gv`CvO2FbJGb-58gU6kffz9VaiG#bN3>@wOQ#tivD(tX%<3#H2XsKA za=*p^DqnFaPyrGg!X__4C~I+V+A_B;32cT57~@z5ek<3g>ws2oHCJ;rA_VMKf3;J0fhZgT5J>ey*YdX7 zr*AnhC=gyQN69Y3?GH%+5ZF>0gqz~5blVhjeptrc?HAKjgblcuZm{%x4H9&%OdiN| zv1K#OP|^ha$AO)RJN0y=sX?HjOeB#1t2ZV!Xot3FkM_zAsTd%F8lyIl&_LIscI|qA z8MJOc1A=SUwr$(?Y2S8j|A=iraYV0mgf59lu^(JFuw2je?^azck;t&LO?ZK3EM)ezUV}y1)d~CVyA!1PJs3z_x5-CLsI(Kqt7M{bad#uw?a%QD#u43S&uC@qhSG5aD5SW| zrH3B?*d-)Y#zty>4>^$+`6ZYCXtiR2C%bGFEICA9D}o*{idJ}VD@n^}_(jY0822i% z3NIk&>dJ0T+0X2D*hOAC||p za3T6eD>|Bg`Tv=E>Ph;now}kI;ibpAtj~I~X1c9YIB)|e1FI6RYq&8YcLe8RDGoa% z6Z@;1Agw36vM+n7-nz3VaIPOIL7GHsT)C)=VTV`cvBO~!8at{N`yhJzGBP{4mwT)h zLl-;)HYD}4w>u|OxvtayBJ>n`M)UG0-lDjNd%o{GE}FZ)|GTNyLPa@4G!#5i!>+p* zaEc- z&z9l(sS+1SyuG8kXV*NW+C0wZyw2N4$M?L?b3-l=LpM}IY?Z(*U}`sXgDcoV!7oEA z?1H)<>oK%~Fhu>jOY5JjyxB%Om|hRPkK3Wo{LYU(*_XZ9pFP^Ay=VVC+i(0aOhv{( zz13H0(i1@y6#OqJfh^2Dtp0)x+ydWQD!K>0t7g5{52_e&eZqRZhRZx%t3BjLzT{6n z<=0HxUp~2KgN;o83^H(P(&xb4Q^POR04xxGtB!u@Yic*R$Na$P-K#t5oBpKgLNichSyj0+n=>?V*}NR1;&med#nOA~bhmy~MO zqgXX{_4*b6Y*?{l$(A*H7HwL!YuUCvYszF?xpV2(wR;zDUcGzy_VxQ0aA3iM2^(~F zgn*ui-E!rq!DH7$g9sHetoW^2E{qtraUyVwn_N?_E^>63%fP8I7^s+~+kf6koEA?@3_clZ7se0cHW z$(J{O9({WC=LxrW{~msP`Sa=5w=dsdjzby`8|nB>86y<%p@tfg8R(#dqA|@iT$Er9 zqGoKc;Xsp`$pHsrqRC~I${N~c83HP>!UO`6k*u3iYS}Ce5pAepf)o9^g2ozcyb;G7 zb=;Bv#~yvuv5FwGAVa4^t~(M*pR7xg$*QVrQY$cAn3BpWt-KP;EVbN{%PzhA63j5g z923m@%sdm#G}T;_%{KAc=E5^Z%0`I=WK6|~%1}X&h$=k1jKR>n$)yG?E`z9;4s;=i z8D>J-!@y@u>uiE%7)uPr9K?9Y85<&rrki8_>x;%AO+9ssR8?J-)mB}771mf~jaA6x zpu9CoT$!Y9NnM8$!vzmg5O#!OjXn0ZWR+c(*=C)67TRc~otD~atxeVi*WBEe+it!6 z7F;(&B>RE}Bm|<95Co4oc@nPx;f zx8Z#emJ!8)|2#P1ZJb#k3PCUQ^BX!B_!lrWkbA%cIkOD3MO*d$91O+G{c?+~iHIxvB;1Ps)@p=Z*UcmzC z2|xh|e8UwWh(L1v#e1S#-wbI8rSsLWDmi=-4cq5F`uz}yK@=k7?6*H79ubL2G*dH} z*u*9ZYJeRtw5F|U5Mu&jcp^lQ(MD%DV~rD& zAr9$S$K~9xj_O-q4~N)CKmHMrMO5M-30X)(_C*^d`9;LqvyDm+Kwk#`nT&$W^@|Dk zu0AoGqa8WfNuc17j(S8N9|2iPQ=U?Cf;{9ZS=mZg?#mg(=)wXpAhCVnq9L~!m9~yX zFHZ@hjj}Y_V!F``SsL(zyd(_yJlRZ7f)a*3TjY< zzVws|b?8iKT2q^%X{069so+YQ(!i}0rZ07AP#GuFn;sRZNmVNUUUIrqr~2xoGxTZ8 zfJ#(s4%MnQG3rve+EuS2wW&`PYm=h7zNxCLsxg@oR_8Z?5)2CiZygp0;+KPz#B~C} z3KlJAmes{=^{asu>|k3N*0CP;I%P%QSx=T$m~cT1cU>G1kYIspIRO!wMT8hCOIP?s z0TFi100xk-hCCpm3L)5lXZ`v(z!Da=v6b!p42xLXDo3&9W30&>JK76ufCiMH1Q4*w zgV55_3}%olWFl=V~s?M+gAf4kk%?v*7~5Uv=A;DR-n!4!*#!U?c|g_V>x58F*i6u=;2 z)b91bx7ouP@M>J`q!uM+sDdDrOWkB)Aqw;rEghgBf@1N&75rtec*iSYD_lkvpX2p#h#2>HV+sj(FKDJ=nLc_r-Z)K zCG8rTumdOnqO#UKL=`%lUo(`s6iY_)0-!AADL1&vS=RKXIUScRce%@8Hs5=7#o-~L zgwDm1v9LHB0wf$418msBY8Ty-Hrq7{iTm>ihAiCw%zDAVF806#a&1>3gP5<>r85np zynq+{LC^$Xwxus!69;!1+u64Ar$KFDQLC&I2Ke@Kdi&N^^V+#5z^s(@dk6#1I=Dn= z2@N1Y1+?ipvb-ko4)|Q_-|lq+2R3#Sg0IC7XkoRwcYwu#KWY@c1?W-BS1nt~`5|LfOqZd3{ zF%aAXN_H|GhOiQPQ~Tlhy*9;}-t?|o{NlIexUM!{!*aJ-6q;Q_WO=ZL8{i<>F(|o# z*^u(0({%-xnC{Efoo|^B`ngEn0fyM1bDsDA_0_&cM2c6uhAcRl(hg6$wIl9y!yi7W zP>(udr;e+t^AOoI39c82@Z1u#c?e?$dI@U0fLqU*3%IE@O4f~mT&E=F`HriIQ8M~8 zzKrKDXsMAcZyYzPRt>_wH_`|HlBFXa_`%<%;uk;G#@q1mGwdzR!4CLZH}|`kH@gl} zkm^I<7YN5Tz3Nl1gXg~b?;;SxA->yOK?E!Iv!{Jrf#C2RP$J33?E>$6U%A2yAOHDh zCGm^@)Z>#i`SvLCX2J|sOa*QOv`A00sE^f9D+Orm06!q_9MH+4zyLi!!D7J1Gz-WY z5Viiyx*APbs6=tH@2;{hvqZ4|l6X#iadzZ7Q&dC&*r zYPot)2zhY)GD|xUfd+aG@Yrevhph!+5DKF(b7XJ^OR5H&qyVl^DatJZ!|Ml=5Db&B z3E}7Wq|gk{&|9dm__~J;y9bAA&<&sC2B#?p$8ZUMum`))4yo)3(a;b7P)*eE;+6yy z3h|kkGMa*u3wI-1gD^X@Fv5zoO6E~3)JJAz6(Fywy5J!;|^{EP< zgDVVC6&q0tp#w>-;3;A;7Ms8kGtBDhaB@CT7eVoTcF`Aq5f}+i6ibm9i&4u?5j!$! z6_?QvQaqAkPBpbC+61kBdLva|zQ6L9$B*^g`6M-jEMG*Tb74MN9 z3vmmYKq4oSA}cZ~Y^XV!Vj8ih2{zIh3nw3&WFP;LB>9jaPZA~TLKM;<3jhIS44?)6 z&khjMy~+`EMByOU@gc9EB73qT$$+fxD0-wP7B6xhpJEH{D0N!VC`Pg*pOPlNF(s!G z96KQihJX$n@{<;lCQpVDH3=tkQY#;l6^Fnl&$1emB)8;15oPfrrJ^Hc@dw^=I%2Yh zxBwTSQZHRAAgR(XiP0+mcYq5nj4KzRD-SbCx_|_JV2=Lac@R?_$&wix(JaxjC+RY= zlp`*Q@+s1?C*o2TJ+p9ZfGLXtFS~IsQ zKyEhaF}cz^CLmCD7BI>d8ag8CNEXfI%h&ET~j-y5H^>m z34Y)Rj-VxBF%6m^0R#au8{sILA_vZ3b|ioavhsPF0yDRuKF#ttgMvOU;T*fbHi1(( zCleERvN(TIEtO*o)szoD|!Gzg@Oz8PP0xGRZ~?}SCv&; z)m2{=R%2CGXO&iKHCDrPOmmf+a^VW9s7<=F4?2KGfAkUNuLTmoP1Ex*Z9u!I<3FD# z0d^n_M6?nAw!jvD05_$EClZkr^M+dEfLc4D3mR2iO{^0LE;ipZI0Lj&FLg1=UQ~ z6eI2!B>+an)dpyjG2dWw zX>(6UVOlAdb0POBNSAUQ^e5Wjb7?bjbKrGdmt-TeXjjoJiL*GTuD!@$Ih|G-Me``c zb!tDUc8k||j~989S9zD0d7Bp#H0MyZ0T=A$XmCM;w!n9)0S(AWdiSI+K4C@r;uk6+ zGWdmh!^j)Ts2JMBAT)!0x8Yv+1&p}i3>F15rhpeN!+ht-Bc@kjoM9J2&Qao`8wxiE zd;pU$2Yly3dfUZpcA<5s2#Vf>7Q9z@6n3JnfB<-4mm(q?rr+;<2I3ViX@B`6 z2QHx&T0leAq#KGsKiZ@j>U1^=;ukci3+%TVreGJq_K3D-Hy5S+jIU-)ciV;DZ2P0|@p>RoK z8=~1Dx_}rU;)@p}j5BS2x8VzXfPY5k$ch;K9vlob|X(w60wW{sGZxALZM z*l24+Rz6Zwd+L|*)u)Xasgqi%iTQFeHX6A1qrc&vt0j`D;hP z6ljAnMBzWU*&B+%70}rux*-QzdL%66qov`ZI#{jcq8Qv6q{*6LkKj}P3f7aG;guuJ zYuVbZ@1hv`xtCJFQV_PP6(*4pTN?yf7#hJ9GS;gbmZFg+3k({YQ^cw#Sd;yklRdc@ z@L-YK8M5P|t>eOdA;PRTXkRkB8?fNBFTxoV(=sB$iUV4zk+@$(x|6-3Qw+r;=6W+w zx|AjQA-t9d7&^F_it6Ss5k(U*_cLj;!n!|=Vvh3^*i|75(=>aE7=XDaxO=J38@85~0%*ieF56t{R6DeRf_z{NTmYiE`4f@=3RLH` zFXC$crI`NZ6kK7TY2naXz!e~QH1dKKS|B{z8((OFzzv)vieUo(+!-0>m>YV4MsNTU zV&q;D8k+$+7B#t;a^SQA<(fCqULnxGYwfRj7?!zCudMdE5Y+QHwrfLTMOF~fH*yBTibvI#oLG5BmEL4FD7 z6$&}Nw;>0rKr!#Y1wfo2C?ReSV-FCd6$l)|9|E~wI~3eHQN%niq-s)~G+xP|r9g?Y?mtG;+bsKTD zK@x`CgCAttg?+s8UmW!#j&v( zBc@>1AEF9u-P<*SSB*SrVj-h11h3E92I4l@%|#o?U3hr)8Ir&l7=zi7p$Dp=8sebf z7vmT1Rx;c@nLeQt(0v+G#8A$>7Oo(qwqc7;;|kh5Y3_aIx4{>zTIMxKGBW!ZgnbWm z!4%$|;V+^ZY~Vw{T^EEs(UsfU1%(wj8&}bBr+Jz#E&aQNx@E|FDOSN5yxuvE+IT-9 z)XyI6OF`||p6%Oy6hz@?EFPm#q}Jn`7WTs;oBS**k{$oK1(}^1yXPiQdUeIRN<4u~m^JyUB67gV~T?;nD%9YPES zAB(&B;9J3hIpqla{1`mI#vdtoR-YtXKc9Vo7q-1<6ebtS#@YAf7d{*JHv?&IAc5!n z%;jFkWhDBiU#gV=#J52gl6?LELKrq|-Ino4Ht^fGZM5_x>sHJKGHpk8AuAzJ;lgS$ zo@w+(E!wtUQj%p;;*ppQgwBq5{PgN$F(}giLR#zAEr+X*JbU_7s3@q=p+t)sJ&H7` z(xptB3YGJQ%$BK8t4gI>wU5)SP2X_+3f5>buVKp)B?Agm+O=%kmeK@w(x|zg+}e$M zH?Q8keEZhL>o@S*!GsGNK8!dq-JgsbJAUlAm<@}_kU6{D%vr=++jQ{|mTj4fDz}h% z{8p`Uvxr&$iz{DF_zUKfelD_G{tYGOjpJKP8w}eZI zHpCDhj5A-{mtTAzjdTzt$QWac7bPx~;f4t@6vZ=>#Pki1v1LO`n+n;8BYKy;meH3v zR6qg~PyjJqD<#>q&@Vjfa#9MQ!y&(P54MkN@C88XXoQj&P&NhXXit3*o8amfL~ zMMx7iV@wydK<1cPvd&6tS5{4hYp!HzRclzg_6n?etBe)wS7@mvm|TA?n{2brJ_{{i z(oRclwboucEv(vZ%k3)(bU;D>xFmc#t{5S8bH%velDl3vN089Mw|k^ZuDUItLQt3N zb<<1?Y8F#n4QqJROm!0s5zRvMe%r*E(9s)cEjf%kgeB@q*$peMctjlw>naehe~5ll z3>CoDaB&VyumZ0{OcqSS!3lo^bIe2JVneu1C{iyJO;FIp08)5UGYJRnd(6=a9btnB z1Q5`K4Lhq_DVSb<^lk?^s{sYPUVHs&#xwqOoTOdkY%jh({gSn~B<#Q$%j-(nla?sU zEE0~%*zNQLE;P}J*Uy1;p`yY-jNF$7UCm}Pr&#!l3@$KyTP;o0bOqWitL;-U&v|Pz zjW(q_w-qJ~(Sf-=vHf-b%Vk&td&ggYHoCeA93)NAi8IMH@`}eT(?$b8W(8zBNgKOiB-ryJWAVJ;0 zD*j`VZZrSPIF&pzV-cZ`GaoI4XxtbXPvB=j?X9L#;6vXr2oRs|wD|QM?ga(5s^z?}*1dss)RD?4uvKm4-CXs7^Fm0v2ZYN5{-B z5?MfG_>?d1I~4$6LwN0Z#Wl1 zYH0F5b%-QRN)U-V)!=^HC;=h-2n?6R@{i(M!yzwu#ZrD_jLa;S7rofbr$m!0Wt?VE z&={B;*dQp@a$_Un5~64Q%mCyh!4=Y&vqLB=T@pw@#pYrP>FIHv^vt6&?}^Xtp{qHa z=)@6};GVjN9H*tkkWpudI8NI+&H2fyvz8 z7ICfrEAVxW&iVmd)#8F5#1&d5c$XODk^?FMViiZ202atg*uq9{x%~aC_L8~U{$4e} z0~Rm}3v6IzJ~6=zZt(aLjNJ%J_$b>I>ndnbVdkxMje+_ZB=9nX0vLbX1E?!0PNCw=a`Ga`LJsR={ zV|=Nw+7Q2ZeaYz#d*@$Gb~K0Ob7v+?0vQEtz1u3%c(TF@0tj__`ze4;%hA*SP@wM& z+|7z+H{#K1n3sy@c+#t1y3TQgURy`ibU4QO3U3f}9+XbUf6M)jEB~W&8$%2ac@lmR zeTBvI9;%#o;}r}4iQmVk5`j59*ST15V{D;vT<=yUL%I+yBHu^P329B2CwVDxLX1D{ zVeyFl*Ml{V8;?ih@QnF5tcXz)o)Ci>wEqa?Y2KJ>Buun}FFZbZ4t#3{otdjBt5%n7 zmmlBP(h`6IC8|RQtb-TrPR{|_|18HJS7F9GK*U?L9&Wi%y59aQX92ozYH1_cErE0X zD3q_3uUDJN{hqu1F;VwEzQP8R_X#mb096D}xa)B(591*Fpd6W@V*KoJw& zkOoa~3lG>m$DjnNlXD(r8{AV28OTAB5rC)RfCYCO)Zq-QKvMrVf(pS9B*jyHv<>$0 zOQ_dJ?$HUg&`Cd`d$@-#F5o5v=TWcV0{sUWk})vs!Gc|&Gz<|2o(CD(&>N^gK_#eI z!H0!e$UNCLe87TyZgB)DCIIAA09V%q96)}5;bTnpbZa*kP`7XSL&92?zVn-kuK!+Vgm33c8~ydc70S9825L7`KLXsz-1b7Tv#;`7UYAA^AiVH zYrl3O9S9i*D1pUcfv_TpJaG)AXoWB}4F_~WmpDbB*cg+f5Gknt4X;pvrw5B9NDHvU z3Na{3_Av|w#xLwcde)#48Rt&cut^|!E)bDgj<*n?Xp$lna|p&S zA|Z>v1~Vog3#B+f-AI&>1cf_P42N(CCy7XP@C8-b9&+LTa8#ra#lU+%ah16^5Jd@- z=~4qvnU+cUT+O(Qk8uPR7fVIS5Gv=1t|XQEQ9j2Ilu-Fx;h2SdU}Tr@WQci=<5-Tz z*Ig2T1!)*(6~lB@Ujlg3+vomKXSThEYX)%y5zF* zZ3Iwnk${_9l0&RfCKBJG0~89dtd{cvw7A~3^K$Dv5-;(7$2)p11v|kTI<^5c>)LAkX2Soq#V^h#}gcNJ#f!tHB-$ zstt8efIQI!UFS0G;Y1ptO)5h(&oN_aFd8JNf}%s9F|i7*)D8Culiw+X3hI)PQ335a zIM&$=|CyJkaSD&MEk4=`e)$dV$v#VmIzV8A+(Vear)XQib`fcqiCHV=$VH=qrL=;M zYtaKauwLQz1Ld>@et=gKvop^okcGH2&L&@vFpwffhHW|ta*zXKNCl792F+(Zi^ffg zFiu1#2m6LSswPjosVxlgLf!BSSda`ifDBfn5VgPsxe*K_fuJ|!oE^6S5Ag-yF$rpe zsSlw96Lc&U^AlaU4m`(euRMkHWv9SQ;WBZ+Dg_c4a>TzpjZqDV-xP09m-X$Z153M zn*+d*xRK{Bn9B(c@vh;@1pNcCl7s`ER|_pLXh3l$?P?p_kOuI|1q3=<_yegZNl=a} zp;}9FR`UrH8@f@18wJyfgd@9ntFWiRu-!nl+dvFktGG=7b0?X&vC0i5XG4fmFhz)9 zo9MAw%f1hJWWqxh>)XESOTYMsv_0XU0b&^- zVjZ-{3MFv_t56;jFdcD_1I9rA3<`h+DOkN|qC*3*3<}UhJ~I)kfG-;RB5B|P6Gs89 zu?9oqQGTncU&5*yn;bi`00|`-JVgsiFda%VG~6*Abx;Gka2Xn`C&!ThYk*V7fgVbt zfxn9h`&%8?p}|C)AjLocSOCLkiyW0?PTd9F_6Pv78GCH63xRBg@gsS_v!Lt7a^_ zv$IgL-uu1ZOA32HzA<~g!e>};hhOWZ86h|9tOj4x&hX;WHDCq9@DR3P(OyG}4CfM7L>zvz20c^*_l(o=@-;OuvA7|D zC_-_7Q!i}b2jKGm&t2owKl9Y;ayNiN0zRF)+ECM0#0nt80_U8&-%2`9&DI6&g4<99 zNRY`n(*aaa&V@$S?W{G7!~&#<6HTDcwF|f*F$LdJFKrDUg$**_0?=fgGf;ppf>~zB z%tg}7*`4j#q~OfY{LJHPzQWd+);z!7oZ70*+NuW5SVVwOsj9I}GeY@axex`AOTv@v z7|MVWal0Ni_}ch%5@3d_1FKS509^isq4$KY{_0@Kgdr6`BR7I24yG1L(F8xh-E^wi zTcK!iAPM75-sMf+bs*a5?FncQ%`FQSFuR4PJxwy(+VySUMr*&rtxveX+l>*SkUOe^ zC)^7Gt8QEW;2ud*S-`P1_bRzy%#<}jUa44h(7-0OlMC)i%01x9M90ARw%Ukg^U65A zgtzDNK)MZK*?knKqiNv;j!;n+(!7A;ZQeB=2%%jF>V2}_Tc$2s&GUWVK`!K~t>4=7 z3zFbY58e~DuuXPA1uoJ*Vo5~XlWiq{1Rmu^F(5Kx77?U<2RVQ-#{dPpAPK6lEu~uw z3TN9SV+CVj2FjRu<9TuD!UBn)6)teyZbV~NG_|*Y$HAN7P3jFfa0|z=TmZvC86#7S z3lgJL=+4VuDQ4m<24T2I-cHjpb9>2 z+VE}v7W6&jvrg;HQsmt73$$=|+)@xGl?$+jN!ezEtE5{txFfBFmfbKgxd04I_3KWx zO1#C!x6X2mW#_d(LdJDII8h3fG1ZQ-1%fUn&G7A!E=Q%|jNMM|b1p*J5LufUl*2?P z4d;7)LZfkrg@EI#ezH^0>aK2P@*PdGUh5AJ@!L%86HjXe zqvRBCVAqN98?QlIP%%HicBBrdVA?A>HO&Wk37aYMJG=5r(V>7476LEu2A|$&u(Ap- zVdMzwF&^vSH$?{d-6*7P7G%wmVkMul$W;&0)KkxQ$&lW~6_j6D8bx-&FC>1K621x(} zBDM7U-U2OvV?%LT6?8kN^A?6usY%05L&~C`e6mD3XK!P~pOb zYdY2N;ZQ=8Lzpb~Sp*4>oditwkf1|ni-9+aehk5wqe;picU&@52y#sq32Fd!vf{#F z&O@uLtZL7Tdms8&~dJx^?Z|#hX{}UcP<(=KU5}@Lnvke2X+j3Nmw z#*|4T!Nrx~L`lrZLeq2_8v?LUcL8S45g2I4{86S(rJkQ!_2pXs_U(s|0E_Z< zdxd7v(#KD<`CtD1{r?9rKmp+btv~}0L@+@G7i6$O2Ooqm!omzN;D;P2#1JHfT$>N8 zk8Bd4=mClHfe6ik|>zVoZH4akDLywe$5l%Qu zuQC-B6KQ`|D`~Iwd%AABN3}X{z4zw3@5<%|Ja9`*y8;dW!w)xniY}OI1MMmmRtr<1 z$yggKUGZDxR>A3Z>u%3K|IcsHM<>1XsW(SGb^X+6JiI!14llf_*l_&ugo&0?=!WxK zWzN+`%y$+su z^Ut?PdG*(4zx@KAhaYu;8>gIh`>{_O%4ofBn}7IXW{>#dS3bRr;u8l%Ujj+xJ_a_> zfe%DX{3Iy2eqGOkaLdp5u;Rb3V1$Ehlh|1X=pO?jP=P1>5(HJaLKY%#f-el*1;Gb2 z{50W%H*A5?j#d^C!jFIjG$9IwIG`35(TGQ+8Vr^H2)r3mDuX!G-P=N_LFWAsh(p9; zfRMOFE_N|oO9W#Wxk5#l*Z_*%o6;0V*f~+Lk%Vr{qQ$&8M>^K=Ok%`i9`(2o0s8PS z3{%7vr^lZm$jD?Qyb*;0d65epB#v~kVrkjO3XfeS%T(TOx9 zAOQ%?!$WMP&mgv?6C51{DOu4P5SkN`>qKcvC+SX>Zf>5N>x2nj>Zy9dB{`Hcz#)^6 zQ#SC33%>%XM1Qjq8=@q00+<0%hY$))Y;&Bp{0(zxd4-IcKmaAnQxGYdfOi#O2C3Z9 zPG^M8A*$4@XYFE3)yhOY#&o7_s_9#PaI0BOViS8XL2WFe5?0UztUp-AM|V)dQ_>-G zI$;e&LvaKk`Ew$GI3N>_povJZq6c4%=~5xvQC6J607JL}Egjj&)0iLz)-)+5(7IaI zu5hhBY@$moDbqC;5TjJ6i6aV|%7n820=EPC#EuXpfGoW7BT(qwS5Lu;x#r1M*6Tt? zW;RkyEEBUPfI=Qb%Gu3^f+lI;$Ty=4+|;VJwdY0e`d%B)3SzLCZKbUr$@-Rx%BGYE z_3I=oVZz@4SGe^h$X2VcP(&oQ1I`VLNArsl7U`rCd94VcV_U79b#^wk^UzN@#_M5fw9`L`!HDH|*Fkl<(puneSZX=v( z*ZlTCbKcCugPjmzPeQiB*j>ZAn97k2ci5yM#&VYPHe$BIaffTvV-Me(myhxQ3$)9P zbt(}XN_?UdCs{>}gX>6gDp;TYnLDk4Eiz!E!QG|3m&P>LQVcjTzjH6RmCc|iT7V(=#5$?>E*V9*>Kf)dFQP901Tk-(N$($9vrxF}u46;HH!*T!~f zO#G=my0x}=scT$lO`&@&SJ#aQHz;UHAswcB+$^F9BiTI!2iNi~uYltgR&+T?TtBKYxo1t-^DY7f>O8 zt}pzt=ZXrKdDNo`R}_CcKtS*K)w90yEGFISUw_}y(G{GgtHm!1m-@p2m_I$@e9T3M zySKnTce-B&e)6Gt^V-uhJlTwM{0VK^XC5n?Gtcdw=6c)}f6lr$-tmp0VJ1^{xqEJ; zP%XpP^j-t?XJKAnYp+p%0xx)nQ;F?)JiO}Sx_H)~^zpBUJz=uqvUxFwX844Oty;kE zM~tYhil2cjj9?)&ruuw1sq)H_O@MtG}6Xr#A_!i!YiElmY zV?X}bmsC!-;t(|d$6`bMM4$bA2H|UtAdrW^>HRiLh;$Q?giTe70z!H}OW=?X={>v) zJ<-EH(%U{2Ydi0wq40x1G9$kUbiAqK6AsCNn9(<`sDbXttgiU15BY;Px ztB}jNAC$u|5yCn|x+nP!5^1sN!;upygRKz35OI+bxseV~1Byzd7Qqn;h><=Vt1^-i zfATltJ198+S)IRF!ZnOKn{z;lfy1|(!%#dqJ0!({BfXcjzBi`C;LeDcN8Ys00nqyiYma5P3^OvZPVw2xDn>HtQUn}|Xx zv3EIwc=^N{+!r0(yXu&LP|HSKoIQ;2IXTg#Y|FNDOpA4l6?N>vc8tKv(1we&hK$t6 zjpWFV^vI6{Nq7{=Ei(uUk;d7}0)Rvpm4U{B#Js$_3WnpmZv;m^>WcdDIh<5Mz=23l zk;pjzq(~pMNQ?~0qBP2*9Lc1Nni?`dFsc)gb4HtFx&@?*KByjtB)oL&NjD72A4H64 zpoXv%%dsTOvP4R=M9Z^O%C+1Wv7@K@K}flf1GvOWn$pUN>`L)F46sbgz9dS&1WdJL z%fT!cx3o*qxHiO`%fzfpyWFFn1jW2;y{`;RzU<3qsLaefkZSNt!t~6|FwDc;LWaCb zm{gjIV>r`P3&=z~$%H`4)XcQR%-9r6&LD`{oXyAJ%x`Fh&-Bd*YRu5YwE7uMT2#%` z^b{M)p)bP{)>J*$tjN8j&5X=VVlabbn9kb#3`y99++2)Y5ChDNgYNvz@;sN|6wXZl z6FT(dJ}lXv<-``}OdWBAPAr1W*enKQ;7jYo&g|4q%*ajd^v=c5Pi+{_{xr|uOwX*` z$rnm7hmoRQkx%)l&+xm?%q)f|fCaGxhA=?TY3NP={Ljazg(uKZ@g&d45QG#>P~Tio z25nFp%*~sZTc!p{)1pOq0C@6+nh=SSwB!pYw z1}x3e&*aigol&LfG%$*m{e|PhGPAOSlG}N{m@KhOHPH>{OBNNTt+PU)cFim93380 z?aK@`gI!%yWC(*OK!$QfhFkd7NN84Cjf`NJQf4sMa?Ma*B~M8p1YyWfV!efOy@fCc zRAeB84aHPv9n5HTOD~PTY0Z*rrO+`Y(~;9wsL|2PM21*M)j0syM}2~gJ<()XS9XOA zL#To(;MiS#f(_LMIH=bkuv0^@Q(i>^Bw$%^#Y~m`Sb`NvgB3f3jS}lR=P-c2JKDlX+Ud01-OXIjXolVNT+apFX%k&fDP5qgrW0BcX82*|-&>8dygjC4i@1q#yJV~VS z;npOx+sdug9i>vT0s%PTx~iz+VvUdBF~kD00~0bEfG*kpB~|OHDynjXHq)vaVC3Cm z;utGqAv$9;PUAHuWyot|H@-E)ffO|GnfAQnJl10X{=2*Yu=~m`RBQw*ma`kHvc3WU z9xH(#3o<@qVg_@uUV|_RBQ%KEE)C(AMo`~RKA}(+?A=vR9pSbwdfZ(n?l!TByAwQk za0u=W!9#F&2^yHVyK8WF2oNB6aCe`Fwf0*3>{I9EocnO=)~(&u5B=QL{dM=R$M}!G zYHWY)c+vRcvL3fAmRxzwh0ShRb;?ws3=Co)$uTvCLZRZ z(Hu0e*tFL?7JH^rT<{;lf`VNKh@e`{3ioWAE$xRa9moqz0yLe1vyf8%7z+XhOfBKL9~SHVWs`D}k< z&0y#^QOLV#`!R<3kw}W~_W1p6fir_61xMvF>+P*9e6B$9Izrx&@=HVHBau>%=i+C# zfp2znBpG}XZN~a2`n(4~vY?{GWm6lO+)ty1JwvC1UXfgl!LWUUl0h&rY$GHeY%_aU z-V3dUJW@)+qU3r_JnSoC_jY*u+U1KKj+>eHQr8ToB!e&v6thl8i`G`@÷=htlK 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 z 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

ohh}y?rKL~5nTHWxA`lLlG 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 literal 0 HcmV?d00001 diff --git a/MaterialSkin/Resources/IRANYekanMobileMedium.ttf b/MaterialSkin/Resources/IRANYekanMobileMedium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..27b07d948cb7b551c3e49ea09c972d31956416b1 GIT binary patch literal 60416 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 at7DLimmw9K;hcsy&SkvCLjPY-`hNiU4{rwm literal 0 HcmV?d00001 diff --git a/MaterialSkin/Resources/IRANYekanMobileRegular.ttf b/MaterialSkin/Resources/IRANYekanMobileRegular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..07dd9f7b424fa26b5c4abdd3fa17c2b591ad6d85 GIT binary patch literal 60276 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 agIF79Lo!~3RBVBFN$?FKz>xnJl>Q%(yz6QJ literal 0 HcmV?d00001 diff --git a/MaterialSkin/Resources/IRANYekanMobileThin.ttf b/MaterialSkin/Resources/IRANYekanMobileThin.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f301332f848384f20ecff03b07a8314868469a01 GIT binary patch literal 63712 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 literal 0 HcmV?d00001 diff --git a/MaterialSkinExample.RTL/App.config b/MaterialSkinExample.RTL/App.config new file mode 100644 index 00000000..51847c70 --- /dev/null +++ b/MaterialSkinExample.RTL/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/MaterialSkinExample.RTL/Icons/ic_settings_black_24dp_1x.png b/MaterialSkinExample.RTL/Icons/ic_settings_black_24dp_1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c59419c02b6273e09063a0529d2239784818207f GIT binary patch literal 322 zcmV-I0lof-P)J%}fHzV<>iUk{yCv=|P(yFM9CIKrv6;vdj!^e)OQ=oM~3L z3Hov zYMc*TMS6^4Y*s#v8YK}AT(ig&XB4{J=afm7xZ$2C{CQWp)PoCx)G7YcXPY7T1DnU) UWG_v5V*mgE07*qoM6N<$f<$+V!T>O6 zS70QgNAU8v+(?*#6#o9*V@~mgC;x#Rf^DRK!rxsIH1Y+{1W$v50*~CV#54`Q2vW|N zVwqbWh7Wvdgwql&RGT?0V4Y7)9ZgCcW4f$baDbN(6Vt-m zvtW!jvUC`+K-kE98fAa!h + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + ///