81 Rectangle childrenRec = getParent()->getChildrenArea();
82 int32_t x = childrenRec.x + childrenRec.width / 2 - getWidth() / 2;
83 int32_t y = childrenRec.y + childrenRec.height / 2 - getHeight() / 2;
98 dockedArea =
dynamic_cast<DockArea*
>(getParent());
108 std::list<Widget*> widgets = getParent()->getWidgetsIn(getDimension(),
this);
109 if (widgets.size() > 0) {
110 std::list<Widget*>::iterator it = widgets.begin();
111 for (; it != widgets.end(); ++it) {
116 std::list<Widget*> deepWidgets = (*it)->getWidgetsIn((*it)->getChildrenArea());
117 if (deepWidgets.size() > 0) {
118 Rectangle dim = getDimension();
119 getAbsolutePosition(dim.x, dim.y);
120 std::list<Widget*>::iterator dit = deepWidgets.begin();
121 for (; dit != deepWidgets.end(); ++dit) {
122 tmp =
dynamic_cast<DockArea*
>(*dit);
124 Rectangle tdim = (*dit)->getDimension();
125 (*dit)->getAbsolutePosition(tdim.x, tdim.y);
126 if (dim.isIntersecting(tdim)) {
141 dockArea = newDockArea;
151 Window::resizeToContent(recursiv);
171 int32_t height = getBorderSize() + getPaddingTop() + getTitleBarHeight();
172 mDragOffsetX = mouseEvent.getX();
173 mDragOffsetY = mouseEvent.getY();
175 mMoved = mouseEvent.getY() <= height;
180 if (mouseEvent.getButton() == MouseEvent::Left) {
182 if (
m_docked && isMovable() && mMoved) {
186 }
else if (mouseEvent.getButton() == MouseEvent::Right) {
200 if (isMovable() && mMoved) {
202 int32_t x = mouseEvent.getX() - mDragOffsetX + getX();
203 int32_t y = mouseEvent.getY() - mDragOffsetY + getY();
206 }
else if (x + getWidth() > rec.width) {
207 x = rec.width - getWidth();
211 }
else if (y + getHeight() > rec.height) {
212 y = rec.height - getHeight();
222 mouseEvent.consume();
virtual void mouseDragged(MouseEvent &mouseEvent)
virtual void mousePressed(MouseEvent &mouseEvent)
virtual void mouseMoved(MouseEvent &mouseEvent)
virtual void mouseExited(MouseEvent &mouseEvent)
virtual void mouseReleased(MouseEvent &mouseEvent)
bool isResizable() const
Gets if the widget is resizable.
DockArea * getDockedArea()
virtual void mousePressed(MouseEvent &mouseEvent)
virtual void mouseMoved(MouseEvent &mouseEvent)
virtual void resizeToContent(bool recursiv=true)
void setResizable(bool resizable)
Sets if the widget is resizable.
virtual void expandContent(bool recursiv=true)
bool isDockable() const
Gets if the widget is dockable.
virtual void resizeToContent(bool recursiv=true)
virtual DockArea * findDockArea()
virtual void mouseExited(MouseEvent &mouseEvent)
bool isDocked() const
Gets if the widget is docked.
virtual void mouseReleased(MouseEvent &mouseEvent)
void repositionWidget(Widget *widget)
virtual void mouseDragged(MouseEvent &mouseEvent)
virtual void mouseEntered(MouseEvent &mouseEvent)
void setDocked(bool docked)
Sets if the widget is docked.
virtual void mouseEntered(MouseEvent &mouseEvent)
void setDockable(bool dockable)
Sets if the widget is dockable.