Masterctrl/Sources/Gui/SystemTrayManager.cpp
J-F Martel 31997aad40 Dev
2015-12-02 20:37:01 -05:00

78 lines
1.9 KiB
C++

#include "SystemTrayManager.h"
#include "MasterCtrl.h"
#include <QCursor>
CSystemTrayManager::CSystemTrayManager()
{
mProgramHandle = 0;
mTrayMenu = new QMenu();
connect(&mSystemTrayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(TrayIconActivated(QSystemTrayIcon::ActivationReason)));
connect(&mSystemTrayIcon,SIGNAL(messageClicked()),this,SLOT(TrayBaloonMessageClicked()));
connect(mTrayMenu,SIGNAL(triggered(QAction*)),this,SLOT(TrayMenuClicked(QAction*)));
mQuitAction = mTrayMenu->addAction("Quit MasterController");
mShowSettingsGUIAction = mTrayMenu->addAction("Settings");
mSystemTrayIcon.setIcon(QIcon("./Ico/icon.png"));
mSystemTrayIcon.setToolTip("MasterController :)");
mSystemTrayIcon.show();
mSystemTrayIcon.setContextMenu(mTrayMenu);
}
CSystemTrayManager::~CSystemTrayManager()
{
mSystemTrayIcon.hide();
delete mTrayMenu;
}
void CSystemTrayManager::TrayBaloonMessageClicked()
{
qDebug("Baloon message clicked");
}
void CSystemTrayManager::TrayIconActivated(QSystemTrayIcon::ActivationReason Reason)
{
qDebug("Tray icon activated %d",Reason);
// mSystemTrayIcon.showMessage("Icon Clicked","The icon has\nbeen clicked.");
switch(Reason)
{
case QSystemTrayIcon::Unknown:
{
break;
}
case QSystemTrayIcon::Context:
{
break;
}
case QSystemTrayIcon::DoubleClick:
{
break;
}
case QSystemTrayIcon::Trigger:
{
mTrayMenu->popup(QCursor::pos());
break;
}
case QSystemTrayIcon::MiddleClick:
{
break;
}
}
}
void CSystemTrayManager::TrayMenuClicked(QAction *Menu)
{
if(Menu == mQuitAction)
{
qDebug("Quit");
mProgramHandle->QuitApplicationRequest();
}
else if(Menu == mShowSettingsGUIAction)
{
qDebug("Settings");
}
}