home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 22 / saa / saasched.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-01-04  |  4.6 KB  |  168 lines

  1. (* ----------------------------------------------------- *)
  2. (*                    SAASCHED.PAS                       *)
  3. (*                                                       *)
  4. (* ■ SAAScheduler: Ähnlich wie Item, quasi ein grosser   *)
  5. (*   Bruder; erbt aber nicht von Item, da ganz andere    *)
  6. (*   Daten und viel weniger konkretes Verhalten vorliegt,*)
  7. (*   hier müssen die Nachkommen mehr leisten, so z.B.    *)
  8. (*   SetActive, setzt nur Active TRUE, macht nichts      *)
  9. (*   weiter.                                             *)
  10. (*                                                       *)
  11. (*          (c) 1991 by R.Reichert & toolbox             *)
  12. (* ----------------------------------------------------- *)
  13. UNIT SAASched;
  14.  
  15. INTERFACE
  16.  
  17. USES Stuff, MouKey, UBase;
  18.  
  19. CONST                                      { ReturnCodes: }
  20.   SchOk        = 0;  { alles Ok                           }
  21.   SchEvNotMine = 1;  { Event nicht meins                  }
  22.   SchActNext   = 2;  { aktiviere nächsten Scheduler       }
  23.   SchActPrev   = 3;  { aktiviere vorhergehenden Scheduler }
  24.   SchEvAccepted= 4;  { Event akzeptiert                   }
  25.  
  26. TYPE
  27.   SAASchedulerPtr = ^SAAScheduler;
  28.   SAAScheduler    = OBJECT (Base)
  29.  
  30.     Active,
  31.     Displayed,
  32.     HKDisplayed: BOOLEAN;
  33.     ActiveItem,
  34.     ItemNum,
  35.     SaveActItem: WORD;
  36.     ReturnCode : BYTE;
  37.  
  38.     CONSTRUCTOR Init;
  39.     PROCEDURE Display;                             VIRTUAL;
  40.     PROCEDURE DisplayHotKeys;                      VIRTUAL;
  41.     PROCEDURE CheckEvent (VAR Ev : EventObj);      VIRTUAL;
  42.     PROCEDURE SetActive;                           VIRTUAL;
  43.     PROCEDURE SetPassive;                          VIRTUAL;
  44.     PROCEDURE SetDisplayedOff;                     VIRTUAL;
  45.     PROCEDURE SetXYRel (dx, dy : INTEGER);         VIRTUAL;
  46.     PROCEDURE SaveConfiguration;                   VIRTUAL;
  47.     PROCEDURE RestoreConfiguration;                VIRTUAL;
  48.  
  49.     FUNCTION GetReturnCode : BYTE;                 VIRTUAL;
  50.     FUNCTION IsActive : BOOLEAN;                   VIRTUAL;
  51.     FUNCTION GetActiveItem : BYTE;                 VIRTUAL;
  52.     FUNCTION GetItemNum : BYTE;                    VIRTUAL;
  53.     FUNCTION IsDisplayed : BOOLEAN;                VIRTUAL;
  54.     FUNCTION IsHKDisplayed : BOOLEAN;              VIRTUAL;
  55.     FUNCTION GetSaveItem : BYTE;                   VIRTUAL;
  56.     FUNCTION GetResult : BYTE;
  57.   END;
  58.  
  59. IMPLEMENTATION
  60.  
  61. CONSTRUCTOR SAAScheduler.Init;
  62. BEGIN
  63.   ReturnCode := 0;      Active      := FALSE;
  64.   ItemNum    := 0;      ActiveItem  := 0;
  65.   Displayed  := FALSE;  HKDisplayed := FALSE;
  66. END;
  67.  
  68. PROCEDURE SAAScheduler.Display;
  69. BEGIN
  70.   Displayed := TRUE;
  71. END;
  72.  
  73. PROCEDURE SAAScheduler.DisplayHotKeys;
  74. BEGIN
  75.   IF Displayed THEN
  76.     HKDisplayed := TRUE;
  77. END;
  78.  
  79. PROCEDURE SAAScheduler.CheckEvent (VAR Ev : EventObj);
  80. BEGIN
  81.   ReturnCode := SchEvNotMine;
  82.   IF Ev.EventType=EvKeyPressed THEN
  83.     IF Ev.Key=Tab THEN
  84.       ReturnCode := SchActNext
  85.     ELSE
  86.       IF Ev.Key=ShiftTab THEN
  87.         ReturnCode := SchActPrev;
  88.   IF ReturnCode<>SchEvNotMine THEN
  89.     SetPassive;
  90.     { da anderer aktiviert wird, wird hier passiv gesetzt }
  91. END;
  92.  
  93. PROCEDURE SAAScheduler.SetActive;
  94. BEGIN
  95.   Active := TRUE;
  96. END;
  97.  
  98. PROCEDURE SAAScheduler.SetPassive;
  99. BEGIN
  100.   Active := FALSE;
  101. END;
  102.  
  103. PROCEDURE SAAScheduler.SetXYRel (dx, dy : INTEGER);
  104. BEGIN
  105.   { SAAScheduler weiss nicht, was verschoben werden muss }
  106.   Abstract ('SAAScheduler: SetXYRel');
  107. END;
  108.  
  109. PROCEDURE SAAScheduler.SetDisplayedOff;
  110. BEGIN
  111.   Displayed := FALSE;  HKDisplayed := FALSE;
  112. END;
  113.  
  114. PROCEDURE SAAScheduler.SaveConfiguration;
  115. BEGIN
  116.   SaveActItem := ActiveItem;
  117. END;
  118.  
  119. PROCEDURE SAAScheduler.RestoreConfiguration;
  120. BEGIN
  121.   ActiveItem := SaveActItem;
  122. END;
  123.  
  124. FUNCTION SAAScheduler.GetReturnCode : BYTE;
  125. BEGIN
  126.   GetReturnCode := ReturnCode;  ReturnCode := SchOk
  127. END;
  128.  
  129. FUNCTION SAAScheduler.IsActive : BOOLEAN;
  130. BEGIN
  131.   IsActive := Active;
  132. END;
  133.  
  134. FUNCTION SAAScheduler.GetActiveItem : BYTE;
  135. BEGIN
  136.   GetActiveItem := ActiveItem;
  137. END;
  138.  
  139. FUNCTION SAAScheduler.GetItemNum : BYTE;
  140. BEGIN
  141.   GetItemNum := ItemNum;
  142. END;
  143.  
  144. FUNCTION SAAScheduler.IsDisplayed : BOOLEAN;
  145. BEGIN
  146.   IsDisplayed := Displayed;
  147. END;
  148.  
  149. FUNCTION SAAScheduler.IsHKDisplayed : BOOLEAN;
  150. BEGIN
  151.   IsHKDisplayed := HKDisplayed;
  152. END;
  153.  
  154. FUNCTION SAAScheduler.GetSaveItem : BYTE;
  155. BEGIN
  156.   GetSaveItem := SaveActItem;
  157. END;
  158.  
  159. FUNCTION SAAScheduler.GetResult;
  160. BEGIN
  161.   GetResult := 0;
  162. END;
  163.  
  164. END.
  165. (* ----------------------------------------------------- *)
  166. (*                 Ende von SAASCHED.PAS                 *)
  167. (* ----------------------------------------------------- *)
  168.