summaryrefslogtreecommitdiffstats
path: root/src/picitem.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/picitem.h')
-rw-r--r--src/picitem.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/picitem.h b/src/picitem.h
new file mode 100644
index 0000000..0474ba8
--- /dev/null
+++ b/src/picitem.h
@@ -0,0 +1,94 @@
+/***************************************************************************
+ * Copyright (C) 2003,2005 by David Saxton *
+ * *
+ * 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. *
+ ***************************************************************************/
+
+#ifndef PICITEM_H
+#define PICITEM_H
+
+#include "cnitem.h"
+
+#include <qobject.h>
+
+class MicroSettings;
+class FlowCodeDocument;
+class PinSettings;
+
+/**
+@short Allows visual setting of pin type/state
+@author David Saxton
+*/
+class PinItem : public QObject, public QCanvasRectangle
+{
+ Q_OBJECT
+public:
+ PinItem( FlowCodeDocument* _view, QPoint position, bool _onLeft, PinSettings *_pinSettings );
+
+ int rtti() const;
+ QRect boundingRect () const;
+ void switchState();
+
+ QString id();
+
+ /**
+ * Called from ICNDocument when the pin item was dragged
+ */
+ void dragged( int dx );
+
+ virtual void moveBy ( double dx, double dy );
+
+public slots:
+ void updateDrawing();
+
+private:
+ void initItem();
+ void drawShape( QPainter& p );
+ void calcTextRect();
+
+ FlowCodeDocument *view; // Pointer to canvas view that the component item is currently on
+ bool onLeft;
+ PinSettings * m_pinSettings;
+ QRect m_textRect;
+ QFont m_font;
+};
+typedef QValueList<PinItem*> PinItemList;
+
+
+/**
+Allows visual editing of inital PIC settings
+@author David Saxton
+*/
+class PicItem : public CNItem
+{
+ Q_OBJECT
+ public:
+ PicItem( ICNDocument *icnDocument, bool newItem, const char *id, MicroSettings *_microSettings );
+ ~PicItem();
+
+ void drawShape( QPainter &p );
+
+ virtual void buttonStateChanged( const QString &id, bool state );
+ virtual bool isMovable() const { return false; }
+
+ static QString typeString() { return "microitem"; }
+ virtual void updateZ( int baseZ );
+
+ protected slots:
+ void slotMicroSettingsDlgAccepted();
+
+ protected:
+ void updateVisibility();
+
+ MicroSettings *microSettings;
+ PinItemList m_pinItemList;
+ ICNDocument *p_icnDocument;
+ bool m_bExpanded;
+ int m_innerHeight;
+};
+
+#endif