本文整理汇总了C#中Gtk.Menu.Add方法的典型用法代码示例。如果您正苦于以下问题:C# Gtk.Menu.Add方法的具体用法?C# Gtk.Menu.Add怎么用?C# Gtk.Menu.Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gtk.Menu
的用法示例。
在下文中一共展示了Gtk.Menu.Add方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Run
protected override void Run (RefactoringOptions options)
{
Gtk.Menu menu = new Gtk.Menu ();
bool resolveDirect;
List<string> namespaces = GetResolveableNamespaces (options, out resolveDirect);
foreach (string ns in namespaces) {
// remove used namespaces for conflict resolving.
if (options.Document.CompilationUnit.IsNamespaceUsedAt (ns, options.ResolveResult.ResolvedExpression.Region.Start))
continue;
Gtk.MenuItem menuItem = new Gtk.MenuItem (string.Format (GettextCatalog.GetString ("Add using '{0}'"), ns));
CurrentRefactoryOperationsHandler.ResolveNameOperation resolveNameOperation = new CurrentRefactoryOperationsHandler.ResolveNameOperation (options.Dom, options.Document, options.ResolveResult, ns);
menuItem.Activated += delegate {
resolveNameOperation.AddImport ();
};
menu.Add (menuItem);
}
if (resolveDirect) {
foreach (string ns in namespaces) {
Gtk.MenuItem menuItem = new Gtk.MenuItem (string.Format (GettextCatalog.GetString ("Add '{0}'"), ns));
CurrentRefactoryOperationsHandler.ResolveNameOperation resolveNameOperation = new CurrentRefactoryOperationsHandler.ResolveNameOperation (options.Dom, options.Document, options.ResolveResult, ns);
menuItem.Activated += delegate {
resolveNameOperation.ResolveName ();
};
menu.Add (menuItem);
}
}
if (menu.Children != null && menu.Children.Length > 0) {
menu.ShowAll ();
ICompletionWidget widget = options.Document.GetContent<ICompletionWidget> ();
CodeCompletionContext codeCompletionContext = widget.CreateCodeCompletionContext (options.GetTextEditorData ().Caret.Offset);
menu.Popup (null, null, delegate (Gtk.Menu menu2, out int x, out int y, out bool pushIn) {
x = codeCompletionContext.TriggerXCoord;
y = codeCompletionContext.TriggerYCoord;
pushIn = false;
}, 0, Gtk.Global.CurrentEventTime);
menu.SelectFirst (true);
}
}
示例2: Step1_SetWidget
public void Step1_SetWidget(Gtk.Widget widget)
{
// Add right-click context menu to control.
var menu = new Gtk.Menu();
var resetMenuItem = new Gtk.MenuItem("Reset Camera Offset");
resetMenuItem.Activated += delegate(object sender, EventArgs e) {
SetCameraOffset(0, 0);
};
menu.Add(resetMenuItem);
// Handle mouse move events.
widget.MotionNotifyEvent += delegate(object o, Gtk.MotionNotifyEventArgs args) {
if (!m_enabled) return;
if (!m_mouseDown) return;
double x = args.Event.X;
double y = args.Event.Y;
double dx = x - m_mouseDownX;
double dy = y - m_mouseDownY;
SetCameraOffset(m_offsetDownX + dx, m_offsetDownY + dy);
};
widget.ButtonPressEvent += delegate(object o, Gtk.ButtonPressEventArgs args) {
if (m_enablePopupMenu && (args.Event.Button & 2) == 2) {
menu.ShowAll();
menu.Popup();
return;
}
m_mouseDown = true;
m_mouseDownX = args.Event.X;
m_mouseDownY = args.Event.Y;
m_offsetDownX = m_offsetX;
m_offsetDownY = m_offsetY;
};
widget.ButtonReleaseEvent += delegate(object o, Gtk.ButtonReleaseEventArgs args) {
m_mouseDown = false;
};
}
示例3: ShowContextMenu
public void ShowContextMenu(ActionItem aitem)
{
ActionMenuItem menuItem = (ActionMenuItem) aitem;
Gtk.Menu m = new Gtk.Menu ();
Gtk.MenuItem item = new Gtk.MenuItem (Catalog.GetString ("Insert Before"));
m.Add (item);
item.Activated += delegate (object s, EventArgs a) {
InsertActionAt (menuItem, false, false);
};
item = new Gtk.MenuItem (Catalog.GetString ("Insert After"));
m.Add (item);
item.Activated += delegate (object s, EventArgs a) {
InsertActionAt (menuItem, true, false);
};
m.Add (new Gtk.SeparatorMenuItem ());
item = new Gtk.ImageMenuItem (Gtk.Stock.Cut, null);
m.Add (item);
item.Activated += delegate (object s, EventArgs a) {
menuItem.Cut ();
};
item.Visible = false; // No copy & paste for now
item = new Gtk.ImageMenuItem (Gtk.Stock.Copy, null);
m.Add (item);
item.Activated += delegate (object s, EventArgs a) {
menuItem.Copy ();
};
item.Visible = false; // No copy & paste for now
item = new Gtk.ImageMenuItem (Gtk.Stock.Paste, null);
m.Add (item);
item.Activated += delegate (object s, EventArgs a) {
Paste (menuItem);
};
item.Visible = false; // No copy & paste for now
item = new Gtk.ImageMenuItem (Gtk.Stock.Delete, null);
m.Add (item);
item.Activated += delegate (object s, EventArgs a) {
menuItem.Delete ();
};
m.ShowAll ();
m.Popup ();
}
示例4: OnStatusIconPopupMenu
private static void OnStatusIconPopupMenu(object sender, EventArgs e)
{
Trace.Call(sender, e);
Gtk.Menu menu = new Gtk.Menu();
Gtk.ImageMenuItem preferencesItem = new Gtk.ImageMenuItem(Gtk.Stock.Preferences, null);
preferencesItem.Activated += delegate {
try {
PreferencesDialog dialog = new PreferencesDialog(_MainWindow);
dialog.CurrentPage = PreferencesDialog.Page.Interface;
dialog.CurrentInterfacePage = PreferencesDialog.InterfacePage.Notification;
} catch (Exception ex) {
ShowException(ex);
}
};
menu.Add(preferencesItem);
menu.Add(new Gtk.SeparatorMenuItem());
Gtk.ImageMenuItem quitItem = new Gtk.ImageMenuItem(Gtk.Stock.Quit, null);
quitItem.Activated += delegate {
try {
Quit();
} catch (Exception ex) {
ShowException(ex);
}
};
menu.Add(quitItem);
menu.ShowAll();
menu.Popup();
}
示例5: PopulateFixes
public void PopulateFixes (Gtk.Menu menu, ref int items)
{
int mnemonic = 1;
bool gotImportantFix = false, addedSeparator = false;
var fixesAdded = new List<string> ();
foreach (var fix_ in fixes.OrderByDescending (i => Tuple.Create (IsAnalysisOrErrorFix(i), (int)i.Severity, GetUsage (i.IdString)))) {
// filter out code actions that are already resolutions of a code issue
if (fixesAdded.Any (f => fix_.IdString.IndexOf (f, StringComparison.Ordinal) >= 0))
continue;
fixesAdded.Add (fix_.IdString);
if (IsAnalysisOrErrorFix (fix_))
gotImportantFix = true;
if (!addedSeparator && gotImportantFix && !IsAnalysisOrErrorFix(fix_)) {
menu.Add (new Gtk.SeparatorMenuItem ());
addedSeparator = true;
}
var fix = fix_;
var escapedLabel = fix.Title.Replace ("_", "__");
var label = (mnemonic <= 10)
? "_" + (mnemonic++ % 10).ToString () + " " + escapedLabel
: " " + escapedLabel;
var thisInstanceMenuItem = new Gtk.MenuItem (label);
thisInstanceMenuItem.Activated += new ContextActionRunner (fix, document, loc).Run;
thisInstanceMenuItem.Activated += delegate {
ConfirmUsage (fix.IdString);
menu.Destroy ();
};
menu.Add (thisInstanceMenuItem);
items++;
}
bool first = true;
var alreadyInserted = new HashSet<BaseCodeIssueProvider> ();
foreach (var analysisFix_ in fixes.OfType <AnalysisContextActionProvider.AnalysisCodeAction>().Where (f => f.Result is InspectorResults)) {
var analysisFix = analysisFix_;
var ir = analysisFix.Result as InspectorResults;
if (ir == null)
continue;
if (first) {
menu.Add (new Gtk.SeparatorMenuItem ());
first = false;
}
if (alreadyInserted.Contains (ir.Inspector))
continue;
alreadyInserted.Add (ir.Inspector);
var subMenu = new Gtk.Menu ();
if (analysisFix.SupportsBatchRunning) {
var batchRunMenuItem = new Gtk.MenuItem (GettextCatalog.GetString ("Fix all in this file"));
batchRunMenuItem.Activated += delegate {
ConfirmUsage (analysisFix.IdString);
menu.Destroy ();
};
batchRunMenuItem.Activated += new ContextActionRunner (analysisFix, document, loc).BatchRun;
subMenu.Add (batchRunMenuItem);
subMenu.Add (new Gtk.SeparatorMenuItem ());
}
var inspector = ir.Inspector;
if (inspector.CanSuppressWithAttribute) {
var menuItem = new Gtk.MenuItem (GettextCatalog.GetString ("_Suppress with attribute"));
menuItem.Activated += delegate {
inspector.SuppressWithAttribute (document, analysisFix.DocumentRegion);
};
subMenu.Add (menuItem);
}
if (inspector.CanDisableWithPragma) {
var menuItem = new Gtk.MenuItem (GettextCatalog.GetString ("_Suppress with #pragma"));
menuItem.Activated += delegate {
inspector.DisableWithPragma (document, analysisFix.DocumentRegion);
};
subMenu.Add (menuItem);
}
if (inspector.CanDisableOnce) {
var menuItem = new Gtk.MenuItem (GettextCatalog.GetString ("_Disable once with comment"));
menuItem.Activated += delegate {
inspector.DisableOnce (document, analysisFix.DocumentRegion);
};
subMenu.Add (menuItem);
}
if (inspector.CanDisableAndRestore) {
var menuItem = new Gtk.MenuItem (GettextCatalog.GetString ("Disable _and restore with comments"));
menuItem.Activated += delegate {
inspector.DisableAndRestore (document, analysisFix.DocumentRegion);
};
subMenu.Add (menuItem);
}
var label = GettextCatalog.GetString ("_Options for \"{0}\"", InspectorResults.GetTitle (ir.Inspector));
var subMenuItem = new Gtk.MenuItem (label);
var optionsMenuItem = new Gtk.MenuItem (GettextCatalog.GetString ("_Configure inspection"));
optionsMenuItem.Activated += analysisFix.ShowOptions;
optionsMenuItem.Activated += delegate {
menu.Destroy ();
};
//.........这里部分代码省略.........
示例6: BuildMenu
private void BuildMenu()
{
var accel = new Gtk.AccelGroup();
this.mbMainMenu = new Gtk.MenuBar();
// File
var miFile = new Gtk.MenuItem( "_File" );
var mFile = new Gtk.Menu();
miFile.Submenu = mFile;
var opNew = this.actNew.CreateMenuItem();
opNew.AddAccelerator( "activate", accel, new Gtk.AccelKey(
Gdk.Key.n, Gdk.ModifierType.ControlMask, Gtk.AccelFlags.Visible ) );
var opOpen = this.actOpen.CreateMenuItem();
opOpen.AddAccelerator( "activate", accel, new Gtk.AccelKey(
Gdk.Key.o, Gdk.ModifierType.ControlMask, Gtk.AccelFlags.Visible ) );
var opSave = this.actSave.CreateMenuItem();
opSave.AddAccelerator( "activate", accel, new Gtk.AccelKey(
Gdk.Key.s, Gdk.ModifierType.ControlMask, Gtk.AccelFlags.Visible ) );
var opQuit = this.actQuit.CreateMenuItem();
opQuit.AddAccelerator( "activate", accel, new Gtk.AccelKey(
Gdk.Key.q, Gdk.ModifierType.ControlMask, Gtk.AccelFlags.Visible ) );
mFile.Add( opNew );
mFile.Add( this.actImport.CreateMenuItem() );
mFile.Add( opOpen );
mFile.Add( this.actAppend.CreateMenuItem() );
mFile.Add( opSave );
mFile.Add( this.actSaveAs.CreateMenuItem() );
mFile.Add( this.actExport.CreateMenuItem() );
mFile.Add( this.actClose.CreateMenuItem() );
mFile.Add( opQuit );
// Edit
var miEdit = new Gtk.MenuItem( "_Edit" );
var mEdit = new Gtk.Menu();
miEdit.Submenu = mEdit;
mEdit.Add( this.actAddQuestion.CreateMenuItem() );
mEdit.Add( this.actRemoveQuestion.CreateMenuItem() );
mEdit.Add( this.actAddAnswer.CreateMenuItem() );
mEdit.Add( this.actRemoveAnswer.CreateMenuItem() );
// Tools
var miTools = new Gtk.MenuItem( "_Tools" );
var mTools = new Gtk.Menu();
miTools.Submenu = mTools;
mTools.Add( this.actShuffle.CreateMenuItem() );
mTools.Add( this.actTakeTest.CreateMenuItem() );
// About
var miAbout = new Gtk.MenuItem( "_About" );
var mAbout = new Gtk.Menu();
miAbout.Submenu = mAbout;
mAbout.Add( this.actAbout.CreateMenuItem() );
// Finish
this.mbMainMenu.Add( miFile );
this.mbMainMenu.Add( miEdit );
this.mbMainMenu.Add( miTools );
this.mbMainMenu.Add( miAbout );
}
示例7: PopupContextMenu
// HERZUM SPRINT 2.3 TLAB-56 TLAB-57 TLAB-58 TLAB-59
/*
private void PopupContextMenu(IPrimaryToolDelegator mainTool, IDrawingEditor editor, ITool dt, MouseEvent ev)
{
m_contextMenu = new Gtk.Menu();
Gtk.MenuItem editLabel = new Gtk.MenuItem("Edit label");
editLabel.Activated += delegate(object sender, EventArgs e)
{
SimpleTextTool textTool = new SimpleTextTool(editor, this, dt, ev);
mainTool.DelegateTool = textTool;
textTool.StartEditing();
};
m_contextMenu.Add(editLabel);
m_contextMenu.ShowAll();
m_contextMenu.Popup();
}
*/
private void PopupContextMenu(IPrimaryToolDelegator mainTool, IDrawingEditor editor, ITool dt, MouseEvent ev)
{
m_contextMenu = new Gtk.Menu();
Gtk.MenuItem editLabel = new Gtk.MenuItem("Edit label");
Gtk.MenuItem copy = new Gtk.MenuItem("Copy");
Gtk.MenuItem cut = new Gtk.MenuItem("Cut");
// Gtk.MenuItem paste = new Gtk.MenuItem("Paste");
editLabel.Activated += delegate(object sender, EventArgs e)
{
SimpleTextTool textTool = new SimpleTextTool(editor, this, dt, ev);
mainTool.DelegateTool = textTool;
textTool.StartEditing();
};
copy.Activated += delegate(object sender, EventArgs e)
{
Clipboard.Copy(ExperimentNode.Owner as BaseExperiment);
};
cut.Activated += delegate(object sender, EventArgs e)
{
Clipboard.Cut(ExperimentNode.Owner as BaseExperiment);
};
/*
paste.Activated += delegate(object sender, EventArgs e)
{
Clipboard.Paste(ExperimentNode.Owner as BaseExperiment);
ExperimentCanvasPad ecp = ExperimentCanvasPadFactory.GetExperimentCanvasPad(m_applicationContext, this);
ecp.DisplayAddedSubgraph(ExperimentNode.Owner as BaseExperiment);
};
*/
m_contextMenu.Add(editLabel);
m_contextMenu.Add(copy);
m_contextMenu.Add(cut);
// m_contextMenu.Add(paste);
m_contextMenu.ShowAll();
m_contextMenu.Popup();
}
示例8: ConstructMenuFile
private void ConstructMenuFile()
{
Debug.WriteLine("ConstructMenuFile");
ConstructImageMenuItemFileNew();
ConstructImageMenuItemFileOpen();
ConstructImageMenuItemFileSave();
ConstructImageMenuItemFileSaveAs();
ConstructImageMenuItemFileClose();
ConstructSeparatorMenuItemFile1();
ConstructImageMenuItemFileQuit();
menuFile = new Gtk.Menu
{
Name = "menuFile",
Visible = true,
};
menuFile.Add(imageMenuItemFileNew);
menuFile.Add(imageMenuItemFileOpen);
menuFile.Add(imageMenuItemFileSave);
menuFile.Add(imageMenuItemFileSaveAs);
menuFile.Add(imageMenuItemFileClose);
menuFile.Add(separatorMenuItemFile1);
menuFile.Add(imageMenuItemFileQuit);
}
示例9: Update
void Update (CommandInfo cmdInfo)
{
lastCmdInfo = cmdInfo;
if (isArray && !isArrayItem) {
this.Visible = false;
Gtk.Menu menu = (Gtk.Menu) Parent;
if (itemArray != null) {
foreach (Gtk.MenuItem item in itemArray)
menu.Remove (item);
}
itemArray = new ArrayList ();
int i = Array.IndexOf (menu.Children, this);
if (cmdInfo.ArrayInfo != null) {
foreach (CommandInfo info in cmdInfo.ArrayInfo) {
Gtk.MenuItem item;
if (info.IsArraySeparator) {
item = new Gtk.SeparatorMenuItem ();
item.Show ();
} else {
item = CommandEntry.CreateMenuItem (commandManager, commandId, false);
ICommandMenuItem mi = (ICommandMenuItem) item;
mi.SetUpdateInfo (info, initialTarget);
}
menu.Insert (item, ++i);
itemArray.Add (item);
}
}
} else {
Gtk.Widget child = Child;
if (child == null)
return;
Gtk.Label accel_label = null;
Gtk.Label label = null;
if (!(child is Gtk.HBox)) {
child = new Gtk.HBox (false, 0);
accel_label = new Gtk.Label ("");
accel_label.UseUnderline = false;
accel_label.Xalign = 1.0f;
accel_label.Show ();
label = new Gtk.Label ("");
label.UseUnderline = true;
label.Xalign = 0.0f;
label.Show ();
((Gtk.Box) child).PackStart (label);
((Gtk.Box) child).PackStart (accel_label);
child.Show ();
this.Remove (Child);
this.Add (child);
} else {
accel_label = (Gtk.Label) ((Gtk.Box) child).Children[1];
label = (Gtk.Label) ((Gtk.Box) child).Children[0];
}
if (cmdInfo.AccelKey != null)
accel_label.Text = " " + KeyBindingManager.BindingToDisplayLabel (cmdInfo.AccelKey, true);
else
accel_label.Text = String.Empty;
if (cmdInfo.UseMarkup) {
label.Markup = overrideLabel ?? cmdInfo.Text;
label.UseMarkup = true;
} else {
label.Text = overrideLabel ?? cmdInfo.Text;
label.UseMarkup = false;
}
label.UseUnderline = true;
this.Sensitive = cmdInfo.Enabled;
this.Visible = cmdInfo.Visible && (disabledVisible || cmdInfo.Enabled);
if (!cmdInfo.Icon.IsNull && cmdInfo.Icon != lastIcon) {
Image = new Gtk.Image (cmdInfo.Icon, Gtk.IconSize.Menu);
lastIcon = cmdInfo.Icon;
}
if (cmdInfo is CommandInfoSet) {
CommandInfoSet ciset = (CommandInfoSet) cmdInfo;
Gtk.Menu smenu = new Gtk.Menu ();
Submenu = smenu;
foreach (CommandInfo info in ciset.CommandInfos) {
Gtk.MenuItem item;
if (info.IsArraySeparator) {
item = new Gtk.SeparatorMenuItem ();
item.Show ();
} else {
item = CommandEntry.CreateMenuItem (commandManager, commandId, false);
ICommandMenuItem mi = (ICommandMenuItem) item;
mi.SetUpdateInfo (info, initialTarget);
}
smenu.Add (item);
}
//.........这里部分代码省略.........
示例10: PopulateFixes
public void PopulateFixes (Gtk.Menu menu, ref int items)
{
int mnemonic = 1;
foreach (var fix_ in fixes.OrderByDescending (i => GetUsage (i.IdString))) {
var fix = fix_;
var escapedLabel = fix.Title.Replace ("_", "__");
var label = (mnemonic <= 10)
? "_" + (mnemonic++ % 10).ToString () + " " + escapedLabel
: " " + escapedLabel;
var thisInstanceMenuItem = new Gtk.MenuItem (label);
thisInstanceMenuItem.Activated += new ContextActionRunner (fix, document, loc).Run;
thisInstanceMenuItem.Activated += delegate {
ConfirmUsage (fix.IdString);
menu.Destroy ();
};
menu.Add (thisInstanceMenuItem);
items++;
}
var first = true;
var alreadyInserted = new HashSet<BaseCodeIssueProvider> ();
foreach (var analysisFix_ in fixes.OfType <AnalysisContextActionProvider.AnalysisCodeAction>().Where (f => f.Result is InspectorResults)) {
var analysisFix = analysisFix_;
var ir = analysisFix.Result as InspectorResults;
if (ir == null)
continue;
if (first) {
menu.Add (new Gtk.SeparatorMenuItem ());
first = false;
}
if (alreadyInserted.Contains (ir.Inspector))
continue;
alreadyInserted.Add (ir.Inspector);
var subMenu = new Gtk.Menu ();
if (analysisFix.SupportsBatchRunning) {
var batchRunMenuItem = new Gtk.MenuItem (GettextCatalog.GetString ("Fix all in this file"));
batchRunMenuItem.Activated += delegate {
ConfirmUsage (analysisFix.IdString);
menu.Destroy ();
};
batchRunMenuItem.Activated += new ContextActionRunner (analysisFix, document, loc).BatchRun;
subMenu.Add (batchRunMenuItem);
subMenu.Add (new Gtk.SeparatorMenuItem ());
}
var inspector = ir.Inspector;
if (inspector.CanSuppressWithAttribute) {
var menuItem = new Gtk.MenuItem (GettextCatalog.GetString ("_Suppress with attribute"));
menuItem.Activated += delegate {
inspector.SuppressWithAttribute (document, analysisFix.DocumentRegion);
};
subMenu.Add (menuItem);
}
if (inspector.CanDisableWithPragma) {
var menuItem = new Gtk.MenuItem (GettextCatalog.GetString ("_Suppress with #pragma"));
menuItem.Activated += delegate {
inspector.DisableWithPragma (document, analysisFix.DocumentRegion);
};
subMenu.Add (menuItem);
}
if (inspector.CanDisableOnce) {
var menuItem = new Gtk.MenuItem (GettextCatalog.GetString ("_Disable once with comment"));
menuItem.Activated += delegate {
inspector.DisableOnce (document, analysisFix.DocumentRegion);
};
subMenu.Add (menuItem);
}
if (inspector.CanDisableAndRestore) {
var menuItem = new Gtk.MenuItem (GettextCatalog.GetString ("Disable _and restore with comments"));
menuItem.Activated += delegate {
inspector.DisableAndRestore (document, analysisFix.DocumentRegion);
};
subMenu.Add (menuItem);
}
var label = GettextCatalog.GetString ("_Options for \"{0}\"", InspectorResults.GetTitle (ir.Inspector));
var subMenuItem = new Gtk.MenuItem (label);
var optionsMenuItem = new Gtk.MenuItem (GettextCatalog.GetString ("_Configure inspection severity"));
optionsMenuItem.Activated += analysisFix.ShowOptions;
optionsMenuItem.Activated += delegate {
menu.Destroy ();
};
subMenu.Add (optionsMenuItem);
subMenuItem.Submenu = subMenu;
menu.Add (subMenuItem);
items++;
}
foreach (var fix_ in fixes.Where (f => f.BoundToIssue != null)) {
var fix = fix_;
foreach (var inspector_ in RefactoringService.GetInspectors (document.Editor.MimeType).Where (i => i.GetSeverity () != Severity.None)) {
var inspector = inspector_;
if (inspector.IdString.IndexOf (fix.BoundToIssue.FullName, StringComparison.Ordinal) < 0)
continue;
if (first) {
//.........这里部分代码省略.........
示例11: PopupQuickFixMenu
public void PopupQuickFixMenu ()
{
Gtk.Menu menu = new Gtk.Menu ();
Dictionary<Gtk.MenuItem, ContextAction> fixTable = new Dictionary<Gtk.MenuItem, ContextAction> ();
int mnemonic = 1;
foreach (ContextAction fix in fixes) {
var escapedLabel = fix.GetMenuText (document, loc).Replace ("_", "__");
var label = (mnemonic <= 10)
? "_" + (mnemonic++ % 10).ToString () + " " + escapedLabel
: " " + escapedLabel;
Gtk.MenuItem menuItem = new Gtk.MenuItem (label);
fixTable [menuItem] = fix;
menuItem.Activated += delegate(object sender, EventArgs e) {
// ensure that the Ast is recent.
document.UpdateParseDocument ();
var runFix = fixTable [(Gtk.MenuItem)sender];
runFix.Run (document, loc);
document.Editor.Document.CommitUpdateAll ();
menu.Destroy ();
};
menu.Add (menuItem);
}
menu.ShowAll ();
int dx, dy;
this.ParentWindow.GetOrigin (out dx, out dy);
dx += ((TextEditorContainer.EditorContainerChild)(this.document.Editor.Parent.Parent as TextEditorContainer) [this]).X;
dy += ((TextEditorContainer.EditorContainerChild)(this.document.Editor.Parent.Parent as TextEditorContainer) [this]).Y - (int)document.Editor.VAdjustment.Value;
menu.Popup (null, null, delegate (Gtk.Menu menu2, out int x, out int y, out bool pushIn) {
x = dx;
y = dy + Allocation.Height;
pushIn = false;
menuPushed = true;
QueueDraw ();
}, 0, Gtk.Global.CurrentEventTime);
menu.SelectFirst (true);
menu.Destroyed += delegate {
menuPushed = false;
QueueDraw ();
};
}
示例12: delegate
void IMenuItemContainer.ShowContextMenu(ActionItem aitem)
{
ActionMenuItem menuItem = aitem as ActionMenuItem;
Gtk.Menu m = new Gtk.Menu ();
Gtk.MenuItem item = new Gtk.ImageMenuItem (Gtk.Stock.Cut, null);
m.Add (item);
item.Activated += delegate (object s, EventArgs a) {
Cut (menuItem);
};
item.Visible = false; // No copy & paste for now
item = new Gtk.ImageMenuItem (Gtk.Stock.Copy, null);
m.Add (item);
item.Activated += delegate (object s, EventArgs a) {
Copy (menuItem);
};
item.Visible = false; // No copy & paste for now
item = new Gtk.ImageMenuItem (Gtk.Stock.Paste, null);
m.Add (item);
item.Activated += delegate (object s, EventArgs a) {
Paste (menuItem);
};
item.Visible = false; // No copy & paste for now
item = new Gtk.ImageMenuItem (Gtk.Stock.Delete, null);
m.Add (item);
item.Activated += delegate (object s, EventArgs a) {
Delete (menuItem);
};
m.ShowAll ();
m.Popup ();
}
示例13: PopupContextMenu
private void PopupContextMenu(IPrimaryToolDelegator mainTool, IDrawingEditor editor, ITool dt, MouseEvent ev)
{
m_contextMenu = new Gtk.Menu();
Gtk.MenuItem editLabel = new Gtk.MenuItem("Edit label");
editLabel.Activated += delegate(object sender, EventArgs e)
{
SimpleTextTool textTool = new SimpleTextTool(editor, this, dt, ev);
mainTool.DelegateTool = textTool;
textTool.StartEditing();
};
m_contextMenu.Add(editLabel);
m_contextMenu.ShowAll();
m_contextMenu.Popup();
}
示例14: ConstructMenuHelp
private void ConstructMenuHelp()
{
Debug.WriteLine("ConstructMenuHelp");
ConstructImageMenuItemHelpAbout();
menuHelp = new Gtk.Menu
{
Name = "menuHelp",
Visible = true,
};
menuHelp.Add(imageMenuItemHelpAbout);
}
示例15: PopupQuickFixMenu
void PopupQuickFixMenu (Gdk.EventButton evt)
{
var menu = new Gtk.Menu ();
Gtk.Menu fixMenu = menu;
ResolveResult resolveResult;
ICSharpCode.NRefactory.CSharp.AstNode node;
int items = 0;
if (ResolveCommandHandler.ResolveAt (document, out resolveResult, out node)) {
var possibleNamespaces = MonoDevelop.Refactoring.ResolveCommandHandler.GetPossibleNamespaces (
document,
node,
ref resolveResult
);
bool addUsing = !(resolveResult is AmbiguousTypeResolveResult);
if (addUsing) {
foreach (var t in possibleNamespaces.Where (tp => tp.Item2)) {
string ns = t.Item1;
var menuItem = new Gtk.MenuItem (string.Format ("using {0};", ns));
menuItem.Activated += delegate {
new MonoDevelop.Refactoring.ResolveCommandHandler.AddImport (document, resolveResult, ns, true, node).Run ();
menu.Destroy ();
};
menu.Add (menuItem);
items++;
}
}
bool resolveDirect = !(resolveResult is UnknownMemberResolveResult);
if (resolveDirect) {
foreach (var t in possibleNamespaces) {
string ns = t.Item1;
var menuItem = new Gtk.MenuItem (GettextCatalog.GetString ("{0}", ns + "." + document.Editor.GetTextBetween (node.StartLocation, node.EndLocation)));
menuItem.Activated += delegate {
new MonoDevelop.Refactoring.ResolveCommandHandler.AddImport (document, resolveResult, ns, false, node).Run ();
menu.Destroy ();
};
menu.Add (menuItem);
items++;
}
}
if (menu.Children.Any () && fixes.Any ()) {
fixMenu = new Gtk.Menu ();
var menuItem = new Gtk.MenuItem (GettextCatalog.GetString ("Quick Fixes"));
menuItem.Submenu = fixMenu;
menu.Add (menuItem);
items++;
}
}
PopulateFixes (fixMenu, ref items);
if (items == 0) {
menu.Destroy ();
return;
}
document.Editor.SuppressTooltips = true;
document.Editor.Parent.HideTooltip ();
menu.ShowAll ();
menu.SelectFirst (true);
menuPushed = true;
menu.Hidden += delegate {
document.Editor.SuppressTooltips = false;
};
menu.Destroyed += delegate {
menuPushed = false;
Hide ();
};
var container = document.Editor.Parent;
var child = (TextEditor.EditorContainerChild)container [this];
Gdk.Rectangle rect;
/* if (child != null) {
rect = new Gdk.Rectangle (child.X, child.Y + Allocation.Height - (int)document.Editor.VAdjustment.Value, 0, 0);
} else {*/
var p = container.LocationToPoint (loc);
rect = new Gdk.Rectangle (p.X + container.Allocation.X , p.Y + (int)document.Editor.LineHeight + container.Allocation.Y, 0, 0);
//}
GtkWorkarounds.ShowContextMenu (menu, document.Editor.Parent, null, rect);
}