gecko-dev/cmd/winfe/cntritem.h
1998-03-28 02:44:41 +00:00

106 lines
4.0 KiB
C++
Executable File

/* -*- 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 __CNTRITEM_H
#define __CNTRITEM_H
// cntritem.h : interface of the CNetscapeCntrItem class
//
class CGenericDoc;
class CGenericView;
class CNetscapeCntrItem : public COleClientItem
{
DECLARE_SERIAL(CNetscapeCntrItem)
// Constructors
public:
CNetscapeCntrItem(CGenericDoc* pContainer = NULL);
// Note: pContainer is allowed to be NULL to enable IMPLEMENT_SERIALIZE.
// IMPLEMENT_SERIALIZE requires the class have a constructor with
// zero arguments. Normally, OLE items are constructed with a
// non-NULL document pointer.
// Attributes
public:
BOOL m_bLoading; // If we are currently loading, from the net until completed creation from file.
BOOL m_bBroken; // Consider this item broken.
BOOL m_bDelayed; // We have postponed loading of this item.
BOOL m_isDirty;
BOOL m_isFullPage;
BOOL m_bIsOleItem;
BOOL m_bSetExtents;
CString m_csAddress; // The url that this originated from, to avoid redundant reloads.
CString m_csFileName; // The local temp file this item is located in, so on destruction we can also delete this file.
CString m_csDosName; // The dos file name for m_csAddress if it is a local file.
BOOL m_bCanSavedByOLE;
DISPID m_idSavedAs;
CFile m_cfOutput; // Output temporary file.
int m_iLock; // How many references to this item anyhow? To avoid freeing at inappropiate times.
CPtrList m_cplUnblock; // List of layout elements to unblock once the load is complete. Flushed on a per load basis.
CPtrList m_cplDisplay; // List of layout elements that we will manually update once the load is complete. Flushed on a per load basis.
CPtrList m_cplElements; // List of all layout elements referencing this item.
BOOL m_bLocationBarShowing; // Wether or not the URL bar was present in the Frame before we were activated.
BOOL m_bStarterBarShowing; // Wether or not the URL bar was present in the Frame before we were activated.
CNetscapeCntrItem* m_pOriginalItem; // Needed when we reuse cached existing NPEmbeddedApp(s), e.g. when printing
// Operations
public:
CGenericDoc* GetDocument()
{ return (CGenericDoc *)COleClientItem::GetDocument(); }
CGenericView* GetActiveView()
{ return (CGenericView *)COleClientItem::GetActiveView(); }
BOOL IsDirty() {return m_isDirty;}
// Implementation
public:
~CNetscapeCntrItem();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
virtual void Serialize(CArchive& ar);
virtual void OnDeactivateUI(BOOL bUndoable);
virtual BOOL OnShowControlBars(CFrameWnd *pFrame, BOOL bShow);
// TODO: We can remove this check once everyone moves to MSVC 4.0
#if defined(MSVC4)
virtual BOOL OnUpdateFrameTitle();
#else
virtual void OnUpdateFrameTitle();
#endif // MSVC4
protected:
virtual void OnChange(OLE_NOTIFICATION wNotification, DWORD dwParam);
virtual BOOL OnChangeItemPosition(const CRect& rectPos);
virtual void OnGetItemPosition(CRect& rectPos);
virtual BOOL OnGetWindowContext(CFrameWnd **ppMainFrame, CFrameWnd **ppDocFrame, LPOLEINPLACEFRAMEINFO lpFrameInfo);
virtual BOOL CanActivate();
virtual void OnActivate();
};
/////////////////////////////////////////////////////////////////////////////
#endif // __CNTRITEM_H