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
|
||||
|
||||
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
|
||||
|
||||
#region ================== Constructor / Destructor
|
||||
|
|
|
@ -39,6 +39,20 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
#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 ================== Constructor / Destructor
|
||||
|
|
|
@ -44,6 +44,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public FindReplaceAttribute Attributes { get { return attribs; } }
|
||||
public virtual Image BrowseImage { get { return null; } }
|
||||
public bool AllowDelete { get { return false; } }
|
||||
public virtual string UsageHint { get { return string.Empty; } } //mxd
|
||||
public virtual Presentation RenderPresentation { get { return Presentation.Standard; } }
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -11,6 +11,24 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
[FindReplace("Sector Brightness", BrowseButton = false)]
|
||||
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
|
||||
|
||||
// This is called to perform a search (and replace)
|
||||
|
|
|
@ -11,6 +11,24 @@ namespace CodeImp.DoomBuilder.BuilderModes.FindReplace
|
|||
[FindReplace("Sector Ceiling Height", BrowseButton = false)]
|
||||
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
|
||||
|
||||
// This is called to perform a search (and replace)
|
||||
|
|
|
@ -41,7 +41,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
#region ================== Properties
|
||||
|
||||
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
|
||||
|
||||
#region ================== Constructor / Destructor
|
||||
|
|
|
@ -11,6 +11,24 @@ namespace CodeImp.DoomBuilder.BuilderModes.FindReplace
|
|||
[FindReplace("Sector Floor Height", BrowseButton = false)]
|
||||
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
|
||||
|
||||
// This is called to perform a search (and replace)
|
||||
|
|
|
@ -39,6 +39,20 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
#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 ================== Constructor / Destructor
|
||||
|
|
|
@ -41,6 +41,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
#region ================== Properties
|
||||
|
||||
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
|
||||
|
||||
|
|
|
@ -44,7 +44,21 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
public override Presentation RenderPresentation { get { return Presentation.Things; } }
|
||||
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
|
||||
|
||||
#region ================== Constructor / Destructor
|
||||
|
|
|
@ -43,7 +43,21 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
public override Presentation RenderPresentation { get { return Presentation.Things; } }
|
||||
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
|
||||
|
||||
#region ================== Constructor / Destructor
|
||||
|
|
|
@ -28,8 +28,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
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.findinput = new CodeImp.DoomBuilder.Controls.AutoSelectTextbox();
|
||||
this.browsefind = new System.Windows.Forms.Button();
|
||||
|
@ -44,8 +45,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.deletebutton = new System.Windows.Forms.Button();
|
||||
this.editbutton = new System.Windows.Forms.Button();
|
||||
this.doreplace = new System.Windows.Forms.CheckBox();
|
||||
this.tooltip = new System.Windows.Forms.ToolTip(this.components);
|
||||
label1 = new System.Windows.Forms.Label();
|
||||
label2 = new System.Windows.Forms.Label();
|
||||
this.resultspanel.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
|
@ -58,14 +59,14 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
label1.TabIndex = 0;
|
||||
label1.Text = "Search type:";
|
||||
//
|
||||
// label2
|
||||
// labelfind
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.Location = new System.Drawing.Point(47, 51);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new System.Drawing.Size(56, 13);
|
||||
label2.TabIndex = 2;
|
||||
label2.Text = "Find what:";
|
||||
this.labelfind.AutoSize = true;
|
||||
this.labelfind.Location = new System.Drawing.Point(47, 51);
|
||||
this.labelfind.Name = "labelfind";
|
||||
this.labelfind.Size = new System.Drawing.Size(56, 13);
|
||||
this.labelfind.TabIndex = 2;
|
||||
this.labelfind.Text = "Find what:";
|
||||
//
|
||||
// searchtypes
|
||||
//
|
||||
|
@ -218,6 +219,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.doreplace.UseVisualStyleBackColor = true;
|
||||
this.doreplace.CheckedChanged += new System.EventHandler(this.doreplace_CheckedChanged);
|
||||
//
|
||||
// tooltip
|
||||
//
|
||||
this.tooltip.AutoPopDelay = 10000;
|
||||
this.tooltip.InitialDelay = 100;
|
||||
this.tooltip.ReshowDelay = 100;
|
||||
//
|
||||
// FindReplaceForm
|
||||
//
|
||||
this.AcceptButton = this.findbutton;
|
||||
|
@ -233,7 +240,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.Controls.Add(this.withinselection);
|
||||
this.Controls.Add(this.browsefind);
|
||||
this.Controls.Add(this.findinput);
|
||||
this.Controls.Add(label2);
|
||||
this.Controls.Add(labelfind);
|
||||
this.Controls.Add(this.searchtypes);
|
||||
this.Controls.Add(label1);
|
||||
this.Controls.Add(this.resultspanel);
|
||||
|
@ -273,5 +280,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
private System.Windows.Forms.CheckBox doreplace;
|
||||
private System.Windows.Forms.Button editbutton;
|
||||
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 shiftpressed;
|
||||
bool suppressevents;
|
||||
|
||||
private Font hintfont; //mxd
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Properties
|
||||
|
@ -59,6 +60,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
// Initialize
|
||||
InitializeComponent();
|
||||
|
||||
//mxd. Create hint font
|
||||
hintfont = new Font(this.Font, FontStyle.Underline);
|
||||
|
||||
// Find all find/replace types
|
||||
Type[] findtypes = BuilderPlug.Me.FindClasses(typeof(FindReplaceType));
|
||||
findtypeslist = new List<FindReplaceType>(findtypes.Length);
|
||||
|
@ -120,6 +124,22 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
if(!newfinder.CanReplace()) doreplace.Checked = false;
|
||||
doreplace_CheckedChanged(this, EventArgs.Empty); //mxd. Update the rest of replace controls
|
||||
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
|
||||
|
@ -264,6 +284,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
General.Interface.Focus();
|
||||
General.Editing.CancelMode();
|
||||
}
|
||||
|
||||
//mxd
|
||||
hintfont.Dispose();
|
||||
}
|
||||
|
||||
// Close button clicked
|
||||
|
|
Loading…
Reference in a new issue