home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / cmd / winfe / mailpriv.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  16.6 KB  |  646 lines

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18.  
  19. #ifndef _MAILPRIV_H
  20. #define _MAILPRIV_H
  21.  
  22. #include "dateedit.h"
  23. #include "widgetry.h"
  24. #include "mailmisc.h"
  25. #include "statbar.h"
  26. #include "property.h"
  27.  
  28. ///////////////////////////////////////////////////////////////////////
  29. // CMarkReadDateDlg 
  30.  
  31. class CDiskSpacePropertyPage;
  32. class CDownLoadPPNews;
  33. class CDownLoadPPMail;
  34.  
  35.  
  36. class CMarkReadDateDlg: public CDialog {
  37. protected:
  38.     CNSDateEdit wndDateTo;
  39.  
  40. public:
  41.     CTime dateTo;
  42.     enum { IDD = IDD_MARKREADDATE };
  43.  
  44.     CMarkReadDateDlg( UINT nIDTemplate, CWnd* pParentWnd ):
  45.         CDialog( nIDTemplate, pParentWnd ) {}
  46.  
  47.     virtual BOOL OnInitDialog( );
  48.     virtual void OnOK();
  49. };
  50.  
  51. ///////////////////////////////////////////////////////////////////////
  52. // CNavCombo
  53.  
  54. class CNavCombo: public CMailFolderCombo {
  55. friend class CFolderInfoBar;
  56.  
  57. protected:
  58.     BOOL m_bFirst;
  59.     RECT m_rcList;
  60.  
  61.     HFONT m_hFont, m_hBigFont;
  62. public:
  63.     CNavCombo();
  64.     ~CNavCombo();
  65.  
  66.     virtual void SetFont( CFont *pFont, CFont *pBigFont );
  67.  
  68. protected:
  69.  
  70.     virtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );
  71.     
  72.     afx_msg void OnPaint( );
  73.     afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor );
  74.     DECLARE_MESSAGE_MAP()
  75. };
  76.  
  77. ///////////////////////////////////////////////////////////////////////
  78. // CMailInfoBar
  79.  
  80. #ifdef XP_WIN16
  81. class CMailInfoBar: public CNetscapeControlBar {
  82. #else
  83. class CMailInfoBar: public CControlBar {
  84. #endif
  85.  
  86. protected:
  87.     BOOL m_bEraseBackground;
  88.  
  89.     // Attributes
  90.     int m_iCSID;
  91.     HFONT m_hFont, m_hBoldFont;
  92.     HFONT m_hIntlFont, m_hBoldIntlFont;
  93.  
  94.     MSG_Pane *m_pPane;
  95.     int m_idxImage;
  96.  
  97.     CNSToolTip2 m_wndToolTip;
  98.  
  99.     HBITMAP m_hbmBanner;
  100.     SIZE m_sizeBanner;
  101.  
  102.     LPUNKNOWN m_pUnkImage;
  103.     LPIMAGEMAP m_pIImage;
  104.  
  105. public:
  106.     CMailInfoBar();
  107.     virtual ~CMailInfoBar();
  108.  
  109.     BOOL Create( CWnd *pWnd, MSG_Pane *pPane );
  110.     void SetPane( MSG_Pane *pPane ) { m_pPane = pPane; }
  111.     virtual void SetCSID(int csid);
  112.     virtual void Update() {};
  113.  
  114. protected:
  115.     virtual void DragProxie();
  116.  
  117.     void DrawInfoText( HDC hdc, LPCSTR lpText, LPRECT rect );
  118.     void DrawInfoText( int iCSID, HDC hdc, LPCSTR lpText, LPRECT rect );
  119.     void MeasureInfoText( HDC hdc, LPCSTR lpText, LPRECT rect );
  120.     void MeasureInfoText( int iCSID, HDC hdc, LPCSTR lpText, LPRECT rect );
  121.  
  122.     void PaintBackground( HDC hdc );
  123.  
  124.     virtual void OnUpdateCmdUI( CFrameWnd* pTarget, BOOL bDisableIfNoHndler );
  125.     virtual CSize CalcFixedLayout( BOOL bStretch, BOOL bHorz );
  126.     virtual BOOL PreTranslateMessage(MSG *pMsg);
  127.  
  128.     afx_msg int OnCreate(LPCREATESTRUCT lpcs);
  129.     afx_msg void OnLButtonDown( UINT nFlags, CPoint point );
  130.     afx_msg void OnLButtonUp( UINT nFlags, CPoint point );
  131.     afx_msg void OnMouseMove( UINT nFlags, CPoint point );
  132.     afx_msg void OnShowWindow( BOOL bShow, UINT nStatus );
  133.     afx_msg BOOL OnEraseBkgnd( CDC* pDC );
  134.     afx_msg BOOL OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message );
  135.     DECLARE_MESSAGE_MAP()
  136. };
  137.  
  138. ///////////////////////////////////////////////////////////////////////
  139. // CContainerInfoBar
  140.  
  141. class CContainerInfoBar: public CMailInfoBar {
  142. protected:
  143.     // Attributes
  144.     CString m_csBanner;
  145.  
  146. public:
  147.     virtual void Update();
  148.  
  149. protected:
  150.     virtual void DragProxie();
  151.   
  152.     afx_msg int OnCreate(LPCREATESTRUCT lpcs);
  153.     afx_msg void OnPaint( );
  154.     DECLARE_MESSAGE_MAP()
  155. };
  156.  
  157. ///////////////////////////////////////////////////////////////////////
  158. // CFolderInfoBar
  159.  
  160. class CFolderInfoBar: public CMailInfoBar {
  161. protected:
  162.     // Attributes
  163.     MSG_FolderInfo *m_folderOld;
  164.     CString m_csFolderName;
  165.     CString m_csFolderCounts;
  166.  
  167.     CNavCombo m_wndNavButton;
  168.     CCommandToolbarButton m_wndBackButton;
  169.     
  170. public:
  171.     CFolderInfoBar();
  172.     virtual ~CFolderInfoBar();
  173.  
  174.     virtual void SetCSID(int csid);
  175.     virtual void Update();
  176.  
  177. protected:
  178.     virtual void DragProxie();
  179.  
  180.     afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );
  181.     afx_msg void OnSize( UINT nType, int cx, int cy );
  182.     afx_msg void OnDropDown();
  183.     afx_msg void OnCloseUp();
  184.     afx_msg void OnContainer();
  185.     afx_msg void OnPaint( );
  186.     DECLARE_MESSAGE_MAP()
  187. };
  188.  
  189. ///////////////////////////////////////////////////////////////////////
  190. // CMessageInfoBar
  191.  
  192. class CMessageInfoBar: public CMailInfoBar {
  193. protected:
  194.     // Attributes
  195.     CString m_csMessageName;
  196.     CString m_csMessageAuthor;
  197.     CString m_csFolderTip;
  198.     CString m_csFolderStatus;
  199.  
  200.     CCommandToolbarButton m_wndBackButton;
  201.  
  202. public:
  203.     CMessageInfoBar();
  204.     virtual ~CMessageInfoBar();
  205.  
  206.     virtual void SetCSID(int csid);
  207.     virtual void Update();
  208.  
  209. protected:
  210.     virtual void DragProxie();
  211.  
  212.     afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );
  213.     afx_msg void OnSize( UINT nType, int cx, int cy );
  214.     afx_msg void OnPaint( );
  215.     afx_msg void OnContainer();
  216.     DECLARE_MESSAGE_MAP()
  217. };
  218.  
  219. ///////////////////////////////////////////////////////////////////////
  220. //CFolderPropertyPage
  221. //Mail folder property page.
  222. class CNewsFolderPropertySheet;
  223. class CFolderPropertyPage: public CNetscapePropertyPage {
  224.  
  225. protected:
  226.     MSG_FolderInfo *m_folderInfo;
  227.     MSG_Pane *m_pPane;
  228.     CNewsFolderPropertySheet *m_pParent;
  229.  
  230. public:
  231.     enum { IDD = IDD_PP_FOLDER };
  232.     CString m_strFolderName;
  233.  
  234.     CFolderPropertyPage(CWnd *pWnd = NULL);
  235.     void SetFolderInfo(MSG_FolderInfo *folderInfo, MSG_Pane *pPane);
  236.  
  237.     virtual BOOL OnInitDialog();
  238.     virtual void OnOK();
  239. protected:
  240.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  241.     afx_msg void OnChangeFolderName();
  242.     afx_msg void OnCleanUpWastedSpace();
  243.  
  244.     DECLARE_MESSAGE_MAP()
  245.  
  246. };
  247.  
  248. ///////////////////////////////////////////////////////////////////////
  249. ///News Host property page.
  250. class CNewsHostGeneralPropertyPage: public CNetscapePropertyPage {
  251.  
  252. protected:
  253.     MSG_FolderInfo *m_folderInfo;
  254.     MSG_NewsHost    *m_pNewsHost;
  255. public:
  256.     CNewsHostGeneralPropertyPage();
  257.  
  258.     //dialog data
  259.     enum { IDD = IDD_PP_NEWSHOST_GENERAL };
  260.     int        m_nRadioValue;
  261.     BOOL    m_bCanReceiveHTML;
  262.     //end dialog data 
  263.  
  264.     void SetFolderInfo(MSG_FolderInfo *folderInfo, MSG_NewsHost *pNewsHost);
  265. public:
  266.     virtual void OnOK();
  267.     virtual BOOL OnInitDialog();
  268.  
  269. protected:
  270.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  271.     DECLARE_MESSAGE_MAP()
  272.  
  273. };
  274.  
  275. //forward
  276. class CNewsFolderPropertySheet;
  277.  
  278. /////////////////////////////////////////////////////////////////////////
  279. //General page for news folders
  280.  
  281. class CNewsGeneralPropertyPage: public CNetscapePropertyPage {
  282.  
  283. protected:
  284.     MSG_FolderInfo *m_folderInfo;
  285.     MWContext *m_pContext;
  286.     CNewsFolderPropertySheet *m_pParent;
  287. public:
  288.     CNewsGeneralPropertyPage(CNewsFolderPropertySheet *pParent);
  289.  
  290.     //Dialog Data
  291.     enum { IDD = IDD_PP_NEWS_GENERAL };
  292.     BOOL m_bCanReceiveHTML;
  293.     //End Dialog Data
  294.  
  295.     void SetFolderInfo(MSG_FolderInfo *folderInfo, MWContext *pContext);
  296.  
  297. public://virtuals
  298.     virtual void OnOK();
  299.     virtual BOOL OnInitDialog();
  300.  
  301. protected:
  302.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  303.     afx_msg void OnDownLoadButton();
  304.     DECLARE_MESSAGE_MAP()
  305. };
  306.  
  307. /////////////////////////////////////////////////////////////////////////
  308.  
  309. /////////////////////////////////////////////////////////////////////////
  310. //CNewsFolderPropertySheet
  311. //Used in Edit Properties of the MailFolder frame.
  312. class CNewsFolderPropertySheet : public CNetscapePropertySheet
  313. {
  314. public:
  315.     LOGFONT m_LogFont;
  316.     CFont m_Font;
  317.  
  318.     BOOL m_bDownLoadNow;
  319.     BOOL m_bSynchronizeNow;
  320.     BOOL m_bCleanUpNow;
  321.  
  322.     CWnd * m_pParent;
  323. public:
  324.  
  325.     CNewsFolderPropertySheet(LPCTSTR pszCaption, CWnd *pParent);
  326.     ~CNewsFolderPropertySheet();
  327.     
  328.     BOOL DownLoadNow() {return m_bDownLoadNow;};
  329.     BOOL SynchronizeNow() {return m_bSynchronizeNow;};
  330.     BOOL CleanUpNow()    {return m_bCleanUpNow;};
  331.     void CleanUpWastedSpace();
  332.  
  333.     virtual void OnHelp();
  334.  
  335. public:                 
  336.     CNewsGeneralPropertyPage     *m_pNewsFolderPage;
  337.     CFolderPropertyPage             *m_pFolderPage;                                             
  338.     CDiskSpacePropertyPage         *m_pDiskSpacePage;
  339.     CDownLoadPPNews                 *m_pDownLoadPageNews;
  340.     CDownLoadPPMail                 *m_pDownLoadPageMail;
  341.     CNewsHostGeneralPropertyPage *m_pNewsHostPage;
  342. public:    
  343.  
  344.     afx_msg void OnDownLoadButton();
  345.     afx_msg void OnSynchronizeButton();
  346.  
  347.     DECLARE_MESSAGE_MAP()
  348. };
  349.  
  350. /////////////////////////////////////////////////////////////////////////
  351. //General page for attachments
  352.  
  353. class CAttachmentGeneralPage: public CNetscapePropertyPage {
  354. protected:
  355.     CString m_csName;
  356.     CString m_csType;
  357.     CString m_csDescription;
  358.  
  359.     enum { IDD = IDD_PP_ATTACHMENT_GENERAL };
  360.  
  361. public:
  362.     CAttachmentGeneralPage(LPCTSTR lpszName, LPCTSTR lpszType, LPCTSTR lpszDescription);
  363.  
  364.     virtual void DoDataExchange(CDataExchange* pDX);
  365. };
  366.  
  367. /////////////////////////////////////////////////////////////////////////
  368. // Property sheet for attachments
  369.  
  370. class CAttachmentSheet: public CNetscapePropertySheet {
  371. protected:
  372.     CAttachmentGeneralPage *m_pGeneral;
  373.  
  374.     CString m_csName;
  375.     CString m_csType;
  376.     CString m_csDescription;
  377.  
  378. public:
  379.     CAttachmentSheet(CWnd *pParentWnd,
  380.                      LPCTSTR lpszName, LPCTSTR lpszType, LPCTSTR lpszDescription);
  381.     ~CAttachmentSheet();
  382. };
  383.  
  384. /////////////////////////////////////////////////////////////////////
  385. //
  386. // CThreadStatusBar
  387. //
  388. // Status bar with little "expando" widget on the left
  389. //
  390.  
  391. class CThreadStatusBar: public CNetscapeStatusBar {
  392.  
  393. protected:
  394.     HBITMAP m_hbmExpando;
  395.     SIZE m_sizeExpando;
  396.  
  397.     BOOL m_bExpandoed, m_bDepressed;
  398.  
  399. // Mode state info for particular pane modes   
  400. private:
  401.     int   m_iStatBarPaneWidth; // eSBM_Expando: save the width of the Taskbar pane
  402.  
  403. public:
  404.     CThreadStatusBar();
  405.     ~CThreadStatusBar();
  406.  
  407.     BOOL Create( CWnd *pParent );
  408.  
  409.     void Expando( BOOL bExpando );
  410.  
  411. // CNetscapeStatusBar overrides
  412. protected:
  413.    virtual void SetupMode();
  414.  
  415. protected:
  416.     afx_msg void OnLButtonDown( UINT nFlags, CPoint point );
  417.     afx_msg void OnMouseMove( UINT nFlags, CPoint point );
  418.     afx_msg void OnLButtonUp( UINT nFlags, CPoint point );
  419.     afx_msg void OnPaint();
  420.     DECLARE_MESSAGE_MAP()
  421. };
  422.  
  423. /////////////////////////////////////////////////////////////////////
  424. //
  425. // CProgressDialog
  426. //
  427. // Dialog for stand-along mail downloading
  428. //
  429.  
  430. typedef void (*PROGRESSCALLBACK)(HWND,MSG_Pane *, void*);
  431.  
  432. #define    WM_REQUESTPARENT    WM_USER+1442
  433.  
  434. class CProgressDialog: public CDialog, public CStubsCX, public IMailFrame {
  435. protected:
  436.     int32 m_lPercent;
  437.     CProgressMeter m_progressMeter;
  438.     MSG_Pane *m_pPane;
  439.     CWnd * m_pParent;
  440.     char * m_pszTitle;
  441.  
  442.     void *m_closure;
  443.     PROGRESSCALLBACK m_cbDone;
  444.  
  445. public:
  446.    CProgressDialog( CWnd *pParent, 
  447.       MSG_Pane *parentPane, 
  448.       PROGRESSCALLBACK callback, void * closure = NULL,
  449.       char * pszTitle = NULL,
  450.       PROGRESSCALLBACK cbDone = NULL);
  451.    ~CProgressDialog() {
  452.       if (m_pszTitle)
  453.          XP_FREE(m_pszTitle);
  454.       }
  455.  
  456.     enum { IDD = IDD_NEWMAIL };
  457.  
  458. // IUnknown Interface
  459.     STDMETHODIMP            QueryInterface(REFIID,LPVOID *);
  460.     STDMETHODIMP_(ULONG)    AddRef(void);
  461.     STDMETHODIMP_(ULONG)    Release(void);
  462.  
  463. // Support for IMailFrame
  464.     virtual CMailNewsFrame *GetMailNewsFrame() { return NULL; }
  465.     virtual MSG_Pane *GetPane() { return m_pPane; }
  466.     virtual void PaneChanged( MSG_Pane *pane, XP_Bool asynchronous, 
  467.                               MSG_PANE_CHANGED_NOTIFY_CODE, int32 value);
  468.     virtual void AttachmentCount(MSG_Pane *messagepane, void* closure,
  469.                                  int32 numattachments, XP_Bool finishedloading);
  470.     virtual void UserWantsToSeeAttachments(MSG_Pane *messagepane, void *closure);
  471.  
  472. protected:
  473.     virtual BOOL OnInitDialog( );
  474.     virtual void OnCancel();
  475.  
  476.     virtual void PostNcDestroy( ) {} // Prevent window destroy auto delete.
  477.  
  478.     afx_msg void OnDestroy();
  479.     afx_msg LONG OnRequestParent(WPARAM,LPARAM);
  480.     DECLARE_MESSAGE_MAP()
  481.  
  482. public:
  483.     int32 QueryProgressPercent();
  484.     void SetProgressBarPercent(MWContext *pContext, int32 lPercent);
  485.  
  486.     void SetDocTitle( MWContext *pContext, char *pTitle );
  487.  
  488.     void StartAnimation();
  489.     void StopAnimation();
  490.  
  491.     void Progress(MWContext *pContext, const char *pMessage);
  492.     void AllConnectionsComplete(MWContext *pContext);
  493.  
  494.     void UpdateStopState( MWContext *pContext );
  495.     
  496.     CWnd *GetDialogOwner() const;
  497. };
  498.  
  499. /////////////////////////////////////////////////////////////////////
  500. //
  501. // CNewFolderDialog
  502. //
  503. // Dialog for mail folder creation
  504. //
  505.  
  506. class CNewFolderDialog: public CDialog, public IMailFrame {
  507. protected:
  508.     MSG_Pane *m_pPane;
  509.     MSG_FolderInfo *m_pParentFolder;
  510.     CMailFolderCombo m_wndCombo;
  511.     BOOL m_bEnabled;
  512.  
  513. public:
  514.     CNewFolderDialog( CWnd *pParent, MSG_Pane *pPane, MSG_FolderInfo *folderInfo );
  515.  
  516. // IUnknown Interface
  517.     STDMETHODIMP            QueryInterface(REFIID,LPVOID *);
  518.     STDMETHODIMP_(ULONG)    AddRef(void);
  519.     STDMETHODIMP_(ULONG)    Release(void);
  520.  
  521. // Support for IMailFrame
  522.     virtual CMailNewsFrame *GetMailNewsFrame() { return NULL; }
  523.     virtual MSG_Pane *GetPane() { return m_pPane; }
  524.     virtual void PaneChanged( MSG_Pane *pane, XP_Bool asynchronous, 
  525.                               MSG_PANE_CHANGED_NOTIFY_CODE, int32 value);
  526.     virtual void AttachmentCount(MSG_Pane *messagepane, void* closure,
  527.                                  int32 numattachments, XP_Bool finishedloading);
  528.     virtual void UserWantsToSeeAttachments(MSG_Pane *messagepane, void *closure);
  529.     
  530.     enum { IDD = IDD_NEWFOLDER };
  531.  
  532. protected:
  533.     virtual BOOL OnInitDialog( );
  534.     virtual void OnCancel();
  535.     virtual void OnOK();
  536.  
  537.     DECLARE_MESSAGE_MAP()
  538.     afx_msg void OnDestroy();
  539.     afx_msg void OnEnable( CCmdUI *pCmdUI );
  540. };
  541.  
  542. /////////////////////////////////////////////////////////////////////
  543. //
  544. // CPrefNewFolderDialog
  545. //
  546. // Dialog for mail folder creation in preference
  547. //
  548.  
  549. class CPrefNewFolderDialog: public CDialog
  550. {
  551. protected:
  552.     MSG_FolderInfo *m_pFolder;
  553.     CMailFolderCombo m_wndCombo;
  554.     BOOL m_bCreating;
  555.  
  556. public:
  557.     CPrefNewFolderDialog( CWnd *pParent, MSG_FolderInfo *pFolderInfo );
  558.     MSG_FolderInfo *GetNewFolder() { return m_pFolder; }
  559.  
  560.     enum { IDD = IDD_NEWFOLDER };
  561.  
  562. protected:
  563.     virtual BOOL OnInitDialog( );
  564.     virtual void OnCancel();
  565.     virtual void OnOK();
  566.     virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
  567.  
  568.  
  569.     DECLARE_MESSAGE_MAP()
  570. };
  571.  
  572. ///////////////////////////////////////////////////////////////////////
  573. // CMailNewsSplitter
  574. // A view window can have max 2 panes.  Split vertically or horizontally
  575. // Capable of adding or deleting(or hiding/closing) one pane on the fly
  576. // 
  577.  
  578. class CMailNewsSplitter: public CView {
  579.     DECLARE_DYNCREATE(CMailNewsSplitter);
  580.  
  581. protected:
  582.  
  583.     BOOL m_bEraseBackground;
  584.     HBRUSH    m_hSliderBrush;
  585.  
  586.     CWnd     *m_pWnd1, *m_pWnd2;
  587.     BOOL    m_bVertical;
  588.     BOOL    m_bTrackSlider;
  589.     BOOL    m_bMouseMove;
  590.     BOOL    m_bZapperDown;
  591.     BOOL    m_bZapped;
  592.     BOOL    m_bDoubleClicked;
  593.     RECT    m_rcSlider;
  594.     POINT    m_ptHit;
  595.     POINT    m_ptFirstHit;
  596.  
  597.     int        m_nSliderWidth;
  598.     int        m_nPaneSize;
  599.     int        m_nPrevSize;
  600.  
  601.     CMailNewsSplitter();
  602.         
  603. public:
  604.  
  605.     ~CMailNewsSplitter();
  606.     void AddPanes(CWnd *pWnd1, CWnd *pWnd2 = NULL, int nSize = -1, BOOL bVertical = TRUE);
  607.     void AddOnePane(CWnd *pWnd, BOOL bFirstPane = FALSE, BOOL bVertical = TRUE);
  608.     void RemoveOnePane(CWnd *pWnd);
  609.     void SetPaneSize(CWnd *pWnd, int nSize);
  610.     int     GetPaneSize();
  611.  
  612.  
  613.     BOOL IsOnePaneClosed() const;
  614.     void SetSliderWidth(int nWidth) { m_nSliderWidth = nWidth;    }
  615.  
  616. protected:
  617.  
  618.     void UpdateSplitter();
  619.     BOOL IsInZapper(POINT point);
  620.     void DeleteBitmaps();
  621.     void CreateBitmaps(HDC hDC);
  622.  
  623.     virtual void PositionWindows(int cx, int cy);
  624.     virtual void InvertSlider(RECT* pRect);
  625.     virtual void SetSliderRect(int cx, int cy);
  626.  
  627.     virtual void OnInitialUpdate();
  628.     virtual BOOL PreTranslateMessage( MSG* pMsg );
  629.     virtual void OnDraw(CDC *pDC);
  630.  
  631.     afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );
  632.     afx_msg void OnSetFocus( CWnd* pOldWnd );
  633.     afx_msg void OnLButtonDown( UINT nFlags, CPoint point );
  634.     afx_msg void OnMouseMove( UINT nFlags, CPoint point ); 
  635.     afx_msg void OnLButtonUp( UINT nFlags, CPoint point );
  636.     afx_msg void OnLButtonDblClk( UINT nFlags, CPoint point );
  637.     afx_msg BOOL OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message );
  638.     afx_msg void OnSize( UINT nType, int cx, int cy );
  639.     afx_msg void OnShowWindow( BOOL bShow, UINT nStatus );
  640.     afx_msg BOOL OnEraseBkgnd( CDC* pDC );
  641.     afx_msg int    OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
  642.     DECLARE_MESSAGE_MAP()
  643. };
  644.  
  645. #endif // _MAILPRIV_H
  646.