diff options
author | Ken Moore <ken@pcbsd.org> | 2015-01-19 12:34:52 -0500 |
---|---|---|
committer | Ken Moore <ken@pcbsd.org> | 2015-01-19 12:34:52 -0500 |
commit | 9a2bf7946f2d66dee5342a5cf1183814732e6277 (patch) | |
tree | efa38ec45da8744ef3401818cb51f803447d3da6 /lumina-desktop/panel-plugins/showdesktop/LHomeButton.cpp | |
parent | Add knowledge of the new Panel theme setting to lumina-config. (diff) | |
download | lumina-9a2bf7946f2d66dee5342a5cf1183814732e6277.tar.gz lumina-9a2bf7946f2d66dee5342a5cf1183814732e6277.tar.bz2 lumina-9a2bf7946f2d66dee5342a5cf1183814732e6277.zip |
Add a new panel plugin: HomeButton
This button will hide all open windows so the desktop is visible (useful for touch screens or small devices)
Diffstat (limited to 'lumina-desktop/panel-plugins/showdesktop/LHomeButton.cpp')
-rw-r--r-- | lumina-desktop/panel-plugins/showdesktop/LHomeButton.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lumina-desktop/panel-plugins/showdesktop/LHomeButton.cpp b/lumina-desktop/panel-plugins/showdesktop/LHomeButton.cpp new file mode 100644 index 00000000..2cce3395 --- /dev/null +++ b/lumina-desktop/panel-plugins/showdesktop/LHomeButton.cpp @@ -0,0 +1,43 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2015, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#include "LHomeButton.h" +#include "../../LSession.h" + +#include <LuminaX11.h> + +LHomeButtonPlugin::LHomeButtonPlugin(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ + button = new QToolButton(this); + button->setAutoRaise(true); + button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + + connect(button, SIGNAL(clicked()), this, SLOT(showDesktop())); + this->layout()->setContentsMargins(0,0,0,0); + this->layout()->addWidget(button); + + QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes +} + +LHomeButtonPlugin::~LHomeButtonPlugin(){ + +} + +void LHomeButtonPlugin::updateButtonVisuals(){ + button->setIcon( LXDG::findIcon("go-home", "") ); +} + +// ======================== +// PRIVATE FUNCTIONS +// ======================== +void LHomeButtonPlugin::showDesktop(){ + QList<WId> wins = LSession::handle()->XCB->WindowList(); + for(int i=0; i<wins.length(); i++){ + if( LXCB::INVISIBLE != LSession::handle()->XCB->WindowState(wins[i]) ){ + LSession::handle()->XCB->MinimizeWindow(wins[i]); + } + } +} + |