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.
- */
-
- #include "stdafx.h"
-
- #include "netsprnt.h"
- #include "netsvw.h"
- #include "cxprint.h"
-
- #ifndef _AFXDLL
- #undef new
- #endif
- IMPLEMENT_DYNCREATE(CNetscapePreviewView,CPreviewView)
- #ifndef _AFXDLL
- #define new DEBUG_NEW
- #endif
-
- BEGIN_MESSAGE_MAP(CNetscapePreviewView, CPreviewView)
- //{{AFX_MSG_MAP(CPreviewView)
- ON_COMMAND(AFX_ID_PREVIEW_CLOSE, OnPreviewClose)
- ON_COMMAND(AFX_ID_PREVIEW_PRINT, OnPreviewPrint)
- ON_UPDATE_COMMAND_UI(AFX_ID_PREVIEW_NUMPAGE, OnUpdatePreviewNumpage)
- ON_UPDATE_COMMAND_UI(AFX_ID_PREVIEW_NEXT, OnUpdatePreviewNext)
- ON_UPDATE_COMMAND_UI(AFX_ID_PREVIEW_PRINT, OnUpdatePreviewPrint)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CNetscapePreviewView construction/destruction
-
- CNetscapePreviewView::CNetscapePreviewView()
- {
- // TODO: add construction code here
- }
-
- void CNetscapePreviewView::OnPreviewClose()
- {
- m_pToolBar->DestroyWindow();
- m_pToolBar = NULL;
-
- m_pPreviewInfo->m_nCurPage = m_nCurrentPage;
- ((CNetscapeView *)m_pOrigView)->OnEndPrintPreview(m_pPreviewDC, m_pPreviewInfo,
- CPoint(0, 0), this);
- }
-
- void CNetscapePreviewView::OnPreviewPrint()
- {
- CNetscapeView* pOrigView = (CNetscapeView *)m_pOrigView;
- OnPreviewClose(); // force close of Preview
-
- // Route through view.
- if(pOrigView && pOrigView->GetFrame() && pOrigView->GetFrame()->GetActiveWinContext() && pOrigView->GetFrame()->GetActiveWinContext()->GetPane()) {
- pOrigView->GetFrame()->GetActiveWinContext()->GetView()->OnFilePrint();
- }
- }
-
- void CNetscapePreviewView::OnUpdatePreviewPrint(CCmdUI* pCmdUI)
- {
- // Route through view.
- CNetscapeView* pOrigView = (CNetscapeView *)m_pOrigView;
- if(pOrigView && pOrigView->GetFrame() && pOrigView->GetFrame()->GetActiveWinContext() && pOrigView->GetFrame()->GetActiveWinContext()->GetPane()) {
- pOrigView->GetFrame()->GetActiveWinContext()->GetView()->OnUpdateFilePrint(pCmdUI);
- }
- }
-
- void CNetscapePreviewView::OnUpdatePreviewNext(CCmdUI* pCmdUI)
- {
- // Call the base.
- CPreviewView::OnUpdateNextPage(pCmdUI);
-
- // Only enable if we are not on the last page.
- CNetscapeView* pOrigView = (CNetscapeView *)m_pOrigView;
- if(pOrigView && pOrigView->m_pPreviewContext) {
- pCmdUI->Enable(pOrigView->m_pPreviewContext->LastPagePrinted() != pOrigView->m_pPreviewContext->PageCount() ? TRUE : FALSE);
- }
- }
-
- void CNetscapePreviewView::OnUpdatePreviewNumpage(CCmdUI* pCmdUI)
- {
- // Call the base.
- CPreviewView::OnUpdateNumPageChange(pCmdUI);
-
- // Only enable if there is more than 1 page and we aren't already showing two pages.
- if(m_nZoomState == ZOOM_OUT && m_nPages == 1) {
- CNetscapeView* pOrigView = (CNetscapeView *)m_pOrigView;
- if(pOrigView && pOrigView->m_pPreviewContext) {
- pCmdUI->Enable(pOrigView->m_pPreviewContext->PageCount() > 1 ? TRUE : FALSE);
- }
- }
- }
-