public void AddChild(RenderElement renderElem, object owner) { if (renderElem is RenderBoxBase) { if (owner is ITopWindowBox) { var topWinBox = owner as ITopWindowBox; if (topWinBox.PlatformWinBox == null) { FormPopupShadow popupShadow1 = new FormPopupShadow(); popupShadow1.Visible = false; IntPtr handle1 = popupShadow1.Handle; //*** //create platform winbox var newForm = new AbstractCompletionWindow(); newForm.LinkedParentForm = this.FindForm(); newForm.LinkedParentControl = this; newForm.PopupShadow = popupShadow1; //TODO: //1. review here=> 300,200 //2. how to choose InnerViewportKind UISurfaceViewportControl newSurfaceViewport = this.CreateNewOne(300, 200, InnerViewportKind.GLES); newSurfaceViewport.Location = new System.Drawing.Point(0, 0); newForm.Controls.Add(newSurfaceViewport); renderElem.ResetRootGraphics(newSurfaceViewport.RootGfx); renderElem.SetLocation(0, 0); newSurfaceViewport.AddChild(renderElem); //----------------------------------------------------- IntPtr tmpHandle = newForm.Handle;//force newform to create window handle //----------------------------------------------------- var platformWinBox = new PlatformWinBoxForm(newForm); topWinBox.PlatformWinBox = platformWinBox; platformWinBox.UseRelativeLocationToParent = true; platformWinBox.PreviewVisibilityChanged += PlatformWinBox_PreviewVisibilityChanged; platformWinBox.PreviewBoundChanged += PlatformWinBox_PreviewBoundChanged; platformWinBox.BoundsChanged += PlatformWinBox_BoundsChanged; platformWinBox.VisibityChanged += PlatformWinBox_VisibityChanged; _subForms.Add(newForm); } } else { _rootgfx.AddChild(renderElem); } } else { _rootgfx.AddChild(renderElem); } }
public void AddContent(RenderElement vi, object owner) { if (vi is RenderBoxBase) { if (owner is ITopWindowBox) { var topWinBox = owner as ITopWindowBox; if (topWinBox.PlatformWinBox == null) { FormPopupShadow2 popupShadow1 = new FormPopupShadow2(); IntPtr handle1 = popupShadow1.Handle; //create platform winbox var newForm = new AbstractCompletionWindow(); newForm.LinkedParentForm = this.FindForm(); newForm.LinkedParentControl = this; newForm.PopupShadow = popupShadow1; UISurfaceViewportControl newSurfaceViewport = this.CreateNewOne(300, 200); newSurfaceViewport.Location = new System.Drawing.Point(0, 0); newForm.Controls.Add(newSurfaceViewport); vi.ResetRootGraphics(newSurfaceViewport.RootGfx); vi.SetLocation(0, 0); newSurfaceViewport.AddContent(vi); //----------------------------------------------------- s_tmpHandle = newForm.Handle;//force newform to create window handle //---------- var platformWinBox = new PlatformWinBoxForm(newForm); topWinBox.PlatformWinBox = platformWinBox; platformWinBox.UseRelativeLocationToParent = true; subForms.Add(newForm); s_tmpHandle = IntPtr.Zero; } } else { this.rootgfx.TopWindowRenderBox.AddChild(vi); } } else { this.rootgfx.TopWindowRenderBox.AddChild(vi); } }
void IPlatformWindowBox.Close() { form.Close(); form = null; }
public PlatformWinBoxForm(AbstractCompletionWindow form) { this.form = form; }
public void AddContent(RenderElement vi, object owner) { if (vi is RenderBoxBase) { if (owner is ITopWindowBox) { var topWinBox = owner as ITopWindowBox; if (topWinBox.PlatformWinBox == null) { //create platform winbox var newForm = new AbstractCompletionWindow(); newForm.LinkedParentForm = this.FindForm(); newForm.LinkedParentControl = this; UISurfaceViewportControl newSurfaceViewport = this.CreateNewOne(300, 200); newSurfaceViewport.Location = new System.Drawing.Point(0, 0); newForm.Controls.Add(newSurfaceViewport); vi.ResetRootGraphics(newSurfaceViewport.RootGfx); vi.SetLocation(0, 0); newSurfaceViewport.AddContent(vi); //------------------------------------------------------ var platformWinBox = new PlatformWinBoxForm(newForm); topWinBox.PlatformWinBox = platformWinBox; platformWinBox.UseRelativeLocationToParent = true; subForms.Add(newForm); } } else { this.rootgfx.TopWindowRenderBox.AddChild(vi); } } else { this.rootgfx.TopWindowRenderBox.AddChild(vi); } }
void IPlatformWindowBox.Close() { _form.Close(); _form = null; }
public PlatformWinBoxForm(AbstractCompletionWindow form) { _form = form; _form.Move += (s, e) => _evalLocationRelativeToDesktop = false; }