summaryrefslogtreecommitdiffstats
path: root/umbrello/umbrello/widgetbase.h
diff options
context:
space:
mode:
Diffstat (limited to 'umbrello/umbrello/widgetbase.h')
-rw-r--r--umbrello/umbrello/widgetbase.h201
1 files changed, 201 insertions, 0 deletions
diff --git a/umbrello/umbrello/widgetbase.h b/umbrello/umbrello/widgetbase.h
new file mode 100644
index 00000000..5051418e
--- /dev/null
+++ b/umbrello/umbrello/widgetbase.h
@@ -0,0 +1,201 @@
+/***************************************************************************
+ * *
+ * 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. *
+ * *
+ * copyright (C) 2004-2007 *
+ * Umbrello UML Modeller Authors <uml-devel@uml.sf.net> *
+ ***************************************************************************/
+
+#ifndef WIDGETBASE_H
+#define WIDGETBASE_H
+
+#include <qobject.h>
+#include <qcolor.h>
+#include <qdom.h>
+
+#include "umlnamespace.h"
+
+// forward declarations
+class UMLView;
+class UMLObject;
+
+/**
+ * @short Common base class for UMLWidget and AssociationWidget
+ * @author Oliver Kellogg <okellogg@users.sourceforge.net>
+ * Bugs and comments to uml-devel@lists.sf.net or http://bugs.kde.org
+ */
+class WidgetBase : public QObject {
+ Q_OBJECT
+public:
+ /**
+ * Creates a WidgetBase object.
+ *
+ * @param view The view to be displayed on.
+ */
+ WidgetBase(UMLView * view);
+
+ /**
+ * Standard deconstructor
+ */
+ virtual ~WidgetBase() {}
+
+ /**
+ * Write property of m_Type.
+ */
+ void setBaseType(Uml::Widget_Type type);
+
+ /**
+ * Read property of m_Type.
+ */
+ Uml::Widget_Type getBaseType() const;
+
+ /**
+ * Returns the @ref UMLObject set to represent.
+ *
+ * @return the UMLObject to represent.
+ */
+ UMLObject *getUMLObject();
+
+ /**
+ * Deliver a const pointer to the connected UMLView
+ * ( needed esp. by event handling of LinePath )
+ */
+ const UMLView *getUMLView() const { return m_pView; }
+
+ /**
+ * Sets the @ref UMLObject to represent.
+ *
+ * @param o The object to represent.
+ */
+ virtual void setUMLObject(UMLObject * o);
+
+ /**
+ * Used by some child classes to get documentation.
+ *
+ * @return The documentation from the UMLObject (if m_pObject is set.)
+ */
+ virtual QString getDoc() const;
+
+ /**
+ * Used by some child classes to set documentation.
+ *
+ * @param doc The documentation to be set in the UMLObject
+ * (if m_pObject is set.)
+ */
+ virtual void setDoc( const QString &doc );
+
+ /**
+ * Sets the line colour
+ *
+ * @param colour the new line colour
+ */
+ virtual void setLineColor(const QColor &colour);
+
+ /**
+ * Sets the line width
+ *
+ * @param width the new line width
+ */
+ virtual void setLineWidth(uint width);
+
+ /**
+ * Read property of m_LineColour.
+ */
+ QColor getLineColor() const {
+ return m_LineColour;
+ }
+
+ /**
+ * Read property of m_LineWidth.
+ */
+ uint getLineWidth() const {
+ return m_LineWidth;
+ }
+
+ /**
+ * Returns m_bUsesDiagramLineColour
+ */
+ bool getUsesDiagramLineColour() const {
+ return m_bUsesDiagramLineColour;
+ }
+
+ /**
+ * Returns m_bUsesDiagramLineWidth
+ */
+ bool getUsesDiagramLineWidth() const {
+ return m_bUsesDiagramLineWidth;
+ }
+
+ /**
+ * Sets m_bUsesDiagramLineColour
+ */
+ void setUsesDiagramLineColour(bool usesDiagramLineColour) {
+ m_bUsesDiagramLineColour = usesDiagramLineColour;
+ }
+
+ /**
+ * Sets m_bUsesDiagramLineWidth
+ */
+ void setUsesDiagramLineWidth(bool usesDiagramLineWidth) {
+ m_bUsesDiagramLineWidth = usesDiagramLineWidth;
+ }
+
+ /**
+ * Write property of m_nId.
+ */
+ void setID( Uml::IDType id );
+
+ /**
+ * Read property of m_nId.
+ */
+ Uml::IDType getID() const;
+
+ virtual void saveToXMI( QDomDocument & qDoc, QDomElement & qElement );
+
+ virtual bool loadFromXMI( QDomElement & qElement );
+
+protected:
+ /**
+ * Initialize members.
+ */
+ void init(UMLView *view, Uml::Widget_Type type = Uml::wt_UMLWidget);
+
+ /**
+ * Type of widget.
+ */
+ Uml::Widget_Type m_Type;
+
+ UMLView *m_pView;
+ UMLObject *m_pObject;
+ QString m_Doc; ///< Only used if m_pObject is not set.
+
+ /**
+ * This ID is only used when the widget does not have a
+ * corresponding UMLObject (i.e. the m_pObject pointer is NULL.)
+ * For UMLObjects, the ID from the UMLObject is used.
+ */
+ Uml::IDType m_nId;
+
+ /**
+ * Color of the lines of the widget. Is saved to XMI.
+ */
+ QColor m_LineColour;
+
+ /**
+ * Width of the lines of the widget. Is saved to XMI.
+ */
+ uint m_LineWidth;
+
+ /**
+ * true by default, false if the colours have
+ * been explicitly set for this widget.
+ * These are saved to XMI.
+ */
+ bool m_bUsesDiagramLineColour, m_bUsesDiagramLineWidth;
+
+};
+
+#endif