summaryrefslogtreecommitdiffstats
path: root/kig/modes/linkslabel.h
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commitce599e4f9f94b4eb00c1b5edb85bce5431ab3df2 (patch)
treed3bb9f5d25a2dc09ca81adecf39621d871534297 /kig/modes/linkslabel.h
downloadtdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.tar.gz
tdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeedu@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kig/modes/linkslabel.h')
-rw-r--r--kig/modes/linkslabel.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/kig/modes/linkslabel.h b/kig/modes/linkslabel.h
new file mode 100644
index 00000000..ba64dbc2
--- /dev/null
+++ b/kig/modes/linkslabel.h
@@ -0,0 +1,85 @@
+// Copyright (C) 2002 Dominique Devriese <devriese@kde.org>
+
+// This library 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 2.1 of the License, or (at your option) any later version.
+
+// This library 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 library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
+
+#ifndef KIG_lINKS_LABEL_H
+#define KIG_lINKS_LABEL_H
+
+#include <qwidget.h>
+
+#include <vector>
+#include <utility>
+
+/**
+ * this widget shows a line of text, with some links underlined, and
+ * emits a signal if one of the links is clicked...
+ */
+class LinksLabel : public QWidget
+{
+ Q_OBJECT
+
+public:
+ LinksLabel( QWidget* parent = 0, const char* name = 0 );
+ ~LinksLabel();
+
+ class LinksLabelEditBuf
+ {
+ public:
+ friend class LinksLabel;
+ ~LinksLabelEditBuf() {}
+ private:
+ // declare these private so only LinksLabel can use them...
+ LinksLabelEditBuf() {}
+ typedef std::vector<std::pair<bool,QString> > vec;
+ vec data;
+ };
+
+ /**
+ * start editing, start recording changes in a LinksLabelEditBuf,
+ * but don't apply them until after endEdit();
+ */
+ LinksLabelEditBuf startEdit();
+ /**
+ * add a piece of normal text..
+ */
+ void addText( const QString& s, LinksLabelEditBuf& buf );
+ /**
+ * add a link...
+ */
+ void addLink( const QString& s, LinksLabelEditBuf& buf );
+ /**
+ * apply the changes... This clears the current contents and adds
+ * the new data...
+ */
+ void applyEdit( LinksLabelEditBuf& buf );
+
+signals:
+ /**
+ * the user clicked on a link. The index is the order in which it
+ * was added. E.g. this signal is emitted with arg 0 if the link
+ * you first added is clicked, argument 2 for the third link etc.
+ */
+ void linkClicked( int i );
+
+private slots:
+ void urlClicked();
+
+private:
+ class Private;
+ Private* p;
+};
+
+#endif // KDE_URLS_LABEL_H