42 mMouseRootFocus(false),
46 mAnimateSmooth(false),
54 Base::initialiseOverride();
61 (std::numeric_limits<int>::min)(),
62 (std::numeric_limits<int>::min)(),
63 (std::numeric_limits<int>::max)(),
64 (std::numeric_limits<int>::max)());
66 bool main_move =
false;
74 if (mClient !=
nullptr)
87 if (mWidgetCaption !=
nullptr)
96 for (VectorWidgetPtr::iterator iter = buttons.begin(); iter != buttons.end(); ++iter)
102 for (VectorWidgetPtr::iterator iter = actions.begin(); iter != actions.end(); ++iter)
109 const size_t countNames = 8;
110 const char* resizers[2][countNames] =
112 {
"ResizeLeftTop",
"ResizeTop",
"ResizeRightTop",
"ResizeRight",
"ResizeRightBottom",
"ResizeBottom",
"ResizeLeftBottom",
"ResizeLeft"},
113 {
"Left Top",
"Top",
"Right Top",
"Right",
"Right Bottom",
"Bottom",
"Left Bottom",
"Left"}
116 for (
size_t index = 0; index < countNames; ++ index)
120 if (widget !=
nullptr)
133 mWidgetCaption =
nullptr;
135 Base::shutdownOverride();
140 mMouseRootFocus = _focus;
143 Base::onMouseChangeRootFocus(_focus);
148 mKeyRootFocus = _focus;
151 Base::onKeyChangeRootFocus(_focus);
159 Base::onMouseDrag(_left, _top, _id);
166 Base::onMouseButtonPressed(_left, _top, _id);
173 Base::onMouseButtonReleased(_left, _top, _id);
181 mCurrentActionScale = _getActionScale(_sender);
197 IntCoord coord = mCurrentActionScale;
199 coord.
top *= (_top - point.
top);
206 if (coord.
left == 0 && coord.
top == 0)
207 setSize((mPreActionCoord + coord).size());
225 else if (mMouseRootFocus)
236 mIsAutoAlpha = _auto;
243 else if (mMouseRootFocus)
257 getSnappedCoord(coord);
258 point = coord.point();
261 Base::setPosition(point);
283 getSnappedCoord(coord);
336 getSnappedCoord(coord);
344 Base::setCoord(coord);
349 if (mWidgetCaption !=
nullptr)
352 Base::setCaption(_caption);
357 if (mWidgetCaption !=
nullptr)
359 return Base::getCaption();
374 mAnimateSmooth =
false;
385 mAnimateSmooth =
false;
388 Base::setVisible(_visible);
391 float Window::getAlphaVisible()
const
396 void Window::getSnappedCoord(
IntCoord& _coord)
404 _coord.left = view_size.width - _coord.width;
406 _coord.top = view_size.height - _coord.height;
411 mAnimateSmooth =
true;
420 Base::setVisible(
true);
435 ControllerFadeAlpha* Window::createControllerFadeAlpha(
float _alpha,
float _coef,
bool _enable)
471 if (_key ==
"AutoAlpha")
473 else if (_key ==
"Snap")
474 setSnap(utility::parseValue<bool>(_value));
475 else if (_key ==
"MinSize")
476 setMinSize(utility::parseValue<IntSize>(_value));
477 else if (_key ==
"MaxSize")
478 setMaxSize(utility::parseValue<IntSize>(_value));
479 else if (_key ==
"Movable")
480 setMovable(utility::parseValue<bool>(_value));
483 Base::setPropertyOverride(_key, _value);
491 return mCurrentActionScale;
501 return mWidgetCaption;
543 mCurrentActionScale.
clear();
553 if (result ==
IntCoord(1, 1, 0, 0) && !mMovable)
560 const std::string& action = _widget->
getUserString(
"Action");
561 if (action ==
"Move")
577 else if (align.isRight())
587 else if (align.isBottom())
void addItem(Widget *_widget, ControllerItem *_item)
void animateStop(Widget *_widget)
void notifyMouseReleased(MyGUI::Widget *_sender, int _left, int _top, MouseButton _id)
EventPair< EventHandle_WidgetString, EventHandle_WindowPtrCStringRef > eventWindowButtonPressed
void notifyMouseDrag(MyGUI::Widget *_sender, int _left, int _top, MouseButton _id)
types::TSize< int > IntSize
void setUserString(const std::string &_key, const std::string &_value)
const float WINDOW_ALPHA_ACTIVE
delegates::IDelegate0 * newDelegate(void(*_func)())
void notifyPressedButtonEvent(MyGUI::Widget *_sender)
static InputManager & getInstance()
bool getAutoAlpha() const
const IntCoord & getActionScale() const
void setSnap(bool _value)
virtual const UString & getCaption()
void onMouseButtonReleased(int _left, int _top, MouseButton _id)
static Align parse(const std::string &_value)
void setMinSize(const IntSize &_value)
virtual void setCaption(const UString &_value)
const float WINDOW_ALPHA_FOCUS
void onMouseDrag(int _left, int _top, MouseButton _id)
types::TCoord< int > IntCoord
virtual const UString & getCaption()
void onMouseButtonPressed(int _left, int _top, MouseButton _id)
EventPair< EventHandle_WidgetVoid, EventHandle_WindowPtr > eventWindowChangeCoord
virtual void shutdownOverride()
virtual void setPosition(const IntPoint &_value)
static const std::string & getClassTypeName()
void setAlpha(float _value)
void setCoef(float _value)
std::vector< Widget * > VectorWidgetPtr
void setEnabled(bool _value)
const float WINDOW_ALPHA_DEACTIVE
void actionWidgetDestroy(Widget *_widget)
Type * castType(bool _throw=true)
void set(T const &_left, T const &_top, T const &_right, T const &_bottom)
delegates::CMultiDelegate1< Widget * > eventPostAction
virtual void setSize(const IntSize &_value)
bool isUserString(const std::string &_key) const
void removeItem(Widget *_widget)
A UTF-16 string with implicit conversion to/from std::string and std::wstring.
virtual void setCaption(const UString &_value)
void setMaxSize(const IntSize &_value)
virtual void setCoord(const IntCoord &_value)
const float WINDOW_SPEED_COEF
void actionWidgetHide(Widget *_widget)
static TCoord< int > parse(const std::string &_value)
const int WINDOW_SNAP_DISTANSE
void setAutoAlpha(bool _value)
void setMovable(bool _value)
TextBox * getCaptionWidget()
void onMouseChangeRootFocus(bool _focus)
void notifyMousePressed(MyGUI::Widget *_sender, int _left, int _top, MouseButton _id)
virtual void setPropertyOverride(const std::string &_key, const std::string &_value)
void onKeyChangeRootFocus(bool _focus)
void setVisibleSmooth(bool _value)
virtual void initialiseOverride()
virtual void setVisible(bool _value)
TPoint< T > point() const
const std::string & getUserString(const std::string &_key) const
ControllerItem * createItem(const std::string &_type)
types::TPoint< int > IntPoint