public static void launchO2DockContentAsStandAloneForm(Type typeOfControlToLoad, string controlName) { if (typeOfControlToLoad == null) { DI.log.error("in launchO2DockContentAsStandAloneForm typeOfControlToLoad was null"); } else { try { var sync = new AutoResetEvent(false); O2Thread.staThread(() => { try { DI.o2GuiStandAloneFormMode = true; //var controlToLoad = (Control) Activator.CreateInstance(typeOfControlToLoad); // if (typeOfControlToLoad != null) // { var o2DockContent = new O2DockContent(typeOfControlToLoad, DockState.Float, controlName); o2DockContent.dockContent.HandleCreated += (sender, e) => sync.Set(); // as soons as the control HandleCreated is created, we can let this function (launchO2DockContentAsStandAloneForm end) if (o2DockContent.createControlFromType()) { o2DockContent.dockContent.Width = o2DockContent.desiredWidth; o2DockContent.dockContent.Height = o2DockContent.desiredHeight; O2DockUtils.addO2DockContentToDIGlobalVar(o2DockContent); o2DockContent.dockContent.Closed += (sender, e) => { if (DI.dO2LoadedO2DockContent.Count == 0) // if there are no more controls trigger the end of the GUI session { O2AscxGUI.guiClosed.Set(); } }; o2DockContent.dockContent.ShowDialog(); } else { DI.log.error( "in launchO2DockContentAsStandAloneForm, could not create instance of controlToLoad: {0}", typeOfControlToLoad.ToString()); } } catch (Exception ex) { DI.log.ex(ex, "in launchO2DockContentAsStandAloneForm"); } sync.Set(); }); sync.WaitOne(); } catch (Exception ex) { DI.log.ex(ex); } } }
private static void addControlToO2GuiWithDockPanelSync(O2GuiWithDockPanel o2GuiWithDockPanel, O2DockContent controlToAdd, EventWaitHandle controlAdded) { //if (controlToAdd.dockContent != null && controlToAdd.dockContent.okThread( // delegate { addControlToO2GuiWithDockPanelSync(controlToAdd, controlAdded); })) //{ //var sync = new AutoResetEvent(false); // add the control on the o2GuiThread //DI.o2GuiWithDockPanel.Invoke(new EventHandler(delegate { try { if (controlToAdd.createControlFromType()) { controlToAdd.dockContent.Show(o2GuiWithDockPanel.getDockPanel(), controlToAdd.dockState); if (controlToAdd.dockState == DockState.Float && controlToAdd.dockContent.TopLevelControl != null) { controlToAdd.dockContent.TopLevelControl.Width = controlToAdd.desiredWidth; controlToAdd.dockContent.TopLevelControl.Height = controlToAdd.desiredHeight; } if (controlToAdd.dockState == DockState.Document) { if (DI.o2GuiWithDockPanel.Width < controlToAdd.desiredWidth) { DI.o2GuiWithDockPanel.Width = controlToAdd.desiredWidth + 10; } if (DI.o2GuiWithDockPanel.Height < controlToAdd.desiredHeight + 100) { DI.o2GuiWithDockPanel.Height = controlToAdd.desiredHeight + 100; } } O2DockUtils.addO2DockContentToDIGlobalVar(controlToAdd); } } catch (Exception ex) { DI.log.ex(ex, "in addControlToO2GuiWithDockPanelSync"); } controlAdded.Set(); // })); //} //controlAdded.WaitOne(); }
public static void showO2DockContentInDockPanel(O2DockContent o2DockContent) { try { DI.log.info("on O2DockPanel.showO2DockContentInDockPanel: {0} [{1}]", o2DockContent.name, o2DockContent.type); if (DI.o2GuiWithDockPanel.okThread(delegate { showO2DockContentInDockPanel(o2DockContent); })) { // if (o2DocContent.dockContent.okThread(delegate { showO2DockContentInDockPanel(o2DocContent); })) // if (DI.o2GuiWithDockPanel.getDockPanel().okThread( // delegate { showO2DockContentInDockPanel(o2DocContent); })) // now that we are on the correct thread the control can be created if (o2DockContent.createControlFromType()) { if (o2DockContent.dockContent.TopLevelControl != null) { o2DockContent.dockContent.Show(DI.o2GuiWithDockPanel.getDockPanel(), o2DockContent.dockState); if (o2DockContent.dockState == DockState.Float && o2DockContent.dockContent.TopLevelControl != null) { o2DockContent.dockContent.TopLevelControl.Width = o2DockContent.desiredWidth; o2DockContent.dockContent.TopLevelControl.Height = o2DockContent.desiredHeight; } } } else { DI.log.error("in showO2DockContentInDockPanel, could not create instance of controlToLoad: {0}", o2DockContent.type.ToString()); } } } catch (Exception ex) { DI.log.ex(ex, "on O2DockPanel.showO2DockContentInDockPanel"); } o2DockContent.controlLoadedIntoGui.Set(); }
public static void showO2DockContentInDockPanel(O2DockContent o2DockContent) { try { DI.log.info("on O2DockPanel.showO2DockContentInDockPanel: {0} [{1}]", o2DockContent.name, o2DockContent.type); if (DI.o2GuiWithDockPanel.okThread(delegate { showO2DockContentInDockPanel(o2DockContent); })) { // if (o2DocContent.dockContent.okThread(delegate { showO2DockContentInDockPanel(o2DocContent); })) // if (DI.o2GuiWithDockPanel.getDockPanel().okThread( // delegate { showO2DockContentInDockPanel(o2DocContent); })) // now that we are on the correct thread the control can be created if (o2DockContent.createControlFromType()) { if (o2DockContent.dockContent.TopLevelControl != null) { o2DockContent.dockContent.Show(DI.o2GuiWithDockPanel.getDockPanel(), o2DockContent.dockState); if (o2DockContent.dockState == DockState.Float && o2DockContent.dockContent.TopLevelControl != null) { o2DockContent.dockContent.TopLevelControl.Width = o2DockContent.desiredWidth; o2DockContent.dockContent.TopLevelControl.Height = o2DockContent.desiredHeight; } } } else DI.log.error("in showO2DockContentInDockPanel, could not create instance of controlToLoad: {0}", o2DockContent.type.ToString()); } } catch (Exception ex) { DI.log.ex(ex, "on O2DockPanel.showO2DockContentInDockPanel"); } o2DockContent.controlLoadedIntoGui.Set(); }
private static void addControlToO2GuiWithDockPanelSync(O2GuiWithDockPanel o2GuiWithDockPanel, O2DockContent controlToAdd, EventWaitHandle controlAdded) { //if (controlToAdd.dockContent != null && controlToAdd.dockContent.okThread( // delegate { addControlToO2GuiWithDockPanelSync(controlToAdd, controlAdded); })) //{ //var sync = new AutoResetEvent(false); // add the control on the o2GuiThread //DI.o2GuiWithDockPanel.Invoke(new EventHandler(delegate { try { if (controlToAdd.createControlFromType()) { controlToAdd.dockContent.Show(o2GuiWithDockPanel.getDockPanel(), controlToAdd.dockState); if (controlToAdd.dockState == DockState.Float && controlToAdd.dockContent.TopLevelControl != null) { controlToAdd.dockContent.TopLevelControl.Width = controlToAdd.desiredWidth; controlToAdd.dockContent.TopLevelControl.Height = controlToAdd.desiredHeight; } if (controlToAdd.dockState == DockState.Document) { if (DI.o2GuiWithDockPanel.Width < controlToAdd.desiredWidth) DI.o2GuiWithDockPanel.Width = controlToAdd.desiredWidth + 10; if (DI.o2GuiWithDockPanel.Height < controlToAdd.desiredHeight + 100) DI.o2GuiWithDockPanel.Height = controlToAdd.desiredHeight + 100; } O2DockUtils.addO2DockContentToDIGlobalVar(controlToAdd); } } catch(Exception ex) { DI.log.ex(ex, "in addControlToO2GuiWithDockPanelSync"); } controlAdded.Set(); // })); //} //controlAdded.WaitOne(); }
public static void launchO2DockContentAsStandAloneForm(Type typeOfControlToLoad, string controlName) { if (typeOfControlToLoad == null) DI.log.error("in launchO2DockContentAsStandAloneForm typeOfControlToLoad was null"); else try { var sync = new AutoResetEvent(false); O2Thread.staThread(() => { try { DI.o2GuiStandAloneFormMode = true; //var controlToLoad = (Control) Activator.CreateInstance(typeOfControlToLoad); // if (typeOfControlToLoad != null) // { var o2DockContent = new O2DockContent(typeOfControlToLoad, DockState.Float, controlName); o2DockContent.dockContent.HandleCreated += (sender, e) => sync.Set(); // as soons as the control HandleCreated is created, we can let this function (launchO2DockContentAsStandAloneForm end) if (o2DockContent.createControlFromType()) { o2DockContent.dockContent.Width = o2DockContent.desiredWidth; o2DockContent.dockContent.Height = o2DockContent.desiredHeight; O2DockUtils.addO2DockContentToDIGlobalVar(o2DockContent); o2DockContent.dockContent.Closed += (sender, e) => { if (DI.dO2LoadedO2DockContent.Count == 0) // if there are no more controls trigger the end of the GUI session O2AscxGUI.guiClosed.Set(); }; o2DockContent.dockContent.ShowDialog(); } else { DI.log.error( "in launchO2DockContentAsStandAloneForm, could not create instance of controlToLoad: {0}", typeOfControlToLoad.ToString()); } } catch (Exception ex) { DI.log.ex(ex, "in launchO2DockContentAsStandAloneForm"); } sync.Set(); }); sync.WaitOne(); } catch (Exception ex) { DI.log.ex(ex); } }