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.
- */
- /*
- ComposeView.h -- class definition for ComposeView
- Created: Dora Hsu<dora@netscape.com>, 23-Sept-96.
- */
-
-
-
- #ifndef _xfe_composeview_h
- #define _xfe_composeview_h
-
- #include "MNView.h" /* Has to be the first include because of xp_xx.h */
- #include "msgcom.h"
- #include "Command.h" /* For compose window commands */
- #include "EditorToolbar.h"
- #include <Xm/Xm.h>
-
-
- /* Class Definition */
-
- class XFE_ComposeView : public XFE_MNView
- {
- public:
- XFE_ComposeView(XFE_Component *toplevel_component, Widget parent, XFE_View *parent_view, MWContext *context,
- MWContext *context_to_copy, MSG_CompositionFields* fields, MSG_Pane* p = NULL,
- const char *pInitalText = NULL,
- XP_Bool useHtml = False);
-
- virtual ~XFE_ComposeView();
-
- // Public functions
- XFE_View* getComposeFolderView() {
- return m_folderViewAlias;}
-
- virtual Boolean isCommandEnabled(CommandType command, void *calldata = NULL,
- XFE_CommandInfo* i = NULL);
- virtual Boolean isCommandSelected(CommandType command, void *calldata = NULL,
- XFE_CommandInfo* i = NULL);
- virtual Boolean handlesCommand(CommandType command, void *calldata = NULL,
- XFE_CommandInfo* i = NULL);
- virtual void doCommand(CommandType command, void *calldata = NULL,
- XFE_CommandInfo* i = NULL);
- virtual char* commandToString(CommandType, void*, XFE_CommandInfo*);
- XFE_Command* getCommand(CommandType cmd);
- virtual XFE_View* getCommandView(XFE_Command*);
- virtual char* className() {return "XFE_ComposeView";}
-
- virtual int initEditor();
- virtual void initEditorContents();
- virtual void updateCompToolbar();
-
- static const char* tabBeforeSubject;
- static const char* tabAfterSubject;
- static const char* tabPrev;
- static const char* tabNext;
- static const char* eFocusIn;
- static const char* eFocusOut;
- static const char* updateSecurityOption;
-
- static void daFocusProc(Widget,XtPointer,XEvent*,Boolean*);
- static void topFocusProc(Widget,XtPointer,XEvent*,Boolean*);
- static void nullFocusProc(Widget,XtPointer,XEvent*,Boolean*);
-
- void saveFocus();
- void focusIn();
- void focusOut();
-
- void* getComposerData();
- void setComposerData(void* data);
-
- void* getAttachmentData();
- void setAttachmentData(void* data);
- XFE_CALLBACK_DECL(afterRealizeWidget)
-
- void insertMessageCompositionText(
- const char* text, XP_Bool leaveCursorBeginning);
-
- void getMessageBody(char **pBody, uint32 *body_size,
- MSG_FontCode **font_changes);
- void doneWithMessageBody(char *pBody);
- void setComposeWrapState(XP_Bool wrap_p);
- static int doQuoteMessage(void *closure, const char *data);
- XP_Bool isDelayedSent();
- XP_Bool isHTML();
- static const char *newSubject;
- static void selectPriorityCallback(Widget, XtPointer, XtPointer);
-
- static void unGrabEditorProc(Widget,XtPointer,XEvent*,Boolean*);
- void unGrabEditor();
- void editorFocus(Boolean);
- void show();
- Boolean isModified();
-
- XP_Bool hasFocus();
-
- protected:
- void initialize();
- void updateHeaderInfo();
- void createSubjectBar(Widget);
- XP_Bool continueAfterSanityCheck();
-
- XP_Bool handleStealthPasteQuote(CommandType, XFE_CommandInfo*);
- void quoteText(char *);
-
- private:
- void* mailComposer;
- void* mailAttachment;
- void createWidget(Widget);
-
- XFE_View *m_folderViewAlias; // These are just pointer aliases to views
- XFE_View *m_textViewAlias; // this class does not own these views
- XFE_View *m_htmlViewAlias; // It's the parent class who owns these views
-
- Widget m_editorFormW;
- Widget m_subjectFormW;
- Widget m_subjectW;
- Widget m_toolbarW;
- Widget m_focusW;
- Widget m_nullW;
-
- Widget m_addrTextW;
- Widget m_addrTypeW;
-
- Widget m_daW;
- Widget m_topW;
- Widget m_expand_arrowW;
-
- XFE_EditorToolbar* m_format_toolbar;
- Boolean m_expanded;
-
- XP_Bool m_editorFocusP;
-
- XP_Bool m_plaintextP;
- XP_Bool m_requestHTML;
- XP_Bool m_initEditorP;
- XP_Bool m_postEditorP;
- XP_Bool m_puntEditorP;
- XP_Bool m_delayEditorP;
- XP_Bool m_dontQuoteP;
-
- int quoteMessage(const char *data);
- void displayDefaultTextBody();
-
- XFE_CALLBACK_DECL(tabToEditor)
-
- XP_Bool m_delayedSent;
- char *m_pInitialText;
-
- void subjectFocus();
- void textEditorFocus(Widget);
- void addressTextFocus(Widget);
- void addressTypeFocus(Widget);
- void subjectChange(Widget, XtPointer);
- void subjectUpdate(Widget, XtPointer);
- void toggleAddressArea();
- void setDefaultSubjectHeader();
- XFE_CALLBACK_DECL(tabToSubject)
- XFE_CALLBACK_DECL(textEditorFocusIn)
- XFE_CALLBACK_DECL(addressTextFocusIn)
- XFE_CALLBACK_DECL(addressTypeFocusIn)
- static void subjectChangeCallback(Widget, XtPointer, XtPointer);
- static void subjectFocusIn_CB(Widget, XtPointer, XtPointer);
-
- static void quotePrimarySel_cb(Widget, XtPointer,
- Atom *, Atom *, XtPointer,
- unsigned long *, int *);
-
- static void expandCallback(Widget, XtPointer, XtPointer);
-
- };
-
-
-
- #endif /* _xfe_composeview_h */
-