Plasma
extendergroup.h
Go to the documentation of this file.
00001 /* 00002 * Copyright 2009 by Rob Scheepmaker <r.scheepmaker@student.utwente.nl> 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, 00017 * Boston, MA 02110-1301 USA 00018 */ 00019 00020 #ifndef PLASMA_EXTENDERGROUP_H 00021 #define PLASMA_EXTENDERGROUP_H 00022 00023 #include <QtGui/QGraphicsWidget> 00024 #include <QtCore/QList> 00025 00026 #include "extenderitem.h" 00027 00028 #include "plasma/plasma_export.h" 00029 00030 namespace Plasma 00031 { 00032 00033 class ExtenderGroupPrivate; 00034 class ExtenderItem; 00035 class Applet; 00036 00050 class PLASMA_EXPORT ExtenderGroup : public ExtenderItem 00051 { 00052 Q_OBJECT 00053 Q_PROPERTY(bool autoHide READ autoHide WRITE setAutoHide) 00054 Q_PROPERTY(bool groupCollapsed READ isGroupCollapsed WRITE setGroupCollapsed) 00055 Q_PROPERTY(bool autoCollapse READ isAutoCollapse WRITE setAutoCollapse) 00056 00057 public: 00062 explicit ExtenderGroup(Extender *parent, uint groupId = 0); 00063 00064 ~ExtenderGroup(); 00065 00069 QList<ExtenderItem*> items() const; 00070 00074 bool autoHide() const; 00075 00079 void setAutoHide(bool autoHide); 00080 00085 bool isGroupCollapsed() const; 00086 00091 bool isAutoCollapse() const; 00092 00097 void setAutoCollapse(bool collapse); 00098 00099 public Q_SLOTS: 00104 void setGroupCollapsed(bool collapsed); 00105 00109 void expandGroup(); 00110 00115 void collapseGroup(); 00116 00117 protected: 00118 void resizeEvent(QGraphicsSceneResizeEvent *event); 00119 bool eventFilter(QObject *watched, QEvent *event); 00120 void dragEnterEvent(QGraphicsSceneDragDropEvent *event); 00121 void dragMoveEvent(QGraphicsSceneDragDropEvent *event); 00122 void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); 00123 void dropEvent(QGraphicsSceneDragDropEvent *event); 00124 00125 private: 00126 ExtenderGroupPrivate * const d; 00127 00128 Q_PRIVATE_SLOT(d, void addItemToGroup(Plasma::ExtenderItem *item)) 00129 Q_PRIVATE_SLOT(d, void removeItemFromGroup(Plasma::ExtenderItem *item)) 00130 Q_PRIVATE_SLOT(d, void themeChanged()) 00131 00132 friend class ExtenderItem; 00133 }; 00134 } // Plasma namespace 00135 00136 #endif //PLASMA_EXTENDER_H 00137
KDE 4.6 API Reference