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.
- */
-
- #ifndef _THRDFRM_H
- #define _THRDFRM_H
-
- #include "mailfrm.h"
-
- /////////////////////////////////////////////////////////////////////////////
- // C3PaneMailFrame frame
-
- class C3PaneMailFrame : public CMsgListFrame
- {
- DECLARE_DYNCREATE(C3PaneMailFrame)
- protected:
- C3PaneMailFrame();
-
- enum { actionNone, actionSelectFirst, actionNavigation, actionSelectKey };
-
- int m_actionOnLoad;
- MSG_MotionType m_navPending;
- MessageKey m_selPending;
-
- int m_nLoadingFolder;
- BOOL m_bDragCopying;
-
- BOOL m_bNoScrollHack;
-
- // Attibutes
- BOOL m_bWantToGetMail;
-
- COutlinerParent *m_pOutlinerParent;
- MSG_Pane *m_pFolderPane;
- CFolderOutliner *m_pFolderOutliner;
- COutlinerParent *m_pFolderOutlinerParent;
- CMailNewsSplitter *m_pFolderSplitter;
- CMailNewsSplitter *m_pThreadSplitter;
- CThreadStatusBar m_barStatus;
-
- void UIForFolder( MSG_FolderInfo *folderInfo );
- void DoOpenMessage(BOOL bReuse);
- void BlankOutThreadPane();
- void BlankOutMessagePane(MSG_FolderInfo *folderInfo = NULL);
-
- // IMailFrame override
- virtual void PaneChanged( MSG_Pane *pane, XP_Bool asynchronous,
- MSG_PANE_CHANGED_NOTIFY_CODE, int32 value);
-
- // Support for IMsgList Interface (Called by CMailMsgList)
- virtual void ListChangeStarting( MSG_Pane* pane, XP_Bool asynchronous,
- MSG_NOTIFY_CODE notify, MSG_ViewIndex where,
- int32 num);
- virtual void ListChangeFinished( MSG_Pane* pane, XP_Bool asynchronous,
- MSG_NOTIFY_CODE notify, MSG_ViewIndex where,
- int32 num);
- virtual void GetSelection( MSG_Pane* pane, MSG_ViewIndex **indices, int *count,
- int *focus);
- virtual void SelectItem( MSG_Pane* pane, int item );
-
- // Overrides
- virtual BOOL PreTranslateMessage( MSG* pMsg );
- virtual BOOL OnCreateClient( LPCREATESTRUCT lpcs, CCreateContext* pContext );
-
- void SwitchUI();
- void SetIsNews( BOOL bNews );
-
- void CreateFolderOutliner();
- void CreateThreadPane();
-
- virtual void SetSort( int idSort );
-
- BOOL IsThreadFocus() const { return m_pOutliner && m_pOutliner == GetFocus(); }
- BOOL IsMessageFocus() const;
-
- virtual void DoUpdateNavigate( CCmdUI* pCmdUI, MSG_MotionType cmd );
- virtual void DoNavigate( MSG_MotionType msgCommand );
- virtual void DoPriority( MSG_PRIORITY priority );
-
- virtual void GetMessageString( UINT nID, CString& rMessage ) const;
-
- // Helper
- void DoUndoNavigate( MSG_MotionType msgCommand );
-
- afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
- #ifndef ON_COMMAND_RANGE
- afx_msg BOOL OnCommand( WPARAM wParam, LPARAM lParam );
- afx_msg BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
- #endif
- afx_msg void OnClose();
- afx_msg void OnDestroy();
-
- // Edit Menu Items
- afx_msg void OnEditUndo();
- afx_msg void OnEditRedo();
- afx_msg void OnSelectThread ();
- afx_msg void OnUpdateSelectThread ( CCmdUI * pCmdUI );
- afx_msg void OnSelectFlagged();
- afx_msg void OnUpdateSelectFlagged( CCmdUI *pCmdUI );
- afx_msg void OnSelectAll();
- afx_msg void OnUpdateSelectAll( CCmdUI *pCmdUI );
- afx_msg void OnEditProperties();
- afx_msg void OnUpdateProperties( CCmdUI *pCmdUI );
-
- // View Menu Items
- afx_msg void OnViewMessage();
- afx_msg void OnUpdateViewMessage( CCmdUI *pCmdUI );
- afx_msg void OnViewCategories();
- afx_msg void OnUpdateViewCategories( CCmdUI *pCmdUI );
- afx_msg void OnViewFolder();
-
- // Message Menu Items
- afx_msg void OnMove( UINT nID );
- afx_msg void OnCopy( UINT nID );
- afx_msg void OnUpdateFile( CCmdUI *pCmdUI );
- afx_msg void OnIgnore();
- afx_msg void OnUpdateIgnore(CCmdUI *pCmdUI);
-
- // Window menu items
- afx_msg void OnFileBookmark( );
- afx_msg void OnUpdateFileBookmark( CCmdUI *pCmdUI );
-
- // Non-menu Items
- afx_msg void OnSelect();
- afx_msg void OnSelectFolder();
- afx_msg void OnOpen();
- afx_msg void OnOpenNew();
- afx_msg void OnOpenReuse();
- afx_msg void OnUpdateOpen(CCmdUI *pCmdUI);
- afx_msg void OnContinue();
- afx_msg void OnContainer();
- afx_msg void OnOpenNewFrame();
-
- afx_msg void OnPriorityLowest();
- afx_msg void OnPriorityLow();
- afx_msg void OnPriorityNormal();
- afx_msg void OnPriorityHigh();
- afx_msg void OnPriorityHighest();
- afx_msg void OnUpdatePriority( CCmdUI *pCmdUI );
-
- afx_msg void OnDoneGettingMail();
- DECLARE_MESSAGE_MAP()
-
- void SelectMessage( MessageKey key );
-
- public:
- ~C3PaneMailFrame();
-
- CMailNewsOutliner* GetFolderOutliner() { return m_pFolderOutliner; }
- void LoadFolder( MSG_FolderInfo *folderInfo,
- MessageKey key = MSG_MESSAGEKEYNONE,
- int action = actionSelectFirst);
- void UpdateFolderPane(MSG_FolderInfo *pFolderInfo);
- BOOL GetSelectedFolder(MSG_FolderLine* pFolderLine);
-
- virtual MessageKey GetCurMessage() const;
- virtual MSG_FolderInfo *GetCurFolder() const;
-
- virtual LPCTSTR GetWindowMenuTitle();
- virtual BOOL FileBookmark();
-
- virtual void CopyMessagesInto( MSG_Pane *pane, MSG_ViewIndex *indices, int count,
- MSG_FolderInfo *folderInfo);
- virtual void MoveMessagesInto( MSG_Pane *pane, MSG_ViewIndex *indices, int count,
- MSG_FolderInfo *folderInfo);
-
- static C3PaneMailFrame *FindFrame( MSG_FolderInfo *folderInfo );
- static C3PaneMailFrame *Open( );
- static C3PaneMailFrame *Open( MSG_FolderInfo *folderInfo,
- MessageKey key = MSG_MESSAGEKEYNONE,
- BOOL* pContinue = FALSE);
- static C3PaneMailFrame *OpenInbox( BOOL bGetNew = FALSE );
-
- #ifdef DEBUG_WHITEBOX
- afx_msg void WhiteBox_OnDeleteMessage() { OnDeleteMessage(); }
- afx_msg void WhiteBox_OnSelect() { OnSelect(); }
- void WhiteBox_GetSelection( MSG_Pane* pane, MSG_ViewIndex **indices, int *count, int *focus){
- GetSelection(pane,indices,count,focus);
- }
- BOOL WhiteBox_DoesMessageExist( MessageKey key );
- #endif
- };
-
- #endif
-