Script Editor: added Quick Search panel.

Find and Replace window: added "Find Previous" button.
This commit is contained in:
MaxED 2014-12-10 13:15:23 +00:00
parent e6e74478db
commit 2f981476e0
15 changed files with 339 additions and 85 deletions

View file

@ -1044,6 +1044,10 @@
<Content Include="Resources\Model.png" />
<None Include="Resources\ModelDisabled.png" />
<Content Include="Resources\Model_selected.png" />
<None Include="Resources\SearchPrev.png" />
<None Include="Resources\SearchNext.png" />
<None Include="Resources\SearchMatchCase.png" />
<None Include="Resources\SearchMatch.png" />
<None Include="Resources\WordWrap.png" />
<None Include="Resources\ThingCategory.png" />
<None Include="Resources\ScreenshotActiveWindow.png" />

View file

@ -112,6 +112,7 @@ namespace CodeImp.DoomBuilder.Controls
editor.OnOpenScriptBrowser += panel.OpenBrowseScript;
editor.OnOpenFindAndReplace += panel.OpenFindAndReplace;
editor.OnFindNext += panel.FindNext;
editor.OnFindPrevious += panel.FindPrevious; //mxd
}
// Disposer
@ -122,6 +123,7 @@ namespace CodeImp.DoomBuilder.Controls
editor.OnOpenScriptBrowser -= panel.OpenBrowseScript;
editor.OnOpenFindAndReplace -= panel.OpenFindAndReplace;
editor.OnFindNext -= panel.FindNext;
editor.OnFindPrevious -= panel.FindPrevious; //mxd
base.Dispose(disposing);
}
@ -235,14 +237,20 @@ namespace CodeImp.DoomBuilder.Controls
{
editor.Paste();
}
// Find next result (mxd)
public bool FindNext(FindReplaceOptions options)
{
return FindNext(options, false);
}
// Find next result
public bool FindNext(FindReplaceOptions options)
public bool FindNext(FindReplaceOptions options, bool useselectionstart)
{
byte[] data = editor.GetText();
string text = Encoding.GetEncoding(config.CodePage).GetString(data);
StringComparison mode = options.CaseSensitive ? StringComparison.CurrentCulture : StringComparison.CurrentCultureIgnoreCase;
int startpos = Math.Max(editor.SelectionStart, editor.SelectionEnd);
int startpos = (useselectionstart ? Math.Min(editor.SelectionStart, editor.SelectionEnd) : Math.Max(editor.SelectionStart, editor.SelectionEnd)); //mxd
bool wrapped = false;
while(true)
@ -288,6 +296,63 @@ namespace CodeImp.DoomBuilder.Controls
}
}
}
// Find previous result (mxd)
public bool FindPrevious(FindReplaceOptions options)
{
byte[] data = editor.GetText();
string text = Encoding.GetEncoding(config.CodePage).GetString(data);
StringComparison mode = options.CaseSensitive ? StringComparison.CurrentCulture : StringComparison.CurrentCultureIgnoreCase;
int endpos = Math.Min(editor.SelectionStart, editor.SelectionEnd);
int initialendpos = endpos;
int searchlength = endpos;
bool wrapped = false;
while(true)
{
int result = text.LastIndexOf(options.FindText, endpos, searchlength, mode);
if(result > -1)
{
// Check to see if it is the whole word
if(options.WholeWord)
{
// Veryfy that we have found a whole word
string foundword = editor.GetWordAt(result + 1);
if(foundword.Length != options.FindText.Length)
{
endpos = result - 1;
searchlength = endpos;
result = -1;
}
}
// Still ok?
if(result > -1)
{
// Select the result
editor.SelectionStart = result;
editor.SelectionEnd = result + options.FindText.Length;
editor.EnsureLineVisible(editor.LineFromPosition(editor.SelectionEnd));
return true;
}
}
else
{
// If we haven't tried from the end, try from the end now
if(!wrapped)
{
endpos = text.Length - 1;
searchlength = endpos - initialendpos;
wrapped = true;
}
else
{
// Can't find it
return false;
}
}
}
}
// This replaces the selection with the given text
public void ReplaceSelection(string replacement)

