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>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Reference Include="PresentationCore" />
 | 
			
		||||
    <Reference Include="System" />
 | 
			
		||||
    <Reference Include="System.Core" />
 | 
			
		||||
    <Reference Include="System.Windows" />
 | 
			
		||||
    <Reference Include="System.Xml.Linq" />
 | 
			
		||||
    <Reference Include="System.Data.DataSetExtensions" />
 | 
			
		||||
    <Reference Include="Microsoft.CSharp" />
 | 
			
		||||
    <Reference Include="System.Data" />
 | 
			
		||||
    <Reference Include="System.Xml" />
 | 
			
		||||
    <Reference Include="WindowsBase" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Compile Include="DataTypes\Action.cs" />
 | 
			
		||||
@@ -48,8 +51,10 @@
 | 
			
		||||
    <Compile Include="Group.cs" />
 | 
			
		||||
    <Compile Include="Measure.cs" />
 | 
			
		||||
    <Compile Include="Meter.cs" />
 | 
			
		||||
    <Compile Include="Meters\StringMeter.cs" />
 | 
			
		||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
			
		||||
    <Compile Include="Section.cs" />
 | 
			
		||||
    <Compile Include="Skin.cs" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <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