PARP Research Group University of Murcia, Spain


src/qvgui/qvdesigner/slate/groupnode.h

00001 /*
00002  *      Copyright (C) 2008. PARP Research Group.
00003  *      <http://perception.inf.um.es>
00004  *      University of Murcia, Spain.
00005  *
00006  *      This file is part of the QVision library.
00007  *
00008  *      QVision is free software: you can redistribute it and/or modify
00009  *      it under the terms of the GNU Lesser General Public License as
00010  *      published by the Free Software Foundation, version 3 of the License.
00011  *
00012  *      QVision is distributed in the hope that it will be useful,
00013  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  *      GNU Lesser General Public License for more details.
00016  *
00017  *      You should have received a copy of the GNU Lesser General Public
00018  *      License along with QVision. If not, see <http://www.gnu.org/licenses/>.
00019  */
00020 
00021 
00022 #ifndef GROUPNODE_H
00023 #define GROUPNODE_H
00024 
00025 #include "node.h"
00026 
00027 #define SUBSCALE 0.3
00028 
00029 #ifndef DOXYGEN_IGNORE_THIS
00030 
00031 class GroupNode : public Node
00032 {
00033 public:
00034     GroupNode(QGraphicsItem * parent = 0, QGraphicsScene * scene = 0);
00035     ~GroupNode();
00036 
00037     void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
00038         QPointF scenePointPos(int point) const;
00039         QPointF scenePointPos(QString name, bool in) const;
00040         int propPoint(QString name, bool in) const; // devuelve el punto (de entrada o salida) de una propiedad.
00041         int numProps() const;
00042     void addNode(Node *node);
00043         void updateLinksPos();
00044 
00045         QString propName(int point) const; // devuelve el nombre de la propiedad seƱalada por point
00046 
00047 protected:
00048     void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
00049     QVariant itemChange(GraphicsItemChange change, const QVariant &value);
00050 
00051 private:
00052     QRectF outlineRect() const;
00053     int roundness(double size) const;
00054         int pointAt(QPointF pos) const;
00055 
00056         QRectF textoutlinerect;
00057 };
00058 
00059 #endif
00060 #endif



QVision framework. PARP research group, copyright 2007, 2008.