コード例 #1
0
    private void OnClickButton(UiPromptListEntry popup, int buttonIdx)
    {
        var callback = popup.prompt.callback;
        var flag1_on = (popup.flags & 1) != 0;

        if (!flag1_on)
        {
            callback?.Invoke(buttonIdx);
        }

        popup.isActive    = false;
        uiPopupCurrent    = -1;
        popup.wnd.Visible = false;

        popup.prompt.onPopupHide?.Invoke();
        popup.wnd.Rectangle  = Rectangle.Empty;
        popup.btn1.Rectangle = Rectangle.Empty;
        popup.btn2.Rectangle = Rectangle.Empty;
        popup.btn3.Rectangle = Rectangle.Empty;
        popup.prompt         = null;

        if (flag1_on)
        {
            callback?.Invoke(buttonIdx);
        }
    }
コード例 #2
0
    private void CreatePopupWidget(UiPromptListEntry uiPopup)
    {
        var window = new WidgetContainer(new Rectangle(0, 0, 0, 0));

// popup_ui_main_window1.OnBeforeRender += 0x10170a90;
        window.Name    = "popup_ui_main_window";
        window.Visible = false;
        window.SetMouseMsgHandler(msg => true); // Swallow mouse clicks and such
        uiPopup.wnd = window;

        uiPopup.background = new WidgetImage();
        window.AddContent(uiPopup.background);

        uiPopup.titleLabel           = new WidgetText("", "popupTitle");
        uiPopup.titleLabel.X         = 30;
        uiPopup.titleLabel.Y         = 13;
        uiPopup.titleLabel.FixedSize = new Size(230, 26);
        uiPopup.titleLabel.SetCenterVertically(true);
        window.AddContent(uiPopup.titleLabel);

        uiPopup.bodyLabel = new WidgetText("", "popupBody");
        window.AddContent(uiPopup.bodyLabel);

        var okButton = new WidgetButton(new Rectangle(0, 0, 0, 0));

// popup_ui_button1.OnHandleMessage += 0x10171b50;
// popup_ui_button1.OnBeforeRender += 0x10170c30;
// popup_ui_button1.OnRenderTooltip += 0x100027f0;
        okButton.Name    = "popup_ok_button";
        okButton.Visible = false;
        window.Add(okButton);
        uiPopup.btn1 = okButton;
        okButton.SetClickHandler(() => OnClickButton(uiPopup, 0));

        var cancelButton = new WidgetButton(new Rectangle(0, 0, 0, 0));

// popup_ui_button2.OnHandleMessage += 0x10171b50;
// popup_ui_button2.OnBeforeRender += 0x10170e40;
// popup_ui_button2.OnRenderTooltip += 0x100027f0;
        cancelButton.Name    = "popup_cancel_button";
        cancelButton.Visible = false;
        window.Add(cancelButton);
        uiPopup.btn2 = cancelButton;
        cancelButton.SetClickHandler(() => OnClickButton(uiPopup, 1));

        var popup_ui_button3 = new WidgetButton(new Rectangle(0, 0, 0, 0));

// popup_ui_button3.OnHandleMessage += 0x10171b50;
// popup_ui_button3.OnBeforeRender += 0x10171a90;
// popup_ui_button3.OnRenderTooltip += 0x100027f0;
        popup_ui_button3.Name    = "popup_ui_button";
        popup_ui_button3.Visible = false;
        window.Add(popup_ui_button3);
        uiPopup.btn3 = popup_ui_button3;
    }
コード例 #3
0
    public PopupUi()
    {
        Stub.TODO();
        _vanillaTranslations = Tig.FS.ReadMesFile("mes/vanilla_ui.mes");

        // Currently only used for the text styles that come with it
        WidgetDoc.Load("ui/popup_ui.json");

        for (var i = 0; i < uiPopups.Length; i++)
        {
            uiPopups[i] = new UiPromptListEntry();
            CreatePopupWidget(uiPopups[i]);
        }
    }