static void CreateReadyForm( out LayoutFarm.UI.UISurfaceViewportControl viewport, out Form formCanvas) { int w = 800; int h = 600; var rootgfx = new MyRootGraphic(uiPlatformWinForm, useOpenGL ? openGLPlatform : gdiPlatform, w, h); var topRenderBox = rootgfx.TopWindowRenderBox; formCanvas = FormCanvasHelper.CreateNewFormCanvas(rootgfx, useOpenGL ? InnerViewportKind.GL : InnerViewportKind.GdiPlus, out viewport); formCanvas.Text = "FormCanvas 1"; viewport.PaintMe(); formCanvas.WindowState = FormWindowState.Maximized; formCanvas.Show(); }
public void SetUISurfaceViewportControl(LayoutFarm.UI.UISurfaceViewportControl vw) { //--------------------------------------- //this specific for WindowForm viewport //--------------------------------------- _vw = vw; _ownerForm = _vw.FindForm(); System.Drawing.Rectangle screenRectangle = _ownerForm.RectangleToScreen(_ownerForm.ClientRectangle); _formTitleBarHeight = screenRectangle.Top - _ownerForm.Top; System.Drawing.Rectangle primScreenWorkingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea; _primaryScreenWorkingAreaW = primScreenWorkingArea.Width; _primaryScreenWorkingAreaH = primScreenWorkingArea.Height; // switch (vw.InnerViewportKind) { case InnerViewportKind.GdiPlusOnGLES: case InnerViewportKind.AggOnGLES: SetUpGLSurface(vw.GetOpenTKControl()); break; } }
static void MakeFormCanvas(Form form1, LayoutFarm.UI.UISurfaceViewportControl surfaceViewportControl) { form1.FormClosing += (s, e) => { surfaceViewportControl.Close(); }; }
private void cmdShowEmbededViewport_Click(object sender, EventArgs e) { Form simpleForm = new Form(); simpleForm.Text = "SimpleForm2"; simpleForm.WindowState = FormWindowState.Maximized; Rectangle screenClientAreaRect = Screen.PrimaryScreen.WorkingArea; var viewport = new LayoutFarm.UI.UISurfaceViewportControl(); viewport.Bounds = new Rectangle(0, 0, screenClientAreaRect.Width, screenClientAreaRect.Height); simpleForm.Controls.Add(viewport); int w = 800; int h = 600; var rootgfx = new MyRootGraphic(this.uiPlatformWinForm, this.gfxPlatform, w, h); viewport.InitRootGraphics(rootgfx, rootgfx.TopWinEventPortal, InnerViewportKind.GdiPlus); viewport.PaintMe(); simpleForm.Show(); ShowFormLayoutInspector(viewport); }
public static Form CreateNewFormCanvas( int xpos, int ypos, int w, int h, InnerViewportKind internalViewportKind, out UISurfaceViewportControl canvasViewport) { //create new form with new user control Form form1 = new Form(); CreateCanvasControlOnExistingControl( form1, xpos, ypos, w, h, internalViewportKind, out canvasViewport); //---------------------- MakeFormCanvas(form1, canvasViewport); UISurfaceViewportControl innerViewport = canvasViewport; form1.SizeChanged += (s, e) => { if (form1.WindowState == FormWindowState.Maximized) { Screen currentScreen = GetScreenFromX(form1.Left); //make full screen ? if (innerViewport != null) { innerViewport.Size = currentScreen.WorkingArea.Size; } } }; //---------------------- return(form1); }
public static Form CreateNewFormCanvas( int w, int h, InnerViewportKind internalViewportKind, out UISurfaceViewportControl canvasViewport) { return(CreateNewFormCanvas(0, 0, w, h, internalViewportKind, out canvasViewport)); }
public static void MakeFormCanvas(Form form1, UISurfaceViewportControl surfaceViewportControl) { form1.FormClosing += (s, e) => { surfaceViewportControl.Close(); }; }
public static Form CreateNewFormCanvas( MyRootGraphic myRootGfx, InnerViewportKind internalViewportKind, out UISurfaceViewportControl canvasViewport) { Form form1 = new Form(); var innerViewport = canvasViewport = new UISurfaceViewportControl(); Rectangle screenClientAreaRect = new Rectangle(0, 0, 800, 600); //Conv.ToRect(Screen.PrimaryScreen.WorkingArea); canvasViewport.InitRootGraphics(myRootGfx, myRootGfx.TopWinEventPortal, internalViewportKind); canvasViewport.Bounds = new Rectangle(0, 0, screenClientAreaRect.Width, screenClientAreaRect.Height); //---------------------- form1.Controls.Add(canvasViewport); //---------------------- MakeFormCanvas(form1, canvasViewport); //TODO: review here //form1.SizeChanged += (s, e) => //{ // if (form1.WindowState == FormWindowState.Maximized) // { // Screen currentScreen = GetScreenFromX(form1.Left); // //make full screen ? // if (innerViewport != null) // { // innerViewport.Size = currentScreen.WorkingArea.Size; // } // } //}; //---------------------- return(form1); }
static void CreateNewFormCanvas( Form form1, MyRootGraphic myRootGfx, InnerViewportKind internalViewportKind, out LayoutFarm.UI.UISurfaceViewportControl canvasViewport) { var innerViewport = canvasViewport = new LayoutFarm.UI.UISurfaceViewportControl(); Rectangle screenClientAreaRect = Conv.ToRect(Screen.PrimaryScreen.WorkingArea); canvasViewport.InitRootGraphics(myRootGfx, myRootGfx.TopWinEventPortal, internalViewportKind); canvasViewport.Bounds = new System.Drawing.Rectangle(0, 0, screenClientAreaRect.Width, screenClientAreaRect.Height); ////---------------------- //form1.Controls.Add(canvasViewport); ////---------------------- MakeFormCanvas(form1, canvasViewport); form1.SizeChanged += (s, e) => { if (form1.WindowState == FormWindowState.Maximized) { Screen currentScreen = GetScreenFromX(form1.Left); //make full screen ? if (innerViewport != null) { innerViewport.Size = currentScreen.WorkingArea.Size; } } }; }
public SampleViewport(LayoutFarm.UI.UISurfaceViewportControl vw) { this.vw = vw; var workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea; this.primaryScreenWorkingAreaW = workingArea.Width; this.primaryScreenWorkingAreaH = workingArea.Height; }
public static void ShowFormLayoutInspector(LayoutFarm.UI.UISurfaceViewportControl viewport) { var formLayoutInspector = new LayoutFarm.Dev.FormLayoutInspector(); formLayoutInspector.Show(); formLayoutInspector.Connect(viewport); formLayoutInspector.Show(); }
public void BindSurface(LayoutFarm.UI.UISurfaceViewportControl surfaceViewport) { _myWidth = 800; _myHeight = 600; _surfaceViewport = surfaceViewport; _rootGfx = surfaceViewport.RootGfx; }
public void Connect(LayoutFarm.UI.UISurfaceViewportControl vwport) { #if DEBUG this.vwport = vwport; IdbugOutputWindow outputWin = vwport.IdebugOutputWin; outputWin.dbug_VisualRootDrawMsg += rootDrawMsgEventHandler; outputWin.dbug_VisualRootHitChainMsg += artUISurfaceViewport1_dbug_VisualRootHitChainMsg; outputWin.dbug_EnableAllDebugInfo(); #endif }
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); } }
static void ShowFormLayoutInspector(LayoutFarm.UI.UISurfaceViewportControl viewport) { var formLayoutInspector = new LayoutFarm.Dev.FormLayoutInspector(); formLayoutInspector.Show(); formLayoutInspector.FormClosed += (s, e2) => { formLayoutInspector = null; }; formLayoutInspector.Connect(viewport); }
public static void CreateCanvasControlOnExistingControl( Control landingControl, int xpos, int ypos, int w, int h, InnerViewportKind internalViewportKind, out UISurfaceViewportControl canvasViewport) { //1. init InitWinform(); IInstalledTypefaceProvider fontLoader = s_fontstore; //2. ITextService textService = null; switch (internalViewportKind) { default: //gdi, gdi on gles textService = PixelFarm.Drawing.WinGdi.WinGdiPlusPlatform.GetTextService(); break; case InnerViewportKind.PureAgg: case InnerViewportKind.AggOnGLES: case InnerViewportKind.GLES: textService = new OpenFontTextService(); break; } PixelFarm.Drawing.WinGdi.WinGdiPlusPlatform.SetInstalledTypefaceProvider(fontLoader); //--------------------------------------------------------------------------- MyRootGraphic myRootGfx = new MyRootGraphic(w, h, textService); //--------------------------------------------------------------------------- var innerViewport = canvasViewport = new UISurfaceViewportControl(); Rectangle screenClientAreaRect = Conv.ToRect(Screen.PrimaryScreen.WorkingArea); canvasViewport.InitRootGraphics(myRootGfx, myRootGfx.TopWinEventPortal, internalViewportKind); canvasViewport.Bounds = new System.Drawing.Rectangle(xpos, ypos, screenClientAreaRect.Width, screenClientAreaRect.Height); landingControl.Controls.Add(canvasViewport); // Form ownerForm = landingControl.FindForm(); if (ownerForm != null) { ownerForm.FormClosing += (s, e) => { innerViewport.Close(); }; } }
static void ShowFormPrint(LayoutFarm.UI.UISurfaceViewportControl viewport) { var formPrint = new LayoutFarm.Dev.FormPrint(); formPrint.Show(); formPrint.FormClosed += (s, e2) => { formPrint = null; }; formPrint.Connect(viewport); }
public void BindSurface(LayoutFarm.UI.UISurfaceViewportControl surfaceViewport) { _surfaceViewport = surfaceViewport; _rootGfx = surfaceViewport.RootGfx; //---------------------- _glControl = surfaceViewport.GetOpenTKControl(); _myWidth = _glControl.Width; _myHeight = _glControl.Height; IntPtr hh1 = _glControl.Handle; //ensure that contrl handler is created _glControl.MakeCurrent(); }
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); } }
private void cmdShowEmbededViewport_Click(object sender, EventArgs e) { Form simpleForm = new Form(); simpleForm.Text = "SimpleForm2"; simpleForm.WindowState = FormWindowState.Maximized; Rectangle screenClientAreaRect = Screen.PrimaryScreen.WorkingArea; var viewport = new LayoutFarm.UI.UISurfaceViewportControl(); viewport.Bounds = new Rectangle(0, 0, screenClientAreaRect.Width, screenClientAreaRect.Height); simpleForm.Controls.Add(viewport); int w = 800; int h = 600; var rootgfx = new MyRootGraphic(this.uiPlatformWinForm, w, h); viewport.InitRootGraphics(rootgfx, rootgfx.TopWinEventPortal, InnerViewportKind.GdiPlus); viewport.PaintMe(); simpleForm.Show(); ShowFormLayoutInspector(viewport); }
/// <summary> /// create new UIViewport based on this control's current platform /// </summary> /// <returns></returns> public UISurfaceViewportControl CreateNewOne(int w, int h, InnerViewportKind innerViewportKind) { //each viewport has its own root graphics UISurfaceViewportControl newViewportControl = new UISurfaceViewportControl(); newViewportControl.Size = new System.Drawing.Size(w, h); RootGraphic newRootGraphic = _rootgfx.CreateNewOne(w, h); ITopWindowEventRoot topEventRoot = null; if (newRootGraphic is ITopWindowEventRootProvider) { topEventRoot = ((ITopWindowEventRootProvider)newRootGraphic).EventRoot; } newViewportControl.InitRootGraphics( newRootGraphic,//new root topEventRoot, innerViewportKind); return(newViewportControl); }
public SampleViewport(LayoutFarm.UI.UISurfaceViewportControl vw) { this.vw = vw; ownerForm = this.vw.FindForm(); System.Drawing.Rectangle screenRectangle = ownerForm.RectangleToScreen(ownerForm.ClientRectangle); _formTitleBarHeight = screenRectangle.Top - ownerForm.Top; var primScreenWorkingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea; this.primaryScreenWorkingAreaW = primScreenWorkingArea.Width; this.primaryScreenWorkingAreaH = primScreenWorkingArea.Height; //-------------- imageContentMan = new ImageContentManager(); imageContentMan.ImageLoadingRequest += (s, e) => { e.SetResultImage(LoadBitmap(e.ImagSource)); }; }
public static void CreateReadyForm( out LayoutFarm.UI.UISurfaceViewportControl viewport, out Form formCanvas) { //1. select view port kind InnerViewportKind innerViewportKind = InnerViewportKind.GdiPlus; var workingArea = Screen.PrimaryScreen.WorkingArea; formCanvas = FormCanvasHelper.CreateNewFormCanvas( workingArea.Width, workingArea.Height, innerViewportKind, out viewport); formCanvas.Text = "FormCanvas 1 :" + innerViewportKind; viewport.PaintMe(); formCanvas.WindowState = FormWindowState.Maximized; formCanvas.Show(); }
public void RunDemo(App app) { //1. create blank form YourImplementation.DemoFormCreatorHelper.CreateReadyForm( (InnerViewportKind)lstPlatformSelectors.SelectedItem, out _latestviewport, out _latest_formCanvas); AppHostWinForm appHost = new AppHostWinForm(); appHost.SetUISurfaceViewportControl(_latestviewport); _latest_formCanvas.FormClosed += (s, e) => { //when owner form is disposed //we should clear our resource? app.OnClosing(); app.OnClosed(); _latest_formCanvas = null; _latestviewport = null; }; //2. create app host appHost.StartApp(app); _latestviewport.TopDownRecalculateContent(); _latestviewport.PaintMe(); //================================================== if (this.chkShowLayoutInspector.Checked) { YourImplementation.LayoutInspectorUtils.ShowFormLayoutInspector(_latestviewport); } if (this.chkShowFormPrint.Checked) { ShowFormPrint(_latestviewport); } }
void CreateReadyForm( out LayoutFarm.UI.UISurfaceViewportControl viewport, out Form formCanvas) { var workingArea = Screen.PrimaryScreen.WorkingArea; int w = workingArea.Width; int h = workingArea.Height; MyRootGraphic rootgfx = new MyRootGraphic(this.uiPlatformWinForm, this.chkUseGLCanvas.Checked ? openGLPlatform : gdiPlatform, w, h); formCanvas = FormCanvasHelper.CreateNewFormCanvas(rootgfx, this.chkUseGLCanvas.Checked ? InnerViewportKind.GL : InnerViewportKind.GdiPlus, out viewport); formCanvas.Text = "FormCanvas 1"; viewport.PaintMe(); formCanvas.WindowState = FormWindowState.Maximized; formCanvas.Show(); }
/// <summary> /// create new UIViewport based on this control's current platform /// </summary> /// <returns></returns> public UISurfaceViewportControl CreateNewOne(int w, int h) { //each viewport has its own root graphics UISurfaceViewportControl newViewportControl = new UISurfaceViewportControl(); newViewportControl.Size = new System.Drawing.Size(w, h); RootGraphic newRootGraphic = this.rootgfx.CreateNewOne(w, h); ITopWindowEventRoot topEventRoot = null; if (newRootGraphic is ITopWindowEventRootProvider) { topEventRoot = ((ITopWindowEventRootProvider)newRootGraphic).EventRoot; } newViewportControl.InitRootGraphics( newRootGraphic,//new root topEventRoot, this.innerViewportKind); return newViewportControl; }