Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- CFrame frame = CFrame(CPoint(2, 1), CSize(Console::Width - 4, 11));
- frame.SetText("Messagebox Test");
- CTextBox msg = CTextBox(&frame, CPoint(2, 2), CSize(72, 1));
- CTextBox title = CTextBox(&frame, CPoint(2, 4), CSize(72, 1));
- CTextBox btns_type = CTextBox(&frame, CPoint(20, 6), CSize(54, 1)); // uneditable
- Util::MessageBoxButtons buttons = Util::MessageBoxButtons::OK;
- CButton btns = CButton(&frame, CPoint(2, 6), CSize(15, 1));
- CButton show = CButton(&frame, CPoint(20, 9), CSize(17, 1));
- CButton cont = CButton(&frame, CPoint(40, 9), CSize(10, 1));
- msg.SetText("Hello, world; this is a test!");
- title.SetText("Title");
- btns.SetText("Set Buttons");
- btns_type.SetText("OK");
- show.SetText("Show MessageBox");
- cont.SetText("Continue");
- IControl* controls[5];
- IControl* pFocused = &msg;
- size_t Focused = -1;
- controls[0] = &msg;
- controls[1] = &title;
- controls[2] = &btns;
- controls[3] = &show;
- controls[4] = &cont;
- CScopedInput input([&](int key) -> bool
- {
- int direction = 0;
- switch(key)
- {
- case Keys::KEY_LEFT:
- case Keys::KEY_UP:
- direction = -1;
- break;
- case Keys::KEY_RIGHT:
- case Keys::KEY_DOWN:
- direction = +1;
- break;
- default:
- return false;
- }
- Focused += direction;
- pFocused->Unfocus();
- pFocused = controls[Focused % (sizeof controls / sizeof controls[0])];
- pFocused->Focus();
- return true;
- });
- // handelers
- cont.OnClick += [&]()
- {
- frame.Close();
- };
- show.OnClick += [&]()
- {
- // don't run in the think thread, as that will block the think thread
- frame.RunTask([&]()
- {
- Util::MessageBox(msg.GetText(), title.GetText(), buttons);
- });
- };
- btns.OnClick += [&]()
- {
- frame.RunTask([&]()
- {
- CMenuList list;
- list.AddElement("OK");
- list.AddElement("OKCancel");
- list.AddElement("YesNo");
- list.AddElement("YesNoCancel");
- list.AddElement("AbortRetryIgnore");
- list.Show();
- btns_type.SetText(list.GetSelected());
- if(list.GetSelected() == "OK")
- buttons = Util::MessageBoxButtons::OK;
- else if(list.GetSelected() == "OKCancel")
- buttons = Util::MessageBoxButtons::OKCancel;
- else if(list.GetSelected() == "YesNo")
- buttons = Util::MessageBoxButtons::YesNo;
- else if(list.GetSelected() == "YesNoCancel")
- buttons = Util::MessageBoxButtons::YesNoCancel;
- else if(list.GetSelected() == "AbortRetryIgnore")
- buttons = Util::MessageBoxButtons::AbortRetryIgnore;
- });
- };
- // ok, show it!
- frame.Show();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement