00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KO_TOOL_FACTORY_H
00022 #define KO_TOOL_FACTORY_H
00023
00024 #include "KoTool.h"
00025 #include <KoID.h>
00026 #include <koffice_export.h>
00027
00028 #include <klocale.h>
00029 #include <QObject>
00030 #include <QKeySequence>
00031
00055 class FLAKE_EXPORT KoToolFactory : public QObject {
00056 Q_OBJECT
00057
00058 public:
00066 KoToolFactory(QObject *parent, const QString &id, const QString &name);
00067 virtual ~KoToolFactory();
00068
00075 virtual KoTool * createTool(KoCanvasBase *canvas) = 0;
00080 const QString &toolId() const;
00085 const QString &name() const;
00089 const KoID id() const;
00094 int priority() const;
00099 const QString &toolType() const;
00104 const QString &toolTip() const;
00109 const QString& icon() const;
00115 const QString &activationShapeId() const;
00116
00123 QKeySequence shortcut() const;
00124
00134 static QString mainToolType() { return "main"; }
00146 static QString dynamicToolType() { return "dynamic"; }
00147
00148 protected:
00153 void setToolTip(const QString & tooltip);
00158 void setToolType(const QString & toolType);
00164 void setIcon(const QString & iconName);
00170 void setPriority(int newPriority);
00178 void setActivationShapeID(const QString &activationShapeId);
00179
00183 void setShortcut(const QKeySequence & shortcut);
00184
00185 private:
00186 QString m_toolType;
00187 QString m_tooltip;
00188 QString m_activationId;
00189 QString m_icon;
00190 const QString m_name, m_id;
00191 int m_priority;
00192 QKeySequence m_shortcut;
00193 };
00194
00195 #endif