1 //=========================================== 2 // Lumina-DE source code 3 // Copyright (c) 2014, Ken Moore 4 // Available under the 3-clause BSD license 5 // See the LICENSE file for full details 6 //=========================================== 7 #ifndef _LUMINA_DESKTOP_TASK_MANAGER_PLUGIN_H 8 #define _LUMINA_DESKTOP_TASK_MANAGER_PLUGIN_H 9 10 // Qt includes 11 #include <QWidget> 12 #include <QList> 13 #include <QString> 14 #include <QDebug> 15 #include <QTimer> 16 #include <QEvent> 17 #include <QDateTime> 18 19 // libLumina includes 20 #include <LuminaX11.h> 21 22 // Local includes 23 #include "LTaskButton.h" 24 #include "LWinInfo.h" 25 #include "../LPPlugin.h" 26 27 class LTaskManagerPlugin : public LPPlugin{ 28 Q_OBJECT 29 public: 30 LTaskManagerPlugin(QWidget *parent=0, QString id="taskmanager", bool horizontal=true); 31 ~LTaskManagerPlugin(); 32 // int vertsizeicon; 33 // int *dpi; //this comes from the PCDM dpi 34 35 private: 36 QList<LTaskButton*> BUTTONS; //to keep track of the current buttons 37 QTimer *timer; 38 QDateTime updating; //quick flag for if it is currently working 39 bool usegroups; 40 41 private slots: 42 void UpdateButtons(); 43 void UpdateButton(WId win); 44 void checkWindows(); 45 46 public slots: LocaleChange()47 void LocaleChange(){ 48 UpdateButtons(); 49 } ThemeChange()50 void ThemeChange(){ 51 UpdateButtons(); 52 } OrientationChange()53 void OrientationChange(){ 54 if(this->layout()->direction()==QBoxLayout::LeftToRight){ //horizontal 55 this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); 56 this->layout()->setAlignment(Qt::AlignLeft); 57 QSize sz(this->height(), this->height()); 58 for(int i=0; i<BUTTONS.length(); i++){ 59 BUTTONS[i]->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); 60 BUTTONS[i]->setIconSize(sz); 61 } 62 }else{ //vertical 63 this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); 64 this->layout()->setAlignment(Qt::AlignTop); 65 QSize sz(this->width(), this->width()); 66 // QSize sz(this->width(), this->height()); //we want to increase the width but not the height of the icons 67 for(int i=0; i<BUTTONS.length(); i++){ 68 BUTTONS[i]->setToolButtonStyle(Qt::ToolButtonIconOnly); 69 // BUTTONS[i]->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); 70 // if( dpi = 196 ){ int vertsizeicon = ; BUTTONS[i]->setIconSize(vertsizeicon);} 71 // elseif( dpi = 144 ) { int vertsizeicon = ; BUTTONS[i]->setIconSize(vertsizeicon);} 72 // elseif( dpi = 96 ) { int vertsizeicon = ; BUTTONS[i]->setIconSize(vertsizeicon);} 73 // elseif( dpi = 48 ) { int vertsizeicon = ; BUTTONS[i]->setIconSize)vertsizeicon);} 74 BUTTONS[i]->setIconSize(sz); 75 } 76 } 77 } 78 }; 79 #endif 80