Пример #1
0
        public static void ChangeElementColour(OverlayElement element, ColourValue c1, ColourValue c2)
        {
            string colour1 = String.Format("{0:f} {1:f} {2:f}", StringConverter.ToString(c1.r), StringConverter.ToString(c1.g), StringConverter.ToString(c1.b));
            string colour2 = String.Format("{0:f} {1:f} {2:f}", StringConverter.ToString(c2.r), StringConverter.ToString(c2.g), StringConverter.ToString(c2.b));

            element.SetParameter("colour_top", colour1);
            element.SetParameter("colour_bottom", colour2);
        }
Пример #2
0
        public OverlayContainer createOverlay(String N, Vector2 P, Vector2 D,
                                              String M, String C, bool A, Overlay target)
        {
            String t = "Panel";

            if (C != "")
            {
                t = "TextArea";
            }
            OverlayElement e = OverlayManager.Singleton.CreateOverlayElement(t, N + this.name + DateTime.Now.Ticks);

            e.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            e.SetDimensions(D.x, D.y);
            e.SetPosition(0, 0);


            //if (M != "")
            //    e.MaterialName = M;

            if (C != "")
            {
                if (A)
                {
                    e.Top  = OVERLAY_TITLE_MARGIN;
                    e.Left = OVERLAY_TITLE_MARGIN;
                }

                e.Caption = C;
                e.SetParameter("font_name", mFont);
                e.SetParameter("char_height", StringConverter.ToString(mFontSize));
            }


            OverlayContainer c =
                (OverlayContainer)
                OverlayManager.Singleton.CreateOverlayElement("Panel", name + "ContainerHack" + (oc++).ToString());

            c.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            c.SetDimensions(D.x, D.y);
            c.SetPosition(P.x, P.y);

            if (M != "")
            {
                c.MaterialName = M;
            }
            c.AddChild(e);
            if (A)
            {
                target.Add2D(c);
                c.Show();
            }
            return(c);
        }
Пример #3
0
        private void CreateMessageContainer()
        {
            // BetaGUI.GUI gui = new GUI();
            // Window w = gui.createWindow();
            // w.createStaticImage()

            backgroundElement.Hide();
            iconOverlay             = OverlayManager.Singleton.GetByName("Wof/MessageBar");
            iconElement             = OverlayManager.Singleton.GetOverlayElement("Wof/MessageBarIcon");
            iconElement.MetricsMode = GuiMetricsMode.GMM_RELATIVE;
            iconElement.SetDimensions(radioIconWidth, radioIconWidth);
            iconElement.Show();
            iconOverlay.Hide();     // zewnetrzny kontener ukryje wszystko


            iconDefaultDimesions.x = Mogre.StringConverter.ParseReal(iconElement.GetParameter("width"));
            iconDefaultDimesions.y = Mogre.StringConverter.ParseReal(iconElement.GetParameter("height"));

            messageElement = OverlayManager.Singleton.CreateOverlayElement(
                "TextArea", "messageElement " + DateTime.Now.Ticks);
            messageContainer = (OverlayContainer)OverlayManager.Singleton.CreateOverlayElement(
                "Panel", "messageContainer " + DateTime.Now.Ticks);

            messageElement.SetDimensions(mainViewport.ActualWidth, mainViewport.ActualHeight);
            messageElement.MetricsMode = GuiMetricsMode.GMM_PIXELS;

            messageElement.SetParameter("font_name", FontManager.CurrentFont);

            messageElement.MetricsMode = GuiMetricsMode.GMM_RELATIVE;
            messageElement.SetParameter("char_height", StringConverter.ToString(EngineConfig.CurrentFontSize));
            messageElement.SetParameter("colour_top", "0.1 0.1 0.1");
            messageElement.SetParameter("colour_bottom", "0.5 0.1 0.1");
            messageElement.Caption = "";


            messageContainer.MetricsMode = GuiMetricsMode.GMM_RELATIVE;
            messageContainer.SetDimensions(1.0f, 0.05f);
            // messageContainer.SetPosition(0.055f, 0.015f);

            messageContainer.AddChild(messageElement);
            messageOverlay.Add2D(messageContainer);
            messageContainer.Show();
        }
