Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Complete new command with a new document wizard #41

Merged
merged 1 commit into from

1 participant

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
This page is out of date. Refresh to see the latest.
View
2  Src/Test/WideMD.Core/MDHandler.cs
@@ -23,7 +23,7 @@
namespace WideMD.Core
{
[FileContent("Markdown files", "*.md", 1)]
- [NewContent("Markdown files","pack://application:,,,/WideMD.Core;component/Icons/MDType.png", 1)]
+ [NewContent("Markdown files", 1, "Creates a new Markdown file", "pack://application:,,,/WideMD.Core;component/Icons/MDType.png")]
internal class MDHandler : IContentHandler
{
/// <summary>
View
10 Src/Wide/Core/Attributes/NewContentAttribute.cs
@@ -19,11 +19,15 @@ namespace Wide.Core.Attributes
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false)]
public class NewContentAttribute : Attribute
{
- public NewContentAttribute(string display, string imageSource, int priority)
+ public NewContentAttribute(string display, int priority, string description = "", string imageSource = "")
{
this.Display = display;
- this.ImageSource = new BitmapImage(new Uri(imageSource));
+ if(!string.IsNullOrEmpty(imageSource))
+ {
+ this.ImageSource = new BitmapImage(new Uri(imageSource));
+ }
this.Priority = priority;
+ this.Description = description;
}
public string Display { get; private set; }
@@ -31,5 +35,7 @@ public NewContentAttribute(string display, string imageSource, int priority)
public ImageSource ImageSource { get; private set; }
public int Priority { get; private set; }
+
+ public string Description { get; private set; }
}
}
View
BIN  Src/Wide/Core/Icons/Textfile.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
35 Src/Wide/Core/Services/AllFileHandler.cs
@@ -15,6 +15,7 @@
using System.Linq;
using System.Text.RegularExpressions;
using Microsoft.Practices.Unity;
+using Microsoft.Win32;
using Wide.Core.Attributes;
using Wide.Core.TextDocument;
using Wide.Interfaces;
@@ -26,6 +27,7 @@ namespace Wide.Core.Services
/// AllFileHandler class that supports opening of any file on the computer
/// </summary>
[FileContent("All files", "*.*", 10000)]
+ [NewContent("Text file", 10000, "Creates a basic text file", "pack://application:,,,/Wide;component/Core/Icons/Textfile.png")]
internal class AllFileHandler : IContentHandler
{
/// <summary>
@@ -37,6 +39,11 @@ internal class AllFileHandler : IContentHandler
/// The injected logger service
/// </summary>
private readonly ILoggerService _loggerService;
+
+ /// <summary>
+ /// The save file dialog
+ /// </summary>
+ private SaveFileDialog _dialog;
/// <summary>
/// Constructor of AllFileHandler - all parameters are injected
@@ -47,6 +54,7 @@ public AllFileHandler(IUnityContainer container, ILoggerService loggerService)
{
_container = container;
_loggerService = loggerService;
+ _dialog = new SaveFileDialog();
}
#region IContentHandler Members
@@ -206,8 +214,31 @@ public virtual bool SaveContent(ContentViewModel contentViewModel, bool saveAs =
if (saveAs)
{
- //TODO: Save as...?
- //contentViewModel.Model.Location = "tesT";
+ if (location != null)
+ _dialog.InitialDirectory = Path.GetDirectoryName(location);
+
+ _dialog.CheckPathExists = true;
+ _dialog.DefaultExt = "txt";
+ _dialog.Filter = "All files (*.*)|*.*";
+
+ if (_dialog.ShowDialog() == true)
+ {
+ location = _dialog.FileName;
+ textModel.SetLocation(location);
+ textViewModel.Title = Path.GetFileName(location);
+ try
+ {
+ File.WriteAllText(location, textModel.Document.Text);
+ textModel.IsDirty = false;
+ return true;
+ }
+ catch (Exception exception)
+ {
+ _loggerService.Log(exception.Message, LogCategory.Exception, LogPriority.High);
+ _loggerService.Log(exception.StackTrace, LogCategory.Exception, LogPriority.High);
+ return false;
+ }
+ }
}
else
{
View
44 Src/Wide/Core/Services/ContentHandlerRegistry.cs
@@ -12,12 +12,15 @@
using System.Collections.Generic;
using System.Linq;
+using System.Windows.Media;
+using MahApps.Metro.Controls;
using Microsoft.Practices.Prism.Commands;
using Microsoft.Practices.Unity;
using Wide.Core.Attributes;
using Wide.Interfaces;
using Wide.Interfaces.Services;
using System.Windows.Input;
+using System.Windows;
namespace Wide.Core.Services
{
@@ -51,6 +54,16 @@ internal sealed class ContentHandlerRegistry : IContentHandlerRegistry
/// The container
/// </summary>
private readonly IUnityContainer _container;
+
+ /// <summary>
+ /// The status bar service
+ /// </summary>
+ private readonly IStatusbarService _statusBar;
+
+ /// <summary>
+ /// The new glow background brush
+ /// </summary>
+ private readonly SolidColorBrush _newBackground = new SolidColorBrush(Color.FromRgb(104,33,122));
#endregion
#region Properties
@@ -82,10 +95,11 @@ public List<IContentHandler> ContentHandlers
/// Constructor of content handler registry
/// </summary>
/// <param name="container">The injected container of the application</param>
- public ContentHandlerRegistry(IUnityContainer container)
+ public ContentHandlerRegistry(IUnityContainer container, IStatusbarService statusBar)
{
_contentHandlers = new List<IContentHandler>();
_container = container;
+ _statusBar = statusBar;
_dictionary = new Dictionary<NewContentAttribute, IContentHandler>();
_availableNewContent = new List<NewContentAttribute>();
this.NewCommand = new DelegateCommand(NewDocument, CanExecuteNewCommand);
@@ -199,8 +213,32 @@ private void NewDocument()
}
else
{
- //TODO: This is where we need to show a new pop-up similar to VS and get the input from user
-
+ NewFileWindow window = new NewFileWindow();
+ Brush backup = _statusBar.Background;
+ _statusBar.Background = _newBackground;
+ _statusBar.Text = "Select a new file";
+ if(Application.Current.MainWindow is MetroWindow)
+ {
+ window.Resources = Application.Current.MainWindow.Resources;
+ MetroWindow win = Application.Current.MainWindow as MetroWindow;
+ window.Resources = win.Resources;
+ window.GlowBrush = win.GlowBrush;
+ window.TitleForeground = win.TitleForeground;
+ }
+ window.DataContext = _availableNewContent;
+ if(window.ShowDialog() == true)
+ {
+ NewContentAttribute newContent = window.NewContent;
+ if(newContent != null)
+ {
+ IContentHandler handler = _dictionary[newContent];
+ var openValue = handler.NewContent(newContent);
+ _workspace.Documents.Add(openValue);
+ _workspace.ActiveDocument = openValue;
+ }
+ }
+ _statusBar.Background = backup;
+ _statusBar.Clear();
}
}
#endregion
View
58 Src/Wide/Core/Services/NewFileWindow.xaml
@@ -0,0 +1,58 @@
+<Controls:MetroWindow x:Class="Wide.Core.Services.NewFileWindow" x:ClassModifier="internal"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:Converters="clr-namespace:Wide.Interfaces.Converters"
+ xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
+ Title="New Object" Height="400" Width="700" TitleCaps="False"
+ WindowStartupLocation="CenterScreen"
+ ResizeMode="NoResize" ShowInTaskbar="False" WindowStyle="ToolWindow"
+ WindowTransitionsEnabled="False">
+ <Window.Resources>
+ <Converters:NullToBooleanConverter x:Key="nullToBooleanConverter" />
+ <Converters:NullObjectToVisibiltyConverter x:Key="nullToVisibilityConverter" />
+ </Window.Resources>
+ <Grid Background="{DynamicResource ControlHighlightedColorBrush}">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="*" />
+ <RowDefinition Height="55" />
+ </Grid.RowDefinitions>
+ <Grid Grid.Row="0">
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="55*" />
+ <ColumnDefinition Width="45*" />
+ </Grid.ColumnDefinitions>
+ <Border Grid.Column="0" Background="White">
+ <ListBox x:Name="listView" ItemsSource="{Binding}">
+ <ListBox.ItemTemplate>
+ <DataTemplate>
+ <DockPanel>
+ <Image Source="{Binding ImageSource}" DockPanel.Dock="Left" Height="64" Width="64" VerticalAlignment="Center"/>
+ <TextBlock Text="{Binding Display}" FontSize="16" VerticalAlignment="Center" />
+ </DockPanel>
+ </DataTemplate>
+ </ListBox.ItemTemplate>
+ <ListBox.ItemContainerStyle>
+ <Style TargetType="{x:Type ListBoxItem}">
+ <EventSetter Event="MouseDoubleClick" Handler="listBoxItem_DoubleClick" />
+ </Style>
+ </ListBox.ItemContainerStyle>
+ </ListBox>
+ </Border>
+ <StackPanel Grid.Column="1" Margin="10">
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Foreground="{DynamicResource BlackBrush}" Text="Type: " FontWeight="Bold" FontSize="16" Padding="5" Visibility="{Binding ElementName=listView, Path=SelectedItem, Converter={StaticResource ResourceKey=nullToVisibilityConverter}}"/>
+ <TextBlock Foreground="{DynamicResource BlackBrush}" Text="{Binding ElementName=listView, Path=SelectedItem.Display}" FontSize="16" Padding="0,5,0,0"/>
+ </StackPanel>
+ <TextBlock Foreground="{DynamicResource BlackBrush}" Text="{Binding ElementName=listView, Path=SelectedItem.Description}" FontSize="14" Padding="5" />
+ </StackPanel>
+ </Grid>
+ </Grid>
+ <Grid Grid.Row="1">
+ <StackPanel Orientation="Horizontal" FlowDirection="RightToLeft">
+ <Button Content="_Cancel" IsCancel="True" Width="85" Height="25" Margin="12" />
+ <Button Content="_New" IsDefault="True" Width="85" Height="25" IsEnabled="{Binding ElementName=listView, Path=SelectedItem, Converter={StaticResource ResourceKey=nullToBooleanConverter}}" Click="Button_Click" />
+ </StackPanel>
+ </Grid>
+ </Grid>
+</Controls:MetroWindow>
View
44 Src/Wide/Core/Services/NewFileWindow.xaml.cs
@@ -0,0 +1,44 @@
+#region License
+
+// Copyright (c) 2013 Chandramouleswaran Ravichandran
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#endregion
+
+using System.Windows.Input;
+using MahApps.Metro.Controls;
+using Wide.Core.Attributes;
+using System.Windows.Controls;
+
+namespace Wide.Core.Services
+{
+ /// <summary>
+ /// Interaction logic for NewFileWindow.xaml
+ /// </summary>
+ internal partial class NewFileWindow : MetroWindow
+ {
+ public NewFileWindow()
+ {
+ InitializeComponent();
+ }
+
+ private void listBoxItem_DoubleClick(object sender, MouseButtonEventArgs e)
+ {
+ this.NewContent = (sender as ListBoxItem).DataContext as NewContentAttribute;
+ this.DialogResult = true;
+ }
+
+ public NewContentAttribute NewContent { get; private set; }
+
+ private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
+ {
+ this.NewContent = this.listView.SelectedItem as NewContentAttribute;
+ this.DialogResult = true;
+ }
+ }
+}
View
16 Src/Wide/Core/Services/OpenDocumentService.cs
@@ -132,13 +132,17 @@ public ContentViewModel Open(object location = null)
//Check if the document is already open
foreach (ContentViewModel contentViewModel in _workspace.Documents)
{
- if (contentViewModel.Model.Location.Equals(openValue.Model.Location))
+ if (contentViewModel.Model.Location != null)
{
- _logger.Log(
- "Document " + contentViewModel.Model.Location + "already open - making it active",
- LogCategory.Info, LogPriority.Low);
- _workspace.ActiveDocument = contentViewModel;
- return contentViewModel;
+ if (contentViewModel.Model.Location.Equals(openValue.Model.Location))
+ {
+ _logger.Log(
+ "Document " + contentViewModel.Model.Location +
+ "already open - making it active",
+ LogCategory.Info, LogPriority.Low);
+ _workspace.ActiveDocument = contentViewModel;
+ return contentViewModel;
+ }
}
}
View
2  Src/Wide/Core/Settings/SettingsWindow.xaml
@@ -1,4 +1,4 @@
-<Window x:Class="Wide.Core.Settings.SettingsWindow"
+<Window x:Class="Wide.Core.Settings.SettingsWindow" x:ClassModifier="internal"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Settings" Height="500" Width="700" WindowStartupLocation="CenterScreen" ResizeMode="CanResizeWithGrip" ShowInTaskbar="False" WindowStyle="ToolWindow" Topmost="True">
View
2  Src/Wide/Core/Settings/SettingsWindow.xaml.cs
@@ -17,7 +17,7 @@ namespace Wide.Core.Settings
/// <summary>
/// Interaction logic for SettingsWindow.xaml
/// </summary>
- public partial class SettingsWindow : Window
+ internal partial class SettingsWindow : Window
{
public SettingsWindow()
{
View
5 Src/Wide/Interfaces/AbstractWorkspace.cs
@@ -207,10 +207,9 @@ public virtual bool Closing(CancelEventArgs e)
return false;
}
- // This can happen only when a view model with no location was closed
- if (Documents.Count > 0 && vm != Documents[i])
+ //If it was a new view model with no location to save, we have removed the view model from documents - so reduce the count
+ if(vm.Model.Location == null)
{
- //Closed the document - now reduce the count as Documents.Count would have decreased.
i--;
}
}
View
133 Src/Wide/Interfaces/Controls/WideStatusbar.cs
@@ -1,4 +1,17 @@
-#region License
+// ***********************************************************************
+// Assembly : Wide
+// Author : Chandramouleswaran
+// Created : 08-22-2013
+//
+// Last Modified By : Chandramouleswaran
+// Last Modified On : 09-14-2013
+// ***********************************************************************
+// <copyright file="WideStatusbar.cs" company="">
+// Copyright (c) . All rights reserved.
+// </copyright>
+// <summary></summary>
+// ***********************************************************************
+#region License
// Copyright (c) 2013 Chandramouleswaran Ravichandran
//
@@ -10,40 +23,94 @@
#endregion
-using System;
using System.Windows.Controls;
-using System.Windows.Input;
using System.Windows.Media;
using Wide.Interfaces.Services;
namespace Wide.Interfaces
{
+ /// <summary>
+ /// Class Wide Status bar
+ /// </summary>
internal class WideStatusbar : ViewModelBase, IStatusbarService
{
+ #region Fields
+ /// <summary>
+ /// The line number
+ /// </summary>
private int? _lineNumber;
+ /// <summary>
+ /// The insert mode
+ /// </summary>
private bool? _insertMode;
+ /// <summary>
+ /// The col position
+ /// </summary>
private int? _colPosition;
+ /// <summary>
+ /// The char position
+ /// </summary>
private int? _charPosition;
+ /// <summary>
+ /// The p max
+ /// </summary>
private uint _pMax;
+ /// <summary>
+ /// The _p val
+ /// </summary>
private uint _pVal;
+ /// <summary>
+ /// The _foreground
+ /// </summary>
private Brush _foreground;
+ /// <summary>
+ /// The _background
+ /// </summary>
private Brush _background;
+ /// <summary>
+ /// The _show progress
+ /// </summary>
private bool _showProgress;
+ /// <summary>
+ /// The _anim image
+ /// </summary>
private Image _animImage;
+ /// <summary>
+ /// The _is frozen
+ /// </summary>
private bool _isFrozen;
+ /// <summary>
+ /// The _text
+ /// </summary>
private string _text;
+ #endregion
+ #region CTOR
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WideStatusbar"/> class.
+ /// </summary>
public WideStatusbar()
{
Clear();
}
+ #endregion
+ #region IStatusbarService members
+ /// <summary>
+ /// Animations the specified image.
+ /// </summary>
+ /// <param name="image">The image.</param>
+ /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
public bool Animation(Image image)
{
AnimationImage = image;
return true;
}
+ /// <summary>
+ /// Clears this status bar.
+ /// </summary>
+ /// <returns><c>true</c> if successfully, <c>false</c> otherwise</returns>
public bool Clear()
{
Foreground = Brushes.White;
@@ -59,11 +126,19 @@ public bool Clear()
return true;
}
+ /// <summary>
+ /// Freezes the output.
+ /// </summary>
+ /// <returns><c>true</c> if frozen, <c>false</c> otherwise</returns>
public bool FreezeOutput()
{
return IsFrozen;
}
+ /// <summary>
+ /// Gets or sets a value indicating whether this instance is frozen.
+ /// </summary>
+ /// <value><c>true</c> if this instance is frozen; otherwise, <c>false</c>.</value>
public bool IsFrozen
{
get { return _isFrozen; }
@@ -74,6 +149,10 @@ public bool IsFrozen
}
}
+ /// <summary>
+ /// Gets or sets the text.
+ /// </summary>
+ /// <value>The text.</value>
public string Text
{
get { return _text; }
@@ -84,6 +163,10 @@ public string Text
}
}
+ /// <summary>
+ /// Gets or sets the foreground.
+ /// </summary>
+ /// <value>The foreground.</value>
public Brush Foreground
{
get { return _foreground; }
@@ -94,6 +177,10 @@ public Brush Foreground
}
}
+ /// <summary>
+ /// Gets or sets the background.
+ /// </summary>
+ /// <value>The background.</value>
public Brush Background
{
get { return _background; }
@@ -104,6 +191,10 @@ public Brush Background
}
}
+ /// <summary>
+ /// Gets or sets a value indicating whether [insert mode].
+ /// </summary>
+ /// <value><c>null</c> if [insert mode] contains no value, <c>true</c> if [insert mode]; otherwise, <c>false</c>.</value>
public bool? InsertMode
{
get { return _insertMode; }
@@ -114,6 +205,10 @@ public Brush Background
}
}
+ /// <summary>
+ /// Gets or sets the line number.
+ /// </summary>
+ /// <value>The line number.</value>
public int? LineNumber
{
get { return _lineNumber; }
@@ -124,6 +219,10 @@ public Brush Background
}
}
+ /// <summary>
+ /// Gets or sets the char position.
+ /// </summary>
+ /// <value>The char position.</value>
public int? CharPosition
{
get { return _charPosition; }
@@ -134,6 +233,10 @@ public Brush Background
}
}
+ /// <summary>
+ /// Gets or sets the col position.
+ /// </summary>
+ /// <value>The col position.</value>
public int? ColPosition
{
get { return _colPosition; }
@@ -144,6 +247,13 @@ public Brush Background
}
}
+ /// <summary>
+ /// Progresses the specified on.
+ /// </summary>
+ /// <param name="On">if set to <c>true</c> [on].</param>
+ /// <param name="current">The current.</param>
+ /// <param name="total">The total.</param>
+ /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
public bool Progress(bool On, uint current, uint total)
{
ShowProgressBar = On;
@@ -152,6 +262,10 @@ public bool Progress(bool On, uint current, uint total)
return true;
}
+ /// <summary>
+ /// Gets or sets the progress maximum.
+ /// </summary>
+ /// <value>The progress maximum.</value>
public uint ProgressMaximum
{
get { return _pMax; }
@@ -162,6 +276,10 @@ public uint ProgressMaximum
}
}
+ /// <summary>
+ /// Gets or sets the progress value.
+ /// </summary>
+ /// <value>The progress value.</value>
public uint ProgressValue
{
get { return _pVal; }
@@ -173,6 +291,10 @@ public uint ProgressValue
}
+ /// <summary>
+ /// Gets or sets a value indicating whether [show progress bar].
+ /// </summary>
+ /// <value><c>true</c> if [show progress bar]; otherwise, <c>false</c>.</value>
public bool ShowProgressBar
{
get { return _showProgress; }
@@ -183,6 +305,10 @@ public bool ShowProgressBar
}
}
+ /// <summary>
+ /// Gets or sets the animation image.
+ /// </summary>
+ /// <value>The animation image.</value>
public Image AnimationImage
{
get { return _animImage; }
@@ -192,5 +318,6 @@ public Image AnimationImage
RaisePropertyChanged("AnimationImage");
}
}
+ #endregion
}
}
View
32 Src/Wide/Interfaces/Converters/NullToBooleanConverter.cs
@@ -0,0 +1,32 @@
+#region License
+
+// Copyright (c) 2013 Chandramouleswaran Ravichandran
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#endregion
+
+using System;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Wide.Interfaces.Converters
+{
+ public class NullToBooleanConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return (value != null);
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return null;
+ }
+ }
+}
View
12 Src/Wide/Wide.csproj
@@ -94,11 +94,15 @@
<Compile Include="Core\CoreModule.cs" />
<Compile Include="Core\Services\CommandManager.cs" />
<Compile Include="Core\Services\ContentHandlerRegistry.cs" />
+ <Compile Include="Core\Services\NewFileWindow.xaml.cs">
+ <DependentUpon>NewFileWindow.xaml</DependentUpon>
+ </Compile>
<Compile Include="Core\Services\NLogService.cs" />
<Compile Include="Core\Services\OpenDocumentService.cs" />
<Compile Include="Core\Services\ThemeManager.cs" />
<Compile Include="Core\Services\ToolbarService.cs" />
<Compile Include="Core\Services\AllFileHandler.cs" />
+ <Compile Include="Interfaces\Converters\NullToBooleanConverter.cs" />
<Compile Include="Interfaces\Converters\DocumentContextMenuMixingConverter.cs" />
<Compile Include="Interfaces\Settings\IRecentViewItem.cs" />
<Compile Include="Interfaces\Settings\IToolbarPositionSettings.cs" />
@@ -214,6 +218,10 @@
<None Include="Shell\app.config" />
</ItemGroup>
<ItemGroup>
+ <Page Include="Core\Services\NewFileWindow.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Core\TextDocument\TextView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -299,7 +307,9 @@
<SubType>Designer</SubType>
</Page>
</ItemGroup>
- <ItemGroup />
+ <ItemGroup>
+ <Resource Include="Core\Icons\Textfile.png" />
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
Something went wrong with that request. Please try again.