/src/AddIns/Misc/PackageManagement/Packages/ICSharpCode.TextEditor.Sample/Content/TextEditorSample/TextEditorForm.cs.pp

https://github.com/ajadex/SharpDevelop · Puppet · 152 lines · 131 code · 21 blank · 0 comment · 15 complexity · 2e4eee912729d391ab84267487a8f312 MD5 · raw file

  1. using System;
  2. using System.Drawing;
  3. using System.Windows.Forms;
  4. using ICSharpCode.TextEditor;
  5. using ICSharpCode.TextEditor.Document;
  6. using ICSharpCode.TextEditor.Gui.CompletionWindow;
  7. namespace $rootnamespace$.TextEditorSample
  8. {
  9. public partial class TextEditorForm : Form
  10. {
  11. string currentFileName;
  12. TextArea textArea;
  13. CodeCompletionWindow completionWindow;
  14. public TextEditorForm()
  15. {
  16. //
  17. // The InitializeComponent() call is required for Windows Forms designer support.
  18. //
  19. InitializeComponent();
  20. Init();
  21. }
  22. void Init()
  23. {
  24. propertyGridComboBox.SelectedIndex = 1;
  25. textArea = textEditorControl.ActiveTextAreaControl.TextArea;
  26. textArea.KeyEventHandler += ProcessKey;
  27. PopulateHighlightingComboBox();
  28. highlightingToolStripComboBox.Text = "C#";
  29. }
  30. bool ProcessKey(char ch)
  31. {
  32. if (ch == '.') {
  33. ShowCompletionWindow();
  34. }
  35. return false;
  36. }
  37. void ShowCompletionWindow()
  38. {
  39. CompletionDataProvider completionDataProvider = new CompletionDataProvider();
  40. completionWindow = CodeCompletionWindow.ShowCompletionWindow(this, textEditorControl, String.Empty, completionDataProvider, '.');
  41. if (completionWindow != null) {
  42. completionWindow.Closed += CompletionWindowClosed;
  43. }
  44. }
  45. void CompletionWindowClosed(object source, EventArgs e)
  46. {
  47. if (completionWindow != null) {
  48. completionWindow.Closed -= CompletionWindowClosed;
  49. completionWindow.Dispose();
  50. completionWindow = null;
  51. }
  52. }
  53. void PopulateHighlightingComboBox()
  54. {
  55. foreach (string highlighting in HighlightingManager.Manager.HighlightingDefinitions.Keys) {
  56. highlightingToolStripComboBox.Items.Add(highlighting);
  57. }
  58. highlightingToolStripComboBox.Sorted = true;
  59. }
  60. void ExitToolStripMenuItemClick(object sender, EventArgs e)
  61. {
  62. Close();
  63. }
  64. void PropertyGridComboBoxSelectedIndexChanged(object sender, EventArgs e)
  65. {
  66. switch (propertyGridComboBox.SelectedIndex) {
  67. case 0:
  68. propertyGrid.SelectedObject = textEditorControl.TextEditorProperties;
  69. break;
  70. case 1:
  71. propertyGrid.SelectedObject = textEditorControl;
  72. break;
  73. }
  74. }
  75. void OpenToolStripMenuItemClick(object sender, EventArgs e)
  76. {
  77. using (OpenFileDialog openFileDialog = new OpenFileDialog()) {
  78. openFileDialog.CheckFileExists = true;
  79. if (openFileDialog.ShowDialog() == DialogResult.OK) {
  80. currentFileName = openFileDialog.FileName;
  81. textEditorControl.LoadFile(currentFileName);
  82. highlightingToolStripComboBox.Text = textEditorControl.Document.HighlightingStrategy.Name;
  83. }
  84. }
  85. }
  86. void SaveToolStripMenuItemClick(object sender, EventArgs e)
  87. {
  88. if (currentFileName == null) {
  89. using (SaveFileDialog saveFileDialog = new SaveFileDialog()) {
  90. if (saveFileDialog.ShowDialog() == DialogResult.OK) {
  91. currentFileName = saveFileDialog.FileName;
  92. } else {
  93. return;
  94. }
  95. }
  96. }
  97. textEditorControl.SaveFile(currentFileName);
  98. }
  99. void CutToolStripMenuItemClick(object sender, EventArgs e)
  100. {
  101. textArea.ClipboardHandler.Cut(sender, e);
  102. }
  103. void UndoToolStripMenuItemClick(object sender, EventArgs e)
  104. {
  105. textEditorControl.Undo();
  106. }
  107. void RedoToolStripMenuItemClick(object sender, EventArgs e)
  108. {
  109. textEditorControl.Redo();
  110. }
  111. void CopyToolStripMenuItemClick(object sender, EventArgs e)
  112. {
  113. textArea.AutoClearSelection = false;
  114. textArea.ClipboardHandler.Copy(sender, e);
  115. }
  116. void PasteToolStripMenuItemClick(object sender, EventArgs e)
  117. {
  118. textArea.ClipboardHandler.Paste(sender, e);
  119. }
  120. void DeleteToolStripMenuItemClick(object sender, EventArgs e)
  121. {
  122. textArea.ClipboardHandler.Delete(sender, e);
  123. }
  124. void HighlightingToolStripComboBoxSelectedIndexChanged(object sender, EventArgs e)
  125. {
  126. string highlighter = highlightingToolStripComboBox.Text;
  127. textEditorControl.SetHighlighting(highlighter);
  128. textEditorControl.Refresh();
  129. }
  130. }
  131. }