mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Use same method in name parser editor
This commit is contained in:
parent
0cf17c9619
commit
ee4b7690b1
2 changed files with 25 additions and 54 deletions
|
@ -60,7 +60,7 @@ public static ContextMenuStrip Create(TextBoxBase tb, CodeMenuItem[] items)
|
|||
ContextMenuStrip cms = new ContextMenuStrip
|
||||
{
|
||||
Font = new Font("Lucida Console", 8),
|
||||
AutoClose = false,
|
||||
AutoClose = tb == null,
|
||||
Opacity = 0.9,
|
||||
ShowImageMargin = false
|
||||
};
|
||||
|
@ -70,7 +70,7 @@ public static ContextMenuStrip Create(TextBoxBase tb, CodeMenuItem[] items)
|
|||
ToolStripMenuItem tsmi = new ToolStripMenuItem { Text = $"{item.Name} - {item.Description}", Tag = item.Name };
|
||||
tsmi.MouseUp += (sender, e) =>
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
if (tb != null && e.Button == MouseButtons.Left)
|
||||
{
|
||||
string text = ((ToolStripMenuItem)sender).Tag.ToString();
|
||||
tb.AppendTextToSelection(text);
|
||||
|
@ -109,64 +109,35 @@ public static ContextMenuStrip Create(TextBoxBase tb, CodeMenuItem[] items)
|
|||
tsmiClose.Click += (sender, e) => cms.Close();
|
||||
cms.Items.Add(tsmiClose);
|
||||
|
||||
tb.MouseDown += (sender, e) =>
|
||||
if (tb != null)
|
||||
{
|
||||
if (cms.Items.Count > 0) cms.Show(tb, new Point(tb.Width + 1, 0));
|
||||
};
|
||||
|
||||
tb.GotFocus += (sender, e) =>
|
||||
{
|
||||
if (cms.Items.Count > 0) cms.Show(tb, new Point(tb.Width + 1, 0));
|
||||
};
|
||||
|
||||
tb.LostFocus += (sender, e) =>
|
||||
{
|
||||
if (cms.Visible) cms.Close();
|
||||
};
|
||||
|
||||
tb.KeyDown += (sender, e) =>
|
||||
{
|
||||
if ((e.KeyCode == Keys.Enter || e.KeyCode == Keys.Escape) && cms.Visible)
|
||||
tb.MouseDown += (sender, e) =>
|
||||
{
|
||||
cms.Close();
|
||||
e.SuppressKeyPress = true;
|
||||
}
|
||||
};
|
||||
if (cms.Items.Count > 0) cms.Show(tb, new Point(tb.Width + 1, 0));
|
||||
};
|
||||
|
||||
tb.Disposed += (sender, e) => cms.Dispose();
|
||||
|
||||
return cms;
|
||||
}
|
||||
|
||||
public static ContextMenuStrip Create<TEntry>(params TEntry[] ignoreList) where TEntry : CodeMenuEntry
|
||||
{
|
||||
ContextMenuStrip cms = new ContextMenuStrip
|
||||
{
|
||||
Font = new Font("Lucida Console", 8),
|
||||
AutoClose = true,
|
||||
Opacity = 0.9,
|
||||
ShowImageMargin = false
|
||||
};
|
||||
|
||||
var variables = Helpers.GetValueFields<TEntry>().Where(x => !ignoreList.Contains(x)).
|
||||
Select(x => new
|
||||
tb.GotFocus += (sender, e) =>
|
||||
{
|
||||
Name = x.ToPrefixString(),
|
||||
Description = x.Description
|
||||
});
|
||||
if (cms.Items.Count > 0) cms.Show(tb, new Point(tb.Width + 1, 0));
|
||||
};
|
||||
|
||||
foreach (var variable in variables)
|
||||
{
|
||||
ToolStripMenuItem tsmi = new ToolStripMenuItem { Text = string.Format("{0} - {1}", variable.Name, variable.Description), Tag = variable.Name };
|
||||
cms.Items.Add(tsmi);
|
||||
tb.LostFocus += (sender, e) =>
|
||||
{
|
||||
if (cms.Visible) cms.Close();
|
||||
};
|
||||
|
||||
tb.KeyDown += (sender, e) =>
|
||||
{
|
||||
if ((e.KeyCode == Keys.Enter || e.KeyCode == Keys.Escape) && cms.Visible)
|
||||
{
|
||||
cms.Close();
|
||||
e.SuppressKeyPress = true;
|
||||
}
|
||||
};
|
||||
|
||||
tb.Disposed += (sender, e) => cms.Dispose();
|
||||
}
|
||||
|
||||
cms.Items.Add(new ToolStripSeparator());
|
||||
|
||||
ToolStripMenuItem tsmiClose = new ToolStripMenuItem(Resources.CodeMenu_Create_Close);
|
||||
tsmiClose.Click += (sender, e) => cms.Close();
|
||||
cms.Items.Add(tsmiClose);
|
||||
|
||||
return cms;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext contex
|
|||
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
|
||||
{
|
||||
Point pos = Cursor.Position;
|
||||
CodeMenu.Create(CodeMenuEntryFilename.t, CodeMenuEntryFilename.pn).Show(pos.X, pos.Y);
|
||||
CodeMenu.Create<CodeMenuEntryFilename>(null, CodeMenuEntryFilename.t, CodeMenuEntryFilename.pn).Show(pos.X, pos.Y);
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue