diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 00000000..8a6cc8cb
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,3 @@
+# These are supported funding model platforms
+
+github: [leocb]
diff --git a/.gitignore b/.gitignore
index 79645363..280cc22b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,45 +1,81 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
+*.rsuser
*.suo
*.user
+*.userosscache
*.sln.docstates
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
+[Rr]eleases/
x64/
-build/
+x86/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
-# Roslyn cache directories
-*.ide/
+# Visual Studio 2017 auto generated files
+Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
-#NUNIT
+# NUnit
*.VisualState.xml
TestResult.xml
+nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
*_i.c
*_p.c
-*_i.h
+*_h.h
+*.cache
*.ilk
*.meta
*.obj
+*.iobj
*.pch
*.pdb
+*.ipdb
*.pgc
*.pgd
*.rsp
@@ -49,6 +85,7 @@ dlldata.c
*.tlh
*.tmp
*.tmp_proj
+*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
@@ -64,14 +101,21 @@ _Chutzpah*
ipch/
*.aps
*.ncb
+*.opendb
*.opensdf
*.sdf
*.cachefile
+*.VC.db
+*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
# TFS 2012 Local Workspace
$tf/
@@ -84,7 +128,7 @@ _ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
-# JustCode is a .NET coding addin-in
+# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
@@ -93,9 +137,18 @@ _TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
# NCrunch
_NCrunch_*
.*crunch*.local.xml
+nCrunchTemp_*
# MightyMoose
*.mm.*
@@ -123,42 +176,71 @@ publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
-## TODO: Comment the next line if you want to checkin your
-## web deploy settings but do note that will include unencrypted
-## passwords
-#*.pubxml
-
-# NuGet Packages Directory
-packages/*
-## TODO: If the tool you use requires repositories.config
-## uncomment the next line
-#!packages/repositories.config
-
-# Enable "build/" folder in the NuGet Packages folder since
-# NuGet packages use it for MSBuild targets.
-# This line needs to be after the ignore of the build folder
-# (and the packages folder if the line above has been uncommented)
-!packages/build/
-
-# Windows Azure Build Output
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
csx/
*.build.csdef
-# Windows Store app package directory
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
# Others
-sql/
-*.Cache
ClientBin/
-[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
+*.jfm
*.pfx
*.publishsettings
-node_modules/
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
# RIA/Silverlight projects
Generated_Code/
@@ -170,20 +252,103 @@ _UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
+*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
-# LightSwitch generated files
-GeneratedArtifacts/
-_Pvt_Extensions/
-ModelManifest.xml
\ No newline at end of file
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
\ No newline at end of file
diff --git a/.nuspec b/.nuspec
new file mode 100644
index 00000000..8547675e
--- /dev/null
+++ b/.nuspec
@@ -0,0 +1,26 @@
+
+
+
+ MaterialSkin.2
+ 2.3.1
+ MaterialSkin 2
+ leocb, IgnaceMaes, orapps44
+ leocb
+ MIT
+ https://github.com/leocb/MaterialSkin
+ images\nugetIcon.png
+ false
+ Google's Material Design for your windows forms.
+ see github page for release notes
+ 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.
+
+
+
+
+
+
diff --git a/MaterialSkin.sln b/MaterialSkin.sln
index 19f8858e..69f92cb6 100644
--- a/MaterialSkin.sln
+++ b/MaterialSkin.sln
@@ -1,12 +1,19 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.31101.0
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.136
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}"
+ ProjectSection(SolutionItems) = preProject
+ README.md = README.md
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MaterialSkinCore", "MaterialSkin\MaterialSkinCore.csproj", "{031DCCA6-79CD-41F0-AA5A-09FDE1C1D308}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -21,8 +28,15 @@ 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
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {0DF2ED56-BB31-432A-BE76-7C00E7541216}
+ EndGlobalSection
EndGlobal
diff --git a/MaterialSkin/Animations/AnimationDirection.cs b/MaterialSkin/Animations/AnimationDirection.cs
index 6537cc98..ccc1fe02 100644
--- a/MaterialSkin/Animations/AnimationDirection.cs
+++ b/MaterialSkin/Animations/AnimationDirection.cs
@@ -1,12 +1,38 @@
namespace MaterialSkin.Animations
{
- enum AnimationDirection
+ ///
+ /// Defines the AnimationDirection
+ ///
+ internal enum AnimationDirection
{
+ ///
+ /// Defines the In
+ ///
In, //In. Stops if finished.
+
+ ///
+ /// Defines the Out
+ ///
Out, //Out. Stops if finished.
+
+ ///
+ /// Defines the InOutIn
+ ///
InOutIn, //Same as In, but changes to InOutOut if finished.
+
+ ///
+ /// Defines the InOutOut
+ ///
InOutOut, //Same as Out.
+
+ ///
+ /// Defines the InOutRepeatingIn
+ ///
InOutRepeatingIn, // Same as In, but changes to InOutRepeatingOut if finished.
- InOutRepeatingOut // Same as Out, but changes to InOutRepeatingIn if finished.
+
+ ///
+ /// Defines the InOutRepeatingOut
+ ///
+ InOutRepeatingOut// Same as Out, but changes to InOutRepeatingIn if finished.
}
-}
+}
\ No newline at end of file
diff --git a/MaterialSkin/Animations/AnimationManager.cs b/MaterialSkin/Animations/AnimationManager.cs
index 8e34ea15..0ef3b032 100644
--- a/MaterialSkin/Animations/AnimationManager.cs
+++ b/MaterialSkin/Animations/AnimationManager.cs
@@ -1,36 +1,99 @@
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Windows.Forms;
-
-namespace MaterialSkin.Animations
+namespace MaterialSkin.Animations
{
- class AnimationManager
+ using System;
+ using System.Collections.Generic;
+ using System.Drawing;
+ using System.Windows.Forms;
+
+ ///
+ /// Defines the
+ ///
+ internal class AnimationManager
{
+ ///
+ /// Gets or sets a value indicating whether InterruptAnimation
+ ///
public bool InterruptAnimation { get; set; }
+
+ ///
+ /// Gets or sets the Increment
+ ///
public double Increment { get; set; }
+
+ ///
+ /// Gets or sets the SecondaryIncrement
+ ///
public double SecondaryIncrement { get; set; }
+
+ ///
+ /// Gets or sets the AnimationType
+ ///
public AnimationType AnimationType { get; set; }
+
+ ///
+ /// Gets or sets a value indicating whether Singular
+ ///
public bool Singular { get; set; }
+ ///
+ /// The AnimationFinished
+ ///
+ /// The sender
public delegate void AnimationFinished(object sender);
+
+ ///
+ /// Defines the OnAnimationFinished
+ ///
public event AnimationFinished OnAnimationFinished;
+ ///
+ /// The AnimationProgress
+ ///
+ /// The sender
public delegate void AnimationProgress(object sender);
+
+ ///
+ /// Defines the OnAnimationProgress
+ ///
public event AnimationProgress OnAnimationProgress;
+ ///
+ /// Defines the _animationProgresses
+ ///
private readonly List _animationProgresses;
+
+ ///
+ /// Defines the _animationSources
+ ///
private readonly List _animationSources;
+
+ ///
+ /// Defines the _animationDirections
+ ///
private readonly List _animationDirections;
+
+ ///
+ /// Defines the _animationDatas
+ ///
private readonly List