Files
qad/libs/blockview/blockbase.h
peri4 7ce2b31ec9 version 2.17.0
iconedlabel icon size scale in auto scale mode
BlockItem decors visibility logic flags
2023-06-05 23:26:23 +03:00

99 lines
2.5 KiB
C++

/*
QAD - Qt ADvanced
Ivan Pelipenko peri4ko@yandex.ru, Andrey Bychkov work.a.b@yandex.ru
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef BLOCKBASE_H
#define BLOCKBASE_H
#include "qad_blockview_export.h"
#include "qad_types.h"
#include <QGraphicsEllipseItem>
#include <QGraphicsItem>
#include <QGraphicsObject>
#include <QGraphicsScene>
#include <QGraphicsSceneHoverEvent>
#include <QGraphicsSceneMouseEvent>
#include <QGraphicsView>
#include <QStack>
static const int _blockitem_current_version_ = 1;
enum BlockviewItemData {
bvidSelected = 1000, // bool
bvidType, // BlockviewItemType
bvidItemPos, // QPointF
bvidDecorText, // QString src text for QGraphicsSimpleTextItem
bvidMoveParent, // bool flag for move parent
bvidVisualizeSelection, // bool flag for visualize selection
bvidItemSelection, // bool BlockItem selection
bvidTmpItem, // bool item is temporary, ignore
bvidBlockDecor, // bool item is BlockItem decor
bvidDTHandle, // bool
bvidCorrectMove, // bool
bvidDecorShowLogic, // uint
};
enum BlockviewDecorShowLogic {
bvdslAlways = 0x0,
bvdslEnabled = 0x1,
bvdslHovered = 0x2,
bvdslSelected = 0x4,
bvdslInverse = 0x8,
};
Q_DECLARE_FLAGS(BlockviewDecorShowLogics, BlockviewDecorShowLogic)
enum BlockviewItemType {
bvitInvalid,
bvitPin,
bvitBus,
bvitBlock,
bvitDecor,
};
QAD_BLOCKVIEW_EXPORT QDataStream & operator<<(QDataStream & s, const QGraphicsItem * item);
QAD_BLOCKVIEW_EXPORT QDataStream & operator>>(QDataStream & s, QGraphicsItem *& item);
class QAD_BLOCKVIEW_EXPORT BlockItemBase: public QObject {
Q_OBJECT
Q_ENUMS(Action)
public:
enum Action {
BlockAdd = 1,
BlockMove,
BlockRemove,
BlockCopy,
BusAdd,
BusRemove,
BusPointAdd,
BusPointMove,
BusPointRemove,
BusSegmentAdd,
BusSegmentMove,
BusSegmentRemove,
Paste
};
};
#endif // BLOCKBASE_H