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