Logo Search packages:      
Sourcecode: icecast2 version File versions

Traynot.cpp

#include "stdafx.h"
#include "TrayNot.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTrayNot

CTrayNot::CTrayNot ( CWnd* pWnd, UINT uCallbackMessage,
                                          LPCTSTR szTip, HICON* pList )
{
      // this is only for Windows 95 (or higher)
      m_bEnabled = ( GetVersion() & 0xff ) >= 4 ;
      if (!m_bEnabled)
            return ;

      // load up the NOTIFYICONDATA structure
      m_tnd.cbSize = sizeof(NOTIFYICONDATA) ;
      m_tnd.hWnd = pWnd->GetSafeHwnd() ;
      m_tnd.uID = 0 ;
      m_tnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP ;     
      m_tnd.uCallbackMessage = uCallbackMessage;  
      strcpy ( m_tnd.szTip, "Icecast2");
      //or you could use:
      //strcpy ( m_tnd.szTip, AfxGetApp()->m_pszAppName);
      //this will display the app name instead of the string you specify 

 
 
      // save the pointer to the icon list and set the initial
      // default icon.
      m_pIconList = pList ;
      m_tnd.hIcon = m_pIconList[0] ;
      Shell_NotifyIcon (NIM_ADD,&m_tnd);
 


}

CTrayNot::~CTrayNot()
{
      if (m_bEnabled)
            Shell_NotifyIcon (NIM_DELETE, &m_tnd);
}

void CTrayNot::SetState(int id)
{
      if (!m_bEnabled)
            return;
      m_tnd.hIcon = m_pIconList[id];
      m_tnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP ;
       
      //Ive found in windows XP that this command makes the icon not visable in the system tray....we dont want that now
      //do we?
      Shell_NotifyIcon(NIM_MODIFY, &m_tnd);
}
void CTrayNot::SetTIP(char *pTip) {
      memset(m_tnd.szTip, '\000', sizeof(m_tnd.szTip));
      strncpy(m_tnd.szTip, pTip, sizeof(m_tnd.szTip)-1);

      Shell_NotifyIcon(NIM_MODIFY, &m_tnd);
}

Generated by  Doxygen 1.6.0   Back to index