#pragma once
|
#include "SImRichEdit.h"
|
// SChatEditLog command target
|
|
|
typedef struct tagSTKWaitImage
|
{
|
SStringT strMsgID;
|
DWORD dwWaitImageIndex;
|
SStringT strFileID;
|
SStringT strFileImage;
|
SStringT strImageExt;
|
SStringT strFileSFlag;
|
}stSTKWaitImage;
|
|
typedef enum
|
{
|
e_TipsType_Info,
|
e_TipsType_Error,
|
e_TipsType_Ok,
|
e_TipsType_Help,
|
e_TipsType_NULL
|
}eTipsType;
|
|
typedef enum
|
{
|
e_CustomImage_Error,
|
e_CustomImage_Wait,
|
} eCustomImageType;
|
|
typedef struct tagSTKReoData
|
{
|
eCustomImageType customType;
|
int nInsertPos;
|
DWORD dwData;
|
SStringT strFileName; //ËùµÈ´ýµÄͼƬ
|
|
|
tagSTKReoData()
|
{
|
customType = e_CustomImage_Wait;
|
nInsertPos = -1;
|
dwData = 0;
|
}
|
|
}stSTKReoData;
|
|
|
typedef CMap<SStringT, LPCTSTR, stSTKWaitImage, stSTKWaitImage&> CMapSTKWaitImage;
|
typedef struct _stMBChatFile
|
{
|
SStringT strFileName;
|
SStringT strFilePath;
|
SStringT strFileID;
|
SStringT strFileSFlag;
|
SStringT strMsgFlag;
|
__int64 nFileSize;
|
_stMBChatFile(): nFileSize(0){};
|
}stMBChatFile;
|
|
typedef SArray<stMBChatFile> SArrayChatFile;
|
typedef CMap<CString, LPCTSTR, stAttachInfo, stAttachInfo&> CMapAttachInfo;
|
|
class CChatUserInfo
|
{
|
public:
|
CChatUserInfo() :
|
Name(L""),
|
Account(L""),
|
AvatarId(L""),
|
AvatarPath(L""),
|
Title(L"")
|
{
|
}
|
CChatUserInfo(LPCWSTR pName, LPCWSTR pAccount, LPCWSTR pAvatarId, LPCWSTR pAvatarPath, LPCWSTR pTitle,CHighTime &tTime) :
|
Name(pName),
|
Account(pAccount),
|
AvatarId(pAvatarId),
|
AvatarPath(pAvatarPath),
|
Title(pTitle),
|
tDateTime(tTime)
|
{
|
}
|
CHighTime tDateTime;
|
SStringT Name;
|
SStringT Account;
|
SStringT AvatarId;
|
SStringT AvatarPath;
|
SStringT Title;
|
};
|
class AFX_EXT_CLASS SChatEditLog : public SImRichEdit
|
{
|
public:
|
SOUI_CLASS_NAME(SChatEditLog,L"chateditlog")
|
public:
|
SChatEditLog();
|
virtual ~SChatEditLog();
|
public:
|
SStringT m_strChatTitle;
|
SStringT m_strTitleFormat;
|
SStringT m_strMyNick;
|
vector<stSTKReoData*> m_vecReoData;
|
BOOL m_bWaitingImage;
|
CMapSTKWaitImage m_mapWaitImage;
|
CMBImageInfoArray m_arImageInfo; // ͼƬÊý¾Ý
|
SWindow *m_pButtonCopy; // ¸´Öư´Å¥
|
SWindow *m_pButtonSaveAs; // Áí´æÎª°´Å¥
|
CString m_strSaveAsImage;
|
BOOL m_bShowUserName;
|
public:
|
void SetMyNick( LPCTSTR strNick);//Setting the user name in IM
|
void SetShowUserName( BOOL bShowUserName);//Setting the user name in IM
|
void SetChatTitle( LPCTSTR strChatTitle);//Setting the user name in IM
|
virtual SStringT GetImageFolder();
|
virtual SStringT GetCustomImageFolder();
|
void WriteNewLine();
|
static BOOL LoadEmotions(LPCTSTR strFolder = NULL,LPCTSTR strExtrenFolder = NULL);
|
void AddFetchMoreBlock();
|
void AddSeparatorBar();
|
UINT AddCenterMessage(SStringT body, UINT insertTo = RECONTENT_LAST);
|
UINT AddCenterMessageWhitoutBuggle(const SStringT body, UINT insertTo = RECONTENT_LAST);
|
UINT AddLeftMessage(CChatUserInfo& info, const SStringT& msgid, const SStringT& body, UINT insertTo = RECONTENT_LAST);
|
UINT AddRightMessage(CChatUserInfo& info, const SStringT& msgid, const SStringT& body,const SStringT msgdata = _T(""),bool bMsgSending =false, UINT insertTo = RECONTENT_LAST);
|
UINT AddSendFileMessage(CChatUserInfo& info, SStringT &strFilePath,SStringT &strFileSFlag,SStringT &strSendFlag,SStringT &strChatId,__int64 nFileSize,const SStringT& msgdata, UINT insertTo = RECONTENT_LAST);
|
UINT AddShareFileMessage(CChatUserInfo& info, SStringT &strFileName,SStringT &strShareID,SStringT &strChatId,__int64 nFileSize, UINT insertTo = RECONTENT_LAST);
|
void AddCustomCenterMessageTip(const SStringT& body,eTipsType nTipsType = e_TipsType_Info);
|
void ClearLog();
|
UINT AddXMLMessage( CChatUserInfo& info, const SStringT& msgid, const SStringT& body,SStringT &strChatId, UINT insertTo = RECONTENT_LAST);
|
SStringT GetSouiFormatText(const SStringT msgid,SStringT strContent ,SStringT strChatId);
|
SStringT GungHoMsgToSouiFormat(const SStringT& msgid,SStringT strUrl,SStringT strContent ,SStringT &strChatId, SStringT strSubject);
|
SStringT GetFileSouiFormatText(const SStringT& msgid,SArrayChatFile &arFile,SStringT &strChatId,SStringT strFrom,bool bSendMsg = true );
|
SStringT GetShareFileSouiFormatText(const SStringT& msgid,SStringT &strFileName,SStringT &strFilePath,SStringT &strChatId,__int64 nFileSize );
|
SStringT GetSouiCharFormat(IXMLDOMElementPtr ptrBody/*,CString strMainCharFormat =_T("")*/);
|
SStringT GetAllContent();
|
BOOL ReplaceCustomImage( CString strFileID, eCustomImageType nType, LPCTSTR strWantedImage);
|
BOOL SetTransferSize(CString strSendFlag, CString strSendFileFlag, __int64 nSizeFile,__int64 nSzeTransfer);
|
BOOL StartTransferFile(CString strSendFlag, CString strSendFileFlag,long nTrID);
|
BOOL SetTransferSpeed(CString strSendFlag, CString strSendFileFlag,CString strSpeed);
|
BOOL SetTransferFinsish(CString strSendFlag, CString strSendFileFlag, CString strFileID);
|
BOOL SetDownloadFinsish(CString strSendFlag, CString strSendFileFlag, CString strFilePath);
|
BOOL CancelFileTransfer(CString strSendFlag, CString strSendFileFlag);
|
BOOL SetTransferFailed(CString strSendFlag, CString strSendFileFlag,CString strErrorInfo = _T(""));
|
BOOL SendMsgFailed(CString strSendFlag,CString strErrorInfo = _T(""));
|
BOOL ResendMsg(CString strSendFlag );
|
BOOL SendMsgSuccess(CString strSendFlag,CString strMsgID );
|
BOOL CheckTransferFileCancel(CString strSendFlag, CString strSendFileFlag);
|
BOOL SetTransferFileContinue(CString strSendFlag, CString strSendFileFlag);
|
BOOL SetSendMsgSuccess(CString strSendFlag, CString strMsgID,CString strState = _T(""));
|
BOOL SetTransferFileDeleted(CString strSendFlag, CString strSendFileFlag,CString strTipInfo = _T(""));
|
SStringT GetSOUIContent(SStringT strSendFlag);
|
SStringT TransferFormatText(SArrayChatFile &arFileInfo,SStringT strSouiText,SStringT &strMsgData);
|
|
BOOL CheckMsgIsLoad(CString strMsgID);
|
float GetFontSize( int nFontHeight);
|
void ParseImageInfo(CString strMsg, UINT insertTo=RECONTENT_LAST);
|
void GetImageArrayWithCurIndex(CMBImageInfoArray & arImage,int &nCurIndex,CString strKey);
|
void AppendRTF(CString strRTF);
|
public:
|
virtual UINT OnGetDlgCode();
|
virtual SStringW GetSelectedContent(CHARRANGE* lpchrg/*=NULL*/);
|
protected:
|
void ClearReoVector();
|
BOOL IsReoIndexValid( int nIndex);
|
SStringT GetSysFaceShortCut(int nIndex);
|
int GetSysFaceIndex(CString strShortCut);
|
SStringT GetSysFaceDesc(SStringT strShortCut);
|
SStringT GetSysFacePath(int nIndex);
|
BOOL CheckMsgIsOneFileOrImage(CString strMsg);
|
BOOL GetLineRect(int nLineNo, SOUI::CRect& rcLine);
|
protected:
|
SOUI_MSG_MAP_BEGIN()
|
MSG_WM_LBUTTONDOWN(OnLButtonDown)
|
MSG_WM_LBUTTONDBLCLK(OnLButtonDblClick)
|
MSG_WM_MOUSEMOVE(OnMouseMove)
|
//MSG_WM_MOUSELEAVE(OnMouseLeave)
|
SOUI_MSG_MAP_END()
|
void OnLButtonDown(UINT nFlags, SOUI::CPoint point);
|
void OnLButtonDblClick(UINT nFlags, SOUI::CPoint point);
|
void OnMouseMove(UINT nFlags, SOUI::CPoint point);
|
// void OnMouseLeave();
|
private:
|
SStringT GetSelectedText(CHARRANGE* lpchrg/*=NULL*/, bool bIsFirst, bool bIsLast);
|
SStringT GetOneMsgSelectedContent(CHARRANGE* lpchrg/*=NULL*/);
|
BOOL CheckCharFormatFontSame(CHARFORMAT &cfCharFormat,CHARFORMAT &cfCharFormat2);
|
void GetCharFormatFont(CHARFORMAT &cfCharFormat,CString& strFontName,COLORREF &clrTextColor,int& nFontSize,BOOL &bFontBold,BOOL &bFontUnderline,BOOL &bFontItalic);
|
SStringT GetMsgContent(int nIndex);
|
SStringT GetMsgText(int nIndex);
|
SStringT GetGungHoMsgType(int nMsgType);
|
SStringT GetFormatFontText(CString strFontName = _T("΢ÈíÑźÚ"),COLORREF clrTextColor=0,int nFontSize = 10,BOOL bFontBold = FALSE,BOOL bFontUnderline= FALSE,BOOL bFontItalic= FALSE);
|
SStringT GetFormatTextBody(SStringT strText,SStringT strCharFormat);
|
};
|