mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	Work on skin and meter
This commit is contained in:
		
							
								
								
									
										17
									
								
								RainmeterStudio.Rainmeter/Meters/StringMeter.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								RainmeterStudio.Rainmeter/Meters/StringMeter.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RainmeterStudio.Rainmeter.Meters
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class StringMeter : Meter
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public StringMeter()
 | 
				
			||||||
 | 
					            : base(1)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -34,13 +34,16 @@
 | 
				
			|||||||
    <Prefer32Bit>false</Prefer32Bit>
 | 
					    <Prefer32Bit>false</Prefer32Bit>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <Reference Include="PresentationCore" />
 | 
				
			||||||
    <Reference Include="System" />
 | 
					    <Reference Include="System" />
 | 
				
			||||||
    <Reference Include="System.Core" />
 | 
					    <Reference Include="System.Core" />
 | 
				
			||||||
 | 
					    <Reference Include="System.Windows" />
 | 
				
			||||||
    <Reference Include="System.Xml.Linq" />
 | 
					    <Reference Include="System.Xml.Linq" />
 | 
				
			||||||
    <Reference Include="System.Data.DataSetExtensions" />
 | 
					    <Reference Include="System.Data.DataSetExtensions" />
 | 
				
			||||||
    <Reference Include="Microsoft.CSharp" />
 | 
					    <Reference Include="Microsoft.CSharp" />
 | 
				
			||||||
    <Reference Include="System.Data" />
 | 
					    <Reference Include="System.Data" />
 | 
				
			||||||
    <Reference Include="System.Xml" />
 | 
					    <Reference Include="System.Xml" />
 | 
				
			||||||
 | 
					    <Reference Include="WindowsBase" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <Compile Include="DataTypes\Action.cs" />
 | 
					    <Compile Include="DataTypes\Action.cs" />
 | 
				
			||||||
