home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / OS / FWGraphx / SLPictur.cpp < prev    next >
Encoding:
Text File  |  1996-09-17  |  8.2 KB  |  290 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                SLPictur.cpp
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #include "FWOS.hpp"
  11.  
  12. #ifndef SLPICTUR_H
  13. #include "SLPictur.h"
  14. #endif
  15.  
  16. #ifndef PRPICTUR_H
  17. #include "PRPictur.h"
  18. #endif
  19.  
  20. #ifndef FWODEXCE_H
  21. #include "FWODExce.h"
  22. #endif
  23.  
  24. #ifndef FWSTRMRW_H
  25. #include "FWStrmRW.h"
  26. #endif
  27.  
  28. //========================================================================================
  29. // Picture
  30. //========================================================================================
  31.  
  32. #ifdef FW_BUILD_MAC
  33. #pragma segment FWGraphics_Picture
  34. #endif
  35.  
  36. //----------------------------------------------------------------------------------------
  37. //    FW_PrivPicture_CreateFromResource
  38. //----------------------------------------------------------------------------------------
  39.  
  40. FW_HPicture SL_API FW_PrivPicture_CreateFromResource(FW_OResourceFile*     resourceFile,
  41.                                                     FW_ResourceID         resID,
  42.                                                     FW_PlatformError*     error)
  43. {
  44.     FW_ERR_TRY
  45.     {
  46.         return FW_NEW(FW_CPrivPictureRep, (resourceFile, resID));
  47.     }
  48.     FW_ERR_CATCH
  49.     return 0;    
  50. }
  51.  
  52. //----------------------------------------------------------------------------------------
  53. //    FW_PrivPicture_CreateFromPlatformPict
  54. //----------------------------------------------------------------------------------------
  55.  
  56. FW_HPicture SL_API FW_PrivPicture_CreateFromPlatformPict(FW_PlatformPict platformPict,
  57.                                                         FW_PlatformError* error)
  58. {
  59.     FW_ASSERT(platformPict);
  60.     
  61.     FW_ERR_TRY
  62.     {
  63.         return FW_NEW(FW_CPrivPictureRep, (platformPict));
  64.     }
  65.     FW_ERR_CATCH
  66.     return 0;    
  67. }
  68.  
  69. //----------------------------------------------------------------------------------------
  70. //    FW_PrivPicture_Copy
  71. //----------------------------------------------------------------------------------------
  72.  
  73. FW_HPicture SL_API FW_PrivPicture_Copy(FW_HPicture picture, FW_PlatformError* error)
  74. {
  75.     FW_ASSERT(picture);
  76.     
  77.     FW_ERR_TRY
  78.     {
  79.         return FW_NEW(FW_CPrivPictureRep, (*picture));
  80.     }
  81.     FW_ERR_CATCH
  82.     return 0;    
  83. }
  84.  
  85. //----------------------------------------------------------------------------------------
  86. //    FW_PrivPicture_Acquire
  87. //----------------------------------------------------------------------------------------
  88.  
  89. void SL_API    FW_PrivPicture_Acquire(FW_HPicture picture)
  90. {
  91.     FW_ASSERT(picture);
  92.     
  93.     // No try block necessary - Do not throw
  94.     picture->Acquire();
  95. }
  96.  
  97. //----------------------------------------------------------------------------------------
  98. //    FW_PrivPicture_GetRefCount
  99. //----------------------------------------------------------------------------------------
  100.  
  101. long SL_API    FW_PrivPicture_GetRefCount(FW_HPicture picture)
  102. {
  103.     FW_ASSERT(picture);
  104.     
  105.     // No try block necessary - Do not throw
  106.     return picture->GetRefCount();
  107. }
  108.  
  109. //----------------------------------------------------------------------------------------
  110. //    FW_PrivPicture_Release
  111. //----------------------------------------------------------------------------------------
  112.  
  113. void SL_API    FW_PrivPicture_Release(FW_HPicture picture)
  114. {
  115.     FW_ASSERT(picture);
  116.     
  117.     // No try block necessary - Do not throw
  118.     picture->Release();
  119. }
  120.  
  121. //----------------------------------------------------------------------------------------
  122. //    FW_PrivPicture_IsEqual
  123. //----------------------------------------------------------------------------------------
  124.  
  125. FW_Boolean SL_API FW_PrivPicture_IsEqual(FW_HPicture picture, FW_HPicture picture2)
  126. {
  127.     FW_ASSERT(picture);
  128.     
  129.     // No try block necessary - Do not throw
  130.     return picture->IsEqual(*picture2);
  131. }
  132.  
  133. //----------------------------------------------------------------------------------------
  134. //    FW_PrivPicture_GetPictBounds
  135. //----------------------------------------------------------------------------------------
  136.  
  137. void SL_API FW_PrivPicture_GetPictBounds(FW_HPicture         picture,
  138.                                 FW_SRect&             bounds)
  139. {
  140.     FW_ASSERT(picture);
  141.     
  142.     // No try block necessary - Do not throw
  143.     picture->GetPictBounds(bounds);
  144. }
  145.  
  146. //----------------------------------------------------------------------------------------
  147. //    FW_PrivPicture_GetPictBoundsGC
  148. //----------------------------------------------------------------------------------------
  149.  
  150. void SL_API    FW_PrivPicture_GetPictBoundsGC(Environment* ev,
  151.                                 FW_HPicture         picture,
  152.                                 FW_SGraphicContext&    gc,
  153.                                 FW_SRect&            bounds)
  154. {
  155.     FW_ASSERT(picture);
  156.     
  157.     // No try block necessary - Do not throw
  158.     picture->GetPictBoundsGC(ev, gc, bounds);
  159. }
  160.  
  161. //----------------------------------------------------------------------------------------
  162. //    FW_PrivPicture_GetPlatformPict
  163. //----------------------------------------------------------------------------------------
  164.  
  165. FW_PlatformPict SL_API FW_PrivPicture_GetPlatformPict(FW_HPicture picture)
  166. {
  167.     FW_ASSERT(picture);
  168.     
  169.     // No try block necessary - Do not throw
  170.     return picture->GetPlatformPict();
  171. }
  172.  
  173. //----------------------------------------------------------------------------------------
  174. //    FW_PrivPicture_IsPlatformPictOrphan
  175. //----------------------------------------------------------------------------------------
  176.  
  177. FW_Boolean SL_API FW_PrivPicture_IsPlatformPictOrphan(FW_HPicture picture)
  178. {
  179.     FW_ASSERT(picture);
  180.     
  181.     // No try block necessary - Do not throw
  182.     return picture->IsPlatformPictOrphan();
  183. }
  184.  
  185. //----------------------------------------------------------------------------------------
  186. //    FW_PrivPicture_OrphanPlatformPict
  187. //----------------------------------------------------------------------------------------
  188.  
  189. FW_PlatformPict SL_API FW_PrivPicture_OrphanPlatformPict(FW_HPicture picture)
  190. {
  191.     FW_ASSERT(picture);
  192.     
  193.     // No try block necessary - Do not throw
  194.     return picture->OrphanPlatformPict();
  195. }
  196.     
  197. //----------------------------------------------------------------------------------------
  198. //    FW_PrivPicture_SetPlatformPict
  199. //----------------------------------------------------------------------------------------
  200.  
  201. FW_PlatformError SL_API    FW_PrivPicture_SetPlatformPict(FW_HPicture picture, FW_PlatformPict newPict)
  202. {
  203.     FW_ASSERT(picture);
  204.     
  205.     // No try block necessary - Do not throw
  206.     picture->SetPlatformPict(newPict);
  207.     return FW_xNoError;
  208. }
  209.  
  210. //----------------------------------------------------------------------------------------
  211. //    FW_PrivPicture_AdoptPlatformPict
  212. //----------------------------------------------------------------------------------------
  213.  
  214. FW_PlatformError SL_API    FW_PrivPicture_AdoptPlatformPict(FW_HPicture picture, FW_PlatformPict newPict)
  215. {
  216.     FW_ASSERT(picture);
  217.     
  218.     // No try block necessary - Do not throw
  219.     picture->AdoptPlatformPict(newPict);
  220.     return FW_xNoError;
  221. }
  222.  
  223. #ifdef FW_BUILD_MAC
  224. //----------------------------------------------------------------------------------------
  225. //    FW_PrivPicture_MacLock
  226. //----------------------------------------------------------------------------------------
  227.  
  228. FW_PlatformError SL_API    FW_PrivPicture_MacLock(FW_HPicture picture)
  229. {
  230.     FW_ASSERT(picture);
  231.     
  232.     FW_RETURN_ERR_TRY
  233.     {
  234.         picture->MacLock();
  235.     }
  236.     FW_RETURN_ERR_CATCH
  237. }
  238. #endif
  239.  
  240. #ifdef FW_BUILD_MAC
  241. //----------------------------------------------------------------------------------------
  242. //    FW_PrivPicture_MacUnlock
  243. //----------------------------------------------------------------------------------------
  244.  
  245. FW_PlatformError SL_API    FW_PrivPicture_MacUnlock(FW_HPicture picture)
  246. {
  247.     FW_ASSERT(picture);
  248.     
  249.     FW_RETURN_ERR_TRY
  250.     {
  251.         picture->MacUnlock();
  252.     }
  253.     FW_RETURN_ERR_CATCH
  254. }
  255. #endif
  256.  
  257. //----------------------------------------------------------------------------------------
  258. //    FW_PrivPicture_Read
  259. //----------------------------------------------------------------------------------------
  260.  
  261. FW_HPicture SL_API FW_PrivPicture_Read(FW_HReadableStream hStream, FW_PlatformError* error)
  262. {
  263.     FW_ERR_TRY
  264.     {
  265.         FW_CReadableStream stream(hStream);
  266.         return FW_NEW(FW_CPrivPictureRep, (stream));
  267.     }
  268.     FW_ERR_CATCH
  269.     return 0;
  270. }
  271.  
  272. //----------------------------------------------------------------------------------------
  273. //    FW_PrivPicture_Write
  274. //----------------------------------------------------------------------------------------
  275.  
  276. void SL_API FW_PrivPicture_Write(FW_HPicture         picture,
  277.                                 FW_HWritableStream    hStream,
  278.                                 FW_PlatformError*     error)
  279. {
  280.     FW_ASSERT(picture);
  281.     
  282.     FW_ERR_TRY
  283.     {
  284.         FW_CWritableStream stream(hStream);
  285.         picture->Write(stream);
  286.     }
  287.     FW_ERR_CATCH
  288. }
  289.  
  290.