Chris@69: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@69: Chris@69: /* Chris@69: EasyMercurial Chris@69: Chris@69: Based on HgExplorer by Jari Korhonen Chris@69: Copyright (c) 2010 Jari Korhonen Chris@69: Copyright (c) 2010 Chris Cannam Chris@69: Copyright (c) 2010 Queen Mary, University of London Chris@69: Chris@69: This program is free software; you can redistribute it and/or Chris@69: modify it under the terms of the GNU General Public License as Chris@69: published by the Free Software Foundation; either version 2 of the Chris@69: License, or (at your option) any later version. See the file Chris@69: COPYING included with this distribution for more information. Chris@69: */ Chris@69: Chris@69: #ifndef _SELECTABLE_LABEL_H_ Chris@69: #define _SELECTABLE_LABEL_H_ Chris@69: Chris@69: #include Chris@69: Chris@69: class SelectableLabel : public QLabel Chris@69: { Chris@69: Q_OBJECT Chris@69: Chris@69: public: Chris@69: SelectableLabel(QWidget *parent = 0); Chris@69: virtual ~SelectableLabel(); Chris@69: Chris@69: void setSelectedText(QString); Chris@69: void setUnselectedText(QString); Chris@69: Chris@69: bool isSelected() const { return m_selected; } Chris@69: Chris@69: signals: Chris@69: void selectionChanged(); Chris@69: void doubleClicked(); Chris@69: Chris@69: public slots: Chris@69: void setSelected(bool); Chris@69: void toggle(); Chris@69: Chris@69: protected: Chris@69: virtual void mousePressEvent(QMouseEvent *e); Chris@69: virtual void mouseReleaseEvent(QMouseEvent *e); Chris@69: virtual void mouseDoubleClickEvent(QMouseEvent *e); Chris@69: virtual void enterEvent(QEvent *); Chris@69: virtual void leaveEvent(QEvent *); Chris@69: void setupStyle(); Chris@69: QString m_selectedText; Chris@69: QString m_unselectedText; Chris@69: bool m_selected; Chris@69: bool m_swallowRelease; Chris@69: }; Chris@69: Chris@69: #endif