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