home *** CD-ROM | disk | FTP | other *** search
- /*
- File: TempIter.cpp
-
- Contains: Template utilities for OpenDoc iterators
-
- Owned by: Jens Alfke
-
- Copyright: © 1995 by Apple Computer, Inc., all rights reserved.
-
- */
-
-
- #ifndef SOM_ODDragAndDrop_xh
- #include <DragDrp.xh>
- #endif
-
- #ifndef _TEMPITER_
- #include "TempIter.h"
- #endif
-
- #ifndef SOM_ODFrame_xh
- #include <Frame.xh>
- #endif
-
- #ifndef SOM_ODFacet_xh
- #include <Facet.xh>
- #endif
-
- #ifndef SOM_ODFacetIterator_xh
- #include <FacetItr.xh>
- #endif
-
- #ifndef SOM_ODEmbeddedFramesIterator_xh
- #include <EmbFrItr.xh>
- #endif
-
- #ifndef SOM_ODFrameFacetIterator_xh
- #include <FrFaItr.xh>
- #endif
-
- #ifndef SOM_ODWindowState_xh
- #include <WinStat.xh>
- #endif
-
- #ifndef SOM_ODWindowIterator_xh
- #include <WinIter.xh>
- #endif
-
- #ifdef _OD_IMPL_
- #ifndef SOM_ODDragAndDrop_xh
- #include <DragDrp.xh>
- #endif
-
- #ifndef SOM_ODDragItemIterator_xh
- #include <DgItmIt.xh>
- #endif
- #endif
-
- #ifndef SOM_ODFocusSet_xh
- #include <FocusSet.xh>
- #endif
-
- #ifndef SOM_ODFocusSetIterator_xh
- #include <FocusItr.xh>
- #endif
-
- #ifndef SOM_ODTypeList_xh
- #include <TypeList.xh>
- #endif
-
- #ifndef SOM_ODTypeListIterator_xh
- #include <TypLsItr.xh>
- #endif
-
- #ifndef _ODMEMORY_
- #include "ODMemory.h"
- #endif
-
- //=====================================================================================
- // TempODFacetIterator
- //=====================================================================================
-
- TempODFacetIterator::TempODFacetIterator( Environment *ev, ODFacet *fa,
- ODTraversalType tt, ODSiblingOrder so )
- :BaseTempObj(),
- fEv(ev)
- {
- fObj = fa->CreateFacetIterator(ev,tt,so);
- this->First();
- }
-
-
- ODFacet*
- TempODFacetIterator::First( )
- {
- return fCurrent = ((ODFacetIterator*)fObj)->First(fEv);
- }
-
-
- ODFacet*
- TempODFacetIterator::Next( )
- {
- return fCurrent = ((ODFacetIterator*)fObj)->Next(fEv);
- }
-
-
- ODBoolean
- TempODFacetIterator::IsNotComplete( )
- {
- return ((ODFacetIterator*)fObj)->IsNotComplete(fEv);
- }
-
-
- //=====================================================================================
- // TempODFrameFacetIterator
- //=====================================================================================
-
- TempODFrameFacetIterator::TempODFrameFacetIterator( Environment *ev, ODFrame *fr )
- :BaseTempObj(),
- fEv(ev)
- {
- fObj = fr->CreateFacetIterator(ev);
- this->First();
- }
-
-
- ODFacet*
- TempODFrameFacetIterator::First( )
- {
- return fCurrent = ((ODFrameFacetIterator*)fObj)->First(fEv);
- }
-
-
- ODFacet*
- TempODFrameFacetIterator::Next( )
- {
- return fCurrent = ((ODFrameFacetIterator*)fObj)->Next(fEv);
- }
-
-
- ODBoolean
- TempODFrameFacetIterator::IsNotComplete( )
- {
- return ((ODFrameFacetIterator*)fObj)->IsNotComplete(fEv);
- }
-
-
- //=====================================================================================
- // TempODEmbeddedFramesIterator
- //=====================================================================================
-
- TempODEmbeddedFramesIterator::TempODEmbeddedFramesIterator( Environment *ev,
- ODPart *part, ODFrame *fr )
- :BaseTempObj(),
- fEv(ev)
- {
- fObj = part->CreateEmbeddedFramesIterator(ev,fr);
- this->First();
- }
-
-
- ODFrame*
- TempODEmbeddedFramesIterator::First( )
- {
- return fCurrent = ((ODEmbeddedFramesIterator*)fObj)->First(fEv);
- }
-
-
- ODFrame*
- TempODEmbeddedFramesIterator::Next( )
- {
- return fCurrent = ((ODEmbeddedFramesIterator*)fObj)->Next(fEv);
- }
-
-
- ODBoolean
- TempODEmbeddedFramesIterator::IsNotComplete( )
- {
- return ((ODEmbeddedFramesIterator*)fObj)->IsNotComplete(fEv);
- }
-
-
- //=====================================================================================
- // TempODWindowIterator
- //=====================================================================================
-
- TempODWindowIterator::TempODWindowIterator( Environment *ev, ODWindowState *ws )
- :BaseTempObj(),
- fEv(ev)
- {
- fObj = ws->CreateWindowIterator(ev);
- this->First();
- }
-
-
- ODWindow*
- TempODWindowIterator::First( )
- {
- return fCurrent = ((ODWindowIterator*)fObj)->First(fEv);
- }
-
-
- ODWindow*
- TempODWindowIterator::Next( )
- {
- return fCurrent = ((ODWindowIterator*)fObj)->Next(fEv);
- }
-
-
- ODBoolean
- TempODWindowIterator::IsNotComplete( )
- {
- return ((ODWindowIterator*)fObj)->IsNotComplete(fEv);
- }
-
-
- //=====================================================================================
- // TempODDragItemIterator
- //=====================================================================================
-
- #ifdef _OD_IMPL_
-
- TempODDragItemIterator::TempODDragItemIterator( Environment *ev, ODDragAndDrop *d )
- :BaseTempObj(),
- fEv(ev)
- {
- fObj = d->GetDragItemIterator(ev);
- this->First();
- }
-
-
- ODStorageUnit*
- TempODDragItemIterator::First( )
- {
- return fCurrent = ((ODDragItemIterator*)fObj)->First(fEv);
- }
-
-
- ODStorageUnit*
- TempODDragItemIterator::Next( )
- {
- return fCurrent = ((ODDragItemIterator*)fObj)->Next(fEv);
- }
-
-
- ODBoolean
- TempODDragItemIterator::IsNotComplete( )
- {
- return ((ODDragItemIterator*)fObj)->IsNotComplete(fEv);
- }
-
- #endif /*_OD_IMPL_*/
-
-
- //=====================================================================================
- // TempODFocusSetIterator
- //=====================================================================================
-
- TempODFocusSetIterator::TempODFocusSetIterator( Environment *ev, ODFocusSet *fs )
- :BaseTempObj(),
- fEv(ev)
- {
- fObj = fs->CreateIterator(ev);
- this->First();
- }
-
-
- ODTypeToken
- TempODFocusSetIterator::First( )
- {
- return fCurrent = ((ODFocusSetIterator*)fObj)->First(fEv);
- }
-
-
- ODTypeToken
- TempODFocusSetIterator::Next( )
- {
- return fCurrent = ((ODFocusSetIterator*)fObj)->Next(fEv);
- }
-
-
- ODBoolean
- TempODFocusSetIterator::IsNotComplete( )
- {
- return ((ODFocusSetIterator*)fObj)->IsNotComplete(fEv);
- }
-
-
- //=====================================================================================
- // TempODTypeListIterator
- // ODTypeListIterator returns copies of the data, which must be disposed.
- //=====================================================================================
-
- TempODTypeListIterator::TempODTypeListIterator( Environment *ev, ODTypeList *t )
- :BaseTempObj(),
- fEv(ev),
- fCurrent(kODNULL)
- {
- fObj = t->CreateTypeListIterator(ev);
- this->First();
- }
-
-
- TempODTypeListIterator::~TempODTypeListIterator( )
- {
- ODDisposePtr(fCurrent); fCurrent = kODNULL;
- }
-
-
- ODType
- TempODTypeListIterator::First( )
- {
- ODDisposePtr(fCurrent); fCurrent = kODNULL;
- return fCurrent = ((ODTypeListIterator*)fObj)->First(fEv);
- }
-
-
- ODType
- TempODTypeListIterator::Next( )
- {
- ODDisposePtr(fCurrent); fCurrent = kODNULL;
- return fCurrent = ((ODTypeListIterator*)fObj)->Next(fEv);
- }
-
-
- ODBoolean
- TempODTypeListIterator::IsNotComplete( )
- {
- return ((ODTypeListIterator*)fObj)->IsNotComplete(fEv);
- }
-