/* * Copyright (C) 2013 FooProject * * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or (at your option) any later version. * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using FooEditEngine; namespace Test { public class AppSettings { public static AppSettings _thisInstance = new AppSettings(); public static AppSettings Current { get { if (_thisInstance._LineBreakMethodList == null) { _thisInstance._LineBreakMethodList = new ObservableCollection(); _thisInstance._LineBreakMethodList.Add(new LineBreakMethodItem("折りたたまない", LineBreakMethod.None)); _thisInstance._LineBreakMethodList.Add(new LineBreakMethodItem("右端で折りたたむ", LineBreakMethod.PageBound)); _thisInstance._LineBreakMethodList.Add(new LineBreakMethodItem("50字で折りたたむ", LineBreakMethod.CharUnit)); _thisInstance._CurrentLineBreakMethod = _thisInstance._LineBreakMethodList[0]; } return _thisInstance; } } bool _IsRTL, _ShowRuler, _ShowLineNumber, _ShowLineMarker, _HilightXML; ObservableCollection _LineBreakMethodList; LineBreakMethodItem _CurrentLineBreakMethod; public ObservableCollection LineBreakMethodList { get { return _LineBreakMethodList; } } public LineBreakMethodItem CurrentLineBreakMethod { get { return _CurrentLineBreakMethod; } set { this._CurrentLineBreakMethod = value; if (ChangedSetting != null) ChangedSetting(this, null); } } public bool IsRTL { get { return _IsRTL; } set { _IsRTL = value; if (ChangedSetting != null) ChangedSetting(this, null); } } int _Padding; public int Padding { get { return this._Padding; } set { this._Padding = value; if (ChangedSetting != null) ChangedSetting(this, null); } } public bool ShowRuler { get { return _ShowRuler; } set { _ShowRuler = value; if(ChangedSetting != null) ChangedSetting(this, null); } } public bool ShowLineNumber { get { return _ShowLineNumber; } set { _ShowLineNumber = value; if (ChangedSetting != null) ChangedSetting(this, null); } } public bool ShowLineMarker { get { return _ShowLineMarker; } set { _ShowLineMarker = value; if (ChangedSetting != null) ChangedSetting(this, null); } } public bool HilightXML { get { return _HilightXML; } set { _HilightXML = value; if (ChangedSetting != null) ChangedSetting(this, null); } } public event EventHandler ChangedSetting; } public struct LineBreakMethodItem { string _Title; LineBreakMethod _Method; public string Title { get { return this._Title; } } public LineBreakMethod Method { get { return this._Method; } } public LineBreakMethodItem(string title, LineBreakMethod method) { this._Title = title; this._Method = method; } } }