string strLoadedFile; // �ҷ��� ������ ��ü �̸� #endregion Fields #region Constructors public NotepadClone() { // �Ӽ��� �����ϱ� ���� executing assembly�� ���� Assembly asmbly = Assembly.GetExecutingAssembly(); // strAppTitle(���α��� Ÿ��Ʋ�� �̸�) �ʵ带 �����ϱ� ���� AssemblyTitle �Ӽ��� ���� // Assembly�� ����� ����� ���� Ư���� �迭�� �˻��� Title�� �ִ´� AssemblyTitleAttribute title = (AssemblyTitleAttribute)asmbly. GetCustomAttributes(typeof(AssemblyTitleAttribute), false)[0]; strAppTitle = title.Title; // strAppData(��ü�����̸�) ���� �̸��� �����ϱ� ���� AssemblyProduct �Ӽ��� ���� AssemblyProductAttribute product = (AssemblyProductAttribute)asmbly. GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0]; // GetFolderPath�� ������ ���������� �ĺ��Ǵ� �ý��� Ư�� ������ ��θ� �������� Path.Combine���� ���ڿ� �迭�� �� ��η� ���� strAppData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Petzold\\" + product.Product + "\\" + product.Product + ".Settings.xml"); DockPanel dock = new DockPanel(); // DockPanel ���� Content = dock; // Content ������Ƽ�� DockPanel ��ü �Ҵ� menu = new Menu(); // �� ���� dock.Children.Add(menu); // DockPanel�� �ڽļӼ� ���� Menu �߰� DockPanel.SetDock(menu, Dock.Top); // Menu�� ��ܺκп� ���� status = new StatusBar(); // ���¹� ���� dock.Children.Add(status); // DockPanel�� �ڽļӼ� ���� ���¹� �߰� DockPanel.SetDock(status, Dock.Bottom); // ���¹ٸ� �ϴܺκп� ���� statLineCol = new StatusBarItem(); // ���� ���� �����ֱ� ���� StatusBarItem ���� statLineCol.HorizontalAlignment = HorizontalAlignment.Right; // statLineCol�� ��ġ�� �θ��ҿ� �Ҵ�� ���̾ƿ� ������ �����ʿ� ����� status.Items.Add(statLineCol); // ���¹ٿ� statLineCol �߰� DockPanel.SetDock(statLineCol, Dock.Right); // statLineCol�� �����ʺκп� ���� // Ŭ���̾�Ʈ ������ ���� �κ��� ä�� �ؽ�Ʈ �ڽ� ���� txtbox = new TextBox(); // �ؽ�Ʈ�ڽ� ���� txtbox.AcceptsReturn = true; // �ؽ�Ʈ�ڽ��� �� �ٲ� ���ڸ� ����� �� �ִ� txtbox.AcceptsTab = true; // TabŰ�� ���� �� �� ������ ���� ���� ��Ʈ�ѷ� ��Ŀ���� �̵��ϴ� ��� �ش� // ��Ʈ�ѿ� �� ���ڸ� �Է����� ���θ� ��Ÿ���� �� ���� txtbox.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; // ���� ��ũ�� ���븦 �ڵ����� ���� txtbox.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; // ���� ��ũ�� ���븦 �ڵ����� ���� txtbox.TextChanged += TextBoxOnTextChanged; // �ؽ�Ʈ�ڽ��� �����Է��� ���ϸ� TextBoxOnTextChanged �̺�Ʈ ȣ�� txtbox.SelectionChanged += TextBoxOnSelectionChanged; // �ؽ�Ʈ ���� ������ ����� ��쿡 TextBoxOnSelectionChanged �̺�Ʈ ȣ�� dock.Children.Add(txtbox); // DockPanel�� �ڽļӼ� ���� �ؽ�Ʈ�ڽ� �߰� // ��� ž ���� �� �� ���� AddFileMenu(menu); // in NotepadClone.File.cs AddEditMenu(menu); // in NotepadClone.Edit.cs AddFormatMenu(menu); // in NotepadClone.Format.cs AddViewMenu(menu); // in NotepadClone.View.cs AddHelpMenu(menu); // in NotepadClone.Help.cs // ������ ����Ǹ鼭 �����س��� ������ �ҷ��ͼ� settings�� ���� settings = (NotepadCloneSettings) LoadSettings(); // ����� ������ Windowstate�� ���� WindowState = settings.WindowState; if (settings.RestoreBounds != Rect.Empty) { Left = settings.RestoreBounds.Left; Top = settings.RestoreBounds.Top; Width = settings.RestoreBounds.Width; Height = settings.RestoreBounds.Height; } // Rect�� ������� ������ RestoreBounds(â�� ũ��� ��ġ)�� ���� if (settings.RestoreBounds != Rect.Empty) { Left = settings.RestoreBounds.Left; Top = settings.RestoreBounds.Top; Width = settings.RestoreBounds.Width; Height = settings.RestoreBounds.Height; } txtbox.TextWrapping = settings.TextWrapping; // �ؽ�Ʈ�ڽ��� settings�� �ٹٲ� ����� ���� txtbox.FontFamily = new FontFamily(settings.FontFamily); // �ؽ�Ʈ�ڽ��� �۲��йи��� settings�� �۲��йи��� ���� txtbox.FontStyle = (FontStyle)new FontStyleConverter(). // �ؽ�Ʈ�ڽ��� �۲ý�Ÿ���� settings�� �۲ý�Ÿ�Ϸ� ���� ConvertFromString(settings.FontStyle); txtbox.FontWeight = (FontWeight)new FontWeightConverter(). // �ؽ�Ʈ�ڽ��� �۲õβ��� settings�� �۲õβ��� ���� ConvertFromString(settings.FontWeight); txtbox.FontStretch = (FontStretch)new FontStretchConverter(). // �ؽ�Ʈ�ڽ��� �۲ô��̱⸦ settings�� �۲ô��̱�� ���� ConvertFromString(settings.FontStretch); txtbox.FontSize = settings.FontSize; // �ؽ�Ʈ�ڽ��� �۲�ũ�⸦ settings�� �۲�ũ��� ���� // Loaded �̺�Ʈ �ڵ鷯 ���� Loaded += WindowOnLoaded; // �ؽ�Ʈ�ڽ��� ��Ŀ�� ���� txtbox.Focus(); }
public NotepadClone() { //Title = "Notepad Clone"; Assembly asmbly = Assembly.GetExecutingAssembly(); // get AssemblyTitle attribute AssemblyTitleAttribute title = (AssemblyTitleAttribute)asmbly .GetCustomAttributes(typeof(AssemblyTitleAttribute), false)[0]; strAppTitle = title.Title; // get AssemblyProduct AssemblyProductAttribute product = (AssemblyProductAttribute)asmbly .GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0]; strAppData = Path.Combine( Environment.GetFolderPath( Environment.SpecialFolder.LocalApplicationData), "Petzold\\" + product.Product + "\\" + product.Product + ".Settings.xml"); DockPanel dock = new DockPanel(); Content = dock; // main menu menu = new Menu(); dock.Children.Add(menu); DockPanel.SetDock(menu, Dock.Top); //status bar status = new StatusBar(); dock.Children.Add(status); DockPanel.SetDock(status, Dock.Bottom); statLineCol = new StatusBarItem() { HorizontalAlignment = HorizontalAlignment.Center }; status.Items.Add(statLineCol); DockPanel.SetDock(statLineCol, Dock.Right); // textbox txtbox = new TextBox() { AcceptsReturn = true, AcceptsTab = true, VerticalScrollBarVisibility = ScrollBarVisibility.Auto, HorizontalScrollBarVisibility = ScrollBarVisibility.Auto }; txtbox.TextChanged += TextBoxOnTextChanged; txtbox.SelectionChanged += TextBoxOnSelectionChanged; dock.Children.Add(txtbox); // Create menu commands AddFileMenu(menu); AddEditMenu(menu); AddFormatMenu(menu); AddViewMenu(menu); AddHelpMenu(menu); // load settings settings = (NotepadCloneSettings)LoadSettings(); // apply settins WindowState = settings.WindowState; if (settings.RestoreBounds != Rect.Empty) { Left = settings.RestoreBounds.Left; Top = settings.RestoreBounds.Top; Width = settings.RestoreBounds.Width; Height = settings.RestoreBounds.Height; } txtbox.TextWrapping = settings.TextWrapping; txtbox.FontFamily = new FontFamily(settings.FontFamily); txtbox.FontStyle = (FontStyle) new FontStyleConverter().ConvertFromString(settings.FontStyle); txtbox.FontWeight = (FontWeight) new FontWeightConverter().ConvertFromString(settings.FontWeight); txtbox.FontStretch = (FontStretch) new FontStretchConverter().ConvertFromString(settings.FontStretch); txtbox.FontSize = settings.FontSize; // Load handler Loaded += WindowOnLoaded; // set focus txtbox.Focus(); }
string strLoadedFile; // Fully qualified loaded file name. #endregion Fields #region Constructors public NotepadClone() { // Get this executing assembly to access attributes. Assembly asmbly = Assembly.GetExecutingAssembly(); // Get the AssemblyTitle attribute for the strAppTitle field. AssemblyTitleAttribute title = (AssemblyTitleAttribute)asmbly. GetCustomAttributes(typeof(AssemblyTitleAttribute), false)[0]; strAppTitle = title.Title; // Get the AssemblyProduct attribute for the strAppData file name. AssemblyProductAttribute product = (AssemblyProductAttribute)asmbly. GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0]; strAppData = Path.Combine( Environment.GetFolderPath( Environment.SpecialFolder.LocalApplicationData), "Petzold\\" + product.Product + "\\" + product.Product + ".Settings.xml"); // Create DockPanel as content of window. DockPanel dock = new DockPanel(); Content = dock; // Create Menu docked at top. menu = new Menu(); dock.Children.Add(menu); DockPanel.SetDock(menu, Dock.Top); // Create StatusBar docked at bottom. status = new StatusBar(); dock.Children.Add(status); DockPanel.SetDock(status, Dock.Bottom); // Create StatusBarItem to display line and column. statLineCol = new StatusBarItem(); statLineCol.HorizontalAlignment = HorizontalAlignment.Right; status.Items.Add(statLineCol); DockPanel.SetDock(statLineCol, Dock.Right); // Create TextBox to fill remainder of client area. txtbox = new TextBox(); txtbox.AcceptsReturn = true; txtbox.AcceptsTab = true; txtbox.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; txtbox.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; txtbox.TextChanged += TextBoxOnTextChanged; txtbox.SelectionChanged += TextBoxOnSelectionChanged; dock.Children.Add(txtbox); // Create all the top-level menu items. AddFileMenu(menu); // in NotepadClone.File.cs AddEditMenu(menu); // in NotepadClone.Edit.cs AddFormatMenu(menu); // in NotepadClone.Format.cs AddViewMenu(menu); // in NotepadClone.View.cs AddHelpMenu(menu); // in NotepadClone.Help.cs // Load settings saved from previous run. settings = (NotepadCloneSettings) LoadSettings(); // Apply saved settings. WindowState = settings.WindowState; if (settings.RestoreBounds != Rect.Empty) { Left = settings.RestoreBounds.Left; Top = settings.RestoreBounds.Top; Width = settings.RestoreBounds.Width; Height = settings.RestoreBounds.Height; } txtbox.TextWrapping = settings.TextWrapping; txtbox.FontFamily = new FontFamily(settings.FontFamily); txtbox.FontStyle = (FontStyle) new FontStyleConverter(). ConvertFromString(settings.FontStyle); txtbox.FontWeight = (FontWeight) new FontWeightConverter(). ConvertFromString(settings.FontWeight); txtbox.FontStretch = (FontStretch) new FontStretchConverter(). ConvertFromString(settings.FontStretch); txtbox.FontSize = settings.FontSize; // Install handler for Loaded event. Loaded += WindowOnLoaded; // Set focus to TextBox. txtbox.Focus(); }
// virtual method for loading settings protected virtual object LoadSettings() { return(NotepadCloneSettings.Load(typeof(NotepadCloneSettings), strAppData)); }