// $Id$\r
//\r
using System;\r
+using System.Collections;\r
using System.Collections.Generic;\r
using System.Linq;\r
using System.Text;\r
public class RRichTextBox : RichTextBox\r
{\r
\r
- private const short WM_PAINT = 0x00f;\r
private bool _Paint = true;\r
private bool monoRuntime;\r
+\r
+ // Tool tip related private members\r
private System.Threading.Timer ttTimer;\r
private ToolTip ttKeyWords = new ToolTip();\r
\r
+ // Undo/Redo members\r
+ private ArrayList mUndoList = new ArrayList();\r
+ private Stack mRedoStack = new Stack();\r
+ private bool mIsUndo = false;\r
+ private UndoRedoInfo mLastInfo = new UndoRedoInfo("", new Win32.POINT(), 0);\r
+ private int mMaxUndoRedoSteps = 50;\r
+\r
public RRichTextBox()\r
: base()\r
{\r
- SetStyle(ControlStyles.SupportsTransparentBackColor, true);\r
- \r
// Are we running mono?\r
if (null == Type.GetType("Mono.Runtime"))\r
{\r
\r
protected override void WndProc(ref System.Windows.Forms.Message m)\r
{\r
- // sometimes we want to eat the paint message so we don't have to see all the \r
- // flicker from when we select the text to change the color.\r
- if (m.Msg == WM_PAINT)\r
+ switch (m.Msg)\r
{\r
- if (_Paint)\r
- base.WndProc(ref m);\r
- else\r
- m.Result = IntPtr.Zero;\r
- }\r
- else\r
- {\r
- base.WndProc(ref m);\r
- }\r
- }\r
+ case Win32.WM_PAINT:\r
+ if (!_Paint)\r
+ {\r
+ m.Result = IntPtr.Zero;\r
+ return;\r
+ }\r
+ goto default;\r
\r
- protected override void OnPaint(PaintEventArgs e)\r
- {\r
- if (_Paint)\r
- {\r
- base.OnPaint(e);\r
+ case Win32.WM_KEYDOWN:\r
+ switch ((Keys)(int)m.WParam)\r
+ {\r
+ case Keys.Z:\r
+ Undo();\r
+ return;\r
+\r
+ case Keys.Y:\r
+ Redo();\r
+ return;\r
+ }\r
+ goto default;\r
+\r
+ default:\r
+ base.WndProc(ref m);\r
+ break;\r
}\r
}\r
\r
{\r
_Paint = false;\r
if (!monoRuntime)\r
+ {\r
Win32.LockWindowUpdate(Handle);\r
+ }\r
}\r
\r
public virtual void EndUpdate()\r
\r
protected override void OnTextChanged(EventArgs e)\r
{\r
- if (monoRuntime)\r
- {\r
- // base.OnTextChanged(e);\r
- // return;\r
- }\r
-\r
if (!_Paint) return;\r
\r
BeginUpdate();\r
+\r
Win32.POINT scrollStatus = GetScrollPos();\r
int selectionStart = SelectionStart;\r
int selectionLength = SelectionLength;\r
\r
+ if (!mIsUndo)\r
+ {\r
+ mRedoStack.Clear();\r
+ mUndoList.Insert(0, new UndoRedoInfo(mLastInfo.Text,scrollStatus, selectionStart));\r
+ this.LimitUndo();\r
+ mLastInfo = new UndoRedoInfo(Text, scrollStatus, selectionStart);\r
+ }\r
+\r
+ base.OnTextChanged(e);\r
+\r
StringTokenizer tokenizer = new StringTokenizer(Text.Replace("\t", " "));\r
Token token;\r
StringBuilder body = new StringBuilder();\r
// Construct final rtf\r
StringBuilder rtf = new StringBuilder();\r
rtf.AppendLine(@"{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Courier New;}}");\r
- //rtf.Append(@"\viewkind4\uc1\pard\lang1033\f0\fs20 ");\r
- //rtf.AppendLine(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\f0\fnil\fcharset0 Courier New;}}");\r
rtf.AppendLine(colorTable.ToString());\r
rtf.Append(@"\pard\f0\fs18 ");\r
rtf.Append(body);\r
public static extern int LockWindowUpdate(HWND hwnd);\r
}\r
#endregion\r
+\r
+ #region Undo/Redo Code\r
+ public new bool CanUndo\r
+ {\r
+ get\r
+ {\r
+ return mUndoList.Count > 0;\r
+ }\r
+ }\r
+ public new bool CanRedo\r
+ {\r
+ get\r
+ {\r
+ return mRedoStack.Count > 0;\r
+ }\r
+ }\r
+\r
+ private void LimitUndo()\r
+ {\r
+ while (mUndoList.Count > mMaxUndoRedoSteps)\r
+ {\r
+ mUndoList.RemoveAt(mMaxUndoRedoSteps);\r
+ }\r
+ }\r
+\r
+ public void ClearUndoRedo()\r
+ {\r
+ ClearUndo();\r
+ mRedoStack.Clear();\r
+ mUndoList.Clear();\r
+ mIsUndo = false;\r
+ mLastInfo = new UndoRedoInfo("", new Win32.POINT(), 0);\r
+ }\r
+\r
+ public new void Undo()\r
+ {\r
+ if (!CanUndo)\r
+ return;\r
+ mIsUndo = true;\r
+ mRedoStack.Push(new UndoRedoInfo(Text, GetScrollPos(), SelectionStart));\r
+ UndoRedoInfo info = (UndoRedoInfo)mUndoList[0];\r
+ mUndoList.RemoveAt(0);\r
+ BeginUpdate();\r
+ Text = info.Text;\r
+ SelectionStart = info.CursorLocation;\r
+ SetScrollPos(info.ScrollPos);\r
+ EndUpdate();\r
+ OnTextChanged(new EventArgs());\r
+ mLastInfo = info;\r
+ mIsUndo = false;\r
+ }\r
+\r
+ public new void Redo()\r
+ {\r
+ if (!CanRedo)\r
+ return;\r
+ mIsUndo = true;\r
+ mUndoList.Insert(0, new UndoRedoInfo(Text, GetScrollPos(), SelectionStart));\r
+ LimitUndo();\r
+ UndoRedoInfo info = (UndoRedoInfo)mRedoStack.Pop();\r
+ BeginUpdate();\r
+ Text = info.Text;\r
+ SelectionStart = info.CursorLocation;\r
+ SetScrollPos(info.ScrollPos);\r
+ EndUpdate();\r
+ OnTextChanged(new EventArgs());\r
+ mIsUndo = false;\r
+ EndUpdate();\r
+ }\r
+\r
+ private class UndoRedoInfo\r
+ {\r
+ public UndoRedoInfo(string text, Win32.POINT scrollPos, int cursorLoc)\r
+ {\r
+ Text = text;\r
+ ScrollPos = scrollPos;\r
+ CursorLocation = cursorLoc;\r
+ }\r
+ public readonly Win32.POINT ScrollPos;\r
+ public readonly int CursorLocation;\r
+ public readonly string Text;\r
+ }\r
+ #endregion\r
+\r
}\r
}
\ No newline at end of file
--- /dev/null
+// \r
+// Radegast Metaverse Client\r
+// Copyright (c) 2009, Radegast Development Team\r
+// All rights reserved.\r
+// \r
+// Redistribution and use in source and binary forms, with or without\r
+// modification, are permitted provided that the following conditions are met:\r
+// \r
+// * Redistributions of source code must retain the above copyright notice,\r
+// this list of conditions and the following disclaimer.\r
+// * Redistributions in binary form must reproduce the above copyright\r
+// notice, this list of conditions and the following disclaimer in the\r
+// documentation and/or other materials provided with the distribution.\r
+// * Neither the name of the application "Radegast", nor the names of its\r
+// contributors may be used to endorse or promote products derived from\r
+// this software without specific prior written permission.\r
+// \r
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\r
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\r
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+//\r
+// $Id$\r
+//\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Windows.Forms;\r
+using System.Windows.Forms.Design;\r
+using System.Drawing;\r
+using System.ComponentModel;\r
+\r
+namespace Radegast\r
+{\r
+ [ToolStripItemDesignerAvailability(\r
+ ToolStripItemDesignerAvailability.ToolStrip)]\r
+ public partial class ToolStripCheckBox\r
+ : ToolStripControlHost\r
+ {\r
+ public CheckBox CheckBoxControl\r
+ {\r
+ get\r
+ {\r
+ return Control as CheckBox;\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Is check box ticked\r
+ /// </summary>\r
+ [Category("Appearance")]\r
+ public bool Checked\r
+ {\r
+ get\r
+ {\r
+ return CheckBoxControl.Checked;\r
+ }\r
+ set\r
+ {\r
+ CheckBoxControl.Checked = value;\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Checked state\r
+ /// </summary>\r
+ [Category("Appearance")]\r
+ public CheckState CheckState\r
+ {\r
+ get\r
+ {\r
+ return CheckBoxControl.CheckState;\r
+ }\r
+ set\r
+ {\r
+ CheckBoxControl.CheckState = value;\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Label text\r
+ /// </summary>\r
+ [Category("Appearance")]\r
+ public override string Text\r
+ {\r
+ get\r
+ {\r
+ return CheckBoxControl.Text;\r
+ }\r
+ set\r
+ {\r
+ CheckBoxControl.Text = value;\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Occurs when check property is changed\r
+ /// </summary>\r
+ [Category("Misc")]\r
+ public event EventHandler CheckedChanged;\r
+\r
+ /// <summary>\r
+ /// Occurs when check state of the control changes\r
+ /// </summary>\r
+ [Category("Misc")]\r
+ public event EventHandler CheckStateChanged;\r
+\r
+ public ToolStripCheckBox()\r
+ : base(new CheckBox())\r
+ {\r
+ CheckBoxControl.MouseHover += new EventHandler(chk_MouseHover);\r
+ }\r
+\r
+ void chk_MouseHover(object sender, EventArgs e)\r
+ {\r
+ this.OnMouseHover(e);\r
+ }\r
+ \r
+ protected override void OnSubscribeControlEvents(Control c)\r
+ {\r
+ base.OnSubscribeControlEvents(c);\r
+ ((CheckBox)c).CheckedChanged += new EventHandler(ToolStripCheckBox_CheckedChanged);\r
+ ((CheckBox)c).CheckStateChanged += new EventHandler(ToolStripCheckBox_CheckStateChanged);\r
+ }\r
+\r
+ protected override void OnUnsubscribeControlEvents(Control c)\r
+ {\r
+ base.OnUnsubscribeControlEvents(c);\r
+ ((CheckBox)c).CheckedChanged -= new EventHandler(ToolStripCheckBox_CheckedChanged);\r
+ ((CheckBox)c).CheckStateChanged -= new EventHandler(ToolStripCheckBox_CheckStateChanged);\r
+ }\r
+\r
+ void ToolStripCheckBox_CheckedChanged(object sender, EventArgs e)\r
+ {\r
+ if (CheckedChanged != null)\r
+ {\r
+ CheckedChanged(this, e);\r
+ }\r
+ }\r
+\r
+ void ToolStripCheckBox_CheckStateChanged(object sender, EventArgs e)\r
+ {\r
+ if (CheckStateChanged != null)\r
+ {\r
+ CheckStateChanged(this, e);\r
+ }\r
+ }\r
+ }\r
+}
\ No newline at end of file
this.components = new System.ComponentModel.Container();\r
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ScriptEditor));\r
this.ttKeyWords = new System.Windows.Forms.ToolTip(this.components);\r
- this.strpMenu = new System.Windows.Forms.ToolStrip();\r
+ this.tsMenu = new System.Windows.Forms.ToolStrip();\r
this.tbtbFile = new System.Windows.Forms.ToolStripDropDownButton();\r
this.tbtbLoadFromDisk = new System.Windows.Forms.ToolStripMenuItem();\r
this.tbtbSave = new System.Windows.Forms.ToolStripMenuItem();\r
this.tbtbSaveToDiskAs = new System.Windows.Forms.ToolStripMenuItem();\r
this.tSeparator1 = new System.Windows.Forms.ToolStripSeparator();\r
this.tbtnExit = new System.Windows.Forms.ToolStripMenuItem();\r
+ this.tbtnEdit = new System.Windows.Forms.ToolStripDropDownButton();\r
+ this.undoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+ this.redoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+ this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();\r
+ this.cutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+ this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+ this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+ this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+ this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+ this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();\r
+ this.findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.tbtnAttach = new System.Windows.Forms.ToolStripButton();\r
- this.strpStatus = new System.Windows.Forms.ToolStrip();\r
+ this.tsStatus = new System.Windows.Forms.ToolStrip();\r
this.lblScripStatus = new System.Windows.Forms.ToolStripLabel();\r
this.lblCol = new System.Windows.Forms.ToolStripLabel();\r
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();\r
this.lblLine = new System.Windows.Forms.ToolStripLabel();\r
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();\r
+ this.tsFindReplace = new System.Windows.Forms.ToolStrip();\r
+ this.tfindClose = new System.Windows.Forms.ToolStripButton();\r
+ this.tfindFindText = new System.Windows.Forms.ToolStripTextBox();\r
+ this.tfindDoFind = new System.Windows.Forms.ToolStripButton();\r
+ this.tfindMatchCase = new Radegast.ToolStripCheckBox();\r
+ this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel();\r
+ this.tfindReplaceText = new System.Windows.Forms.ToolStripTextBox();\r
+ this.tfindFindNextReplace = new System.Windows.Forms.ToolStripButton();\r
+ this.tfindReplace = new System.Windows.Forms.ToolStripButton();\r
+ this.tfindReplaceAll = new System.Windows.Forms.ToolStripButton();\r
this.rtbCode = new Radegast.RRichTextBox();\r
- this.strpMenu.SuspendLayout();\r
- this.strpStatus.SuspendLayout();\r
+ this.toolStripButton1 = new System.Windows.Forms.ToolStripSeparator();\r
+ this.tsMenu.SuspendLayout();\r
+ this.tsStatus.SuspendLayout();\r
+ this.tsFindReplace.SuspendLayout();\r
this.SuspendLayout();\r
// \r
- // strpMenu\r
+ // tsMenu\r
// \r
- this.strpMenu.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;\r
- this.strpMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
+ this.tsMenu.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;\r
+ this.tsMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
this.tbtbFile,\r
+ this.tbtnEdit,\r
this.tbtnAttach});\r
- this.strpMenu.Location = new System.Drawing.Point(0, 0);\r
- this.strpMenu.Name = "strpMenu";\r
- this.strpMenu.Size = new System.Drawing.Size(661, 25);\r
- this.strpMenu.TabIndex = 2;\r
+ this.tsMenu.Location = new System.Drawing.Point(0, 0);\r
+ this.tsMenu.Name = "tsMenu";\r
+ this.tsMenu.Size = new System.Drawing.Size(661, 25);\r
+ this.tsMenu.TabIndex = 2;\r
// \r
// tbtbFile\r
// \r
this.tbtnExit.Visible = false;\r
this.tbtnExit.Click += new System.EventHandler(this.tbtnExit_Click);\r
// \r
+ // tbtnEdit\r
+ // \r
+ this.tbtnEdit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
+ this.tbtnEdit.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
+ this.undoToolStripMenuItem,\r
+ this.redoToolStripMenuItem,\r
+ this.toolStripMenuItem1,\r
+ this.cutToolStripMenuItem,\r
+ this.copyToolStripMenuItem,\r
+ this.pasteToolStripMenuItem,\r
+ this.deleteToolStripMenuItem,\r
+ this.selectAllToolStripMenuItem,\r
+ this.toolStripMenuItem2,\r
+ this.findToolStripMenuItem});\r
+ this.tbtnEdit.Image = ((System.Drawing.Image)(resources.GetObject("tbtnEdit.Image")));\r
+ this.tbtnEdit.ImageTransparentColor = System.Drawing.Color.Magenta;\r
+ this.tbtnEdit.Name = "tbtnEdit";\r
+ this.tbtnEdit.Size = new System.Drawing.Size(40, 22);\r
+ this.tbtnEdit.Text = "Edit";\r
+ // \r
+ // undoToolStripMenuItem\r
+ // \r
+ this.undoToolStripMenuItem.Name = "undoToolStripMenuItem";\r
+ this.undoToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+Z";\r
+ this.undoToolStripMenuItem.Size = new System.Drawing.Size(164, 22);\r
+ this.undoToolStripMenuItem.Text = "Undo";\r
+ this.undoToolStripMenuItem.Click += new System.EventHandler(this.undoToolStripMenuItem_Click);\r
+ // \r
+ // redoToolStripMenuItem\r
+ // \r
+ this.redoToolStripMenuItem.Name = "redoToolStripMenuItem";\r
+ this.redoToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+Y";\r
+ this.redoToolStripMenuItem.Size = new System.Drawing.Size(164, 22);\r
+ this.redoToolStripMenuItem.Text = "Redo";\r
+ this.redoToolStripMenuItem.Click += new System.EventHandler(this.redoToolStripMenuItem_Click);\r
+ // \r
+ // toolStripMenuItem1\r
+ // \r
+ this.toolStripMenuItem1.Name = "toolStripMenuItem1";\r
+ this.toolStripMenuItem1.Size = new System.Drawing.Size(161, 6);\r
+ // \r
+ // cutToolStripMenuItem\r
+ // \r
+ this.cutToolStripMenuItem.Name = "cutToolStripMenuItem";\r
+ this.cutToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+X";\r
+ this.cutToolStripMenuItem.Size = new System.Drawing.Size(164, 22);\r
+ this.cutToolStripMenuItem.Text = "Cut";\r
+ this.cutToolStripMenuItem.Click += new System.EventHandler(this.cutToolStripMenuItem_Click);\r
+ // \r
+ // copyToolStripMenuItem\r
+ // \r
+ this.copyToolStripMenuItem.Name = "copyToolStripMenuItem";\r
+ this.copyToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+C";\r
+ this.copyToolStripMenuItem.Size = new System.Drawing.Size(164, 22);\r
+ this.copyToolStripMenuItem.Text = "Copy";\r
+ this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click);\r
+ // \r
+ // pasteToolStripMenuItem\r
+ // \r
+ this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";\r
+ this.pasteToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+V";\r
+ this.pasteToolStripMenuItem.Size = new System.Drawing.Size(164, 22);\r
+ this.pasteToolStripMenuItem.Text = "Paste";\r
+ this.pasteToolStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click);\r
+ // \r
+ // deleteToolStripMenuItem\r
+ // \r
+ this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem";\r
+ this.deleteToolStripMenuItem.ShortcutKeyDisplayString = "Del";\r
+ this.deleteToolStripMenuItem.Size = new System.Drawing.Size(164, 22);\r
+ this.deleteToolStripMenuItem.Text = "Delete";\r
+ this.deleteToolStripMenuItem.Click += new System.EventHandler(this.deleteToolStripMenuItem_Click);\r
+ // \r
+ // selectAllToolStripMenuItem\r
+ // \r
+ this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem";\r
+ this.selectAllToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+A";\r
+ this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(164, 22);\r
+ this.selectAllToolStripMenuItem.Text = "Select All";\r
+ this.selectAllToolStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click);\r
+ // \r
+ // toolStripMenuItem2\r
+ // \r
+ this.toolStripMenuItem2.Name = "toolStripMenuItem2";\r
+ this.toolStripMenuItem2.Size = new System.Drawing.Size(161, 6);\r
+ // \r
+ // findToolStripMenuItem\r
+ // \r
+ this.findToolStripMenuItem.Name = "findToolStripMenuItem";\r
+ this.findToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+F";\r
+ this.findToolStripMenuItem.Size = new System.Drawing.Size(164, 22);\r
+ this.findToolStripMenuItem.Text = "Find";\r
+ this.findToolStripMenuItem.Click += new System.EventHandler(this.findToolStripMenuItem_Click);\r
+ // \r
// tbtnAttach\r
// \r
this.tbtnAttach.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
this.tbtnAttach.Text = "Detach";\r
this.tbtnAttach.Click += new System.EventHandler(this.tbtnAttach_Click);\r
// \r
- // strpStatus\r
+ // tsStatus\r
// \r
- this.strpStatus.Dock = System.Windows.Forms.DockStyle.Bottom;\r
- this.strpStatus.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;\r
- this.strpStatus.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
+ this.tsStatus.Dock = System.Windows.Forms.DockStyle.Bottom;\r
+ this.tsStatus.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;\r
+ this.tsStatus.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
this.lblScripStatus,\r
this.lblCol,\r
this.toolStripSeparator1,\r
this.lblLine,\r
this.toolStripSeparator2});\r
- this.strpStatus.Location = new System.Drawing.Point(0, 420);\r
- this.strpStatus.Name = "strpStatus";\r
- this.strpStatus.Size = new System.Drawing.Size(661, 25);\r
- this.strpStatus.TabIndex = 3;\r
+ this.tsStatus.Location = new System.Drawing.Point(0, 420);\r
+ this.tsStatus.Name = "tsStatus";\r
+ this.tsStatus.Size = new System.Drawing.Size(661, 25);\r
+ this.tsStatus.TabIndex = 3;\r
// \r
// lblScripStatus\r
// \r
this.toolStripSeparator2.Name = "toolStripSeparator2";\r
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);\r
// \r
+ // tsFindReplace\r
+ // \r
+ this.tsFindReplace.Dock = System.Windows.Forms.DockStyle.Bottom;\r
+ this.tsFindReplace.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;\r
+ this.tsFindReplace.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
+ this.tfindClose,\r
+ this.tfindFindText,\r
+ this.tfindDoFind,\r
+ this.tfindMatchCase,\r
+ this.toolStripButton1,\r
+ this.toolStripLabel1,\r
+ this.tfindReplaceText,\r
+ this.tfindFindNextReplace,\r
+ this.tfindReplace,\r
+ this.tfindReplaceAll});\r
+ this.tsFindReplace.Location = new System.Drawing.Point(0, 395);\r
+ this.tsFindReplace.Name = "tsFindReplace";\r
+ this.tsFindReplace.Size = new System.Drawing.Size(661, 25);\r
+ this.tsFindReplace.TabIndex = 4;\r
+ this.tsFindReplace.Text = "toolStrip1";\r
+ this.tsFindReplace.Visible = false;\r
+ // \r
+ // tfindClose\r
+ // \r
+ this.tfindClose.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;\r
+ this.tfindClose.Image = global::Radegast.Properties.Resources.del_trans;\r
+ this.tfindClose.ImageTransparentColor = System.Drawing.Color.Magenta;\r
+ this.tfindClose.Name = "tfindClose";\r
+ this.tfindClose.Size = new System.Drawing.Size(23, 22);\r
+ this.tfindClose.Text = "Close";\r
+ this.tfindClose.Click += new System.EventHandler(this.tfindClose_Click);\r
+ // \r
+ // tfindFindText\r
+ // \r
+ this.tfindFindText.Name = "tfindFindText";\r
+ this.tfindFindText.Size = new System.Drawing.Size(120, 25);\r
+ this.tfindFindText.Leave += new System.EventHandler(this.tfindFindText_Leave);\r
+ this.tfindFindText.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tfindFindText_KeyDown);\r
+ this.tfindFindText.KeyUp += new System.Windows.Forms.KeyEventHandler(this.tfindFindText_KeyUp);\r
+ this.tfindFindText.TextChanged += new System.EventHandler(this.tfindFindText_TextChanged);\r
+ // \r
+ // tfindDoFind\r
+ // \r
+ this.tfindDoFind.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
+ this.tfindDoFind.Image = ((System.Drawing.Image)(resources.GetObject("tfindDoFind.Image")));\r
+ this.tfindDoFind.ImageTransparentColor = System.Drawing.Color.Magenta;\r
+ this.tfindDoFind.Name = "tfindDoFind";\r
+ this.tfindDoFind.Size = new System.Drawing.Size(59, 22);\r
+ this.tfindDoFind.Text = "Find next";\r
+ this.tfindDoFind.Click += new System.EventHandler(this.tfindDoFind_Click);\r
+ // \r
+ // tfindMatchCase\r
+ // \r
+ this.tfindMatchCase.BackColor = System.Drawing.Color.Transparent;\r
+ this.tfindMatchCase.Checked = false;\r
+ this.tfindMatchCase.CheckState = System.Windows.Forms.CheckState.Unchecked;\r
+ this.tfindMatchCase.Name = "tfindMatchCase";\r
+ this.tfindMatchCase.Size = new System.Drawing.Size(86, 22);\r
+ this.tfindMatchCase.Text = "Match case";\r
+ // \r
+ // toolStripLabel1\r
+ // \r
+ this.toolStripLabel1.Name = "toolStripLabel1";\r
+ this.toolStripLabel1.Size = new System.Drawing.Size(48, 22);\r
+ this.toolStripLabel1.Text = "Replace";\r
+ // \r
+ // tfindReplaceText\r
+ // \r
+ this.tfindReplaceText.Name = "tfindReplaceText";\r
+ this.tfindReplaceText.Size = new System.Drawing.Size(100, 25);\r
+ // \r
+ // tfindFindNextReplace\r
+ // \r
+ this.tfindFindNextReplace.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
+ this.tfindFindNextReplace.Image = ((System.Drawing.Image)(resources.GetObject("tfindFindNextReplace.Image")));\r
+ this.tfindFindNextReplace.ImageTransparentColor = System.Drawing.Color.Magenta;\r
+ this.tfindFindNextReplace.Name = "tfindFindNextReplace";\r
+ this.tfindFindNextReplace.Size = new System.Drawing.Size(59, 22);\r
+ this.tfindFindNextReplace.Text = "Find next";\r
+ this.tfindFindNextReplace.Click += new System.EventHandler(this.tfindFindNextReplace_Click);\r
+ // \r
+ // tfindReplace\r
+ // \r
+ this.tfindReplace.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
+ this.tfindReplace.Image = ((System.Drawing.Image)(resources.GetObject("tfindReplace.Image")));\r
+ this.tfindReplace.ImageTransparentColor = System.Drawing.Color.Magenta;\r
+ this.tfindReplace.Name = "tfindReplace";\r
+ this.tfindReplace.Size = new System.Drawing.Size(52, 22);\r
+ this.tfindReplace.Text = "Replace";\r
+ this.tfindReplace.Click += new System.EventHandler(this.tfindReplace_Click);\r
+ // \r
+ // tfindReplaceAll\r
+ // \r
+ this.tfindReplaceAll.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;\r
+ this.tfindReplaceAll.Image = ((System.Drawing.Image)(resources.GetObject("tfindReplaceAll.Image")));\r
+ this.tfindReplaceAll.ImageTransparentColor = System.Drawing.Color.Magenta;\r
+ this.tfindReplaceAll.Name = "tfindReplaceAll";\r
+ this.tfindReplaceAll.Size = new System.Drawing.Size(67, 22);\r
+ this.tfindReplaceAll.Text = "Replace all";\r
+ this.tfindReplaceAll.Click += new System.EventHandler(this.tfindReplaceAll_Click);\r
+ // \r
// rtbCode\r
// \r
this.rtbCode.BackColor = System.Drawing.Color.WhiteSmoke;\r
this.rtbCode.HideSelection = false;\r
this.rtbCode.Location = new System.Drawing.Point(0, 25);\r
this.rtbCode.Name = "rtbCode";\r
- this.rtbCode.Size = new System.Drawing.Size(661, 395);\r
+ this.rtbCode.Size = new System.Drawing.Size(661, 370);\r
this.rtbCode.TabIndex = 1;\r
this.rtbCode.Text = "";\r
this.rtbCode.WordWrap = false;\r
this.rtbCode.SelectionChanged += new System.EventHandler(this.rtbCode_SelectionChanged);\r
this.rtbCode.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.rtbCode_KeyPress);\r
// \r
+ // toolStripButton1\r
+ // \r
+ this.toolStripButton1.Name = "toolStripButton1";\r
+ this.toolStripButton1.Size = new System.Drawing.Size(6, 25);\r
+ // \r
// ScriptEditor\r
// \r
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
this.Controls.Add(this.rtbCode);\r
- this.Controls.Add(this.strpStatus);\r
- this.Controls.Add(this.strpMenu);\r
+ this.Controls.Add(this.tsFindReplace);\r
+ this.Controls.Add(this.tsStatus);\r
+ this.Controls.Add(this.tsMenu);\r
this.Name = "ScriptEditor";\r
this.Size = new System.Drawing.Size(661, 445);\r
- this.strpMenu.ResumeLayout(false);\r
- this.strpMenu.PerformLayout();\r
- this.strpStatus.ResumeLayout(false);\r
- this.strpStatus.PerformLayout();\r
+ this.tsMenu.ResumeLayout(false);\r
+ this.tsMenu.PerformLayout();\r
+ this.tsStatus.ResumeLayout(false);\r
+ this.tsStatus.PerformLayout();\r
+ this.tsFindReplace.ResumeLayout(false);\r
+ this.tsFindReplace.PerformLayout();\r
this.ResumeLayout(false);\r
this.PerformLayout();\r
\r
\r
private System.Windows.Forms.ToolTip ttKeyWords;\r
private RRichTextBox rtbCode;\r
- private System.Windows.Forms.ToolStrip strpMenu;\r
+ private System.Windows.Forms.ToolStrip tsMenu;\r
private System.Windows.Forms.ToolStripDropDownButton tbtbFile;\r
private System.Windows.Forms.ToolStripMenuItem tbtbSave;\r
private System.Windows.Forms.ToolStripMenuItem tbtbSaveToDiskAs;\r
private System.Windows.Forms.ToolStripButton tbtnAttach;\r
private System.Windows.Forms.ToolStripSeparator tSeparator1;\r
private System.Windows.Forms.ToolStripMenuItem tbtnExit;\r
- private System.Windows.Forms.ToolStrip strpStatus;\r
+ private System.Windows.Forms.ToolStrip tsStatus;\r
private System.Windows.Forms.ToolStripLabel lblScripStatus;\r
private System.Windows.Forms.ToolStripLabel lblCol;\r
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;\r
private System.Windows.Forms.ToolStripLabel lblLine;\r
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;\r
private System.Windows.Forms.ToolStripMenuItem tbtbSaveToDisk;\r
+ private System.Windows.Forms.ToolStripDropDownButton tbtnEdit;\r
+ private System.Windows.Forms.ToolStripMenuItem undoToolStripMenuItem;\r
+ private System.Windows.Forms.ToolStripMenuItem redoToolStripMenuItem;\r
+ private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;\r
+ private System.Windows.Forms.ToolStripMenuItem cutToolStripMenuItem;\r
+ private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem;\r
+ private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem;\r
+ private System.Windows.Forms.ToolStripMenuItem deleteToolStripMenuItem;\r
+ private System.Windows.Forms.ToolStripMenuItem selectAllToolStripMenuItem;\r
+ private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2;\r
+ private System.Windows.Forms.ToolStripMenuItem findToolStripMenuItem;\r
+ private System.Windows.Forms.ToolStrip tsFindReplace;\r
+ private System.Windows.Forms.ToolStripButton tfindClose;\r
+ private System.Windows.Forms.ToolStripTextBox tfindFindText;\r
+ private ToolStripCheckBox tfindMatchCase;\r
+ private System.Windows.Forms.ToolStripButton tfindDoFind;\r
+ private System.Windows.Forms.ToolStripLabel toolStripLabel1;\r
+ private System.Windows.Forms.ToolStripTextBox tfindReplaceText;\r
+ private System.Windows.Forms.ToolStripButton tfindFindNextReplace;\r
+ private System.Windows.Forms.ToolStripButton tfindReplace;\r
+ private System.Windows.Forms.ToolStripButton tfindReplaceAll;\r
+ private System.Windows.Forms.ToolStripSeparator toolStripButton1;\r
}\r
}\r
fileName = dlg.FileName;\r
scriptName = Path.GetFileName(fileName);\r
SetTitle();\r
+ rtbCode.ClearUndoRedo();\r
rtbCode.Text = File.ReadAllText(fileName);\r
}\r
}\r
\r
private void rtbCode_KeyDown(object sender, KeyEventArgs e)\r
{\r
+ if (e.Modifiers == Keys.Control && e.KeyCode == Keys.F)\r
+ {\r
+ findToolStripMenuItem_Click(null, null);\r
+ }\r
if (e.KeyCode == Keys.Tab)\r
{\r
rtbCode.SelectedText = " ";\r
}\r
}\r
}\r
+\r
+ #region Edit menu handlers\r
+ private void undoToolStripMenuItem_Click(object sender, EventArgs e)\r
+ {\r
+ rtbCode.Undo();\r
+ }\r
+\r
+ private void redoToolStripMenuItem_Click(object sender, EventArgs e)\r
+ {\r
+ rtbCode.Redo();\r
+ }\r
+\r
+ private void cutToolStripMenuItem_Click(object sender, EventArgs e)\r
+ {\r
+ if (rtbCode.SelectionLength > 0)\r
+ {\r
+ Clipboard.SetText(rtbCode.SelectedText);\r
+ rtbCode.SelectedText = string.Empty;\r
+ }\r
+ }\r
+\r
+ private void copyToolStripMenuItem_Click(object sender, EventArgs e)\r
+ {\r
+ if (rtbCode.SelectionLength > 0)\r
+ {\r
+ Clipboard.SetText(rtbCode.SelectedText);\r
+ }\r
+ }\r
+\r
+ private void pasteToolStripMenuItem_Click(object sender, EventArgs e)\r
+ {\r
+ string clip = Clipboard.GetText();\r
+\r
+ if (!string.IsNullOrEmpty(clip))\r
+ {\r
+ rtbCode.SelectedText = clip;\r
+ }\r
+ }\r
+\r
+ private void deleteToolStripMenuItem_Click(object sender, EventArgs e)\r
+ {\r
+ rtbCode.SelectedText = string.Empty;\r
+ }\r
+\r
+ private void selectAllToolStripMenuItem_Click(object sender, EventArgs e)\r
+ {\r
+ rtbCode.SelectionStart = 0;\r
+ rtbCode.SelectionLength = rtbCode.Text.Length;\r
+ }\r
+\r
+ private void findToolStripMenuItem_Click(object sender, EventArgs e)\r
+ {\r
+ tsFindReplace.Show();\r
+ tfindFindText.Focus();\r
+ }\r
+ #endregion\r
+\r
+ private void tfindClose_Click(object sender, EventArgs e)\r
+ {\r
+ tsFindReplace.Hide();\r
+ }\r
+\r
+ private class FindHistoryItem\r
+ {\r
+ public FindHistoryItem(string term, int ss, int sl)\r
+ {\r
+ Term = term;\r
+ SelStart = ss;\r
+ SelLength = sl;\r
+ }\r
+\r
+ public string Term;\r
+ public int SelStart;\r
+ public int SelLength;\r
+\r
+ public override string ToString()\r
+ {\r
+ return Term;\r
+ }\r
+ }\r
+\r
+ Dictionary<string, FindHistoryItem> FindHistory = new Dictionary<string, FindHistoryItem>();\r
+ FindHistoryItem startPos;\r
+\r
+ private void tfindFindText_TextChanged(object sender, EventArgs e)\r
+ {\r
+ string st = tfindFindText.Text;\r
+\r
+ if (startPos == null)\r
+ {\r
+ startPos = new FindHistoryItem(string.Empty, rtbCode.SelectionStart, rtbCode.SelectionLength);\r
+ FindHistory[startPos.Term] = startPos;\r
+ }\r
+\r
+ StringComparison type;\r
+\r
+ if (tfindMatchCase.Checked)\r
+ {\r
+ type = StringComparison.Ordinal;\r
+ }\r
+ else\r
+ {\r
+ type = StringComparison.OrdinalIgnoreCase;\r
+ }\r
+\r
+ if (FindHistory.ContainsKey(st))\r
+ {\r
+ tfindFindText.BackColor = Color.FromKnownColor(KnownColor.Window);\r
+ tfindDoFind.Enabled = true;\r
+ FindHistoryItem h = FindHistory[st];\r
+ rtbCode.BeginUpdate();\r
+ rtbCode.Select(h.SelStart, h.SelLength);\r
+ rtbCode.ScrollToCaret();\r
+ rtbCode.EndUpdate();\r
+ }\r
+\r
+ if (st == string.Empty)\r
+ {\r
+ FindHistory.Clear();\r
+ tfindFindText.BackColor = Color.FromKnownColor(KnownColor.Window);\r
+ tfindDoFind.Enabled = true;\r
+ startPos = null;\r
+ return;\r
+ }\r
+\r
+ int pos = rtbCode.Text.IndexOf(st, rtbCode.SelectionStart, type);\r
+\r
+ if (pos != -1)\r
+ {\r
+ tfindFindText.BackColor = Color.FromKnownColor(KnownColor.Window);\r
+ tfindDoFind.Enabled = true;\r
+ FindHistory[st] = new FindHistoryItem(st, pos, st.Length);\r
+ rtbCode.BeginUpdate();\r
+ rtbCode.Select(pos, st.Length);\r
+ rtbCode.ScrollToCaret();\r
+ rtbCode.EndUpdate();\r
+ }\r
+ else\r
+ {\r
+ tfindFindText.BackColor = Color.FromArgb(200, 0, 0);\r
+ tfindDoFind.Enabled = false;\r
+ }\r
+ }\r
+\r
+ private void tfindFindText_KeyDown(object sender, KeyEventArgs e)\r
+ {\r
+ if (e.KeyCode == Keys.Enter)\r
+ {\r
+ e.SuppressKeyPress = true;\r
+ }\r
+ }\r
+\r
+ private void tfindFindText_KeyUp(object sender, KeyEventArgs e)\r
+ {\r
+ switch (e.KeyCode)\r
+ {\r
+ case Keys.Enter:\r
+ tfindDoFind_Click(null, null);\r
+ e.Handled = true;\r
+ e.SuppressKeyPress = true;\r
+ break;\r
+ }\r
+ }\r
+\r
+ private void tfindDoFind_Click(object sender, EventArgs e)\r
+ {\r
+ FindHistory.Clear();\r
+ startPos = null;\r
+ int len = rtbCode.SelectionLength;\r
+ rtbCode.SelectionLength = 0;\r
+ rtbCode.SelectionStart += len;\r
+ tfindFindText_TextChanged(sender, e);\r
+ }\r
+\r
+ private void tfindFindText_Leave(object sender, EventArgs e)\r
+ {\r
+ startPos = null;\r
+ FindHistory.Clear();\r
+ }\r
+\r
+ private void tfindFindNextReplace_Click(object sender, EventArgs e)\r
+ {\r
+ tfindDoFind_Click(null, null);\r
+ }\r
+\r
+ private void tfindReplace_Click(object sender, EventArgs e)\r
+ {\r
+ if (tfindFindText.Text.Length > 0 && rtbCode.SelectionLength > 0)\r
+ {\r
+ rtbCode.SelectedText = tfindReplaceText.Text;\r
+ tfindDoFind_Click(null, null);\r
+ }\r
+ }\r
+\r
+ private static string ReplaceEx(string original, string pattern, string replacement)\r
+ {\r
+ int count, position0, position1;\r
+ count = position0 = position1 = 0;\r
+ string upperString = original.ToUpper();\r
+ string upperPattern = pattern.ToUpper();\r
+ int inc = (original.Length / pattern.Length) * (replacement.Length - pattern.Length);\r
+ char[] chars = new char[original.Length + Math.Max(0, inc)];\r
+ while ((position1 = upperString.IndexOf(upperPattern, position0)) != -1)\r
+ {\r
+ for (int i = position0; i < position1; ++i)\r
+ chars[count++] = original[i];\r
+ for (int i = 0; i < replacement.Length; ++i)\r
+ chars[count++] = replacement[i];\r
+ position0 = position1 + pattern.Length;\r
+ }\r
+ if (position0 == 0) return original;\r
+ for (int i = position0; i < original.Length; ++i)\r
+ chars[count++] = original[i];\r
+ return new string(chars, 0, count);\r
+ }\r
+\r
+ private void tfindReplaceAll_Click(object sender, EventArgs e)\r
+ {\r
+ if (tfindFindText.Text.Length > 0)\r
+ {\r
+ if (tfindMatchCase.Checked)\r
+ {\r
+ rtbCode.Text.Replace(tfindFindText.Text, tfindReplaceText.Text);\r
+ }\r
+ else\r
+ {\r
+ rtbCode.Text = ReplaceEx(rtbCode.Text, tfindFindText.Text, tfindReplaceText.Text);\r
+ }\r
+ }\r
+ }\r
+\r
}\r
}\r
<metadata name="ttKeyWords.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
<value>17, 17</value>\r
</metadata>\r
- <metadata name="strpMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+ <metadata name="tsMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
<value>132, 17</value>\r
</metadata>\r
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC\r
</value>\r
</data>\r
+ <data name="tbtnEdit.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+ <value>\r
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL\r
+ U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI\r
+ VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ\r
+ QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4\r
+ /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9\r
+ cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j\r
+ 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR\r
+ dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb\r
+ NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE\r
+ s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC\r
+</value>\r
+ </data>\r
<data name="tbtnAttach.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
<value>\r
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC\r
</value>\r
</data>\r
- <metadata name="strpStatus.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+ <metadata name="tsStatus.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
<value>237, 17</value>\r
</metadata>\r
+ <metadata name="tsFindReplace.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+ <value>331, 17</value>\r
+ </metadata>\r
+ <data name="tfindDoFind.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+ <value>\r
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL\r
+ U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI\r
+ VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ\r
+ QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4\r
+ /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9\r
+ cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j\r
+ 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR\r
+ dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb\r
+ NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE\r
+ s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC\r
+</value>\r
+ </data>\r
+ <data name="tfindFindNextReplace.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+ <value>\r
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL\r
+ U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI\r
+ VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ\r
+ QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4\r
+ /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9\r
+ cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j\r
+ 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR\r
+ dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb\r
+ NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE\r
+ s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC\r
+</value>\r
+ </data>\r
+ <data name="tfindReplace.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+ <value>\r
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL\r
+ U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI\r
+ VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ\r
+ QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4\r
+ /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9\r
+ cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j\r
+ 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR\r
+ dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb\r
+ NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE\r
+ s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC\r
+</value>\r
+ </data>\r
+ <data name="tfindReplaceAll.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+ <value>\r
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL\r
+ U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI\r
+ VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ\r
+ QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4\r
+ /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9\r
+ cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j\r
+ 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR\r
+ dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb\r
+ NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE\r
+ s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC\r
+</value>\r
+ </data>\r
</root>
\ No newline at end of file
}\r
\r
/// <summary>\r
- /// Overrides the currentColor thread's CurrentUICulture property for all\r
+ /// Overrides the current thread's CurrentUICulture property for all\r
/// resource lookups using this strongly typed resource class.\r
/// </summary>\r
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\r
}\r
}\r
\r
+ public static System.Drawing.Bitmap del_trans {\r
+ get {\r
+ object obj = ResourceManager.GetObject("del_trans", resourceCulture);\r
+ return ((System.Drawing.Bitmap)(obj));\r
+ }\r
+ }\r
+ \r
public static System.Drawing.Bitmap delete_16 {\r
get {\r
object obj = ResourceManager.GetObject("delete_16", resourceCulture);\r
}\r
\r
/// <summary>\r
- /// Looks up a localized string similar to llkeywords version 2\r
- ///\r
+ /// Looks up a localized string similar to # $Id$\r
///# sections\r
///[word .5, .1, .3]\r
///default Name of default state that all scripts must have\r
///string String type\r
///key Key type. Use NULL_KEY to test for empty keys.\r
///vector Vector type of 3 floats. Used to represent 3D motion, Euler angles, and color.:Access components by .x, .y. or .z\r
- ///rotation Rotation type of 4 floats. Used t [rest of string was truncated]";.\r
+ ///rotation [rest of string was truncated]";.\r
/// </summary>\r
public static string lsl_keywords {\r
get {\r
<data name="lsl_keywords" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
<value>..\Resources\lsl_keywords.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>\r
</data>\r
+ <data name="del_trans" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
+ <value>..\Resources\del_trans.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>\r
+ </data>\r
</root>
\ No newline at end of file
<SubType>Component</SubType>\r
</Compile>\r
<Compile Include="Core\Types\StringTokenizer.cs" />\r
+ <Compile Include="Core\Types\ToolStripCheckBox.cs">\r
+ <SubType>Component</SubType>\r
+ </Compile>\r
<Compile Include="Core\Types\TransparentButton.cs">\r
<SubType>Component</SubType>\r
</Compile>\r
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r
</None>\r
<None Include="Resources\lsl_keywords.txt" />\r
+ <None Include="Resources\del_trans.png" />\r
<Content Include="slmap.html">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</Content>\r