00001 // 00002 // CtrlChatFrame.h 00003 // 00004 // Copyright (c) Shareaza Development Team, 2002-2005. 00005 // This file is part of SHAREAZA (www.shareaza.com) 00006 // 00007 // Shareaza is free software; you can redistribute it 00008 // and/or modify it under the terms of the GNU General Public License 00009 // as published by the Free Software Foundation; either version 2 of 00010 // the License, or (at your option) any later version. 00011 // 00012 // Shareaza is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 // GNU General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU General Public License 00018 // along with Shareaza; if not, write to the Free Software 00019 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 // 00021 00022 #if !defined(AFX_CTRLCHATFRAME_H__2244C71A_1F23_4D0E_B360_5E551CBAC37D__INCLUDED_) 00023 #define AFX_CTRLCHATFRAME_H__2244C71A_1F23_4D0E_B360_5E551CBAC37D__INCLUDED_ 00024 00025 #pragma once 00026 00027 #include "RichViewCtrl.h" 00028 #include "RichDocument.h" 00029 #include "CtrlCoolBar.h" 00030 00031 class CChatSession; 00032 class CChatWnd; 00033 00034 00035 class CChatFrame : public CWnd 00036 { 00037 // Construction 00038 public: 00039 CChatFrame(); 00040 virtual ~CChatFrame(); 00041 00042 DECLARE_DYNAMIC(CChatFrame) 00043 00044 // Attributes 00045 public: 00046 CChatSession* m_pSession; 00047 protected: 00048 CRichDocument m_pContent; 00049 CRichViewCtrl m_wndView; 00050 CCoolBarCtrl m_wndToolBar; 00051 CEdit m_wndEdit; 00052 CMenu* m_pIconMenu; 00053 protected: 00054 CStringArray m_pHistory; 00055 int m_nHistory; 00056 CString m_sCurrent; 00057 protected: 00058 CChatWnd* m_pChildWnd; 00059 CWnd* m_pDesktopWnd; 00060 00061 // Operations 00062 public: 00063 void SetDesktopMode(BOOL bDesktop); 00064 protected: 00065 void SetAlert(BOOL bAlert = TRUE); 00066 void MoveHistory(int nDelta); 00067 BOOL IsInRange(LPCTSTR pszToken); 00068 void InsertText(LPCTSTR pszToken); 00069 void AddText(LPCTSTR pszText); 00070 void AddText(BOOL bSelf, BOOL bAction, LPCTSTR pszNick, LPCTSTR pszBody); 00071 public: 00072 virtual void OnSkinChange(); 00073 virtual void OnStatusMessage(int nFlags, LPCTSTR pszText); 00074 virtual void OnLocalText(LPCTSTR pszText); 00075 virtual void OnLocalMessage(BOOL bAction, LPCTSTR pszText); 00076 virtual void OnLocalCommand(LPCTSTR pszText, LPCTSTR pszCommand); 00077 00078 // Overrides 00079 public: 00080 //{{AFX_VIRTUAL(CChatFrame) 00081 public: 00082 virtual BOOL PreTranslateMessage(MSG* pMsg); 00083 //}}AFX_VIRTUAL 00084 00085 // Implementation 00086 protected: 00087 //{{AFX_MSG(CChatFrame) 00088 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 00089 afx_msg void OnDestroy(); 00090 afx_msg void OnUpdateChatBold(CCmdUI* pCmdUI); 00091 afx_msg void OnChatBold(); 00092 afx_msg void OnUpdateChatItalic(CCmdUI* pCmdUI); 00093 afx_msg void OnChatItalic(); 00094 afx_msg void OnUpdateChatUnderline(CCmdUI* pCmdUI); 00095 afx_msg void OnChatUnderline(); 00096 afx_msg void OnChatColour(); 00097 afx_msg void OnUpdateChatConnect(CCmdUI* pCmdUI); 00098 afx_msg void OnChatConnect(); 00099 afx_msg void OnUpdateChatDisconnect(CCmdUI* pCmdUI); 00100 afx_msg void OnChatDisconnect(); 00101 afx_msg void OnChatClear(); 00102 afx_msg void OnChatEmoticons(); 00103 afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct); 00104 afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct); 00105 afx_msg void OnTimer(UINT nIDEvent); 00106 afx_msg void OnSetFocus(CWnd* pOldWnd); 00107 afx_msg void OnClickView(RVN_ELEMENTEVENT* pNotify, LRESULT *pResult); 00108 afx_msg void OnUpdateChatTimestamp(CCmdUI* pCmdUI); 00109 afx_msg void OnChatTimestamp(); 00110 //}}AFX_MSG 00111 00112 DECLARE_MESSAGE_MAP() 00113 00114 }; 00115 00116 //{{AFX_INSERT_LOCATION}} 00117 00118 #define IDC_CHAT_TEXT 100 00119 #define IDC_CHAT_EDIT 101 00120 00121 #endif // !defined(AFX_CTRLCHATFRAME_H__2244C71A_1F23_4D0E_B360_5E551CBAC37D__INCLUDED_)