Пример #1
0
        public static void AddTextBox(String id, String text, float x, float y, float width, float height, ColourValue colorTop, ColourValue colorBot)
        {
            try {
                OverlayManager   overlayMgr = OverlayManager.Singleton;
                OverlayContainer panel      = (OverlayContainer)overlayMgr.CreateOverlayElement("Panel", "_panel_" + id);
                panel.MetricsMode = GuiMetricsMode.GMM_PIXELS;
                panel.SetPosition(x, y);
                panel.SetDimensions(width, height);

                TextAreaOverlayElement textArea = (TextAreaOverlayElement)overlayMgr.CreateOverlayElement("TextArea", "_area_" + id);
                textArea.MetricsMode = GuiMetricsMode.GMM_PIXELS;
                textArea.SetPosition(0, 0);
                textArea.SetDimensions(width, height);
                textArea.Caption      = text;
                textArea.CharHeight   = 16;
                textArea.FontName     = "Verdana";
                textArea.ColourTop    = colorTop;
                textArea.ColourBottom = colorBot;
                Overlay overlay = overlayMgr.Create("_overlay_" + id);
                overlay.Add2D(panel);
                panel.AddChild(textArea);
                overlay.Show();
            }
            catch (Exception e) {
                Util.Log("Unable to create text area.");
            }
        }
Пример #2
0
        public SimpleStaticTextWidget(string name, string caption, float width, bool specificColor, ColourValue color, float fontSize = 100)
        {
            OverlayManager overlayMgr = OverlayManager.Singleton;

            element             = overlayMgr.CreateOverlayElement("BorderPanel", name);
            element.MetricsMode = GuiMetricsMode.GMM_RELATIVE;
            //element.HorizontalAlignment = GuiHorizontalAlignment.GHA_LEFT;
            element.Height = 0.32f;
            element.Left   = -0.01f;
            if (width == 0)
            {
                element.Width = 1;
            }
            mTextArea                     = overlayMgr.CreateOverlayElement("TextArea", name + "/StaticTextCaption") as TextAreaOverlayElement;
            mTextArea.MetricsMode         = GuiMetricsMode.GMM_RELATIVE;
            mTextArea.HorizontalAlignment = GuiHorizontalAlignment.GHA_CENTER;
            mTextArea.SetAlignment(TextAreaOverlayElement.Alignment.Center);
            mTextArea.Top        = 0f;
            mTextArea.FontName   = "EngineFont";
            mTextArea.CharHeight = 0.025f * (fontSize / (float)100);
            mTextArea.SpaceWidth = 0.02f;
            if (!specificColor)
            {
                mTextArea.Colour = new ColourValue(0.9f, 1f, 0.7f);
            }
            else
            {
                mTextArea.Colour = color;
            }
            ((OverlayContainer)element).AddChild(mTextArea);
            Text = caption;
        }
Пример #3
0
 public void Apply(TextAreaOverlayElement element)
 {
     // Apply base first, otherwise the metrics mode won't be correct.
     ApplyBase(element);
     element.FontName = Font ?? "BlueHighway";
     element.CharHeight = FontSize ?? 20;
 }
Пример #4
0
        public StaticText(string name, string caption, float width, bool specificColor, ColourValue color)
        {
            OverlayManager overlayMgr = OverlayManager.Singleton;

            mElement                      = overlayMgr.CreateOverlayElement("BorderPanel", name);
            mElement.MetricsMode          = GuiMetricsMode.GMM_PIXELS;
            mElement.HorizontalAlignment  = GuiHorizontalAlignment.GHA_CENTER;
            mElement.Height               = 32;
            mTextArea                     = overlayMgr.CreateOverlayElement("TextArea", name + "/StaticTextCaption") as TextAreaOverlayElement;
            mTextArea.MetricsMode         = GuiMetricsMode.GMM_PIXELS;
            mTextArea.HorizontalAlignment = GuiHorizontalAlignment.GHA_CENTER;
            mTextArea.SetAlignment(TextAreaOverlayElement.Alignment.Center);
            mTextArea.Top        = 10;
            mTextArea.FontName   = "EngineFont";
            mTextArea.CharHeight = 18;
            mTextArea.SpaceWidth = 9;
            if (!specificColor)
            {
                mTextArea.Colour = new ColourValue(0.9f, 1f, 0.7f);
            }
            else
            {
                mTextArea.Colour = color;
            }
            ((OverlayContainer)mElement).AddChild(mTextArea);
            SetText(caption);
        }
