gecko-dev/cmd/winfe/compfrm.h
1998-03-28 02:44:41 +00:00

243 lines
9.2 KiB
C++
Executable File

/* -*- 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