umlwidgetcontroller.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef UMLWIDGETCONTROLLER_H
00013 #define UMLWIDGETCONTROLLER_H
00014
00015
00016 #include <qdatetime.h>
00017
00018
00019 #include "umlwidgetlist.h"
00020
00021 class QCursor;
00022 class QMouseEvent;
00023 class QMoveEvent;
00024 class QPoint;
00025
00026 class UMLWidget;
00027
00067 class UMLWidgetController {
00068 public:
00069
00075 UMLWidgetController(UMLWidget *widget);
00076
00080 virtual ~UMLWidgetController();
00081
00109 virtual void mousePressEvent(QMouseEvent *me);
00110
00142 virtual void mouseMoveEvent(QMouseEvent* me);
00143
00167 virtual void mouseReleaseEvent(QMouseEvent * me);
00168
00178 virtual void mouseDoubleClickEvent(QMouseEvent *me);
00179
00180 protected:
00181
00194 virtual void saveWidgetValues(QMouseEvent *me);
00195
00204 virtual bool isInResizeArea(QMouseEvent *me);
00205
00213 virtual QCursor getResizeCursor();
00214
00226 virtual void resizeWidget(int newW, int newH);
00227
00245 virtual void moveWidgetBy(int diffX, int diffY);
00246
00264 virtual void constrainMovementForAllWidgets(int &diffX, int &diffY);
00265
00279 virtual void doMouseDoubleClick(QMouseEvent *me);
00280
00284 void resetSelection();
00285
00291 void selectSingle(QMouseEvent *me);
00292
00298 void selectMultiple(QMouseEvent *me);
00299
00305 void deselect(QMouseEvent *me);
00306
00310 void setSelectionBounds();
00311
00320 void updateSelectionBounds(int diffX, int diffY);
00321
00330 void resize(QMouseEvent *me);
00331
00338 int getSmallestX(const UMLWidgetList &widgetList);
00339
00346 int getSmallestY(const UMLWidgetList &widgetList);
00347
00354 int getBiggestX(const UMLWidgetList &widgetList);
00355
00362 int getBiggestY(const UMLWidgetList &widgetList);
00363
00371 QPoint getPositionDifference(QMouseEvent *me);
00372
00378 void showPopupMenu(QMouseEvent *me);
00379
00386 bool wasSizeChanged();
00387
00394 bool wasPositionChanged();
00395
00399 UMLWidget *m_widget;
00400
00404 QTime lastUpdate;
00405
00413 UMLWidgetList m_selectedWidgetsList;
00414
00418 QString m_oldStatusBarMsg;
00419
00424 int m_pressOffsetX, m_pressOffsetY;
00425
00429 int m_oldX, m_oldY;
00430
00434 int m_oldW, m_oldH;
00435
00439 int m_minSelectedX, m_minSelectedY, m_maxSelectedX, m_maxSelectedY;
00440
00444 bool m_shiftPressed;
00445
00449 bool m_leftButtonDown, m_middleButtonDown, m_rightButtonDown;
00450
00455 bool m_inMoveArea, m_inResizeArea;
00456
00462 bool m_wasSelected, m_moved, m_resized;
00463 };
00464
00465 #endif
This file is part of the documentation for umbrello Version 3.1.0.