home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * The contents of this file are subject to the Netscape Public License
- * Version 1.0 (the "NPL"); you may not use this file except in
- * compliance with the NPL. You may obtain a copy of the NPL at
- * http://www.mozilla.org/NPL/
- *
- * Software distributed under the NPL is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
- * for the specific language governing rights and limitations under the
- * NPL.
- *
- * The Initial Developer of this code under the NPL is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All Rights
- * Reserved.
- */
-
- /* COMPFRM.H - header file for the ComposeFrame class.
- */
- #ifndef __COMPFRM_H
- #define __COMPFRM_H
-
- #include "msgcom.h"
- #include "mainfrm.h"
- #include "edframe.h"
- #include "compmisc.h"
- #include "apiaddr.h"
- #include "statbar.h"
-
- // Message used to synchronize setting the initial keyboard focus in the
- // compose window. This message is posted to the compose window by
- // FE_CreateCompositionPane just before returning.
- #define WM_COMP_SET_INITIAL_FOCUS WM_TOOLCONTROLLER + 1
-
- #define ID_ENCRYPTED 1011
- #define ID_SIGNED 1012
-
- // rhp - Flags for MAPI operations...
- #define MAPI_IGNORE 0
- #define MAPI_SEND 1
- #define MAPI_SAVE 2
-
-
- // Forward declarations
-
- class CNSAddressList; // address list widget
- class CEditToolBarController; // HTML toolbar controlling object
- class CComposeBar; // embedded address/attachment area
-
- // CComposeFrame class declaration
-
- class CComposeFrame : public CGenericFrame
- {
- DECLARE_DYNCREATE(CComposeFrame)
-
- protected:
- CComposeFrame(); // protected constructor used by dynamic creation
- ~CComposeFrame();
-
- MSG_Pane *m_pComposePane; // Backend supplied pane context
- CNetscapeStatusBar m_barStatus;
- CComposeBar * m_pComposeBar; // address/attachment block widget
- BOOL m_bUseHtml;
- BOOL m_bInitialized;
- CEditToolBarController * m_pToolBarController;
-
- // these are used for plain text
- CComposeEdit m_Editor; // regular text editor - to be replaced by Gold editor
- int32 m_quoteSel; // current plain text qutoing position
- CBlankWnd m_EditorParent; // controls resizing the edit control (going away when Gold integrated)
-
- CWnd * m_pFocus; // field which has focus in control
- HFONT m_cfTextFont; // font to use in the edit control
- MSG_HEADER_SET m_SavedHeaders; // hackery to redraw headers once we become visible and
-
- MWContext * m_pOldContext;
- MSG_CompositionFields * m_pFields;
- char *m_pInitialText; // initial text
- BOOL m_bWrapLongLines;
- int m_cxChar;
-
- int m_bMAPISendMode; // rhp - for MAPI Send Operations
-
- public:
- // data access functions
- inline int GetCharWidth() { return m_cxChar; }
- inline BOOL GetWrapLongLines() { return m_bWrapLongLines; }
- inline void SetComposeStuff(MWContext *pOld, MSG_CompositionFields * pFields)
- { m_pOldContext = pOld; m_pFields = pFields; }
- inline BOOL UseHtml(void) { return m_bUseHtml; }
- inline CWnd * GetFocusField(void) { return m_pFocus; }
- inline void SetFocusField(CWnd * pwnd = NULL) { m_pFocus = pwnd; }
- inline MSG_Pane * GetMsgPane(void) { return m_pComposePane; }
- inline void SetToolBarController(CEditToolBarController * pController = NULL) {
- m_pToolBarController = pController;
- }
- inline CEditToolBarController * GetToolBarController(void) {
- return m_pToolBarController;
- }
- inline CComposeEdit * GetEditor(void) { return &m_Editor; }
- inline int32 GetQuoteSel(void) { return m_quoteSel; }
- inline void SetQuoteSel(int32 sel) { m_quoteSel = sel; }
- inline CBlankWnd * GetEditorParent(void) { return &m_EditorParent; }
- inline CComposeBar * GetComposeBar(void) { return m_pComposeBar; }
- inline void SetComposeBar(CComposeBar *pBar = NULL) { m_pComposeBar = pBar; }
- inline void SetSavedHeaders(MSG_HEADER_SET headers) { m_SavedHeaders = headers; }
- inline MSG_HEADER_SET GetSavedHeaders(void) { return m_SavedHeaders; }
- inline BOOL Initialized(void) { return m_bInitialized; }
-
- LPADDRESSCONTROL GetAddressWidgetInterface();
-
- // public interface
- void SetQuoteSelection(void);
- void SetMsgPane(MSG_Pane * pPane = NULL);
- void SetModified(BOOL bvalue);
- void CompleteComposeInitialization(void); // gold specific stuff
- void GoldDoneLoading(void);
- void InsertInitialText(void);
- void SetInitialText(const char *pText);
- inline const char *GetInitialText() { return m_pInitialText; };
- virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra,
- AFX_CMDHANDLERINFO* pHandlerInfo);
-
- #ifdef XP_WIN32
- virtual int16 GetTitleWinCSID(); // jliu
- #endif
-
- BOOL AppendAddress(MSG_HEADER_SET header, const char * value);
- void SetType(MWContextType type);
- void SetCSID(int16 iCSID);
- void UpdateToolBar(void);
- BOOL CreateEditBars();
- void DisplayHeaders ( MSG_HEADER_SET );
- CWnd * GetEditorWnd();
- void UpdateAttachmentInfo(void);
- void SetHtmlMode(BOOL bMode = FALSE);
- void UpdateSecurityOptions(void);
- BOOL BccOnly(void);
-
- virtual void RefreshNewEncoding(int16 doc_csid, BOOL bSave = TRUE);
-
- // rhp - For MAPI Operations!
- inline void SetMAPISendMode(int bSendMode) { m_bMAPISendMode = bSendMode; }; // rhp - for MAPI
- inline int GetMAPISendMode(void) { return m_bMAPISendMode; }; // rhp - for MAPI
- void UpdateComposeWindowForMAPI(void); // rhp - for MAPISendMail()
-
- // Overriden for setting the command help for editor plugin tools and edit history list
- virtual void GetMessageString(UINT MenuID, CString& Message) const;
-
- protected:
- virtual BOOL PreTranslateMessage( MSG* pMsg );
- virtual BOOL PreCreateWindow ( CREATESTRUCT & );
- virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext *pContext);
- virtual BOOL CanCloseFrame(void);
-
- void OnUpdateThis ( CCmdUI* pCmdUI, MSG_CommandType tMenuType );
- void MessageCommand( MSG_CommandType );
- void ConvertToPlainText();
- void ConvertToHtml();
- void DoSend( BOOL bNow = TRUE );
- int CreateHtmlToolbars();
- void CreatePlainTextEditor();
- void ShowHtmlToolbars();
- void DestroyHtmlToolbars();
- void SetEditorParent(CWnd*);
- char * PromptMessageSubject();
- void MakeComposeBarVisible();
-
- afx_msg void OnNew();
- afx_msg void OnConvert();
- afx_msg void OnAttachMyCard();
- afx_msg void OnUpdateAttachMyCard(CCmdUI * pCmdUI);
- afx_msg void OnUpdateConvert(CCmdUI*pCmdUI);
- afx_msg void OnUpdateButtonGeneral(CCmdUI* pCmdUI);
- afx_msg LONG OnToolController(UINT,LONG);
- afx_msg void OnPasteQuote( void );
- afx_msg void OnUpdatePasteQuote(CCmdUI *);
- afx_msg void OnSelectAll(void);
- afx_msg void OnUpdateSelectAll(CCmdUI *);
- afx_msg void OnButtonTo(void);
- afx_msg void OnQuoteOriginal ( void );
- afx_msg void OnSaveAs( void );
- afx_msg void OnSaveDraft(void);
- afx_msg void OnSaveTemplate(void);
- afx_msg void OnAttachFile(void);
- afx_msg void OnCheckSpelling(void);
- afx_msg void OnUpdateCheckSpelling(CCmdUI * pCmdUI);
- afx_msg void OnDoneGoingOffline(void);
- afx_msg void OnUpdateSaveDraft( CCmdUI * pCmdUI );
- afx_msg void OnUpdateSaveTemplate( CCmdUI * pCmdUI );
-
- afx_msg void OnSend(void);
- afx_msg void OnSendNow(void);
- afx_msg void OnSendLater(void);
- afx_msg void OnUpdateSend(CCmdUI * pCmdUI);
- afx_msg void OnUpdateSendNow(CCmdUI * pCmdUI);
- afx_msg void OnUpdateSendLater(CCmdUI * pCmdUI);
- afx_msg void OnUpdateAttach ( CCmdUI * pCmdUI );
- afx_msg void OnShowSecurityAdvisor ();
- afx_msg void OnSetFocus(CWnd *);
-
- afx_msg int OnCreate ( LPCREATESTRUCT );
- afx_msg void OnClose ( void );
- afx_msg void OnDestroy(void);
- afx_msg void OnAttachUrl(void);
- afx_msg void OnSelectAddresses(void);
- afx_msg void OnWrapLongLines(void);
- afx_msg void OnUpdateWrapLongLines(CCmdUI*pCmdUI);
-
- afx_msg void OnViewAddresses();
- afx_msg void OnViewAttachments();
- afx_msg void OnViewOptions();
- afx_msg void OnUpdateViewAddresses(CCmdUI * pCmdUI);
- afx_msg void OnUpdateViewAttachments(CCmdUI * pCmdUI);
- afx_msg void OnUpdateViewOptions(CCmdUI * pCmdUI);
-
- afx_msg void OnToggleMessageToolbar();
- afx_msg void OnUpdateToggleMessageToolbar(CCmdUI *pCmdUI);
- afx_msg void OnToggleAddressArea();
- afx_msg void OnUpdateToggleAddressArea(CCmdUI * pCmdUI);
- afx_msg void OnSecurity();
-
- afx_msg void OnAttachTab(void);
- afx_msg void OnAddressTab(void);
- afx_msg void OnOptionsTab(void);
- afx_msg void OnCollapse(void);
-
- afx_msg void OnUpdateSecurity(CCmdUI *pCmdUI);
- afx_msg void OnUpdateSecureStatus(CCmdUI *pCmdUI);
- afx_msg LONG OnSetInitialFocus(WPARAM wParam, LPARAM lParam);
- LRESULT OnButtonMenuOpen(WPARAM wParam, LPARAM lParam);
-
- afx_msg LRESULT OnFindReplace(WPARAM wParam, LPARAM lParam) ;
- afx_msg LRESULT OnSetMessageString(WPARAM wParam, LPARAM lParam);
-
- DECLARE_MESSAGE_MAP()
-
- };
-
- /////////////////////////////////////////////////////////////////////////////
- #endif
-