56 Base::_initialise(_style, _coord, _align, _info, _parent, _croppedParent, _creator, _name);
58 initialiseWidgetSkin(_info);
70 initialiseWidgetSkin(_info);
78 if (*(*iter)->_getInternalData<std::string>() ==
"Text")
81 mWidgetText = (*iter);
83 mLeftOffset2 = mLeftOffset1 = mWidgetText->
getLeft();
85 else if (*(*iter)->_getInternalData<std::string>() ==
"Icon")
88 mIcon = (*iter)->
castType<StaticImage>();
95 mLeftOffset2 = mIcon->
getRight() + 3;
100 if (!properties.empty())
102 MapString::const_iterator iter = properties.find(
"ButtonSkin");
103 if (iter != properties.end()) mButtonSkin = iter->second;
104 iter = properties.find(
"ButtonType");
105 if (iter != properties.end()) mButtonType = iter->second;
106 iter = properties.find(
"ButtonSize");
107 if (iter != properties.end()) mButtonSize =
IntSize::parse(iter->second);
108 iter = properties.find(
"ButtonOffset");
109 if (iter != properties.end()) mButtonOffset =
IntSize::parse(iter->second);
110 iter = properties.find(
"DefaultLayer");
111 if (iter != properties.end()) mDefaultLayer = iter->second;
112 iter = properties.find(
"FadeSkin");
113 if (iter != properties.end()) mFadeSkin = iter->second;
114 iter = properties.find(
"FadeLayer");
115 if (iter != properties.end()) mFadeLayer = iter->second;
120 void Message::shutdownWidgetSkin()
122 mWidgetText =
nullptr;
128 if (mWidgetText !=
nullptr)
138 MYGUI_LOG(Warning,
"Too many buttons in message box, ignored");
145 if (mVectorButton.empty()) mInfoOk = info;
152 mVectorButton.push_back(button);
160 if (
nullptr == mIcon)
return;
177 std::vector<MessageBoxStyle> buttons = _info.
getButtons();
179 for (
size_t index=0; index<buttons.size(); ++index)
188 mVectorButton.back()->_setInternalData(info);
191 if (mVectorButton.size() == 1) mInfoOk = info;
212 for (VectorWidgetPtr::iterator iter=mVectorButton.begin(); iter!=mVectorButton.end(); ++iter)
216 mVectorButton.clear();
229 if (
nullptr != mWidgetFade)
248 mSmoothShow = _smooth;
263 if (
nullptr == mWidgetFade)
282 if (
nullptr != mWidgetFade)
285 mWidgetFade =
nullptr;
292 static const size_t CountIcons = 4;
293 static const char * IconNames[CountIcons + 1] = {
"Info",
"Quest",
"Error",
"Warning",
"" };
294 if (_index >= CountIcons)
return IconNames[CountIcons];
295 return IconNames[_index];
299 const std::string& _skin,
303 const std::string& _layer,
305 const std::string& _button1,
306 const std::string& _button2,
307 const std::string& _button3,
308 const std::string& _button4)
320 if (!_button1.empty())
323 if (!_button2.empty())
326 if (!_button3.empty())
342 if (mWidgetText !=
nullptr)
354 int width = ((int)mVectorButton.size() * mButtonSize.
width) + (((
int)mVectorButton.size()+1) * mButtonOffset.
width);
357 int offset = (size.
width - width)/2;
358 offset += mButtonOffset.
width;
363 if (
nullptr != mIcon)
365 if (mWidgetText !=
nullptr)
372 for (VectorWidgetPtr::iterator iter=mVectorButton.begin(); iter!=mVectorButton.end(); ++iter)
375 offset += mButtonOffset.
width + mButtonSize.
width;
379 ControllerFadeAlpha* Message::createControllerFadeAlpha(
float _alpha,
float _coef,
bool _enable)
408 static const size_t Count = 9;
409 static const char * Names[Count + 1] = {
"Ok",
"Yes",
"No",
"Abort",
"Retry",
"Ignore",
"Cancel",
"Try",
"Continue",
"" };
410 if (_index >= Count)
return Names[Count];
411 return Names[_index];
416 static const size_t Count = 9;
417 static const char * Names[Count + 1] = {
"MyGUI_MessageBox_Ok",
"MyGUI_MessageBox_Yes",
"MyGUI_MessageBox_No",
"MyGUI_MessageBox_Abort",
"MyGUI_MessageBox_Retry",
"MyGUI_MessageBox_Ignore",
"MyGUI_MessageBox_Cancel",
"MyGUI_MessageBox_Try",
"MyGUI_MessageBox_Continue",
"" };
418 if (_index >= Count)
return Names[Count];
419 return Names[_index];
434 if (_key ==
"Message_Caption")
setCaption(_value);
436 else if (_key ==
"Message_Modal")
setMessageModal(utility::parseValue<bool>(_value));
437 else if (_key ==
"Message_Button")
setMessageButton(utility::parseValue<MessageBoxStyle>(_value));
439 else if (_key ==
"Message_SmoothShow")
setSmoothShow(utility::parseValue<bool>(_value));
440 else if (_key ==
"Message_Fade")
setWindowFade(utility::parseValue<bool>(_value));