mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	Completed rename from RainmeterEditor to RainmeterStudio
This commit is contained in:
		
							
								
								
									
										88
									
								
								RainmeterStudio/UI/Command.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								RainmeterStudio/UI/Command.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Windows.Input;
 | 
			
		||||
using System.Windows.Media;
 | 
			
		||||
 | 
			
		||||
namespace RainmeterStudio.UI
 | 
			
		||||
{
 | 
			
		||||
    public class Command : ICommand
 | 
			
		||||
    {
 | 
			
		||||
        #region Private members
 | 
			
		||||
 | 
			
		||||
        private Action<object> _execute;
 | 
			
		||||
        private Func<object, bool> _canExecute;
 | 
			
		||||
        private Action _executeNoParam;
 | 
			
		||||
        private Func<bool> _canExecuteNoParam;
 | 
			
		||||
        
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region Public properties
 | 
			
		||||
 | 
			
		||||
        public string Name { get; set; }
 | 
			
		||||
        public string DisplayText { get; set; }
 | 
			
		||||
        public string Tooltip { get; set; }
 | 
			
		||||
        public ImageSource Icon { get; set; }
 | 
			
		||||
        public KeyGesture Shortcut { get; set; }
 | 
			
		||||
 | 
			
		||||
        public string ShortcutText
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                string text = String.Empty;
 | 
			
		||||
 | 
			
		||||
                if ((Shortcut.Modifiers & ModifierKeys.Windows) != 0)
 | 
			
		||||
                    text += "Win+";
 | 
			
		||||
 | 
			
		||||
                if ((Shortcut.Modifiers & ModifierKeys.Control) != 0)
 | 
			
		||||
                    text += "Ctrl+";
 | 
			
		||||
 | 
			
		||||
                if ((Shortcut.Modifiers & ModifierKeys.Alt) != 0)
 | 
			
		||||
                    text += "Alt+";
 | 
			
		||||
 | 
			
		||||
                if ((Shortcut.Modifiers & ModifierKeys.Shift) != 0)
 | 
			
		||||
                    text += "Shift+";
 | 
			
		||||
 | 
			
		||||
                text += Enum.GetName(typeof(Key), Shortcut.Key);
 | 
			
		||||
                return text;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        public event EventHandler CanExecuteChanged;
 | 
			
		||||
 | 
			
		||||
        public Command(string name = null, Action<object> execute = null, Func<object, bool> canExecute = null)
 | 
			
		||||
        {
 | 
			
		||||
            Name = name;
 | 
			
		||||
            _execute = execute;
 | 
			
		||||
            _canExecute = canExecute;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Command(string name = null, Action execute = null, Func<bool> canExecute = null)
 | 
			
		||||
        {
 | 
			
		||||
            Name = name;
 | 
			
		||||
            _executeNoParam = execute;
 | 
			
		||||
            _canExecuteNoParam = canExecute;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public virtual bool CanExecute(object parameter)
 | 
			
		||||
        {
 | 
			
		||||
            if (_canExecute != null)
 | 
			
		||||
                return _canExecute(parameter);
 | 
			
		||||
            else if (_canExecuteNoParam != null)
 | 
			
		||||
                return _canExecuteNoParam();
 | 
			
		||||
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public virtual void Execute(object parameter)
 | 
			
		||||
        {
 | 
			
		||||
            if (_execute != null)
 | 
			
		||||
                _execute(parameter);
 | 
			
		||||
            else if (_executeNoParam != null)
 | 
			
		||||
                _executeNoParam();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										77
									
								
								RainmeterStudio/UI/Controller/DocumentController.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								RainmeterStudio/UI/Controller/DocumentController.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using RainmeterStudio.Business;
 | 
			
		||||
using RainmeterStudio.UI.Dialogs;
 | 
			
		||||
using RainmeterStudio.Model.Events;
 | 
			
		||||
using RainmeterStudio.Model;
 | 
			
		||||
using System.Windows;
 | 
			
		||||
using System.Windows.Input;
 | 
			
		||||
using System.Windows.Media.Imaging;
 | 
			
		||||
 | 
			
		||||
namespace RainmeterStudio.UI.Controller
 | 
			
		||||
{
 | 
			
		||||
    public class DocumentController
 | 
			
		||||
    {
 | 
			
		||||
        #region Commands
 | 
			
		||||
 | 
			
		||||
        public Command DocumentCreateCommand { get; private set; }
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        public event EventHandler<DocumentOpenedEventArgs> DocumentOpened
 | 
			
		||||
        {
 | 
			
		||||
            add
 | 
			
		||||
            {
 | 
			
		||||
                DocumentManager.Instance.DocumentOpened += value;
 | 
			
		||||
            }
 | 
			
		||||
            remove
 | 
			
		||||
            {
 | 
			
		||||
                DocumentManager.Instance.DocumentOpened -= value;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public event EventHandler DocumentClosed;
 | 
			
		||||
 | 
			
		||||
        public Window OwnerWindow { get; set; }
 | 
			
		||||
 | 
			
		||||
        public DocumentController()
 | 
			
		||||
        {
 | 
			
		||||
            DocumentCreateCommand = new Command("DocumentCreateCommand", () => CreateWindow())
 | 
			
		||||
            {
 | 
			
		||||
                DisplayText = Resources.Strings.DocumentCreateCommand_DisplayText,
 | 
			
		||||
                Tooltip = Resources.Strings.DocumentCreateCommand_ToolTip,
 | 
			
		||||
                Icon = new BitmapImage(new Uri("/Resources/Icons/page_white_star_16.png", UriKind.RelativeOrAbsolute)),
 | 
			
		||||
                Shortcut = new KeyGesture(Key.N, ModifierKeys.Control)
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void CreateWindow(DocumentFormat defaultFormat = null, string defaultPath = "")
 | 
			
		||||
        {
 | 
			
		||||
            // Show dialog
 | 
			
		||||
            var dialog = new CreateDocumentDialog()
 | 
			
		||||
            {
 | 
			
		||||
                Owner = OwnerWindow,
 | 
			
		||||
                SelectedFormat = defaultFormat,
 | 
			
		||||
                SelectedPath = defaultPath
 | 
			
		||||
            };
 | 
			
		||||
            bool? res = dialog.ShowDialog();
 | 
			
		||||
 | 
			
		||||
            if (!res.HasValue || !res.Value)
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            var format = dialog.SelectedFormat;
 | 
			
		||||
            var path = dialog.SelectedPath;
 | 
			
		||||
 | 
			
		||||
            // Call manager
 | 
			
		||||
            DocumentManager.Instance.Create(format, path);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void Create(DocumentFormat format, string path)
 | 
			
		||||
        {
 | 
			
		||||
            // Call manager
 | 
			
		||||
            DocumentManager.Instance.Create(format, path);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										64
									
								
								RainmeterStudio/UI/Dialogs/CreateDocumentDialog.xaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								RainmeterStudio/UI/Dialogs/CreateDocumentDialog.xaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
<Window x:Class="RainmeterStudio.UI.Dialogs.CreateDocumentDialog"
 | 
			
		||||
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 | 
			
		||||
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 | 
			
		||||
        Title="Create..." Height="250" Width="400"
 | 
			
		||||
        WindowStartupLocation="CenterOwner"
 | 
			
		||||
        WindowStyle="ToolWindow" ShowInTaskbar="False">
 | 
			
		||||
    
 | 
			
		||||
    <Grid Background="WhiteSmoke">
 | 
			
		||||
        <Grid.RowDefinitions>
 | 
			
		||||
            <RowDefinition />
 | 
			
		||||
            <RowDefinition Height="Auto" />
 | 
			
		||||
            <RowDefinition Height="Auto" />
 | 
			
		||||
        </Grid.RowDefinitions>
 | 
			
		||||
        
 | 
			
		||||
        <ListView Name="listFormats" Grid.Row="0">
 | 
			
		||||
            <ListView.ItemTemplate>
 | 
			
		||||
                <DataTemplate>
 | 
			
		||||
                    <DockPanel>
 | 
			
		||||
                        <Image DockPanel.Dock="Left" Source="{Binding Icon}" 
 | 
			
		||||
                               Width="32" Height="32" Margin="2"
 | 
			
		||||
                               Stretch="Uniform" VerticalAlignment="Top" />
 | 
			
		||||
                        <StackPanel Orientation="Vertical" VerticalAlignment="Center">
 | 
			
		||||
                            <TextBlock Text="{Binding Name}" FontWeight="Bold" />
 | 
			
		||||
                            <TextBlock Text="{Binding Description}" />
 | 
			
		||||
                        </StackPanel>
 | 
			
		||||
                    </DockPanel>
 | 
			
		||||
                </DataTemplate>
 | 
			
		||||
            </ListView.ItemTemplate>
 | 
			
		||||
            <ListView.GroupStyle>
 | 
			
		||||
                <GroupStyle>
 | 
			
		||||
                    <GroupStyle.HeaderTemplate>
 | 
			
		||||
                        <DataTemplate>
 | 
			
		||||
                            <TextBlock FontWeight="Bold" FontSize="13pt" Text="{Binding Name}" />
 | 
			
		||||
                        </DataTemplate>
 | 
			
		||||
                    </GroupStyle.HeaderTemplate>
 | 
			
		||||
                </GroupStyle>
 | 
			
		||||
            </ListView.GroupStyle>
 | 
			
		||||
        </ListView>
 | 
			
		||||
        
 | 
			
		||||
        <Grid Grid.Row="1">
 | 
			
		||||
            <Grid.RowDefinitions>
 | 
			
		||||
                <RowDefinition />
 | 
			
		||||
                <RowDefinition />
 | 
			
		||||
            </Grid.RowDefinitions>
 | 
			
		||||
            <Grid.ColumnDefinitions>
 | 
			
		||||
                <ColumnDefinition Width="Auto" />
 | 
			
		||||
                <ColumnDefinition />
 | 
			
		||||
                <ColumnDefinition Width="Auto" />
 | 
			
		||||
            </Grid.ColumnDefinitions>
 | 
			
		||||
 | 
			
		||||
            <TextBlock Grid.Row="0">Path:</TextBlock>
 | 
			
		||||
            <TextBox Name="textPath" Grid.Row="0" Grid.Column="1"></TextBox>
 | 
			
		||||
            <Button Grid.Row="0" Grid.Column="2">...</Button>
 | 
			
		||||
 | 
			
		||||
        </Grid>
 | 
			
		||||
        
 | 
			
		||||
        <StackPanel Grid.Row="2" Orientation="Horizontal"
 | 
			
		||||
                    HorizontalAlignment="Right">
 | 
			
		||||
            <Button Name="buttonCreate" Click="buttonCreate_Click" IsDefault="True">Create</Button>
 | 
			
		||||
            <Button Name="buttonCancel" Click="buttonCancel_Click" IsCancel="True">Cancel</Button>
 | 
			
		||||
        </StackPanel>
 | 
			
		||||
        
 | 
			
		||||
    </Grid>
 | 
			
		||||
</Window>
 | 
			
		||||
							
								
								
									
										93
									
								
								RainmeterStudio/UI/Dialogs/CreateDocumentDialog.xaml.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								RainmeterStudio/UI/Dialogs/CreateDocumentDialog.xaml.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,93 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.ComponentModel;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Windows;
 | 
			
		||||
using System.Windows.Controls;
 | 
			
		||||
using System.Windows.Data;
 | 
			
		||||
using System.Windows.Documents;
 | 
			
		||||
using System.Windows.Input;
 | 
			
		||||
using System.Windows.Media;
 | 
			
		||||
using System.Windows.Media.Imaging;
 | 
			
		||||
using System.Windows.Shapes;
 | 
			
		||||
using RainmeterStudio.Business;
 | 
			
		||||
using RainmeterStudio.Model;
 | 
			
		||||
 | 
			
		||||
namespace RainmeterStudio.UI.Dialogs
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// Interaction logic for CreateDocumentDialog.xaml
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public partial class CreateDocumentDialog : Window
 | 
			
		||||
    {
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Gets or sets the currently selected file format
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public DocumentFormat SelectedFormat
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return listFormats.SelectedItem as DocumentFormat;
 | 
			
		||||
            }
 | 
			
		||||
            set
 | 
			
		||||
            {
 | 
			
		||||
                listFormats.SelectedItem = value;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Gets or sets the path
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public string SelectedPath
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return textPath.Text;
 | 
			
		||||
            }
 | 
			
		||||
            set
 | 
			
		||||
            {
 | 
			
		||||
                textPath.Text = value;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Creates a new instance of CreateDocumentDialog
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public CreateDocumentDialog()
 | 
			
		||||
        {
 | 
			
		||||
            InitializeComponent();
 | 
			
		||||
 | 
			
		||||
            PopulateFormats();
 | 
			
		||||
            Validate();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void PopulateFormats()
 | 
			
		||||
        {
 | 
			
		||||
            listFormats.ItemsSource = DocumentManager.Instance.DocumentFormats;
 | 
			
		||||
            CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(listFormats.ItemsSource);
 | 
			
		||||
            view.GroupDescriptions.Add(new PropertyGroupDescription("Category"));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void buttonCreate_Click(object sender, RoutedEventArgs e)
 | 
			
		||||
        {
 | 
			
		||||
            DialogResult = true;
 | 
			
		||||
            Close();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void buttonCancel_Click(object sender, RoutedEventArgs e)
 | 
			
		||||
        {
 | 
			
		||||
            DialogResult = false;
 | 
			
		||||
            Close();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void Validate()
 | 
			
		||||
        {
 | 
			
		||||
            bool res = true;
 | 
			
		||||
            res &= !String.IsNullOrWhiteSpace(textPath.Text);
 | 
			
		||||
            res &= (listFormats.SelectedItem != null);
 | 
			
		||||
 | 
			
		||||
            buttonCreate.IsEnabled = res;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										116
									
								
								RainmeterStudio/UI/MainWindow.xaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								RainmeterStudio/UI/MainWindow.xaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,116 @@
 | 
			
		||||
<Window x:Class="RainmeterStudio.UI.MainWindow"
 | 
			
		||||
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 | 
			
		||||
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 | 
			
		||||
        xmlns:ui="clr-namespace:RainmeterStudio.UI"
 | 
			
		||||
        xmlns:ad="clr-namespace:Xceed.Wpf.AvalonDock;assembly=Xceed.Wpf.AvalonDock"
 | 
			
		||||
        xmlns:adlayout="clr-namespace:Xceed.Wpf.AvalonDock.Layout;assembly=Xceed.Wpf.AvalonDock"
 | 
			
		||||
        Title="Rainmeter Studio" Height="350" Width="525"
 | 
			
		||||
        ResizeMode="CanResizeWithGrip" >
 | 
			
		||||
    
 | 
			
		||||
    <Window.Resources>
 | 
			
		||||
        
 | 
			
		||||
    </Window.Resources>
 | 
			
		||||
    
 | 
			
		||||
    <Grid>
 | 
			
		||||
        <Grid.RowDefinitions>
 | 
			
		||||
            <RowDefinition Height="Auto" />
 | 
			
		||||
            <!-- Menu bar -->
 | 
			
		||||
            <RowDefinition Height="Auto" />
 | 
			
		||||
            <!-- Toolbar -->
 | 
			
		||||
            <RowDefinition />
 | 
			
		||||
            <!-- Dock area -->
 | 
			
		||||
            <RowDefinition Height="Auto" />
 | 
			
		||||
            <!-- Status bar -->
 | 
			
		||||
        </Grid.RowDefinitions>
 | 
			
		||||
 | 
			
		||||
        <!-- Menu bar -->
 | 
			
		||||
        <Menu Grid.Row="0" Grid.ColumnSpan="10">
 | 
			
		||||
            <MenuItem Header="_File">
 | 
			
		||||
                <MenuItem Header="_New">
 | 
			
		||||
                    <MenuItem DataContext="{Binding DocumentCreateCommand}"
 | 
			
		||||
                              Command="{Binding}" Header="{Binding DisplayText}" ToolTip="{Binding Tooltip}"
 | 
			
		||||
                              InputGestureText="{Binding ShortcutText}">
 | 
			
		||||
                        <MenuItem.Icon>
 | 
			
		||||
                            <Image Source="{Binding Icon}" />
 | 
			
		||||
                        </MenuItem.Icon>
 | 
			
		||||
                    </MenuItem>
 | 
			
		||||
                    <MenuItem Header="_Project..." Command="{Binding DocumentCreateCommand}">
 | 
			
		||||
                        <MenuItem.Icon>
 | 
			
		||||
                            <Image Source="/Resources/Icons/project_star_16.png" />
 | 
			
		||||
                        </MenuItem.Icon>
 | 
			
		||||
                    </MenuItem>
 | 
			
		||||
                </MenuItem>
 | 
			
		||||
                <MenuItem Header="_Open..." />
 | 
			
		||||
                <Separator />
 | 
			
		||||
                <MenuItem Header="_Close" />
 | 
			
		||||
                <MenuItem Header="E_xit" />
 | 
			
		||||
            </MenuItem>
 | 
			
		||||
            <MenuItem Header="_Edit" />
 | 
			
		||||
            <MenuItem Header="_Help" />
 | 
			
		||||
        </Menu>
 | 
			
		||||
 | 
			
		||||
        <!-- Toolbar -->
 | 
			
		||||
        <ToolBarTray Grid.Row="1">
 | 
			
		||||
            <ToolBar>
 | 
			
		||||
                <Button Name="buttonBackward" ToolTip="Navigate backward">
 | 
			
		||||
                    <Image Width="16" Height="16" Source="/Resources/Icons/arrow_backward_16.png" />
 | 
			
		||||
                </Button>
 | 
			
		||||
                <Button Name="buttonForward" ToolTip="Navigate forward">
 | 
			
		||||
                    <Image Width="16" Height="16" Source="/Resources/Icons/arrow_forward_16.png" />
 | 
			
		||||
                </Button>
 | 
			
		||||
                <Separator />
 | 
			
		||||
                <Button DataContext="{Binding DocumentCreateCommand}"
 | 
			
		||||
                        Command="{Binding}" ToolTip="{Binding Tooltip}">
 | 
			
		||||
                    <Image Source="{Binding Icon}" />
 | 
			
		||||
                </Button>
 | 
			
		||||
            </ToolBar>
 | 
			
		||||
        </ToolBarTray>
 | 
			
		||||
 | 
			
		||||
        <!-- Grid splitter -->
 | 
			
		||||
        <GridSplitter Grid.Row="2" Grid.Column="1"
 | 
			
		||||
                      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
 | 
			
		||||
 | 
			
		||||
        <!-- Document panel -->
 | 
			
		||||
        <ad:DockingManager 
 | 
			
		||||
            x:Name="dockingManager"
 | 
			
		||||
            Grid.Row="2">
 | 
			
		||||
            <adlayout:LayoutRoot>
 | 
			
		||||
 | 
			
		||||
                <adlayout:LayoutRoot.LeftSide>
 | 
			
		||||
                    <adlayout:LayoutAnchorSide>
 | 
			
		||||
                        <adlayout:LayoutAnchorGroup>
 | 
			
		||||
                            <adlayout:LayoutAnchorable Title="Toolbox" />
 | 
			
		||||
                        </adlayout:LayoutAnchorGroup>
 | 
			
		||||
                    </adlayout:LayoutAnchorSide>
 | 
			
		||||
                </adlayout:LayoutRoot.LeftSide>
 | 
			
		||||
 | 
			
		||||
                <adlayout:LayoutPanel Orientation="Horizontal">
 | 
			
		||||
                    <adlayout:LayoutDocumentPane x:Name="documentPane" />
 | 
			
		||||
 | 
			
		||||
                    <adlayout:LayoutAnchorablePaneGroup DockWidth="150" Orientation="Vertical">
 | 
			
		||||
                        <adlayout:LayoutAnchorablePane>
 | 
			
		||||
                            <adlayout:LayoutAnchorable Title="Skins">
 | 
			
		||||
                                <ui:SkinsPanel />
 | 
			
		||||
                            </adlayout:LayoutAnchorable>
 | 
			
		||||
                            <adlayout:LayoutAnchorable Title="Outline" />
 | 
			
		||||
                        </adlayout:LayoutAnchorablePane>
 | 
			
		||||
                        <adlayout:LayoutAnchorablePane>
 | 
			
		||||
                            <adlayout:LayoutAnchorable Title="Properties" />
 | 
			
		||||
                        </adlayout:LayoutAnchorablePane>
 | 
			
		||||
                    </adlayout:LayoutAnchorablePaneGroup>
 | 
			
		||||
                </adlayout:LayoutPanel>
 | 
			
		||||
            </adlayout:LayoutRoot>
 | 
			
		||||
        </ad:DockingManager>
 | 
			
		||||
 | 
			
		||||
        <!-- Status bar -->
 | 
			
		||||
        <StatusBar Grid.Row="3" Grid.ColumnSpan="10">
 | 
			
		||||
 | 
			
		||||
            <ProgressBar Name="statusProgress" 
 | 
			
		||||
                         Width="64" Height="8" 
 | 
			
		||||
                         IsIndeterminate="True" 
 | 
			
		||||
                         Visibility="Collapsed" />
 | 
			
		||||
            
 | 
			
		||||
            <TextBlock Name="statusMessage">Ready</TextBlock>
 | 
			
		||||
        </StatusBar>
 | 
			
		||||
    </Grid>
 | 
			
		||||
</Window>
 | 
			
		||||
							
								
								
									
										75
									
								
								RainmeterStudio/UI/MainWindow.xaml.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								RainmeterStudio/UI/MainWindow.xaml.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Windows;
 | 
			
		||||
using System.Windows.Controls;
 | 
			
		||||
using System.Windows.Data;
 | 
			
		||||
using System.Windows.Documents;
 | 
			
		||||
using System.Windows.Input;
 | 
			
		||||
using System.Windows.Media;
 | 
			
		||||
using System.Windows.Media.Imaging;
 | 
			
		||||
using System.Windows.Navigation;
 | 
			
		||||
using System.Windows.Shapes;
 | 
			
		||||
using RainmeterStudio.Model.Events;
 | 
			
		||||
using RainmeterStudio.UI.Controller;
 | 
			
		||||
using Xceed.Wpf.AvalonDock.Layout;
 | 
			
		||||
 | 
			
		||||
namespace RainmeterStudio.UI
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// Interaction logic for MainWindow.xaml
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public partial class MainWindow : Window
 | 
			
		||||
    {
 | 
			
		||||
        private DocumentController documentController;
 | 
			
		||||
 | 
			
		||||
        public Command DocumentCreateCommand { get { return documentController.DocumentCreateCommand; } }
 | 
			
		||||
 | 
			
		||||
        public MainWindow()
 | 
			
		||||
        {
 | 
			
		||||
            InitializeComponent();
 | 
			
		||||
 | 
			
		||||
            this.DataContext = this;
 | 
			
		||||
 | 
			
		||||
            documentController = new DocumentController();
 | 
			
		||||
            documentController.OwnerWindow = this;
 | 
			
		||||
            documentController.DocumentOpened += documentController_DocumentOpened;
 | 
			
		||||
            AddKeyBinding(documentController.DocumentCreateCommand);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void AddKeyBinding(Command c)
 | 
			
		||||
        {
 | 
			
		||||
            if (c.Shortcut != null)
 | 
			
		||||
                InputBindings.Add(new KeyBinding(c, c.Shortcut));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void documentController_DocumentOpened(object sender, DocumentOpenedEventArgs e)
 | 
			
		||||
        {
 | 
			
		||||
            // Spawn a new window
 | 
			
		||||
            LayoutDocument document = new LayoutDocument();
 | 
			
		||||
            document.Content = e.Editor.EditorUI;
 | 
			
		||||
            document.Title = e.Editor.Title;
 | 
			
		||||
            document.Closing += document_Closing;
 | 
			
		||||
 | 
			
		||||
            documentPane.Children.Add(document);
 | 
			
		||||
            documentPane.SelectedContentIndex = documentPane.IndexOf(document);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void document_Closing(object sender, System.ComponentModel.CancelEventArgs e)
 | 
			
		||||
        {
 | 
			
		||||
            switch (MessageBox.Show("Are you sure?", "", MessageBoxButton.YesNoCancel, MessageBoxImage.Question))
 | 
			
		||||
            {
 | 
			
		||||
                case MessageBoxResult.Yes:
 | 
			
		||||
                    break;
 | 
			
		||||
 | 
			
		||||
                case MessageBoxResult.No:
 | 
			
		||||
                    break;
 | 
			
		||||
 | 
			
		||||
                default:
 | 
			
		||||
                    e.Cancel = true;
 | 
			
		||||
                    return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								RainmeterStudio/UI/SkinsPanel.xaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								RainmeterStudio/UI/SkinsPanel.xaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<UserControl x:Class="RainmeterStudio.UI.SkinsPanel"
 | 
			
		||||
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 | 
			
		||||
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 | 
			
		||||
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 | 
			
		||||
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
 | 
			
		||||
             mc:Ignorable="d" 
 | 
			
		||||
             d:DesignHeight="300" d:DesignWidth="300">
 | 
			
		||||
    <Grid>
 | 
			
		||||
        <TreeView>
 | 
			
		||||
            <TreeViewItem Header="Sample item">
 | 
			
		||||
                <TreeViewItem Header="Sample subitem" />
 | 
			
		||||
            </TreeViewItem>
 | 
			
		||||
            <TreeViewItem Header="Sample item 2" />
 | 
			
		||||
        </TreeView>
 | 
			
		||||
    </Grid>
 | 
			
		||||
</UserControl>
 | 
			
		||||
							
								
								
									
										31
									
								
								RainmeterStudio/UI/SkinsPanel.xaml.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								RainmeterStudio/UI/SkinsPanel.xaml.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Windows;
 | 
			
		||||
using System.Windows.Controls;
 | 
			
		||||
using System.Windows.Data;
 | 
			
		||||
using System.Windows.Documents;
 | 
			
		||||
using System.Windows.Input;
 | 
			
		||||
using System.Windows.Media;
 | 
			
		||||
using System.Windows.Media.Imaging;
 | 
			
		||||
using System.Windows.Navigation;
 | 
			
		||||
using System.Windows.Shapes;
 | 
			
		||||
using RainmeterStudio.Interop;
 | 
			
		||||
using RainmeterStudio.Storage;
 | 
			
		||||
 | 
			
		||||
namespace RainmeterStudio.UI
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// Interaction logic for SkinsPanel.xaml
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public partial class SkinsPanel : UserControl
 | 
			
		||||
    {
 | 
			
		||||
        public SkinsPanel()
 | 
			
		||||
        {
 | 
			
		||||
            InitializeComponent();
 | 
			
		||||
 | 
			
		||||
            //var x = Rainmeter.Instance.Handle;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										55
									
								
								RainmeterStudio/UI/Styles/ButtonStyle.xaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								RainmeterStudio/UI/Styles/ButtonStyle.xaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 | 
			
		||||
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
 | 
			
		||||
    <Style TargetType="Button">
 | 
			
		||||
        <Setter Property="Margin" Value="1" />
 | 
			
		||||
        <Setter Property="Padding" Value="6,1,6,1" />
 | 
			
		||||
        <Setter Property="SnapsToDevicePixels" Value="True" />
 | 
			
		||||
        <Setter Property="Template">
 | 
			
		||||
            <Setter.Value>
 | 
			
		||||
                <ControlTemplate TargetType="Button">
 | 
			
		||||
                    <Border Name="_border"
 | 
			
		||||
                            BorderBrush="Gray"
 | 
			
		||||
                            BorderThickness="1"
 | 
			
		||||
                            CornerRadius="2"
 | 
			
		||||
                            Padding="{TemplateBinding Padding}">
 | 
			
		||||
                        <Border.Background>
 | 
			
		||||
                            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
 | 
			
		||||
                                <GradientStop Color="#eeee" Offset="0" />
 | 
			
		||||
                                <GradientStop Color="#cccc" Offset="1" />
 | 
			
		||||
                            </LinearGradientBrush>
 | 
			
		||||
                        </Border.Background>
 | 
			
		||||
                        <ContentPresenter Name="_content" />
 | 
			
		||||
                    </Border>
 | 
			
		||||
                    <ControlTemplate.Triggers>
 | 
			
		||||
                        <Trigger Property="IsMouseOver" Value="True">
 | 
			
		||||
                            <Setter TargetName="_border" Property="Background" >
 | 
			
		||||
                                <Setter.Value>
 | 
			
		||||
                                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
 | 
			
		||||
                                        <GradientStop Color="#eeee" Offset="0" />
 | 
			
		||||
                                        <GradientStop Color="#dddd" Offset="1" />
 | 
			
		||||
                                    </LinearGradientBrush>
 | 
			
		||||
                                </Setter.Value>
 | 
			
		||||
                            </Setter>
 | 
			
		||||
                        </Trigger>
 | 
			
		||||
 | 
			
		||||
                        <Trigger Property="IsPressed" Value="True">
 | 
			
		||||
                            <Setter TargetName="_border" Property="Background" >
 | 
			
		||||
                                <Setter.Value>
 | 
			
		||||
                                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
 | 
			
		||||
                                        <GradientStop Color="#dddd" Offset="0" />
 | 
			
		||||
                                        <GradientStop Color="#bbbb" Offset="1" />
 | 
			
		||||
                                    </LinearGradientBrush>
 | 
			
		||||
                                </Setter.Value>
 | 
			
		||||
                            </Setter>
 | 
			
		||||
                        </Trigger>
 | 
			
		||||
 | 
			
		||||
                        <Trigger Property="IsEnabled" Value="False">
 | 
			
		||||
                            <Setter TargetName="_content" Property="Opacity" Value=".5" />
 | 
			
		||||
                        </Trigger>
 | 
			
		||||
                        
 | 
			
		||||
                    </ControlTemplate.Triggers>
 | 
			
		||||
                </ControlTemplate>
 | 
			
		||||
            </Setter.Value>
 | 
			
		||||
        </Setter>
 | 
			
		||||
    </Style>
 | 
			
		||||
</ResourceDictionary>
 | 
			
		||||
							
								
								
									
										6
									
								
								RainmeterStudio/UI/Styles/Common.xaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								RainmeterStudio/UI/Styles/Common.xaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 | 
			
		||||
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
 | 
			
		||||
    <ResourceDictionary.MergedDictionaries>
 | 
			
		||||
        <ResourceDictionary Source="ButtonStyle.xaml" />
 | 
			
		||||
    </ResourceDictionary.MergedDictionaries>
 | 
			
		||||
</ResourceDictionary>
 | 
			
		||||
		Reference in New Issue
	
	Block a user