Guest User

Untitled

a guest
Mar 22nd, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.13 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Windows.Forms;
  4. using System.Drawing;
  5.  
  6. namespace VisualScriptEditor
  7. {
  8. public partial class Form1 : Form
  9. {
  10. private string currentFileName = "";
  11.  
  12. public Form1()
  13. {
  14. InitializeComponent();
  15.  
  16. if (Properties.Settings.Default.CurrentFont != null && Properties.Settings.Default.CurrentForeColor != null)
  17. {
  18. txtFileContent.Font = Properties.Settings.Default.CurrentFont;
  19. txtFileContent.ForeColor = Properties.Settings.Default.CurrentForeColor;
  20. }
  21. else
  22. {
  23. Properties.Settings.Default.CurrentFont = new Font("Courier New", 12);
  24. Properties.Settings.Default.CurrentForeColor = Color.Black;
  25. }
  26. }
  27.  
  28. public void ShowLineNumbers()
  29. {
  30. Point point = new Point(0, 0);
  31.  
  32. int firstIndex = txtFileContent.GetCharIndexFromPosition(point);
  33. int firstLine = txtFileContent.GetLineFromCharIndex(firstIndex);
  34.  
  35. point.X = ClientRectangle.Width;
  36. point.Y = ClientRectangle.Height;
  37.  
  38. int lastIndex = txtFileContent.GetCharIndexFromPosition(point);
  39. int lastLine = txtFileContent.GetLineFromCharIndex(lastIndex);
  40.  
  41. txtLineNumber.SelectionAlignment = HorizontalAlignment.Center;
  42.  
  43. txtLineNumber.Text = "";
  44.  
  45. for (int i = firstLine; i <= lastLine + 1; i++)
  46. {
  47. txtLineNumber.Text += i + 1 + "n";
  48. }
  49. }
  50.  
  51. private void newToolStripMenuItem_Click(object sender, EventArgs e)
  52. {
  53. txtFileContent.Clear();
  54. }
  55.  
  56. private void openToolStripMenuItem_Click(object sender, EventArgs e)
  57. {
  58. OpenFileDialog fileDialog = new OpenFileDialog();
  59. fileDialog.Filter = "Visual Scripts Files | *.vscript";
  60. fileDialog.Title = "Open file";
  61.  
  62. if (fileDialog.ShowDialog() == DialogResult.OK)
  63. {
  64. currentFileName = fileDialog.FileName;
  65.  
  66. StreamReader reader = new StreamReader(fileDialog.FileName);
  67. txtFileContent.Text = reader.ReadToEnd();
  68. reader.Close();
  69. }
  70. }
  71.  
  72. private void exitToolStripMenuItem_Click(object sender, EventArgs e)
  73. {
  74. Application.Exit();
  75. }
  76.  
  77. private void saveToolStripMenuItem_Click(object sender, EventArgs e)
  78. {
  79. if (File.Exists(currentFileName))
  80. {
  81. StreamWriter writer = new StreamWriter(currentFileName);
  82. writer.Write(txtFileContent.Text);
  83. writer.Close();
  84. }
  85. else
  86. {
  87. SaveFileDialog fileDialog = new SaveFileDialog();
  88. fileDialog.Filter = "Visual Script Files | *.vscript";
  89. fileDialog.Title = "Save File";
  90.  
  91. if (fileDialog.ShowDialog() == DialogResult.OK)
  92. {
  93. currentFileName = fileDialog.FileName;
  94.  
  95. StreamWriter writer = new StreamWriter(fileDialog.FileName);
  96. writer.Write(txtFileContent.Text);
  97. writer.Close();
  98. }
  99. }
  100. }
  101.  
  102. private void undoToolStripMenuItem_Click(object sender, EventArgs e)
  103. {
  104. txtFileContent.Undo();
  105. }
  106.  
  107. private void redoToolStripMenuItem_Click(object sender, EventArgs e)
  108. {
  109. txtFileContent.Redo();
  110. }
  111.  
  112. private void cutToolStripMenuItem_Click(object sender, EventArgs e)
  113. {
  114. txtFileContent.Cut();
  115. }
  116.  
  117. private void copyToolStripMenuItem_Click(object sender, EventArgs e)
  118. {
  119. txtFileContent.Copy();
  120. }
  121.  
  122. private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
  123. {
  124. txtFileContent.Paste();
  125. }
  126.  
  127. private void selectAllToolStripMenuItem_Click(object sender, EventArgs e)
  128. {
  129. txtFileContent.SelectAll();
  130. }
  131.  
  132. private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
  133. {
  134. SaveFileDialog fileDialog = new SaveFileDialog();
  135. fileDialog.Filter = "Visual Script Files | *.vscript";
  136. fileDialog.Title = "Save As";
  137.  
  138. if (fileDialog.ShowDialog() == DialogResult.OK)
  139. {
  140. currentFileName = fileDialog.FileName;
  141.  
  142. StreamWriter writer = new StreamWriter(fileDialog.FileName);
  143. writer.Write(txtFileContent.Text);
  144. writer.Close();
  145. }
  146. }
  147.  
  148. private void fontsColorsToolStripMenuItem_Click_1(object sender, EventArgs e)
  149. {
  150. FontDialog fontDialog = new FontDialog();
  151.  
  152. fontDialog.ShowColor = true;
  153. fontDialog.ShowHelp = false;
  154. fontDialog.ShowApply = false;
  155. fontDialog.ShowEffects = false;
  156.  
  157. fontDialog.Font = Properties.Settings.Default.CurrentFont;
  158. fontDialog.Color = Properties.Settings.Default.CurrentForeColor;
  159.  
  160. if (fontDialog.ShowDialog() == DialogResult.OK)
  161. {
  162. Properties.Settings.Default.CurrentFont = fontDialog.Font;
  163. Properties.Settings.Default.CurrentForeColor = fontDialog.Color;
  164.  
  165. Properties.Settings.Default.Save();
  166.  
  167. txtFileContent.Font = fontDialog.Font;
  168. txtFileContent.ForeColor = fontDialog.Color;
  169. }
  170. }
  171.  
  172. private void txtLineNumber_Enter(object sender, EventArgs e)
  173. {
  174.  
  175. }
  176.  
  177. private void txtLineNumber_Leave(object sender, EventArgs e)
  178. {
  179.  
  180. }
  181.  
  182. private void Form1_Load(object sender, EventArgs e)
  183. {
  184. txtFileContent.AppendText(Environment.NewLine);
  185. txtFileContent.AppendText(Environment.NewLine);
  186.  
  187. txtLineNumber.Font = txtFileContent.Font;
  188. txtFileContent.Select();
  189. ShowLineNumbers();
  190. }
  191.  
  192. private void Form1_Resize(object sender, EventArgs e)
  193. {
  194. ShowLineNumbers();
  195. }
  196.  
  197. private void txtFileContent_SelectionChanged(object sender, EventArgs e)
  198. {
  199. Point point = txtFileContent.GetPositionFromCharIndex(txtFileContent.SelectionStart);
  200. if (point.X == 1)
  201. {
  202. ShowLineNumbers();
  203. }
  204. }
  205.  
  206. private void txtFileContent_VScroll(object sender, EventArgs e)
  207. {
  208. txtLineNumber.Text = "";
  209. ShowLineNumbers();
  210. txtLineNumber.Invalidate();
  211. }
  212.  
  213. private void txtFileContent_TextChanged(object sender, EventArgs e)
  214. {
  215. if (txtFileContent.Text == "")
  216. {
  217. ShowLineNumbers();
  218. }
  219. }
  220.  
  221. private void txtFileContent_FontChanged(object sender, EventArgs e)
  222. {
  223. txtLineNumber.Font = txtFileContent.Font;
  224. txtFileContent.Select();
  225. ShowLineNumbers();
  226. }
  227.  
  228. private void txtLineNumber_MouseDown(object sender, MouseEventArgs e)
  229. {
  230. txtFileContent.Select();
  231. txtLineNumber.DeselectAll();
  232. }
  233. }
  234. }
Add Comment
Please, Sign In to add comment