зеркало из https://github.com/mozilla/gecko-dev.git
717 строки
18 KiB
C++
717 строки
18 KiB
C++
/* -*- 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 _MAILPRIV_H
|
|
#define _MAILPRIV_H
|
|
|
|
#include "dateedit.h"
|
|
#include "widgetry.h"
|
|
#include "mailmisc.h"
|
|
#include "statbar.h"
|
|
#include "property.h"
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// CMarkReadDateDlg
|
|
|
|
class CDiskSpacePropertyPage;
|
|
class CDownLoadPPNews;
|
|
class CDownLoadPPMail;
|
|
|
|
|
|
class CMarkReadDateDlg: public CDialog {
|
|
protected:
|
|
CNSDateEdit wndDateTo;
|
|
|
|
public:
|
|
CTime dateTo;
|
|
enum { IDD = IDD_MARKREADDATE };
|
|
|
|
CMarkReadDateDlg( UINT nIDTemplate, CWnd* pParentWnd ):
|
|
CDialog( nIDTemplate, pParentWnd ) {}
|
|
|
|
virtual BOOL OnInitDialog( );
|
|
virtual void OnOK();
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// CNavCombo
|
|
|
|
class CNavCombo: public CMailFolderCombo {
|
|
friend class CFolderInfoBar;
|
|
|
|
protected:
|
|
BOOL m_bFirst;
|
|
RECT m_rcList;
|
|
|
|
HFONT m_hFont, m_hBigFont;
|
|
public:
|
|
CNavCombo();
|
|
~CNavCombo();
|
|
|
|
virtual void SetFont( CFont *pFont, CFont *pBigFont );
|
|
|
|
protected:
|
|
|
|
virtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );
|
|
|
|
afx_msg void OnPaint( );
|
|
afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor );
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// CMailInfoBar
|
|
|
|
#ifdef XP_WIN16
|
|
class CMailInfoBar: public CNetscapeControlBar {
|
|
#else
|
|
class CMailInfoBar: public CControlBar {
|
|
#endif
|
|
|
|
protected:
|
|
BOOL m_bEraseBackground;
|
|
|
|
// Attributes
|
|
int m_iCSID;
|
|
HFONT m_hFont, m_hBoldFont;
|
|
HFONT m_hIntlFont, m_hBoldIntlFont;
|
|
|
|
MSG_Pane *m_pPane;
|
|
int m_idxImage;
|
|
|
|
CNSToolTip2 m_wndToolTip;
|
|
|
|
HBITMAP m_hbmBanner;
|
|
SIZE m_sizeBanner;
|
|
|
|
LPUNKNOWN m_pUnkImage;
|
|
LPIMAGEMAP m_pIImage;
|
|
|
|
public:
|
|
CMailInfoBar();
|
|
virtual ~CMailInfoBar();
|
|
|
|
BOOL Create( CWnd *pWnd, MSG_Pane *pPane );
|
|
void SetPane( MSG_Pane *pPane ) { m_pPane = pPane; }
|
|
virtual void SetCSID(int csid);
|
|
virtual void Update() {};
|
|
|
|
protected:
|
|
virtual void DragProxie();
|
|
|
|
void DrawInfoText( HDC hdc, LPCSTR lpText, LPRECT rect );
|
|
void DrawInfoText( int iCSID, HDC hdc, LPCSTR lpText, LPRECT rect );
|
|
void MeasureInfoText( HDC hdc, LPCSTR lpText, LPRECT rect );
|
|
void MeasureInfoText( int iCSID, HDC hdc, LPCSTR lpText, LPRECT rect );
|
|
|
|
void PaintBackground( HDC hdc );
|
|
|
|
virtual void OnUpdateCmdUI( CFrameWnd* pTarget, BOOL bDisableIfNoHndler );
|
|
virtual CSize CalcFixedLayout( BOOL bStretch, BOOL bHorz );
|
|
virtual BOOL PreTranslateMessage(MSG *pMsg);
|
|
|
|
afx_msg int OnCreate(LPCREATESTRUCT lpcs);
|
|
afx_msg void OnLButtonDown( UINT nFlags, CPoint point );
|
|
afx_msg void OnLButtonUp( UINT nFlags, CPoint point );
|
|
afx_msg void OnMouseMove( UINT nFlags, CPoint point );
|
|
afx_msg void OnShowWindow( BOOL bShow, UINT nStatus );
|
|
afx_msg BOOL OnEraseBkgnd( CDC* pDC );
|
|
afx_msg BOOL OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message );
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// CContainerInfoBar
|
|
|
|
class CContainerInfoBar: public CMailInfoBar {
|
|
protected:
|
|
// Attributes
|
|
CString m_csBanner;
|
|
|
|
public:
|
|
virtual void Update();
|
|
|
|
protected:
|
|
virtual void DragProxie();
|
|
|
|
afx_msg int OnCreate(LPCREATESTRUCT lpcs);
|
|
afx_msg void OnPaint( );
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// CFolderInfoBar
|
|
|
|
class CFolderInfoBar: public CMailInfoBar {
|
|
protected:
|
|
// Attributes
|
|
MSG_FolderInfo *m_folderOld;
|
|
CString m_csFolderName;
|
|
CString m_csFolderCounts;
|
|
|
|
CNavCombo m_wndNavButton;
|
|
CCommandToolbarButton m_wndBackButton;
|
|
|
|
public:
|
|
CFolderInfoBar();
|
|
virtual ~CFolderInfoBar();
|
|
|
|
virtual void SetCSID(int csid);
|
|
virtual void Update();
|
|
|
|
protected:
|
|
virtual void DragProxie();
|
|
|
|
afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );
|
|
afx_msg void OnSize( UINT nType, int cx, int cy );
|
|
afx_msg void OnDropDown();
|
|
afx_msg void OnCloseUp();
|
|
afx_msg void OnContainer();
|
|
afx_msg void OnPaint( );
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// CMessageInfoBar
|
|
|
|
class CMessageInfoBar: public CMailInfoBar {
|
|
protected:
|
|
// Attributes
|
|
CString m_csMessageName;
|
|
CString m_csMessageAuthor;
|
|
CString m_csFolderTip;
|
|
CString m_csFolderStatus;
|
|
|
|
CCommandToolbarButton m_wndBackButton;
|
|
|
|
public:
|
|
CMessageInfoBar();
|
|
virtual ~CMessageInfoBar();
|
|
|
|
virtual void SetCSID(int csid);
|
|
virtual void Update();
|
|
|
|
protected:
|
|
virtual void DragProxie();
|
|
|
|
afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );
|
|
afx_msg void OnSize( UINT nType, int cx, int cy );
|
|
afx_msg void OnPaint( );
|
|
afx_msg void OnContainer();
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
//CFolderPropertyPage
|
|
//Mail folder property page.
|
|
class CNewsFolderPropertySheet;
|
|
class CFolderPropertyPage: public CNetscapePropertyPage {
|
|
|
|
protected:
|
|
MSG_FolderInfo *m_folderInfo;
|
|
MSG_Pane *m_pPane;
|
|
CNewsFolderPropertySheet *m_pParent;
|
|
|
|
public:
|
|
enum { IDD = IDD_PP_FOLDER };
|
|
CString m_strFolderName;
|
|
|
|
CFolderPropertyPage(CWnd *pWnd = NULL);
|
|
void SetFolderInfo(MSG_FolderInfo *folderInfo, MSG_Pane *pPane);
|
|
|
|
virtual BOOL OnInitDialog();
|
|
virtual void OnOK();
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
afx_msg void OnChangeFolderName();
|
|
afx_msg void OnCleanUpWastedSpace();
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
//CFolderSharingPage
|
|
//Mail folder property page.
|
|
class CFolderSharingPage: public CNetscapePropertyPage {
|
|
|
|
protected:
|
|
MSG_FolderInfo *m_folderInfo;
|
|
MWContext *m_pContext;
|
|
MSG_Pane *m_pPane;
|
|
CNewsFolderPropertySheet *m_pParent;
|
|
|
|
public:
|
|
enum { IDD = IDD_PP_SHARING };
|
|
|
|
CFolderSharingPage(CWnd *pWnd = NULL);
|
|
void SetFolderInfo(MSG_FolderInfo *folderInfo, MSG_Pane *pPane, MWContext *pContext);
|
|
|
|
virtual BOOL OnInitDialog();
|
|
virtual void OnOK();
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
|
|
afx_msg void OnClickPrivileges();
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
///News Host property page.
|
|
class CNewsHostGeneralPropertyPage: public CNetscapePropertyPage {
|
|
|
|
protected:
|
|
MSG_FolderInfo *m_folderInfo;
|
|
MSG_NewsHost *m_pNewsHost;
|
|
public:
|
|
CNewsHostGeneralPropertyPage();
|
|
|
|
//dialog data
|
|
enum { IDD = IDD_PP_NEWSHOST_GENERAL };
|
|
int m_nRadioValue;
|
|
BOOL m_bCanReceiveHTML;
|
|
//end dialog data
|
|
|
|
void SetFolderInfo(MSG_FolderInfo *folderInfo, MSG_NewsHost *pNewsHost);
|
|
public:
|
|
virtual void OnOK();
|
|
virtual BOOL OnInitDialog();
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
};
|
|
|
|
//forward
|
|
class CNewsFolderPropertySheet;
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//General page for news folders
|
|
|
|
class CNewsGeneralPropertyPage: public CNetscapePropertyPage {
|
|
|
|
protected:
|
|
MSG_FolderInfo *m_folderInfo;
|
|
MWContext *m_pContext;
|
|
CNewsFolderPropertySheet *m_pParent;
|
|
public:
|
|
CNewsGeneralPropertyPage(CNewsFolderPropertySheet *pParent);
|
|
|
|
//Dialog Data
|
|
enum { IDD = IDD_PP_NEWS_GENERAL };
|
|
BOOL m_bCanReceiveHTML;
|
|
//End Dialog Data
|
|
|
|
void SetFolderInfo(MSG_FolderInfo *folderInfo, MWContext *pContext);
|
|
|
|
public://virtuals
|
|
virtual void OnOK();
|
|
virtual BOOL OnInitDialog();
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
afx_msg void OnDownLoadButton();
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//CNewsFolderPropertySheet
|
|
//Used in Edit Properties of the MailFolder frame.
|
|
class CNewsFolderPropertySheet : public CNetscapePropertySheet
|
|
{
|
|
public:
|
|
LOGFONT m_LogFont;
|
|
CFont m_Font;
|
|
|
|
BOOL m_bDownLoadNow;
|
|
BOOL m_bSynchronizeNow;
|
|
BOOL m_bCleanUpNow;
|
|
|
|
CWnd * m_pParent;
|
|
public:
|
|
|
|
CNewsFolderPropertySheet(LPCTSTR pszCaption, CWnd *pParent);
|
|
~CNewsFolderPropertySheet();
|
|
|
|
BOOL DownLoadNow() {return m_bDownLoadNow;};
|
|
BOOL SynchronizeNow() {return m_bSynchronizeNow;};
|
|
BOOL CleanUpNow() {return m_bCleanUpNow;};
|
|
void CleanUpWastedSpace();
|
|
|
|
virtual void OnHelp();
|
|
|
|
public:
|
|
CNewsGeneralPropertyPage *m_pNewsFolderPage;
|
|
CFolderPropertyPage *m_pFolderPage;
|
|
CFolderSharingPage *m_pSharingPage;
|
|
CDiskSpacePropertyPage *m_pDiskSpacePage;
|
|
CDownLoadPPNews *m_pDownLoadPageNews;
|
|
CDownLoadPPMail *m_pDownLoadPageMail;
|
|
CNewsHostGeneralPropertyPage *m_pNewsHostPage;
|
|
public:
|
|
|
|
afx_msg void OnDownLoadButton();
|
|
afx_msg void OnSynchronizeButton();
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//General page for attachments
|
|
|
|
class CAttachmentGeneralPage: public CNetscapePropertyPage {
|
|
protected:
|
|
CString m_csName;
|
|
CString m_csType;
|
|
CString m_csDescription;
|
|
|
|
enum { IDD = IDD_PP_ATTACHMENT_GENERAL };
|
|
|
|
public:
|
|
CAttachmentGeneralPage(LPCTSTR lpszName, LPCTSTR lpszType, LPCTSTR lpszDescription);
|
|
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// Property sheet for attachments
|
|
|
|
class CAttachmentSheet: public CNetscapePropertySheet {
|
|
protected:
|
|
CAttachmentGeneralPage *m_pGeneral;
|
|
|
|
CString m_csName;
|
|
CString m_csType;
|
|
CString m_csDescription;
|
|
|
|
public:
|
|
CAttachmentSheet(CWnd *pParentWnd,
|
|
LPCTSTR lpszName, LPCTSTR lpszType, LPCTSTR lpszDescription);
|
|
~CAttachmentSheet();
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
//
|
|
// CThreadStatusBar
|
|
//
|
|
// Status bar with little "expando" widget on the left
|
|
//
|
|
|
|
class CThreadStatusBar: public CNetscapeStatusBar {
|
|
|
|
protected:
|
|
HBITMAP m_hbmExpando;
|
|
SIZE m_sizeExpando;
|
|
|
|
BOOL m_bExpandoed, m_bDepressed;
|
|
|
|
// Mode state info for particular pane modes
|
|
private:
|
|
int m_iStatBarPaneWidth; // eSBM_Expando: save the width of the Taskbar pane
|
|
|
|
public:
|
|
CThreadStatusBar();
|
|
~CThreadStatusBar();
|
|
|
|
BOOL Create( CWnd *pParent );
|
|
|
|
void Expando( BOOL bExpando );
|
|
|
|
// CNetscapeStatusBar overrides
|
|
protected:
|
|
virtual void SetupMode();
|
|
|
|
protected:
|
|
afx_msg void OnLButtonDown( UINT nFlags, CPoint point );
|
|
afx_msg void OnMouseMove( UINT nFlags, CPoint point );
|
|
afx_msg void OnLButtonUp( UINT nFlags, CPoint point );
|
|
afx_msg void OnPaint();
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
//
|
|
// CProgressDialog
|
|
//
|
|
// Dialog for stand-along mail downloading
|
|
//
|
|
|
|
typedef void (*PROGRESSCALLBACK)(HWND,MSG_Pane *, void*);
|
|
typedef BOOL (*SHOWPROGRESSCALLBACK)(HWND, MSG_Pane*, void*);
|
|
|
|
#define WM_REQUESTPARENT WM_USER+1442
|
|
|
|
class CProgressDialog: public CDialog, public CStubsCX, public IMailFrame {
|
|
protected:
|
|
int32 m_lPercent;
|
|
CProgressMeter m_progressMeter;
|
|
MSG_Pane *m_pPane;
|
|
CWnd * m_pParent;
|
|
char * m_pszTitle;
|
|
void *m_closure;
|
|
PROGRESSCALLBACK m_cbDone;
|
|
UINT m_uTimerId;
|
|
UINT m_uProgressPos;
|
|
BOOL m_bProgressShown;
|
|
|
|
public:
|
|
CProgressDialog( CWnd *pParent,
|
|
MSG_Pane *parentPane,
|
|
PROGRESSCALLBACK callback, void * closure = NULL,
|
|
char * pszTitle = NULL,
|
|
PROGRESSCALLBACK cbDone = NULL,
|
|
SHOWPROGRESSCALLBACK showCallback = NULL);
|
|
~CProgressDialog() {
|
|
if (m_pszTitle)
|
|
XP_FREE(m_pszTitle);
|
|
}
|
|
|
|
enum { IDD = IDD_NEWMAIL };
|
|
|
|
// IUnknown Interface
|
|
STDMETHODIMP QueryInterface(REFIID,LPVOID *);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
// Support for IMailFrame
|
|
virtual CMailNewsFrame *GetMailNewsFrame() { return NULL; }
|
|
virtual MSG_Pane *GetPane() { return m_pPane; }
|
|
virtual void PaneChanged( MSG_Pane *pane, XP_Bool asynchronous,
|
|
MSG_PANE_CHANGED_NOTIFY_CODE, int32 value);
|
|
virtual void AttachmentCount(MSG_Pane *messagepane, void* closure,
|
|
int32 numattachments, XP_Bool finishedloading);
|
|
virtual void UserWantsToSeeAttachments(MSG_Pane *messagepane, void *closure);
|
|
|
|
protected:
|
|
virtual BOOL OnInitDialog( );
|
|
virtual void OnCancel();
|
|
|
|
virtual void PostNcDestroy( ) {} // Prevent window destroy auto delete.
|
|
|
|
afx_msg void OnDestroy();
|
|
afx_msg LONG OnRequestParent(WPARAM,LPARAM);
|
|
afx_msg void OnTimer(UINT nIDEvent);
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
|
|
public:
|
|
int32 QueryProgressPercent();
|
|
void SetProgressBarPercent(MWContext *pContext, int32 lPercent);
|
|
|
|
void SetDocTitle( MWContext *pContext, char *pTitle );
|
|
|
|
void StartAnimation();
|
|
void StopAnimation();
|
|
|
|
void Progress(MWContext *pContext, const char *pMessage);
|
|
void AllConnectionsComplete(MWContext *pContext);
|
|
|
|
void UpdateStopState( MWContext *pContext );
|
|
|
|
CWnd *GetDialogOwner() const;
|
|
// returns TRUE if we get past the test callback function
|
|
// used to determine if we should destruct now.
|
|
BOOL GetProgressShown() {return m_bProgressShown;}
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
//
|
|
// COfflineProgressDialog
|
|
//
|
|
// Progress for offline synchronizing
|
|
//
|
|
|
|
class COfflineProgressDialog: public CProgressDialog {
|
|
|
|
protected:
|
|
BOOL m_bQuitOnCompletion;
|
|
|
|
public:
|
|
COfflineProgressDialog( CWnd *pParent,
|
|
MSG_Pane *parentPane,
|
|
PROGRESSCALLBACK callback, void * closure = NULL,
|
|
char * pszTitle = NULL,
|
|
PROGRESSCALLBACK cbDone = NULL, BOOL bQuitOnCompletion = FALSE);
|
|
|
|
void AllConnectionsComplete(MWContext *pContext);
|
|
|
|
protected:
|
|
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
//
|
|
// CNewFolderDialog
|
|
//
|
|
// Dialog for mail folder creation
|
|
//
|
|
|
|
class CNewFolderDialog: public CDialog, public IMailFrame {
|
|
protected:
|
|
MSG_Pane *m_pPane;
|
|
MSG_FolderInfo *m_pParentFolder;
|
|
CMailFolderCombo m_wndCombo;
|
|
BOOL m_bEnabled;
|
|
|
|
public:
|
|
CNewFolderDialog( CWnd *pParent, MSG_Pane *pPane, MSG_FolderInfo *folderInfo );
|
|
|
|
// IUnknown Interface
|
|
STDMETHODIMP QueryInterface(REFIID,LPVOID *);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
// Support for IMailFrame
|
|
virtual CMailNewsFrame *GetMailNewsFrame() { return NULL; }
|
|
virtual MSG_Pane *GetPane() { return m_pPane; }
|
|
virtual void PaneChanged( MSG_Pane *pane, XP_Bool asynchronous,
|
|
MSG_PANE_CHANGED_NOTIFY_CODE, int32 value);
|
|
virtual void AttachmentCount(MSG_Pane *messagepane, void* closure,
|
|
int32 numattachments, XP_Bool finishedloading);
|
|
virtual void UserWantsToSeeAttachments(MSG_Pane *messagepane, void *closure);
|
|
|
|
enum { IDD = IDD_NEWFOLDER };
|
|
|
|
protected:
|
|
virtual BOOL OnInitDialog( );
|
|
virtual void OnCancel();
|
|
virtual void OnOK();
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnDestroy();
|
|
afx_msg void OnEnable( CCmdUI *pCmdUI );
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
//
|
|
// CPrefNewFolderDialog
|
|
//
|
|
// Dialog for mail folder creation in preference
|
|
//
|
|
|
|
class CPrefNewFolderDialog: public CDialog
|
|
{
|
|
protected:
|
|
MSG_FolderInfo *m_pFolder;
|
|
CMailFolderCombo m_wndCombo;
|
|
BOOL m_bCreating;
|
|
|
|
public:
|
|
CPrefNewFolderDialog( CWnd *pParent, MSG_FolderInfo *pFolderInfo );
|
|
MSG_FolderInfo *GetNewFolder() { return m_pFolder; }
|
|
|
|
enum { IDD = IDD_NEWFOLDER };
|
|
|
|
protected:
|
|
virtual BOOL OnInitDialog( );
|
|
virtual void OnCancel();
|
|
virtual void OnOK();
|
|
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
|
|
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// CMailNewsSplitter
|
|
// A view window can have max 2 panes. Split vertically or horizontally
|
|
// Capable of adding or deleting(or hiding/closing) one pane on the fly
|
|
//
|
|
|
|
class CMailNewsSplitter: public CView {
|
|
DECLARE_DYNCREATE(CMailNewsSplitter);
|
|
|
|
protected:
|
|
|
|
BOOL m_bEraseBackground;
|
|
HBRUSH m_hSliderBrush;
|
|
|
|
CMailNewsFrame* m_pNotifyFrame;
|
|
CWnd *m_pWnd1, *m_pWnd2;
|
|
BOOL m_bVertical;
|
|
BOOL m_bTrackSlider;
|
|
BOOL m_bMouseMove;
|
|
BOOL m_bZapperDown;
|
|
BOOL m_bZapped;
|
|
BOOL m_bDoubleClicked;
|
|
BOOL m_bLoadMessage;
|
|
RECT m_rcSlider;
|
|
POINT m_ptHit;
|
|
POINT m_ptFirstHit;
|
|
|
|
int m_nSliderWidth;
|
|
int m_nPaneSize;
|
|
int m_nPrevSize;
|
|
|
|
CMailNewsSplitter();
|
|
|
|
public:
|
|
|
|
~CMailNewsSplitter();
|
|
|
|
void SetNotifyFrame(CMailNewsFrame* pFrame = NULL) { m_pNotifyFrame = pFrame; }
|
|
void SetLoadMessage(BOOL bLoad = FALSE) { m_bLoadMessage = bLoad; }
|
|
void AddPanes(CWnd *pWnd1, CWnd *pWnd2 = NULL, int nSize = -1, BOOL bVertical = TRUE);
|
|
void AddOnePane(CWnd *pWnd, BOOL bFirstPane = FALSE, BOOL bVertical = TRUE);
|
|
void RemoveOnePane(CWnd *pWnd);
|
|
void SetPaneSize(CWnd *pWnd, int nSize);
|
|
int GetPaneSize();
|
|
int GetPreviousPaneSize();
|
|
|
|
|
|
BOOL IsOnePaneClosed() const;
|
|
void SetSliderWidth(int nWidth) { m_nSliderWidth = nWidth; }
|
|
|
|
protected:
|
|
|
|
void UpdateSplitter();
|
|
BOOL IsInZapper(POINT point);
|
|
void DeleteBitmaps();
|
|
void CreateBitmaps(HDC hDC);
|
|
void LoadingMessage();
|
|
void CheckFocusWindow();
|
|
void UpdateZapper();
|
|
|
|
virtual void PositionWindows(int cx, int cy);
|
|
virtual void InvertSlider(RECT* pRect);
|
|
virtual void SetSliderRect(int cx, int cy);
|
|
|
|
virtual void OnInitialUpdate();
|
|
virtual BOOL PreTranslateMessage( MSG* pMsg );
|
|
virtual void OnDraw(CDC *pDC);
|
|
|
|
afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );
|
|
afx_msg void OnSetFocus( CWnd* pOldWnd );
|
|
afx_msg void OnLButtonDown( UINT nFlags, CPoint point );
|
|
afx_msg void OnMouseMove( UINT nFlags, CPoint point );
|
|
afx_msg void OnLButtonUp( UINT nFlags, CPoint point );
|
|
afx_msg void OnLButtonDblClk( UINT nFlags, CPoint point );
|
|
afx_msg BOOL OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message );
|
|
afx_msg void OnSize( UINT nType, int cx, int cy );
|
|
afx_msg void OnShowWindow( BOOL bShow, UINT nStatus );
|
|
afx_msg BOOL OnEraseBkgnd( CDC* pDC );
|
|
afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
#endif // _MAILPRIV_H
|