Пример #5
0
        public SimpleStaticTextButton(string name, string caption, ColourValue normalStateColor, ColourValue activeStateColor, bool specificColor = false)
        {
            OverlayManager overlayMgr = OverlayManager.Singleton;

            element                       = overlayMgr.CreateOverlayElement("BorderPanel", name);
            element.MetricsMode           = GuiMetricsMode.GMM_RELATIVE;
            element.HorizontalAlignment   = GuiHorizontalAlignment.GHA_LEFT;
            element.Height                = 0.32f;
            mTextArea                     = overlayMgr.CreateOverlayElement("TextArea", name + "/StaticTextCaption") as TextAreaOverlayElement;
            mTextArea.MetricsMode         = GuiMetricsMode.GMM_RELATIVE;
            mTextArea.HorizontalAlignment = GuiHorizontalAlignment.GHA_LEFT;
            mTextArea.SetAlignment(TextAreaOverlayElement.Alignment.Left);
            mTextArea.Top        = 0.01f;
            mTextArea.FontName   = "EngineFont";
            mTextArea.CharHeight = 0.025f;
            mTextArea.SpaceWidth = 0.02f;
            if (!specificColor)
            {
                normalStateColor = new ColourValue(0.9f, 1f, 0.7f);
            }
            mTextArea.Colour = normalStateColor;
            ((OverlayContainer)element).AddChild(mTextArea);
            Text = caption;
            AssignListener(UILayer.Instance.Listener);
            this.normalStateColor = normalStateColor;
            this.activeStateColor = activeStateColor;
            mState = ButtonState.BS_UP;
        }
Пример #6
0
        /// <summary>
        /// Disposes of the ExampleApplication instance.
        /// </summary>
        public virtual void Dispose()
        {
            mSceneManager.ClearScene();

            mPanel       = null;
            mOverlay     = null;
            mODebugText1 = null;
            mODebugText2 = null;
            mODebugText3 = null;
            mODebugText4 = null;

            mRenderWindow  = null;
            mCamera        = null;
            mViewport      = null;
            mEventHandler  = null;
            mDebugOverlay  = null;
            mAverageFPS    = null;
            mBestFPS       = null;
            mWorstFPS      = null;
            mCurrentFPS    = null;
            mTriangleCount = null;

            mSceneManager = null;

            mRoot.Dispose();
        }
Пример #7
0
        // Create text area for SkyX parameters
        private void CreateTextArea()
        {
            // Create a panel
            OverlayContainer panel = (OverlayContainer)OverlayManager.Singleton.CreateOverlayElement("Panel", "SkyXParametersPanel");

            panel.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            panel.SetPosition(10, 10);
            panel.SetDimensions(400, 400);

            // Create a text area
            textArea             = (TextAreaOverlayElement)OverlayManager.Singleton.CreateOverlayElement("TextArea", "SkyXParametersTextArea");
            textArea.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            textArea.SetPosition(0, 0);
            textArea.SetDimensions(100, 100);
            textArea.Caption      = "SkyX plugin demo";
            textArea.CharHeight   = 16;
            textArea.FontName     = "BlueHighway";
            textArea.ColourBottom = new ColourValue(0.3f, 0.5f, 0.3f);
            textArea.ColourTop    = new ColourValue(0.5f, 0.7f, 0.7f);


            // Create an overlay, and add the panel
            Overlay overlay = OverlayManager.Singleton.Create("OverlayName");

            overlay.Add2D(panel);

            // Add the text area to the panel
            panel.AddChild(textArea);

            // Show the overlay
            overlay.Show();
        }
Пример #8
0
        public ParamsPanel(string name, float width, int lines)
        {
            OverlayElement = OverlayManager.Singleton.CreateOverlayElementFromTemplate("SdkTrays/ParamsPanel", "BorderPanel", name);
            OverlayContainer c = (OverlayContainer)OverlayElement;

            _namesArea            = (TextAreaOverlayElement)c.GetChild(Name + "/ParamsPanelNames");
            _valuesArea           = (TextAreaOverlayElement)c.GetChild(Name + "/ParamsPanelValues");
            OverlayElement.Width  = width;
            OverlayElement.Height = _namesArea.Top * 2 + lines * _namesArea.CharHeight;
        }
Пример #9
0
        // Do not instantiate any widgets directly. Use SdkTrayManager.
        public ParamsPanelWidget(string name, float width, uint lines)
        {
            element = OverlayManager.Singleton.CreateOverlayElementFromTemplate("SdkTrays/ParamsPanel", "BorderPanel", name);
            OverlayContainer c = (OverlayContainer)element;

            namesAreaElement  = (TextAreaOverlayElement)c.GetChild(Name + "/ParamsPanelNames");
            valuesAreaElement = (TextAreaOverlayElement)c.GetChild(Name + "/ParamsPanelValues");

            element.Width  = (width);
            element.Height = (namesAreaElement.Top * 2f + lines * namesAreaElement.CharHeight);
        }
