Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

148 lines
3.9 KiB

// ViewRow.h: interface for the CViewRow class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_VIEWROW_H__6BEB111C_C0F4_46DD_A28A_0BFEE31CA6EF__INCLUDED_)
#define AFX_VIEWROW_H__6BEB111C_C0F4_46DD_A28A_0BFEE31CA6EF__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//
// List of ids for images in the image list used for icons in the list view
//
typedef enum
{
INVALID = -1,
LIST_IMAGE_PARTIALLY_RECEIVED,
LIST_IMAGE_NORMAL_MESSAGE,
LIST_IMAGE_RECEIVING,
LIST_IMAGE_ROUTING,
LIST_IMAGE_ERROR,
LIST_IMAGE_PAUSED,
LIST_IMAGE_SENDING,
LIST_IMAGE_SUCCESS,
LIST_IMAGE_COVERPAGE
} IconType;
//
// Items available for a view
//
typedef enum
{
//
// common items
//
MSG_VIEW_ITEM_ICON,
MSG_VIEW_ITEM_STATUS,
MSG_VIEW_ITEM_SERVER,
MSG_VIEW_ITEM_NUM_PAGES,
MSG_VIEW_ITEM_CSID,
MSG_VIEW_ITEM_TSID,
MSG_VIEW_ITEM_SIZE,
MSG_VIEW_ITEM_DEVICE,
MSG_VIEW_ITEM_RETRIES,
MSG_VIEW_ITEM_ID,
MSG_VIEW_ITEM_BROADCAST_ID,
MSG_VIEW_ITEM_CALLER_ID,
MSG_VIEW_ITEM_ROUTING_INFO,
MSG_VIEW_ITEM_DOC_NAME,
MSG_VIEW_ITEM_SUBJECT,
MSG_VIEW_ITEM_RECIPIENT_NAME,
MSG_VIEW_ITEM_RECIPIENT_NUMBER,
MSG_VIEW_ITEM_USER,
MSG_VIEW_ITEM_PRIORITY,
MSG_VIEW_ITEM_ORIG_TIME,
MSG_VIEW_ITEM_SUBMIT_TIME,
MSG_VIEW_ITEM_BILLING,
MSG_VIEW_ITEM_TRANSMISSION_START_TIME,
//
// job specific
//
MSG_VIEW_ITEM_SEND_TIME,
MSG_VIEW_ITEM_EXTENDED_STATUS,
MSG_VIEW_ITEM_CURRENT_PAGE,
//
// message specific
//
MSG_VIEW_ITEM_SENDER_NAME,
MSG_VIEW_ITEM_SENDER_NUMBER,
MSG_VIEW_ITEM_TRANSMISSION_END_TIME,
MSG_VIEW_ITEM_TRANSMISSION_DURATION,
//
// End of list (unused)
//
MSG_VIEW_ITEM_END
} MsgViewItemType;
class CViewRow
{
public:
CViewRow() :
m_pMsg(NULL),
m_bAttached(FALSE),
m_bStringsPreparedForDisplay(FALSE)
{}
virtual ~CViewRow() {}
DWORD AttachToMsg(CFaxMsg *pMsg, BOOL PrepareStrings=TRUE);
int CompareByItem (CViewRow &other, DWORD item);
IconType GetIcon () const
{ ASSERT (m_bAttached); return m_Icon; }
static DWORD InitStrings ();
static DWORD GetItemTitle (DWORD, CString &);
static int GetItemAlignment (DWORD item)
{ ASSERT (item >=0 && item < MSG_VIEW_ITEM_END); return m_Alignments[item]; }
const CString &GetItemString (DWORD item) const
{
ASSERT (m_bAttached && item >=0 && item < MSG_VIEW_ITEM_END);
ASSERT (MSG_VIEW_ITEM_ICON != item);
ASSERT (m_bStringsPreparedForDisplay);
return m_Strings[item];
}
static BOOL IsItemIcon (DWORD item)
{ return (MSG_VIEW_ITEM_ICON == item); }
protected:
CFaxMsg* m_pMsg;
BOOL m_bAttached; // Are we attached to the job / message?
IconType m_Icon; // Icon id of job / message
BOOL m_bStringsPreparedForDisplay; // Is m_Strings valid?
CString m_Strings[MSG_VIEW_ITEM_END]; // String representation of
// item's data
static CString m_cstrPriorities[FAX_PRIORITY_TYPE_HIGH+1];
static CString m_cstrQueueStatus[NUM_JOB_STATUS];
static CString m_cstrQueueExtendedStatus[JS_EX_CALL_ABORTED - JS_EX_DISCONNECTED + 1];
static CString m_cstrMessageStatus[2];
static int m_Alignments[MSG_VIEW_ITEM_END];
static int m_TitleResources[MSG_VIEW_ITEM_END];
DWORD DetachFromMsg();
IconType CalcIcon(CFaxMsg *pMsg);
private:
IconType CalcJobIcon(CFaxMsg *pJob);
IconType CalcMessageIcon(CFaxMsg *pMsg);
DWORD InitStatusStr(CFaxMsg *pMsg);
DWORD InitExtStatusStr(CFaxMsg *pMsg);
};
#endif // !defined(AFX_VIEWROW_H__6BEB111C_C0F4_46DD_A28A_0BFEE31CA6EF__INCLUDED_)