27 mMouseRootFocus(false),
31 mAnimateSmooth(false),
39 Base::initialiseOverride();
46 (std::numeric_limits<int>::min)(),
47 (std::numeric_limits<int>::min)(),
48 (std::numeric_limits<int>::max)(),
49 (std::numeric_limits<int>::max)());
51 bool main_move =
false;
60 if (mClient !=
nullptr)
74 if (mWidgetCaption !=
nullptr)
83 for (VectorWidgetPtr::iterator iter = buttons.begin(); iter != buttons.end(); ++iter)
89 for (VectorWidgetPtr::iterator iter = actions.begin(); iter != actions.end(); ++iter)
97 const size_t countNames = 8;
98 const char* resizers[2][countNames] =
100 {
"ResizeLeftTop",
"ResizeTop",
"ResizeRightTop",
"ResizeRight",
"ResizeRightBottom",
"ResizeBottom",
"ResizeLeftBottom",
"ResizeLeft"},
101 {
"Left Top",
"Top",
"Right Top",
"Right",
"Right Bottom",
"Bottom",
"Left Bottom",
"Left"}
104 for (
size_t index = 0; index < countNames; ++ index)
108 if (widget !=
nullptr)
122 mWidgetCaption =
nullptr;
124 Base::shutdownOverride();
129 mMouseRootFocus = _focus;
132 Base::onMouseChangeRootFocus(_focus);
137 mKeyRootFocus = _focus;
140 Base::onKeyChangeRootFocus(_focus);
148 Base::onMouseDrag(_left, _top, _id);
155 Base::onMouseButtonPressed(_left, _top, _id);
162 Base::onMouseButtonReleased(_left, _top, _id);
170 mCurrentActionScale = _getActionScale(_sender);
186 IntCoord coord = mCurrentActionScale;
188 coord.
top *= (_top - point.
top);
195 if (coord.
left == 0 && coord.
top == 0)
196 setSize((mPreActionCoord + coord).size());
214 else if (mMouseRootFocus)
219 ControllerFadeAlpha* controller = createControllerFadeAlpha(alpha, WINDOW_SPEED_COEF,
true);
225 mIsAutoAlpha = _auto;
232 else if (mMouseRootFocus)
246 getSnappedCoord(coord);
247 point = coord.point();
250 Base::setPosition(point);
272 getSnappedCoord(coord);
325 getSnappedCoord(coord);
333 Base::setCoord(coord);
338 if (mWidgetCaption !=
nullptr)
341 Base::setCaption(_caption);
346 if (mWidgetCaption !=
nullptr)
348 return Base::getCaption();
363 mAnimateSmooth =
false;
374 mAnimateSmooth =
false;
377 Base::setVisible(_visible);
380 float Window::getAlphaVisible()
const 382 return (mIsAutoAlpha && !mKeyRootFocus) ? WINDOW_ALPHA_DEACTIVE :
ALPHA_MAX;
385 void Window::getSnappedCoord(
IntCoord& _coord)
387 if (abs(_coord.
left) <= WINDOW_SNAP_DISTANSE) _coord.
left = 0;
388 if (abs(_coord.
top) <= WINDOW_SNAP_DISTANSE) _coord.
top = 0;
392 if ( abs(_coord.
left + _coord.
width - view_size.
width) < WINDOW_SNAP_DISTANSE)
394 if ( abs(_coord.
top + _coord.
height - view_size.
height) < WINDOW_SNAP_DISTANSE)
400 mAnimateSmooth =
true;
409 Base::setVisible(
true);
411 ControllerFadeAlpha* controller = createControllerFadeAlpha(getAlphaVisible(), WINDOW_SPEED_COEF,
true);
424 ControllerFadeAlpha* Window::createControllerFadeAlpha(
float _alpha,
float _coef,
bool _enable)
461 if (_key ==
"AutoAlpha")
465 else if (_key ==
"Snap")
466 setSnap(utility::parseValue<bool>(_value));
469 else if (_key ==
"MinSize")
470 setMinSize(utility::parseValue<IntSize>(_value));
473 else if (_key ==
"MaxSize")
474 setMaxSize(utility::parseValue<IntSize>(_value));
477 else if (_key ==
"Movable")
478 setMovable(utility::parseValue<bool>(_value));
482 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")
void addItem(Widget *_widget, ControllerItem *_item)
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 actionWidgetHide(Widget *_widget, ControllerItem *_controller)
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 actionWidgetDestroy(Widget *_widget, ControllerItem *_controller)
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)
EventPairAddParameter< EventHandle_WidgetPtr, EventHandle_WidgetPtrControllerItemPtr > eventPostAction
static const std::string & getClassTypeName()
void animateStop(Widget *_widget, ControllerItem *_controller)
void setAlpha(float _value)
void setCoef(float _value)
std::vector< Widget * > VectorWidgetPtr
void setEnabled(bool _value)
void notifyMouseWheel(MyGUI::Widget *_sender, int _rel)
const float WINDOW_ALPHA_DEACTIVE
Type * castType(bool _throw=true)
void set(T const &_left, T const &_top, T const &_right, T const &_bottom)
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.
TextBox properties. TextBox_skin_childs Skin childs. TextBox widget description should be here...
virtual void setCaption(const UString &_value)
void setMaxSize(const IntSize &_value)
virtual void setCoord(const IntCoord &_value)
const float WINDOW_SPEED_COEF
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