View file

@ -58,11 +58,13 @@ namespace CodeImp.DoomBuilder.Controls
public delegate void OpenScriptBrowserDelegate();
public delegate void OpenFindReplaceDelegate();
public delegate void FindNextDelegate();
public delegate void FindPreviousDelegate(); //mxd
public event ExplicitSaveTabDelegate OnExplicitSaveTab;
public event OpenScriptBrowserDelegate OnOpenScriptBrowser;
public event OpenFindReplaceDelegate OnOpenFindAndReplace;
public event FindNextDelegate OnFindNext;
public event FindPreviousDelegate OnFindPrevious; //mxd
#endregion
@ -784,10 +786,10 @@ namespace CodeImp.DoomBuilder.Controls
e.Handled = true;
}
// F2 for Keyword Help
// F2 for Find Previous (mxd)
else if((e.KeyCode == Keys.F2) && (e.Modifiers == Keys.None))
{
LaunchKeywordHelp();
if(OnFindPrevious != null) OnFindPrevious();
e.Handled = true;
}

View file

@ -51,6 +51,12 @@ namespace CodeImp.DoomBuilder.Controls
this.buttonclose = new System.Windows.Forms.ToolStripButton();
this.buttonkeywordhelp = new System.Windows.Forms.ToolStripButton();
this.buttonsearch = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
this.searchbox = new System.Windows.Forms.ToolStripTextBox();
this.searchprev = new System.Windows.Forms.ToolStripButton();
this.searchnext = new System.Windows.Forms.ToolStripButton();
this.searchmatchcase = new System.Windows.Forms.ToolStripButton();
this.searchwholeword = new System.Windows.Forms.ToolStripButton();
this.openfile = new System.Windows.Forms.OpenFileDialog();
this.savefile = new System.Windows.Forms.SaveFileDialog();
this.splitter = new System.Windows.Forms.SplitContainer();
@ -105,7 +111,13 @@ namespace CodeImp.DoomBuilder.Controls
this.buttoncompile,
this.buttonclose,
this.buttonkeywordhelp,
this.buttonsearch});
this.buttonsearch,
this.toolStripSeparator5,
this.searchbox,
this.searchprev,
this.searchnext,
this.searchmatchcase,
this.searchwholeword});
this.toolbar.Location = new System.Drawing.Point(0, 0);
this.toolbar.Name = "toolbar";
this.toolbar.Size = new System.Drawing.Size(726, 25);
@ -295,6 +307,61 @@ namespace CodeImp.DoomBuilder.Controls
this.buttonsearch.Text = "Open Find and Replace Window";
this.buttonsearch.Click += new System.EventHandler(this.buttonsearch_Click);
//
// toolStripSeparator5
//
this.toolStripSeparator5.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(6, 25);
//
// searchbox
//
this.searchbox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.searchbox.Name = "searchbox";
this.searchbox.Size = new System.Drawing.Size(100, 25);
this.searchbox.TextChanged += new System.EventHandler(this.searchbox_TextChanged);
//
// searchprev
//
this.searchprev.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.searchprev.Image = global::CodeImp.DoomBuilder.Properties.Resources.SearchPrev;
this.searchprev.ImageTransparentColor = System.Drawing.Color.Magenta;
this.searchprev.Name = "searchprev";
this.searchprev.Size = new System.Drawing.Size(23, 22);
this.searchprev.ToolTipText = "Previous Match";
this.searchprev.Click += new System.EventHandler(this.searchprev_Click);
//
// searchnext
//
this.searchnext.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.searchnext.Image = global::CodeImp.DoomBuilder.Properties.Resources.SearchNext;
this.searchnext.ImageTransparentColor = System.Drawing.Color.Magenta;
this.searchnext.Name = "searchnext";
this.searchnext.Size = new System.Drawing.Size(23, 22);
this.searchnext.ToolTipText = "Next Match";
this.searchnext.Click += new System.EventHandler(this.searchnext_Click);
//
// searchmatchcase
//
this.searchmatchcase.CheckOnClick = true;
this.searchmatchcase.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.searchmatchcase.Image = global::CodeImp.DoomBuilder.Properties.Resources.SearchMatchCase;
this.searchmatchcase.ImageTransparentColor = System.Drawing.Color.Magenta;
this.searchmatchcase.Name = "searchmatchcase";
this.searchmatchcase.Size = new System.Drawing.Size(23, 22);
this.searchmatchcase.ToolTipText = "Match Case";
this.searchmatchcase.Click += new System.EventHandler(this.searchbox_TextChanged);
//
// searchwholeword
//
this.searchwholeword.CheckOnClick = true;
this.searchwholeword.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.searchwholeword.Image = global::CodeImp.DoomBuilder.Properties.Resources.SearchMatch;
this.searchwholeword.ImageTransparentColor = System.Drawing.Color.Magenta;
this.searchwholeword.Name = "searchwholeword";
this.searchwholeword.Size = new System.Drawing.Size(23, 22);
this.searchwholeword.ToolTipText = "Match Whole Word";
this.searchwholeword.Click += new System.EventHandler(this.searchbox_TextChanged);
//
// openfile
//
this.openfile.Title = "Open Script";
@ -436,5 +503,11 @@ namespace CodeImp.DoomBuilder.Controls
private System.Windows.Forms.ToolStripButton buttonsearch;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
private System.Windows.Forms.ToolStripDropDownButton buttonsnippets;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
private System.Windows.Forms.ToolStripTextBox searchbox;
private System.Windows.Forms.ToolStripButton searchnext;
private System.Windows.Forms.ToolStripButton searchprev;
private System.Windows.Forms.ToolStripButton searchmatchcase;
private System.Windows.Forms.ToolStripButton searchwholeword;
}
}

