示例#1
0
        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);
            };
        }
示例#2
0
 void AdjustSize()
 {
     WidthRequest  = Convert.ToInt32(Resolution * BB.Width);
     HeightRequest = Convert.ToInt32(Resolution * BB.Height);
     DrawRaster();
     TheOverlayModel.AdjustPositions();
 }
示例#3
0
        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; };
        }
示例#4
0
        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;
        }
示例#5
0
        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);
                }
            }
        }
示例#6
0
 void OnParseTreeChanged()
 {
     TheOverlayModel.CurrentTool.OnDeactivate();
     TheOverlayModel.CurrentTool.OnActivate();
     TheOverlayModel.RedrawObjects();
 }