home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / opendc12.zip / od124os2.exe / od12osp1.exe / src / dynamicp / ioddynam.cpp < prev    next >
Text File  |  1997-04-02  |  48KB  |  1,423 lines

  1. //====START_GENERATED_PROLOG======================================
  2. //
  3. //
  4. //   COMPONENT_NAME: oddynamicpart
  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.  
  28. /*
  29.  *  This file was generated by the SOM Compiler.
  30.  *  Generated using:
  31.  *     SOM incremental update: 2.24
  32.  */
  33.  
  34.  
  35. // @(#) 1.19 com/src/samples/dynamicp/ioddynam.cpp, oddynamicpart, od96os2, odos29712d 2/18/97 13:54:26 [3/21/97 17:45:40]
  36.  
  37. //
  38. //  File:      ioddynam.cpp
  39. //  Contains:  Demonstration of the use of the internal transform.
  40. //  $Source:   com/src/samples/dynamic/ioddynam.cpp $
  41. //  $Revision: 1.0 $
  42. //
  43. // ************************************************************************
  44.  
  45.  
  46.  
  47. // ---- Dynamic Part ------------------------------------------------------
  48. //
  49. //      The embeddable Dynamic Part demonstrates the use of the OpenDoc
  50. //      internal transformation matrix to affect rotation, horizontal shear
  51. //      and vertical shear in a part.  It also demonstrates the
  52. //      cross-platform development capabilities of OpenDoc when combined
  53. //      with the IBM OpenClass libraries.
  54. //
  55. //      This code requires the IBM VisualAge C++ compiler with the
  56. //      OpenClas libraries.
  57. //
  58. //
  59.  
  60. /*
  61.  *  This file was generated by the SOM Compiler and Emitter Framework.
  62.  *  Generated using:
  63.  *      SOM Emitter emitxtm: 2.43
  64.  */
  65.  
  66. #ifndef SOM_Module_dynamicp_Source
  67. #define SOM_Module_dynamicp_Source
  68. #endif
  69.  
  70. #define DynamicPart_Class_Source
  71. #define M_DynamicPart_Class_Source
  72.  
  73. #include "ioddynam.xih"
  74. #include "bregist/rtypestr.h"
  75. #include "resource.h"
  76. #include "ODResrc.h"
  77.  
  78. #include <math.h>
  79.  
  80. // OpenDoc includes
  81. #include <arbitrat.xh>
  82. #include <canvas.xh>
  83. #include <clipbd.xh>
  84. #include <CmdDefs.xh>
  85. #include <draft.xh>
  86. #include <facet.xh>
  87. #include <FacetItr.xh>
  88. #include <foci.xh>
  89. #include <frame.xh>
  90. #include <FrFaItr.xh>
  91. #include <MenuBar.xh>
  92. #include <ODSessn.xh>
  93. #include <PlatCanv.xh>
  94. #include <popup.xh>
  95. #include <settings.xh>
  96. #include <shape.xh>
  97. #include <StdExts.xh>
  98. #include <StdDefs.xh>
  99. #include <StdProps.xh>
  100. #include <StdTypes.xh>
  101. #include <StorageU.xh>
  102. #include <translt.xh>
  103. #include <trnsform.xh>
  104. #include <window.xh>
  105. #include <WinIter.xh>
  106. #include <WinStat.xh>
  107.  
  108. #include <ioddyext.xh>          // for ScriptableDynamicPartScrExt
  109.  
  110. // OpenDoc sample includes
  111. #include <barray.h>
  112. #ifdef _PLATFORM_OS2_
  113. #include <focuslib.h>
  114. #elif defined(_PLATFORM_WIN32_)
  115. #include "myfocus.h"
  116. #endif
  117. #include <odmath.h>
  118. #include <iodlink.xh>
  119. #include <stdtypio.h>
  120. #include <storutil.h>
  121. #include <winutils.h>
  122. #include <oddsemgr.xh>
  123. #include <oddsconn.h>
  124. #include <somtc.h>
  125. #include <ODExcept.h>
  126.  
  127. // For menubar id
  128. #ifdef _PLATFORM_AIX_
  129. #include <odres.h>
  130. #else
  131. #include <ODRes.h>
  132. #endif
  133.  
  134. #ifdef _PLATFORM_OS2_
  135. #include <ODos2.h>
  136. #elif defined(_PLATFORM_WIN32_)
  137.   #include <windows.h>
  138.   // override these OS/2 calls and macros
  139.   // with their windows equivalents
  140.   #define WinCreateMenu(parent, mtmpl) \
  141.             CreateMenu()
  142.   #define SHORT1FROMMP(mp) LOWORD(mp)
  143.   #define HPS HDC
  144. #endif
  145.  
  146. // OpenClass includes
  147. #include <iexcbase.hpp>
  148. #include <igrafctx.hpp>
  149. #include <igrect.hpp>
  150. #include <igregion.hpp>
  151. #include <igstring.hpp>
  152. #include <imsgbox.hpp>
  153. #include <iwindow.hpp>
  154.  
  155. /*
  156. *******************************************************************
  157. ** Name: static void Log(char *x, char *y)
  158. **
  159. ** And redefine of: DynamicPartMethodDebug
  160. **                  M_DynamicPartMethodDebug
  161. **
  162. ** Description:  This function will output a message to the
  163. **               utility MSGDISP.EXE (Windows) or PMprintf (OS/2)
  164. **               for every call to the MethodDebug macros.  This
  165. **               allows the developer to see the method calls
  166. **               being made to this part in real-time.
  167. **
  168. ** Parameters:   char *x;   //description of class
  169. **               char *y;  //description of method
  170. **
  171. ** Returns:      none
  172. **
  173. ** Caution:      This function only exists if DEBUG is defined.
  174. **
  175. *******************************************************************
  176. */
  177.  
  178. // If debug is defined
  179.  
  180. #ifdef DEBUG
  181.    #undef DynamicPartMethodDebug
  182.    #undef M_DynamicPartMethodDebug
  183.  
  184.    #define DynamicPartMethodDebug(x,y) Log(x,y)
  185.    #define M_DynamicPartMethodDebug(x,y) Log(x,y)
  186. #endif // DEBUG
  187.  
  188. #ifdef _PLATFORM_WIN32_
  189.    #include <qprintf.h>  // output to MSGDISP.EXE
  190. #elif defined(_PLATFORM_OS2_)
  191.    #include <stdio.h>
  192. #endif
  193.  
  194. static void Log (char *x, char *y)
  195. {
  196. #ifdef DEBUG
  197.    #ifdef _PLATFORM_WIN32_
  198.       qprintf ("%s:%s\n", x, y);
  199.    #elif defined(_PLATFORM_OS2_)
  200.       printf ("%s:%s\n", x, y);
  201.    #endif
  202. #else
  203.     static FILE *fp = fopen ("Dynamicp.log", "w");
  204.     if (fp != NULL)
  205.      {
  206.         fprintf (fp, "%s:%s\n", x, y);
  207.         fflush (fp);
  208.  
  209.         if (strcmp (y, "somUninit") == 0)
  210.          {
  211.             fclose (fp);
  212.             fp = NULL;
  213.          }
  214.      }
  215. #endif
  216. }
  217.  
  218. // include constant definitions for calculating rotation transforms
  219. #include "bxform/circonst.h"
  220. const int drawXdimension = 500;
  221. const int drawYdimension = 500;
  222.  
  223. #include "bdynamic/timerfns.h"
  224.  
  225. /*
  226. *******************************************************************
  227. ** Name: void displayException
  228. **
  229. ** Description:  This is a non-SOM function to trap exceptions
  230. **               in OPENCLASS operations and display the exception
  231. **               in a message box.
  232. **
  233. ** Parameters:   the OpenClass exception object
  234. **
  235. *******************************************************************
  236. */
  237.  
  238. void displayException(IException &exc)
  239. {
  240.   const IExceptionLocation        *excLoc;
  241.   IString                         fnString;
  242.   IString                         msgTitle("IException caught in " +IString(__FILE__));
  243.   ULONG                           maxLoc = exc.locationCount();
  244.  
  245.   //create string containing info from each of the function locations
  246.   for (ULONG loop = 0;loop < maxLoc;++loop)
  247.   {
  248.     excLoc = exc.locationAtIndex(loop);
  249.     fnString += "\n (" + IString(loop) + ") " + IString(excLoc->functionName()) + " LINE #" + IString(excLoc->lineNumber());
  250.   }
  251.  
  252.   //create message string from exception text and function locations
  253.   IString msgString(IString(exc.text()) + fnString);
  254.  
  255.   //display message box containing exception string
  256.   if (exc.isRecoverable()) {
  257.     Log(msgTitle, msgString);
  258.   } else {
  259.     IMessageBox aMessageBox(IWindow::desktopWindow());
  260.     aMessageBox.setTitle(msgTitle);
  261.     aMessageBox.show(msgString,IMessageBox::okButton | IMessageBox::errorIcon | IMessageBox::moveable);
  262.   } /* endif */
  263. }
  264. #define reportIException(exc) \
  265.      exc.addLocation(IEXCEPTION_LOCATION()),\
  266.      exc.logExceptionData(),\
  267.      displayException(exc)
  268. #define reportAnyException(ev) \
  269.      IException exc("Anonymous exception caught ", ev->_major, IException::recoverable);\
  270.      if (ev->_major != NO_EXCEPTION) {exc.appendText(ev->exception._exception_name); somExceptionFree(ev);}\
  271.      exc.addLocation(IEXCEPTION_LOCATION()),\
  272.      exc.logExceptionData(),\
  273.      displayException(exc)
  274.  
  275. //=====================================================================================
  276. // Private Methods
  277. //=====================================================================================
  278.  
  279. /*
  280. *******************************************************************
  281. ** Name: void _set_xRotAngle
  282. **
  283. ** Description:  Update the current rotation angle and modify
  284. **               the internal transform to reflect new angle.
  285. **
  286. ** Parameters:   xRotAngle - new angle of rotation .
  287. **
  288. *******************************************************************
  289. */
  290. /*
  291.  * current angle of rotation
  292.  */
  293.  
  294. /*
  295.  *Method from the IDL attribute statement:
  296.  *"attribute ODFloat xRotAngle"
  297.  */
  298.  
  299. SOM_Scope void  SOMLINK DynamicPart___set_xRotAngle(DynamicPart *somSelf,
  300.                                                      Environment *ev,
  301.                                                     ODFloat xRotAngle)
  302. {
  303.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  304.     DynamicPartMethodDebug("DynamicPart","DynamicPart___set_xRotAngle");
  305.  
  306.     #include "bxform/xrotangl.c"
  307. }
  308.  
  309. /*
  310. *******************************************************************
  311. ** Name: void _set_hShearAngle
  312. **
  313. ** Description:  Update the current horizontal shear angle and
  314. **               modify the internal transform to reflect new angle.
  315. **
  316. ** Parameters:   hShearAngle - new horizontal shear angle.
  317. **
  318. *******************************************************************
  319. */
  320. /*
  321.  *Method from the IDL attribute statement:
  322.  *"attribute ODFloat hShearAngle"
  323.  */
  324.  
  325. SOM_Scope void  SOMLINK DynamicPart___set_hShearAngle(DynamicPart *somSelf,
  326.                                                        Environment *ev,
  327.                                                       ODFloat hShearAngle)
  328. {
  329.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  330.     DynamicPartMethodDebug("DynamicPart","DynamicPart___set_hShearAngle");
  331.  
  332.     #include "bxform/hshrangl.c"
  333. }
  334.  
  335. /*
  336. *******************************************************************
  337. ** Name: void _set_vShearAngle
  338. **
  339. ** Description:  Update the current vertical shear angle and
  340. **               modify the internal transform to reflect new angle.
  341. **
  342. ** Parameters:   vShearAngle - new vertical shear angle.
  343. **
  344. *******************************************************************
  345. */
  346. /*
  347.  *Method from the IDL attribute statement:
  348.  *"attribute ODFloat vShearAngle"
  349.  */
  350.  
  351. SOM_Scope void  SOMLINK DynamicPart___set_vShearAngle(DynamicPart *somSelf,
  352.                                                        Environment *ev,
  353.                                                       ODFloat vShearAngle)
  354. {
  355.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  356.     DynamicPartMethodDebug("DynamicPart","DynamicPart___set_vShearAngle");
  357.  
  358.     #include "bxform/vshrangl.c"
  359. }
  360.  
  361. /*
  362.  * are we scrolling?
  363.  */
  364.  
  365. /*
  366.  *Method from the IDL attribute statement:
  367.  *"attribute ODBoolean scrolling"
  368.  */
  369.  
  370. SOM_Scope void  SOMLINK DynamicPart___set_scrolling(DynamicPart *somSelf,
  371.                                                      Environment *ev,
  372.                                                     ODBoolean scrolling)
  373. {
  374.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  375.     DynamicPartMethodDebug("DynamicPart","DynamicPart___set_scrolling");
  376.  
  377.     #include "bxform/setscrol.c"
  378. }
  379.  
  380. /*
  381. *******************************************************************
  382. ** Name: void _set_xRotateActive
  383. **
  384. ** Description:  Update the flag that determines whether the
  385. **               part will rotate.
  386. **
  387. ** Parameters:   xRotateActive - should part rotate?
  388. **
  389. *******************************************************************
  390. */
  391. /*
  392.  * are we rotating?
  393.  */
  394.  
  395. /*
  396.  *Method from the IDL attribute statement:
  397.  *"attribute ODBoolean xRotateActive"
  398.  */
  399.  
  400. SOM_Scope void  SOMLINK DynamicPart___set_xRotateActive(DynamicPart *somSelf,
  401.                                                          Environment *ev,
  402.                                                         ODBoolean xRotateActive)
  403. {
  404.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  405.     DynamicPartMethodDebug("DynamicPart","DynamicPart___set_xRotateActive");
  406.  
  407.     #include "bxform/rotactiv.c"
  408. }
  409.  
  410. /*
  411. *******************************************************************
  412. ** Name: void _set_hShearActive
  413. **
  414. ** Description:  Update the flag that determines whether the
  415. **               part will shear horizontally.
  416. **
  417. ** Parameters:   hShearActive - should part shear?
  418. **
  419. *******************************************************************
  420. */
  421. /*
  422.  * are we changing horiz shear?
  423.  */
  424.  
  425. /*
  426.  *Method from the IDL attribute statement:
  427.  *"attribute ODBoolean hShearActive"
  428.  */
  429.  
  430. SOM_Scope void  SOMLINK DynamicPart___set_hShearActive(DynamicPart *somSelf,
  431.                                                         Environment *ev,
  432.                                                        ODBoolean hShearActive)
  433. {
  434.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  435.     DynamicPartMethodDebug("DynamicPart","DynamicPart___set_hShearActive");
  436.  
  437.     #include "bxform/hshractv.c"
  438. }
  439.  
  440. /*
  441. *******************************************************************
  442. ** Name: void _set_vShearActive
  443. **
  444. ** Description:  Update the flag that determines whether the
  445. **               part will shear vertically.
  446. **
  447. ** Parameters:   vShearActive - should part shear?
  448. **
  449. *******************************************************************
  450. */
  451. /*
  452.  * are we changing vert shear?
  453.  */
  454.  
  455. /*
  456.  *Method from the IDL attribute statement:
  457.  *"attribute ODBoolean vShearActive"
  458.  */
  459.  
  460. SOM_Scope void  SOMLINK DynamicPart___set_vShearActive(DynamicPart *somSelf,
  461.                                                         Environment *ev,
  462.                                                        ODBoolean vShearActive)
  463. {
  464.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  465.     DynamicPartMethodDebug("DynamicPart","DynamicPart___set_vShearActive");
  466.  
  467.     #include "bxform/vshractv.c"
  468. }
  469.  
  470. /*
  471. *******************************************************************
  472. ** Name: void CommonInit
  473. **
  474. ** Description:  Common initialization code common to InitPart and
  475. **               InitPartFromStorage
  476. **
  477. *******************************************************************
  478. */
  479. SOM_Scope void  SOMLINK DynamicPart__CommonInit(DynamicPart *somSelf,
  480.                                                  Environment *ev,
  481.                                                 ODPart* partWrapper)
  482. {
  483.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  484.     DynamicPartMethodDebug("DynamicPart","DynamicPart__CommonInit");
  485.  
  486.     #include "binit/icominit.c"
  487.     #include "bdraw/dcominit.c"
  488.     #include "bxform/xcominit.c"
  489.     #include "bdynamic/ycominit.c"
  490.     #include "bscript/scominit.c"
  491.  
  492.     DynamicPart_parent_SimplePart_CommonInit(somSelf, ev,partWrapper);
  493. }
  494.  
  495. /*
  496. *******************************************************************
  497. ** Name: void ScrollTicker
  498. **
  499. ** Description:  Scrolls the message across the bottom of the
  500. **               part in response to timer message.
  501. **
  502. ** Parameters:   facet - the facet for which the message should
  503. **                       scroll.
  504. **
  505. *******************************************************************
  506. */
  507. SOM_Scope void  SOMLINK DynamicPart__ScrollTicker(DynamicPart *somSelf,
  508.                                                    Environment *ev)
  509. {
  510.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  511. //  DynamicPartMethodDebug("DynamicPart","DynamicPart__ScrollTicker");
  512.  
  513.     #include "bdraw/scroll.c"
  514.  
  515. }
  516.  
  517. /*
  518. *******************************************************************
  519. ** Name: void RotateContent
  520. **
  521. ** Description:  Modified the internal transform for all display
  522. **               frames to affect rotation
  523. **               and shearing within the part.
  524. **
  525. ** Parameters:   byAngle - the (additional) angle by which to
  526. **                         rotate the contents in all frames
  527. **
  528. *******************************************************************
  529. */
  530. SOM_Scope void  SOMLINK DynamicPart__RotateContent(DynamicPart *somSelf,
  531.                                                     Environment *ev,
  532.                                                    ODFloat byAngle)
  533. {
  534.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  535.     DynamicPartMethodDebug("DynamicPart","DynamicPart__RotateContent");
  536.  
  537.     #include "bxform/hrotate.c"
  538.     #include "bscript/notfyrot.c"
  539. }
  540.  
  541. /*
  542. *******************************************************************
  543. ** Name: void SetInternalXform
  544. **
  545. ** Description:  Modified the internal transform to affect rotation
  546. **               and shearing within the part
  547. **
  548. ** Parameters:   facet - the facet which should be transformed
  549. **
  550. *******************************************************************
  551. */
  552. SOM_Scope void  SOMLINK DynamicPart__SetInternalXform(DynamicPart *somSelf,
  553.                                                        Environment *ev,
  554.                                                       ODFrame* frame)
  555. {
  556.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  557.     DynamicPartMethodDebug("DynamicPart","DynamicPart__SetInternalXform");
  558.  
  559.     #include "bxform/setxform.c"
  560.  
  561. }
  562.  
  563. /*
  564. *******************************************************************
  565. ** Name: void Reset
  566. **
  567. ** Description:  Reset all transformations to default value
  568. **               and stop rotation timer.
  569. **
  570. *******************************************************************
  571. */
  572. SOM_Scope void  SOMLINK DynamicPart__Reset(DynamicPart *somSelf,
  573.                                             Environment *ev)
  574. {
  575.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  576.     DynamicPartMethodDebug("DynamicPart","DynamicPart__Reset");
  577.  
  578.     #include "bxform/xreset.c"
  579. }
  580.  
  581. /*
  582. *******************************************************************
  583. ** Name: void CloneContents
  584. **
  585. ** Description:  Write the part's data into the given storage unit.
  586. **               Called by Externalize and CloneInto.
  587. **
  588. ** Parameters:   toSU - storage unit to write to.
  589. **
  590. *******************************************************************
  591. */
  592. SOM_Scope void  SOMLINK DynamicPart__CloneContents(DynamicPart *somSelf,
  593.                                                     Environment *ev,
  594.                                                    ODStorageUnit* toSU)
  595. {
  596.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  597.     DynamicPartMethodDebug("DynamicPart","DynamicPart__CloneContents");
  598.  
  599.     #include "binit/iexternz.c"
  600. }
  601.  
  602. /*
  603. *******************************************************************
  604. ** Name: ODFloat UpdateTransformAngles
  605. **
  606. ** Description:  Updates _xRotAngle, _hShearAngle, and vShearAngle
  607. **               as appropriate by angleDelta radians.
  608. **
  609. ** Parameters:   angleDelta - the amount by which to update the
  610. **                            rotation angle.
  611. **
  612. *******************************************************************
  613. */
  614. SOM_Scope void  SOMLINK DynamicPart__UpdateTransformAngles(DynamicPart *somSelf,
  615.                                                             Environment *ev,
  616.                                                            ODFloat angleDelta)
  617. {
  618.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  619.     DynamicPartMethodDebug("DynamicPart","DynamicPart__UpdateTransformAngles");
  620.  
  621.     #include "bxform/updxangl.c"
  622. }
  623.  
  624. /*
  625. *******************************************************************
  626. ** Name: void CalcNewShape
  627. **
  628. ** Description:  Recalculate the active shape and used shape
  629. **               to match the new internal transform.
  630. **
  631. ** Parameters:   The facet, frame, and canvas for which
  632. **               the active and used shapes must be computed.
  633. **
  634. *******************************************************************
  635. */
  636. SOM_Scope void  SOMLINK DynamicPart__CalcNewShape(DynamicPart *somSelf,
  637.                                                    Environment *ev,
  638.                                                   ODFrame* frame)
  639. {
  640.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  641.     DynamicPartMethodDebug("DynamicPart","DynamicPart__CalcNewShape");
  642.  
  643.     #include "bxform/xchgshap.c"
  644. }
  645.  
  646. /*
  647. *******************************************************************
  648. ** Name: void CalcRotationFactors
  649. **
  650. ** Description:  Updates _xRotAngle, _hShearAngle, and vShearAngle
  651. **               as appropriate by angleDelta radians.
  652. **
  653. ** returns       sin and cos of rotation angle,
  654. **               tangent of horizontal and vertical shear angles.
  655. **
  656. *******************************************************************
  657. */
  658. SOM_Scope void  SOMLINK DynamicPart__CalcRotationFactors(DynamicPart *somSelf,
  659.                                                           Environment *ev,
  660.                                                          ODFloat* rotSin,
  661.                                                          ODFloat* rotCos,
  662.                                                          ODFloat* hshTan,
  663.                                                          ODFloat* vshTan)
  664. {
  665.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  666.     DynamicPartMethodDebug("DynamicPart","DynamicPart__CalcRotationFactors");
  667.  
  668.     #include "bxform/calcrotf.c"
  669. }
  670.  
  671. /*
  672. *******************************************************************
  673. ** Name: void AdjustSize
  674. **
  675. ** Description:  Frame negotiation
  676. **
  677. ** Parameters:   The frame and facet whose size is being
  678. **               updated.
  679. **
  680. *******************************************************************
  681. */
  682. SOM_Scope void  SOMLINK DynamicPart__AdjustSize(DynamicPart *somSelf,
  683.                                                  Environment *ev,
  684.                                                 ODFrame* frame,
  685.                                                 ODFacet* facet)
  686. {
  687.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  688.     DynamicPartMethodDebug("DynamicPart","DynamicPart__AdjustSize");
  689.  
  690.     #include "bimaglay/dchgsize.c"
  691. }
  692.  
  693. //=====================================================================================
  694. // end Private Methods
  695. //=====================================================================================
  696.  
  697.  
  698.  
  699.  
  700. //=====================================================================================
  701. // Override of ODPart Methods
  702. //=====================================================================================
  703.  
  704. /*
  705. *******************************************************************
  706. ** Name: void InstallMenus
  707. **
  708. ** Description:  Override method to Install Menus
  709. **
  710. *******************************************************************
  711. */
  712. SOM_Scope void  SOMLINK DynamicPart__InstallMenus(DynamicPart *somSelf,
  713.                                                    Environment *ev)
  714. {
  715.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  716.     DynamicPartMethodDebug("DynamicPart","DynamicPart__InstallMenus");
  717.  
  718.     #include "bmenu/instlmnu.c"
  719.  
  720. }
  721.  
  722. /*
  723. *******************************************************************
  724. ** Name: void AdjustMenus
  725. **
  726. ** Description:  override method to update menus before displaying
  727. **               them.
  728. **
  729. *******************************************************************
  730. */
  731. SOM_Scope void  SOMLINK DynamicPart__AdjustMenus(DynamicPart *somSelf,
  732.                                                   Environment *ev,
  733.                                                  ODFrame* frame)
  734. {
  735.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  736.     DynamicPartMethodDebug("DynamicPart","DynamicPart__AdjustMenus");
  737.  
  738.     #include "bmenu/madjmenu.c"
  739.     #include "bclipbrd/cladjmnu.c"
  740. }
  741.  
  742. /*
  743. *******************************************************************
  744. ** Name: ODBoolean HandleMenuEvent
  745. **
  746. ** Description:  override (SimplePart) of method to handle events
  747. **               from menu commands.
  748. **
  749. ** Returns:      kODTRUE if the event was handled, otherwise kODFALSE.
  750. **
  751. *******************************************************************
  752. */
  753. SOM_Scope ODBoolean  SOMLINK DynamicPart__HandleMenuEvent(DynamicPart *somSelf,
  754.                                                            Environment *ev,
  755.                                                           ODFrame* FocusFrame,
  756.                                                           ODEventData* event)
  757. {
  758.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  759.     DynamicPartMethodDebug("DynamicPart","DynamicPart__HandleMenuEvent");
  760.  
  761.     ODBoolean handled = kODFalse;
  762.  
  763.     // Check for Dynamic Transform menu events (Rotate, VerticalShear, HorizontalShear)
  764.     #include "bmenu/mnuevt.c"
  765.  
  766.     // If it wasn't a transform event, check for clipboard events.
  767.     if (!handled) {
  768.     #include "bclipbrd/clpmnuev.c"
  769.     } /* endif */
  770.  
  771.     // We don't handle this menu event - send the event to our parent.
  772.     if (!handled) {
  773.        handled=DynamicPart_parent_SimplePart_HandleMenuEvent(somSelf,
  774.                                                          ev,
  775.                                                          FocusFrame,
  776.                                                          event);
  777.     } /* endif */
  778.  
  779.     return handled;
  780.  
  781. }
  782.  
  783. /*
  784. *******************************************************************
  785. ** Name: void CloneInto
  786. **
  787. ** Description:  override method to allow the part to clone
  788. **               itself into a specified storage unit.
  789. **
  790. *******************************************************************
  791. */
  792. SOM_Scope void  SOMLINK DynamicPart__CloneInto(DynamicPart *somSelf,
  793.                                                 Environment *ev,
  794.                                                ODDraftKey key,
  795.                                                ODStorageUnit* toSU,
  796.                                                ODFrame* scope)
  797. {
  798.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  799.     DynamicPartMethodDebug("DynamicPart","DynamicPart__CloneInto");
  800.  
  801.     somSelf->CloneContents(ev, toSU);
  802.     DynamicPart_parent_SimplePart_CloneInto(somSelf, ev, key,
  803.                                             toSU, scope);
  804. }
  805.  
  806. /*
  807. *******************************************************************
  808. ** Name: void ContainingPartPropertiesUpdated
  809. **
  810. ** Description:  Notification when one of the containing part's
  811. **               properties changes.
  812. **
  813. *******************************************************************
  814. */
  815. SOM_Scope void  SOMLINK DynamicPart__ContainingPartPropertiesUpdated(DynamicPart *somSelf,
  816.                                                                       Environment *ev,
  817.                                                                      ODFrame* frame,
  818.                                                                      ODStorageUnit* propertyUnit)
  819. {
  820.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  821.     DynamicPartMethodDebug("DynamicPart","DynamicPart__ContainingPartPropertiesUpdated");
  822.  
  823.     #include "bimaglay/cpropupd.c"
  824.     DynamicPart_parent_SimplePart_ContainingPartPropertiesUpdated(somSelf,
  825.                                                                   ev,
  826.                                                                   frame,
  827.                                                                   propertyUnit);
  828. }
  829.  
  830. /*
  831. *******************************************************************
  832. ** Name: void Draw
  833. **
  834. ** Description:  override method to draw the part's content.
  835. **
  836. *******************************************************************
  837. */
  838. SOM_Scope void  SOMLINK DynamicPart__Draw(DynamicPart *somSelf,
  839.                                            Environment *ev, ODFacet* facet,
  840.                                           ODShape* invalidShape)
  841. {
  842.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  843.     DynamicPartMethodDebug("DynamicPart","DynamicPart__Draw");
  844.  
  845.     #include "bdraw/draw.c"
  846. }
  847.  
  848. /*
  849. *******************************************************************
  850. ** Name: void Externalize
  851. **
  852. ** Description:  override method to allow the part to save its
  853. **               intrinsic content to its storage unit.
  854. **
  855. *******************************************************************
  856. */
  857. SOM_Scope void  SOMLINK DynamicPart__Externalize(DynamicPart *somSelf,
  858.                                                   Environment *ev)
  859. {
  860.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  861.     DynamicPartMethodDebug("DynamicPart","DynamicPart__Externalize");
  862.  
  863.     ODStorageUnit *storageUnit = somSelf->GetStorageUnit(ev);
  864.     somSelf->CloneContents(ev, storageUnit);
  865.  
  866.     DynamicPart_parent_SimplePart_Externalize(somSelf, ev);
  867. }
  868.  
  869. /*
  870. *******************************************************************
  871. ** Name: void FacetAdded
  872. **
  873. ** Description:  override method called when a facet is added to
  874. **               the part.
  875. **
  876. *******************************************************************
  877. */
  878. SOM_Scope void  SOMLINK DynamicPart__FacetAdded(DynamicPart *somSelf,
  879.                                                  Environment *ev,
  880.                                                 ODFacet* facet)
  881. {
  882.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  883.     DynamicPartMethodDebug("DynamicPart","DynamicPart__FacetAdded");
  884.  
  885.     DynamicPart_parent_SimplePart_FacetAdded(somSelf, ev, facet);
  886.     #include "bimaglay/ifacetad.c"
  887.     #include "bimaglay/getcprop.c"
  888.     #include "bdynamic/dfacetad.c"
  889.     #include "bxform/xfacetad.c"
  890. }
  891.  
  892. /*
  893. *******************************************************************
  894. ** Name: void FacetRemoved
  895. **
  896. ** Description:  override method called when a facet is removed
  897. **               from the part.
  898. **
  899. *******************************************************************
  900. */
  901. SOM_Scope void  SOMLINK DynamicPart__FacetRemoved(DynamicPart *somSelf,
  902.                                                    Environment *ev,
  903.                                                   ODFacet* facet)
  904. {
  905.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  906.     DynamicPartMethodDebug("DynamicPart","DynamicPart__FacetRemoved");
  907.  
  908.     DynamicPart_parent_SimplePart_FacetRemoved(somSelf, ev, facet);
  909.     #include "bdynamic/facetrem.c"
  910. }
  911.  
  912. /*
  913. *******************************************************************
  914. ** Name: void FrameShapeChanged
  915. **
  916. ** Description:  override method called when the part's frame
  917. **               shape changes.
  918. **
  919. *******************************************************************
  920. */
  921. SOM_Scope void  SOMLINK DynamicPart__FrameShapeChanged(DynamicPart *somSelf,
  922.                                                         Environment *ev,
  923.                                                        ODFrame* frame)
  924. {
  925.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  926.     DynamicPartMethodDebug("DynamicPart","DynamicPart__FrameShapeChanged");
  927.  
  928.     DynamicPart_parent_SimplePart_FrameShapeChanged(somSelf,
  929.                                                     ev, frame);
  930.     #include "bimaglay/tframchg.c"
  931. }
  932.  
  933. /*
  934. *******************************************************************
  935. ** Name: void InitPart
  936. **
  937. ** Description:  Initialize a part when it is created dynamically
  938. **               (i.e. via new).
  939. **
  940. *******************************************************************
  941. */
  942. SOM_Scope void  SOMLINK DynamicPart__InitPart(DynamicPart *somSelf,
  943.                                                Environment *ev,
  944.                                               ODStorageUnit* storageUnit,
  945.                                               ODPart* partWrapper)
  946. {
  947.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  948.     DynamicPartMethodDebug("DynamicPart","DynamicPart__InitPart");
  949.  
  950.     DynamicPart_parent_SimplePart_InitPart(somSelf, ev, storageUnit,
  951.                                            partWrapper);
  952.     #include "binit/iintpart.c"
  953. }
  954.  
  955. /*
  956. *******************************************************************
  957. ** Name: void InitPartFromStorage
  958. **
  959. ** Description:  Initialize a part from storage.  Allows a part
  960. **               to "read in" its data.
  961. **
  962. *******************************************************************
  963. */
  964. SOM_Scope void  SOMLINK DynamicPart__InitPartFromStorage(DynamicPart *somSelf,
  965.                                                           Environment *ev,
  966.                                                          ODStorageUnit* storageUnit,
  967.                                                          ODPart* partWrapper)
  968. {
  969.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  970.     DynamicPartMethodDebug("DynamicPart","DynamicPart__InitPartFromStorage");
  971.  
  972.     DynamicPart_parent_SimplePart_InitPartFromStorage(somSelf,
  973.                                                       ev, storageUnit,
  974.                                                       partWrapper);
  975.     #include "binit/iinitpfs.c"
  976. }
  977.  
  978. /*
  979. *******************************************************************
  980. ** Name: void ViewTypeChanged
  981. **
  982. ** Description:  Handle the part's viewtype being changed.
  983. **
  984. *******************************************************************
  985. */
  986. SOM_Scope void  SOMLINK DynamicPart__ViewTypeChanged(DynamicPart *somSelf,
  987.                                                       Environment *ev,
  988.                                                      ODFrame* frame)
  989. {
  990.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  991.     DynamicPartMethodDebug("DynamicPart","DynamicPart__ViewTypeChanged");
  992.  
  993.     ODTypeToken viewType = frame->GetViewType(ev);
  994.     if(viewType != _fSession->Tokenize(ev,kODViewAsFrame)) {
  995.        // DynamicPart currently only supports frame view.
  996.        frame->SetViewType(ev, _fSession->Tokenize(ev,kODViewAsFrame));
  997.        return;
  998.     } /* endif */
  999. }
  1000.  
  1001. /*
  1002. *******************************************************************
  1003. ** Name: void CreateIcons
  1004. **
  1005. ** Description:  Load the part's icon from the DLL
  1006. **
  1007. *******************************************************************
  1008. */
  1009. SOM_Scope void  SOMLINK DynamicPart__CreateIcons(DynamicPart *somSelf,
  1010.                                                    Environment *ev)
  1011. {
  1012.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  1013.     DynamicPartMethodDebug("DynamicPart","DynamicPart__CreateIcons");
  1014.  
  1015.     somSelf->LoadIconsFromModule(ev,
  1016.                                  "ioddynam",
  1017.                                  kODIcon);
  1018. }
  1019.  
  1020.  
  1021. /*
  1022. *******************************************************************
  1023. ** Name: void somDefaultInit
  1024. **
  1025. ** Description:  override method to do basic initialization.
  1026. **               Equivalent to a c++ default constructor.
  1027. **               This method should not perform ANY action that
  1028. **               might fail.
  1029. **
  1030. *******************************************************************
  1031. */
  1032. SOM_Scope void SOMLINK DynamicPart__somDefaultInit(DynamicPart *somSelf,
  1033.                                                    somInitCtrl* ctrl)
  1034. {
  1035.     DynamicPartData *somThis; /* set in BeginInitializer */
  1036.     somInitCtrl globalCtrl;
  1037.     somBooleanVector myMask;
  1038.     DynamicPartMethodDebug("DynamicPart","somDefaultInit");
  1039.     DynamicPart_BeginInitializer_somDefaultInit;
  1040.  
  1041.     DynamicPart_Init_ODDSConnection_somDefaultInit(somSelf, ctrl);
  1042.     DynamicPart_Init_SimplePart_somDefaultInit(somSelf, ctrl);
  1043.  
  1044.     /*
  1045.      * local DynamicPart initialization code added by programmer
  1046.      */
  1047.     #include "binit/isominit.c"
  1048. }
  1049.  
  1050.  
  1051. /*
  1052. *******************************************************************
  1053. ** Name: void somDestruct
  1054. **
  1055. ** Description:  override method to deallocate any resources
  1056. **               as part of part de-initialization.
  1057. **
  1058. *******************************************************************
  1059. */
  1060. SOM_Scope void SOMLINK DynamicPart__somDestruct(DynamicPart *somSelf,
  1061.                                                 octet doFree,
  1062.                                                 somDestructCtrl* ctrl)
  1063. {
  1064.     DynamicPartData *somThis; /* set in BeginDestructor */
  1065.     somDestructCtrl globalCtrl;
  1066.     somBooleanVector myMask;
  1067.     DynamicPartMethodDebug("DynamicPart","DynamicPart__somDestruct");
  1068.     DynamicPart_BeginDestructor;
  1069.  
  1070.     /*
  1071.      * local DynamicPart deinitialization code added by programmer
  1072.      */
  1073.     #include "binit/idestrct.c"
  1074.     #include "bscript/sdestrct.c"
  1075.  
  1076.     DynamicPart_EndDestructor;
  1077. }
  1078. /*
  1079. *******************************************************************
  1080. ** Name: ODBoolean HasExtension
  1081. **
  1082. **
  1083. *******************************************************************
  1084. */
  1085. SOM_Scope ODBoolean  SOMLINK DynamicPart__HasExtension(DynamicPart *somSelf,
  1086.                                                        Environment *ev,
  1087.                                                        ODType extensionName)
  1088. {
  1089.    DynamicPartData *somThis = DynamicPartGetData(somSelf);
  1090.    DynamicPartMethodDebug("DynamicPart","DynamicPartHasExtension");
  1091.  
  1092.    ODBoolean RetVal ;
  1093.  
  1094.    try
  1095.    {
  1096.      if (strcmp(extensionName, kODScriptExtension)== 0)
  1097.      {
  1098.        RetVal = kODTrue ;
  1099.      }
  1100.      else
  1101.      {
  1102.        RetVal = DynamicPart_parent_SimplePart_HasExtension(somSelf,
  1103.                                                            ev,
  1104.                                                            extensionName);
  1105.      }
  1106.    }
  1107.    catch(ODException _exception)
  1108.    {
  1109.    }
  1110.  
  1111.    return RetVal ;
  1112.  
  1113. }
  1114. /*
  1115. *******************************************************************
  1116. ** Name: ODBoolean AcquireExtension
  1117. **
  1118. **
  1119. *******************************************************************
  1120. */
  1121. SOM_Scope ODExtension*  SOMLINK DynamicPart__AcquireExtension(DynamicPart *somSelf,
  1122.                                                               Environment *ev,
  1123.                                                               ODType extensionName)
  1124. {
  1125.     ODExtension *RetVal ;
  1126.  
  1127.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  1128.     DynamicPartMethodDebug("DynamicPart","DynamicPartAcquireExtension");
  1129.  
  1130.     try
  1131.     {
  1132.       if (strcmp(extensionName, kODScriptExtension)== 0)
  1133.       {
  1134.          if (_fScriptExtension == kODNULL)
  1135.          {
  1136.             _fScriptExtension = new ScriptableDynamicPartScrExt ;
  1137.             if (_fScriptExtension)
  1138.             {
  1139.               _fScriptExtension->InitScriptExtension(ev, somSelf) ;
  1140.             }
  1141.          }
  1142.          if (_fScriptExtension != NULL)
  1143.          { _fScriptExtension->Acquire(ev) ; }
  1144.  
  1145.          RetVal = (ODExtension *) _fScriptExtension ;
  1146.       }
  1147.       else
  1148.       {
  1149.         RetVal = DynamicPart_parent_SimplePart_AcquireExtension(somSelf,
  1150.                                                                 ev,
  1151.                                                                 extensionName);
  1152.       }
  1153.     }
  1154.     catch(ODException _exception)
  1155.     {
  1156.     }
  1157.  
  1158.     return (RetVal) ;
  1159.  
  1160. }
  1161. /*
  1162. *******************************************************************
  1163. ** Name: ODBoolean ReleaseExtension
  1164. **
  1165. **
  1166. *******************************************************************
  1167. */
  1168.  
  1169. SOM_Scope void  SOMLINK DynamicPart__ReleaseExtension(DynamicPart *somSelf,
  1170.                                                       Environment *ev,
  1171.                                                       ODExtension* extension)
  1172. {
  1173.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  1174.     DynamicPartMethodDebug("DynamicPart","DynamicPartReleaseExtension");
  1175.  
  1176.     try
  1177.     {
  1178.       if (extension == (ODExtension *) _fScriptExtension)
  1179.       {
  1180.         delete _fScriptExtension ;
  1181.         _fScriptExtension = NULL ;
  1182.       }
  1183.       else
  1184.       {
  1185.         DynamicPart_parent_SimplePart_ReleaseExtension(somSelf,
  1186.                                                        ev,
  1187.                                                        extension);
  1188.       }
  1189.     }
  1190.     catch(ODException _exception)
  1191.     {
  1192.     }
  1193. }
  1194.  
  1195. /*
  1196. *******************************************************************
  1197. ** Name: void somDumpSelfInt
  1198. **
  1199. ** Description:  override method to dump the part's relevant
  1200. **               intrinsic data in a human readable format.
  1201. **
  1202. *******************************************************************
  1203. */
  1204. SOM_Scope void  SOMLINK DynamicPart__somDumpSelfInt(DynamicPart *somSelf,
  1205.                                                     long level)
  1206. {
  1207.     DynamicPartData *somThis = DynamicPartGetData(somSelf);
  1208.     DynamicPartMethodDebug("DynamicPart","DynamicPart__somDumpSelfInt");
  1209.  
  1210.     DynamicPart_parent_SimplePart_somDumpSelfInt(somSelf, level);
  1211.  
  1212.     somLPrintf(level, "{Rotation is ");
  1213.     if (_xRotateActive) {
  1214.       somPrintf("active ");
  1215.     } else {
  1216.       somPrintf("inactive ");
  1217.     } /* endif */
  1218.     if (_xRotateClockwise) {
  1219.       somPrintf("turning clockwise ");
  1220.     } else {
  1221.       somPrintf("turning counter-clockwise ");
  1222.     } /* endif */
  1223.     somPrintf("at %#3.2f degrees.}\n", _xRotAngle * 180 / pi);
  1224.  
  1225.     somLPrintf(level, "{Horizontal shear is ");
  1226.     if (_hShearActive) {
  1227.       somPrintf("active ");
  1228.     } else {
  1229.       somPrintf("inactive ");
  1230.     } /* endif */
  1231.     if (_hShearRight) {
  1232.       somPrintf("shearing right ");
  1233.     } else {
  1234.       somPrintf("shearing left ");
  1235.     } /* endif */
  1236.     somPrintf("at %#3.2f degrees.}\n", _hShearAngle * 180 / pi);
  1237.  
  1238.     somLPrintf(level, "{Vertical shear is ");
  1239.     if (_vShearActive)  {
  1240.       somPrintf("active ");
  1241.     } else {
  1242.       somPrintf("inactive ");
  1243.     } /* endif */
  1244.     if (_vShearUp) {
  1245.       somPrintf("shearing up ");
  1246.     } else {
  1247.       somPrintf("shearing down ");
  1248.     } /* endif */
  1249.     somPrintf("at %#3.2f degrees.}\n", _vShearAngle * 180 / pi);
  1250.  
  1251.     somLPrintf(level, "{Each %ims timer tick advances rotation by %#3.2f degrees}\n", _rotateTimerRate, _xAngleDelta * 180 / pi);
  1252.  
  1253.     somLPrintf(level, "{Scrolling text is:'%s'}\n", (char *)_Message->text());
  1254.     somLPrintf(level, "{Each %ims timer tick advances text by %i pels}\n", _scrollTimerRate, _JumpRate);
  1255.     somLPrintf(level, "{Scrolling is currently ");
  1256.     if (_scrolling) {
  1257.       somPrintf("active ");
  1258.     } else {
  1259.       somPrintf("inactive ");
  1260.     } /* endif */
  1261.     somPrintf("at %i}\n", _ScrollPos);
  1262.  
  1263.     if (_customBackground) {
  1264.       somLPrintf(level, "{Custom BackColor is ");
  1265.     } else {
  1266.       somLPrintf(level, "{Default BackColor is ");
  1267.     } /* endif */
  1268.     somPrintf("(R)%u,(G)%u,(B)%u}\n", _BackColor.redMix(), _BackColor.greenMix(), _BackColor.blueMix());
  1269.  
  1270.     if (_customTextColor) {
  1271.       somLPrintf(level, "{Custom TextColor is ");
  1272.     } else {
  1273.       somLPrintf(level, "{Default TextColor is ");
  1274.     } /* endif */
  1275.     somPrintf("(R)%u,(G)%u,(B)%u}\n", _TextColor.redMix(), _TextColor.greenMix(), _TextColor.blueMix());
  1276.  
  1277.     if (_customFont) {
  1278.       somLPrintf(level, "{Custom Font is");
  1279.     } else {
  1280.       somLPrintf(level, "{Default Font is ");
  1281.     } /* endif */
  1282.     somPrintf("%s}\n", (char *)_Font->name());
  1283. }
  1284.  
  1285.  
  1286. //=====================================================================================
  1287. // End Override of ODPart Methods
  1288. //=====================================================================================
  1289.  
  1290.  
  1291.  
  1292.  
  1293. //=====================================================================================
  1294. // Override of M_ODPart Methods
  1295. //=====================================================================================
  1296.  
  1297. /*
  1298. *******************************************************************
  1299. ** Name: ISOString clsGetODPartHandlerName
  1300. **
  1301. ** Description:  Override method to get the part handler name from
  1302. **               the metaclass.
  1303. **
  1304. ** Returns:      returns the part handler name.
  1305. **               It is the caller's responsibility to deallocate
  1306. **               the memory used.
  1307. **
  1308. *******************************************************************
  1309. */
  1310.  
  1311. SOM_Scope ISOString  SOMLINK M_DynamicPart__clsGetODPartHandlerName(M_DynamicPart *somSelf,
  1312.                                                                      Environment *ev)
  1313. {
  1314.     /* M_DynamicPartData *somThis = M_DynamicPartGetData(somSelf); */
  1315.     M_DynamicPartMethodDebug("M_DynamicPart","M_DynamicPart__clsGetODPartHandlerName");
  1316.  
  1317.     #include "bregist/rgetphnm.c"
  1318. }
  1319.  
  1320. /*
  1321. *******************************************************************
  1322. ** Name: string clsGetODPartHandlerDisplayName
  1323. **
  1324. ** Description:  Override method to get the part handler display
  1325. **               name from the metaclass.
  1326. **
  1327. ** Returns:      returns the part handler dispaly name.
  1328. **               It is the caller's responsibility to deallocate
  1329. **               the memory used.
  1330. **
  1331. *******************************************************************
  1332. */
  1333.  
  1334. SOM_Scope string  SOMLINK M_DynamicPart__clsGetODPartHandlerDisplayName(M_DynamicPart *somSelf,
  1335.                                                                          Environment *ev)
  1336. {
  1337.     /* M_DynamicPartData *somThis = M_DynamicPartGetData(somSelf); */
  1338.     M_DynamicPartMethodDebug("M_DynamicPart","M_DynamicPart__clsGetODPartHandlerDisplayName");
  1339.  
  1340.     #include "bregist/rgetdspn.c"
  1341. }
  1342.  
  1343. /*
  1344. *******************************************************************
  1345. ** Name: _IDL_SEQUENCE_PartKindInfo clsGetODPartKinds
  1346. **
  1347. ** Description:  Override method to determine the part kinds this
  1348. **               part handler is capable of handling.
  1349. **
  1350. ** Returns:      returns a list of PartKindInfo structures.
  1351. **               It is the caller's responsibility to deallocate
  1352. **               the memory used.
  1353. **
  1354. *******************************************************************
  1355. */
  1356.  
  1357. SOM_Scope _IDL_SEQUENCE_PartKindInfo  SOMLINK M_DynamicPart__clsGetODPartKinds(M_DynamicPart *somSelf,
  1358.                                                                                 Environment *ev)
  1359. {
  1360.     /* M_DynamicPartData *somThis = M_DynamicPartGetData(somSelf); */
  1361.     M_DynamicPartMethodDebug("M_DynamicPart","M_DynamicPart__clsGetODPartKinds");
  1362.  
  1363.     #include "bregist/rgetkind.c"
  1364. }
  1365.  
  1366. /*
  1367. *******************************************************************
  1368. ** Name: string clsGetOLE2ClassId
  1369. **
  1370. ** Description:  Override method to get the OLE2 Class id from
  1371. **               the metaclass.
  1372. **
  1373. ** Returns:      returns the OLE2 class id.
  1374. **               It is the caller's responsibility to deallocate
  1375. **               the memory used.
  1376. **
  1377. *******************************************************************
  1378. */
  1379.  
  1380. SOM_Scope string  SOMLINK M_DynamicPart__clsGetOLE2ClassId(M_DynamicPart *somSelf,
  1381.                                                             Environment *ev)
  1382. {
  1383.     /* M_DynamicPartData *somThis = M_DynamicPartGetData(somSelf); */
  1384.     M_DynamicPartMethodDebug("M_DynamicPart","M_DynamicPart__clsGetOLE2ClassId");
  1385.  
  1386.     #include "bregist/rgetole2.c"
  1387. }
  1388.  
  1389. /*
  1390. *******************************************************************
  1391. ** Name: string clsGetWindowsIconFileName
  1392. **
  1393. ** Description:  Override method to get the windows icon file name
  1394. **               from the metaclass.
  1395. **
  1396. ** Returns:      returns the Windows Icon file name
  1397. **               It is the caller's responsibility to deallocate
  1398. **               the memory used.
  1399. **
  1400. *******************************************************************
  1401. */
  1402.  
  1403. SOM_Scope string  SOMLINK M_DynamicPart__clsGetWindowsIconFileName(M_DynamicPart *somSelf,
  1404.                                                                     Environment *ev)
  1405. {
  1406.     /* M_DynamicPartData *somThis = M_DynamicPartGetData(somSelf); */
  1407.     M_DynamicPartMethodDebug("M_DynamicPart","M_DynamicPart__clsGetWindowsIconFileName");
  1408.  
  1409.     #include "bregist/rgeticon.c"
  1410. }
  1411.  
  1412.  
  1413. //=====================================================================================
  1414. // End Override of M_ODPart Methods
  1415. //=====================================================================================
  1416.  
  1417.  
  1418. //=====================================================================================
  1419. //=====================================================================================
  1420. // End listing of DynamicP.cpp
  1421. //=====================================================================================
  1422. //=====================================================================================
  1423.