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 / FWFctInf.cpp < prev    next >
Encoding:
Text File  |  1996-09-17  |  5.2 KB  |  158 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWFctInf.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 FWFCTINF_H
  13. #include "FWFctInf.h"
  14. #endif
  15.  
  16. #ifndef FWPRIDEB_H
  17. #include "FWPriDeb.h"
  18. #endif
  19.  
  20. // ----- OpenDoc Includes -----
  21.  
  22. #ifndef SOM_ODFacet_xh
  23. #include <Facet.xh>
  24. #endif
  25.  
  26. //========================================================================================
  27. //    Runtime Informations
  28. //========================================================================================
  29.  
  30. #ifdef FW_BUILD_MAC    
  31. #pragma segment fwgraphx
  32. #endif
  33.  
  34. //========================================================================================
  35. //    Global Methods
  36. //========================================================================================
  37.  
  38. //----------------------------------------------------------------------------------------
  39. //    FW_PrivCreateFacetPartInfo
  40. //----------------------------------------------------------------------------------------
  41.  
  42. FW_SPrivFacetPartInfo* FW_PrivCreateFacetPartInfo(Environment* ev, ODFacet* facet)
  43. {
  44.     FW_SPrivFacetPartInfo* facetPartInfo     = new FW_SPrivFacetPartInfo;
  45.     facetPartInfo->fMagicNumber1             = (unsigned long)facet;
  46.     facetPartInfo->fMagicNumber2             = (unsigned long)facet->GetFrame(ev);
  47.     facetPartInfo->fDevice                     = FW_PrivGDev_CreateFromODCanvas(ev, facet->GetCanvas(ev));
  48.     facetPartInfo->fHighlight                 = facet->GetHighlight(ev);
  49.     facetPartInfo->fRefCon                     = 0;
  50.     
  51.     facet->SetPartInfo(ev, (ODInfoType)facetPartInfo);
  52.     
  53.     return facetPartInfo;
  54. }
  55.  
  56. //----------------------------------------------------------------------------------------
  57. //    FW_PrivDeleteFacetPartInfo
  58. //----------------------------------------------------------------------------------------
  59.  
  60. void FW_PrivDeleteFacetPartInfo(Environment* ev, ODFacet* facet)
  61. {
  62.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  63.     
  64.     if (partInfo != NULL)
  65.     {
  66.         FW_PrivGDev_Release(partInfo->fDevice);
  67.         delete partInfo;
  68.         
  69.         facet->SetPartInfo(ev, (ODInfoType)NULL);
  70.     }
  71. }
  72.  
  73. //----------------------------------------------------------------------------------------
  74. //    FW_PrivGetFacetPartInfo
  75. //----------------------------------------------------------------------------------------
  76.  
  77. FW_SPrivFacetPartInfo* FW_PrivGetFacetPartInfo(Environment* ev, ODFacet* facet)
  78. {
  79.     FW_SPrivFacetPartInfo* partInfo = (FW_SPrivFacetPartInfo*)facet->GetPartInfo(ev);
  80.     
  81.     // ----- If partInfo is NULL or doesn't have the right magic number, facet ------
  82.     // ----- was not one of our facet (This can appended in FW_CWindowContext) -----
  83.     if (partInfo == NULL || 
  84.         partInfo->fMagicNumber1 != (unsigned long)facet ||
  85.         partInfo->fMagicNumber2 != (unsigned long)facet->GetFrame(ev))
  86.         return NULL;
  87.     
  88.     return partInfo;
  89. }
  90.  
  91. //----------------------------------------------------------------------------------------
  92. //    FW_GetFacetGraphicDevice
  93. //----------------------------------------------------------------------------------------
  94.  
  95. FW_HGDevice FW_GetFacetGraphicDevice(Environment* ev, ODFacet* facet)
  96. {
  97.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  98.     return partInfo ? partInfo->fDevice : NULL;
  99. }
  100.  
  101. //----------------------------------------------------------------------------------------
  102. //    FW_GetFacetRefCon
  103. //----------------------------------------------------------------------------------------
  104.  
  105. unsigned long FW_GetFacetRefCon(Environment* ev, ODFacet* facet)
  106. {
  107.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  108.     return partInfo ? partInfo->fRefCon : 0;
  109. }
  110.  
  111. //----------------------------------------------------------------------------------------
  112. //    FW_SetFacetRefCon
  113. //----------------------------------------------------------------------------------------
  114.  
  115. void FW_SetFacetRefCon(Environment* ev, ODFacet* facet, unsigned long refCon)
  116. {
  117.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  118.     if (partInfo)
  119.         partInfo->fRefCon = refCon;
  120. #ifdef FW_DEBUG
  121.     else
  122.         FW_DEBUG_MESSAGE("Trying to set the Facet Part Info of a non-display facet");
  123. #endif
  124. }
  125.  
  126. //----------------------------------------------------------------------------------------
  127. //    FW_PrivGetFacetHighlight
  128. //----------------------------------------------------------------------------------------
  129.  
  130. ODHighlight FW_PrivGetFacetHighlight(Environment* ev, ODFacet* facet)
  131. {
  132.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  133.     if (partInfo)
  134.         return partInfo->fHighlight;
  135.     else
  136.     {
  137.         FW_DEBUG_MESSAGE("Trying to get the highlight of a non-display facet");
  138.         return kODNoHighlight;
  139.     }
  140. }
  141.  
  142. //----------------------------------------------------------------------------------------
  143. //    FW_PrivSetFacetHighlight
  144. //----------------------------------------------------------------------------------------
  145.  
  146. void FW_PrivSetFacetHighlight(Environment* ev, ODFacet* facet, ODHighlight highlight)
  147. {
  148.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  149.     if (partInfo)
  150.         partInfo->fHighlight = highlight;
  151. #ifdef FW_DEBUG
  152.     else
  153.         FW_DEBUG_MESSAGE("Trying to set the highlight of a non-display facet");
  154. #endif
  155. }
  156.  
  157.  
  158.