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);
        }
Exemple #2
0
        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();
 }
Exemple #5
0
        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;
     }
 }
Exemple #7
0
        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);
        }
Exemple #8
0
        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;
        }
Exemple #9
0
        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);
        }
Exemple #10
0
 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();
 }