7
#include "Precompiled.h"
8
#include "TextFieldControl.h"
13
TextFieldControl::TextFieldControl() :
20
TextFieldControl::~TextFieldControl()
22
mMainWidget->eventRootKeyChangeFocus -= MyGUI::newDelegate(this, &TextFieldControl::notifyRootKeyChangeFocus);
24
mOk->eventMouseButtonClick -= MyGUI::newDelegate(this, &TextFieldControl::notifyOk);
25
mCancel->eventMouseButtonClick -= MyGUI::newDelegate(this, &TextFieldControl::notifyCancel);
26
mText->eventEditSelectAccept -= MyGUI::newDelegate(this, &TextFieldControl::notifyTextAccept);
28
MyGUI::Window* window = mMainWidget->castType<MyGUI::Window>(false);
29
if (window != nullptr)
30
window->eventWindowButtonPressed -= MyGUI::newDelegate(this, &TextFieldControl::notifyWindowButtonPressed);
33
void TextFieldControl::OnInitialise(Control* _parent, MyGUI::Widget* _place, const std::string& _layoutName)
35
Control::OnInitialise(_parent, _place, "TextField.layout");
37
setDialogRoot(mMainWidget);
39
assignWidget(mText, "Text");
40
assignWidget(mOk, "Ok", false);
41
assignWidget(mCancel, "Cancel", false);
43
mOk->eventMouseButtonClick += MyGUI::newDelegate(this, &TextFieldControl::notifyOk);
44
mCancel->eventMouseButtonClick += MyGUI::newDelegate(this, &TextFieldControl::notifyCancel);
45
mText->eventEditSelectAccept += MyGUI::newDelegate(this, &TextFieldControl::notifyTextAccept);
47
mMainWidget->eventRootKeyChangeFocus += MyGUI::newDelegate(this, &TextFieldControl::notifyRootKeyChangeFocus);
49
MyGUI::Window* window = mMainWidget->castType<MyGUI::Window>(false);
50
if (window != nullptr)
51
window->eventWindowButtonPressed += MyGUI::newDelegate(this, &TextFieldControl::notifyWindowButtonPressed);
53
mMainWidget->setVisible(false);
56
void TextFieldControl::notifyOk(MyGUI::Widget* _sender)
58
eventEndDialog(this, true);
61
void TextFieldControl::notifyCancel(MyGUI::Widget* _sender)
63
eventEndDialog(this, false);
66
void TextFieldControl::setCaption(const MyGUI::UString& _value)
68
MyGUI::Window* window = mMainWidget->castType<MyGUI::Window>(false);
69
if (window != nullptr)
70
window->setCaption(_value);
73
void TextFieldControl::setTextField(const MyGUI::UString& _value)
75
mText->setCaption(_value);
78
MyGUI::UString TextFieldControl::getTextField()
80
return mText->getOnlyText();
83
void TextFieldControl::notifyWindowButtonPressed(MyGUI::Window* _sender, const std::string& _buttonName)
85
if (_buttonName == "close")
86
eventEndDialog(this, false);
89
void TextFieldControl::setUserData(MyGUI::Any _data)
91
mMainWidget->setUserData(_data);
94
void TextFieldControl::notifyTextAccept(MyGUI::EditBox* _sender)
96
eventEndDialog(this, true);
99
void TextFieldControl::onDoModal()
101
mText->setTextSelection(0, mText->getTextLength());
102
MyGUI::InputManager::getInstance().setKeyFocusWidget(mText);
105
void TextFieldControl::onEndModal()
109
void TextFieldControl::notifyRootKeyChangeFocus(MyGUI::Widget* _sender, bool _focus)
111
if (!_focus && mMainWidget->getVisible())
112
eventEndDialog(this, false);
115
void TextFieldControl::setCoord(const MyGUI::IntCoord& _value)
117
mMainWidget->setCoord(_value);