/* -*- 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. */ #pragma once #include "LView.h" //------------------------------------------------------------------------------------ class CPlaceHolderView : public LView // Similarly to the CIncludeView, this pane lets its superview "include" another view // but unlike the CIncludeView, it doesn't create the included view from a 'PPob' resource: // instead it searches for it in the window. This allows to create a global object like // a CFlexTable for instance, attach it to the window and have different tab panels share it. // // The included view is put back to its original place when the CPlaceHolderView is hidden. // //------------------------------------------------------------------------------------ { public: enum { class_ID = 'Hold' }; CPlaceHolderView(LStream* inStream); virtual ~CPlaceHolderView(); virtual void FinishCreateSelf(); virtual void ShowSelf(); virtual void HideSelf(); virtual void AcquirePane(); virtual void ReturnPane(); protected: virtual void InstallPane(LPane* inPane); protected: PaneIDT mInstalledViewID; LView * mInstalledView; LView * mSaveSuperViewOfInstalledView; };