View file

@ -18,6 +18,7 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Windows;
using CodeImp.DoomBuilder.Config;
@ -44,6 +45,10 @@ namespace CodeImp.DoomBuilder.Controls
// Find/Replace
private ScriptFindReplaceForm findreplaceform;
private FindReplaceOptions findoptions;
// Quick search bar settings (mxd)
private static bool matchwholeword;
private static bool matchcase;
#endregion
@ -147,6 +152,11 @@ namespace CodeImp.DoomBuilder.Controls
}
if (tabs.SelectedIndex == -1) tabs.SelectedIndex = 0;
}
//mxd. Apply quick search settings
searchmatchcase.Checked = matchcase;
searchwholeword.Checked = matchwholeword;
searchbox_TextChanged(this, EventArgs.Empty);
// If the map has remembered any compile errors, then show them
ShowErrors(General.Map.Errors);
@ -202,6 +212,30 @@ namespace CodeImp.DoomBuilder.Controls
General.MessageBeep(MessageBeepType.Default);
}
}
// Find Previous
public void FindPrevious(FindReplaceOptions options)
{
// Save the options
findoptions = options;
FindPrevious();
}
// Find Previous with saved options (mxd)
public void FindPrevious()
{
if(!string.IsNullOrEmpty(findoptions.FindText) && (ActiveTab != null))
{
if (!ActiveTab.FindPrevious(findoptions))
{
General.MainWindow.DisplayStatus(StatusType.Warning, "Can't find any occurence of \"" + findoptions.FindText + "\".");
}
}
else
{
General.MessageBeep(MessageBeepType.Default);
}
}
// Replace if possible
public void Replace(FindReplaceOptions options)
@ -595,6 +629,10 @@ namespace CodeImp.DoomBuilder.Controls
// Called when the window that contains this panel closes
public void OnClose()
{
//mxd. Store quick search settings
matchcase = searchmatchcase.Checked;
matchwholeword = searchwholeword.Checked;
// Close the sub windows now
if(findreplaceform != null) findreplaceform.Dispose();
}
@ -853,5 +891,38 @@ namespace CodeImp.DoomBuilder.Controls
}
#endregion
#region ================== Quick Search (mxd)
private FindReplaceOptions GetQuickSearchOptions()
{
return new FindReplaceOptions
{
CaseSensitive = searchmatchcase.Checked,
WholeWord = searchwholeword.Checked,
FindText = searchbox.Text
};
}
private void searchbox_TextChanged(object sender, EventArgs e)
{
bool success = ActiveTab.FindNext(GetQuickSearchOptions(), true);
searchbox.BackColor = ((success || searchbox.Text.Length == 0) ? SystemColors.Window : Color.MistyRose);
searchnext.Enabled = success;
searchprev.Enabled = success;
}
private void searchnext_Click(object sender, EventArgs e)
{
ActiveTab.FindNext(GetQuickSearchOptions());
}
private void searchprev_Click(object sender, EventArgs e)
{
ActiveTab.FindPrevious(GetQuickSearchOptions());
}
#endregion
}
}

