6
#include "Precompiled.h"
7
#include "TextFieldControl.h"
11
TextFieldControl::TextFieldControl() :
12
Dialog("TextField.layout"),
17
assignWidget(mText, "Text");
18
assignWidget(mOk, "Ok");
19
assignWidget(mCancel, "Cancel");
21
mOk->eventMouseButtonClick += MyGUI::newDelegate(this, &TextFieldControl::notifyOk);
22
mCancel->eventMouseButtonClick += MyGUI::newDelegate(this, &TextFieldControl::notifyCancel);
23
mText->eventEditSelectAccept += MyGUI::newDelegate(this, &TextFieldControl::notifyTextAccept);
25
MyGUI::Window* window = mMainWidget->castType<MyGUI::Window>(false);
26
if (window != nullptr)
27
window->eventWindowButtonPressed += MyGUI::newDelegate(this, &TextFieldControl::notifyWindowButtonPressed);
29
mMainWidget->setVisible(false);
32
TextFieldControl::~TextFieldControl()
34
mOk->eventMouseButtonClick -= MyGUI::newDelegate(this, &TextFieldControl::notifyOk);
35
mCancel->eventMouseButtonClick -= MyGUI::newDelegate(this, &TextFieldControl::notifyCancel);
36
mText->eventEditSelectAccept -= MyGUI::newDelegate(this, &TextFieldControl::notifyTextAccept);
38
MyGUI::Window* window = mMainWidget->castType<MyGUI::Window>(false);
39
if (window != nullptr)
40
window->eventWindowButtonPressed -= MyGUI::newDelegate(this, &TextFieldControl::notifyWindowButtonPressed);
43
void TextFieldControl::notifyOk(MyGUI::Widget* _sender)
45
eventEndDialog(this, true);
48
void TextFieldControl::notifyCancel(MyGUI::Widget* _sender)
50
eventEndDialog(this, false);
53
void TextFieldControl::setCaption(const MyGUI::UString& _value)
55
MyGUI::Window* window = mMainWidget->castType<MyGUI::Window>(false);
56
if (window != nullptr)
57
window->setCaption(_value);
60
void TextFieldControl::setTextField(const MyGUI::UString& _value)
62
mText->setCaption(_value);
65
MyGUI::UString TextFieldControl::getTextField()
67
return mText->getOnlyText();
70
void TextFieldControl::notifyWindowButtonPressed(MyGUI::Window* _sender, const std::string& _buttonName)
72
if (_buttonName == "close")
73
eventEndDialog(this, false);
76
void TextFieldControl::setUserData(MyGUI::Any _data)
78
mMainWidget->setUserData(_data);
81
void TextFieldControl::notifyTextAccept(MyGUI::EditBox* _sender)
83
eventEndDialog(this, true);
86
void TextFieldControl::onDoModal()
88
mText->setTextSelection(0, mText->getTextLength());
89
MyGUI::InputManager::getInstance().setKeyFocusWidget(mText);
91
MyGUI::IntSize windowSize = mMainWidget->getSize();
92
MyGUI::IntSize parentSize = mMainWidget->getParentSize();
94
mMainWidget->setPosition((parentSize.width - windowSize.width) / 2, (parentSize.height - windowSize.height) / 2);
97
void TextFieldControl::onEndModal()