DEADSOFTWARE

Port, TODO
[bbcp.git] / Trurl-based / System / Mod / Sequencers.txt
1 MODULE Sequencers;
3 (* THIS IS TEXT COPY OF BlackBox 1.6-rc6 System/Mod/Sequencers.odc *)
4 (* DO NOT EDIT *)
6 IMPORT Stores;
8 CONST
9 clean* = 0;
10 notUndoable* = 1;
11 invisible* = 2;
13 TYPE
14 Message* = ABSTRACT RECORD END;
16 Notifier* = POINTER TO ABSTRACT RECORD
17 next: Notifier
18 END;
20 Sequencer* = POINTER TO ABSTRACT RECORD
21 notifiers: Notifier
22 END;
24 CloseMsg* = RECORD (Message)
25 sticky*: BOOLEAN (** OUT, preset to FALSE **)
26 END;
28 RemoveMsg* = RECORD (Message) END;
30 Directory* = POINTER TO ABSTRACT RECORD END;
32 VAR dir*: Directory;
34 (** Directory **)
35 PROCEDURE (dir: Directory) New* (): Sequencer, NEW, ABSTRACT;
37 PROCEDURE SetDir* (d: Directory);
38 BEGIN
39 ASSERT(d # NIL, 20); dir := d
40 END SetDir;
43 (** Notifier **)
45 PROCEDURE (f: Notifier) Notify* (VAR msg: Message), NEW, EMPTY;
48 (** Sequencer **)
50 PROCEDURE (s: Sequencer) Dirty* (): BOOLEAN, NEW, ABSTRACT;
51 PROCEDURE (s: Sequencer) SetDirty* (dirty: BOOLEAN), NEW, ABSTRACT;
52 PROCEDURE (s: Sequencer) BeginScript* (IN name: Stores.OpName;
53 VAR script: Stores.Operation), NEW, ABSTRACT;
54 PROCEDURE (s: Sequencer) Do* (st: Stores.Store; IN name: Stores.OpName;
55 op: Stores.Operation), NEW, ABSTRACT;
56 PROCEDURE (s: Sequencer) LastOp* (st: Stores.Store): Stores.Operation, NEW, ABSTRACT;
57 PROCEDURE (s: Sequencer) Bunch* (st: Stores.Store), NEW, ABSTRACT;
58 PROCEDURE (s: Sequencer) EndScript* (script: Stores.Operation), NEW, ABSTRACT;
59 PROCEDURE (s: Sequencer) StopBunching* (), NEW, ABSTRACT;
60 PROCEDURE (s: Sequencer) BeginModification* (type: INTEGER; st: Stores.Store), NEW, ABSTRACT;
61 PROCEDURE (s: Sequencer) EndModification* (type: INTEGER; st: Stores.Store), NEW, ABSTRACT;
62 PROCEDURE (s: Sequencer) CanUndo* (): BOOLEAN, NEW, ABSTRACT;
63 PROCEDURE (s: Sequencer) CanRedo* (): BOOLEAN, NEW, ABSTRACT;
64 PROCEDURE (s: Sequencer) GetUndoName* (VAR name: Stores.OpName), NEW, ABSTRACT;
65 PROCEDURE (s: Sequencer) GetRedoName* (VAR name: Stores.OpName), NEW, ABSTRACT;
66 PROCEDURE (s: Sequencer) Undo* (), NEW, ABSTRACT;
67 PROCEDURE (s: Sequencer) Redo* (), NEW, ABSTRACT;
69 PROCEDURE (s: Sequencer) Handle* (VAR msg: ANYREC), NEW, EMPTY;
71 PROCEDURE (s: Sequencer) Notify* (VAR msg: Message), NEW;
72 VAR n: Notifier;
73 BEGIN
74 n := s.notifiers;
75 WHILE n # NIL DO
76 n.Notify(msg);
77 n := n.next
78 END
79 END Notify;
81 PROCEDURE (s: Sequencer) InstallNotifier* (n: Notifier), NEW;
82 BEGIN
83 n.next := s.notifiers; s.notifiers := n
84 END InstallNotifier;
86 END Sequencers.