mirror of
https://git.do.srb2.org/STJr/ZoneBuilder.git
synced 2025-03-03 16:11:45 +00:00
Add tooltips for special characters in the Find and Replace menu; code shamelessly taken from UDB.
This commit is contained in:
parent
2b435ede7f
commit
4958338bbb
13 changed files with 185 additions and 15 deletions
|
@ -42,7 +42,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
|
||||||
public override Image BrowseImage { get { return Properties.Resources.List_Images; } }
|
public override Image BrowseImage { get { return Properties.Resources.List_Images; } }
|
||||||
|
public override string UsageHint
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Supported wildcards:" + System.Environment.NewLine
|
||||||
|
+ "* for zero or more characters" + System.Environment.NewLine
|
||||||
|
+ "? for exactly one character";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Destructor
|
#region ================== Constructor / Destructor
|
||||||
|
|
|
@ -39,6 +39,20 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
|
||||||
|
//mxd. Prefixes usage
|
||||||
|
public override string UsageHint
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Supported prefixes:" + System.Environment.NewLine
|
||||||
|
+ "\"<=\" for values less or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\">=\" for values greater or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\"<\" for values less than given value;" + System.Environment.NewLine
|
||||||
|
+ "\">\" for values greater than given value." + System.Environment.NewLine
|
||||||
|
+ "\"!\" or \"!=\" for values not equal to given value.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Destructor
|
#region ================== Constructor / Destructor
|
||||||
|
|
|
@ -44,6 +44,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
public FindReplaceAttribute Attributes { get { return attribs; } }
|
public FindReplaceAttribute Attributes { get { return attribs; } }
|
||||||
public virtual Image BrowseImage { get { return null; } }
|
public virtual Image BrowseImage { get { return null; } }
|
||||||
public bool AllowDelete { get { return false; } }
|
public bool AllowDelete { get { return false; } }
|
||||||
|
public virtual string UsageHint { get { return string.Empty; } } //mxd
|
||||||
public virtual Presentation RenderPresentation { get { return Presentation.Standard; } }
|
public virtual Presentation RenderPresentation { get { return Presentation.Standard; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -11,6 +11,24 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
[FindReplace("Sector Brightness", BrowseButton = false)]
|
[FindReplace("Sector Brightness", BrowseButton = false)]
|
||||||
internal class FindSectorBrightness : BaseFindSector
|
internal class FindSectorBrightness : BaseFindSector
|
||||||
{
|
{
|
||||||
|
#region ================== Properties
|
||||||
|
|
||||||
|
//mxd. Prefixes usage
|
||||||
|
public override string UsageHint
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Supported prefixes:" + System.Environment.NewLine
|
||||||
|
+ "\"<=\" for values less or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\">=\" for values greater or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\"<\" for values less than given value;" + System.Environment.NewLine
|
||||||
|
+ "\">\" for values greater than given value." + System.Environment.NewLine
|
||||||
|
+ "\"!\" or \"!=\" for values not equal to given value.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region ================== Methods
|
#region ================== Methods
|
||||||
|
|
||||||
// This is called to perform a search (and replace)
|
// This is called to perform a search (and replace)
|
||||||
|
|
|
@ -11,6 +11,24 @@ namespace CodeImp.DoomBuilder.BuilderModes.FindReplace
|
||||||
[FindReplace("Sector Ceiling Height", BrowseButton = false)]
|
[FindReplace("Sector Ceiling Height", BrowseButton = false)]
|
||||||
internal class FindSectorCeilingHeight : BaseFindSector
|
internal class FindSectorCeilingHeight : BaseFindSector
|
||||||
{
|
{
|
||||||
|
#region ================== Properties
|
||||||
|
|
||||||
|
//mxd. Prefixes usage
|
||||||
|
public override string UsageHint
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Supported prefixes:" + System.Environment.NewLine
|
||||||
|
+ "\"<=\" for values less or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\">=\" for values greater or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\"<\" for values less than given value;" + System.Environment.NewLine
|
||||||
|
+ "\">\" for values greater than given value." + System.Environment.NewLine
|
||||||
|
+ "\"!\" or \"!=\" for values not equal to given value.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region ================== Methods
|
#region ================== Methods
|
||||||
|
|
||||||
// This is called to perform a search (and replace)
|
// This is called to perform a search (and replace)
|
||||||
|
|
|
@ -41,7 +41,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
|
||||||
public override Image BrowseImage { get { return Properties.Resources.List_Images; } }
|
public override Image BrowseImage { get { return Properties.Resources.List_Images; } }
|
||||||
|
public override string UsageHint
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Supported wildcards:" + System.Environment.NewLine
|
||||||
|
+ "* for zero or more characters" + System.Environment.NewLine
|
||||||
|
+ "? for exactly one character";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Destructor
|
#region ================== Constructor / Destructor
|
||||||
|
|
|
@ -11,6 +11,24 @@ namespace CodeImp.DoomBuilder.BuilderModes.FindReplace
|
||||||
[FindReplace("Sector Floor Height", BrowseButton = false)]
|
[FindReplace("Sector Floor Height", BrowseButton = false)]
|
||||||
internal class FindSectorFloorHeight : BaseFindSector
|
internal class FindSectorFloorHeight : BaseFindSector
|
||||||
{
|
{
|
||||||
|
#region ================== Properties
|
||||||
|
|
||||||
|
//mxd. Prefixes usage
|
||||||
|
public override string UsageHint
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Supported prefixes:" + System.Environment.NewLine
|
||||||
|
+ "\"<=\" for values less or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\">=\" for values greater or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\"<\" for values less than given value;" + System.Environment.NewLine
|
||||||
|
+ "\">\" for values greater than given value." + System.Environment.NewLine
|
||||||
|
+ "\"!\" or \"!=\" for values not equal to given value.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region ================== Methods
|
#region ================== Methods
|
||||||
|
|
||||||
// This is called to perform a search (and replace)
|
// This is called to perform a search (and replace)
|
||||||
|
|
|
@ -39,6 +39,20 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
|
||||||
|
//mxd. Prefixes usage
|
||||||
|
public override string UsageHint
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Supported prefixes:" + System.Environment.NewLine
|
||||||
|
+ "\"<=\" for values less or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\">=\" for values greater or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\"<\" for values less than given value;" + System.Environment.NewLine
|
||||||
|
+ "\">\" for values greater than given value." + System.Environment.NewLine
|
||||||
|
+ "\"!\" or \"!=\" for values not equal to given value.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Destructor
|
#region ================== Constructor / Destructor
|
||||||
|
|
|
@ -41,6 +41,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
|
||||||
public override Image BrowseImage { get { return Properties.Resources.List; } }
|
public override Image BrowseImage { get { return Properties.Resources.List; } }
|
||||||
|
public override string UsageHint
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Supported wildcards:" + System.Environment.NewLine
|
||||||
|
+ "* for zero or more characters" + System.Environment.NewLine
|
||||||
|
+ "? for exactly one character";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,21 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
public override Presentation RenderPresentation { get { return Presentation.Things; } }
|
public override Presentation RenderPresentation { get { return Presentation.Things; } }
|
||||||
public override Image BrowseImage { get { return Properties.Resources.Angle; } }
|
public override Image BrowseImage { get { return Properties.Resources.Angle; } }
|
||||||
|
|
||||||
|
//mxd. Prefixes usage
|
||||||
|
public override string UsageHint
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Supported prefixes:" + System.Environment.NewLine
|
||||||
|
+ "\"<=\" for values less or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\">=\" for values greater or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\"<\" for values less than given value;" + System.Environment.NewLine
|
||||||
|
+ "\">\" for values greater than given value." + System.Environment.NewLine
|
||||||
|
+ "\"!\" or \"!=\" for values not equal to given value.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Destructor
|
#region ================== Constructor / Destructor
|
||||||
|
|
|
@ -43,7 +43,21 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
public override Presentation RenderPresentation { get { return Presentation.Things; } }
|
public override Presentation RenderPresentation { get { return Presentation.Things; } }
|
||||||
public override Image BrowseImage { get { return Properties.Resources.List; } }
|
public override Image BrowseImage { get { return Properties.Resources.List; } }
|
||||||
|
|
||||||
|
//mxd. Prefixes usage
|
||||||
|
public override string UsageHint
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Supported prefixes:" + System.Environment.NewLine
|
||||||
|
+ "\"<=\" for values less or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\">=\" for values greater or equal to given value;" + System.Environment.NewLine
|
||||||
|
+ "\"<\" for values less than given value;" + System.Environment.NewLine
|
||||||
|
+ "\">\" for values greater than given value." + System.Environment.NewLine
|
||||||
|
+ "\"!\" or \"!=\" for values not equal to given value.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Destructor
|
#region ================== Constructor / Destructor
|
||||||
|
|
|
@ -28,8 +28,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
System.Windows.Forms.Label label1;
|
System.Windows.Forms.Label label1;
|
||||||
System.Windows.Forms.Label label2;
|
this.labelfind = new System.Windows.Forms.Label();
|
||||||
this.searchtypes = new System.Windows.Forms.ComboBox();
|
this.searchtypes = new System.Windows.Forms.ComboBox();
|
||||||
this.findinput = new CodeImp.DoomBuilder.Controls.AutoSelectTextbox();
|
this.findinput = new CodeImp.DoomBuilder.Controls.AutoSelectTextbox();
|
||||||
this.browsefind = new System.Windows.Forms.Button();
|
this.browsefind = new System.Windows.Forms.Button();
|
||||||
|
@ -44,8 +45,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.deletebutton = new System.Windows.Forms.Button();
|
this.deletebutton = new System.Windows.Forms.Button();
|
||||||
this.editbutton = new System.Windows.Forms.Button();
|
this.editbutton = new System.Windows.Forms.Button();
|
||||||
this.doreplace = new System.Windows.Forms.CheckBox();
|
this.doreplace = new System.Windows.Forms.CheckBox();
|
||||||
|
this.tooltip = new System.Windows.Forms.ToolTip(this.components);
|
||||||
label1 = new System.Windows.Forms.Label();
|
label1 = new System.Windows.Forms.Label();
|
||||||
label2 = new System.Windows.Forms.Label();
|
|
||||||
this.resultspanel.SuspendLayout();
|
this.resultspanel.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
|
@ -58,14 +59,14 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
label1.TabIndex = 0;
|
label1.TabIndex = 0;
|
||||||
label1.Text = "Search type:";
|
label1.Text = "Search type:";
|
||||||
//
|
//
|
||||||
// label2
|
// labelfind
|
||||||
//
|
//
|
||||||
label2.AutoSize = true;
|
this.labelfind.AutoSize = true;
|
||||||
label2.Location = new System.Drawing.Point(47, 51);
|
this.labelfind.Location = new System.Drawing.Point(47, 51);
|
||||||
label2.Name = "label2";
|
this.labelfind.Name = "labelfind";
|
||||||
label2.Size = new System.Drawing.Size(56, 13);
|
this.labelfind.Size = new System.Drawing.Size(56, 13);
|
||||||
label2.TabIndex = 2;
|
this.labelfind.TabIndex = 2;
|
||||||
label2.Text = "Find what:";
|
this.labelfind.Text = "Find what:";
|
||||||
//
|
//
|
||||||
// searchtypes
|
// searchtypes
|
||||||
//
|
//
|
||||||
|
@ -218,6 +219,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.doreplace.UseVisualStyleBackColor = true;
|
this.doreplace.UseVisualStyleBackColor = true;
|
||||||
this.doreplace.CheckedChanged += new System.EventHandler(this.doreplace_CheckedChanged);
|
this.doreplace.CheckedChanged += new System.EventHandler(this.doreplace_CheckedChanged);
|
||||||
//
|
//
|
||||||
|
// tooltip
|
||||||
|
//
|
||||||
|
this.tooltip.AutoPopDelay = 10000;
|
||||||
|
this.tooltip.InitialDelay = 100;
|
||||||
|
this.tooltip.ReshowDelay = 100;
|
||||||
|
//
|
||||||
// FindReplaceForm
|
// FindReplaceForm
|
||||||
//
|
//
|
||||||
this.AcceptButton = this.findbutton;
|
this.AcceptButton = this.findbutton;
|
||||||
|
@ -233,7 +240,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.Controls.Add(this.withinselection);
|
this.Controls.Add(this.withinselection);
|
||||||
this.Controls.Add(this.browsefind);
|
this.Controls.Add(this.browsefind);
|
||||||
this.Controls.Add(this.findinput);
|
this.Controls.Add(this.findinput);
|
||||||
this.Controls.Add(label2);
|
this.Controls.Add(labelfind);
|
||||||
this.Controls.Add(this.searchtypes);
|
this.Controls.Add(this.searchtypes);
|
||||||
this.Controls.Add(label1);
|
this.Controls.Add(label1);
|
||||||
this.Controls.Add(this.resultspanel);
|
this.Controls.Add(this.resultspanel);
|
||||||
|
@ -273,5 +280,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
private System.Windows.Forms.CheckBox doreplace;
|
private System.Windows.Forms.CheckBox doreplace;
|
||||||
private System.Windows.Forms.Button editbutton;
|
private System.Windows.Forms.Button editbutton;
|
||||||
private System.Windows.Forms.Button deletebutton;
|
private System.Windows.Forms.Button deletebutton;
|
||||||
|
private System.Windows.Forms.ToolTip tooltip;
|
||||||
|
private System.Windows.Forms.Label labelfind;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -42,7 +42,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
bool controlpressed;
|
bool controlpressed;
|
||||||
bool shiftpressed;
|
bool shiftpressed;
|
||||||
bool suppressevents;
|
bool suppressevents;
|
||||||
|
private Font hintfont; //mxd
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
@ -59,6 +60,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
// Initialize
|
// Initialize
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
//mxd. Create hint font
|
||||||
|
hintfont = new Font(this.Font, FontStyle.Underline);
|
||||||
|
|
||||||
// Find all find/replace types
|
// Find all find/replace types
|
||||||
Type[] findtypes = BuilderPlug.Me.FindClasses(typeof(FindReplaceType));
|
Type[] findtypes = BuilderPlug.Me.FindClasses(typeof(FindReplaceType));
|
||||||
findtypeslist = new List<FindReplaceType>(findtypes.Length);
|
findtypeslist = new List<FindReplaceType>(findtypes.Length);
|
||||||
|
@ -120,6 +124,22 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
if(!newfinder.CanReplace()) doreplace.Checked = false;
|
if(!newfinder.CanReplace()) doreplace.Checked = false;
|
||||||
doreplace_CheckedChanged(this, EventArgs.Empty); //mxd. Update the rest of replace controls
|
doreplace_CheckedChanged(this, EventArgs.Empty); //mxd. Update the rest of replace controls
|
||||||
doreplace.Enabled = newfinder.CanReplace();
|
doreplace.Enabled = newfinder.CanReplace();
|
||||||
|
|
||||||
|
//mxd. Update hint text
|
||||||
|
if (!string.IsNullOrEmpty(newfinder.UsageHint))
|
||||||
|
{
|
||||||
|
tooltip.SetToolTip(labelfind, newfinder.UsageHint);
|
||||||
|
labelfind.Font = hintfont;
|
||||||
|
labelfind.ForeColor = SystemColors.HotTrack;
|
||||||
|
labelfind.Cursor = Cursors.Hand;
|
||||||
|
}
|
||||||
|
else if (labelfind.ForeColor == SystemColors.HotTrack)
|
||||||
|
{
|
||||||
|
tooltip.SetToolTip(labelfind, string.Empty);
|
||||||
|
labelfind.Font = this.Font;
|
||||||
|
labelfind.ForeColor = SystemColors.ControlText;
|
||||||
|
labelfind.Cursor = Cursors.Default;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Browse find button clicked
|
// Browse find button clicked
|
||||||
|
@ -264,6 +284,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
General.Interface.Focus();
|
General.Interface.Focus();
|
||||||
General.Editing.CancelMode();
|
General.Editing.CancelMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
hintfont.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close button clicked
|
// Close button clicked
|
||||||
|
|
Loading…
Reference in a new issue