Пример #10
0
 public Text(string caption)
 {
     _TextArea = OverlayManager.Singleton.CreateOverlayElement("TextArea", TextName) as TextAreaOverlayElement;
     _TextArea.MetricsMode = GuiMetricsMode.GMM_PIXELS;
     _TextArea.SetPosition(0, 0);
     _TextArea.SetDimensions(300, 120);
     _TextArea.CharHeight = 20;
     _TextArea.FontName = Font.Default;
     _TextArea.Caption = caption;
     _TextArea.Colour = ColourValue.White;
 }
Пример #11
0
 public static void UpdateTextBox(String id, String text)
 {
     try {
         OverlayManager         overlayMgr = OverlayManager.Singleton;
         TextAreaOverlayElement textArea   = (TextAreaOverlayElement)overlayMgr.GetOverlayElement("_area_" + id);
         textArea.Caption = text;
     }
     catch (Exception e) {
         Util.Log("Unable to update text area.");
     }
 }
Пример #12
0
 public Text(string caption)
 {
     _TextArea             = OverlayManager.Singleton.CreateOverlayElement("TextArea", TextName) as TextAreaOverlayElement;
     _TextArea.MetricsMode = GuiMetricsMode.GMM_PIXELS;
     _TextArea.SetPosition(0, 0);
     _TextArea.SetDimensions(300, 120);
     _TextArea.CharHeight = 20;
     _TextArea.FontName   = Font.Default;
     _TextArea.Caption    = caption;
     _TextArea.Colour     = ColourValue.White;
 }
Пример #13
0
        public TextLabel(
            String name, String fontName, float fontSize, ColourValue colourtop, ColourValue colourbottom)
        {
            TextArea = OverlayManager.Singleton.CreateOverlayElement("TextArea", name)
                       as TextAreaOverlayElement;
            TextArea.MetricsMode = GuiMetricsMode.GMM_RELATIVE;
            TextArea.SetDimensions(1.0f, 1.0f);
            TextArea.CharHeight   = fontSize;
            TextArea.FontName     = fontName;
            TextArea.ColourTop    = colourtop;
            TextArea.ColourBottom = colourbottom;

            TextArea.SpaceWidth = TextArea.CharHeight * 0.5f;
        }
Пример #14
0
 internal Label(string name, string caption, float width = 0.0f)
 {
     OverlayElement = OverlayManager.Singleton.CreateOverlayElementFromTemplate("SdkTrays/Label", "BorderPanel", name);
     _textArea      = (TextAreaOverlayElement)((OverlayContainer)OverlayElement).GetChild(Name + "/LabelCaption");
     Caption        = caption;
     if (width <= 0)
     {
         _fitToTray = true;
     }
     else
     {
         _fitToTray           = false;
         OverlayElement.Width = width;
     }
 }
Пример #15
0
 public ProgressBarWidget(string name, string caption, float width, float commentBoxWidth)
 {
     progress      = 0.0f;
     element       = Mogre.OverlayManager.Singleton.CreateOverlayElementFromTemplate("SdkTrays/ProgressBar", "BorderPanel", name);
     element.Width = (width);
     Mogre.OverlayContainer c = (Mogre.OverlayContainer)element;
     textAreaElement = (Mogre.TextAreaOverlayElement)c.GetChild(Name + "/ProgressCaption");
     Mogre.OverlayContainer commentBox = (Mogre.OverlayContainer)c.GetChild(Name + "/ProgressCommentBox");
     commentBox.Width       = (commentBoxWidth);
     commentBox.Left        = (-(commentBoxWidth + 5f));
     commentTextAreaElement = (Mogre.TextAreaOverlayElement)commentBox.GetChild(commentBox.Name + "/ProgressCommentText");
     meterElement           = c.GetChild(Name + "/ProgressMeter");
     meterElement.Width     = (width - 10f);
     fillElement            = ((Mogre.OverlayContainer)meterElement).GetChild(meterElement.Name + "/ProgressFill");
     setCaption(caption);
 }
