Esempio n. 1
0
        public override void OnInitialize()
        {
            base.OnInitialize();

            AddElement(new HUDLabel(1)
            {
                TextAlignment    = HUDAlignment.CENTER,
                Alignment        = HUDAlignment.TOPLEFT,
                RelativePosition = new FPoint(0, 0),
                Size             = new FSize(WIDTH, 96),

                Font     = Textures.HUDFontBold,
                FontSize = 64,

                L10NText  = L10NImpl.STR_ATTRIBUTIONS,
                TextColor = FlatColors.Clouds,
            });

            for (int i = 0; i < Attributions.LINK_BACK.Length; i++)
            {
                var dd = Attributions.LINK_BACK[i];

                var btn = new HUDTextButton(1)
                {
                    TextAlignment    = HUDAlignment.CENTERLEFT,
                    Alignment        = HUDAlignment.TOPCENTER,
                    RelativePosition = new FPoint(((i % 2) * 2 - 1) * LINE_OFFSET, 96 + (i / 2) * 48),
                    Size             = new FSize(LINE_WIDTH, 32),

                    Font     = Textures.HUDFontRegular,
                    FontSize = 24,

                    Text = dd.Item1,

                    TextColor   = FlatColors.Foreground,
                    TextPadding = 16,

                    BackgroundNormal  = HUDBackgroundDefinition.CreateSimpleBlur(FlatColors.TextHUD, 16),
                    BackgroundPressed = HUDBackgroundDefinition.CreateSimpleBlur(FlatColors.ControlHighlight, 16),

                    ClickMode = HUDButton.HUDButtonClickMode.Single,
                };

                if (!string.IsNullOrWhiteSpace(dd.Item2))
                {
                    btn.ButtonClick += (s, a) =>
                    {
                        HUD.ShowToast(null, dd.Item2, 32, FlatColors.Silver, FlatColors.Foreground, 3f);
                        MainGame.Inst.GDBridge.OpenURL(dd.Item2);
                    };
                }

                AddElement(btn);
            }
        }
Esempio n. 2
0
        public HUDToast ShowToast(string id, string text, int size, Color background, Color foreground, float lifetime)
        {
            lock (_toasts)
            {
                while (_toasts.Count >= MAX_TOAST_COUNT)
                {
                    _toasts[0].Alive = false;
                    _toasts.RemoveAt(0);
                }

                if (id != null)
                {
                    foreach (var xtoast in _toasts)
                    {
                        if (xtoast.ToastID == id)
                        {
                            xtoast.Reset(text, background, foreground, lifetime);
                            return(xtoast);
                        }
                    }
                }

                float px = HUDToast.PAD_BOTTOM;
                foreach (var xtoast in _toasts)
                {
                    xtoast.PositionY.SetForce(px);
                    px += xtoast.Height + HUDToast.PAD_VERT;
                }

                var toast = new HUDToast(id, lifetime, px);

                toast.Text             = text;
                toast.Alignment        = HUDAlignment.BOTTOMCENTER;
                toast.RelativePosition = new FPoint(0, px);
                toast.FontSize         = size;
                toast.Font             = DefaultFont;
                toast.TextColor        = foreground;
                toast.Background       = HUDBackgroundDefinition.CreateSimpleBlur(background, size / 4f);
                toast.TextPadding      = new FSize(size / 5f, size / 5f);
                toast.MaxWidth         = Width * 0.8f;
                toast.WordWrap         = HUDWordWrap.WrapByWordTrusted;

                AddElement(toast);
                _toasts.Add(toast);
                return(toast);
            }
        }