35 (std::numeric_limits<int>::min)(),
36 (std::numeric_limits<int>::min)(),
37 (std::numeric_limits<int>::max)(),
38 (std::numeric_limits<int>::max)());
60 if (mWidgetCaption !=
nullptr)
85 {{
"ResizeLeftTop",
"Left Top"},
87 {
"ResizeRightTop",
"Right Top"},
88 {
"ResizeRight",
"Right"},
89 {
"ResizeRightBottom",
"Right Bottom"},
90 {
"ResizeBottom",
"Bottom"},
91 {
"ResizeLeftBottom",
"Left Bottom"},
92 {
"ResizeLeft",
"Left"}}};
111 mWidgetCaption =
nullptr;
159 mCurrentActionScale = _getActionScale(
_sender);
175 IntCoord coord = mCurrentActionScale;
184 if (coord.
left == 0 && coord.
top == 0)
185 setSize((mPreActionCoord + coord).size());
203 else if (mMouseRootFocus)
214 mIsAutoAlpha =
_auto;
221 else if (mMouseRootFocus)
235 getSnappedCoord(coord, Snap::Position);
236 point = coord.
point();
261 getSnappedCoord(coord, Snap::Size);
314 getSnappedCoord(coord, Snap::Size);
325 if (mWidgetCaption !=
nullptr)
333 if (mWidgetCaption !=
nullptr)
350 mAnimateSmooth =
false;
361 mAnimateSmooth =
false;
367 float Window::getAlphaVisible()
const
372 void Window::getSnappedCoord(
IntCoord& _coord, Snap snapMode)
const
378 bool nearBottomSide = abs(_coord.top + _coord.height - view_size.height) <=
WINDOW_SNAP_DISTANSE;
389 _coord.left = view_size.width - _coord.width;
391 _coord.top = view_size.height - _coord.height;
396 _coord.width = _coord.right();
401 _coord.height = _coord.bottom();
406 _coord.width = view_size.width - _coord.left;
408 _coord.height = view_size.height - _coord.top;
415 mAnimateSmooth =
true;
459 return {mMinmax.
left, mMinmax.
top};
476 if (
_key ==
"AutoAlpha")
480 else if (
_key ==
"Snap")
484 else if (
_key ==
"MinSize")
488 else if (
_key ==
"MaxSize")
492 else if (
_key ==
"Movable")
506 return mCurrentActionScale;
516 return mWidgetCaption;
543 mCurrentActionScale.
clear();
549 if (
_widget->isUserString(
"Scale"))
561 if (action ==
"Move")
576 else if (align.isRight())
586 else if (align.isBottom())
static std::string_view getClassTypeName()
static ControllerManager & getInstance()
Type * castType(bool _throw=true)
widget description should be here.
virtual void setCaption(const UString &_caption)
virtual const UString & getCaption() const
A UTF-16 string with implicit conversion to/from std::string and std::wstring.
bool isUserString(std::string_view _key) const
void setUserString(std::string_view _key, std::string_view _value)
std::string_view getUserString(std::string_view _key) const
void setPosition(const IntPoint &_point) override
void setVisibleSmooth(bool _visible)
void onKeyChangeRootFocus(bool _focus) override
void setMovable(bool _value)
void setSize(const IntSize &_size) override
void setSnap(bool _value)
EventPair< EventHandle_WidgetVoid, EventHandle_WindowPtr > eventWindowChangeCoord
void onMouseButtonReleased(int _left, int _top, MouseButton _id) override
IntSize getMaxSize() const
void setMinSize(const IntSize &_value)
void notifyMousePressed(MyGUI::Widget *_sender, int _left, int _top, MouseButton _id)
const UString & getCaption() const override
void animateStop(Widget *_widget, ControllerItem *_controller)
void notifyPressedButtonEvent(MyGUI::Widget *_sender)
void onMouseButtonPressed(int _left, int _top, MouseButton _id) override
const IntCoord & getActionScale() const
void setMaxSize(const IntSize &_value)
void onMouseChangeRootFocus(bool _focus) override
void notifyMouseReleased(MyGUI::Widget *_sender, int _left, int _top, MouseButton _id)
TextBox * getCaptionWidget() const
void notifyMouseDrag(MyGUI::Widget *_sender, int _left, int _top, MouseButton _id)
void setVisible(bool _visible) override
void setAutoAlpha(bool _auto)
void notifyMouseWheel(MyGUI::Widget *_sender, int _rel)
void onMouseDrag(int _left, int _top, MouseButton _id) override
void shutdownOverride() override
EventPair< EventHandle_WidgetString, EventHandle_WindowPtrCStringRef > eventWindowButtonPressed
void setCaption(const UString &_caption) override
void initialiseOverride() override
void setCoord(const IntCoord &_coord) override
IntSize getMinSize() const
void setPropertyOverride(std::string_view _key, std::string_view _value) override
bool getAutoAlpha() const
void actionWidgetDestroy(Widget *_widget, ControllerItem *_controller)
void actionWidgetHide(Widget *_widget, ControllerItem *_controller)
constexpr float ALPHA_MAX
constexpr float ALPHA_MIN
const float WINDOW_ALPHA_FOCUS
const float WINDOW_SPEED_COEF
const float WINDOW_ALPHA_ACTIVE
const float WINDOW_ALPHA_DEACTIVE
types::TCoord< int > IntCoord
std::vector< Widget * > VectorWidgetPtr
const int WINDOW_SNAP_DISTANSE
types::TSize< int > IntSize
delegates::DelegateFunction< Args... > * newDelegate(void(*_func)(Args... args))
static Align parse(std::string_view _value)
static TCoord< int > parse(std::string_view _value)
TPoint< T > point() const
void set(T const &_left, T const &_top, T const &_right, T const &_bottom)