Пример #16
0
        //public static Vector2 cursorOffset(Mogre.OverlayContainer containerElement,Vector2 cursorPos)
        //{
        //    Mogre.OverlayManager om = Mogre.OverlayManager.Singleton;
        //    return new Mogre.Vector2(cursorPos.x - (containerElement._getDerivedLeft() * om.ViewportWidth + containerElement.Width / 2), cursorPos.y - (containerElement._getDerivedTop() * om.ViewportHeight + containerElement.Height / 2f));
        //}


        /// <summary>
        /// Static utility method used to get the width of a caption in a text area.
        /// </summary>
        protected static float GetCaptionWidth(string caption, ref TextAreaOverlayElement area)
        {
            Mogre.FontPtr font = null;
            if (Mogre.FontManager.Singleton.ResourceExists(area.FontName))
            {
                font = (Mogre.FontPtr)Mogre.FontManager.Singleton.GetByName(area.FontName);
                if (!font.IsLoaded)
                {
                    font.Load();
                }
            }
            else
            {
                OGRE_EXCEPT("this font:", area.FontName, "is not exist");
            }
            //Font font = new Font(ft.Creator, ft.Name, ft.Handle, ft.Group, ft.IsManuallyLoaded);
            string current   = DisplayStringToString(caption);
            float  lineWidth = 0f;

            for (int i = 0; i < current.Length; i++)
            {
                // be sure to provide a line width in the text area
                if (current[i] == ' ')
                {
                    if (area.SpaceWidth != 0)
                    {
                        lineWidth += area.SpaceWidth;
                    }
                    else
                    {
                        lineWidth += font.GetGlyphAspectRatio(' ') * area.CharHeight;
                    }
                }
                else if (current[i] == '\n')
                {
                    break;
                }
                // use glyph information to calculate line width
                else
                {
                    lineWidth += font.GetGlyphAspectRatio(current[i]) * area.CharHeight;
                }
            }

            return(lineWidth);
        }
Пример #17
0
        public InputBoxWidget(string name, string caption, float width, float boxWidth, string text = null)
        {
            isTextMode      = false;
            element         = OverlayManager.Singleton.CreateOverlayElementFromTemplate("AMGE/UI/InputBox", "BorderPanel", name);
            isFitToContents = false;

            inputBoxElement       = (BorderPanelOverlayElement)((OverlayContainer)element).GetChild(name + "/InputBoxText");
            inputBoxElement.Width = width - 10;

            captionTextAreaElement       = (TextAreaOverlayElement)((OverlayContainer)element).GetChild(name + "/InputBoxCaption");
            captionTextAreaElement.Width = width - inputBoxElement.Width;

            contentTextAreaElement       = (TextAreaOverlayElement)inputBoxElement.GetChild(name + "/InputBoxText/InputBoxContentText");
            contentTextAreaElement.Width = inputBoxElement.Width;

            inputCursorElement       = (BorderPanelOverlayElement)inputBoxElement.GetChild(name + "/InputBoxText/InputBoxCursor");
            inputCursorElement.Width = 2;
            inputCursorElement.Hide();

            element.Width = width;
            originalText  = string.Empty;

            if (boxWidth > 0)
            {
                if (width <= 0)
                {
                    isFitToContents = true;
                }
                inputBoxElement.Width = boxWidth;
                inputBoxElement.Top   = 2;
                inputBoxElement.Left  = width - boxWidth - 5;
                element.Height        = inputBoxElement.Height + 4;
                captionTextAreaElement.HorizontalAlignment = GuiHorizontalAlignment.GHA_LEFT;
                captionTextAreaElement.SetAlignment(TextAreaOverlayElement.Alignment.Left);
                captionTextAreaElement.Left = 12;
                captionTextAreaElement.Top  = 9;
            }

            if (!string.IsNullOrEmpty(text))
            {
                contentTextAreaElement.Caption = text;
                originalText = text;
            }

            setCaption(caption);
        }
Пример #18
0
        public InputBox(String name, string caption, float width, float boxWidth, string text = null, bool onlyAcceptNum = false)
        {
            this.isTextMode          = false;
            this.mElement            = OverlayManager.Singleton.CreateOverlayElementFromTemplate("AMGE/UI/InputBox", "BorderPanel", name);
            this.mHighlightIndex     = 0;
            this.mDisplayIndex       = 0;
            this.mDragOffset         = 0.0f;
            this.mSelectionIndex     = -1;
            this.mFitToContents      = false;
            this.mCursorOver         = false;
            this.mDragging           = false;
            this.mItemsShown         = 0;
            this.mTextArea           = (TextAreaOverlayElement)((OverlayContainer)this.mElement).GetChild(name + "/InputBoxCaption");
            this.mInputBoxText       = (BorderPanelOverlayElement)((OverlayContainer)this.mElement).GetChild(name + "/InputBoxText");
            this.mInputBoxText.Width = width - 10;
            this.mSmallTextArea      = (TextAreaOverlayElement)this.mInputBoxText.GetChild(name + "/InputBoxText/InputBoxSmallText");
            this.mElement.Width      = width;
            this.mItemElements       = new List <BorderPanelOverlayElement>();
            this.mText          = string.Empty;
            this.bOnlyAcceptNum = onlyAcceptNum;

            if (boxWidth > 0)
            {
                if (width <= 0)
                {
                    this.mFitToContents = true;
                }
                this.mInputBoxText.Width           = boxWidth;
                this.mInputBoxText.Top             = 2;
                this.mInputBoxText.Left            = width - boxWidth - 5;
                this.mElement.Height               = this.mInputBoxText.Height + 4;
                this.mTextArea.HorizontalAlignment = GuiHorizontalAlignment.GHA_LEFT;
                this.mTextArea.SetAlignment(TextAreaOverlayElement.Alignment.Left);
                this.mTextArea.Left = 12;
                this.mTextArea.Top  = 10;
            }

            if (!string.IsNullOrEmpty(text))
            {
                mSmallTextArea.Caption = text;
            }

            this.setCaption(caption);
        }
