public RmlWidgetComponent(RmlView view, AnomalousMvcContext context, MyGUIViewHost viewHost) : base("Medical.GUI.AnomalousMvc.RmlView.RmlWidgetComponent.layout", viewHost) { this.context = context; this.eventController = view.createRocketEventController(context, viewHost); rmlImage = (ImageBox)widget; rocketWidget = new RocketWidget(rmlImage, viewHost.View.Transparent, false); imageHeight = widget.Height; imageWidth = widget.Width; if (view.RmlFile != null) { startRmlUpdate(); if (view.RmlFile != null) { rocketWidget.Context.ZoomLevel = view.ZoomLevel; documentName = RocketInterface.createValidFileUrl(context.ResourceProvider.getFullFilePath(view.RmlFile)); using (ElementDocument document = rocketWidget.Context.LoadDocument(documentName)) { if (document != null) { document.Show(); rocketWidget.removeFocus(); rocketWidget.renderOnNextFrame(); } } } endRmlUpdate(); } view._fireComponentCreated(this); }
public MeasurementDisplay(Element element, AnomalousMvcContext context, RocketWidget rocketWidget) { this.context = context; this.element = element; this.rocketWidget = rocketWidget; String target = element.GetAttributeString("target"); if (MeasurementController.tryGetCalculator(target, out measurement)) { switch (element.GetAttributeString("units")) { case "percent": context.OnLoopUpdate += Context_OnLoopUpdatePercent; break; case "centimeters": context.OnLoopUpdate += Context_OnLoopUpdateCm; break; case "millimeters": default: context.OnLoopUpdate += Context_OnLoopUpdateMm; break; } } else { Log.Warning("Could not find a measurement named '{0}'. The measurement will not be displayed.", target); element.InnerRml = String.Format("Cannot find measurement '{0}' in scene.", target); } }
private RmlWysiwygComponent(AnomalousMvcContext context, MyGUIViewHost viewHost, RmlWysiwygViewBase rmlWysiwygViewInterface) : base("Medical.GUI.Editor.RmlWysiwyg.RmlWysiwygComponent.layout", viewHost) { undoRedoCallback = defaultUndoRedoCallback; this.context = context; this.rmlWysiwygViewInterface = rmlWysiwygViewInterface; rmlImage = (ImageBox)widget; rocketWidget = new RocketWidget(rmlImage, viewHost.View.Transparent); rmlImage.MouseButtonPressed += rmlImage_MouseButtonPressed; rmlImage.MouseButtonReleased += rmlImage_MouseButtonReleased; rmlImage.MouseDrag += new MyGUIEvent(rmlImage_MouseDrag); rmlImage.MouseWheel += new MyGUIEvent(rmlImage_MouseWheel); rmlImage.EventScrollGesture += new MyGUIEvent(rmlImage_EventScrollGesture); imageHeight = rmlImage.Height; selectedElementManager = new SelectedElementManager(rmlImage, rocketWidget.Context); draggingElementManager = new DraggingElementManager(this); foreach (var elementStrategy in rmlWysiwygViewInterface.CustomElementStrategies) { elementStrategyManager.add(elementStrategy); } if (rmlWysiwygViewInterface.GetMissingRmlCallback != null) { getMissingRmlCallback = rmlWysiwygViewInterface.GetMissingRmlCallback; } else { getMissingRmlCallback = getDefaultMissingRml; } }
public override void Dispose() { draggingElementManager.Dispose(); previewElement.Dispose(); disposed = true; rocketWidget.Dispose(); rocketWidget = null; base.Dispose(); }
public void writeText(FreeImageBitmap bitmap, string p, int fontSize) { p = p.Replace("\n", "<br/>"); int width = Math.Min(bitmap.Width, 2048); int height = Math.Min(bitmap.Height, 256); ImageBox imageBox = (ImageBox)Gui.Instance.createWidgetT("ImageBox", "ImageBox", 0, 0, width, height, Align.Default, "Overlapped", "TempImageBox"); RocketWidget rocketWidget = null; try { imageBox.Visible = false; rocketWidget = new RocketWidget(imageBox, true); var cornerColor = Engine.Color.FromARGB(bitmap.GetPixel(0, 0).ToArgb()); rocketWidget.resized(); StringBuilder sb = new StringBuilder(); sb.AppendFormat(DocumentStart, cornerColor.ToHexString(), fontSize); sb.AppendFormat("<p>{0}</p>", p); sb.Append(DocumentEnd); var resourceLoader = new RocketAssemblyResourceLoader(this.GetType().Assembly); RocketInterface.Instance.FileInterface.addExtension(resourceLoader); var document = rocketWidget.Context.LoadDocumentFromMemory(sb.ToString()); if (document != null) { document.Show(ElementDocument.FocusFlags.NONE); } RocketInterface.Instance.FileInterface.removeExtension(resourceLoader); using (FreeImageBitmap copyrightBitmap = new FreeImageBitmap(imageBox.Width, imageBox.Height, PixelFormat.Format32bppArgb)) { rocketWidget.writeToGraphics(copyrightBitmap, new Rectangle(0, 0, copyrightBitmap.Width, copyrightBitmap.Height)); using (FreeImageBitmap background = bitmap.Copy(0, 0, Math.Min(copyrightBitmap.Width, bitmap.Width), Math.Min(copyrightBitmap.Height, bitmap.Height))) { background.ConvertColorDepth(FREE_IMAGE_COLOR_DEPTH.FICD_24_BPP); copyrightBitmap.Composite(false, null, background); bitmap.Paste(copyrightBitmap, 0, 0, int.MaxValue); } } } finally { //Using block does not work (wtf?), dispose manually if (rocketWidget != null) { rocketWidget.Dispose(); } Gui.Instance.destroyWidget(imageBox); } }
void taskMenu_Showing(object sender, EventArgs e) { if (adImage == null) { adImage = (ImageBox)ParentWidget.createWidgetT("ImageBox", "ImageBox", 2, taskMenu.AdTop, AdWidth, AdHeight, Align.Left | Align.Top, ""); rocketWidget = new RocketWidget(adImage, false); openRml(); Right = adImage.Right; Top = HorizontalAdHeight; fireAdCreated(); taskMenu.Showing -= taskMenu_Showing; } }
public BuyScreen(ResourceProvider resourceProvider, GUIManager guiManager) : base("Medical.GUI.BuyScreen.BuyScreen.layout", guiManager) { eventController = new DelegateRocketEventController(); eventController.addHandler("close", evt => this.hide()); eventController.addHandler("visitAnomalousPage", visitAnomalousPage); this.resourceProvider = resourceProvider; resourceProviderRocketFSExtension = new ResourceProviderRocketFSExtension(resourceProvider); RocketInterface.Instance.SystemInterface.AddRootPath(resourceProvider.BackingLocation); RocketInterface.Instance.FileInterface.addExtension(resourceProviderRocketFSExtension); rmlImage = (ImageBox)widget.findWidget("RmlImage"); rocketWidget = new RocketWidget(rmlImage, true); }
public RocketWindow() : base("Anomalous.Minimus.Full.GUI.RocketWindow.RocketWindow.layout") { RocketInterface.Instance.FileInterface.addExtension(new RocketAssemblyResourceLoader(typeof(RocketWindow).Assembly)); rocketWidget = new RocketWidget(window.findWidget("Image") as ImageBox, false); //rocketWidget.Context.LoadDocument ("~/Phoneworld_droid.GUI.RocketWindow.TestRml.rml"); RocketWidgetInterface.clearAllCaches(); rocketWidget.Context.UnloadAllDocuments(); using (ElementDocument document = rocketWidget.Context.LoadDocumentFromMemory(testRml)) { if (document != null) { document.Show(); rocketWidget.removeFocus(); rocketWidget.renderOnNextFrame(); } } window.WindowChangedCoord += HandleWindowChangedCoord; }
public SceneErrorWindow(GUIManager guiManager) : base("Medical.GUI.SceneErrorWindow.SceneErrorWindow.layout") { rmlImage = (ImageBox)window.findWidget("RmlImage"); rocketWidget = new RocketWidget(rmlImage, false); window.WindowChangedCoord += window_WindowChangedCoord; this.guiManager = guiManager; guiManager.addManagedDialog(this); guiManager.autoDisposeDialog(this); rocketWidget.Context.UnloadAllDocuments(); StringBuilder htmlString = new StringBuilder(); htmlString.Append(DocumentStart); foreach (var error in SimObjectErrorManager.Errors) { htmlString.AppendFormat(ErrorLine, error.Subsystem, error.SimObject, error.Type, error.ElementName, error.Message); } htmlString.Append(DocumentEnd); var resourceLoader = new RocketAssemblyResourceLoader(this.GetType().Assembly); RocketInterface.Instance.FileInterface.addExtension(resourceLoader); using (ElementDocument document = rocketWidget.Context.LoadDocumentFromMemory(htmlString.ToString())) { if (document != null) { document.Show(); rocketWidget.removeFocus(); rocketWidget.renderOnNextFrame(); } } RocketInterface.Instance.FileInterface.removeExtension(resourceLoader); }
public RmlViewHostControl(Element element, RmlWidgetComponent rmlWidgetComponent, RocketWidget rocketWidget) { this.element = element; this.rocketWidget = rocketWidget; this.rmlWidgetComponent = rmlWidgetComponent; }
public override void Dispose() { rocketWidget.Dispose(); rocketWidget = null; base.Dispose(); }