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 _MSGVIEW_H
- #define _MSGVIEW_H
-
- #include "netsvw.h"
-
- class CAttachmentTray: public CWnd {
- protected:
- HFONT m_hFont;
- RECT m_rcClient;
-
- // Content data
- class AttachAux {
- public:
- #ifdef _WIN32
- HIMAGELIST hImage;
- #else
- HICON hIcon;
- #endif
- BOOL bSelected;
- POINT ptPos;
- };
-
- int m_nAttachmentCount;
- MSG_AttachmentData *m_pAttachmentData;
- AttachAux *m_aAttachAux;
-
- // Layout stuff
- SIZE m_sizeSpacing, m_sizeIcon;
-
- // Scrolling stuff
- POINT m_ptOrigin;
- SIZE m_sizeMax;
-
- public:
- CAttachmentTray();
- ~CAttachmentTray();
-
- void SetAttachments(int nAttachmentCount, MSG_AttachmentData *pAttachmentData);
- void SetCSID(int16 doc_csid, XP_Bool updateWindow = TRUE);
-
- protected:
- int Point2Index(POINT pt);
- void Index2Rect(int idx, RECT &rect);
-
- void ClearSelection();
-
- void Layout();
- BOOL WaitForDrag();
- HICON DredgeUpIcon(char *pszName);
-
- afx_msg void OnPaint();
- afx_msg void OnSize( UINT nType, int cx, int cy );
- afx_msg void OnLButtonDown( UINT nFlags, CPoint point );
- afx_msg void OnLButtonDblClk( UINT nFlags, CPoint point );
- afx_msg void OnRButtonDown( UINT nFlags, CPoint point );
- afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar );
- DECLARE_MESSAGE_MAP();
- };
-
- class CMessageBodyView: public CNetscapeView {
-
- protected:
-
- afx_msg void OnSetFocus(CWnd* pOldWnd);
- afx_msg void OnKillFocus( CWnd* pNewWnd );
- DECLARE_MESSAGE_MAP();
- DECLARE_DYNCREATE(CMessageBodyView)
- };
-
- class CMessageView: public CView {
- protected:
- CMessageBodyView *m_pViewMessage;
- CAttachmentTray *m_pWndAttachments;
-
- int m_iAttachmentsHeight;
- int m_iOldHeight;
- int m_nAttachmentCount;
- BOOL m_bAttachmentsVisible;
- int m_iSliderHeight;
- RECT m_rcSlider;
- POINT m_ptHit;
- RECT m_rcClient;
-
- public:
- CMessageView();
- ~CMessageView();
-
- void SetAttachments(int nAttachmentCount, MSG_AttachmentData *pAttachmentData);
- void ShowAttachments(BOOL bShow = TRUE);
- BOOL AttachmentsVisible() const;
- void UpdateFocusFrame();
- void SetCSID(int16 doc_csid);
-
- protected:
-
- virtual BOOL OnCommand( WPARAM wParam, LPARAM lParam );
- virtual BOOL OnCmdMsg( UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo );
- virtual void OnDraw( CDC* pDC );
-
- afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
- afx_msg void OnSize( UINT nType, int cx, int cy );
- afx_msg BOOL OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message );
- afx_msg void OnSetFocus(CWnd* pOldWnd);
- afx_msg void OnKillFocus( CWnd* pNewWnd );
- 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 OnDestroy();
- DECLARE_MESSAGE_MAP();
- DECLARE_DYNCREATE(CMessageView)
- };
-
- #endif
-