Пример #19
0
        public SelectMenuWidget(string name, string caption, float width, float boxWidth, uint maxItemsShown)
        {
            Items                 = new List <string>();
            highlightIndex        = 0;
            displayIndex          = 0;
            dragOffset            = 0.0f;
            selectionIndex        = -1;
            isFitToContents       = false;
            isCursorOver          = false;
            isExpanded            = false;
            isDragging            = false;
            this.maxItemsShown    = maxItemsShown;
            itemsShown            = 0;
            element               = (Mogre.BorderPanelOverlayElement)Mogre.OverlayManager.Singleton.CreateOverlayElementFromTemplate("SdkTrays/SelectMenu", "BorderPanel", name);
            textAreaElement       = (Mogre.TextAreaOverlayElement)((Mogre.OverlayContainer)element).GetChild(name + "/MenuCaption");
            smallBoxElement       = (Mogre.BorderPanelOverlayElement)((Mogre.OverlayContainer)element).GetChild(name + "/MenuSmallBox");
            smallBoxElement.Width = (width - 10);
            smallTextAreaElement  = (Mogre.TextAreaOverlayElement)smallBoxElement.GetChild(name + "/MenuSmallBox/MenuSmallText");
            element.Width         = (width);

            if (boxWidth > 0f)             // long style
            {
                if (width <= 0f)
                {
                    isFitToContents = true;
                }
                smallBoxElement.Width = (boxWidth);
                smallBoxElement.Top   = (2f);
                smallBoxElement.Left  = (width - boxWidth - 5f);
                element.Height        = (smallBoxElement.Height + 4f);
                textAreaElement.HorizontalAlignment = (GuiHorizontalAlignment.GHA_LEFT);
                textAreaElement.SetAlignment(Mogre.TextAreaOverlayElement.Alignment.Left);
                textAreaElement.Left = (12f);
                textAreaElement.Top  = (10f);
            }

            expandedBoxElement       = (Mogre.BorderPanelOverlayElement)((Mogre.OverlayContainer)element).GetChild(name + "/MenuExpandedBox");
            expandedBoxElement.Width = (smallBoxElement.Width + 10);
            expandedBoxElement.Hide();
            scrollTrackElement  = (Mogre.BorderPanelOverlayElement)expandedBoxElement.GetChild(expandedBoxElement.Name + "/MenuScrollTrack");
            scrollHandleElement = (Mogre.PanelOverlayElement)scrollTrackElement.GetChild(scrollTrackElement.Name + "/MenuScrollHandle");

            setCaption(caption);
        }
Пример #20
0
        protected static float GetCaptionHeight(string caption, ref TextAreaOverlayElement area)
        {
            Mogre.FontPtr font = null;
            if (Mogre.FontManager.Singleton.ResourceExists(area.FontName))
            {
                font = (Mogre.FontPtr)Mogre.FontManager.Singleton.GetByName(area.FontName);
                if (!font.IsLoaded)
                {
                    font.Load();
                }
            }
            else
            {
                OGRE_EXCEPT("this font:", area.FontName, "is not exist");
            }
            //Font font = new Font(ft.Creator, ft.Name, ft.Handle, ft.Group, ft.IsManuallyLoaded);
            string current    = DisplayStringToString(caption);
            float  lineHeight = 0f;

            for (int i = 0; i < current.Length; i++)
            {
                if (current[i] == '\n')
                {
                    var aspectRatio = font.GetGlyphAspectRatio(current[i]);
                    if (aspectRatio <= 0)
                    {
                        lineHeight += aspectRatio * area.CharHeight;
                    }
                    else
                    {
                        lineHeight += area.CharHeight;
                    }
                }
                else if (i == current.Length - 1)
                {
                    lineHeight += area.CharHeight;
                }
            }

            return(lineHeight);
        }
Пример #21
0
        public StaticMultiLineTextBoxWidget(string name, string caption, float width, float height)
        {
            element        = OverlayManager.Singleton.CreateOverlayElementFromTemplate("SdkTrays/TextBox", "BorderPanel", name);
            element.Width  = (width);
            element.Height = (height);
            OverlayContainer container = (OverlayContainer)element;

            textArea         = (TextAreaOverlayElement)container.GetChild(Name + "/TextBoxText");
            captionBar       = (BorderPanelOverlayElement)container.GetChild(Name + "/TextBoxCaptionBar");
            captionBar.Width = (width - 4f);
            captionTextArea  = (TextAreaOverlayElement)captionBar.GetChild(captionBar.Name + "/TextBoxCaption");
            setCaption(caption);
            scrollTrack  = (BorderPanelOverlayElement)container.GetChild(Name + "/TextBoxScrollTrack");
            scrollHandle = (PanelOverlayElement)scrollTrack.GetChild(scrollTrack.Name + "/TextBoxScrollHandle");
            scrollHandle.Hide();
            dragging         = false;
            scrollPercentage = 0f;
            startingLine     = 0;
            contentPadding   = 15f;
            originalText     = "";

            refitContents();
        }