View file

@ -149,29 +149,29 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADI
BQAAAk1TRnQBSQFMAwEBAAE0AQABNAEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMA
ARADAAEBAQABIAYAARD/ACMAAc8B2AHyAf8BWgFyAbkB/wEjAT4BkwH/ARsBMQF3Af8BFAEqAW4B/wEU
AS4BgQH/AUkBXwGkAf8BzwHYAfIB/9wAAYEBlAHUAf8BLgFNAawB/wEcAUEBuAH/AQwBPAHQAf8BAwE5
AeIB/wECATYB3AH/AQYBMwG9Af8BCQEqAZYB/wEKASUBgQH/AWcBeQGyAf/UAAGJAZ0B3AH/ATsBWgG7
Af8BHAFMAd0B/wEJAUQB+gH/AQcBQQH5Af8BRwFyAfgB/wFHAXIB+AH/AQABOQHqAf8BAAE2AeQB/wEF
AS8BtgH/AQoBJQGBAf8BZwF5AbIB/8wAAc8B2AHyAf8BUAFrAcYB/wEuAVoB4wH/ARsBUgH9Af8BGwFS
Af0B/wFWAYEB/gH/A/4B/wP+Af8BWQGBAfoB/wEAAToB7gH/AQABNgHkAf8BBQEvAbYB/wEKASUBgQH/
Ac8B2AHyAf/IAAGnAbYB5QH/AU0BcAHZAf8BLAFfAv8BLQFhAv8BLAFfAv8BZQGLAv8D/gH/A/4B/wFQ
AXkB+wH/AQIBPgH4Af8BAAE6Ae4B/wEAATYB5AH/AQkBKgGWAf8BSQFfAaQB/8gAAXABiQHVAf8BTAFz
Ae4B/wE+AW0C/wFBAW8C/wE+AW0C/wE5AWoC/wFpAY4C/wFgAYYC/wEbAVIB/QH/AQ0BSAH7Af8BAgE+
AfgB/wEAATkB6gH/AQYBMwG9Af8BFAEuAYEB/8gAAYEBlAHRAf8BUAF5AfsB/wFSAYEC/wFWAYEB/gH/
AVIBgQL/AWABhgL/A/4B/wP+Af8BPgFtAv8BGAFQAfsB/wEJAUQB+gH/AQABOwHzAf8BAgE2AdwB/wEU
ASoBbgH/yAABigGbAdQB/wFgAYYB+wH/AWUBiwL/AWkBjgL/AWUBiwL/AZcBsQL/A/4B/wP+Af8BeQGa
Av8BIQFXAf0B/wENAUgB+wH/AQIBPgH4Af8BAwE5AeIB/wEbATEBdwH/yAABiQGdAdwB/wF5AZYB8gH/
AXkBmgL/AYEBnAL/AXkBmgL/AbEBxAL/A/4B/wP+Af8BogG4Af4B/wEoAVwB/gH/ARgBUAH7Af8BBwFB
AfkB/wEMATwB0AH/ASMBPgGTAf/IAAGnAbYB5QH/AY0BowHlAf8BhwGkAv8BjQGoAv8BhwGkAv8BxQHT
Af4B/wP+Af8D/gH/AbUBxwH+Af8BLAFfAv8BGwFSAf0B/wEJAUQB+gH/ARwBQQG4Af8BZAGAAboB/8gA
Ac8B2AHyAf8BlwGnAd0B/wGVAasB8QH/AZcBsQL/AY0BqAL/AakBvgL/A/4B/wP+Af8BgwGhAv8BLQFh
Av8BGwFSAf0B/wEcAUwB3QH/AS4BTQGsAf8BzwHYAfIB/8wAAbQBwgHsAf8BmwGqAd0B/wGVAasB8QH/
AYcBpAL/AXkBmgL/AWUBiwL/AVIBgQL/AT4BbQL/AS0BYQL/AS4BWgHjAf8BOwFaAbsB/wF1AYwB1AH/
1AABtAHCAewB/wGXAacB3QH/AY0BowHlAf8BeQGWAfIB/wFgAYYB+wH/AVABeQH7Af8BTAFzAe4B/wFN
AXAB2QH/AVABawHGAf8BgQGVAdwB/9wAAcwB2AH+Af8BnQGtAeAB/wGJAZ0B3AH/AYoBmwHUAf8BgQGU
AdEB/wFwAYkB1QH/AYEBlAHRAf8BzAHYAf4B//8A0QABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEA
BQAAAk1TRnQBSQFMAwEBAAGEAQABhAEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMA
ARADAAEBAQABIAYAARD/ACMAAc8B2AHyAf8BUAFoAbkB/wEZATQBkwH/AREBJwFtAf8BCgEgAWQB/wEK
ASQBgQH/AT8BVQGkAf8BzwHYAfIB/9wAAYEBlAHUAf8BJAFDAawB/wESATcBuAH/AQIBMgHQAf8BAAEv
AeIB/wEAASwB3AH/AQABKQG9Af8BAAEgAZYB/wEAARsBgQH/AV0BbwGyAf/UAAGJAZ0B3AH/ATEBUAG7
Af8BEgFCAd0B/wEAAToB+gH/AQABNwH5Af8BPQFoAfgB/wE9AWgB+AH/AQABLwHqAf8BAAEsAeQB/wEA
ASUBtgH/AQABGwGBAf8BXQFvAbIB/8wAAc8B2AHyAf8BRgFhAcYB/wEkAVAB4wH/AREBSAH9Af8BEQFI
Af0B/wFMAYEB/gH/A/4B/wP+Af8BTwGBAfoB/wEAATAB7gH/AQABLAHkAf8BAAElAbYB/wEAARsBgQH/
Ac8B2AHyAf/IAAGnAbYB5QH/AUMBZgHZAf8BIgFVAv8BIwFXAv8BIgFVAv8BWwGLAv8D/gH/A/4B/wFG
AW8B+wH/AQABNAH4Af8BAAEwAe4B/wEAASwB5AH/AQABIAGWAf8BPwFVAaQB/8gAAWYBiQHVAf8BQgFp
Ae4B/wE0AWMC/wE3AWUC/wE0AWMC/wEvAWAC/wFfAY4C/wFWAYYC/wERAUgB/QH/AQMBPgH7Af8BAAE0
AfgB/wEAAS8B6gH/AQABKQG9Af8BCgEkAYEB/8gAAYEBlAHRAf8BRgFvAfsB/wFIAYEC/wFMAYEB/gH/
AUgBgQL/AVYBhgL/A/4B/wP+Af8BNAFjAv8BDgFGAfsB/wEAAToB+gH/AQABMQHzAf8BAAEsAdwB/wEK
ASABZAH/yAABigGbAdQB/wFWAYYB+wH/AVsBiwL/AV8BjgL/AVsBiwL/AZcBsQL/A/4B/wP+Af8BbwGa
Av8BFwFNAf0B/wEDAT4B+wH/AQABNAH4Af8BAAEvAeIB/wERAScBbQH/yAABiQGdAdwB/wFvAZYB8gH/
AW8BmgL/AYEBnAL/AW8BmgL/AbEBxAL/A/4B/wP+Af8BogG4Af4B/wEeAVIB/gH/AQ4BRgH7Af8BAAE3
AfkB/wECATIB0AH/ARkBNAGTAf/IAAGnAbYB5QH/AY0BowHlAf8BhwGkAv8BjQGoAv8BhwGkAv8BxQHT
Af4B/wP+Af8D/gH/AbUBxwH+Af8BIgFVAv8BEQFIAf0B/wEAAToB+gH/ARIBNwG4Af8BWgGAAboB/8gA
Ac8B2AHyAf8BlwGnAd0B/wGVAasB8QH/AZcBsQL/AY0BqAL/AakBvgL/A/4B/wP+Af8BgwGhAv8BIwFX
Av8BEQFIAf0B/wESAUIB3QH/ASQBQwGsAf8BzwHYAfIB/8wAAbQBwgHsAf8BmwGqAd0B/wGVAasB8QH/
AYcBpAL/AW8BmgL/AVsBiwL/AUgBgQL/ATQBYwL/ASMBVwL/ASQBUAHjAf8BMQFQAbsB/wFrAYwB1AH/
1AABtAHCAewB/wGXAacB3QH/AY0BowHlAf8BbwGWAfIB/wFWAYYB+wH/AUYBbwH7Af8BQgFpAe4B/wFD
AWYB2QH/AUYBYQHGAf8BgQGVAdwB/9wAAcwB2AH+Af8BnQGtAeAB/wGJAZ0B3AH/AYoBmwHUAf8BgQGU
AdEB/wFmAYkB1QH/AYEBlAHRAf8BzAHYAf4B//8A0QABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEA
AQEFAAGAFwAD/wEAAv8GAAHwAQ8GAAHgAQcGAAHAAQMGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGA
AQEGAAGAAQEGAAGAAQEGAAGAAQEGAAHAAQMGAAHgAQcGAAHwAQ8GAAL/BgAL
</value>

