public ReoScriptEditor()
{
InitializeComponent();
newToolStripButton.Click += (s, e) => NewFile();
newToolStripMenuItem.Click += (s, e) => NewFile();
openToolStripButton.Click += (s, e) => LoadFile();
openToolStripMenuItem.Click += (s, e) => LoadFile();
saveToolStripButton.Click += (s, e) => SaveFile(false);
saveToolStripMenuItem.Click += (s, e) => SaveFile(false);
saveAsToolStripMenuItem.Click += (s, e) => SaveFile(true);
runToolStripButton.Click += (s, e) => RunScript();
runToolStripMenuItem.Click += (s, e) => RunScript();
cutToolStripButton.Click += (s, e) => editor.Fctb.Cut();
cutToolStripMenuItem.Click += (s, e) => editor.Fctb.Cut();
copyToolStripButton.Click += (s, e) => editor.Fctb.Copy();
copyToolStripMenuItem.Click += (s, e) => editor.Fctb.Copy();
pasteToolStripMenuItem.Click += (s, e) => editor.Fctb.Paste();
pasteToolStripDropDownButton.Click += (s, e) => editor.Fctb.Paste();
undoToolStripButton.Click += (s, e) => editor.Fctb.Undo();
undoToolStripMenuItem.Click += (s, e) => editor.Fctb.Undo();
redoToolStripButton.Click += (s, e) => editor.Fctb.Redo();
redoToolStripMenuItem.Click += (s, e) => editor.Fctb.Redo();
using (StreamReader sr = new StreamReader(new MemoryStream(Resources.default_rs)))
{
editor.Text = sr.ReadToEnd();
}
console.LineReceived += (s, e) =>
{
Log("\n");
if (!string.IsNullOrEmpty(e.Text))
{
try
{
//string line = e.Text;
//if (!line.EndsWith(";")) line += ";";
object val = srm.CalcExpression(e.Text);
LogValue(val);
}
catch (Exception ex)
{
Log("error: " + ex.Message);
}
}
};
timer.Tick += (s, e) =>
{
bool running = srm == null ? false : srm.IsRunning;
runToolStripButton.Enabled =
runToolStripMenuItem.Enabled =
!running;
stopToolStripButton.Enabled =
stopToolStripMenuItem.Enabled =
running;
if (!running)
{
timer.Enabled = false;
}
};
stopToolStripButton.Click += (s, e) => ForceStop();
stopToolStripMenuItem.Click += (s, e) => ForceStop();
checkSyntaxStripButton.Click += (s, e) =>
{
srm.Compile(editor.Text, r => Log(r.Message));
if (ScriptCompiled != null)
{
ScriptCompiled(this, null);
}
};
editor.TextChanged += (s, e) =>
{
if (ScriptChanged != null)
{
ScriptChanged(this, e);
}
};
Srm = new ScriptRunningMachine();
}