Пример #22
0
        public SimpleButtonWidget(string name, string caption, float width, float height, float left = 0, float top = 0)
        {
            OverlayManager overlayMgr = OverlayManager.Singleton;

            element                             = OverlayManager.Singleton.CreateOverlayElementFromTemplate("SimpleButton", "BorderPanel", name);
            element.MetricsMode                 = GuiMetricsMode.GMM_RELATIVE;
            element.Top                         = top;
            element.Left                        = left;
            element.Height                      = height;
            element.Width                       = width;
            borderPanelElement                  = (BorderPanelOverlayElement)element;
            textAreaElement                     = overlayMgr.CreateOverlayElement("TextArea", name + "/StaticTextCaption") as TextAreaOverlayElement;
            textAreaElement.MetricsMode         = GuiMetricsMode.GMM_RELATIVE;
            textAreaElement.HorizontalAlignment = GuiHorizontalAlignment.GHA_CENTER;
            textAreaElement.SetAlignment(TextAreaOverlayElement.Alignment.Center);
            textAreaElement.FontName   = "EngineFont";
            textAreaElement.CharHeight = 0.025f;
            textAreaElement.SpaceWidth = 0.02f;
            textAreaElement.Colour     = ColourValue.Black;
            textAreaElement.Top        = height / 45f;
            ((OverlayContainer)element).AddChild(textAreaElement);
            textAreaElement.Caption = caption;
        }
Пример #23
0
 public void DisplayMessage(string message, string color = "0xffffff")
 {
     if (!OverlayManager.Singleton.HasOverlayElement("msgText" + textElements.Count))
     {
         TextAreaOverlayElement textArea = OverlayManager.Singleton.CreateOverlayElement("TextArea", "msgText" + textElements.Count) as TextAreaOverlayElement;
         textArea.MetricsMode = GuiMetricsMode.GMM_RELATIVE;
         textArea.Left        = 0.01f;
         textArea.Top         = 0.9f;
         textArea.Width       = 0.2f;
         textArea.Height      = 0.1f;
         textArea.SetParameter("font_name", "EngineFont");
         textArea.SetParameter("char_height", "0.03");
         textArea.HorizontalAlignment = GuiHorizontalAlignment.GHA_LEFT;
         container.AddChild(textArea);
         textArea.Colour  = Utilities.Helper.HexToRgb(color.ToString());
         textArea.Caption = message;
         buffer.Add(message);
         textElements.Add(textArea);
         for (int i = 0; i < textElements.IndexOf(textArea); i++)
         {
             textElements[i].Top -= 0.03f;
         }
     }
 }
Пример #24
0
        public Notification(Dimension resolution)
        {
            this.Resolution = resolution;
            Panel = (PanelOverlayElement)OverlayManager.Singleton.CreateOverlayElement("Panel", Guid.NewGuid().ToString());
            TextArea = (TextAreaOverlayElement)OverlayManager.Singleton.CreateOverlayElement("TextArea", Guid.NewGuid().ToString());
            TextArea.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            TextArea.CharHeight = 36;
            TextArea.FontName = "BlueHighway";
            TextArea.Colour = ColourValue.Black;

            Panel.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            Panel.Top = Resolution.Height / 6;
            Panel.Left = 0;
            Panel.Width = Resolution.Width;
            Panel.Height = 50;

            TextArea.Top = 0;
            TextArea.Left = Resolution.Width / 2;
            TextArea.Width = Resolution.Width;
            TextArea.Height = 50;
            TextArea.SetAlignment(TextAreaOverlayElement.Alignment.Center);

            Panel.AddChild(TextArea);
        }
