• Main Page
  • Classes
  • Files
  • File List

CMSWindowsServerTaskBarReceiver.h

00001 /*
00002  * synergy -- mouse and keyboard sharing utility
00003  * Copyright (C) 2012 Bolton Software Ltd.
00004  * Copyright (C) 2003 Chris Schoeneman
00005  * 
00006  * This package is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU General Public License
00008  * found in the file COPYING that should have accompanied this file.
00009  * 
00010  * This package is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00017  */
00018 
00019 #ifndef CMSWINDOWSSERVERTASKBARRECEIVER_H
00020 #define CMSWINDOWSSERVERTASKBARRECEIVER_H
00021 
00022 #define WIN32_LEAN_AND_MEAN
00023 
00024 #include "CServerTaskBarReceiver.h"
00025 #include <windows.h>
00026 
00027 class CBufferedLogOutputter;
00028 
00030 class CMSWindowsServerTaskBarReceiver : public CServerTaskBarReceiver {
00031 public:
00032     CMSWindowsServerTaskBarReceiver(HINSTANCE, const CBufferedLogOutputter*);
00033     virtual ~CMSWindowsServerTaskBarReceiver();
00034 
00035     // IArchTaskBarReceiver overrides
00036     virtual void        showStatus();
00037     virtual void        runMenu(int x, int y);
00038     virtual void        primaryAction();
00039     virtual const Icon  getIcon() const;
00040     void cleanup();
00041 
00042 protected:
00043     void                copyLog() const;
00044 
00045     // CServerTaskBarReceiver overrides
00046     virtual void        onStatusChanged();
00047 
00048 private:
00049     HICON               loadIcon(UINT);
00050     void                deleteIcon(HICON);
00051     void                createWindow();
00052     void                destroyWindow();
00053 
00054     BOOL                dlgProc(HWND hwnd,
00055                             UINT msg, WPARAM wParam, LPARAM lParam);
00056     static BOOL CALLBACK
00057                         staticDlgProc(HWND hwnd,
00058                             UINT msg, WPARAM wParam, LPARAM lParam);
00059 
00060 private:
00061     HINSTANCE           m_appInstance;
00062     HWND                m_window;
00063     HMENU               m_menu;
00064     HICON               m_icon[kMaxState];
00065     const CBufferedLogOutputter*    m_logBuffer;
00066     static const UINT   s_stateToIconID[];
00067 };
00068 
00069 #endif

Generated on Fri May 24 2013 00:00:04 for Synergy by  doxygen 1.7.1