From ed5ecf7ea7a482b4649e66ecb35fbc60af680684 Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Mon, 25 Apr 2016 13:08:12 -0400 Subject: Rearrange the Lumina source tree quite a bit: Now the utilites are arranged by category (core, core-utils, desktop-utils), so all the -utils may be excluded by a package system (or turned into separate packages) as needed. --- .../panel-plugins/systemstart/LStartButton.h | 111 +++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h (limited to 'src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h') diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h new file mode 100644 index 00000000..f549b8d2 --- /dev/null +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h @@ -0,0 +1,111 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2015, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This panel plugin is the main button that allow the user to run +// applications or logout of the desktop +//=========================================== +#ifndef _LUMINA_DESKTOP_START_MENU_PLUGIN_H +#define _LUMINA_DESKTOP_START_MENU_PLUGIN_H + +// Qt includes +#include +#include +#include +#include +#include +#include + +// Lumina-desktop includes +//#include "../../Globals.h" +#include "../LPPlugin.h" //main plugin widget + +// libLumina includes +#include +#include + +#include "StartMenu.h" + +//Simple Tool Button For QuickLaunch Items +class LQuickLaunchButton : public QToolButton{ + Q_OBJECT +signals: + void Launch(QString); + void Remove(QString); + +private slots: + void rmentry(){ + emit Remove(this->whatsThis()); + } + void launchentry(){ + emit Launch(this->whatsThis()); + } + +public: + LQuickLaunchButton(QString path, QWidget* parent = 0) : QToolButton(parent){ + this->setWhatsThis(path); + this->setMenu(new QMenu(this)); + this->setContextMenuPolicy(Qt::CustomContextMenu); + this->menu()->addAction( LXDG::findIcon("edit-delete",""), tr("Remove from Quicklaunch"), this, SLOT(rmentry()) ); + connect(this, SIGNAL(clicked()), this, SLOT(launchentry()) ); + connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showMenu()) ); + } + ~LQuickLaunchButton(){} + +}; + +// PANEL PLUGIN BUTTON +class LStartButtonPlugin : public LPPlugin{ + Q_OBJECT + +public: + LStartButtonPlugin(QWidget *parent = 0, QString id = "systemstart", bool horizontal=true); + ~LStartButtonPlugin(); + +private: + ResizeMenu *menu; + //QWidgetAction *mact; + StartMenu *startmenu; + QToolButton *button; + QList QUICKL; + +private slots: + void openMenu(); + void closeMenu(); + + void updateButtonVisuals(); + + void updateQuickLaunch(QStringList); + void LaunchQuick(QString); + void RemoveQuick(QString); + void SaveMenuSize(QSize); + +public slots: + void OrientationChange(){ + if(this->layout()->direction()==QBoxLayout::LeftToRight){ + this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); + button->setIconSize( QSize(this->height(), this->height()) ); + for(int i=0; isetIconSize(QSize(this->height(), this->height())); } + }else{ + this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); + button->setIconSize( QSize(this->width(), this->width()) ); + for(int i=0; isetIconSize(QSize(this->width(), this->width())); } + } + this->layout()->update(); + updateButtonVisuals(); + } + + void LocaleChange(){ + updateButtonVisuals(); + startmenu->UpdateAll(); + } + + void ThemeChange(){ + updateButtonVisuals(); + startmenu->UpdateAll(); + } +}; + +#endif \ No newline at end of file -- cgit