home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sompar.zip / SOMACT.HPP < prev    next >
C/C++ Source or Header  |  1994-01-10  |  3KB  |  97 lines

  1. //
  2. // Project: Digitalk Parts like Toolbar and SOMObjects Demo
  3. // File:    Somact.hpp
  4. // Author:  Stewart Hyde
  5. // Created: Dec   18, 1993
  6. // Updated: Jan   10, 1993
  7. //
  8. // Description:
  9. //
  10.  
  11. #ifndef _SOMACT_HPP_
  12.     #define _SOMACT_HPP_
  13.  
  14. #ifndef _IBASE_
  15.     #include <ibase.hpp>
  16. #endif
  17.  
  18. #include <somd.xh>
  19. #include <istack.h>
  20. #include "Part.xh"
  21.  
  22.  
  23. typedef unsigned long ULONG;
  24.  
  25. // ------------------------------------------------------------------------
  26. //  Class:            SetAction
  27. //  Derived:        IBase
  28. //                
  29. //  Description:    This is a class use for storing Sets and Actions on list
  30. //
  31. // ------------------------------------------------------------------------
  32.  
  33.  
  34. class SetAction : public IBase
  35. {
  36.     public:
  37.         SetAction(ULONG ulSet, ULONG ulAction, Boolean UpdateFlag)
  38.                  {Action = ulAction; Set = ulSet; Update = UpdateFlag; };
  39.         ~SetAction() {};
  40.         ULONG getSet() {return Set; };
  41.         ULONG getAction() {return Action; };
  42.         Boolean getUpdate() {return Update; };
  43.     private:
  44.         ULONG Set;
  45.         ULONG Action;
  46.         Boolean Update;
  47. };
  48.   
  49. // -----------------------------------------------------------------------
  50. //    define a stack of SetAction class's
  51. // -----------------------------------------------------------------------
  52.  
  53. typedef IStack<SetAction>  SetActionStack;
  54.  
  55. // ------------------------------------------------------------------------
  56. //  Class:            SomAction
  57. //  Derived:        IBase
  58. //                
  59. //  Description:    This is SOMObject action object in C++
  60. //
  61. // ------------------------------------------------------------------------
  62.  
  63. class SomAction : public IBase
  64. {
  65.     public:
  66.         SomAction();
  67.         ~SomAction();
  68.         void Process(ULONG ulSet, ULONG ulAction);
  69.         Boolean Next();
  70.         void DebugMessage(Boolean Status);
  71.         ULONG getSet() { return Set; };
  72.         ULONG getAction() { return Action; };
  73.         ULONG getCount() { return Count; };
  74.         ULONG getIndex() { return Index; };
  75.        Boolean getUpdate() {return UpdateFlag; };
  76.         Boolean getAvailable() {return Available; };
  77.     protected:
  78.         Boolean Search(ULONG ulSet, ULONG ulAction);
  79.         Boolean Add(ULONG ulSet, ULONG ulAction);
  80.         Boolean Update(ULONG ulSet, ULONG ulAction);
  81.         Boolean NextUpdateList(ULONG *pulSet, ULONG *pulAction);
  82.         Boolean AddToUpdateList(ULONG ulSet, ULONG ulAction);
  83.     private:
  84.           Environment *ev;
  85.         Part *part;
  86.         Boolean UpdateListCreated;
  87.         Boolean Available;
  88.         Boolean UpdateFlag;
  89.         ULONG Index;
  90.         ULONG Set;
  91.         ULONG Action;
  92.         ULONG Count;
  93.         SetActionStack Stack;
  94. };
  95.  
  96. #endif // _SOMACT_HPP_
  97.