home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / opendc12.zip / od124os2.exe / od12osp1.exe / src / utils / TempIter.cpp < prev    next >
C/C++ Source or Header  |  1997-04-02  |  8KB  |  365 lines

  1. //====START_GENERATED_PROLOG======================================
  2. //
  3. //
  4. //   COMPONENT_NAME: odutils
  5. //
  6. //   CLASSES: none
  7. //
  8. //   ORIGINS: 82,27
  9. //
  10. //
  11. //   (C) COPYRIGHT International Business Machines Corp. 1995,1996
  12. //   All Rights Reserved
  13. //   Licensed Materials - Property of IBM
  14. //   US Government Users Restricted Rights - Use, duplication or
  15. //   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  16. //       
  17. //   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  18. //   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  19. //   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  20. //   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  21. //   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  22. //   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  23. //   OR PERFORMANCE OF THIS SOFTWARE.
  24. //
  25. //====END_GENERATED_PROLOG========================================
  26. //
  27. // @(#) 1.5 com/src/utils/TempIter.cpp, odutils, od96os2, odos29712d 8/19/96 11:50:41 [ 3/21/97 17:21:04 ]
  28. /*
  29.     File:        TempIter.cpp
  30.  
  31.     Contains:    Template utilities for OpenDoc iterators
  32.  
  33.     Owned by:    Jens Alfke
  34.  
  35.     Copyright:    ⌐ 1995 by Apple Computer, Inc., all rights reserved.
  36.  
  37. */
  38.  
  39. #define _OD_DONT_IMPORT_CPP_
  40.  
  41. #ifndef SOM_ODDragAndDrop_xh
  42. #include <DragDrp.xh>
  43. #endif
  44.  
  45. #ifndef _TEMPITER_
  46. #include "TempIter.h"
  47. #endif
  48.  
  49. #ifndef SOM_ODFrame_xh
  50. #include <Frame.xh>
  51. #endif
  52.  
  53. #ifndef SOM_ODFacet_xh
  54. #include <Facet.xh>
  55. #endif
  56.  
  57. #ifndef SOM_ODFacetIterator_xh
  58. #include <FacetItr.xh>
  59. #endif
  60.  
  61. #ifndef SOM_ODEmbeddedFramesIterator_xh
  62. #include <EmbFrItr.xh>
  63. #endif
  64.  
  65. #ifndef SOM_ODFrameFacetIterator_xh
  66. #include <FrFaItr.xh>
  67. #endif
  68.  
  69. #ifdef _PLATFORM_WIN32_
  70. #ifndef SOM_ODPlatformCanvas_xh
  71. #include <PlatCanv.xh>
  72. #endif
  73. #endif
  74.  
  75. #ifndef SOM_ODWindowState_xh
  76. #include <WinStat.xh>
  77. #endif
  78.  
  79. #ifndef SOM_ODWindowIterator_xh
  80. #include <WinIter.xh>
  81. #endif
  82.  
  83. #ifdef _OD_IMPL_
  84. #ifndef SOM_ODDragAndDrop_xh
  85. #include <DragDrp.xh>
  86. #endif
  87.  
  88. #ifndef SOM_ODDragItemIterator_xh
  89. #include <DgItmIt.xh>
  90. #endif
  91. #endif
  92.  
  93. #ifndef SOM_ODFocusSet_xh
  94. #include <FocusSet.xh>
  95. #endif
  96.  
  97. #ifndef SOM_ODFocusSetIterator_xh
  98. #include <FocusItr.xh>
  99. #endif
  100.  
  101. #ifndef SOM_ODTypeList_xh
  102. #include <TypeList.xh>
  103. #endif
  104.  
  105. #ifndef SOM_ODTypeListIterator_xh
  106. #include <TypLsItr.xh>
  107. #endif
  108.  
  109. #ifndef _ODMEMORY_
  110. #include "ODMemory.h"
  111. #endif
  112.  
  113. //=====================================================================================
  114. // TempODFacetIterator
  115. //=====================================================================================
  116.  
  117. WIN32_DLLEXPORT TempODFacetIterator::TempODFacetIterator( Environment *ev, ODFacet *fa,
  118.                                           ODTraversalType tt, ODSiblingOrder so )
  119.     :BaseTempObj(),
  120.      fEv(ev)
  121. {
  122.     fObj = fa->CreateFacetIterator(ev,tt,so);
  123.     this->First();
  124. }
  125.  
  126.  
  127. WIN32_DLLEXPORT ODFacet*
  128. TempODFacetIterator::First( )
  129. {
  130.     return fCurrent = ((ODFacetIterator*)fObj)->First(fEv);
  131. }
  132.  
  133.  
  134. WIN32_DLLEXPORT ODFacet*
  135. TempODFacetIterator::Next( )
  136. {
  137.     return fCurrent = ((ODFacetIterator*)fObj)->Next(fEv);
  138. }
  139.  
  140.  
  141. WIN32_DLLEXPORT ODBoolean
  142. TempODFacetIterator::IsNotComplete( )
  143. {
  144.     return ((ODFacetIterator*)fObj)->IsNotComplete(fEv);
  145. }
  146.  
  147.  
  148. //=====================================================================================
  149. // TempODFrameFacetIterator
  150. //=====================================================================================
  151.  
  152. WIN32_DLLEXPORT TempODFrameFacetIterator::TempODFrameFacetIterator( Environment *ev, ODFrame *fr )
  153.     :BaseTempObj(),
  154.      fEv(ev)
  155. {
  156.     fObj = fr->CreateFacetIterator(ev);
  157.     this->First();
  158. }
  159.  
  160.  
  161. WIN32_DLLEXPORT ODFacet*
  162. TempODFrameFacetIterator::First( )
  163. {
  164.     return fCurrent = ((ODFrameFacetIterator*)fObj)->First(fEv);
  165. }
  166.  
  167.  
  168. WIN32_DLLEXPORT ODFacet*
  169. TempODFrameFacetIterator::Next( )
  170. {
  171.     return fCurrent = ((ODFrameFacetIterator*)fObj)->Next(fEv);
  172. }
  173.  
  174.  
  175. WIN32_DLLEXPORT ODBoolean
  176. TempODFrameFacetIterator::IsNotComplete( )
  177. {
  178.     return ((ODFrameFacetIterator*)fObj)->IsNotComplete(fEv);
  179. }
  180.  
  181.  
  182. //=====================================================================================
  183. // TempODEmbeddedFramesIterator
  184. //=====================================================================================
  185.  
  186. WIN32_DLLEXPORT TempODEmbeddedFramesIterator::TempODEmbeddedFramesIterator( Environment *ev,
  187.                                                             ODPart *part, ODFrame *fr )
  188.     :BaseTempObj(),
  189.      fEv(ev)
  190. {
  191.     fObj = part->CreateEmbeddedFramesIterator(ev,fr);
  192.     this->First();
  193. }
  194.  
  195.  
  196. WIN32_DLLEXPORT ODFrame*
  197. TempODEmbeddedFramesIterator::First( )
  198. {
  199.     return fCurrent = ((ODEmbeddedFramesIterator*)fObj)->First(fEv);
  200. }
  201.  
  202.  
  203. WIN32_DLLEXPORT ODFrame*
  204. TempODEmbeddedFramesIterator::Next( )
  205. {
  206.     return fCurrent = ((ODEmbeddedFramesIterator*)fObj)->Next(fEv);
  207. }
  208.  
  209.  
  210. WIN32_DLLEXPORT ODBoolean
  211. TempODEmbeddedFramesIterator::IsNotComplete( )
  212. {
  213.     return ((ODEmbeddedFramesIterator*)fObj)->IsNotComplete(fEv);
  214. }
  215.  
  216.  
  217. //=====================================================================================
  218. // TempODWindowIterator
  219. //=====================================================================================
  220.  
  221. WIN32_DLLEXPORT TempODWindowIterator::TempODWindowIterator( Environment *ev, ODWindowState *ws )
  222.     :BaseTempObj(),
  223.      fEv(ev)
  224. {
  225.     fObj = ws->CreateWindowIterator(ev);
  226.     this->First();
  227. }
  228.  
  229.  
  230. WIN32_DLLEXPORT ODWindow*
  231. TempODWindowIterator::First( )
  232. {
  233.     return fCurrent = ((ODWindowIterator*)fObj)->First(fEv);
  234. }
  235.  
  236.  
  237. WIN32_DLLEXPORT ODWindow*
  238. TempODWindowIterator::Next( )
  239. {
  240.     return fCurrent = ((ODWindowIterator*)fObj)->Next(fEv);
  241. }
  242.  
  243.  
  244. WIN32_DLLEXPORT ODBoolean
  245. TempODWindowIterator::IsNotComplete( )
  246. {
  247.     return ((ODWindowIterator*)fObj)->IsNotComplete(fEv);
  248. }
  249.  
  250.  
  251. //=====================================================================================
  252. // TempODDragItemIterator
  253. //=====================================================================================
  254.  
  255. #ifdef _OD_IMPL_
  256.  
  257. TempODDragItemIterator::TempODDragItemIterator( Environment *ev, ODDragAndDrop *d )
  258.     :BaseTempObj(),
  259.      fEv(ev)
  260. {
  261.     fObj = d->GetDragItemIterator(ev);
  262.     this->First();
  263. }
  264.  
  265.  
  266. ODStorageUnit*
  267. TempODDragItemIterator::First( )
  268. {
  269.     return fCurrent = ((ODDragItemIterator*)fObj)->First(fEv);
  270. }
  271.  
  272.  
  273. ODStorageUnit*
  274. TempODDragItemIterator::Next( )
  275. {
  276.     return fCurrent = ((ODDragItemIterator*)fObj)->Next(fEv);
  277. }
  278.  
  279.  
  280. ODBoolean
  281. TempODDragItemIterator::IsNotComplete( )
  282. {
  283.     return ((ODDragItemIterator*)fObj)->IsNotComplete(fEv);
  284. }
  285.  
  286. #endif /*_OD_IMPL_*/
  287.  
  288.  
  289. //=====================================================================================
  290. // TempODFocusSetIterator
  291. //=====================================================================================
  292.  
  293. WIN32_DLLEXPORT TempODFocusSetIterator::TempODFocusSetIterator( Environment *ev, ODFocusSet *fs )
  294.     :BaseTempObj(),
  295.      fEv(ev)
  296. {
  297.     fObj = fs->CreateIterator(ev);
  298.     this->First();
  299. }
  300.  
  301.  
  302. WIN32_DLLEXPORT ODTypeToken
  303. TempODFocusSetIterator::First( )
  304. {
  305.     return fCurrent = ((ODFocusSetIterator*)fObj)->First(fEv);
  306. }
  307.  
  308.  
  309. WIN32_DLLEXPORT ODTypeToken
  310. TempODFocusSetIterator::Next( )
  311. {
  312.     return fCurrent = ((ODFocusSetIterator*)fObj)->Next(fEv);
  313. }
  314.  
  315.  
  316. WIN32_DLLEXPORT ODBoolean
  317. TempODFocusSetIterator::IsNotComplete( )
  318. {
  319.     return ((ODFocusSetIterator*)fObj)->IsNotComplete(fEv);
  320. }
  321.  
  322.  
  323. //=====================================================================================
  324. // TempODTypeListIterator
  325. //         ODTypeListIterator returns copies of the data, which must be disposed.
  326. //=====================================================================================
  327.  
  328. WIN32_DLLEXPORT TempODTypeListIterator::TempODTypeListIterator( Environment *ev, ODTypeList *t )
  329.     :BaseTempObj(),
  330.      fEv(ev),
  331.      fCurrent(kODNULL)
  332. {
  333.     fObj = t->CreateTypeListIterator(ev);
  334.     this->First();
  335. }
  336.  
  337.  
  338. WIN32_DLLEXPORT TempODTypeListIterator::~TempODTypeListIterator( )
  339. {
  340.     ODDisposePtr(fCurrent); fCurrent = kODNULL;
  341. }
  342.  
  343.  
  344. WIN32_DLLEXPORT ODType
  345. TempODTypeListIterator::First( )
  346. {
  347.     ODDisposePtr(fCurrent); fCurrent = kODNULL;
  348.     return fCurrent = ((ODTypeListIterator*)fObj)->First(fEv);
  349. }
  350.  
  351.  
  352. WIN32_DLLEXPORT ODType
  353. TempODTypeListIterator::Next( )
  354. {
  355.     ODDisposePtr(fCurrent); fCurrent = kODNULL;
  356.     return fCurrent = ((ODTypeListIterator*)fObj)->Next(fEv);
  357. }
  358.  
  359.  
  360. WIN32_DLLEXPORT ODBoolean
  361. TempODTypeListIterator::IsNotComplete( )
  362. {
  363.     return ((ODTypeListIterator*)fObj)->IsNotComplete(fEv);
  364. }
  365.