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