1 //===========================================
2 //  Lumina-DE source code
3 //  Copyright (c) 2014, Susanne Jaeckel
4 //  Available under the 3-clause BSD license
5 //  See the LICENSE file for full details
6 //===========================================
7 #ifndef _LUMINA_DESKTOP_SWITCHER_H
8 #define _LUMINA_DESKTOP_SWITCHER_H
9 
10 #include <QTimer>
11 #include <QWidget>
12 #include <QString>
13 //#include <QX11Info>
14 #include <QMenu>
15 #include <QToolButton>
16 
17 #include <LUtils.h>
18 #include <LuminaXDG.h>
19 #include <LuminaX11.h>
20 
21 //#include "../LTBWidget.h"
22 #include "../LPPlugin.h"
23 
24 //#include <X11/Xlib.h>
25 //#include <X11/Xutil.h>
26 //#include <X11/Xatom.h>
27 
28 class LDesktopSwitcher : public LPPlugin{
29 	Q_OBJECT
30 public:
31 	LDesktopSwitcher(QWidget *parent = 0, QString id = "desktopswitcher", bool horizontal=true);
32 	~LDesktopSwitcher();
33 
34 private:
35 	QTimer *timer;
36 	QToolButton *label;
37 	QMenu *menu;
38 	int iconOld;
39 
40 	//void setNumberOfDesktops(int);
41 	//void setCurrentDesktop(int);
42 	//int getNumberOfDesktops();
43 	//int getCurrentDesktop();
44 
45 
46 	QAction* newAction(int, QString);
47 
48 private slots:
49 	void openMenu();
50 	void createMenu();
51 	void menuActionTriggered(QAction*);
52 	void updateWorkspaceMenu();
53 
54 public slots:
LocaleChange()55 	void LocaleChange(){
56 	  createMenu();
57 	}
58 
OrientationChange()59 	void OrientationChange(){
60 	  QSize sz;
61 	  if(this->layout()->direction()==QBoxLayout::LeftToRight){
62 	    this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
63 	    sz = QSize(this->height(), this->height());
64 	  }else{
65 	    this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
66 	    sz = QSize(this->width(), this->width());
67 	  }
68 	  label->setIconSize(sz);
69 	  this->layout()->update();
70 	}
71 };
72 
73 #endif
74