@@ -48,8 +51,10 @@
 | 
				
			|||||||
    <Compile Include="Group.cs" />
 | 
					    <Compile Include="Group.cs" />
 | 
				
			||||||
    <Compile Include="Measure.cs" />
 | 
					    <Compile Include="Measure.cs" />
 | 
				
			||||||
    <Compile Include="Meter.cs" />
 | 
					    <Compile Include="Meter.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Meters\StringMeter.cs" />
 | 
				
			||||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
					    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
				
			||||||
    <Compile Include="Section.cs" />
 | 
					    <Compile Include="Section.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Skin.cs" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ProjectReference Include="..\RainmeterStudio.Core\RainmeterStudio.Core.csproj">
 | 
					    <ProjectReference Include="..\RainmeterStudio.Core\RainmeterStudio.Core.csproj">
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										673
									
								
								RainmeterStudio.Rainmeter/Skin.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										673
									
								
								RainmeterStudio.Rainmeter/Skin.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,673 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Collections.ObjectModel;
 | 
				
			||||||
 | 
					using System.ComponentModel;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using System.Windows;
 | 
				
			||||||
 | 
					using System.Windows.Media;
 | 
				
			||||||
 | 
					using RainmeterStudio.Core.Model;
 | 
				
			||||||
 | 
					using RainmeterStudio.Core.Utils;
 | 
				
			||||||
 | 
					using Version = RainmeterStudio.Core.Utils.Version;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RainmeterStudio.Rainmeter
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Skin background modes
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    [Flags]
 | 
				
			||||||
 | 
					    public enum SkinBackgroundMode
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Image as defined by Background
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        Image = 0,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Transparent background
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        Transparent = 1,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Fill with a solid color
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        SolidColor = 2,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Fill with gradient
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        Gradient = 2 + 0x80,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Fill by scaling image as defined by Background
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        ScaledImage = 3,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Fill by tiling image as defined by Background
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        TiledImage = 4,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Mask used when writing to INI file
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        Mask = 0xf
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Skin bevel types
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public enum SkinBevelType
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        None = 0,
 | 
				
			||||||
 | 
					        Raised,
 | 
				
			||||||
 | 
					        Sunken
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Context menu item
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public struct ContextItem
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public string Title { get; set; }
 | 
				
			||||||
 | 
					        public DataTypes.Action Action { get; set; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public enum BlurRegionType
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Disabled,
 | 
				
			||||||
 | 
					        Rectangular,
 | 
				
			||||||
 | 
					        RectangularWithRoundedCorners,
 | 
				
			||||||
 | 
					        Elliptical
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public struct BlurRegion
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        BlurRegionType Type { get; set; }
 | 
				
			||||||
 | 
					        Int32Rect Region { get; set; }
 | 
				
			||||||
 | 
					        int Radius { get; set; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Rainmeter skin
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public class Skin : INotifyPropertyChanged
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        #region Private fields
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Metadata
 | 
				
			||||||
 | 
					        string _name, _author, _information, _license;
 | 
				
			||||||
 | 
					        Version _version;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // General options
 | 
				
			||||||
 | 
					        int _update, _transitionUpdate;
 | 
				
			||||||
 | 
					        bool _accurateText, _dynamicWindowSize, _tooltipHidden;
 | 
				
			||||||
 | 
					        Int32Rect _dragMargins;
 | 
				
			||||||
 | 
					        DataTypes.Action _onRefreshAction, _onUpdateAction, _onCloseAction, _onFocusAction, _onUnfocusAction, _onWakeAction;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Background
 | 
				
			||||||
 | 
					        Reference _background;
 | 
				
			||||||
 | 
					        SkinBackgroundMode _backgroundMode;
 | 
				
			||||||
 | 
					        Int32Rect _backgroundMargins;
 | 
				
			||||||
 | 
					        Color _solidColor, _gradientColor1, _gradientColor2;
 | 
				
			||||||
 | 
					        double _gradientAngle;
 | 
				
			||||||
 | 
					        SkinBevelType _bevelType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Aero blur
 | 
				
			||||||
 | 
					        bool _blur;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Triggered when the value of a property changes
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public event PropertyChangedEventHandler PropertyChanged;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #region Properties: Metadata
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the skin's name
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public string Name
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _name;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _name = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("Name"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the skin's author
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public string Author
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _author;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _author = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("Author"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets additional information about this skin
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public string Information
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _information;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _information = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("Information"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets licensing information about the skin
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public string License
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _license;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _license = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("License"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets licensing information about the skin
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public Version Version
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _version;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _version = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("Version"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #region Properties: Content (measures and meters)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// List of measures
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public ObservableCollection<Measure> Measures { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// List of meters
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public ObservableCollection<Meter> Meters { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #region Properties: General options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the skin's update rate
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public int Update
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _update;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _update = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("Update"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets a value indicating if String meters are measured and rendered using improved 
 | 
				
			||||||
 | 
					        /// padding and character spacing similar to that provided by DiInt32Rect2D.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public bool AccurateText
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _accurateText;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _accurateText = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("AccurateText"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets a value indicating if the window size is adjusted on 
 | 
				
			||||||
 | 
					        /// each update to fit the meters
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public bool DynamicWindowSize
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _dynamicWindowSize;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _dynamicWindowSize = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("DynamicWindowSize"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the area from where the window can be dragged.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public Int32Rect DragMargins
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _dragMargins;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _dragMargins = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("DragMargins"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the action that will be executed when the skin is loaded or refreshed.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public DataTypes.Action OnRefreshAction
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _onRefreshAction;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _onRefreshAction = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("OnRefreshAction"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the action that will be executed on each Update of the skin.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public DataTypes.Action OnUpdateAction
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _onUpdateAction;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _onUpdateAction = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("OnUpdateAction"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the action that will be executed when the skin is unloaded or when Rainmeter is closed.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public DataTypes.Action OnCloseAction
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _onCloseAction;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _onCloseAction = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("OnCloseAction"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the action that will be executed when the skin recieves focus in Windows (set by clicking the mouse on the skin).
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public DataTypes.Action OnFocusAction
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _onFocusAction;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _onFocusAction = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("OnFocusAction"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the action that will be executed when the skin loses focus in Windows.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public DataTypes.Action OnUnfocusAction
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _onUnfocusAction;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _onUnfocusAction = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("OnUnfocusAction"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the action that will be executed when Windows returns from the sleep or hibernate states.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public DataTypes.Action OnWakeAction
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _onWakeAction;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _onWakeAction = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("OnWakeAction"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the update time in milliseconds for meter transitions.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public int TransitionUpdate
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _transitionUpdate;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _transitionUpdate = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("TransitionUpdate"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets a value indicating if all tooltips in the skin will be hidden.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public bool TooltipHidden
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _tooltipHidden;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _tooltipHidden = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("TooltipHidden"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the groups that the skin belongs to.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public ObservableCollection<string> Groups { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #region Properties: Background
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the background image.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public Reference Background
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _background;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _background = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("Background"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the background mode for the skin.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public SkinBackgroundMode BackgroundMode
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _backgroundMode;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _backgroundMode = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("BackgroundMode"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the margins of the Background image that are not scaled.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public Int32Rect BackgroundMargins
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _backgroundMargins;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _backgroundMargins = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("BackgroundMargins"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the solid background color.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public Color SolidColor
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _solidColor;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _solidColor = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("SolidColor"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the the first color of the gradient.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public Color GradientColor1
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _gradientColor1;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _gradientColor1 = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("GradientColor1"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the second color of the gradient.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public Color GradientColor2
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _gradientColor2;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _gradientColor2 = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("GradientColor2"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the angle of the gradient in degrees.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public double GradientAngle
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _gradientAngle;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _gradientAngle = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("GradientAngle"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the bevel type.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <remarks>
 | 
				
			||||||
 | 
					        /// If enabled, draws a bevel around the edges of the entire skin when BackgroundMode=2.
 | 
				
			||||||
 | 
					        /// </remarks>
 | 
				
			||||||
 | 
					        public SkinBevelType BevelType
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _bevelType;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _bevelType = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("BevelType"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #region Properties: Context items
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets the context items
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public ObservableCollection<ContextItem> ContextItems { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #region Properties: aero blur options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets a value indicating if Aero Blur is enabled.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public bool Blur
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return _blur;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            set
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _blur = value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (PropertyChanged != null)
 | 
				
			||||||
 | 
					                    PropertyChanged(this, new PropertyChangedEventArgs("Blur"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets the blur regions
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public ObservableCollection<BlurRegion> BlurRegions { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #region Variables
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets the list of variables
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public ObservableDictionary<string, object> Variables { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public Skin()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Measures = new ObservableCollection<Measure>();
 | 
				
			||||||
 | 
					            Meters = new ObservableCollection<Meter>();
 | 
				
			||||||
 | 
					            Groups = new ObservableCollection<string>();
 | 
				
			||||||
 | 
					            ContextItems = new ObservableCollection<ContextItem>();
 | 
				
			||||||
 | 
					            BlurRegions = new ObservableCollection<BlurRegion>();
 | 
				
			||||||
 | 
					            Variables = new ObservableDictionary<string, object>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Set defaults
 | 
				
			||||||
 | 
					            Update = 1000;
 | 
				
			||||||
 | 
					            TransitionUpdate = 100;
 | 
				
			||||||
 | 
					            BackgroundMode = SkinBackgroundMode.Transparent;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user