Пример #4
0
        public static void ConfigureElement(OverlayElement element, int width, int height, String caption, String fontName)
        {
            element.SetDimensions(100, 50);
            element.MetricsMode = GuiMetricsMode.GMM_PIXELS;
            element.SetDimensions(width, height);
            element.SetPosition(0, 0);
            element.SetParameter("font_name", fontName);
            int fontSize = 13;

            if (LanguageManager.ActualLanguageCode.Equals("zh-TW"))
            {
                fontSize = 15;
            }

            element.SetParameter("char_height", fontSize.ToString());
            element.SetParameter("colour_top", MessageEntry.DefaultColourTopString);
            element.SetParameter("colour_bottom", MessageEntry.DefaultColourBottomString);

            //element.SetParameter("colour_top", "0.0 0.0 0.0");
            // element.SetParameter("colour_bottom", "0.0 0.0 0.0");
            element.Caption = caption;
        }
Пример #5
0
        private void PrepareMessage()
        {
            messageElement.Hide();

            // icon
            uint   iconFrames            = 1;
            float  iconAnimationDuration = 1.0f;
            string changedIcon           = null;

            if (currentMessage is IconedMessageEntry)
            {
                string  icon = (currentMessage as IconedMessageEntry).Icon;
                Vector2 dim  = (currentMessage as IconedMessageEntry).CustomIconDimensions;
                iconFrames            = (currentMessage as IconedMessageEntry).IconFrames;
                iconAnimationDuration = (currentMessage as IconedMessageEntry).IconAnimationDuration;
                if (lastIconTexture != icon)
                {
                    lastIconTexture = icon;
                    changedIcon     = icon;
                    if (!dim.IsZeroLength)
                    {
                        iconElement.Width  = dim.x;
                        iconElement.Height = dim.y;
                    }
                    else
                    {
                        iconElement.Width  = iconDefaultDimesions.x;
                        iconElement.Height = iconDefaultDimesions.y;
                    }
                }
            }
            else if (lastIconTexture != null)
            {
                changedIcon        = "radio.png";
                lastIconTexture    = null;
                iconElement.Width  = iconDefaultDimesions.x;
                iconElement.Height = iconDefaultDimesions.y;
            }

            if (changedIcon != null)
            {
                try
                {
                    MaterialPtr mat = MaterialManager.Singleton.GetByName("MessageBarIcon");
                    if (iconFrames > 1)
                    {
                        mat.GetBestTechnique().GetPass(0).GetTextureUnitState(0).SetAnimatedTextureName(changedIcon, iconFrames, iconAnimationDuration);
                        //   mat.GetBestTechnique().GetPass(0).GetTextureUnitState(0).SetTextureName(null);
                    }
                    else
                    {
                        //  mat.GetBestTechnique().GetPass(0).GetTextureUnitState(0).SetAnimatedTextureName(null, 1);
                        mat.GetBestTechnique().GetPass(0).GetTextureUnitState(0).SetTextureName(changedIcon);
                    }
                }
                catch (Exception)
                {
                }
            }



            currentMessage.IncreaseX(XMargin);
            currentMessage.IncreaseY(YMargin);

            iconOverlay.Hide();


            if (!iconOverlay.IsVisible)
            {
                float iconYPos = currentMessage.Y - iconElement.Height * 0.5f;                 // ikonka w jedym poziomie z tekstem

                if (iconYPos <= yMargin)
                {
                    iconYPos = currentMessage.Y + currentMessage.CharHeight * 0.25f;     // przyklej ikonke do rogu ekranu
                }
                iconElement.SetPosition((currentMessage.X), iconYPos);
            }

            messageContainer.SetPosition(iconElement.Width + currentMessage.X, currentMessage.Y);
            messageElement.SetParameter("char_height", currentMessage.getCharHeightString());
            messageElement.SetParameter("colour_top", currentMessage.ColourTopString);
            messageElement.SetParameter("colour_bottom", currentMessage.ColourBottomString);


            messageElement.Caption = currentMessage.GetMessageAdjustedByContainerWidth(mainViewport.ActualWidth * 0.8f, OverlayManager.Singleton.ViewportHeight);
            // messageElement.Caption = AbstractScreen.Wrap(currentMessage.Message, currentMessage.CharsPerLine); ;
        }