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); } }
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; }
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]); } }