diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2 (patch) | |
tree | d3bb9f5d25a2dc09ca81adecf39621d871534297 /kig/modes/linkslabel.h | |
download | tdeedu-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.h | 85 |
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 |