diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin index 6fb67b8f65..f6d455093e 100755 --- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin +++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin @@ -1258,6 +1258,11 @@ + + + diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj index e03a3c9bbd..239d017d7b 100644 --- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj +++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj @@ -225,6 +225,10 @@ AbstractAttachToProcessForm.cs + + OutputWindowOptionsPanelXaml.xaml + Code + @@ -843,6 +847,7 @@ + diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/OutputWindowOptionsPanelXaml.xaml b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/OutputWindowOptionsPanelXaml.xaml new file mode 100644 index 0000000000..04a4ec4b44 --- /dev/null +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/OutputWindowOptionsPanelXaml.xaml @@ -0,0 +1,18 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/OutputWindowOptionsPanelXaml.xaml.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/OutputWindowOptionsPanelXaml.xaml.cs new file mode 100644 index 0000000000..5f0ec57988 --- /dev/null +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/OutputWindowOptionsPanelXaml.xaml.cs @@ -0,0 +1,76 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 27.12.2012 + * Time: 19:36 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; +using ICSharpCode.Core; + +namespace ICSharpCode.SharpDevelop.Gui.OptionPanels +{ + /// + /// Interaction logic for OutputWindowOptionsPanelXaml.xaml + /// + public partial class OutputWindowOptionsPanelXaml : OptionPanel + { + private static readonly string OutputWindowsProperty = "SharpDevelop.UI.OutputWindowOptions"; + + public OutputWindowOptionsPanelXaml() + { + InitializeComponent(); + this.DataContext = this; + } + + + public override void LoadOptions() + { + base.LoadOptions(); + var properties = PropertyService.NestedProperties(OutputWindowsProperty); + WordWrap = properties.Get("WordWrap", true); + var fontStr = properties.Get("DefaultFont", SD.WinForms.DefaultMonospacedFont.ToString()).ToString(); + var font = ParseFont(fontStr); + fontSelectionPanel.SelectedFontFamily = new System.Windows.Media.FontFamily(font.Name); + fontSelectionPanel.SelectedFontSize = (int)font.Size; + font.Dispose(); + } + + + private static Font ParseFont(string font) + { + try { + string[] descr = font.Split(new char[]{',', '='}); + return new Font(descr[1], Single.Parse(descr[3])); + } catch (Exception ex) { + LoggingService.Warn(ex); + return SD.WinForms.DefaultMonospacedFont; + } + } + + + public override bool SaveOptions() + { + var properties = PropertyService.NestedProperties(OutputWindowsProperty); + properties.Set("WordWrap", WordWrap); + + var font = new Font(new System.Drawing.FontFamily(fontSelectionPanel.SelectedFontName), + (float)fontSelectionPanel.SelectedFontSize); + Console.WriteLine(font.ToString()); + font.Dispose(); + return base.SaveOptions(); + } + + + bool wordWrap; + + public bool WordWrap { + get { return wordWrap; } + set { wordWrap = value; + base.RaisePropertyChanged(() => WordWrap);} + } + + } +} \ No newline at end of file