Fixing indentation and braces in trunk/
This commit is contained in:
parent
6437594240
commit
af230cbed7
13 changed files with 962 additions and 1180 deletions
|
@ -74,7 +74,7 @@ namespace LSLEditor
|
|||
private void About_Load(object sender, EventArgs e)
|
||||
{
|
||||
string strExeFileName = Path.GetFileName(Assembly.GetExecutingAssembly().CodeBase);
|
||||
this.webBrowser1.Navigate("res://" + strExeFileName + "/"+ Properties.Settings.Default.About);
|
||||
this.webBrowser1.Navigate("res://" + strExeFileName + "/" + Properties.Settings.Default.About);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -69,46 +69,37 @@ namespace LSLEditor
|
|||
{
|
||||
WebBrowser axWebBrowser1 = sender as WebBrowser;
|
||||
ToolStripStatusLabel status = axWebBrowser1.Tag as ToolStripStatusLabel;
|
||||
if (status == null)
|
||||
return;
|
||||
status.Text = axWebBrowser1.StatusText;
|
||||
if (status != null) {
|
||||
status.Text = axWebBrowser1.StatusText;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void axWebBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
|
||||
{
|
||||
string strUrl = e.Url.ToString();
|
||||
if (strUrl.EndsWith(".lsl"))
|
||||
{
|
||||
if (strUrl.EndsWith(".lsl")) {
|
||||
e.Cancel = true;
|
||||
if (MessageBox.Show("Import LSL script?", "Import script", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
|
||||
return;
|
||||
if (MessageBox.Show("Import LSL script?", "Import script", MessageBoxButtons.OKCancel) != DialogResult.Cancel) {
|
||||
WebBrowser axWebBrowser1 = sender as WebBrowser;
|
||||
axWebBrowser1.Stop();
|
||||
|
||||
WebBrowser axWebBrowser1 = sender as WebBrowser;
|
||||
axWebBrowser1.Stop();
|
||||
|
||||
this.lslEditorForm.OpenFile(strUrl,Guid.NewGuid());
|
||||
this.lslEditorForm.OpenFile(strUrl, Guid.NewGuid());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void ShowWebBrowser(string strTabName, string strUrl)
|
||||
{
|
||||
WebBrowser axWebBrowser1 = null;
|
||||
try
|
||||
{
|
||||
if (!Properties.Settings.Default.HelpNewTab)
|
||||
{
|
||||
try {
|
||||
if (!Properties.Settings.Default.HelpNewTab) {
|
||||
TabPage tabPage = this.tabControl1.TabPages[0];
|
||||
tabPage.Text = strTabName + " ";
|
||||
axWebBrowser1 = tabPage.Controls[0] as WebBrowser;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
} catch { }
|
||||
|
||||
if (axWebBrowser1 == null)
|
||||
{
|
||||
if (axWebBrowser1 == null) {
|
||||
TabPage tabPage = new TabPage(strTabName + " ");
|
||||
tabPage.BackColor = Color.White;
|
||||
|
||||
|
@ -117,7 +108,7 @@ namespace LSLEditor
|
|||
ToolStripStatusLabel toolStripStatusLabel1 = new ToolStripStatusLabel();
|
||||
StatusStrip statusStrip1 = new StatusStrip();
|
||||
|
||||
statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripStatusLabel1});
|
||||
statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripStatusLabel1 });
|
||||
statusStrip1.Location = new System.Drawing.Point(0, 318);
|
||||
statusStrip1.Name = "statusStrip1";
|
||||
statusStrip1.Size = new System.Drawing.Size(584, 22);
|
||||
|
@ -148,26 +139,23 @@ namespace LSLEditor
|
|||
private void closeToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
int intTabToClose = (int)this.contextMenuStrip1.Tag;
|
||||
if (intTabToClose >= this.tabControl1.TabCount)
|
||||
return;
|
||||
this.tabControl1.TabPages.RemoveAt(intTabToClose);
|
||||
if (intTabToClose < this.tabControl1.TabCount) {
|
||||
this.tabControl1.TabPages.RemoveAt(intTabToClose);
|
||||
}
|
||||
}
|
||||
|
||||
private void tabControl1_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
TabControl tabControl = sender as TabControl;
|
||||
if (tabControl == null)
|
||||
return;
|
||||
if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
for (int intI = 0; intI < tabControl.TabCount; intI++)
|
||||
{
|
||||
Rectangle rt = tabControl.GetTabRect(intI);
|
||||
if (e.X > rt.Left && e.X < rt.Right
|
||||
&& e.Y > rt.Top && e.Y < rt.Bottom)
|
||||
{
|
||||
this.contextMenuStrip1.Tag = intI;
|
||||
this.contextMenuStrip1.Show(this.tabControl1, new Point(e.X, e.Y));
|
||||
if (tabControl != null) {
|
||||
if (e.Button == MouseButtons.Right) {
|
||||
for (int intI = 0; intI < tabControl.TabCount; intI++) {
|
||||
Rectangle rt = tabControl.GetTabRect(intI);
|
||||
if (e.X > rt.Left && e.X < rt.Right
|
||||
&& e.Y > rt.Top && e.Y < rt.Bottom) {
|
||||
this.contextMenuStrip1.Tag = intI;
|
||||
this.contextMenuStrip1.Show(this.tabControl1, new Point(e.X, e.Y));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,18 +65,14 @@ namespace LSLEditor
|
|||
private const int WM_NCACTIVATE = 0x0086;
|
||||
protected override void WndProc(ref Message m)
|
||||
{
|
||||
if (m.Msg == WM_NCACTIVATE)
|
||||
{
|
||||
if (m.LParam != IntPtr.Zero)
|
||||
{
|
||||
if (m.Msg == WM_NCACTIVATE) {
|
||||
if (m.LParam != IntPtr.Zero) {
|
||||
m.WParam = new IntPtr(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
this.numberedTextBoxUC1.TextBox.MakeAllInvis();
|
||||
}
|
||||
}
|
||||
try { base.WndProc(ref m); } catch {}
|
||||
try { base.WndProc(ref m); } catch { }
|
||||
}
|
||||
|
||||
public SyntaxRichTextBox TextBox
|
||||
|
@ -123,10 +119,11 @@ namespace LSLEditor
|
|||
}
|
||||
set
|
||||
{
|
||||
if(value)
|
||||
if (value) {
|
||||
this.tabPage1.Text = "Script";
|
||||
else
|
||||
} else {
|
||||
this.tabPage1.Text = "Text";
|
||||
}
|
||||
this.TextBox.ToolTipping = value;
|
||||
}
|
||||
}
|
||||
|
@ -160,12 +157,9 @@ namespace LSLEditor
|
|||
imageList.Images.Add(new Bitmap(this.GetType(), "Images.States.gif"));
|
||||
|
||||
this.tvOutline.ImageList = imageList;
|
||||
if (lslEditorForm.outlineToolStripMenuItem.Checked)
|
||||
{
|
||||
if (lslEditorForm.outlineToolStripMenuItem.Checked) {
|
||||
splitContainer1.Panel2Collapsed = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
splitContainer1.Panel2Collapsed = true;
|
||||
}
|
||||
SetFont();
|
||||
|
@ -178,8 +172,9 @@ namespace LSLEditor
|
|||
|
||||
void EditForm_Layout(object sender, LayoutEventArgs e)
|
||||
{
|
||||
if (this.WindowState == FormWindowState.Minimized)
|
||||
if (this.WindowState == FormWindowState.Minimized) {
|
||||
this.numberedTextBoxUC1.TextBox.MakeAllInvis();
|
||||
}
|
||||
}
|
||||
|
||||
void EditForm_Position(object sender, EventArgs e)
|
||||
|
@ -190,13 +185,15 @@ namespace LSLEditor
|
|||
void TextBox_OnDirtyChanged(object sender, EventArgs e)
|
||||
{
|
||||
this.Text = this.ScriptName;
|
||||
if (this.numberedTextBoxUC1.TextBox.Dirty)
|
||||
this.Text = this.Text.Trim()+"* ";
|
||||
else
|
||||
this.Text = this.Text.Trim()+" ";
|
||||
if (this.numberedTextBoxUC1.TextBox.Dirty) {
|
||||
this.Text = this.Text.Trim() + "* ";
|
||||
} else {
|
||||
this.Text = this.Text.Trim() + " ";
|
||||
}
|
||||
TabPage tabPage = this.Tag as TabPage;
|
||||
if (tabPage != null)
|
||||
if (tabPage != null) {
|
||||
tabPage.Text = this.Text;
|
||||
}
|
||||
|
||||
this.parent.OnDirtyChanged(this.numberedTextBoxUC1.TextBox.Dirty);
|
||||
}
|
||||
|
@ -216,20 +213,19 @@ namespace LSLEditor
|
|||
{
|
||||
this.m_FullPathName = value;
|
||||
string strDirectory = Path.GetDirectoryName(this.m_FullPathName);
|
||||
if (Directory.Exists(strDirectory))
|
||||
{
|
||||
if (Directory.Exists(strDirectory)) {
|
||||
Properties.Settings.Default.WorkingDirectory = strDirectory;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!Directory.Exists(Properties.Settings.Default.WorkingDirectory))
|
||||
} else {
|
||||
if (!Directory.Exists(Properties.Settings.Default.WorkingDirectory)) {
|
||||
Properties.Settings.Default.WorkingDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
|
||||
}
|
||||
this.m_FullPathName = Path.Combine(Properties.Settings.Default.WorkingDirectory, this.m_FullPathName);
|
||||
}
|
||||
this.Text = this.ScriptName;
|
||||
TabPage tabPage = this.Tag as TabPage;
|
||||
if (tabPage != null)
|
||||
if (tabPage != null) {
|
||||
tabPage.Text = this.Text + " ";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -263,53 +259,50 @@ namespace LSLEditor
|
|||
|
||||
private int PercentageIndentTab()
|
||||
{
|
||||
int intResult;
|
||||
int intSpaces = 0;
|
||||
int intTabs = 0;
|
||||
StringReader sr = new StringReader(this.TextBox.Text);
|
||||
while (true)
|
||||
{
|
||||
while (true) {
|
||||
string strLine = sr.ReadLine();
|
||||
if (strLine == null)
|
||||
break;
|
||||
if (strLine.Length == 0)
|
||||
continue;
|
||||
if (strLine[0] == ' ')
|
||||
if (strLine == null) break;
|
||||
if (strLine.Length == 0) continue;
|
||||
if (strLine[0] == ' ') {
|
||||
intSpaces++;
|
||||
else if (strLine[0] == '\t')
|
||||
} else if (strLine[0] == '\t') {
|
||||
intTabs++;
|
||||
}
|
||||
}
|
||||
if (intTabs == 0 && intSpaces==0)
|
||||
return 50;
|
||||
return (int)Math.Round((100.0 * intTabs) / (intTabs + intSpaces));
|
||||
if (intTabs == 0 && intSpaces == 0) {
|
||||
intResult = 50;
|
||||
} else {
|
||||
intResult = (int)Math.Round((100.0 * intTabs) / (intTabs + intSpaces));
|
||||
}
|
||||
return intResult;
|
||||
}
|
||||
|
||||
public void LoadFile(string strPath)
|
||||
{
|
||||
if(strPath.StartsWith("http://"))
|
||||
if (strPath.StartsWith("http://")) {
|
||||
this.FullPathName = Path.GetFileName(strPath);
|
||||
else
|
||||
} else {
|
||||
this.FullPathName = strPath;
|
||||
}
|
||||
this.encodedAs = this.numberedTextBoxUC1.TextBox.LoadFile(strPath);
|
||||
|
||||
if (!this.IsScript)
|
||||
return;
|
||||
if (this.IsScript) {
|
||||
|
||||
if (Properties.Settings.Default.IndentAutoCorrect)
|
||||
{
|
||||
this.TextBox.FormatDocument();
|
||||
this.TextBox.ClearUndoStack();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Properties.Settings.Default.IndentWarning)
|
||||
{
|
||||
if ((PercentageIndentTab() > 50 && Properties.Settings.Default.SL4SpacesIndent) ||
|
||||
(PercentageIndentTab() < 50 && !Properties.Settings.Default.SL4SpacesIndent))
|
||||
{
|
||||
if (MessageBox.Show("Indent scheme differs from settings\nDo you want to correct it?\nIt can also be corrected by pressing Ctrl-D or turn on Autocorrection (tools menu)", "Indent Warning!!", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
|
||||
{
|
||||
this.TextBox.FormatDocument();
|
||||
//this.TextBox.ClearUndoStack();
|
||||
if (Properties.Settings.Default.IndentAutoCorrect) {
|
||||
this.TextBox.FormatDocument();
|
||||
this.TextBox.ClearUndoStack();
|
||||
} else {
|
||||
if (Properties.Settings.Default.IndentWarning) {
|
||||
if ((PercentageIndentTab() > 50 && Properties.Settings.Default.SL4SpacesIndent) ||
|
||||
(PercentageIndentTab() < 50 && !Properties.Settings.Default.SL4SpacesIndent)) {
|
||||
if (MessageBox.Show("Indent scheme differs from settings\nDo you want to correct it?\nIt can also be corrected by pressing Ctrl-D or turn on Autocorrection (tools menu)", "Indent Warning!!", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) {
|
||||
this.TextBox.FormatDocument();
|
||||
//this.TextBox.ClearUndoStack();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -320,10 +313,8 @@ namespace LSLEditor
|
|||
{
|
||||
this.FullPathName = strPath;
|
||||
Encoding encodeAs = this.encodedAs;
|
||||
if (this.IsScript && encodeAs == null)
|
||||
{
|
||||
switch (Properties.Settings.Default.OutputFormat)
|
||||
{
|
||||
if (this.IsScript && encodeAs == null) {
|
||||
switch (Properties.Settings.Default.OutputFormat) {
|
||||
case "UTF8":
|
||||
encodeAs = Encoding.UTF8;
|
||||
break;
|
||||
|
@ -337,9 +328,7 @@ namespace LSLEditor
|
|||
encodeAs = Encoding.Default;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (encodeAs == null)
|
||||
{
|
||||
} else if (encodeAs == null) {
|
||||
encodeAs = Encoding.UTF8;
|
||||
}
|
||||
|
||||
|
@ -381,16 +370,15 @@ namespace LSLEditor
|
|||
{
|
||||
this.numberedTextBoxUC1.TextBox.MakeAllInvis();
|
||||
|
||||
if (runtime != null)
|
||||
{
|
||||
if (runtime != null) {
|
||||
this.components.Remove(runtime);
|
||||
if (!runtime.IsDisposed)
|
||||
if (!runtime.IsDisposed) {
|
||||
runtime.Dispose();
|
||||
}
|
||||
runtime = null;
|
||||
}
|
||||
|
||||
for (int intI = this.tabControl1.TabPages.Count - 1; intI > 0; intI--)
|
||||
{
|
||||
for (int intI = this.tabControl1.TabPages.Count - 1; intI > 0; intI--) {
|
||||
this.tabControl1.TabPages.RemoveAt(intI);
|
||||
}
|
||||
}
|
||||
|
@ -400,65 +388,62 @@ namespace LSLEditor
|
|||
|
||||
public bool StartCompiler()
|
||||
{
|
||||
bool blnResult = false;
|
||||
//if (this.disableCompilesyntaxCheckToolStripMenuItem.Checked)
|
||||
// return false;
|
||||
|
||||
if (!this.IsScript)
|
||||
return false;
|
||||
if (this.IsScript) {
|
||||
StopCompiler();
|
||||
|
||||
StopCompiler();
|
||||
if (this.parent != null) {
|
||||
runtime = new RuntimeConsole(this.parent);
|
||||
|
||||
if (this.parent == null)
|
||||
return false;
|
||||
// for disposing
|
||||
this.components.Add(runtime);
|
||||
|
||||
runtime = new RuntimeConsole(this.parent);
|
||||
if (!runtime.Compile(this)) {
|
||||
this.tabControl1.SelectedIndex = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
// for disposing
|
||||
this.components.Add(runtime);
|
||||
|
||||
if (!runtime.Compile(this))
|
||||
{
|
||||
this.tabControl1.SelectedIndex = 0;
|
||||
return false;
|
||||
TabPage tabPage = new TabPage("Debug");
|
||||
tabPage.Controls.Add(runtime);
|
||||
this.tabControl1.TabPages.Add(tabPage);
|
||||
this.tabControl1.SelectedIndex = 1;
|
||||
blnResult = true;
|
||||
}
|
||||
}
|
||||
|
||||
TabPage tabPage = new TabPage("Debug");
|
||||
tabPage.Controls.Add(runtime);
|
||||
this.tabControl1.TabPages.Add(tabPage);
|
||||
this.tabControl1.SelectedIndex = 1;
|
||||
return true;
|
||||
return blnResult;
|
||||
}
|
||||
|
||||
public bool SyntaxCheck()
|
||||
{
|
||||
bool blnResult = false;
|
||||
//if (this.disableCompilesyntaxCheckToolStripMenuItem.Checked)
|
||||
// return false;
|
||||
|
||||
if (!this.IsScript)
|
||||
return false;
|
||||
if (this.IsScript) {
|
||||
LSL2CSharp translator = new LSL2CSharp(ConfLSL);
|
||||
string strCSharp = translator.Parse(SourceCode);
|
||||
|
||||
LSL2CSharp translator = new LSL2CSharp(ConfLSL);
|
||||
string strCSharp = translator.Parse(SourceCode);
|
||||
if (System.Diagnostics.Debugger.IsAttached) {
|
||||
for (int intI = this.tabControl1.TabPages.Count - 1; intI > 0; intI--) {
|
||||
this.tabControl1.TabPages.RemoveAt(intI);
|
||||
}
|
||||
|
||||
if (System.Diagnostics.Debugger.IsAttached)
|
||||
{
|
||||
for (int intI = this.tabControl1.TabPages.Count - 1; intI > 0; intI--)
|
||||
{
|
||||
this.tabControl1.TabPages.RemoveAt(intI);
|
||||
// TODO
|
||||
TabPage tabPage = new TabPage("C#");
|
||||
NumberedTextBox.NumberedTextBoxUC numberedTextBoxUC1 = new NumberedTextBox.NumberedTextBoxUC();
|
||||
numberedTextBoxUC1.TextBox.Init(null, this.ConfCSharp);
|
||||
numberedTextBoxUC1.TextBox.Text = strCSharp;
|
||||
numberedTextBoxUC1.TextBox.ReadOnly = true;
|
||||
numberedTextBoxUC1.Dock = DockStyle.Fill;
|
||||
tabPage.Controls.Add(numberedTextBoxUC1);
|
||||
this.tabControl.TabPages.Add(tabPage);
|
||||
}
|
||||
|
||||
// TODO
|
||||
TabPage tabPage = new TabPage("C#");
|
||||
NumberedTextBox.NumberedTextBoxUC numberedTextBoxUC1 = new NumberedTextBox.NumberedTextBoxUC();
|
||||
numberedTextBoxUC1.TextBox.Init(null, this.ConfCSharp);
|
||||
numberedTextBoxUC1.TextBox.Text = strCSharp;
|
||||
numberedTextBoxUC1.TextBox.ReadOnly = true;
|
||||
numberedTextBoxUC1.Dock = DockStyle.Fill;
|
||||
tabPage.Controls.Add(numberedTextBoxUC1);
|
||||
this.tabControl.TabPages.Add(tabPage);
|
||||
blnResult = (null != CompilerHelper.CompileCSharp(this, strCSharp));
|
||||
}
|
||||
|
||||
return (null != CompilerHelper.CompileCSharp(this, strCSharp));
|
||||
return blnResult;
|
||||
}
|
||||
|
||||
public int Find(string strSearch, int intStart, int intEnd, RichTextBoxFinds options)
|
||||
|
@ -476,13 +461,13 @@ namespace LSLEditor
|
|||
private void EditForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
this.parent.CancelClosing = false;
|
||||
if (this.Dirty)
|
||||
{
|
||||
if (this.Dirty) {
|
||||
DialogResult dialogResult = MessageBox.Show(this, @"Save """ + this.ScriptName + @"""?", "File has changed", MessageBoxButtons.YesNoCancel);
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
e.Cancel = !this.parent.SaveFile(this,false);
|
||||
else
|
||||
if (dialogResult == DialogResult.Yes) {
|
||||
e.Cancel = !this.parent.SaveFile(this, false);
|
||||
} else {
|
||||
e.Cancel = (dialogResult == DialogResult.Cancel);
|
||||
}
|
||||
}
|
||||
this.parent.CancelClosing = e.Cancel;
|
||||
}
|
||||
|
@ -497,11 +482,9 @@ namespace LSLEditor
|
|||
this.parent.BeginInvoke(new TreeNodeMouseClickEventHandler(
|
||||
delegate(object sender2, TreeNodeMouseClickEventArgs e2)
|
||||
{
|
||||
if (e.Node.Tag is Helpers.OutlineHelper)
|
||||
{
|
||||
if (e.Node.Tag is Helpers.OutlineHelper) {
|
||||
Helpers.OutlineHelper ohOutline = (Helpers.OutlineHelper)e.Node.Tag;
|
||||
if (ohOutline.line < this.TextBox.Lines.Length)
|
||||
{
|
||||
if (ohOutline.line < this.TextBox.Lines.Length) {
|
||||
//editForm.Focus();
|
||||
//editForm.TextBox.Select();
|
||||
//editForm.TextBox.Goto(ohOutline.line + 1);
|
||||
|
|
|
@ -89,14 +89,12 @@ namespace LSLEditor
|
|||
set
|
||||
{
|
||||
this.label1.Text = ""; // clear out message
|
||||
if (value != "")
|
||||
{
|
||||
if (value != "") {
|
||||
this.comboBoxFind.Text = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.comboBoxFind.Items.Count > 0)
|
||||
} else {
|
||||
if (this.comboBoxFind.Items.Count > 0) {
|
||||
this.comboBoxFind.SelectedIndex = this.comboBoxFind.Items.Count - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -106,17 +104,16 @@ namespace LSLEditor
|
|||
string strText = comboBox.Text;
|
||||
bool Found = false;
|
||||
|
||||
foreach (string strC in comboBox.Items)
|
||||
{
|
||||
if (strC == strText)
|
||||
{
|
||||
foreach (string strC in comboBox.Items) {
|
||||
if (strC == strText) {
|
||||
Found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!Found)
|
||||
if (!Found) {
|
||||
comboBox.Items.Add(strText);
|
||||
}
|
||||
return Found;
|
||||
}
|
||||
|
||||
|
@ -124,40 +121,35 @@ namespace LSLEditor
|
|||
{
|
||||
this.label1.Text = "";
|
||||
EditForm editForm = this.lslEditForm.ActiveMdiForm as EditForm;
|
||||
if (editForm == null)
|
||||
return;
|
||||
if (editForm != null) {
|
||||
if (!UpdateComboBox(this.comboBoxFind)) {
|
||||
editForm.TextBox.SelectionLength = 0;
|
||||
editForm.TextBox.SelectionStart = 0;
|
||||
}
|
||||
|
||||
if (!UpdateComboBox(this.comboBoxFind))
|
||||
{
|
||||
editForm.TextBox.SelectionLength = 0;
|
||||
editForm.TextBox.SelectionStart = 0;
|
||||
}
|
||||
RichTextBoxFinds options = RichTextBoxFinds.None;
|
||||
|
||||
RichTextBoxFinds options = RichTextBoxFinds.None;
|
||||
if (this.checkBoxMatchCase.Checked) options |= RichTextBoxFinds.MatchCase;
|
||||
if (this.checkBoxReverse.Checked) options |= RichTextBoxFinds.Reverse;
|
||||
if (this.checkBoxWholeWord.Checked) options |= RichTextBoxFinds.WholeWord;
|
||||
|
||||
if (this.checkBoxMatchCase.Checked) options |= RichTextBoxFinds.MatchCase;
|
||||
if (this.checkBoxReverse.Checked) options |= RichTextBoxFinds.Reverse;
|
||||
if (this.checkBoxWholeWord.Checked) options |= RichTextBoxFinds.WholeWord;
|
||||
if (this.checkBoxReverse.Checked) {
|
||||
intStart = 0; // start cant change ;-)
|
||||
intEnd = editForm.TextBox.SelectionStart;
|
||||
} else {
|
||||
intStart = editForm.TextBox.SelectionStart + editForm.TextBox.SelectionLength;
|
||||
if (intStart == editForm.TextBox.Text.Length) {
|
||||
intStart = 0;
|
||||
}
|
||||
intEnd = editForm.TextBox.Text.Length - 1; // length can change!!
|
||||
}
|
||||
|
||||
if (this.checkBoxReverse.Checked)
|
||||
{
|
||||
intStart = 0; // start cant change ;-)
|
||||
intEnd = editForm.TextBox.SelectionStart;
|
||||
}
|
||||
else
|
||||
{
|
||||
intStart = editForm.TextBox.SelectionStart + editForm.TextBox.SelectionLength;
|
||||
if (intStart == editForm.TextBox.Text.Length)
|
||||
intStart = 0;
|
||||
intEnd = editForm.TextBox.Text.Length - 1; // length can change!!
|
||||
}
|
||||
|
||||
string strFind = this.comboBoxFind.Text;
|
||||
int intIndex = editForm.Find(strFind, intStart, intEnd, options);
|
||||
if (intIndex < 0)
|
||||
{
|
||||
this.label1.Text = "Not found...";
|
||||
return;
|
||||
string strFind = this.comboBoxFind.Text;
|
||||
int intIndex = editForm.Find(strFind, intStart, intEnd, options);
|
||||
if (intIndex < 0) {
|
||||
this.label1.Text = "Not found...";
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -169,15 +161,11 @@ namespace LSLEditor
|
|||
|
||||
private void comboBoxFind_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Return)
|
||||
{
|
||||
if (this.Replace.Enabled)
|
||||
{
|
||||
if (e.KeyCode == Keys.Return) {
|
||||
if (this.Replace.Enabled) {
|
||||
this.comboBoxReplace.Focus();
|
||||
e.SuppressKeyPress = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
Find();
|
||||
e.SuppressKeyPress = true;
|
||||
}
|
||||
|
@ -187,30 +175,26 @@ namespace LSLEditor
|
|||
private void Replace_Click(object sender, EventArgs e)
|
||||
{
|
||||
EditForm editForm = this.lslEditForm.ActiveMdiForm as EditForm;
|
||||
if (editForm == null)
|
||||
return;
|
||||
if (editForm != null) {
|
||||
UpdateComboBox(this.comboBoxReplace);
|
||||
|
||||
UpdateComboBox(this.comboBoxReplace);
|
||||
if (editForm.TextBox.SelectionLength > 0) {
|
||||
string strReplacement = this.comboBoxReplace.Text;
|
||||
editForm.TextBox.ReplaceSelectedText(strReplacement);
|
||||
}
|
||||
|
||||
if (editForm.TextBox.SelectionLength > 0)
|
||||
{
|
||||
string strReplacement = this.comboBoxReplace.Text;
|
||||
editForm.TextBox.ReplaceSelectedText(strReplacement);
|
||||
Find();
|
||||
this.Focus();
|
||||
}
|
||||
|
||||
Find();
|
||||
this.Focus();
|
||||
}
|
||||
|
||||
// WildCardToRegex not used!!
|
||||
private string WildCardToRegex(string strWildCard)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder(strWildCard.Length + 8);
|
||||
for (int intI = 0; intI < strWildCard.Length; intI++)
|
||||
{
|
||||
for (int intI = 0; intI < strWildCard.Length; intI++) {
|
||||
char chrC = strWildCard[intI];
|
||||
switch (chrC)
|
||||
{
|
||||
switch (chrC) {
|
||||
case '*':
|
||||
sb.Append(".*");
|
||||
break;
|
||||
|
@ -233,42 +217,41 @@ namespace LSLEditor
|
|||
private void ReplaceAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
EditForm editForm = this.lslEditForm.ActiveMdiForm as EditForm;
|
||||
if (editForm == null)
|
||||
return;
|
||||
if (editForm == null) {
|
||||
UpdateComboBox(this.comboBoxReplace);
|
||||
|
||||
UpdateComboBox(this.comboBoxReplace);
|
||||
string strPattern;
|
||||
string strFind = Regex.Escape(this.comboBoxFind.Text);
|
||||
string strReplacement = this.comboBoxReplace.Text;
|
||||
string strSourceCode = editForm.SourceCode;
|
||||
|
||||
string strPattern;
|
||||
string strFind = Regex.Escape(this.comboBoxFind.Text);
|
||||
string strReplacement = this.comboBoxReplace.Text;
|
||||
string strSourceCode = editForm.SourceCode;
|
||||
RegexOptions regexOptions = RegexOptions.Compiled;
|
||||
if (!this.checkBoxMatchCase.Checked) {
|
||||
regexOptions |= RegexOptions.IgnoreCase;
|
||||
}
|
||||
if (this.checkBoxWholeWord.Checked) {
|
||||
strPattern = @"\b" + strFind + @"\b";
|
||||
} else {
|
||||
strPattern = strFind;
|
||||
}
|
||||
|
||||
RegexOptions regexOptions = RegexOptions.Compiled;
|
||||
if (!this.checkBoxMatchCase.Checked)
|
||||
regexOptions |= RegexOptions.IgnoreCase;
|
||||
if (this.checkBoxWholeWord.Checked)
|
||||
strPattern = @"\b" + strFind + @"\b";
|
||||
else
|
||||
strPattern = strFind;
|
||||
Regex regex = new Regex(strPattern, regexOptions);
|
||||
|
||||
Regex regex = new Regex(strPattern, regexOptions);
|
||||
|
||||
int intCount = 0;
|
||||
foreach(Match m in regex.Matches(strSourceCode))
|
||||
{
|
||||
if (m.Value.Length > 0)
|
||||
intCount++;
|
||||
int intCount = 0;
|
||||
foreach (Match m in regex.Matches(strSourceCode)) {
|
||||
if (m.Value.Length > 0) {
|
||||
intCount++;
|
||||
}
|
||||
}
|
||||
if (intCount == 0) {
|
||||
MessageBox.Show("No matches found");
|
||||
} else {
|
||||
if (MessageBox.Show("There are " + intCount + " occurences, replace them all?", "Find and Replace", MessageBoxButtons.YesNoCancel) == DialogResult.Yes) {
|
||||
editForm.SourceCode = regex.Replace(strSourceCode, strReplacement);
|
||||
}
|
||||
}
|
||||
this.Focus();
|
||||
}
|
||||
if (intCount == 0)
|
||||
{
|
||||
MessageBox.Show("No matches found");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (MessageBox.Show("There are " + intCount + " occurences, replace them all?", "Find and Replace", MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
|
||||
editForm.SourceCode = regex.Replace(strSourceCode, strReplacement);
|
||||
}
|
||||
this.Focus();
|
||||
}
|
||||
|
||||
private void FindWindow_FormClosing(object sender, FormClosingEventArgs e)
|
||||
|
@ -281,22 +264,19 @@ namespace LSLEditor
|
|||
|
||||
private void FindWindow_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyData == Keys.Escape)
|
||||
{
|
||||
if (e.KeyData == Keys.Escape) {
|
||||
this.Visible = false;
|
||||
e.SuppressKeyPress = true;
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
if (e.KeyCode == Keys.Return)
|
||||
{
|
||||
if (e.KeyCode == Keys.Return) {
|
||||
Find();
|
||||
e.SuppressKeyPress = true;
|
||||
this.Focus();
|
||||
}
|
||||
|
||||
if (e.KeyCode == Keys.F3)
|
||||
{
|
||||
if (e.KeyCode == Keys.F3) {
|
||||
Find();
|
||||
e.SuppressKeyPress = true;
|
||||
this.Focus();
|
||||
|
@ -309,7 +289,5 @@ namespace LSLEditor
|
|||
{
|
||||
this.comboBoxFind.Focus();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -56,7 +56,7 @@ namespace LSLEditor
|
|||
this.lslEditForm = lslEditForm;
|
||||
|
||||
EditForm editForm = this.lslEditForm.ActiveMdiForm as EditForm;
|
||||
this.label1.Text = "Line number (1-"+editForm.TextBox.Lines.Length+")";
|
||||
this.label1.Text = "Line number (1-" + editForm.TextBox.Lines.Length + ")";
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
|
@ -67,16 +67,12 @@ namespace LSLEditor
|
|||
private void Goto()
|
||||
{
|
||||
EditForm editForm = this.lslEditForm.ActiveMdiForm as EditForm;
|
||||
if (editForm == null)
|
||||
return;
|
||||
try
|
||||
{
|
||||
int intLine = Convert.ToInt32(this.textBox1.Text);
|
||||
editForm.TextBox.Goto(intLine);
|
||||
this.Close();
|
||||
}
|
||||
catch
|
||||
{
|
||||
if (editForm != null) {
|
||||
try {
|
||||
int intLine = Convert.ToInt32(this.textBox1.Text);
|
||||
editForm.TextBox.Goto(intLine);
|
||||
this.Close();
|
||||
} catch { }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -87,8 +83,7 @@ namespace LSLEditor
|
|||
|
||||
private void textBox1_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Return)
|
||||
{
|
||||
if (e.KeyCode == Keys.Return) {
|
||||
Goto();
|
||||
e.SuppressKeyPress = true;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -72,28 +72,35 @@ namespace LSLEditor
|
|||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
if ((intPermissions & SecondLife.PERMISSION_DEBIT) == SecondLife.PERMISSION_DEBIT)
|
||||
if ((intPermissions & SecondLife.PERMISSION_DEBIT) == SecondLife.PERMISSION_DEBIT) {
|
||||
sb.AppendLine("Take Linden dollars (L$) from you");
|
||||
}
|
||||
|
||||
if ((intPermissions & SecondLife.PERMISSION_TAKE_CONTROLS) == SecondLife.PERMISSION_TAKE_CONTROLS)
|
||||
if ((intPermissions & SecondLife.PERMISSION_TAKE_CONTROLS) == SecondLife.PERMISSION_TAKE_CONTROLS) {
|
||||
sb.AppendLine("Act on your control inputs");
|
||||
}
|
||||
|
||||
if ((intPermissions & SecondLife.PERMISSION_TRIGGER_ANIMATION) == SecondLife.PERMISSION_TRIGGER_ANIMATION)
|
||||
if ((intPermissions & SecondLife.PERMISSION_TRIGGER_ANIMATION) == SecondLife.PERMISSION_TRIGGER_ANIMATION) {
|
||||
sb.AppendLine("Animate your avatar");
|
||||
}
|
||||
|
||||
if ((intPermissions & SecondLife.PERMISSION_ATTACH) == SecondLife.PERMISSION_ATTACH)
|
||||
if ((intPermissions & SecondLife.PERMISSION_ATTACH) == SecondLife.PERMISSION_ATTACH) {
|
||||
sb.AppendLine("Attach to your avatar");
|
||||
}
|
||||
|
||||
if ((intPermissions & SecondLife.PERMISSION_CHANGE_LINKS) == SecondLife.PERMISSION_CHANGE_LINKS)
|
||||
if ((intPermissions & SecondLife.PERMISSION_CHANGE_LINKS) == SecondLife.PERMISSION_CHANGE_LINKS) {
|
||||
sb.AppendLine("Link and delink from other objects");
|
||||
}
|
||||
|
||||
if ((intPermissions & SecondLife.PERMISSION_TRACK_CAMERA) == SecondLife.PERMISSION_TRACK_CAMERA)
|
||||
if ((intPermissions & SecondLife.PERMISSION_TRACK_CAMERA) == SecondLife.PERMISSION_TRACK_CAMERA) {
|
||||
sb.AppendLine("Track your camera");
|
||||
}
|
||||
|
||||
if ((intPermissions & SecondLife.PERMISSION_CONTROL_CAMERA) == SecondLife.PERMISSION_CONTROL_CAMERA)
|
||||
if ((intPermissions & SecondLife.PERMISSION_CONTROL_CAMERA) == SecondLife.PERMISSION_CONTROL_CAMERA) {
|
||||
sb.AppendLine("Control your camera");
|
||||
}
|
||||
|
||||
this.label1.Text = "'"+strObjectName+"', an object owned by '"+strOwner + "',\nwould like to:";
|
||||
this.label1.Text = "'" + strObjectName + "', an object owned by '" + strOwner + "',\nwould like to:";
|
||||
this.label2.Text = sb.ToString();
|
||||
}
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ using System.Runtime.InteropServices;
|
|||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
// We use a Major.Minor.Bugfix.Build pattern.
|
||||
[assembly: AssemblyVersion("2.999.999.7")]
|
||||
[assembly: AssemblyVersion("2.999.999.13")]
|
||||
|
||||
//
|
||||
// In order to sign your assembly you must specify a key to use. Refer to the
|
||||
|
@ -100,4 +100,4 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyDelaySign(false)]
|
||||
//[assembly: AssemblyKeyName("")]
|
||||
[assembly: ComVisibleAttribute(false)]
|
||||
[assembly: AssemblyFileVersionAttribute("2.999.999.7")]
|
||||
[assembly: AssemblyFileVersionAttribute("2.999.999.13")]
|
||||
|
|
|
@ -74,27 +74,29 @@ namespace LSLEditor
|
|||
|
||||
private bool GetNewHost()
|
||||
{
|
||||
bool blnResult = false;
|
||||
Assembly assembly = CompilerHelper.CompileCSharp(editForm, CSharpCode);
|
||||
if (assembly == null)
|
||||
return false;
|
||||
if (assembly != null) {
|
||||
if (SecondLifeHost != null) {
|
||||
SecondLifeHost.Dispose();
|
||||
}
|
||||
SecondLifeHost = null;
|
||||
|
||||
if(SecondLifeHost!=null)
|
||||
SecondLifeHost.Dispose();
|
||||
SecondLifeHost = null;
|
||||
SecondLifeHost = new SecondLifeHost(this.mainForm, assembly, editForm.FullPathName, editForm.guid);
|
||||
SecondLifeHost.OnChat += editForm.ChatHandler;
|
||||
SecondLifeHost.OnMessageLinked += editForm.MessageLinkedHandler;
|
||||
SecondLifeHost.OnDie += new EventHandler(host_OnDie);
|
||||
SecondLifeHost.OnReset += new EventHandler(SecondLifeHost_OnReset);
|
||||
SecondLifeHost.OnListenChannelsChanged += new EventHandler(SecondLifeHost_OnListenChannelsChanged);
|
||||
|
||||
SecondLifeHost = new SecondLifeHost(this.mainForm, assembly, editForm.FullPathName, editForm.guid);
|
||||
SecondLifeHost.OnChat += editForm.ChatHandler;
|
||||
SecondLifeHost.OnMessageLinked += editForm.MessageLinkedHandler;
|
||||
SecondLifeHost.OnDie += new EventHandler(host_OnDie);
|
||||
SecondLifeHost.OnReset += new EventHandler(SecondLifeHost_OnReset);
|
||||
SecondLifeHost.OnListenChannelsChanged += new EventHandler(SecondLifeHost_OnListenChannelsChanged);
|
||||
SecondLifeHost.OnVerboseMessage += new SecondLifeHost.SecondLifeHostMessageHandler(host_OnVerboseMessage);
|
||||
SecondLifeHost.OnStateChange += new SecondLifeHost.SecondLifeHostMessageHandler(host_OnStateChange);
|
||||
|
||||
SecondLifeHost.OnVerboseMessage += new SecondLifeHost.SecondLifeHostMessageHandler(host_OnVerboseMessage);
|
||||
SecondLifeHost.OnStateChange += new SecondLifeHost.SecondLifeHostMessageHandler(host_OnStateChange);
|
||||
SecondLifeHost.State("default", true);
|
||||
|
||||
SecondLifeHost.State("default", true);
|
||||
|
||||
return true;
|
||||
blnResult = true;
|
||||
}
|
||||
return blnResult;
|
||||
}
|
||||
|
||||
public bool Compile(EditForm editForm)
|
||||
|
@ -119,8 +121,7 @@ namespace LSLEditor
|
|||
|
||||
private void ResetScriptWatch()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
while (true) {
|
||||
this.ResetScriptEvent.WaitOne();
|
||||
|
||||
SecondLifeHost.Dispose();
|
||||
|
@ -131,13 +132,10 @@ namespace LSLEditor
|
|||
private delegate void AddListenChannelsDelegate(ComboBox comboBox, string[] channels);
|
||||
private void AddListenChannelsToComboxBox(ComboBox comboBox, string[] channels)
|
||||
{
|
||||
if (comboBox.InvokeRequired)
|
||||
{
|
||||
if (comboBox.InvokeRequired) {
|
||||
comboBox.Invoke(new AddListenChannelsDelegate(AddListenChannelsToComboxBox),
|
||||
new object[] { comboBox , channels });
|
||||
}
|
||||
else
|
||||
{
|
||||
new object[] { comboBox, channels });
|
||||
} else {
|
||||
comboBox.Items.Clear();
|
||||
comboBox.Items.AddRange(channels);
|
||||
comboBox.SelectedIndex = 0;
|
||||
|
@ -145,18 +143,19 @@ namespace LSLEditor
|
|||
}
|
||||
private void SecondLifeHost_OnListenChannelsChanged(object sender, EventArgs e)
|
||||
{
|
||||
foreach (Control control in this.panel4.Controls)
|
||||
{
|
||||
foreach (Control control in this.panel4.Controls) {
|
||||
GroupboxEvent gbe = control as GroupboxEvent;
|
||||
if (gbe == null)
|
||||
if (gbe == null) {
|
||||
continue;
|
||||
foreach (Control control1 in gbe.Controls)
|
||||
{
|
||||
}
|
||||
foreach (Control control1 in gbe.Controls) {
|
||||
GroupBox gb = control1 as GroupBox;
|
||||
if (gb == null)
|
||||
if (gb == null) {
|
||||
continue;
|
||||
if (gb.Name!="listen_0")
|
||||
}
|
||||
if (gb.Name != "listen_0") {
|
||||
continue;
|
||||
}
|
||||
ComboBox comboBox = gb.Controls[0] as ComboBox;
|
||||
AddListenChannelsToComboxBox(comboBox, SecondLifeHost.GetListenChannels());
|
||||
}
|
||||
|
@ -165,13 +164,10 @@ namespace LSLEditor
|
|||
|
||||
void host_OnDie(object sender, EventArgs e)
|
||||
{
|
||||
if(this.panel1.InvokeRequired)
|
||||
{
|
||||
if (this.panel1.InvokeRequired) {
|
||||
// using Evenhandler definition as a delegate
|
||||
this.panel1.Invoke(new EventHandler(host_OnDie));
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
this.panel1.Enabled = false;
|
||||
}
|
||||
}
|
||||
|
@ -185,16 +181,11 @@ namespace LSLEditor
|
|||
private delegate void SetStateComboboxDelegate(string strName);
|
||||
public void SetStateCombobox(string strName)
|
||||
{
|
||||
if (this.comboBox1.InvokeRequired)
|
||||
{
|
||||
if (this.comboBox1.InvokeRequired) {
|
||||
this.comboBox1.Invoke(new SetStateComboboxDelegate(SetStateCombobox), new object[] { strName });
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int intI = 0; intI < this.comboBox1.Items.Count; intI++)
|
||||
{
|
||||
if (this.comboBox1.Items[intI].ToString() == strName)
|
||||
{
|
||||
} else {
|
||||
for (int intI = 0; intI < this.comboBox1.Items.Count; intI++) {
|
||||
if (this.comboBox1.Items[intI].ToString() == strName) {
|
||||
this.comboBox1.SelectedIndex = intI;
|
||||
break;
|
||||
}
|
||||
|
@ -204,13 +195,13 @@ namespace LSLEditor
|
|||
|
||||
private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
|
||||
{
|
||||
if (SecondLifeHost == null)
|
||||
return;
|
||||
string strStateName = (string)this.comboBox1.Items[this.comboBox1.SelectedIndex];
|
||||
if (strStateName != "")
|
||||
{
|
||||
if (SecondLifeHost.CurrentStateName != strStateName)
|
||||
SecondLifeHost.State(strStateName,true);
|
||||
if (SecondLifeHost != null) {
|
||||
string strStateName = (string)this.comboBox1.Items[this.comboBox1.SelectedIndex];
|
||||
if (strStateName != "") {
|
||||
if (SecondLifeHost.CurrentStateName != strStateName) {
|
||||
SecondLifeHost.State(strStateName, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -230,8 +221,7 @@ namespace LSLEditor
|
|||
|
||||
strC = translator.Parse(strC);
|
||||
|
||||
foreach (string strState in translator.States)
|
||||
{
|
||||
foreach (string strState in translator.States) {
|
||||
this.comboBox1.Items.Add(strState);
|
||||
}
|
||||
return strC;
|
||||
|
@ -240,18 +230,14 @@ namespace LSLEditor
|
|||
private delegate void ShowLifeEventsDelegate();
|
||||
private void ShowLifeEvents()
|
||||
{
|
||||
if (this.panel4.InvokeRequired)
|
||||
{
|
||||
if (this.panel4.InvokeRequired) {
|
||||
this.panel4.Invoke(new ShowLifeEventsDelegate(ShowLifeEvents), null);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
int intX = 8;
|
||||
int intY = 0;
|
||||
|
||||
this.panel4.Controls.Clear();
|
||||
foreach (string strEventName in SecondLifeHost.GetEvents())
|
||||
{
|
||||
foreach (string strEventName in SecondLifeHost.GetEvents()) {
|
||||
string strArgs = SecondLifeHost.GetArgumentsFromMethod(strEventName);
|
||||
GroupboxEvent ge = new GroupboxEvent(new Point(intX, intY), strEventName, strArgs, new System.EventHandler(this.buttonEvent_Click));
|
||||
this.panel4.Controls.Add(ge);
|
||||
|
@ -265,28 +251,23 @@ namespace LSLEditor
|
|||
// Verbose
|
||||
public void VerboseConsole(string strLine)
|
||||
{
|
||||
if (this.textBox2.IsDisposed)
|
||||
return;
|
||||
if (this.textBox2.InvokeRequired)
|
||||
{
|
||||
this.textBox2.Invoke(new AppendTextDelegate(VerboseConsole), new object[] { strLine });
|
||||
}
|
||||
else
|
||||
{
|
||||
this.textBox2.AppendText(strLine.Replace("\n", "\r\n") + "\r\n");
|
||||
if (!this.textBox2.IsDisposed) {
|
||||
if (this.textBox2.InvokeRequired) {
|
||||
this.textBox2.Invoke(new AppendTextDelegate(VerboseConsole), new object[] { strLine });
|
||||
} else {
|
||||
this.textBox2.AppendText(strLine.Replace("\n", "\r\n") + "\r\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private string GetArgumentValue(string strName)
|
||||
{
|
||||
foreach (Control parent in this.panel4.Controls)
|
||||
{
|
||||
if (parent.Name == "GroupboxTextbox")
|
||||
{
|
||||
foreach (Control c in parent.Controls)
|
||||
{
|
||||
if (c.Name == strName)
|
||||
foreach (Control parent in this.panel4.Controls) {
|
||||
if (parent.Name == "GroupboxTextbox") {
|
||||
foreach (Control c in parent.Controls) {
|
||||
if (c.Name == strName) {
|
||||
return c.Controls[0].Text;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -295,71 +276,62 @@ namespace LSLEditor
|
|||
|
||||
private object[] GetArguments(string strName, string strArgs)
|
||||
{
|
||||
if (strArgs == "")
|
||||
return new object[0];
|
||||
|
||||
try
|
||||
{
|
||||
string[] args = strArgs.Trim().Split(new char[] { ',' });
|
||||
object[] argobjects = new object[args.Length];
|
||||
for (int intI = 0; intI < argobjects.Length; intI++)
|
||||
{
|
||||
string[] argument = args[intI].Trim().Split(new char[] { ' ' });
|
||||
if (argument.Length == 2)
|
||||
{
|
||||
string[] arArgs;
|
||||
string strArgumentValue = GetArgumentValue(strName + "_" + intI);
|
||||
string strArgumentName = argument[1];
|
||||
string strArgumentType = argument[0];
|
||||
switch (strArgumentType)
|
||||
{
|
||||
case "System.String":
|
||||
argobjects[intI] = strArgumentValue;
|
||||
break;
|
||||
case "System.Int32":
|
||||
argobjects[intI] = int.Parse(strArgumentValue);
|
||||
break;
|
||||
case "LSLEditor.SecondLife+Float":
|
||||
argobjects[intI] = new SecondLife.Float(strArgumentValue);
|
||||
break;
|
||||
case "LSLEditor.SecondLife+integer":
|
||||
argobjects[intI] = new SecondLife.integer(int.Parse(strArgumentValue));
|
||||
break;
|
||||
case "LSLEditor.SecondLife+String":
|
||||
argobjects[intI] = new SecondLife.String(strArgumentValue);
|
||||
break;
|
||||
case "LSLEditor.SecondLife+key":
|
||||
argobjects[intI] = new SecondLife.key(strArgumentValue);
|
||||
break;
|
||||
case "LSLEditor.SecondLife+list":
|
||||
argobjects[intI] = new SecondLife.list(new string[] { strArgumentValue } );
|
||||
break;
|
||||
case "LSLEditor.SecondLife+rotation":
|
||||
arArgs = strArgumentValue.Replace("<", "").Replace(">", "").Replace(" ", "").Split(new char[] { ',' });
|
||||
argobjects[intI] = new SecondLife.rotation(double.Parse(arArgs[0]), double.Parse(arArgs[1]), double.Parse(arArgs[2]), double.Parse(arArgs[3]));
|
||||
break;
|
||||
case "LSLEditor.SecondLife+vector":
|
||||
arArgs = strArgumentValue.Replace("<", "").Replace(">", "").Replace(" ", "").Split(new char[] { ',' });
|
||||
argobjects[intI] = new SecondLife.vector(double.Parse(arArgs[0]), double.Parse(arArgs[1]), double.Parse(arArgs[2]));
|
||||
break;
|
||||
default:
|
||||
MessageBox.Show("Compiler->GetArguments->[" + strArgumentType + "][" + strArgumentName + "]");
|
||||
argobjects[intI] = null;
|
||||
break;
|
||||
object[] objResult = new object[0];
|
||||
if (strArgs != "") {
|
||||
try {
|
||||
string[] args = strArgs.Trim().Split(new char[] { ',' });
|
||||
object[] argobjects = new object[args.Length];
|
||||
for (int intI = 0; intI < argobjects.Length; intI++) {
|
||||
string[] argument = args[intI].Trim().Split(new char[] { ' ' });
|
||||
if (argument.Length == 2) {
|
||||
string[] arArgs;
|
||||
string strArgumentValue = GetArgumentValue(strName + "_" + intI);
|
||||
string strArgumentName = argument[1];
|
||||
string strArgumentType = argument[0];
|
||||
switch (strArgumentType) {
|
||||
case "System.String":
|
||||
argobjects[intI] = strArgumentValue;
|
||||
break;
|
||||
case "System.Int32":
|
||||
argobjects[intI] = int.Parse(strArgumentValue);
|
||||
break;
|
||||
case "LSLEditor.SecondLife+Float":
|
||||
argobjects[intI] = new SecondLife.Float(strArgumentValue);
|
||||
break;
|
||||
case "LSLEditor.SecondLife+integer":
|
||||
argobjects[intI] = new SecondLife.integer(int.Parse(strArgumentValue));
|
||||
break;
|
||||
case "LSLEditor.SecondLife+String":
|
||||
argobjects[intI] = new SecondLife.String(strArgumentValue);
|
||||
break;
|
||||
case "LSLEditor.SecondLife+key":
|
||||
argobjects[intI] = new SecondLife.key(strArgumentValue);
|
||||
break;
|
||||
case "LSLEditor.SecondLife+list":
|
||||
argobjects[intI] = new SecondLife.list(new string[] { strArgumentValue });
|
||||
break;
|
||||
case "LSLEditor.SecondLife+rotation":
|
||||
arArgs = strArgumentValue.Replace("<", "").Replace(">", "").Replace(" ", "").Split(new char[] { ',' });
|
||||
argobjects[intI] = new SecondLife.rotation(double.Parse(arArgs[0]), double.Parse(arArgs[1]), double.Parse(arArgs[2]), double.Parse(arArgs[3]));
|
||||
break;
|
||||
case "LSLEditor.SecondLife+vector":
|
||||
arArgs = strArgumentValue.Replace("<", "").Replace(">", "").Replace(" ", "").Split(new char[] { ',' });
|
||||
argobjects[intI] = new SecondLife.vector(double.Parse(arArgs[0]), double.Parse(arArgs[1]), double.Parse(arArgs[2]));
|
||||
break;
|
||||
default:
|
||||
MessageBox.Show("Compiler->GetArguments->[" + strArgumentType + "][" + strArgumentName + "]");
|
||||
argobjects[intI] = null;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
MessageBox.Show("Argument must be 'type name' [" + args[intI] + "]");
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Argument must be 'type name' [" + args[intI] + "]");
|
||||
break;
|
||||
}
|
||||
}
|
||||
return argobjects;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return new object[0];
|
||||
objResult = argobjects;
|
||||
} catch { }
|
||||
}
|
||||
return objResult;
|
||||
}
|
||||
|
||||
private void buttonEvent_Click(object sender, System.EventArgs e)
|
||||
|
@ -374,8 +346,9 @@ namespace LSLEditor
|
|||
|
||||
private void Die()
|
||||
{
|
||||
if (this.SecondLifeHost != null)
|
||||
if (this.SecondLifeHost != null) {
|
||||
this.SecondLifeHost.Die();
|
||||
}
|
||||
}
|
||||
|
||||
// Die
|
||||
|
@ -386,8 +359,9 @@ namespace LSLEditor
|
|||
|
||||
private void textBox2_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Control && e.KeyCode == Keys.A)
|
||||
if (e.Control && e.KeyCode == Keys.A) {
|
||||
this.textBox2.SelectAll();
|
||||
}
|
||||
}
|
||||
|
||||
private void selectAllToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
|
|
|
@ -71,10 +71,12 @@ namespace LSLEditor
|
|||
this.History = new List<string>();
|
||||
this.intHistory = 0;
|
||||
|
||||
if (Properties.Settings.Default.SimulatorLocation != Point.Empty)
|
||||
if (Properties.Settings.Default.SimulatorLocation != Point.Empty) {
|
||||
this.Location = Properties.Settings.Default.SimulatorLocation;
|
||||
if (Properties.Settings.Default.SimulatorSize != Size.Empty)
|
||||
}
|
||||
if (Properties.Settings.Default.SimulatorSize != Size.Empty) {
|
||||
this.Size = Properties.Settings.Default.SimulatorSize;
|
||||
}
|
||||
|
||||
this.Clear();
|
||||
|
||||
|
@ -86,11 +88,11 @@ namespace LSLEditor
|
|||
|
||||
this.LocationChanged += new EventHandler(SimulatorConsole_LocationChanged);
|
||||
|
||||
foreach (Form form in this.Children)
|
||||
{
|
||||
foreach (Form form in this.Children) {
|
||||
EditForm editForm = form as EditForm;
|
||||
if (editForm == null || editForm.IsDisposed)
|
||||
if (editForm == null || editForm.IsDisposed) {
|
||||
continue;
|
||||
}
|
||||
editForm.ChatHandler = chathandler;
|
||||
editForm.MessageLinkedHandler = messagelinkedhandler;
|
||||
editForm.StartCompiler();
|
||||
|
@ -99,11 +101,11 @@ namespace LSLEditor
|
|||
|
||||
public void Stop()
|
||||
{
|
||||
foreach (Form form in this.Children)
|
||||
{
|
||||
foreach (Form form in this.Children) {
|
||||
EditForm editForm = form as EditForm;
|
||||
if (editForm == null || editForm.IsDisposed)
|
||||
if (editForm == null || editForm.IsDisposed) {
|
||||
continue;
|
||||
}
|
||||
editForm.StopCompiler();
|
||||
}
|
||||
}
|
||||
|
@ -118,24 +120,26 @@ namespace LSLEditor
|
|||
this.Listen(e);
|
||||
|
||||
// talk only to the owner
|
||||
if (e.how == CommunicationType.OwnerSay)
|
||||
return;
|
||||
if (e.how != CommunicationType.OwnerSay) {
|
||||
foreach (Form form in this.Children) {
|
||||
EditForm editForm = form as EditForm;
|
||||
if (editForm == null || editForm.IsDisposed) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach (Form form in this.Children)
|
||||
{
|
||||
EditForm editForm = form as EditForm;
|
||||
if (editForm == null || editForm.IsDisposed)
|
||||
continue;
|
||||
if (editForm.runtime == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (editForm.runtime == null)
|
||||
continue;
|
||||
if (editForm.runtime.SecondLifeHost == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (editForm.runtime.SecondLifeHost == null)
|
||||
continue;
|
||||
|
||||
// prevent loops loops loops loops, dont talk to myself
|
||||
if (sender != editForm.runtime.SecondLifeHost)
|
||||
editForm.runtime.SecondLifeHost.Listen(e);
|
||||
// prevent loops loops loops loops, dont talk to myself
|
||||
if (sender != editForm.runtime.SecondLifeHost) {
|
||||
editForm.runtime.SecondLifeHost.Listen(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -149,8 +153,7 @@ namespace LSLEditor
|
|||
List<Guid> list;
|
||||
|
||||
int intLinkNum = e.iLinkIndex;
|
||||
switch (intLinkNum)
|
||||
{
|
||||
switch (intLinkNum) {
|
||||
case 1: // LINK_ROOT , root prim in linked set (but not in a single prim, which is 0)
|
||||
list = this.solutionExplorer.GetScripts(RootObjectGuid, false);
|
||||
break;
|
||||
|
@ -160,8 +163,7 @@ namespace LSLEditor
|
|||
case -2: // LINK_ALL_OTHERS , all other prims in object besides prim function is in
|
||||
list = this.solutionExplorer.GetScripts(RootObjectGuid, true);
|
||||
// remove scripts in prim itself, and below
|
||||
foreach (Guid guid in this.solutionExplorer.GetScripts(ObjectGuid, true))
|
||||
{
|
||||
foreach (Guid guid in this.solutionExplorer.GetScripts(ObjectGuid, true)) {
|
||||
if (list.Contains(guid))
|
||||
list.Remove(guid);
|
||||
}
|
||||
|
@ -169,19 +171,18 @@ namespace LSLEditor
|
|||
case -3: // LINK_ALL_CHILDREN , all child prims in object
|
||||
list = this.solutionExplorer.GetScripts(RootObjectGuid, true);
|
||||
// remove root itself
|
||||
foreach (Guid guid in this.solutionExplorer.GetScripts(RootObjectGuid, false))
|
||||
{
|
||||
foreach (Guid guid in this.solutionExplorer.GetScripts(RootObjectGuid, false)) {
|
||||
if (list.Contains(guid))
|
||||
list.Remove(guid);
|
||||
}
|
||||
break;
|
||||
case -4: // LINK_THIS
|
||||
/*
|
||||
* From SL Wiki: "Causes the script to act only upon the prim the prim the script is in."
|
||||
* This means LINK_THIS, links to every script in the prim, not just the caller.
|
||||
* @author = MrSoundless
|
||||
* @date = 28 April 2011
|
||||
*/
|
||||
case -4: // LINK_THIS
|
||||
/*
|
||||
* From SL Wiki: "Causes the script to act only upon the prim the prim the script is in."
|
||||
* This means LINK_THIS, links to every script in the prim, not just the caller.
|
||||
* @author = MrSoundless
|
||||
* @date = 28 April 2011
|
||||
*/
|
||||
list = new List<Guid>();
|
||||
//list.Add(secondLifeHostSender.guid); // 4 feb 2008
|
||||
list = this.solutionExplorer.GetScripts(ObjectGuid, true); // 28 april 2011
|
||||
|
@ -193,36 +194,41 @@ namespace LSLEditor
|
|||
}
|
||||
|
||||
// only send message to running scripts in list
|
||||
foreach (Form form in this.Children)
|
||||
{
|
||||
foreach (Form form in this.Children) {
|
||||
EditForm editForm = form as EditForm;
|
||||
if (editForm == null || editForm.IsDisposed)
|
||||
if (editForm == null || editForm.IsDisposed) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (editForm.runtime == null)
|
||||
if (editForm.runtime == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (editForm.runtime.SecondLifeHost == null)
|
||||
if (editForm.runtime.SecondLifeHost == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if(list.Contains(editForm.guid))
|
||||
if (list.Contains(editForm.guid)) {
|
||||
editForm.runtime.SecondLifeHost.LinkMessage(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SimulatorConsole_OnControl(object sender, EventArgs e)
|
||||
{
|
||||
foreach (Form form in this.Children)
|
||||
{
|
||||
foreach (Form form in this.Children) {
|
||||
EditForm editForm = form as EditForm;
|
||||
if (editForm == null || editForm.IsDisposed)
|
||||
if (editForm == null || editForm.IsDisposed) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (editForm.runtime == null)
|
||||
if (editForm.runtime == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (editForm.runtime.SecondLifeHost == null)
|
||||
if (editForm.runtime.SecondLifeHost == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
editForm.runtime.SecondLifeHost.SendControl((Keys)sender);
|
||||
}
|
||||
|
@ -231,47 +237,48 @@ namespace LSLEditor
|
|||
private delegate void AppendTextDelegate(string strLine);
|
||||
public void TalkToSimulatorConsole(string strLine)
|
||||
{
|
||||
if (this.textBox2.InvokeRequired)
|
||||
{
|
||||
if (this.textBox2.InvokeRequired) {
|
||||
this.textBox2.Invoke(new AppendTextDelegate(TalkToSimulatorConsole), new object[] { strLine });
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
this.textBox2.AppendText(strLine.Replace("\n", "\r\n") + "\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
private void Chat(int channel, string name, SecondLife.key id, string message, CommunicationType how)
|
||||
{
|
||||
if (OnChat != null)
|
||||
if (OnChat != null) {
|
||||
OnChat(this, new SecondLifeHostChatEventArgs(channel, name, id, message, how));
|
||||
}
|
||||
}
|
||||
|
||||
public void Listen(SecondLifeHostChatEventArgs e)
|
||||
{
|
||||
// Translate the incomming messages a bit so it looks like SL.
|
||||
string strHow = ": ";
|
||||
if (e.how == CommunicationType.Shout)
|
||||
if (e.how == CommunicationType.Shout) {
|
||||
strHow = " shout: ";
|
||||
}
|
||||
|
||||
if (e.how == CommunicationType.Whisper)
|
||||
if (e.how == CommunicationType.Whisper) {
|
||||
strHow = " whispers: ";
|
||||
}
|
||||
|
||||
string strWho = e.name;
|
||||
string strMessage = e.message;
|
||||
|
||||
if (e.name == Properties.Settings.Default.AvatarName)
|
||||
if (e.name == Properties.Settings.Default.AvatarName) {
|
||||
strWho = "You";
|
||||
}
|
||||
|
||||
if (e.message.ToString().StartsWith("/me"))
|
||||
{
|
||||
if (e.message.ToString().StartsWith("/me")) {
|
||||
strWho = e.name;
|
||||
strHow = " ";
|
||||
strMessage = e.message.ToString().Substring(3).Trim();
|
||||
}
|
||||
|
||||
if (e.channel == 0)
|
||||
if (e.channel == 0) {
|
||||
TalkToSimulatorConsole(strWho + strHow + strMessage);
|
||||
}
|
||||
}
|
||||
|
||||
private void Speak(CommunicationType how)
|
||||
|
@ -283,35 +290,26 @@ namespace LSLEditor
|
|||
intHistory = History.Count;
|
||||
|
||||
|
||||
if (strMessage == "")
|
||||
return;
|
||||
|
||||
if (strMessage[0] == '/')
|
||||
{
|
||||
if (strMessage.StartsWith("/me"))
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
else
|
||||
{
|
||||
string strChannel = "";
|
||||
for (int intI = 1; intI < strMessage.Length; intI++)
|
||||
{
|
||||
if (strMessage[intI] >= '0' && strMessage[intI] <= '9')
|
||||
{
|
||||
strChannel += strMessage[intI];
|
||||
if (intI < 10)
|
||||
continue;
|
||||
if (strMessage != ""){
|
||||
if (strMessage[0] == '/') {
|
||||
if (strMessage.StartsWith("/me")) {
|
||||
// do nothing
|
||||
} else {
|
||||
string strChannel = "";
|
||||
for (int intI = 1; intI < strMessage.Length; intI++) {
|
||||
if (strMessage[intI] >= '0' && strMessage[intI] <= '9') {
|
||||
strChannel += strMessage[intI];
|
||||
if (intI < 10) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
try {
|
||||
intChannel = Convert.ToInt32(strChannel);
|
||||
strMessage = strMessage.Substring(intI).Trim();
|
||||
} catch {
|
||||
}
|
||||
break;
|
||||
}
|
||||
try
|
||||
{
|
||||
intChannel = Convert.ToInt32(strChannel);
|
||||
strMessage = strMessage.Substring(intI).Trim();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -336,13 +334,16 @@ namespace LSLEditor
|
|||
private void ScrollChat(KeyEventArgs e)
|
||||
{
|
||||
e.SuppressKeyPress = true;
|
||||
if (e.KeyCode == Keys.Up)
|
||||
if (e.KeyCode == Keys.Up) {
|
||||
intHistory = Math.Max(0, intHistory - 1);
|
||||
if (e.KeyCode == Keys.Down)
|
||||
}
|
||||
if (e.KeyCode == Keys.Down) {
|
||||
intHistory = Math.Min(History.Count, intHistory + 1);
|
||||
}
|
||||
this.textBox1.Clear();
|
||||
if (intHistory != History.Count)
|
||||
if (intHistory != History.Count) {
|
||||
this.textBox1.AppendText(History[intHistory]);
|
||||
}
|
||||
}
|
||||
|
||||
private void textBox1_KeyDown(object sender, KeyEventArgs e)
|
||||
|
@ -350,23 +351,16 @@ namespace LSLEditor
|
|||
this.buttonSay.Enabled = true;
|
||||
this.buttonShout.Enabled = true;
|
||||
|
||||
if (e.KeyCode == Keys.Return)
|
||||
{
|
||||
if (e.KeyCode == Keys.Return) {
|
||||
Speak(CommunicationType.Say);
|
||||
e.SuppressKeyPress = true;
|
||||
}
|
||||
if (e.Control && (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down))
|
||||
{
|
||||
if (e.Control && (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down)) {
|
||||
ScrollChat(e);
|
||||
}
|
||||
else if (e.KeyCode == Keys.Down ||
|
||||
e.KeyCode == Keys.Left ||
|
||||
e.KeyCode == Keys.Right ||
|
||||
e.KeyCode == Keys.Up
|
||||
)
|
||||
{
|
||||
if (OnControl != null)
|
||||
} else if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right || e.KeyCode == Keys.Up ) {
|
||||
if (OnControl != null) {
|
||||
OnControl(e.KeyCode, new EventArgs());
|
||||
}
|
||||
e.SuppressKeyPress = true;
|
||||
}
|
||||
}
|
||||
|
@ -391,8 +385,9 @@ namespace LSLEditor
|
|||
|
||||
private void textBox2_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Control && e.KeyCode == Keys.A)
|
||||
if (e.Control && e.KeyCode == Keys.A) {
|
||||
this.textBox2.SelectAll();
|
||||
}
|
||||
}
|
||||
|
||||
private void copyToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
|
|
|
@ -112,10 +112,11 @@ namespace LSLEditor
|
|||
{
|
||||
Uri url;
|
||||
string strVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
if (Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().Location).Contains("beta"))
|
||||
if (Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().Location).Contains("beta")) {
|
||||
url = new Uri(Properties.Settings.Default.UpdateManifest + "?beta-" + strVersion);
|
||||
else
|
||||
} else {
|
||||
url = new Uri(Properties.Settings.Default.UpdateManifest + "?" + strVersion);
|
||||
}
|
||||
|
||||
manifest = new WebClient();
|
||||
manifest.DownloadStringCompleted += new DownloadStringCompletedEventHandler(manifest_DownloadCompleted);
|
||||
|
@ -130,28 +131,26 @@ namespace LSLEditor
|
|||
|
||||
public void CheckForUpdate(bool blnForce)
|
||||
{
|
||||
if (!blnForce)
|
||||
{
|
||||
if (Properties.Settings.Default.DeleteOldFiles)
|
||||
if (!blnForce) {
|
||||
if (Properties.Settings.Default.DeleteOldFiles) {
|
||||
DeleteOldFile();
|
||||
}
|
||||
|
||||
DateTime dateTime = Properties.Settings.Default.CheckDate;
|
||||
if (Properties.Settings.Default.CheckEveryDay)
|
||||
{
|
||||
if (Properties.Settings.Default.CheckEveryDay) {
|
||||
TimeSpan lastUpdate = DateTime.Now - dateTime;
|
||||
if (lastUpdate.TotalDays >= 1.0)
|
||||
if (lastUpdate.TotalDays >= 1.0) {
|
||||
blnForce = true;
|
||||
}
|
||||
else if (Properties.Settings.Default.CheckEveryWeek)
|
||||
{
|
||||
}
|
||||
} else if (Properties.Settings.Default.CheckEveryWeek) {
|
||||
TimeSpan lastUpdate = DateTime.Now - dateTime;
|
||||
if(lastUpdate.TotalDays >= 7.0)
|
||||
if (lastUpdate.TotalDays >= 7.0) {
|
||||
blnForce = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (blnForce)
|
||||
{
|
||||
if (blnForce) {
|
||||
Properties.Settings.Default.CheckDate = DateTime.Now;
|
||||
Properties.Settings.Default.Save(); // save also all settings
|
||||
|
||||
|
@ -164,7 +163,7 @@ namespace LSLEditor
|
|||
if (e.Error != null)
|
||||
return;
|
||||
|
||||
versionInfo bzip = new versionInfo();
|
||||
versionInfo bzip = new versionInfo();
|
||||
versionInfo gzip = new versionInfo();
|
||||
versionInfo wzip = new versionInfo();
|
||||
|
||||
|
@ -176,19 +175,13 @@ namespace LSLEditor
|
|||
|
||||
string strHelpHashMe = "";
|
||||
string strHelpFile = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), Properties.Settings.Default.HelpOfflineFile);
|
||||
if (File.Exists(strHelpFile))
|
||||
{
|
||||
if (File.Exists(strHelpFile)) {
|
||||
strHelpHashMe = Decompressor.MD5Verify.ComputeHash(strHelpFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
// help file does not exist
|
||||
if (Properties.Settings.Default.HelpOffline || blnOnlyHelpFile)
|
||||
{
|
||||
if (Properties.Settings.Default.HelpOffline || blnOnlyHelpFile) {
|
||||
strHelpHashMe = "*"; // force new update
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
strHelpHashMe = ""; // no update
|
||||
this.labelHelpFile.Visible = false;
|
||||
this.labelHelpversionString.Visible = false;
|
||||
|
@ -196,22 +189,22 @@ namespace LSLEditor
|
|||
}
|
||||
|
||||
StringReader sr = new StringReader(e.Result);
|
||||
for (int intI = 0; intI < 255; intI++)
|
||||
{
|
||||
for (int intI = 0; intI < 255; intI++) {
|
||||
string strLine = sr.ReadLine();
|
||||
if (strLine == null)
|
||||
if (strLine == null) {
|
||||
break;
|
||||
}
|
||||
|
||||
int intSplit = strLine.IndexOf("=");
|
||||
if (intSplit < 0)
|
||||
if (intSplit < 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
string strName = strLine.Substring(0, intSplit);
|
||||
string strValue = strLine.Substring(intSplit + 1);
|
||||
|
||||
//All hashes are of the uncompressed file. However, different archives may contain different versions.
|
||||
switch (strName)
|
||||
{
|
||||
switch (strName) {
|
||||
case "Version":
|
||||
case "BZipVersion":
|
||||
bzip = new versionInfo(strValue);
|
||||
|
@ -274,46 +267,39 @@ namespace LSLEditor
|
|||
this.labelOurVersionString.Text = current.version.ToString();
|
||||
this.labelLatestVersionString.Text = web.version.ToString();
|
||||
|
||||
if (String.IsNullOrEmpty(web.uri) || (web.version.CompareTo(current.version) != 1))
|
||||
{
|
||||
if (String.IsNullOrEmpty(web.uri) || (web.version.CompareTo(current.version) != 1)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (strHelpHashMe == "")
|
||||
if (strHelpHashMe == "") {
|
||||
strHelpHashMe = strHelpHashWeb;
|
||||
}
|
||||
|
||||
if (strHelpHashMe == strHelpHashWeb)
|
||||
{
|
||||
if (strHelpHashMe == strHelpHashWeb) {
|
||||
this.labelHelpversionString.Text = "Up to date";
|
||||
this.strHelpUrl = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
this.labelHelpversionString.Text = "Out of date";
|
||||
}
|
||||
|
||||
if (current.hash == web.hash)
|
||||
{
|
||||
if (current.hash == web.hash) {
|
||||
this.strDownloadUrl = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
this.strDownloadUrl = web.uri;
|
||||
}
|
||||
|
||||
if (this.blnOnlyHelpFile)
|
||||
{
|
||||
if (this.blnOnlyHelpFile) {
|
||||
this.strDownloadUrl = null;
|
||||
this.labelLatestVersion.Visible = false;
|
||||
this.labelLatestVersionString.Visible = false;
|
||||
}
|
||||
|
||||
if (this.strHelpUrl != null || this.strDownloadUrl != null)
|
||||
{
|
||||
if (this.strHelpUrl != null || this.strDownloadUrl != null) {
|
||||
this.buttonUpdate.Enabled = true;
|
||||
|
||||
if (OnUpdateAvailable != null)
|
||||
if (OnUpdateAvailable != null) {
|
||||
OnUpdateAvailable(this, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -330,85 +316,85 @@ namespace LSLEditor
|
|||
|
||||
private void Download()
|
||||
{
|
||||
if (strHelpUrl != null)
|
||||
if (strHelpUrl != null) {
|
||||
DownloadHelpFile(); // starts also DownloadProgram when finished
|
||||
else
|
||||
} else {
|
||||
DownloadProgram();
|
||||
}
|
||||
}
|
||||
|
||||
private void DownloadHelpFile()
|
||||
{
|
||||
if (strHelpUrl == null)
|
||||
return;
|
||||
if (strHelpUrl != null) {
|
||||
Uri url = new Uri(strHelpUrl);
|
||||
|
||||
Uri url = new Uri(strHelpUrl);
|
||||
client = new WebClient();
|
||||
|
||||
client = new WebClient();
|
||||
if (this.strHelpReferer != null) {
|
||||
client.Headers.Add("Referer", strHelpReferer);
|
||||
}
|
||||
|
||||
if(this.strHelpReferer != null)
|
||||
client.Headers.Add("Referer", strHelpReferer);
|
||||
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadHelpFileCompleted);
|
||||
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
|
||||
|
||||
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadHelpFileCompleted);
|
||||
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
|
||||
string strCurrentFile = Assembly.GetExecutingAssembly().Location;
|
||||
string strDirectory = Path.GetDirectoryName(strCurrentFile);
|
||||
string strNewFile = Path.Combine(strDirectory, Properties.Settings.Default.HelpOfflineFile);
|
||||
|
||||
string strCurrentFile = Assembly.GetExecutingAssembly().Location;
|
||||
string strDirectory = Path.GetDirectoryName(strCurrentFile);
|
||||
string strNewFile = Path.Combine(strDirectory, Properties.Settings.Default.HelpOfflineFile);
|
||||
if (File.Exists(strNewFile)) {
|
||||
File.Delete(strNewFile);
|
||||
}
|
||||
|
||||
if (File.Exists(strNewFile))
|
||||
File.Delete(strNewFile);
|
||||
|
||||
client.DownloadFileAsync(url, strNewFile);
|
||||
client.DownloadFileAsync(url, strNewFile);
|
||||
}
|
||||
}
|
||||
|
||||
void client_DownloadHelpFileCompleted(object sender, AsyncCompletedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (e.Error != null)
|
||||
try {
|
||||
if (e.Error != null) {
|
||||
throw e.Error;
|
||||
}
|
||||
|
||||
string strCurrentFile = Assembly.GetExecutingAssembly().Location;
|
||||
string strDirectory = Path.GetDirectoryName(strCurrentFile);
|
||||
string strNewFile = Path.Combine(strDirectory, Properties.Settings.Default.HelpOfflineFile);
|
||||
|
||||
string strComputedHash = Decompressor.MD5Verify.ComputeHash(strNewFile);
|
||||
if (strComputedHash != strHelpHashWeb)
|
||||
{
|
||||
if (strComputedHash != strHelpHashWeb) {
|
||||
this.buttonUpdate.Enabled = true;
|
||||
throw new Exception("MD5 Hash of HelpFile not correct, try downloading again!");
|
||||
}
|
||||
if (this.strDownloadUrl != null)
|
||||
if (this.strDownloadUrl != null) {
|
||||
DownloadProgram();
|
||||
else
|
||||
} else {
|
||||
this.Close();
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
}
|
||||
} catch (Exception exception) {
|
||||
MessageBox.Show(exception.Message, "Oops...", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void DownloadProgram()
|
||||
{
|
||||
if (strDownloadUrl == null)
|
||||
return;
|
||||
if (strDownloadUrl != null) {
|
||||
Uri url = new Uri(strDownloadUrl);
|
||||
|
||||
Uri url = new Uri(strDownloadUrl);
|
||||
client = new WebClient();
|
||||
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
|
||||
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
|
||||
|
||||
client = new WebClient();
|
||||
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
|
||||
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
|
||||
string strCurrentFile = Assembly.GetExecutingAssembly().Location;
|
||||
string strDirectory = Path.GetDirectoryName(strCurrentFile);
|
||||
string strNewFileName = Path.GetFileName(strDownloadUrl);
|
||||
string strNewFile = Path.Combine(strDirectory, strNewFileName);
|
||||
|
||||
string strCurrentFile = Assembly.GetExecutingAssembly().Location;
|
||||
string strDirectory = Path.GetDirectoryName(strCurrentFile);
|
||||
string strNewFileName = Path.GetFileName(strDownloadUrl);
|
||||
string strNewFile = Path.Combine(strDirectory, strNewFileName);
|
||||
if (File.Exists(strNewFile)) {
|
||||
File.Delete(strNewFile);
|
||||
}
|
||||
|
||||
if (File.Exists(strNewFile))
|
||||
File.Delete(strNewFile);
|
||||
|
||||
client.DownloadFileAsync(url, strNewFile, strNewFileName);
|
||||
client.DownloadFileAsync(url, strNewFile, strNewFileName);
|
||||
}
|
||||
}
|
||||
|
||||
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
|
||||
|
@ -418,10 +404,10 @@ namespace LSLEditor
|
|||
|
||||
void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (e.Error != null)
|
||||
try {
|
||||
if (e.Error != null) {
|
||||
throw e.Error;
|
||||
}
|
||||
|
||||
string strNewFileName = e.UserState.ToString();
|
||||
|
||||
|
@ -433,8 +419,7 @@ namespace LSLEditor
|
|||
string strOldFile = Path.Combine(strDirectory, "_LSLEditor.exe");
|
||||
|
||||
string strExtension = Path.GetExtension(strNewFileName);
|
||||
switch (strExtension)
|
||||
{
|
||||
switch (strExtension) {
|
||||
case ".bz2":
|
||||
Decompressor.BZip2.Decompress(File.OpenRead(strZipFile), File.Create(strNewFile));
|
||||
break;
|
||||
|
@ -449,16 +434,16 @@ namespace LSLEditor
|
|||
break;
|
||||
}
|
||||
string strComputedHash = Decompressor.MD5Verify.ComputeHash(strNewFile);
|
||||
if (strComputedHash == strHashWeb)
|
||||
{
|
||||
if (strComputedHash == strHashWeb) {
|
||||
if (File.Exists(strOldFile))
|
||||
File.Delete(strOldFile);
|
||||
|
||||
File.Move(strCurrentFile, strOldFile);
|
||||
File.Move(strNewFile, strCurrentFile);
|
||||
|
||||
if (File.Exists(strZipFile))
|
||||
if (File.Exists(strZipFile)) {
|
||||
File.Delete(strZipFile);
|
||||
}
|
||||
|
||||
// save all there is pending (if any)
|
||||
Properties.Settings.Default.Save();
|
||||
|
@ -466,32 +451,28 @@ namespace LSLEditor
|
|||
System.Diagnostics.Process.Start(strCurrentFile);
|
||||
|
||||
Environment.Exit(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
this.buttonUpdate.Enabled = true;
|
||||
throw new Exception("MD5 Hash not correct, try downloading again!");
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
} catch (Exception exception) {
|
||||
MessageBox.Show(exception.Message, "Oops...", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateApplicationForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if (client != null)
|
||||
{
|
||||
if (client.IsBusy)
|
||||
if (client != null) {
|
||||
if (client.IsBusy) {
|
||||
client.CancelAsync();
|
||||
}
|
||||
client.Dispose();
|
||||
}
|
||||
client = null;
|
||||
if (manifest != null)
|
||||
{
|
||||
if (manifest.IsBusy)
|
||||
if (manifest != null) {
|
||||
if (manifest.IsBusy) {
|
||||
manifest.CancelAsync();
|
||||
}
|
||||
manifest.Dispose();
|
||||
}
|
||||
manifest = null;
|
||||
|
@ -502,8 +483,9 @@ namespace LSLEditor
|
|||
string strCurrentFile = Assembly.GetExecutingAssembly().Location;
|
||||
string strDirectory = Path.GetDirectoryName(strCurrentFile);
|
||||
string strOldFile = Path.Combine(strDirectory, "_LSLEditor.exe");
|
||||
if (File.Exists(strOldFile))
|
||||
if (File.Exists(strOldFile)) {
|
||||
File.Delete(strOldFile);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ namespace LSLEditor
|
|||
private string OwnerName;
|
||||
private SecondLife.key id;
|
||||
|
||||
public llDialogForm(SecondLifeHost host, SecondLife.String strObjectName, SecondLife.key id, SecondLife.String strOwner, SecondLife.String strMessage, SecondLife.list buttons, SecondLife.integer intChannel)
|
||||
public llDialogForm(SecondLifeHost host, SecondLife.String strObjectName, SecondLife.key id, SecondLife.String strOwner, SecondLife.String strMessage, SecondLife.list buttons, SecondLife.integer intChannel)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
|
@ -68,21 +68,19 @@ namespace LSLEditor
|
|||
this.ObjectName = strObjectName;
|
||||
this.id = id;
|
||||
|
||||
for (int intI = 1; intI <= 12; intI++)
|
||||
{
|
||||
for (int intI = 1; intI <= 12; intI++) {
|
||||
Button button = this.Controls["Button" + intI] as Button;
|
||||
button.Visible = false;
|
||||
}
|
||||
|
||||
this.label1.Text = strOwner + "'s '" + strObjectName +"'";
|
||||
this.label2.Text = strMessage.ToString().Replace("&","&&");
|
||||
this.label1.Text = strOwner + "'s '" + strObjectName + "'";
|
||||
this.label2.Text = strMessage.ToString().Replace("&", "&&");
|
||||
|
||||
for (int intI = 1; intI <= buttons.Count; intI++)
|
||||
{
|
||||
for (int intI = 1; intI <= buttons.Count; intI++) {
|
||||
Button button = this.Controls["Button" + intI] as Button;
|
||||
if (button == null)
|
||||
continue;
|
||||
button.Text = buttons[intI - 1].ToString().Replace("&","&&");
|
||||
button.Text = buttons[intI - 1].ToString().Replace("&", "&&");
|
||||
button.Visible = true;
|
||||
button.Click += new EventHandler(button_Click);
|
||||
}
|
||||
|
@ -91,10 +89,10 @@ namespace LSLEditor
|
|||
void button_Click(object sender, EventArgs e)
|
||||
{
|
||||
Button button = sender as Button;
|
||||
if (button == null)
|
||||
return;
|
||||
host.Chat(this,this.Channel, this.OwnerName, this.id, button.Text.Replace("&&","&"), CommunicationType.Say);
|
||||
this.Close();
|
||||
if (button != null) {
|
||||
host.Chat(this, this.Channel, this.OwnerName, this.id, button.Text.Replace("&&", "&"), CommunicationType.Say);
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void button13_Click(object sender, EventArgs e)
|
||||
|
|
|
@ -12,40 +12,39 @@ using System.Windows.Forms;
|
|||
|
||||
namespace LSLEditor
|
||||
{
|
||||
public partial class llTextBoxForm : Form
|
||||
{
|
||||
private SecondLifeHost host;
|
||||
private int Channel;
|
||||
private string ObjectName;
|
||||
private string OwnerName;
|
||||
private SecondLife.key id;
|
||||
public partial class llTextBoxForm : Form
|
||||
{
|
||||
private SecondLifeHost host;
|
||||
private int Channel;
|
||||
private string ObjectName;
|
||||
private string OwnerName;
|
||||
private SecondLife.key id;
|
||||
|
||||
public llTextBoxForm(SecondLifeHost host, SecondLife.String strObjectName, SecondLife.key id, SecondLife.String strOwner, SecondLife.String strMessage, SecondLife.integer intChannel)
|
||||
{
|
||||
InitializeComponent();
|
||||
public llTextBoxForm(SecondLifeHost host, SecondLife.String strObjectName, SecondLife.key id, SecondLife.String strOwner, SecondLife.String strMessage, SecondLife.integer intChannel)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.host = host;
|
||||
this.Channel = intChannel;
|
||||
this.OwnerName = strOwner;
|
||||
this.ObjectName = strObjectName;
|
||||
this.id = id;
|
||||
this.host = host;
|
||||
this.Channel = intChannel;
|
||||
this.OwnerName = strOwner;
|
||||
this.ObjectName = strObjectName;
|
||||
this.id = id;
|
||||
|
||||
this.label1.Text = strMessage.ToString().Replace("&", "&&");
|
||||
}
|
||||
this.label1.Text = strMessage.ToString().Replace("&", "&&");
|
||||
}
|
||||
|
||||
private void buttonIgnore_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void buttonOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
Button button = sender as Button;
|
||||
if (button == null)
|
||||
return;
|
||||
|
||||
host.Chat(this,this.Channel, this.OwnerName, this.id, textBox.Text.Replace("&&","&"), CommunicationType.Say);
|
||||
private void buttonIgnore_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
Button button = sender as Button;
|
||||
if (button != null) {
|
||||
host.Chat(this, this.Channel, this.OwnerName, this.id, textBox.Text.Replace("&&", "&"), CommunicationType.Say);
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue