home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWSemEvt / Include / FWScptbl.h < prev    next >
Encoding:
Text File  |  1996-08-16  |  9.1 KB  |  320 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWSemObj.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    © 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWSCPTBL_H
  11. #define FWSCPTBL_H
  12.  
  13. #ifndef _ODTYPES_
  14. #include <ODTypes.h>
  15. #endif
  16.  
  17. #ifndef FWCMD_H
  18. #include "FWCmd.h"
  19. #endif
  20.  
  21. #ifndef FWTCOLL_H
  22. #include "FWTColl.h"
  23. #endif
  24.  
  25. //========================================================================================
  26. //    forward declarations
  27. //========================================================================================
  28.  
  29. class FW_CDesc;
  30. class FW_CAppleEvent;
  31. class FW_CPart;
  32. class FW_CFrame;
  33. class FW_CElementIterator;
  34.  
  35. //========================================================================================
  36. //    class FW_MScriptable
  37. //========================================================================================
  38.  
  39. class FW_MScriptable
  40. {
  41. public:
  42.     FW_DECLARE_CLASS
  43.     FW_DECLARE_AUTO(FW_MScriptable)
  44.  
  45. public:
  46.     FW_MScriptable();
  47.     virtual ~FW_MScriptable();
  48.          
  49.  
  50.     virtual ODDescType    GetObjectClass() const;
  51.  
  52.     virtual ODDescType    GetSpecifierForm() const;
  53.  
  54.     virtual ODDescType    GetTokenType() const;
  55.     
  56.     // ----- Reference Counting Protocol -----
  57.  
  58.     virtual long        AcquireScriptable() { return 0; }
  59.     virtual long        ReleaseScriptable() { return 0; }
  60.     
  61.     // ----- Event Handling -----
  62.  
  63.     void                 HandleSemanticEvent(Environment* ev, 
  64.                                             FW_CPart* part,
  65.                                             AEKeyword eventClass, 
  66.                                             AEKeyword eventID,
  67.                                             const FW_CAppleEvent& event, 
  68.                                             FW_CAppleEvent& reply);
  69.                                     
  70.     virtual void        DoSemanticEvent(Environment* ev,
  71.                                         FW_CPart* part,
  72.                                         AEKeyword eventClass,
  73.                                         AEKeyword eventID,
  74.                                         const FW_CAppleEvent& event,
  75.                                         FW_CAppleEvent& reply);
  76.  
  77.     // ----- Core Suite -----
  78.  
  79.     virtual void        DoAEClone(Environment* ev,
  80.                                 FW_CPart* part,
  81.                                 const FW_CAppleEvent& event,
  82.                                 FW_CAppleEvent& reply);
  83.                                 
  84.     virtual void        DoAEClose(Environment* ev,
  85.                                 FW_CPart* part,
  86.                                 const FW_CAppleEvent& event,
  87.                                 FW_CAppleEvent& reply);
  88.                                 
  89.     virtual void         DoAECountElements(Environment* ev,
  90.                                         FW_CPart* part,
  91.                                         const FW_CAppleEvent& event,
  92.                                         FW_CAppleEvent& reply);
  93.  
  94.     
  95.     virtual void        DoAECreateElement(Environment* ev,
  96.                                         FW_CPart* part,
  97.                                         const FW_CAppleEvent& event,
  98.                                         FW_CAppleEvent& reply);
  99.                                         
  100.     virtual void        DoAEDelete(Environment* ev,
  101.                                 FW_CPart* part,
  102.                                 const FW_CAppleEvent& event,
  103.                                 FW_CAppleEvent& reply);
  104.                                 
  105.     virtual void        DoAEDoObjectsExist(Environment* ev,
  106.                                             FW_CPart* part,
  107.                                             const FW_CAppleEvent& event,
  108.                                             FW_CAppleEvent& reply);
  109.                                             
  110.     virtual void        DoAEGetClassInfo(Environment* ev,
  111.                                         FW_CPart* part,
  112.                                         const FW_CAppleEvent& event,
  113.                                         FW_CAppleEvent& reply);
  114.                                 
  115.  
  116.     virtual void        DoAEGetData(Environment* ev,
  117.                                     FW_CPart* part,
  118.                                     const FW_CAppleEvent& event,
  119.                                     FW_CAppleEvent& reply);
  120.                                     
  121.     virtual void        DoAEGetDataSize(Environment* ev,
  122.                                         FW_CPart* part,
  123.                                         const FW_CAppleEvent&,
  124.                                         FW_CAppleEvent& reply);
  125.                                         
  126.     virtual void        DoAEGetEventInfo(Environment* ev,
  127.                                         FW_CPart* part,
  128.                                         const FW_CAppleEvent& event,
  129.                                         FW_CAppleEvent& reply);
  130.  
  131.     virtual void        DoAEMove(Environment* ev,
  132.                                 FW_CPart* part,
  133.                                 const FW_CAppleEvent& event,
  134.                                 FW_CAppleEvent& reply);
  135.                                 
  136.  
  137.     virtual void        DoAEOpen(Environment* ev,
  138.                                 FW_CPart* part,
  139.                                 const FW_CAppleEvent& event,
  140.                                 FW_CAppleEvent& reply);
  141.                                 
  142.     virtual void        DoAEPrint(Environment* ev,
  143.                                 FW_CPart* part,
  144.                                 const FW_CAppleEvent& event,
  145.                                 FW_CAppleEvent& reply);
  146.                                 
  147.     virtual void        DoAESave(Environment* ev,
  148.                                 FW_CPart* part,
  149.                                 const FW_CAppleEvent& event,
  150.                                 FW_CAppleEvent& reply);
  151.  
  152.     virtual void        DoAESetData(Environment* ev,
  153.                                     FW_CPart* part,
  154.                                     const FW_CAppleEvent& event,
  155.                                     FW_CAppleEvent& reply);
  156.  
  157.     // ----- Relationship Descriptors -----
  158.  
  159.     virtual FW_CFrame*                GetFrame(Environment* ev, FW_CPart* part) const;
  160.  
  161.     // ----- Object Resolution -----
  162.     
  163.     virtual FW_Boolean                 CompareScriptableObjects(Environment* ev,
  164.                                                             FW_CPart* part,
  165.                                                             ODDescType operation,
  166.                                                             const FW_CDesc& other) const;
  167.  
  168.     virtual FW_MScriptable*            GetContainingObject(Environment* ev,
  169.                                                     FW_CPart* part) const;
  170.                                                             
  171.     virtual FW_Boolean                GetContainedObject(Environment* ev,
  172.                                                 FW_CPart* part,
  173.                                                 ODDescType desiredClass,
  174.                                                 ODDescType form,
  175.                                                 const FW_CDesc& selectionData,
  176.                                                 FW_CDesc& containedObjectToken);
  177.     
  178.     virtual FW_MScriptable*         GetElementByAbsolutePosition(Environment* ev,
  179.                                                             FW_CPart* part,
  180.                                                             ODDescType desiredType,
  181.                                                             const FW_CDesc& selectionData);
  182.  
  183.     // ----- Element Access -----
  184.  
  185.     virtual long                    CountElements(Environment* ev,
  186.                                                 FW_CPart* part,
  187.                                                 ODDescType desiredClass);
  188.     
  189.     virtual FW_MScriptable*            GetElementByIndex(Environment* ev,
  190.                                                     FW_CPart* part,
  191.                                                     ODDescType desiredClass, 
  192.                                                     long index);
  193.                                                         
  194.     virtual FW_MScriptable*            GetFirstElement(Environment* ev,
  195.                                                     FW_CPart* part,
  196.                                                     ODDescType desiredClass);
  197.                                                         
  198.     virtual FW_MScriptable*            GetMiddleElement(Environment* ev,
  199.                                                     FW_CPart* part,
  200.                                                     ODDescType desiredClass);
  201.  
  202.     virtual FW_MScriptable*            GetLastElement(Environment* ev,
  203.                                                 FW_CPart* part,
  204.                                                 ODDescType desiredClass);
  205.                                                     
  206.     virtual FW_MScriptable*            GetAnyElement(Environment* ev,
  207.                                                 FW_CPart* part,
  208.                                                 ODDescType desiredClass);
  209.     
  210.     virtual FW_MScriptable*            GetAllElements(Environment* ev,
  211.                                                 FW_CPart* part,
  212.                                                 ODDescType desiredClass);
  213.                                                     
  214.     virtual FW_MScriptable*            GetElementByName(Environment* ev,
  215.                                                     FW_CPart* part,
  216.                                                     ODDescType elementType, 
  217.                                                     const FW_CString& desiredName);
  218.     
  219.     virtual FW_MScriptable*            GetAdjacentObject(Environment* ev,
  220.                                                     FW_CPart* part,
  221.                                                     ODDescType desiredClass,
  222.                                                     ODDescType relativePosition) const;
  223.                                                     
  224.     virtual FW_MScriptable*            GetElementsWithinRange(Environment* ev,
  225.                                                         FW_CPart* part,
  226.                                                         ODDescType desiredClass,
  227.                                                         FW_MScriptable* startObject,
  228.                                                         FW_MScriptable* stopObject) const;
  229.  
  230.     virtual FW_CElementIterator*    NewElementIterator(Environment* ev,
  231.                                                     FW_CPart* part,
  232.                                                     ODDescType elementType) const;
  233.                                                                                                                 
  234.     // ----- Object Specifier Creation  -----
  235.  
  236.     virtual void                BuildObjectSpecifier(Environment* ev,
  237.                                                     FW_CPart* part,
  238.                                                     const FW_CFrame* frame,
  239.                                                     FW_CDesc& specifier,
  240.                                                     ODDescType preferredForm) const;
  241.                                                     
  242.     void                        GetObjectSpecifier(Environment* ev,
  243.                                                 FW_CPart* part,
  244.                                                 FW_CDesc& specifier) const;
  245.                                                 
  246.     void                        GetPropertySpecifier(Environment* ev,
  247.                                                     FW_CPart* part,
  248.                                                     ODDescType whichProperty,
  249.                                                     FW_CDesc& specifier);
  250.                                                     
  251.     // ----- Property Access -----
  252.                                 
  253.     virtual FW_Boolean            HasProperty(ODDescType whichProperty) const;
  254.     
  255.     
  256.     virtual void                GetPropertyInfo(Environment* ev, 
  257.                                                 FW_CPart* part,
  258.                                                 FW_Boolean& canUndo,
  259.                                                 FW_Boolean& causesChange) const;
  260.                                             
  261.     virtual FW_Boolean            GetProperty(Environment* ev, 
  262.                                             FW_CPart* part,
  263.                                             FW_CDesc& propertyValue, 
  264.                                             ODDescType whichProperty,
  265.                                             ODDescType desiredType = typeWildCard) const;
  266.                                                 
  267.     virtual void                SetProperty(Environment* ev, 
  268.                                             FW_CPart* part,
  269.                                             FW_CDesc& propertyValue, 
  270.                                             ODDescType whichProperty);
  271.                                                     
  272.  
  273.     virtual void                RestoreProperty(Environment* ev,
  274.                                                 FW_CPart* part,
  275.                                                 FW_CDesc& propertyValue,
  276.                                                 ODDescType whichProperty);
  277.  
  278.     virtual void                SetProperties(Environment* ev,
  279.                                             FW_CPart* part,
  280.                                             const FW_CDesc& contents);
  281.  
  282.     void                        SetProperties(Environment* ev,
  283.                                             FW_CPart* part,
  284.                                             const FW_CAppleEvent& event);
  285.                                             
  286.     virtual void                GetUndoStrings(Environment* ev,
  287.                                             FW_CPart* part,
  288.                                             ODDescType whichProperty,
  289.                                             FW_CString& undoString,
  290.                                             FW_CString& redoString) const;
  291.  
  292.     void                         AddDependent(FW_MScriptable* dependent);
  293.     void                        RemoveDependent(FW_MScriptable* dependent);
  294.     
  295.     virtual void                HandlePrimaryDeleted(FW_MScriptable* primary);
  296.  
  297. private:
  298.     
  299.     FW_TOrderedCollection<FW_MScriptable>* fDependents;
  300. };
  301.  
  302. //========================================================================================
  303. //    class FW_CElementIterator
  304. //========================================================================================
  305.  
  306. class FW_CElementIterator
  307. {
  308. public:
  309.     FW_DECLARE_AUTO(FW_CElementIterator)
  310.     
  311.     FW_CElementIterator();
  312.     ~FW_CElementIterator();
  313.     
  314.     virtual FW_MScriptable* First() = 0;
  315.     virtual FW_MScriptable* Next() = 0;
  316.     virtual FW_Boolean        IsNotComplete() = 0;
  317. };
  318.  
  319. #endif // FWSCPTBL_H
  320.