public UIBulletinPost()
        {
            var ui = Content.Content.Get().CustomUI;
            var gd = GameFacade.GraphicsDevice;

            var bigCaption = TextStyle.DefaultLabel.Clone();

            bigCaption.Color  = Color.White;
            bigCaption.Shadow = true;
            bigCaption.Size   = 28;
            BaseTitleStyle    = bigCaption.Clone();
            Add(TitleEdit     = new UITextEdit()
            {
                Position     = new Vector2(27, 40),
                Size         = new Vector2(542, 44),
                TextStyle    = bigCaption,
                Alignment    = TextAlignment.Middle | TextAlignment.Center,
                CurrentText  = "",
                MaxChars     = 64,
                FlashOnEmpty = true
            });

            var semiT = bigCaption.Clone();

            semiT.Color         *= 0.6f;
            semiT.Shadow         = false;
            Add(TitlePlaceholder = new UILabel()
            {
                Position     = new Vector2(27, 40),
                Size         = new Vector2(542, 44),
                CaptionStyle = semiT,
                Alignment    = TextAlignment.Middle | TextAlignment.Center,
                Caption      = GameFacade.Strings.GetString("f120", "23")
            });

            BackButton                     = new UIButton(ui.Get("vote_big_btn.png").Get(gd));
            BackButton.Width               = 150;
            BackButton.Caption             = GameFacade.Strings.GetString("f120", "13");
            BackButton.Tooltip             = GameFacade.Strings.GetString("f120", "15");
            BackButton.CaptionStyle        = BackButton.CaptionStyle.Clone();
            BackButton.CaptionStyle.Color  = Color.White;
            BackButton.CaptionStyle.Shadow = true;
            BackButton.CaptionStyle.Size   = 22;
            BackButton.Position            = new Vector2(30, 481);
            Add(BackButton);

            BackButton.OnButtonClick += GoBack;

            MiddleButton                     = new UIButton(ui.Get("vote_big_btn.png").Get(gd));
            MiddleButton.Width               = 150;
            MiddleButton.Caption             = GameFacade.Strings.GetString("f120", "35");
            MiddleButton.CaptionStyle        = BackButton.CaptionStyle.Clone();
            MiddleButton.CaptionStyle.Color  = Color.White;
            MiddleButton.CaptionStyle.Shadow = true;
            MiddleButton.CaptionStyle.Size   = 22;
            MiddleButton.Position            = new Vector2(220, 481);
            Add(MiddleButton);

            MiddleButton.OnButtonClick += MButtonClick;

            RightButton                     = new UIButton(ui.Get("vote_big_btn.png").Get(gd));
            RightButton.Width               = 150;
            RightButton.Caption             = GameFacade.Strings.GetString("f120", "12");
            RightButton.CaptionStyle        = BackButton.CaptionStyle.Clone();
            RightButton.CaptionStyle.Color  = Color.White;
            RightButton.CaptionStyle.Shadow = true;
            RightButton.CaptionStyle.Size   = 22;
            RightButton.Position            = new Vector2(410, 481);
            Add(RightButton);

            RightButton.OnButtonClick += RButtonClick;

            BodyText = new UITextEdit();
            BodyText.BackgroundTextureReference = UITextBox.StandardBackground;
            BodyText.TextMargin      = new Rectangle(8, 3, 8, 3);
            BodyText.FlashOnEmpty    = true;
            BodyText.MaxChars        = 1000;
            BodyText.ScrollbarGutter = 7;
            BodyText.TextMargin      = new Rectangle(12, 10, 12, 10);
            BodyText.SetSize(388, 346);
            BodyText.Position = new Vector2(22, 96);
            Add(BodyText);
            BodyText.ScrollbarImage = GetTexture(0x4AB00000001);
            BodyText.InitDefaultSlider();
            BodyText.OnChange += BodyText_OnChange;

            var emojis = new UIEmojiSuggestions(BodyText);

            DynamicOverlay.Add(emojis);
            emojis.Parent = this;

            var whiteText = TextStyle.DefaultLabel.Clone();

            whiteText.Color  = Color.White;
            whiteText.Shadow = true;

            Add(TimeLabel = new UILabel()
            {
                Position     = new Vector2(34, 442),
                CaptionStyle = whiteText
            });

            Add(TypeLabel = new UILabel()
            {
                Position     = new Vector2(34, 442),
                Size         = new Vector2(388 - 24, 1),
                Alignment    = TextAlignment.Right | TextAlignment.Top,
                CaptionStyle = whiteText
            });


            Add(PropertyButtonBG = new UIImage(ui.Get("bulletin_post_lot_bg.png").Get(gd))
            {
                Position = new Vector2(440, 101)
            });

            Add(PersonButtonBG = new UIImage(ui.Get("bulletin_post_ava_bg.png").Get(gd))
            {
                Position = new Vector2(449, 266 - 23)
            });

            Add(LotThumbButton = new UILotThumbButtonAuto()
            {
                Position = new Vector2(446, 107)
            });
            LotThumbButton.OnNameChange += (id, name) =>
            {
                if (id == 0)
                {
                    PropertyButtonName.Caption = GameFacade.Strings.GetString("f120", "28");
                }
                else
                {
                    PropertyButtonName.Caption = name;
                }
                if (EditorMode)
                {
                    LotThumbButton.LotTooltip = GameFacade.Strings.GetString("f120", "29");
                }
            };
            LotThumbButton.OnLotClick += PropertyButtonClick;
            LotThumbButton.Init(GetTexture(0x0000079300000001), GetTexture(0x0000079300000001));

            DynamicOverlay.Add(PersonButton = new UIBigPersonButton()
            {
                Position = new Vector2(452, 269 - 23)
            });

            PersonButton.OnNameChange += (id, name) =>
            {
                PersonButtonName.Caption = name;
            };

            Add(PropertyButtonName = new UILabel()
            {
                Position     = new Vector2(435, 202),
                Size         = new Vector2(151, 1),
                Alignment    = TextAlignment.Center | TextAlignment.Top,
                CaptionStyle = whiteText,
                Caption      = "",
                Wrapped      = true,
                MaxLines     = 4
            });

            Add(PersonButtonName = new UILabel()
            {
                Position     = new Vector2(435, 442 - 23),
                Size         = new Vector2(151, 1),
                Alignment    = TextAlignment.Center | TextAlignment.Top,
                CaptionStyle = whiteText,
                Caption      = "",
                Wrapped      = true,
                MaxLines     = 3
            });

            Size = new Vector2(600, 550);
        }
        public UIVoteCandidate(bool alignment, UIVoteContainer container)
        {
            var ui = Content.Content.Get().CustomUI;
            var gd = GameFacade.GraphicsDevice;

            Background          = new UIImage(ui.Get("vote_bg_9slice.png").Get(gd)).With9Slice(15, 15, 15, 15);
            Background.Position = new Vector2(alignment ? 5 : 32, 16);
            Background.SetSize(539, 77);
            Add(Background);

            AvaBackground          = new UIImage(ui.Get("vote_ava_bg.png").Get(gd));
            AvaBackground.Position = new Vector2(alignment ? 499 : 0, 0);
            Add(AvaBackground);

            CheckButton                = new UIButton(ui.Get("vote_check.png").Get(gd));
            CheckButton.Position       = new Vector2(alignment ? 15 : 518, 34);
            CheckButton.OnButtonClick += (btn) =>
            {
                container.SetSelected(this);
            };
            Add(CheckButton);

            Avatar        = new UIBigPersonButton();
            Avatar.ScaleX = Avatar.ScaleY = 108f / 170;
            Add(Avatar);
            Avatar.Position = new Vector2(alignment ? 502 : 2, 2);

            //range: [75, 501]

            NameLabel                     = new UILabel();
            NameLabel.Position            = new Vector2(75 + 2, 16);
            NameLabel.Size                = new Vector2(426 - 4, 1);
            NameLabel.CaptionStyle        = NameLabel.CaptionStyle.Clone();
            NameLabel.CaptionStyle.Shadow = true;
            NameLabel.CaptionStyle.Color  = Color.White;
            NameLabel.CaptionStyle.Size   = 16;
            NameLabel.Alignment           = alignment ? TextAlignment.Right : TextAlignment.Left;
            Add(NameLabel);

            SubtitleLabel           = new UILabel();
            SubtitleLabel.Position  = new Vector2(75 + 6, 39);
            SubtitleLabel.Size      = new Vector2(426 - 12, 1);
            SubtitleLabel.Alignment = alignment ? TextAlignment.Right : TextAlignment.Left;
            Add(SubtitleLabel);

            MessageLabel                = new UITextEdit();
            MessageLabel.Position       = new Vector2(75 + 4, 56);
            MessageLabel.Size           = new Vector2(426 - 8, 35);
            MessageLabel.Mode           = UITextEditMode.ReadOnly;
            MessageLabel.Alignment      = TextAlignment.Top | (alignment ? TextAlignment.Right : TextAlignment.Left);
            MessageLabel.TextStyle      = MessageLabel.TextStyle.Clone();
            MessageLabel.TextStyle.Size = 8;
            MessageLabel.BBCodeEnabled  = true;
            MessageLabel.TextStyle.LineHeightModifier = -3;
            MessageLabel.TextStyle.Color = Color.White;
            Add(MessageLabel);

            Rating         = new UIRatingDisplay(true);
            Rating.Visible = false;
            Rating.Y       = 28 + 14;
            Add(Rating);

            /*
             * NameLabel.Caption = "VERY LONG NAMEMEMEMEMMEE";
             * SubtitleLabel.Caption = "Running for 2nd Term";
             * MessageLabel.CurrentText = "If you vote for me, I personally vow to avoid polluting the water supply. It will be hard, but I believe that with your votes I might find any restraint whatsoever.";
             * Avatar.AvatarId = 887;
             */

            Alignment = alignment;
        }