View file

@ -648,6 +648,34 @@ namespace CodeImp.DoomBuilder.Properties {
}
}
internal static System.Drawing.Bitmap SearchMatch {
get {
object obj = ResourceManager.GetObject("SearchMatch", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap SearchMatchCase {
get {
object obj = ResourceManager.GetObject("SearchMatchCase", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap SearchNext {
get {
object obj = ResourceManager.GetObject("SearchNext", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap SearchPrev {
get {
object obj = ResourceManager.GetObject("SearchPrev", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap SlimDX_small {
get {
object obj = ResourceManager.GetObject("SlimDX_small", resourceCulture);

View file

@ -142,8 +142,8 @@
<data name="ColorPick" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ColorPick.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ArrowDown" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ArrowDown.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="SearchMatchCase" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SearchMatchCase.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="File" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\NewMap.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -202,6 +202,9 @@
<data name="ThingStatistics" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ThingStatistics.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Expand" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Expand.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Redo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Redo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -265,6 +268,9 @@
<data name="Cursor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Cursor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Grid2_arrowup" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Grid2_arrowup.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Reset" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Reset.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -277,6 +283,9 @@
<data name="Status1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ArrowDown" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ArrowDown.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="PasteSpecial" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\PasteSpecial.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -295,15 +304,15 @@
<data name="Brightness" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Brightness.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="WordWrap" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WordWrap.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="fog" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\fog.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="InfoLine" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\InfoLine.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Status10" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status10.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="MissingTexture" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\MissingTexture.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -331,6 +340,9 @@
<data name="Model_selected" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Model_selected.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Collapse" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Collapse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="NewScript" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\NewScript.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -340,8 +352,8 @@
<data name="Unlink" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Unlink.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ScriptKeyword" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ScriptKeyword.xpm;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="Status10" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status10.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Properties" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Properties.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -352,15 +364,15 @@
<data name="ClearTextures" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ClearTextures.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Status2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Prefab" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Prefab.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ImageStack" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ImageStack.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SearchMatch" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SearchMatch.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Hourglass" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Hourglass.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -373,8 +385,11 @@
<data name="Status12" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status12.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Light_animate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Light_animate.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="SearchNext" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SearchNext.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Status2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Link" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Link.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -400,8 +415,8 @@
<data name="ViewTextureFloor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ViewTextureFloor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Grid2_arrowup" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Grid2_arrowup.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="Light_animate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Light_animate.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Pin" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Pin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -409,6 +424,9 @@
<data name="ViewNormal" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ViewNormal.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ScriptKeyword" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ScriptKeyword.xpm;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="MissingThing" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\MissingThing.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -451,13 +469,7 @@
<data name="Check" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Check.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="WordWrap" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WordWrap.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Collapse" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Collapse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Expand" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Expand.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="SearchPrev" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SearchPrev.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

View file

@ -38,6 +38,7 @@ namespace CodeImp.DoomBuilder.Windows
this.replaceallbutton = new System.Windows.Forms.Button();
this.closebutton = new System.Windows.Forms.Button();
this.replacebutton = new System.Windows.Forms.Button();
this.findpreviousbutton = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label1
@ -59,7 +60,7 @@ namespace CodeImp.DoomBuilder.Windows
// casesensitive
//
this.casesensitive.AutoSize = true;
this.casesensitive.Location = new System.Drawing.Point(93, 84);
this.casesensitive.Location = new System.Drawing.Point(93, 81);
this.casesensitive.Name = "casesensitive";
this.casesensitive.Size = new System.Drawing.Size(97, 18);
this.casesensitive.TabIndex = 2;
@ -69,7 +70,7 @@ namespace CodeImp.DoomBuilder.Windows
// wordonly
//
this.wordonly.AutoSize = true;
this.wordonly.Location = new System.Drawing.Point(93, 108);
this.wordonly.Location = new System.Drawing.Point(93, 105);
this.wordonly.Name = "wordonly";
this.wordonly.Size = new System.Drawing.Size(108, 18);
this.wordonly.TabIndex = 3;
@ -94,10 +95,9 @@ namespace CodeImp.DoomBuilder.Windows
//
// findnextbutton
//
this.findnextbutton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.findnextbutton.Location = new System.Drawing.Point(257, 18);
this.findnextbutton.Location = new System.Drawing.Point(251, 17);
this.findnextbutton.Name = "findnextbutton";
this.findnextbutton.Size = new System.Drawing.Size(98, 25);
this.findnextbutton.Size = new System.Drawing.Size(80, 25);
this.findnextbutton.TabIndex = 4;
this.findnextbutton.Text = "Find Next";
this.findnextbutton.UseVisualStyleBackColor = true;
@ -105,45 +105,54 @@ namespace CodeImp.DoomBuilder.Windows
//
// replaceallbutton
//
this.replaceallbutton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.replaceallbutton.Location = new System.Drawing.Point(257, 80);
this.replaceallbutton.Location = new System.Drawing.Point(337, 48);
this.replaceallbutton.Name = "replaceallbutton";
this.replaceallbutton.Size = new System.Drawing.Size(98, 25);
this.replaceallbutton.TabIndex = 6;
this.replaceallbutton.Size = new System.Drawing.Size(86, 25);
this.replaceallbutton.TabIndex = 7;
this.replaceallbutton.Text = "Replace All";
this.replaceallbutton.UseVisualStyleBackColor = true;
this.replaceallbutton.Click += new System.EventHandler(this.replaceallbutton_Click);
//
// closebutton
//
this.closebutton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.closebutton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.closebutton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.closebutton.Location = new System.Drawing.Point(257, 127);
this.closebutton.Location = new System.Drawing.Point(325, 96);
this.closebutton.Name = "closebutton";
this.closebutton.Size = new System.Drawing.Size(98, 25);
this.closebutton.TabIndex = 7;
this.closebutton.TabIndex = 8;
this.closebutton.Text = "Close";
this.closebutton.UseVisualStyleBackColor = true;
this.closebutton.Click += new System.EventHandler(this.closebutton_Click);
//
// replacebutton
//
this.replacebutton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.replacebutton.Location = new System.Drawing.Point(257, 49);
this.replacebutton.Location = new System.Drawing.Point(251, 48);
this.replacebutton.Name = "replacebutton";
this.replacebutton.Size = new System.Drawing.Size(98, 25);
this.replacebutton.TabIndex = 5;
this.replacebutton.Size = new System.Drawing.Size(80, 25);
this.replacebutton.TabIndex = 6;
this.replacebutton.Text = "Replace";
this.replacebutton.UseVisualStyleBackColor = true;
this.replacebutton.Click += new System.EventHandler(this.replacebutton_Click);
//
// findpreviousbutton
//
this.findpreviousbutton.Location = new System.Drawing.Point(337, 17);
this.findpreviousbutton.Name = "findpreviousbutton";
this.findpreviousbutton.Size = new System.Drawing.Size(86, 25);
this.findpreviousbutton.TabIndex = 5;
this.findpreviousbutton.Text = "Find Previous";
this.findpreviousbutton.UseVisualStyleBackColor = true;
this.findpreviousbutton.Click += new System.EventHandler(this.findpreviousbutton_Click);
//
// ScriptFindReplaceForm
//
this.AcceptButton = this.findnextbutton;
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.CancelButton = this.closebutton;
this.ClientSize = new System.Drawing.Size(367, 163);
this.ClientSize = new System.Drawing.Size(436, 127);
this.Controls.Add(this.findpreviousbutton);
this.Controls.Add(this.replacebutton);
this.Controls.Add(this.closebutton);
this.Controls.Add(this.replaceallbutton);
@ -159,6 +168,7 @@ namespace CodeImp.DoomBuilder.Windows
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "ScriptFindReplaceForm";
this.Opacity = 1;
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.Text = "Find and Replace";
@ -180,5 +190,6 @@ namespace CodeImp.DoomBuilder.Windows
private System.Windows.Forms.Button replaceallbutton;
private System.Windows.Forms.Button closebutton;
private System.Windows.Forms.Button replacebutton;
private System.Windows.Forms.Button findpreviousbutton;
}
}

View file

@ -90,6 +90,12 @@ namespace CodeImp.DoomBuilder.Windows
{
General.Map.ScriptEditor.Editor.FindNext(MakeOptions());
}
// Find Previous (mxd)
private void findpreviousbutton_Click(object sender, EventArgs e)
{
General.Map.ScriptEditor.Editor.FindPrevious(MakeOptions());
}
// Replace
private void replacebutton_Click(object sender, EventArgs e)

View file

@ -123,28 +123,10 @@
<metadata name="findtext.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="casesensitive.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="wordonly.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="replacetext.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="findnextbutton.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="replaceallbutton.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="closebutton.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="replacebutton.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>