home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / opendc12.zip / od124os2.exe / od12osp1.exe / src / grafpart / iodgfigr.cpp < prev    next >
Text File  |  1997-04-02  |  24KB  |  564 lines

  1. // @(#) 1.7 com/src/samples/grafpart/iodgfigr.cpp, odgrafpart, od96os2, odos29712d 2/7/97 17:41:39 [3/21/97 17:47:48]
  2. /*====START_GENERATED_PROLOG======================================
  3.  */
  4. /*
  5.  *   COMPONENT_NAME: odgrafpart
  6.  *
  7.  *   CLASSES: ContentGrafPartFigr
  8.  *
  9.  *   ORIGINS: 27
  10.  *
  11.  *
  12.  *   (C) COPYRIGHT International Business Machines Corp. 1995,1996
  13.  *   All Rights Reserved
  14.  *   Licensed Materials - Property of IBM
  15.  *   US Government Users Restricted Rights - Use, duplication or
  16.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  17.  *
  18.  *   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  19.  *   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  20.  *   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  21.  *   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  22.  *   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  23.  *   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  24.  *   OR PERFORMANCE OF THIS SOFTWARE.
  25.  */
  26. /*====END_GENERATED_PROLOG========================================
  27.  */
  28.  
  29. // *********************************************************************
  30. //  File:      iodgfigr.cpp
  31. //  Contains:  Class implementation for a Figr Object in a 2D-Drawing Container Part
  32. // ************************************************************************
  33.  
  34. #define ContentGrafPartFigr_Class_Source
  35.  
  36. #ifndef SOM_Module_GrafFigr_Source
  37.     #define SOM_Module_GrafFigr_Source
  38. #endif  // SOM_Module_GrafFigr_Source
  39.  
  40. // GrafPart's includes
  41. #ifndef _IODGCOMM_CPP_
  42.    #include <iodgcomm.cpp>
  43. #endif   // _IODGCOMM_CPP_
  44.  
  45. // GrafPart's constants & defines
  46. #ifndef _GRAFPART_HPP_
  47.    #include <iodgraph.hpp>
  48. #endif   // _GRAFPART_HPP_
  49.  
  50. // support use of temporary objects (Initialize & Uninitialize)
  51. #ifndef _TEMPOBJ_
  52.     #include <TempObj.h>
  53. #endif // _TEMPOBJ_
  54.  
  55. // support StorageUnit function
  56. #ifndef _STORUTIL_
  57.     #include <StorUtil.h>
  58. #endif  // _STORUTIL_
  59.  
  60. // support math function (ContainsPoint)
  61. #ifndef __math_h
  62.     #include <math.h>
  63. #endif  // __math_h
  64.  
  65. // includes for native drawing functions
  66. #if defined(_PLATFORM_WIN32_)
  67.     #include <windows.h>
  68.     #include <winuser.h>
  69.     #include <wingdi.h>
  70. #elif defined(_PLATFORM_OS2_)
  71.     #include <ODos2.h>
  72. #endif // _PLATFORM_???_
  73.  
  74.  
  75. // local function support includes
  76. #ifndef SOM_GrafPart_xh
  77.     #include "iodgraph.xh"
  78. #endif // SOM_GrafPart_xh
  79.  
  80. #ifndef SOM_ContentGrafPartFigr_xih
  81.     #include "iodgfigr.xih"
  82. #endif // SOM_ContentGrafPartFigr_xih
  83.  
  84.  
  85. // *************************************************************************
  86. //
  87. //  Class implementation:
  88. //      ContentGrafPartFigr : ContentObject (from BaseContainer)
  89. //
  90. // *************************************************************************
  91.  
  92. // =========================================================================
  93. //
  94. //      Public Override methods: ContentGrafPartFigr
  95. //
  96. // =========================================================================
  97.  
  98. // -------------------------------------------------------------------------
  99. // ContentGrafPartFigr --> somInit
  100. //
  101. //     Initialization used at registration time
  102. //
  103. //     -> public override method
  104. //     -> calls parent first
  105. // -------------------------------------------------------------------------
  106. SOM_Scope void  SOMLINK ContentGrafPartFigrsomInit(ContentGrafPartFigr *somSelf )
  107. {
  108.     SQUAWK("> Invoked ContentGrafPartFigr::somInit()\n");
  109.  
  110.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  111.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrsomInit");
  112.  
  113.     // call parent method
  114.     ContentGrafPartFigr_parent_ContentObject_somInit(somSelf);
  115.  
  116.     // set the objtype
  117.     somSelf->_set_objType(somGetGlobalEnvironment(), COBJ_GRAFPART_FIGR);
  118.  
  119.     // set the initial values of the the points for a figr to the origin (0,0)
  120.     memset(&_fPt1, 0, sizeof(ODPoint) );            // set origin point to 0,0
  121.     _fColor = 0 ;                                   // default color - black
  122.  
  123.     SQUAWK("< Leaving ContentGrafPartFigr::somInit()\n");
  124.     return;
  125. }   // somInit()
  126.  
  127.  
  128. // -------------------------------------------------------------------------
  129. // ContentGrafPartFigr --> somUninit
  130. //
  131. //     Uninitialization used at registration time
  132. //
  133. //     -> public override method
  134. //     -> calls parent only
  135. // -------------------------------------------------------------------------
  136. SOM_Scope void  SOMLINK ContentGrafPartFigrsomUninit(ContentGrafPartFigr *somSelf)
  137. {
  138.     SQUAWK("> Invoked ContentGrafPartFigr::somUninit()\n");
  139.  
  140.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  141.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrsomUninit");
  142.  
  143.     ContentGrafPartFigr_parent_ContentObject_somUninit(somSelf);
  144.  
  145.     SQUAWK("< Leaving ContentGrafPartFigr::somUninit()\n");
  146.     return;
  147. }   // somUninit()
  148.  
  149.  
  150. // -------------------------------------------------------------------------
  151. // ContentGrafPartFigr --> MoveBy
  152. //
  153. //      Override ContentObject::MoveBy to update points
  154. //
  155. //      -> public override method
  156. //      -> does not call parent
  157. //      -> the 'offset' is a set of deltas from the origin of the
  158. //          figr's bounding rect, expressed as coordinates (not a point)
  159. // -------------------------------------------------------------------------
  160. SOM_Scope void  SOMLINK ContentGrafPartFigrMoveBy(  ContentGrafPartFigr*    somSelf,
  161.                                                     Environment*            ev,
  162.                                                     ODPoint*                offset )
  163. {
  164.     SQUAWK("> Invoked ContentGrafPartFigr::MoveBy()\n");
  165.     SQUAWK("\tContentGrafPartFigr::MoveBy(): received offset: %d, %d\n", ODFixedToInt(offset->x), ODFixedToInt(offset->y) );
  166.  
  167.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  168.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrMoveBy");
  169.  
  170.     // apply the offset to each of the coordinates
  171.     _fPt1.x += offset->x;
  172.     _fPt1.y += offset->y;
  173.  
  174.     SQUAWK("\tContentGrafPartFigr::MoveBy(): coordinates   after move: %d, %d; %d, %d\n", ODFixedToInt(_fPt1.x), ODFixedToInt(_fPt1.y) );
  175.  
  176.     SQUAWK("< Leaving ContentGrafPartFigr::MoveBy()\n");
  177.     return;
  178. }   // ContentGrafPartFigr::MoveBy()
  179.  
  180.  
  181. // -------------------------------------------------------------------------
  182. // ContentGrafPartFigr --> Resize
  183. //
  184. //      Override ContentObject::Resize to update points
  185. //
  186. //     -> public override method
  187. //     -> calls parent first
  188. // -------------------------------------------------------------------------
  189. SOM_Scope void  SOMLINK ContentGrafPartFigrResize(  ContentGrafPartFigr*    somSelf,
  190.                                                     Environment*            ev,
  191.                                                     ODPoint*                point,
  192.                                                     ODULong                 flags)
  193. {
  194.     SQUAWK("> Invoked ContentGrafPartFigr::Resize()\n");
  195.     SQUAWK("\tContentGrafPartFigr::Resize(): received endpoint: %d, %d\n", ODFixedToInt(point->x), ODFixedToInt(point->y) );
  196.     SQUAWK("\tContentGrafPartFigr::Resize():    received flags: %lX\n", flags);
  197.  
  198.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  199.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrResize");
  200.  
  201.     // call parent method first
  202.     ContentGrafPartFigr_parent_ContentObject_Resize(somSelf, ev, point, flags);
  203.  
  204.     // reset the point to new point
  205.     SQUAWK("\tContentGrafPartFigr::Resize(): coordinates before resize: %d, %d\n", ODFixedToInt(_fPt1.x), ODFixedToInt(_fPt1.y) );
  206.  
  207.     _fPt1.x = point->x;
  208.     _fPt1.y = point->y;
  209.  
  210.     SQUAWK("\tContentGrafPartFigr::Resize(): coordinates  after resize: %d, %d\n", ODFixedToInt(_fPt1.x), ODFixedToInt(_fPt1.y) );
  211.  
  212.     SQUAWK("< Leaving ContentGrafPartFigr::Resize()\n");
  213.     return;
  214. }   // ContentGrafPartFigr::Resize()
  215.  
  216.  
  217. // -------------------------------------------------------------------------
  218. // ContentGrafPartFigr --> WriteContents
  219. //
  220. //      Override ContentObject::WriteContents to write local data to a StorageUnit
  221. //
  222. //     -> public override method
  223. //     -> calls parent first
  224. // -------------------------------------------------------------------------
  225. SOM_Scope void  SOMLINK ContentGrafPartFigrWriteContents(   ContentGrafPartFigr*    somSelf,
  226.                                                             Environment*            ev,
  227.                                                             ODStorageUnit*          toSU,
  228.                                                             BCTransferKind          writeKind,
  229.                                                             BCCloneInfo*            cloneInfo )
  230. {
  231.     SQUAWK("> Invoked ContentGrafPartFigr::WriteContents()\n");
  232.  
  233.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  234.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrWriteContents");
  235.  
  236.     // call parent first
  237.     ContentGrafPartFigr_parent_ContentObject_WriteContents( somSelf,
  238.                                                             ev,
  239.                                                             toSU,
  240.                                                             writeKind,
  241.                                                             cloneInfo);
  242.  
  243.     // adjust point for containment
  244.     ODPoint fPt;                            // temporary buffer
  245.     if (cloneInfo->refPoint)                // if a reference point was by defined by BC parent
  246.     {
  247.         fPt.x = _fPt1.x - cloneInfo->refPoint->x;
  248.         fPt.y = _fPt1.y - cloneInfo->refPoint->y;
  249.     }   // if: refPoint defined
  250.     else
  251.     {
  252.         fPt.x = _fPt1.x;
  253.         fPt.y = _fPt1.y;
  254.     }   // else: refPoint not defined
  255.  
  256.     // Write the local data
  257.     StorageUnitSetValue(toSU, ev, sizeof(ODPoint), &fPt);       // write the origin point
  258.     StorageUnitSetValue(toSU, ev, sizeof(long   ), &_fColor);   // write the Color value
  259.  
  260.     SQUAWK("< Leaving ContentGrafPartFigr::WriteContents()\n");
  261.     return;
  262. }   // ContentGrafPartFigr::WriteContents()
  263.  
  264.  
  265. // -------------------------------------------------------------------------
  266. // ContentGrafPartFigr --> ReadContents
  267. //
  268. //      Override ContentObject::ReadContents to read local data from a StorageUnit
  269. //
  270. //     -> public override method
  271. //     -> calls parent first
  272. // -------------------------------------------------------------------------
  273. SOM_Scope void  SOMLINK ContentGrafPartFigrReadContents(    ContentGrafPartFigr*    somSelf,
  274.                                                             Environment*            ev,
  275.                                                             ODStorageUnit*          fromSU,
  276.                                                             BCTransferKind          readKind,
  277.                                                             BCCloneInfo*            cloneInfo )
  278. {
  279.     SQUAWK("> Invoked ContentGrafPartFigr::ReadContents()\n");
  280.  
  281.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  282.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrReadContents");
  283.  
  284.     // call parent first
  285.     ContentGrafPartFigr_parent_ContentObject_ReadContents(  somSelf,
  286.                                                             ev,
  287.                                                             fromSU,
  288.                                                             readKind,
  289.                                                             cloneInfo);
  290.     // Read the local data
  291.     StorageUnitGetValue(fromSU, ev, sizeof(ODPoint), &_fPt1);   // read the origin point
  292.     StorageUnitGetValue(fromSU, ev, sizeof(long   ), &_fColor); // read the Color Value
  293.     if (cloneInfo->refPoint)                                    // adjust point for containment
  294.     {
  295.         _fPt1.x += cloneInfo->refPoint->x;
  296.         _fPt1.y += cloneInfo->refPoint->y;
  297.     }   // if: refPoint defined
  298.  
  299.     SQUAWK("< Leaving ContentGrafPartFigr::ReadContents()\n");
  300.     return;
  301. }   // ContentGrafPartFigr::ReadContents()
  302.  
  303.  
  304. // -------------------------------------------------------------------------
  305. // ContentGrafPartFigr --> DeleteContents
  306. //
  307. //      Override ContentObject::DeleteContents to wipe out local data
  308. //
  309. //     -> public override method
  310. //     -> calls parent first
  311. // -------------------------------------------------------------------------
  312. SOM_Scope void  SOMLINK ContentGrafPartFigrDeleteContents(  ContentGrafPartFigr *somSelf,
  313.                                                             Environment         *ev,
  314.                                                             ODULong             type )
  315. {
  316.     SQUAWK("> Invoked ContentGrafPartFigr::DeleteContents()\n");
  317.  
  318.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  319.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrDeleteContents");
  320.  
  321.     // call parent first
  322.     ContentGrafPartFigr_parent_ContentObject_DeleteContents(somSelf,
  323.                                                             ev,
  324.                                                             type);
  325.  
  326.     // Wipe the local data
  327.     memset(&_fPt1, 0, sizeof(ODPoint));                          // wipe the origin point
  328.  
  329.     SQUAWK("< Leaving ContentGrafPartFigr::DeleteContents()\n");
  330.     return;
  331. }   // ContentGrafPartFigr::DeleteContents()
  332.  
  333.  
  334. // =========================================================================
  335. //
  336. //      Public local methods: ContentGrafPartFigr
  337. //
  338. // =========================================================================
  339.  
  340. // -------------------------------------------------------------------------
  341. //  ContentGrafPartFigr --> Initialize
  342. //
  343. //      Surrogate constructor for figr object, calls all necessary initializations
  344. //          because SOM generates the real constructor.
  345. //
  346. //      -> public local method
  347. // -------------------------------------------------------------------------
  348. SOM_Scope   GrafPart*
  349. SOMLINK     ContentGrafPartFigrInitialize(  ContentGrafPartFigr*    somSelf,
  350.                                             Environment*            ev,
  351.                                             ODFrame*                frame,
  352.                                             ODPoint*                point)
  353. {
  354.     SQUAWK("> Invoked ContentGrafPartFigr::Initialize()\n");
  355.  
  356.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  357.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrInitialize");
  358.  
  359.     TempODPart      tPart = frame->AcquirePart(ev);     // get a temporary wrapper object
  360.     GrafPart*       tGP;                                // declare a buffer for the calling GrafPart
  361.  
  362.     try
  363.     {
  364.         // get a reference to the embedding part from the frame passed in
  365.         if (tPart->IsRealPart(ev) )
  366.             tGP = (GrafPart *) &tPart;                  // unwrap the reference to a GrafPart
  367.         else
  368.         {
  369.             tGP = (GrafPart *) tPart->GetRealPart(ev);  // unwrap the reference to a GrafPart
  370.             tPart->ReleaseRealPart(ev);                 // release the reference to the real part
  371.         }
  372.     }   // try
  373.     catch(...)
  374.     {
  375.         SQUAWK("\tContentGrafPartFigr::Initialize(): CAUGHT EXCEPTION\n");
  376.     }
  377.  
  378.     // add myself to editor embed list
  379.     ALinkedList*    eList = tGP->GetEmbeddedObjects(ev);        // get the list of embedded objects
  380.     eList->AddLast(ev, somSelf);
  381.  
  382. /*
  383.     // add myself to editor select list, and be selected
  384.     ALinkedList*    sList = tGP->GetSelectedObjects(ev);        // get the list of selected objects
  385.     sList->AddLast(ev, somSelf);                    // add the figr object to the selected list
  386.     somSelf->_set_selectionState(ev, kODTrue);      // tell the figr it is selected
  387. */
  388.  
  389.     // set internal values
  390.     somSelf->_set_containingFrame(ev, frame);       // give the figr the current frame
  391.     somSelf->_set_fPt1(ev, point);                  // set the origin point
  392.  
  393.     SQUAWK("< Leaving ContentGrafPartFigr::Initialize()\n");
  394.     return(tGP);                                    // return the pointer to the calling GrafPart
  395. }   // ContentGrafPartFigr::Initialize()
  396.  
  397.  
  398. // -------------------------------------------------------------------------
  399. //  ContentGrafPartFigr --> Uninitialize
  400. //
  401. //      Surrogate destructor for figr object, calls all necessary uninitializations
  402. //          just to encapsulate them, and balance the Initialize() method.
  403. //
  404. //      -> public local method
  405. // -------------------------------------------------------------------------
  406. SOM_Scope   void
  407. SOMLINK     ContentGrafPartFigrUninitialize(    ContentGrafPartFigr*    somSelf,
  408.                                                 Environment*            ev)
  409. {
  410.     SQUAWK("> Invoked ContentGrafPartFigr::Uninitialize()\n");
  411.  
  412.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  413.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrUninitialize");
  414.  
  415.     TempODPart  tPart = somSelf->_get_containingFrame(ev)->AcquirePart(ev);     // get a temp wrapper
  416.     GrafPart*   tGP;
  417.  
  418.     try {
  419.  
  420.     // get a reference to the embedding part from the current containing frame
  421.     if (tPart->IsRealPart(ev) )
  422.         tGP = (GrafPart *) &tPart;                  // get the reference to a GrafPart
  423.     else
  424.     {
  425.         tGP = (GrafPart *) tPart->GetRealPart(ev);  // unwrap the reference to a GrafPart
  426.         tPart->ReleaseRealPart(ev);                 // release the reference to the real part
  427.     }
  428.  
  429.     }   // try
  430.     catch(...)
  431.     {
  432.         SQUAWK("\tContentGrafPartFigr::Uninitialize(): CAUGHT EXCEPTION\n");
  433.     }
  434.  
  435.  
  436.     // remove myself from editor's lists
  437.     ALinkedList*    eList = tGP->GetEmbeddedObjects(ev);    // get the list of embedded objects
  438.     ALinkedList*    sList = tGP->GetSelectedObjects(ev);    // get the list of selected objects
  439.     sList->Remove(ev, somSelf);                             // remove the figr from the selected list
  440.     eList->Remove(ev, somSelf);                             // remove the figr from the embedded list
  441.     somSelf->_set_selectionState(ev, kODFalse);             // tell the figr it is not selected
  442.  
  443.     SQUAWK("< Leaving ContentGrafPartFigr::Uninitialize()\n");
  444.     return;
  445. }   // ContentGrafPartFigr::Uninitialize()
  446.  
  447.  
  448. // -------------------------------------------------------------------------
  449. //  ContentGrafPartFigr --> Update
  450. //
  451. //      Apply new point during creation drag
  452. //
  453. //      -> public local method
  454. // -------------------------------------------------------------------------
  455. SOM_Scope   void
  456. SOMLINK     ContentGrafPartFigrUpdate(  ContentGrafPartFigr*    somSelf,
  457.                                         Environment*            ev,
  458.                                         ODPoint*                point)
  459. {
  460.     SQUAWK("> Invoked ContentGrafPartFigr::Update()\n");
  461.  
  462.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  463.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrUpdate");
  464.  
  465.     // reset the origin to the passed point
  466.     somSelf->_set_fPt1(ev, point);                  // set the origin point
  467.  
  468.     SQUAWK("< Leaving ContentGrafPartFigr::Update()\n");
  469.     return;
  470. }   // ContentGrafPartFigr::Update()
  471.  
  472.  
  473. // -------------------------------------------------------------------------
  474. //  ContentGrafPartFigr --> AdjustBoundingRect
  475. //
  476. //      Adjust a figr's bounding rect to fit it's endpoints
  477. //
  478. //      -> public local method
  479. // -------------------------------------------------------------------------
  480. SOM_Scope   void    SOMLINK ContentGrafPartFigrAdjustBoundingRect(  ContentGrafPartFigr*    somSelf,
  481.                                                                     Environment*            ev )
  482. {
  483.     SQUAWK("> Invoked ContentGrafPartFigr::AdjustBoundingRect()\n");
  484.  
  485.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  486.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrAdjustBoundingRect");
  487.  
  488.     // reset the bounding box from the new points, keeping orientation
  489.     ODRect bbox;                                    // declare a buffer for bounding rectangle
  490.  
  491.     // set the buffer points to the new extents
  492.     bbox.left   = _fPt1.x;
  493.     bbox.top    = _fPt1.y;
  494.     bbox.right  = _fPt1.x;
  495.     bbox.bottom = _fPt1.y;
  496.  
  497.     somSelf->_set_boundingRect(ev, &bbox);          // set the bounding rectangle from the buffer
  498.  
  499.     SQUAWK("< Leaving ContentGrafPartFigr::AdjustBoundingRect()\n");
  500.     return;
  501. }   // ContentGrafPartFigr::AdjustBoundingRect()
  502.  
  503.  
  504. // -------------------------------------------------------------------------
  505. //  ContentGrafPartFigr --> Draw
  506. //
  507. //      Render a figure on the screen
  508. //
  509. //      -> public local method
  510. // -------------------------------------------------------------------------
  511. SOM_Scope   ODBoolean   SOMLINK ContentGrafPartFigrDraw(ContentGrafPartFigr*    somSelf,
  512.                                                         Environment*            ev,
  513.                                                         HDraw                   hDraw )
  514. {
  515.     SQUAWK("> Invoked ContentGrafPartFigr::Draw()\n");
  516.  
  517.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  518.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrDraw");
  519.  
  520.     // "virtual" method: no implementation
  521.  
  522.     SQUAWK("< Leaving ContentGrafPartFigr::Draw()\n");
  523.     return(kODFalse);
  524. }   // ContentGrafPartFigr::Draw()
  525.  
  526.  
  527. // -------------------------------------------------------------------------
  528. //  ContentGrafPartFigr --> ContainsPoint
  529. //
  530. //      Determines whether a given point is on or near a figure
  531. //
  532. //      -> public local method
  533. // -------------------------------------------------------------------------
  534. SOM_Scope   ODBoolean   SOMLINK ContentGrafPartFigrContainsPoint(   ContentGrafPartFigr*    somSelf,
  535.                                                                     Environment*            ev,
  536.                                                                     ODPoint*                point )
  537. {
  538.     SQUAWK("> Invoked ContentGrafPartFigr::ContainsPoint()\n");
  539.  
  540.     ContentGrafPartFigrData *somThis = ContentGrafPartFigrGetData(somSelf);
  541.     ContentGrafPartFigrMethodDebug("ContentGrafPartFigr","ContentGrafPartFigrContainsPoint");
  542.  
  543.     SQUAWK("\tContentGrafPartFigr::ContainsPoint(): received Point: %d,%d\n", ODFixedToInt(point->x), ODFixedToInt(point->y));
  544.     SQUAWK("\tContentGrafPartFigr::ContainsPoint(): figr origin points: %d, %d\n", ODFixedToInt(_fPt1.x), ODFixedToInt(_fPt1.y) );
  545.  
  546.     // simplest case: are origin and passed point coincident?
  547.     if ( (_fPt1.x==point->x) &&
  548.          (_fPt1.y==point->y) )
  549.     {
  550.         SQUAWK("< Leaving ContentGrafPartFigr::ContainsPoint(), returning True\n");
  551.         return(kODTrue);
  552.     }   // if: points
  553.     else                                                // determine distance of point from figr
  554.     {
  555.         SQUAWK("< Leaving ContentGrafPartFigr::ContainsPoint(), returning False\n");
  556.         return(kODFalse);
  557.     }   // else: points
  558. }   // ContentGrafPartFigr::ContainsPoint()
  559.  
  560.  
  561. // =========================================================================
  562. // End of file: iodgfigr.cpp
  563. // =========================================================================
  564.