summaryrefslogtreecommitdiffstats
path: root/umbrello/umbrello/activitywidget.h
diff options
context:
space:
mode:
Diffstat (limited to 'umbrello/umbrello/activitywidget.h')
-rw-r--r--umbrello/umbrello/activitywidget.h127
1 files changed, 127 insertions, 0 deletions
diff --git a/umbrello/umbrello/activitywidget.h b/umbrello/umbrello/activitywidget.h
new file mode 100644
index 00000000..f23d4b65
--- /dev/null
+++ b/umbrello/umbrello/activitywidget.h
@@ -0,0 +1,127 @@
+/***************************************************************************
+ * *
+ * 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) 2002-2006 *
+ * Umbrello UML Modeller Authors <uml-devel@uml.sf.net> *
+ ***************************************************************************/
+
+#ifndef ACTIVITYWIDGET_H
+#define ACTIVITYWIDGET_H
+
+#include "umlwidget.h"
+#include "worktoolbar.h"
+
+#define ACTIVITY_MARGIN 5
+#define ACTIVITY_WIDTH 30
+#define ACTIVITY_HEIGHT 10
+
+/**
+ * This class is the graphical version of a UML Activity. A ActivityWidget is created
+ * by a @ref UMLView. An ActivityWidget belongs to only one @ref UMLView instance.
+ * When the @ref UMLView instance that this class belongs to, it will be automatically deleted.
+ *
+ * The ActivityWidget class inherits from the @ref UMLWidget class which adds most of the functionality
+ * to this class.
+ *
+ * @short A graphical version of a UML Activity.
+ * @author Paul Hensgen <phensgen@techie.com>
+ * Bugs and comments to uml-devel@lists.sf.net or http://bugs.kde.org
+ */
+class ActivityWidget : public UMLWidget {
+ Q_OBJECT
+
+public:
+ enum ActivityType
+ {
+ Initial = 0,
+ Normal,
+ End,
+ Branch
+ };
+
+ /**
+ * Creates a Activity widget.
+ *
+ * @param view The parent of the widget.
+ * @param activityType The type of activity.
+ * @param id The ID to assign (-1 will prompt a new ID.)
+ */
+ explicit ActivityWidget( UMLView * view, ActivityType activityType = Normal, Uml::IDType id = Uml::id_None );
+
+
+ /**
+ * destructor
+ */
+ virtual ~ActivityWidget();
+
+ /**
+ * Overrides the standard paint event.
+ */
+ void draw(QPainter & p, int offsetX, int offsetY);
+
+ /**
+ * Overrides Method from UMLWidget.
+ */
+ void constrain(int& width, int& height);
+
+ /**
+ * Returns the type of activity.
+ */
+ ActivityType getActivityType() const;
+
+ /**
+ * Sets the type of activity.
+ */
+ void setActivityType( ActivityType activityType );
+
+ /**
+ * Show a properties dialog for an ActivityWidget.
+ */
+ void showProperties();
+
+ /**
+ * Determines whether a toolbar button represents an Activity.
+ * CHECK: currently unused - can this be removed?
+ *
+ * @param tbb The toolbar button enum input value.
+ * @param resultType The ActivityType corresponding to tbb.
+ * This is only set if tbb is an Activity.
+ * @return True if tbb represents an Activity.
+ */
+ static bool isActivity( WorkToolBar::ToolBar_Buttons tbb,
+ ActivityType& resultType );
+
+ /**
+ * Saves the widget to the "activitywidget" XMI element.
+ */
+ void saveToXMI( QDomDocument & qDoc, QDomElement & qElement );
+
+ /**
+ * Loads the widget from the "activitywidget" XMI element.
+ */
+ bool loadFromXMI( QDomElement & qElement );
+
+protected:
+ /**
+ * Overrides method from UMLWidget
+ */
+ QSize calculateSize();
+
+ /**
+ * Type of activity.
+ */
+ ActivityType m_ActivityType;
+
+public slots:
+
+ /**
+ * Captures any popup menu signals for menus it created.
+ */
+ void slotMenuSelection(int sel);
+};
+
+#endif