128 lines
3.5 KiB
C++
128 lines
3.5 KiB
C++
// File calv.h
|
|
//
|
|
// Address List View class
|
|
|
|
#ifndef _CALV_H_
|
|
#define _CALV_H_
|
|
|
|
#include "confutil.h"
|
|
#include "richaddr.h"
|
|
|
|
VOID ClearRai(RAI ** ppRai);
|
|
RAI * DupRai(RAI * pRai);
|
|
RAI * CreateRai(LPCTSTR pszName, NM_ADDR_TYPE addrType, LPCTSTR pszAddr);
|
|
BOOL FEnabledNmAddr(DWORD dwAddrType);
|
|
|
|
|
|
///////////////////////////////
|
|
// Globals for FEnabledNmAddr
|
|
extern BOOL g_fGkEnabled;
|
|
extern BOOL g_fGatewayEnabled;
|
|
extern BOOL g_bGkPhoneNumberAddressing;
|
|
|
|
|
|
// Generic class for handling I/O to the list for CallDialog
|
|
class CALV : public RefCount
|
|
{
|
|
private:
|
|
BOOL m_fAvailable; // TRUE if data is available
|
|
int m_idsName; // The address type name resource id
|
|
HWND m_hwnd; // The list view
|
|
int m_iIcon; // small icon index
|
|
const int * m_pIdMenu; // Right click menu data
|
|
bool m_fOwnerDataList;
|
|
|
|
public:
|
|
CALV(int ids, int iIcon=0, const int * pIdMenu=NULL, bool fOwnerData = false);
|
|
~CALV();
|
|
|
|
// Return TRUE if there is data available
|
|
BOOL FAvailable(void) {return m_fAvailable;}
|
|
VOID SetAvailable(BOOL fAvail) {m_fAvailable = fAvail;}
|
|
VOID SetWindow(HWND hwnd) {m_hwnd = hwnd;}
|
|
HWND GetHwnd(void) {return m_hwnd;}
|
|
VOID ClearHwnd(void) {m_hwnd = NULL;}
|
|
BOOL FOwnerData(void) {return m_fOwnerDataList;}
|
|
|
|
int GetSelection(void);
|
|
VOID SetHeader(HWND hwnd, int ids);
|
|
VOID DeleteItem(int iItem);
|
|
|
|
// Get the standard name for the address list
|
|
VOID GetName(LPTSTR psz, int cchMax)
|
|
{
|
|
FLoadString(m_idsName, psz, cchMax);
|
|
}
|
|
|
|
VOID DoMenu(POINT pt, const int * pIdMenu);
|
|
|
|
static VOID SetBusyCursor(BOOL fBusy);
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// VIRTUAL methods
|
|
|
|
virtual int GetIconId(LPCTSTR psz) {return m_iIcon;}
|
|
|
|
// Put the items into the list control
|
|
virtual VOID ShowItems(HWND hwnd) = 0; // This must be implemented
|
|
|
|
// Destroy all of the data in the list control
|
|
virtual VOID ClearItems(void);
|
|
|
|
// Return the string data for the item/column
|
|
virtual BOOL GetSzData(LPTSTR psz, int cchMax, int iItem, int iCol);
|
|
|
|
// Return the name (from the first column)
|
|
virtual BOOL GetSzName(LPTSTR psz, int cchMax);
|
|
virtual BOOL GetSzName(LPTSTR psz, int cchMax, int iItem);
|
|
|
|
// Return the "callTo" address (from the second column)
|
|
virtual BOOL GetSzAddress(LPTSTR psz, int cchMax);
|
|
virtual BOOL GetSzAddress(LPTSTR psz, int cchMax, int iItem);
|
|
|
|
// Get the "Rich" address information
|
|
virtual RAI * GetAddrInfo(void);
|
|
virtual RAI * GetAddrInfo(NM_ADDR_TYPE addType);
|
|
|
|
virtual LPARAM LParamFromItem(int iItem);
|
|
|
|
// Handle a right click notification
|
|
virtual VOID OnRClick(POINT pt);
|
|
|
|
// Handle a command
|
|
virtual VOID OnCommand(WPARAM wParam, LPARAM lParam);
|
|
|
|
// Default commands
|
|
virtual VOID CmdProperties(void);
|
|
virtual VOID CmdSpeedDial(void);
|
|
virtual VOID CmdRefresh(void);
|
|
|
|
virtual void OnListCacheHint( int indexFrom, int indexTo )
|
|
{
|
|
;
|
|
}
|
|
|
|
virtual ULONG OnListFindItem( const TCHAR* szPartialMatchingString )
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
virtual bool IsItemBold( int index )
|
|
{
|
|
return false;
|
|
}
|
|
|
|
virtual int OnListGetImageForItem( int iIndex )
|
|
{
|
|
return II_INVALIDINDEX;
|
|
}
|
|
virtual void OnListGetColumn1Data( int iItemIndex, int cchTextMax, TCHAR* szBuf ) { lstrcpyn( szBuf, "", cchTextMax ); }
|
|
virtual void OnListGetColumn2Data( int iItemIndex, int cchTextMax, TCHAR* szBuf ) { lstrcpyn( szBuf, "", cchTextMax ); }
|
|
virtual void OnListGetColumn3Data( int iItemIndex, int cchTextMax, TCHAR* szBuf ) { lstrcpyn( szBuf, "", cchTextMax ); }
|
|
};
|
|
|
|
#endif /* _CALV_H_ */
|
|
|
|
|
|
|