示例#1
0
        public void ViewInWindow(IVidget vidget, Action onClose)
        {
            var backend = vidget.Backend;
            var control = backend.ToSwf();

            if (control != null)
            {
                control.Dock = DockStyle.Fill;
                var form = new Form {
                    FormBorderStyle = FormBorderStyle.SizableToolWindow,
                    Icon            = GdiIconery.LimadaSubWinIcon,
                    Text            = Frontend.CurrentDisplay.Info.Name + " - *"
                };
                form.FormClosing += (s, e) => onClose();
                form.Controls.Add(control);
                form.Show(Control.ParentForm);
                form.Location = Control.PointToScreen(new Point(Control.Location.X, Control.Location.Y + (Control.Height - form.Height) / 2));
                //form.Height = this.Height/2;
                Func <Point> calcOffset = () => new Point(form.Location.X - Control.ParentForm.Location.X, form.Location.Y - Control.ParentForm.Location.Y);
                var          offset     = calcOffset();
                form.LocationChanged                        += (s, e) =>
                                                      offset = calcOffset();
                Control.ParentForm.LocationChanged          += (s, e) =>
                                                      form.Location = new Point(Control.ParentForm.Location.X + offset.X, Control.ParentForm.Location.Y + offset.Y);
            }
        }
示例#2
0
 protected void AttachVidget(IVidget vidget)
 {
     vidget.GotFocus       -= VidgetGotFocus;
     vidget.ButtonReleased -= VidgetGotFocus;
     vidget.GotFocus       += VidgetGotFocus;
     vidget.ButtonReleased += VidgetGotFocus;
 }
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     base.InitializeBackend(frontend, context);
     this.Frontend = (TextViewerWithToolbar)frontend;
     SetToolbar(this.Frontend.Toolbar);
     SetTextViewer(this.Frontend.TextViewer);
 }
示例#4
0
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     base.InitializeBackend(frontend, context);
     Frontend = (Vidgets.MarkdownEdit)frontend;
     IsEmpty  = true;
     //Widget.KeyPressed += ToggleEditMode;
 }
示例#5
0
        protected virtual bool Run <T> (IVidget parent) where T : System.Windows.Forms.FileDialog, new()
        {
            if (_dialog == null)
            {
                throw new ArgumentException();
            }
            var fileDialog = new T();

            Converter.FileDialogSetValue(fileDialog, _dialog);
            System.Windows.Forms.Application.DoEvents();
            IWin32Window owner = null;

            if (parent != null)
            {
                var back = parent.Backend as System.Windows.Forms.Control;
                if (back != null)
                {
                    owner = back.FindForm();
                }
            }
            var result = fileDialog.ShowDialog();

            fileDialog.Dispose();
            if (result == System.Windows.Forms.DialogResult.OK)
            {
                Converter.FileDialogSetValue(_dialog, fileDialog);
                return(true);
            }
            return(false);
        }
示例#6
0
        public void AttachViewer(IVidget viewer, Action onShowAction)
        {
            if (viewer == null)
            {
                return;
            }
            var backend = viewer.Backend;

            if (backend == null)
            {
                return;
            }

            if (backend == this.Frontend.CurrentDisplay.Backend)
            {
                Trace.WriteLine("SplitViewBackend.AttachBackend: CurrentDisplay.Backend == backend");
                return;
            }

            var widget = backend.ToXwt();
            var panel  = AdjacentPanelOf(this.Frontend.CurrentDisplay);

            if (panel != null)
            {
                SetScrollingPanelContent(widget, panel);
            }

            onShowAction?.Invoke();
        }
示例#7
0
        public void SetContent(IVidget value)
        {
            var backend = value.Backend.ToSwf();

            if (!Control.Controls.Contains(backend))
            {
                backend.Dock = DockStyle.Fill;
                Control.Controls.Add(backend);
            }
        }
示例#8
0
        /// <summary>
        /// Shows the dialog.
        /// </summary>
        public bool Run(IVidget parentVidget)
        {
            try {
                running = true;
                Backend.Compose(_dialog);

                return(Backend.Run(parentVidget));
            } finally {
                running = false;
                Backend.Cleanup();
            }
        }
示例#9
0
        protected Panel AdjacentPanelOf(IVidget vidget)
        {
            var widget = vidget.Backend.ToXwt();

            if (SplitContainer.Panel1.Content.ScrollPeeledChildren().Contains(widget))
            {
                return(SplitContainer.Panel2);
            }
            else if (SplitContainer.Panel2.Content.ScrollPeeledChildren().Contains(widget))
            {
                return(SplitContainer.Panel1);
            }
            return(null);
        }
示例#10
0
        /// <summary>
        /// called in ContentViewManager when a ContentViewer is attached
        /// </summary>
        public void AttachViewer(IVidget viewer, Action onShowAction)
        {
            if (viewer == null)
            {
                return;
            }
            var backend = viewer.Backend;

            if (backend == null)
            {
                return;
            }

            var control = backend.ToSwf();
            var currentDisplayBackend = this.Frontend.CurrentDisplay.ToSwf();

            SplitterPanel panel = null;

            if (currentDisplayBackend != control)
            {
                if (SplitContainer.Panel1.Controls.Cast <Control>().Contains(currentDisplayBackend))
                {
                    panel = SplitContainer.Panel2;
                }
                else if (SplitContainer.Panel2.Controls.Cast <Control>().Contains(currentDisplayBackend))
                {
                    panel = SplitContainer.Panel1;
                }
            }
            else
            {
                Trace.WriteLine("SplitViewBackend.AttachBackend: currentDisplayBackend == control");
                return;
            }
            if (panel != null && !panel.Controls.Cast <Control>().Contains(control))
            {
                panel.SuspendLayout();
                panel.Controls.Clear();
                panel.Controls.Add(control);
                control.Dock = DockStyle.Fill;
                panel.ResumeLayout();
            }

            if (onShowAction != null)
            {
                onShowAction();
            }
        }
