qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
chatlinecontent.h
Go to the documentation of this file.
1 /*
2  Copyright © 2014-2019 by The qTox Project Contributors
3 
4  This file is part of qTox, a Qt-based graphical interface for Tox.
5 
6  qTox is libre software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  qTox is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with qTox. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #pragma once
21 
22 #include <QGraphicsItem>
23 
24 class ChatLine;
25 
26 class ChatLineContent : public QObject, public QGraphicsItem
27 {
28  Q_OBJECT
29  Q_INTERFACES(QGraphicsItem)
30 
31 public:
33  {
34  ChatLineContentType = QGraphicsItem::UserType + 1,
35  };
36 
37  int getColumn() const;
38 
39  virtual void setWidth(qreal width) = 0;
40  int type() const final;
41 
42  virtual void selectionMouseMove(QPointF scenePos);
43  virtual void selectionStarted(QPointF scenePos);
44  virtual void selectionCleared();
45  virtual void selectionDoubleClick(QPointF scenePos);
46  virtual void selectionTripleClick(QPointF scenePos);
47  virtual void selectionFocusChanged(bool focusIn);
48  virtual bool isOverSelection(QPointF scenePos) const;
49  virtual QString getSelectedText() const;
50  virtual void fontChanged(const QFont& font);
51 
52  virtual QString getText() const;
53 
54  virtual qreal getAscent() const;
55 
56  virtual QRectF boundingRect() const = 0;
57  virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) = 0;
58 
59  virtual void visibilityChanged(bool visible);
60  virtual void reloadTheme();
61 
62 private:
63  friend class ChatLine;
64  void setIndex(int row, int col);
65 
66 private:
67  int row = -1;
68  int col = -1;
69 };
ChatLineContent::selectionFocusChanged
virtual void selectionFocusChanged(bool focusIn)
Definition: chatlinecontent.cpp:58
ChatLineContent::row
int row
Definition: chatlinecontent.h:67
ChatLineContent::getAscent
virtual qreal getAscent() const
Definition: chatlinecontent.cpp:77
ChatLineContent::setWidth
virtual void setWidth(qreal width)=0
ChatLineContent::getColumn
int getColumn() const
Definition: chatlinecontent.cpp:28
ChatLineContent::col
int col
Definition: chatlinecontent.h:68
ChatLine
Definition: chatline.h:65
ChatLineContent::isOverSelection
virtual bool isOverSelection(QPointF scenePos) const
Definition: chatlinecontent.cpp:62
ChatLineContent::getSelectedText
virtual QString getSelectedText() const
Definition: chatlinecontent.cpp:67
ChatLineContent::ChatLineContentType
@ ChatLineContentType
Definition: chatlinecontent.h:34
ChatLineContent::boundingRect
virtual QRectF boundingRect() const =0
ChatLineContent::selectionTripleClick
virtual void selectionTripleClick(QPointF scenePos)
Definition: chatlinecontent.cpp:54
ChatLineContent::paint
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)=0
ChatLineContent::type
int type() const final
Definition: chatlinecontent.cpp:33
ChatLineContent::selectionMouseMove
virtual void selectionMouseMove(QPointF scenePos)
Definition: chatlinecontent.cpp:38
ChatLineContent::selectionStarted
virtual void selectionStarted(QPointF scenePos)
Definition: chatlinecontent.cpp:42
ChatLineContent::GraphicsItemType
GraphicsItemType
Definition: chatlinecontent.h:32
ChatLineContent
Definition: chatlinecontent.h:26
ChatLineContent::fontChanged
virtual void fontChanged(const QFont &font)
Definition: chatlinecontent.cpp:72
ChatLineContent::getText
virtual QString getText() const
Definition: chatlinecontent.cpp:90
ChatLineContent::setIndex
void setIndex(int row, int col)
Definition: chatlinecontent.cpp:22
ChatLineContent::selectionDoubleClick
virtual void selectionDoubleClick(QPointF scenePos)
Definition: chatlinecontent.cpp:50
ChatLineContent::selectionCleared
virtual void selectionCleared()
Definition: chatlinecontent.cpp:46
ChatLineContent::reloadTheme
virtual void reloadTheme()
Definition: chatlinecontent.cpp:86
ChatLineContent::visibilityChanged
virtual void visibilityChanged(bool visible)
Definition: chatlinecontent.cpp:82