|
From: Darius S. <dst...@us...> - 2001-07-24 11:34:53
|
Update of /cvsroot/kuml/kuml/kuml_gui/src/ige/common/manipulators
In directory usw-pr-cvs1:/tmp/cvs-serv15670/common/manipulators
Modified Files:
AbstractViewManipulator.cpp AbstractViewManipulator.h
RectangleViewResizer.cpp RectangleViewResizer.h
ViewResizer.cpp ViewResizer.h ViewSelector.cpp ViewSelector.h
Log Message:
Added more core implementation. Editor now supports simple line
Index: AbstractViewManipulator.cpp
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/manipulators/AbstractViewManipulator.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** AbstractViewManipulator.cpp 2001/07/22 23:21:38 1.2
--- AbstractViewManipulator.cpp 2001/07/24 11:34:49 1.3
***************
*** 22,25 ****
--- 22,27 ----
#include "AbstractViewManipulator.h"
+ void AbstractViewManipulator::move(const QPoint& delta){
+ }
View* AbstractViewManipulator::getTarget(){
return target;
***************
*** 40,43 ****
--- 42,46 ----
void AbstractViewManipulator::mouseRMBPress(QMouseEvent * e){
oldMousePos = e->pos();
+ getTarget()->mouseRMBPress(e);
}
void AbstractViewManipulator::mouseLMBPress(QMouseEvent * e){
Index: AbstractViewManipulator.h
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/manipulators/AbstractViewManipulator.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** AbstractViewManipulator.h 2001/07/22 23:21:38 1.2
--- AbstractViewManipulator.h 2001/07/24 11:34:49 1.3
***************
*** 52,56 ****
/** Implementation of interface View */
! virtual QRect & bounds() { }
/** Implementation of interface View */
--- 52,56 ----
/** Implementation of interface View */
! virtual QRect bounds() { }
/** Implementation of interface View */
***************
*** 111,114 ****
--- 111,116 ----
virtual View* getTarget();
+
+ virtual void move(const QPoint& delta);
protected:
Index: RectangleViewResizer.cpp
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/manipulators/RectangleViewResizer.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** RectangleViewResizer.cpp 2001/07/22 23:21:38 1.2
--- RectangleViewResizer.cpp 2001/07/24 11:34:49 1.3
***************
*** 25,36 ****
class RectangleView;
- void RectangleViewResizer::handleMoveEvent(SelectionHandle * handle, QMouseEvent * event){
- int dx = event->x() - oldMousePos.x();
- int dy = event->y() - oldMousePos.y();
-
- resizeTarget(handle, dx, dy);
-
- oldMousePos = event->pos();
- }
void RectangleViewResizer::resizeTarget(SelectionHandle *handle, int diffx, int diffy) {
QRect damagedArea = getTarget()->bounds();
--- 25,28 ----
***************
*** 86,99 ****
}
RectangleViewResizer::RectangleViewResizer(RectangleView * target) : ViewResizer((View*)target) {
// this->target = target;
}
RectangleViewResizer::~RectangleViewResizer(){
}
! QRect & RectangleViewResizer::bounds() {
! return getTarget()->bounds();
! }
! bool RectangleViewResizer::intersects(const QPoint & p) {
! return getTarget()->intersects(p);
! }
void RectangleViewResizer::placeHandles() {
View *target = getTarget();
--- 78,88 ----
}
RectangleViewResizer::RectangleViewResizer(RectangleView * target) : ViewResizer((View*)target) {
+ selectionLayer = 0;
// this->target = target;
}
RectangleViewResizer::~RectangleViewResizer(){
+ qDebug("RectangleViewResizer deleted");
}
!
void RectangleViewResizer::placeHandles() {
View *target = getTarget();
***************
*** 151,154 ****
--- 140,145 ----
}
void RectangleViewResizer::createHandles(SelectionLayer *layer) {
+ CHECK_PTR(layer);
+ selectionLayer = layer;
SelectionHandle *handle = 0;
Index: RectangleViewResizer.h
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/manipulators/RectangleViewResizer.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** RectangleViewResizer.h 2001/07/22 23:21:38 1.2
--- RectangleViewResizer.h 2001/07/24 11:34:49 1.3
***************
*** 33,50 ****
virtual void placeHandles();
- /** Implementation of interface View */
- virtual QRect & bounds();
-
- /** Implementation of interface View */
- virtual bool intersects(const QPoint & p);
-
- /**
- * This method will be called when a handle has been moved
- *
- */
- virtual void handleMoveEvent(SelectionHandle * handle, QMouseEvent * event);
-
protected:
! void resizeTarget(SelectionHandle *handle, int diffx, int diffy);
enum Handles { enumTopLeft = 1,
--- 33,38 ----
virtual void placeHandles();
protected:
! virtual void resizeTarget(SelectionHandle *handle, int diffx, int diffy);
enum Handles { enumTopLeft = 1,
Index: ViewResizer.cpp
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/manipulators/ViewResizer.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** ViewResizer.cpp 2001/07/22 23:10:09 1.1
--- ViewResizer.cpp 2001/07/24 11:34:49 1.2
***************
*** 1,2 ****
--- 1,4 ----
+
+
/***************************************************************************
ViewResizer.cpp - description
***************
*** 7,20 ****
email : sta...@in...
***************************************************************************/
-
- /***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
#include "ViewResizer.h"
#include "ige/common/editors/Viewer.h"
--- 9,12 ----
***************
*** 23,26 ****
--- 15,33 ----
#include <qevent.h>
+ void ViewResizer::handleMoveEvent(SelectionHandle * handle, QMouseEvent * event){
+ int dx = event->x() - oldMousePos.x();
+ int dy = event->y() - oldMousePos.y();
+
+ resizeTarget(handle, dx, dy);
+
+ oldMousePos = event->pos();
+ }
+ bool ViewResizer::intersects(const QPoint & p) {
+ return getTarget()->intersects(p);
+ }
+ QRect ViewResizer::bounds() {
+ return ViewSelector::bounds();
+ // return getTarget()->bounds();
+ }
ViewResizer::ViewResizer(View * target) : ViewSelector(target) {
}
***************
*** 28,31 ****
--- 35,39 ----
}
void ViewResizer::mouseLMBPress(QMouseEvent * e) {
+ qDebug("Mover clicked");
oldMousePos = e->pos();
}
***************
*** 33,39 ****
QRect damagedArea = getTarget()->bounds();
SelectableView *view = (SelectableView *)getTarget();
! view->setCenter(QPoint(view->getCenter().x() + diffx, view->getCenter().y() + diffy));
placeHandles();
! damagedArea = damagedArea.unite(view->bounds());
view->getViewer()->refresh(damagedArea);
}
--- 41,51 ----
QRect damagedArea = getTarget()->bounds();
SelectableView *view = (SelectableView *)getTarget();
! damagedArea = damagedArea.unite(ViewSelector::bounds());
!
! view->move(QPoint(diffx, diffy));
! // view->setCenter(QPoint(view->getCenter().x() + diffx, view->getCenter().y() + diffy));
placeHandles();
! damagedArea = damagedArea.unite(view->bounds());
! damagedArea = damagedArea.unite(ViewSelector::bounds());
view->getViewer()->refresh(damagedArea);
}
Index: ViewResizer.h
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/manipulators/ViewResizer.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** ViewResizer.h 2001/07/22 23:21:38 1.2
--- ViewResizer.h 2001/07/24 11:34:49 1.3
***************
*** 21,24 ****
--- 21,25 ----
#include "AbstractViewManipulator.h"
#include "ViewSelector.h"
+ class SelectionHandle;
class ViewResizer : public ViewSelector {
***************
*** 32,39 ****
/** Implementation of interface EventHandler */
! virtual void mouseMove(QMouseEvent* e);
protected:
void moveTarget(int diffx, int diffy);
};
#endif //VIEWRESIZER_H
--- 33,54 ----
/** Implementation of interface EventHandler */
! virtual void mouseMove(QMouseEvent* e);
+ /** Implementation of interface View */
+ virtual QRect bounds();
+
+ /** Implementation of interface View */
+ virtual bool intersects(const QPoint & p);
+
+ /**
+ * This method will be called when a handle has been moved
+ *
+ */
+ virtual void handleMoveEvent(SelectionHandle * handle, QMouseEvent * event);
+
protected:
void moveTarget(int diffx, int diffy);
+
+ virtual void resizeTarget(SelectionHandle *handle, int diffx, int diffy) =0;
};
#endif //VIEWRESIZER_H
Index: ViewSelector.cpp
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/manipulators/ViewSelector.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** ViewSelector.cpp 2001/07/23 12:50:54 1.1
--- ViewSelector.cpp 2001/07/24 11:34:49 1.2
***************
*** 2,23 ****
#include "ViewSelector.h"
#include <qevent.h>
void ViewSelector::mouseLMBPress(QMouseEvent * e) {
getTarget()->mouseLMBPress(e);
-
oldMousePos = e->pos();
}
ViewSelector::ViewSelector(View * target) : AbstractViewManipulator(target) {
}
ViewSelector::~ViewSelector() {
if(handles.empty() == false) {
! removeAllHandles();
}
}
! void ViewSelector::removeAllHandles() {
HandleVectorIter iter = handles.begin();
while ( iter != handles.end()) {
delete *iter;
++iter;
--- 2,26 ----
#include "ViewSelector.h"
+ #include "ige/common/editors/SelectionLayer.h"
#include <qevent.h>
void ViewSelector::mouseLMBPress(QMouseEvent * e) {
getTarget()->mouseLMBPress(e);
oldMousePos = e->pos();
}
ViewSelector::ViewSelector(View * target) : AbstractViewManipulator(target) {
+ selectionLayer = 0;
}
ViewSelector::~ViewSelector() {
if(handles.empty() == false) {
! deleteAllHandles();
}
}
! void ViewSelector::deleteAllHandles() {
HandleVectorIter iter = handles.begin();
+ CHECK_PTR(selectionLayer);
while ( iter != handles.end()) {
+ selectionLayer->removeHandle(*iter);
delete *iter;
++iter;
***************
*** 25,29 ****
--- 28,44 ----
handles.clear();
}
+ QRect ViewSelector::bounds() {
+ QRect boundingRect = getTarget()->bounds();
+
+ vector<SelectionHandle*>::iterator iter = handles.begin();
+
+ while( iter != handles.end()) {
+ boundingRect = boundingRect.unite((*iter)->bounds());
+ ++iter;
+ }
+ return boundingRect;
+ }
void ViewSelector::addHandle(SelectionHandle *handle) {
+ CHECK_PTR(handle);
handles.insert(handles.end(), handle);
}
Index: ViewSelector.h
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/manipulators/ViewSelector.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** ViewSelector.h 2001/07/22 23:21:38 1.2
--- ViewSelector.h 2001/07/24 11:34:49 1.3
***************
*** 30,36 ****
virtual ~ViewSelector();
! // virtual void createHandles(SelectionLayer *layer) = 0;
virtual void placeHandles() = 0;
HandleVectorIter getHandleIterator() {
return handles.begin();
--- 30,43 ----
virtual ~ViewSelector();
! /** Creates some selection handles to show the object has been selected
! * You need to store the given layer in the selectionLayer member variable !
! * This is needed later to delete the created handles.
! */
! virtual void createHandles(SelectionLayer *layer) = 0;
!
virtual void placeHandles() = 0;
+ virtual void deleteAllHandles();
+
HandleVectorIter getHandleIterator() {
return handles.begin();
***************
*** 41,47 ****
virtual void mouseLMBPress(QMouseEvent * e);
protected:
- void removeAllHandles();
void addHandle(SelectionHandle *handle);
private:
--- 48,63 ----
virtual void mouseLMBPress(QMouseEvent * e);
+ /** Implementation of interface View */
+ virtual QRect bounds();
+
+ SelectionLayer *getSelectionLayer() {
+ return selectionLayer;
+ }
+
protected:
void addHandle(SelectionHandle *handle);
+
+ /** This variable must be set in the createHandles() method */
+ SelectionLayer *selectionLayer;
private:
|