Пример #25
0
        public Text(string name, Vector3 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, OverlayContainer overlayContainer, Widget ParentWidget) : base(name, new Vector4(dimensions.x, dimensions.y, 0, dimensions.z), positionMode, sizeMode, "", overlayContainer, ParentWidget)
        {
            mTextCursorHidden = true;
            mCursorIndex      = 0;
            mCursorOffset     = -3;

            mWidgetType     = Widget.WidgetType.QGUI_TYPE_TEXT;
            mTruncateMode   = TruncateMode.RIGHT;
            mFeedbackString = "...";
            mCursorPositions.Add(-5);

            mTextAreaOverlayElement = createTextAreaOverlayElement(mInstanceName + ".Caption", mPixelDimensions, "");
            mOverlayElement         = mTextAreaOverlayElement;
            mOverlayContainer.AddChild(mOverlayElement);
            mTextAreaOverlayElement.Show();
            mTextAreaOverlayElement.FontName   = mFont;
            mTextAreaOverlayElement.CharHeight = mPixelDimensions.w;

            string tcMaterial = getSheet().getDefaultSkin() + ".textcursor";

            mTextCursor = new TextCursor(mInstanceName + ".TextCursor", new Vector4(0, 0, 0, 1), QGuiMetricsMode.QGUI_GMM_RELATIVE, QGuiMetricsMode.QGUI_GMM_RELATIVE, tcMaterial, mChildrenContainer, this);
            mTextCursor.setZOrderOffset(1, false);
            mTextCursor.hide();
        }
Пример #26
0
        public OverlayGUI()
        {
            //setup the colours
            top = new ColourValue(0.9f, 0.9f, 0.9f);
            bot = new ColourValue(0.8f, 0.8f, 0.8f);
            seltop = new ColourValue(0.9f, 0.7f, 0.7f);
            selbot = new ColourValue(0.8f, 0.6f, 0.6f);

            //Overlay
            overlayManager = OverlayManager.Singleton;
            // Create a panel
            panel = (OverlayContainer)overlayManager.CreateOverlayElement("Panel", "PanelName");
            panel.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            panel.SetPosition(0, 0);
            panel.SetDimensions(Program.Instance.rWindow.Width, Program.Instance.rWindow.Height);

            panel.MaterialName = "fsO/Blank";  // Optional background material

            // Create a text area
            messageArea = (TextAreaOverlayElement)overlayManager.CreateOverlayElement("TextArea", "TextArea");
            messageArea.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            messageArea.SetPosition(0, 0);
            messageArea.SetDimensions(Program.Instance.rWindow.Width, 100);
            messageArea.CharHeight = 24;
            messageArea.FontName = "damn";
            messageArea.ColourTop = top;
            messageArea.ColourBottom = bot;
            messageArea.Caption = "";

            // Status text area
            statArea = (TextAreaOverlayElement)overlayManager.CreateOverlayElement("TextArea", "StatTextArea");
            statArea.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            statArea.SetPosition(0, Program.Instance.rWindow.Height - 50);
            statArea.SetDimensions(Program.Instance.rWindow.Width, 50);
            statArea.CharHeight = 24;
            statArea.FontName = "damn";
            statArea.ColourTop = top;
            statArea.ColourBottom = bot;
            statArea.Caption = "this is a test" + Environment.NewLine + "This is the test's second line";

            //Menus Text Areas
            titleArea = (TextAreaOverlayElement)overlayManager.CreateOverlayElement("TextArea", "TitleTextArea");
            titleArea.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            titleArea.SetPosition(64, 16);
            titleArea.SetDimensions(Program.Instance.rWindow.Width, 32);
            titleArea.CharHeight = 32;
            titleArea.FontName = "damn";
            titleArea.ColourTop = top;
            titleArea.ColourBottom = bot;
            titleArea.Caption = "Title";

            for (int i = 0; i < 10; i++)
            {
                optionAreas[i] = (TextAreaOverlayElement)overlayManager.CreateOverlayElement("TextArea", i+"TextArea");
                optionAreas[i].MetricsMode = GuiMetricsMode.GMM_PIXELS;
                optionAreas[i].SetPosition(32, 64 + (i*26));
                optionAreas[i].SetDimensions(Program.Instance.rWindow.Width, 24);
                optionAreas[i].CharHeight = 24;
                optionAreas[i].FontName = "damn";
                optionAreas[i].ColourTop = top;
                optionAreas[i].ColourBottom = bot;
                optionAreas[i].Caption = "Option " + i.ToString();
            }

            maxOptions = 10;

            // Create an overlay, and add the panel
            overlay = overlayManager.Create("OverlayName");

            overlay.Add2D(panel);
            // Add the text area to the panel
            panel.AddChild(messageArea);
            panel.AddChild(titleArea);
            panel.AddChild(statArea);
            for (int i = 0; i < 10; i++)
            {
                panel.AddChild(optionAreas[i]);
            }

            // Show the overlay
            overlay.Show();
        }
