1 //=========================================== 2 // Lumina-DE source code 3 // Copyright (c) 2015, Ken Moore 4 // Available under the 3-clause BSD license 5 // See the LICENSE file for full details 6 //=========================================== 7 // This panel plugin is a simple button to hide all windows so the desktop is visible 8 //=========================================== 9 #ifndef _LUMINA_DESKTOP_GO_HOME_PLUGIN_H 10 #define _LUMINA_DESKTOP_GO_HOME_PLUGIN_H 11 12 // Qt includes 13 #include <QToolButton> 14 #include <QString> 15 #include <QWidget> 16 17 18 // Lumina-desktop includes 19 #include "../LPPlugin.h" //main plugin widget 20 21 // libLumina includes 22 #include "LuminaXDG.h" 23 24 // PANEL PLUGIN BUTTON 25 class LHomeButtonPlugin : public LPPlugin{ 26 Q_OBJECT 27 28 public: 29 LHomeButtonPlugin(QWidget *parent = 0, QString id = "homebutton", bool horizontal=true); 30 ~LHomeButtonPlugin(); 31 32 private: 33 QToolButton *button; 34 35 void updateButtonVisuals(); 36 37 private slots: 38 void showDesktop(); 39 40 public slots: OrientationChange()41 void OrientationChange(){ 42 if(this->layout()->direction()==QBoxLayout::LeftToRight){ 43 this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); 44 button->setIconSize( QSize(this->height(), this->height()) ); 45 }else{ 46 this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); 47 button->setIconSize( QSize(this->width(), this->width()) ); 48 } 49 this->layout()->update(); 50 updateButtonVisuals(); 51 } 52 LocaleChange()53 void LocaleChange(){ 54 updateButtonVisuals(); 55 } 56 ThemeChange()57 void ThemeChange(){ 58 updateButtonVisuals(); 59 } 60 }; 61 62 #endif