windows-nt/Source/XPSP1/NT/enduser/netmeeting/ui/conf/calv.h
2020-09-26 16:20:57 +08:00

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_ */