Пример #27
0
        // Create text area for SkyX parameters
        private void CreateTextArea()
        {
            // Create a panel
            OverlayContainer panel = (OverlayContainer)OverlayManager.Singleton.CreateOverlayElement("Panel", "SkyXParametersPanel");
            panel.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            panel.SetPosition(10,10);
            panel.SetDimensions(400,400);

            // Create a text area
            textArea = (TextAreaOverlayElement)OverlayManager.Singleton.CreateOverlayElement("TextArea", "SkyXParametersTextArea");
            textArea.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            textArea.SetPosition(0,0);
            textArea.SetDimensions(100,100);
            textArea.Caption = "SkyX plugin demo";
            textArea.CharHeight = 16;
            textArea.FontName = "BlueHighway";
            textArea.ColourBottom = new ColourValue(0.3f, 0.5f, 0.3f);
            textArea.ColourTop = new ColourValue(0.5f, 0.7f, 0.7f);

            // Create an overlay, and add the panel
            Overlay overlay = OverlayManager.Singleton.Create("OverlayName");
            overlay.Add2D(panel);

            // Add the text area to the panel
            panel.AddChild(textArea);

            // Show the overlay
            overlay.Show();
        }
Пример #28
0
        /// <summary>
        /// call create4LineDebugOverLay to create an Overlay with 4 text lines at the top left corrner
        /// </summary>
        protected virtual void create4LineDebugOverLay()
        {
            if (mPanel != null)
            {
                return;
            }
            // Create a panel
            // WTF I keep getting segmentfault when i use PanelOverlayElement, at the panel.addChild line.
            //   prob in mono somewhere not reconizeing it derives from container? but HTF?
            //mPanel = OverlayManager.Instance.CreatePanelElement("Status/Panel");
            OverlayElement el = OverlayManager.Instance.CreateOverlayElement("Panel", "DebugStatus/Panel");

            mPanel = new OverlayContainer(OverlayElement.getCPtr(el).Handle, false);

            mPanel.setMetricsMode(GuiMetricsMode.GMM_PIXELS);
            mPanel.setPosition(10, 10);
            mPanel.setDimensions(500, 100);
            //mPanel->setMaterialName("MaterialName"); // Optional background material

            // Create a text area
            mODebugText1 = OverlayManager.Instance.CreateTextAreaElement("DebugStatus/DebugText1");
            mPanel.addChild(mODebugText1);
            mODebugText1.setMetricsMode(GuiMetricsMode.GMM_PIXELS);
            mODebugText1.setPosition(0, 0);
            mODebugText1.setDimensions(100, 100);
            mODebugText1.setCaption("");
            mODebugText1.setCharHeight(16);
            mODebugText1.setFontName("BlueHighway");
            mODebugText1.setColourBottom(Converter.GetColor(0.3f, 0.5f, 0.3f));
            mODebugText1.setColourTop(Converter.GetColor(0.5f, 0.7f, 0.5f));


            // Create a text area
            mODebugText2 = OverlayManager.Instance.CreateTextAreaElement("DebugStatus/DebugText2");
            mODebugText2.setMetricsMode(GuiMetricsMode.GMM_PIXELS);
            mODebugText2.setPosition(0, 20);
            mODebugText2.setDimensions(100, 100);
            mODebugText2.setCaption("");
            mODebugText2.setCharHeight(16);
            mODebugText2.setFontName("BlueHighway");
            mODebugText2.setColourBottom(Converter.GetColor(0.3f, 0.5f, 0.3f));
            mODebugText2.setColourTop(Converter.GetColor(0.5f, 0.7f, 0.5f));
            mPanel.addChild(mODebugText2);


            // Create a text area
            mODebugText3 = OverlayManager.Instance.CreateTextAreaElement("DebugStatus/DebugText3");
            mODebugText3.setMetricsMode(GuiMetricsMode.GMM_PIXELS);
            mODebugText3.setPosition(0, 40);
            mODebugText3.setDimensions(100, 100);
            mODebugText3.setCaption("");
            mODebugText3.setCharHeight(16);
            mODebugText3.setFontName("BlueHighway");
            mODebugText3.setColourBottom(Converter.GetColor(0.3f, 0.5f, 0.3f));
            mODebugText3.setColourTop(Converter.GetColor(0.5f, 0.7f, 0.5f));
            mPanel.addChild(mODebugText3);


            // Create a text area
            mODebugText4 = OverlayManager.Instance.CreateTextAreaElement("DebugStatus/DebugText4");
            mODebugText4.setMetricsMode(GuiMetricsMode.GMM_PIXELS);
            mODebugText4.setPosition(0, 60);
            mODebugText4.setDimensions(100, 100);
            mODebugText4.setCaption("");
            mODebugText4.setCharHeight(16);
            mODebugText4.setFontName("BlueHighway");
            mODebugText4.setColourBottom(Converter.GetColor(0.3f, 0.5f, 0.3f));
            mODebugText4.setColourTop(Converter.GetColor(0.5f, 0.7f, 0.5f));
            mPanel.addChild(mODebugText4);

            // Create an overlay, and add the panel
            mOverlay = OverlayManager.Instance.create("Status/Overlay");
            mOverlay.add2D(mPanel);
        }
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TextAreaOverlayElement obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }