mirror of
https://github.com/owntone/owntone-server.git
synced 2025-11-11 14:30:20 -05:00
Merge from dev-FireflyShell branch
This commit is contained in:
81
win32/FireflyShell/NotifyIcon.h
Normal file
81
win32/FireflyShell/NotifyIcon.h
Normal file
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
*(C) 2006 Roku LLC
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License Version 2 as published
|
||||
* by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* without any warranty; without even the implied warranty of
|
||||
* merchantability or fitness for a particular purpose. See the GNU General
|
||||
* Public License for more details.
|
||||
*
|
||||
* Please read README.txt in the same directory as this source file for
|
||||
* further license information.
|
||||
*/
|
||||
|
||||
#ifndef NOTIFYICON_H
|
||||
#define NOTIFYICON_H
|
||||
|
||||
#include "ServiceControl.h"
|
||||
#include "ServerEvents.h"
|
||||
|
||||
class CNotifyIcon
|
||||
: public CWindowImpl<CNotifyIcon>,
|
||||
public ServiceStatusObserver,
|
||||
public ServerEvents::Observer
|
||||
{
|
||||
typedef CWindowImpl<CNotifyIcon> base;
|
||||
|
||||
NOTIFYICONDATA m_nid;
|
||||
HICON m_running_icon;
|
||||
HICON m_stopped_icon;
|
||||
UINT m_registered_activation_message;
|
||||
|
||||
enum { TIMER_ID = 43 };
|
||||
enum { WM_SERVEREVENT = WM_APP + 42 };
|
||||
|
||||
enum { PRIVATE_WM_NOTIFYICON = WM_USER + 42 };
|
||||
|
||||
BEGIN_MSG_MAP(CNotifyIcon)
|
||||
MESSAGE_HANDLER(PRIVATE_WM_NOTIFYICON, OnNotifyIconMessage)
|
||||
COMMAND_ID_HANDLER(ID_CONFIGURE, OnConfigure)
|
||||
COMMAND_ID_HANDLER(ID_EXIT, OnExit)
|
||||
MESSAGE_HANDLER(m_registered_activation_message, OnRegisteredActivation)
|
||||
MESSAGE_HANDLER(WM_SERVEREVENT, OnServerEvent)
|
||||
MESSAGE_HANDLER(WM_WTSSESSION_CHANGE, OnSessionChange)
|
||||
MSG_WM_TIMER(OnTimer)
|
||||
END_MSG_MAP()
|
||||
|
||||
// Message handlers
|
||||
void OnContextMenu();
|
||||
LRESULT OnNotifyIconMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
||||
LRESULT OnConfigure(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
||||
LRESULT OnExit(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
||||
LRESULT OnRegisteredActivation(UINT, WPARAM, LPARAM, BOOL &bHandled);
|
||||
LRESULT OnServerEvent(UINT, WPARAM, LPARAM, BOOL &bHandled);
|
||||
LRESULT OnSessionChange(UINT, WPARAM, LPARAM, BOOL &bHandled);
|
||||
void OnTimer(UINT id, TIMERPROC proc);
|
||||
|
||||
void PopupBalloon(UINT title_id, UINT text_id, DWORD flags = NIIF_INFO);
|
||||
|
||||
void InflictIconState();
|
||||
void Update();
|
||||
|
||||
// Terminal services stuff on XP.
|
||||
void EnableUserSwitchNotifications();
|
||||
|
||||
// ServiceStatusObserver
|
||||
void OnServiceStatus(Service::Status old_status, Service::Status new_status);
|
||||
|
||||
// ServerEvents::Observer
|
||||
void OnServerEvent(UINT32 id, UINT32 intval, const CString &str);
|
||||
|
||||
public:
|
||||
CNotifyIcon();
|
||||
BOOL Create();
|
||||
void Destroy();
|
||||
|
||||
};
|
||||
|
||||
#endif // NOTIFYICON_H
|
||||
Reference in New Issue
Block a user