private void CreateContextMenu() { var m = TheContextMenu = new ContextMenu(); var i = new MenuItem("Jump to source"); i.Click += (s, e) => { JumpToSourceDoIt(PopupSource); }; m.MenuItems.Add(i); var ieditscope = i = new MenuItem("Edit this scope"); i.Click += (s, e) => { TheOverlayModel.CurEditing = PopupSource as OverlayScope; }; m.MenuItems.Add(i); var mm = new MenuItem("Assign style"); var massignstyle = mm; i = new MenuItem("Assign new style..."); i.Click += (s, e) => TheOverlayModel.AssignStyle(PdfOverlayModel.AssignStyleType.AssignNewStyle); mm.MenuItems.Add(i); i = new MenuItem("Assign current node style"); i.Click += (s, e) => TheOverlayModel.AssignStyle(PdfOverlayModel.AssignStyleType.AssignCurrentNodeStyle); mm.MenuItems.Add(i); i = new MenuItem("Change style to new style..."); i.Click += (s, e) => TheOverlayModel.AssignStyle(PdfOverlayModel.AssignStyleType.ChangeToNewStyle); mm.MenuItems.Add(i); i = new MenuItem("Change style to current node style"); i.Click += (s, e) => TheOverlayModel.AssignStyle(PdfOverlayModel.AssignStyleType.ChangeToCurrentNodeStyle); mm.MenuItems.Add(i); m.MenuItems.Add(mm); var mselection = mm = new MenuItem("Selection"); i = new MenuItem("Copy"); i.Click += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Copy); mm.MenuItems.Add(i); i = new MenuItem("Copy enscoped"); i.Click += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.CopyEnscoped); mm.MenuItems.Add(i); i = new MenuItem("Cut"); i.Click += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Cut); mm.MenuItems.Add(i); i = new MenuItem("Cut enscoped"); i.Click += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.CutEnscoped); mm.MenuItems.Add(i); i = new MenuItem("Delete"); i.Click += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Delete); mm.MenuItems.Add(i); i = new MenuItem("Collect"); i.Click += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Collect); mm.MenuItems.Add(i); i = new MenuItem("Collect and enscope"); i.Click += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.CollectEnscoped); mm.MenuItems.Add(i); m.MenuItems.Add(mm); m.Popup += (s, e) => { PopupSource = ObjectAtCursor; massignstyle.Enabled = mselection.Enabled = TheOverlayModel.selectionTool.SelItems.Count() > 0; ieditscope.Enabled = (PopupSource is OverlayScope); }; }
private void CreateContextMenu() { var m = TheContextMenu = new Gtk.Menu(); var i = new Gtk.MenuItem("Jump to source"); i.Activated += (s, e) => { JumpToSourceDoIt(PopupSource); }; m.Add(i); i = new Gtk.MenuItem("Edit this scope"); i.Activated += (s, e) => { }; m.Add(i); var mm = new Gtk.MenuItem("Assign style"); i = new Gtk.MenuItem("Assign new style..."); i.Activated += (s, e) => TheOverlayModel.AssignStyle(PdfOverlayModel.AssignStyleType.AssignNewStyle); var mmm = new Gtk.Menu(); mm.Submenu = mmm; mmm.Add(i); i = new Gtk.MenuItem("Assign current node style"); i.Activated += (s, e) => TheOverlayModel.AssignStyle(PdfOverlayModel.AssignStyleType.AssignCurrentNodeStyle); mmm.Add(i); i = new Gtk.MenuItem("Change style to new style..."); i.Activated += (s, e) => TheOverlayModel.AssignStyle(PdfOverlayModel.AssignStyleType.ChangeToNewStyle); mmm.Add(i); i = new Gtk.MenuItem("Change style to current node style"); i.Activated += (s, e) => TheOverlayModel.AssignStyle(PdfOverlayModel.AssignStyleType.ChangeToCurrentNodeStyle); mmm.Add(i); m.Add(mm); mm = new Gtk.MenuItem("Selection"); mmm = new Gtk.Menu(); mm.Submenu = mmm; i = new Gtk.MenuItem("Copy"); i.Activated += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Copy); mmm.Add(i); i = new Gtk.MenuItem("Copy enscoped"); i.Activated += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.CopyEnscoped); mmm.Add(i); i = new Gtk.MenuItem("Cut"); i.Activated += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Cut); mmm.Add(i); i = new Gtk.MenuItem("Cut enscoped"); i.Activated += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.CutEnscoped); mmm.Add(i); i = new Gtk.MenuItem("Delete"); i.Activated += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Delete); mmm.Add(i); i = new Gtk.MenuItem("Collect"); i.Activated += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Collect); mmm.Add(i); i = new Gtk.MenuItem("Collect and enscope"); i.Activated += (s, e) => TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.CollectEnscoped); mmm.Add(i); m.Add(mm); m.PopupMenu += (s, e) => { PopupSource = ObjectAtCursor; }; }
void OnKeyPress(object sender, Gtk.KeyPressEventArgs eee) { var e = eee.Event; //base.OnKeyDown(e); TEKeyArgs ee = e.ToTEKeyArgs(); TheOverlayModel.CurrentTool.KeyDown(ee); //e.Handled = ee.Handled; // turn off raster on Alt Rasterizer.View.OverrideWithZeroGridWidth = Control.ModifierKeys.HasFlag(Keys.Alt) && !Control.ModifierKeys.HasFlag(Keys.Shift); Rasterizer.View.OverrideWithHalfGridWidth = Control.ModifierKeys.HasFlag(Keys.Alt) && Control.ModifierKeys.HasFlag(Keys.Shift); if (e.Key == Gdk.Key.Alt_L || e.Key == Gdk.Key.Alt_R) { ee.Handled = true; } if (!ee.Handled) { var ModMask = Gtk.Accelerator.DefaultModMask; var nState = e.State & ModMask; // escape cancels current operation if (e.Key == Gdk.Key.Escape) { TheOverlayModel.ActivateDefaultTool(); } if (e.Key == Gdk.Key.C && nState == Gdk.ModifierType.ControlMask) { TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Copy); } else if (e.Key == Gdk.Key.X && nState == Gdk.ModifierType.ControlMask) { TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Cut); } else if (e.Key == Gdk.Key.V && nState == Gdk.ModifierType.ControlMask) { GlobalUI.UI.ShowMessageBox("Currently pasting directly in the WYSIWYG area is not possible. However, you can paste into the code (text) field.", "Paste not possible", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (e.Key == Gdk.Key.Delete) { TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Delete); } } //return true; }
protected override void OnKeyDown(KeyEventArgs e) { //base.OnKeyDown(e); TEKeyArgs ee = e.ToTEKeyArgs(); TheOverlayModel.CurrentTool.KeyDown(ee); e.Handled = ee.Handled; // turn off raster on Alt Rasterizer.View.OverrideWithZeroGridWidth = Control.ModifierKeys.HasFlag(Keys.Alt) && !Control.ModifierKeys.HasFlag(Keys.Shift); Rasterizer.View.OverrideWithHalfGridWidth = Control.ModifierKeys.HasFlag(Keys.Alt) && Control.ModifierKeys.HasFlag(Keys.Shift); if (e.KeyCode == Keys.Alt) { e.Handled = true; } if (!e.Handled) { // escape cancels current operation if (e.KeyCode == Keys.Escape) { TheOverlayModel.ActivateDefaultTool(); } if (e.KeyCode == Keys.C && e.Control) { TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Copy); } else if (e.KeyCode == Keys.X && e.Control) { TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Cut); } else if (e.KeyCode == Keys.V && e.Control) { GlobalUI.UI.ShowMessageBox("Currently pasting directly in the WYSIWYG area is not possible. However, you can paste into the code (text) field.", "Paste not possible", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (e.KeyCode == Keys.Delete) { TheOverlayModel.PerformCodeBlockOperation(PdfOverlayModel.CodeBlockAction.Delete); } } }