示例#11
0
        protected void VidgetGotFocus(object sender, EventArgs e)
        {
            var display = sender as IGraphSceneDisplay <IVisual, IVisualEdge>;

            if (display != null)
            {
                CurrentDisplay = display;
                return;
            }
            var vidget = sender as IVidget;

            if (vidget != null)
            {
                CurrentVidget = vidget;
            }
        }
示例#12
0
        public void ShowInNewWindow()
        {
            var source = CurrentDisplay ?? this.Display1;

            if (source == null)
            {
                return;
            }

            var graph   = source.Data.Graph;
            var focused = source.Data.Focused;

            IVidget vidget  = null;
            Action  onClose = null;

            if (graph != null && focused != null)
            {
                using (var contentViewManager = Registry.Create <IContentViewManager> ()) {
                    contentViewManager.IsProviderOwner = false;
                    if (contentViewManager.IsContent(graph, focused))
                    {
                        // TODO: get viewer, make a new instance of it, get the backend
                        // if sheetviewer, use display(see down) as Viewer
                    }
                }
            }
            // TODO: see above; for now we take always a VisualsDisplay
            {
                var display = new VisualsDisplay();
                onClose += () => Mesh.RemoveDisplay(display);

                Mesh.CopyDisplayProperties(source, display);
                display.Data = Mesh.CreateSinkScene(graph);

                Mesh.AddDisplay(display);
                vidget = display;
            }

            Backend.ViewInWindow(vidget, onClose);
        }
示例#13
0
        public void ViewInWindow(IVidget vidget, Action onClose)
        {
            if (vidget != null)
            {
                var parent = SplitContainer.ParentWindow;
                var vindow = new Vindow();
                vindow.Content = vidget;
                var window = vindow.Backend as Window;

                window.Icon            = Iconerias.Iconery.SubWinIcon;
                window.InitialLocation = WindowLocation.Manual;
                window.Title           = Frontend.CurrentDisplay.Info.Name + " - *";
                // Decorated = false,
                window.Resizable    = true;
                window.Size         = new Size(parent.Size.Width / 3, parent.Size.Height / 3);
                window.TransientFor = parent;


                window.Location =
                    new Point(this.SplitContainer.ScreenBounds.X, this.SplitContainer.ScreenBounds.Y + (this.Size.Height - window.Height) / 2);

                Func <Point> calcOffset = () =>
                                          new Point(window.Location.X - parent.Location.X, window.Location.Y - parent.Location.Y);
                var offset       = calcOffset();
                var parentMoving = true;
                window.BoundsChanged += (s, e) => {
                    if (!parentMoving)
                    {
                        offset = calcOffset();
                    }
                };
                parent.BoundsChanged += (s, e) => {
                    parentMoving    = true;
                    window.Location = new Point(parent.Location.X + offset.X, parent.Location.Y + offset.Y);
                    parentMoving    = false;
                };
                window.Show();
                parentMoving = false;
            }
        }
示例#14
0
        protected virtual bool Run <T> (IVidget parent) where T : FileDialog, new()
        {
            if (_dialog == null)
            {
                throw new ArgumentException();
            }
            var fileDialog = new T();

            FileDialogSetValue(_dialog, fileDialog);
            WindowFrame owner = null;

            if (parent != null)
            {
            }
            var result = fileDialog.Run(owner);

            fileDialog.Dispose();
            if (result)
            {
                FileDialogSetValue(fileDialog, _dialog);
            }
            return(result);
        }
示例#15
0
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     base.InitializeBackend(frontend, context);
     Frontend       = (Vidgets.WebBrowserVidget)frontend;
     Widget.Loaded += Widget_Loaded;
 }
示例#16
0
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     base.InitializeBackend(frontend, context);
     this.Frontend = (LVV.Toolbar)frontend;
 }
示例#17
0
 public virtual void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     this.Frontend = frontend;
 }
示例#18
0
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     base.InitializeBackend(frontend, context);
     Frontend = (Vidgets.PlainTextBox)frontend;
 }
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     base.InitializeBackend(frontend, context);
 }
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     base.InitializeBackend(frontend, context);
     this.Frontend = (TextViewerWithToolstrip0)frontend;
 }
示例#21
0
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     this.Frontend = (LVV.ToolbarButton)frontend;
 }
示例#22
0
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     ApplicationContext = context;
     this.Frontend      = (Toolbar)frontend;
 }
示例#23
0
 void IVindowBackend.SetContent(IVidget value)
 {
     this.SetContent(value);
 }
示例#24
0
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     base.InitializeBackend(frontend, context);
     this.Frontend = (Vidgets.ComboBox)frontend;
 }
示例#25
0
 public virtual void SetContent(IVidget value)
 {
     Content = value.Backend.ToXwt();
 }
示例#26
0
 protected void OnCurrentVidgetChanged(IVidget vidget)
 {
     CurrentVidgetChanged?.Invoke(vidget);
 }
示例#27
0
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     base.InitializeBackend(frontend, context);
     this.Frontend = (SplitView0)frontend;
     Compose2();
 }
示例#28
0
 public override void InitializeBackend(IVidget frontend, VidgetApplicationContext context)
 {
     base.InitializeBackend(frontend, context);
     this.Frontend = (WebBrowserVidget)frontend;
 }
示例#29
0
 public abstract bool Run(IVidget parent);
示例#30
0
 public override bool Run(IVidget parent) => base.Run <SaveFileDialog> (parent);