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