SystemGui/Sources/SystemTrayManager.cpp
2017-04-12 13:37:09 -04:00

97 lines
2.4 KiB
C++

#include "SystemTrayManager.h"
#include "SystemGui.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*)));
mShowSettingsGUIAction = mTrayMenu->addAction("Settings");
mQuitAction = mTrayMenu->addAction("Quit SMS Client");
mSystemTrayIcon.setIcon(QIcon("./Ico/sms.png"));
mSystemTrayIcon.setToolTip("SMS Client :)");
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:
{
//qDebug("Context");
break;
}
case QSystemTrayIcon::DoubleClick:
{
break;
}
case QSystemTrayIcon::Trigger:
{
//qDebug("Trigger");
//mTrayMenu->popup(QCursor::pos());
//mProgramHandle->RespawnMainWindowRequest();
mProgramHandle->TrayIconLeftClick();
break;
}
case QSystemTrayIcon::MiddleClick:
{
break;
}
}
}
void CSystemTrayManager::TrayMenuClicked(QAction *Menu)
{
if(Menu == mQuitAction)
{
qDebug("Quit");
mProgramHandle->QuitApplicationRequest();
}
else if(Menu == mShowSettingsGUIAction)
{
qDebug("Settings");
mProgramHandle->ShowSettingsWindowRequest();
}
}
int CSystemTrayManager::NewSMSMessagesPendingCount(int count)
{
if(count == 0)
{
mSystemTrayIcon.setIcon(QIcon("./Ico/sms.png"));
}
else
{
mSystemTrayIcon.setIcon(QIcon("./Ico/sms_new.png"));
}
return RET_OK;
}