• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

Plasma

  • plasma
  • widgets
iconwidget.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2007 by Siraj Razick <siraj@kde.org>
3 * Copyright (C) 2007 by Riccardo Iaconelli <riccardo@kde.org>
4 * Copyright (C) 2007 by Matt Broadstone <mbroadst@gmail.com>
5 * Copyright 2008 by Alexis Ménard <darktears31@gmail.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU Library General Public License as
9 * published by the Free Software Foundation; either version 2, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details
16 *
17 * You should have received a copy of the GNU Library General Public
18 * License along with this program; if not, write to the
19 * Free Software Foundation, Inc.,
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 */
22 
23 #ifndef PLASMA_ICONWIDGET_H
24 #define PLASMA_ICONWIDGET_H
25 
26 #include <QtCore/QObject>
27 #include <QtCore/QWeakPointer>
28 #include <QtGui/QGraphicsTextItem>
29 #include <QtGui/QIcon>
30 #include <QtGui/QGraphicsWidget>
31 
32 #include <plasma/dataengine.h>
33 #include <plasma/animator.h>
34 #include <plasma/plasma_export.h>
35 
36 class QAction;
37 class QPropertyAnimation;
38 
51 namespace Plasma
52 {
53 
54 class IconWidgetPrivate;
55 
56 class PLASMA_EXPORT IconWidget : public QGraphicsWidget
57 {
58  Q_OBJECT
59  Q_PROPERTY(QString text READ text WRITE setText)
60  Q_PROPERTY(QString infoText READ infoText WRITE setInfoText)
61  Q_PROPERTY(QIcon icon READ icon WRITE setIcon)
62  Q_PROPERTY(QColor textBackgroundColor READ textBackgroundColor WRITE setTextBackgroundColor)
63  Q_PROPERTY(QSizeF iconSize READ iconSize)
64  Q_PROPERTY(QString svg READ svg WRITE setSvg)
65  Q_PROPERTY(bool drawBackground READ drawBackground WRITE setDrawBackground)
66  Q_PROPERTY(QAction *action READ action WRITE setAction)
67  Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
68  Q_PROPERTY(int numDisplayLines READ numDisplayLines WRITE setNumDisplayLines)
69  Q_PROPERTY(QSizeF preferredIconSize READ preferredIconSize WRITE setPreferredIconSize)
70  Q_PROPERTY(QSizeF minimumIconSize READ minimumIconSize WRITE setMinimumIconSize)
71  Q_PROPERTY(QSizeF maximumIconSize READ maximumIconSize WRITE setMaximumIconSize)
72 
73 public:
78  explicit IconWidget(QGraphicsItem *parent = 0);
79 
85  explicit IconWidget(const QString &text, QGraphicsItem *parent = 0);
86 
93  IconWidget(const QIcon &icon, const QString &text, QGraphicsItem *parent = 0);
94 
98  virtual ~IconWidget();
99 
103  QString text() const;
104 
109  void setText(const QString &text);
110 
116  void setSvg(const QString &svgFilePath, const QString &svgIconElement = QString());
117 
121  QString svg() const;
122 
126  QString infoText() const;
127 
133  void setInfoText(const QString &text);
134 
138  QIcon icon() const;
139 
144  void setIcon(const QIcon &icon);
145 
150  QColor textBackgroundColor() const;
151 
157  void setTextBackgroundColor(const QColor &color);
158 
164  Q_INVOKABLE void setIcon(const QString &icon);
165 
169  QSizeF iconSize() const;
170 
177  void setPreferredIconSize(const QSizeF &size);
178 
186  QSizeF preferredIconSize() const;
187 
195  void setMinimumIconSize(const QSizeF &size);
196 
205  QSizeF minimumIconSize() const;
206 
214  void setMaximumIconSize(const QSizeF &size);
215 
224  QSizeF maximumIconSize() const;
225 
232  void addIconAction(QAction *action);
233 
240  void removeIconAction(QAction *action);
241 
248  void setAction(QAction *action);
249 
253  QAction *action() const;
254 
262  void setOrientation(Qt::Orientation orientation);
263 
267  Qt::Orientation orientation() const;
268 
274  void invertLayout(bool invert);
275 
279  bool invertedLayout() const;
280 
285  Q_INVOKABLE QSizeF sizeFromIconSize(const qreal iconWidth) const;
286 
290  int numDisplayLines();
291 
295  void setNumDisplayLines(int numLines);
296 
302  void setDrawBackground(bool draw);
303 
307  bool drawBackground() const;
308 
312  QPainterPath shape() const;
313 
314 public Q_SLOTS:
320  void setPressed(bool pressed = true);
321 
325  void setUnpressed();
326 
327 protected:
328  void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
329  QSizeF sizeHint(Qt::SizeHint which, const QSizeF & constraint = QSizeF()) const;
330 
331 Q_SIGNALS:
335  void pressed(bool down);
336 
340  void clicked();
341 
345  void doubleClicked();
346 
351  void activated();
352 
357  void changed();
358 
359 protected:
360  bool isDown();
361  void mousePressEvent(QGraphicsSceneMouseEvent *event);
362  void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
363  void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
364  void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
365 
366  void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
367  void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
368 
369  bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
370  void changeEvent(QEvent *event);
371 
372 public:
376  void drawActionButtonBase(QPainter *painter, const QSize &size, int element);
377 
378 private:
379  Q_PRIVATE_SLOT(d, void syncToAction())
380  Q_PRIVATE_SLOT(d, void clearAction())
381  Q_PRIVATE_SLOT(d, void svgChanged())
382  Q_PRIVATE_SLOT(d, void actionDestroyed(QObject *obj))
383  Q_PRIVATE_SLOT(d, void hoverAnimationFinished())
384  Q_PRIVATE_SLOT(d, void colorConfigChanged())
385  Q_PRIVATE_SLOT(d, void iconConfigChanged())
386  Q_PRIVATE_SLOT(d, void setPalette())
387 
388  IconWidgetPrivate * const d;
389  friend class IconWidgetPrivate;
390  friend class PopupAppletPrivate;
391 };
392 
393 } // namespace Plasma
394 
395 #endif
animator.h
Plasma::IconWidget
Definition: iconwidget.h:57
Plasma::IconWidget::numDisplayLines
int numDisplayLines()
Plasma::IconWidget::doubleClicked
void doubleClicked()
Indicates when the icon has been double-clicked.
Plasma::IconWidget::pressed
void pressed(bool down)
Indicates when the icon has been pressed.
Plasma::IconWidget::clicked
void clicked()
Indicates when the icon has been clicked.
Plasma::IconWidget::activated
void activated()
Indicates when the icon has been activated following the single or doubleclick settings.
Plasma::IconWidget::changed
void changed()
Indicates that something about the icon may have changed (image, text, etc) only actually works for i...
QGraphicsWidget
QObject
QStyleOptionGraphicsItem
QWidget
dataengine.h
Plasma
Namespace for everything in libplasma.
Definition: abstractdialogmanager.cpp:25
plasma_export.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Thu Feb 3 2022 00:00:00 by doxygen 1.9.1 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

Plasma

Skip menu "Plasma"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal