lego/src/QuickSwitchVBT.m3


Copyright (C) 1994, Digital Equipment Corp.

MODULE QuickSwitchVBT;

IMPORT ButtonVBT, FeedbackVBT, MultiClass, MultiFilter, QuickBtnVBT,
       SwitchVBT, VBT;

REVEAL
  T = Public BRANDED OBJECT
      OVERRIDES
        init     := Init;
        callback := Callback;
      END;

TYPE MC = SwitchVBT.MC BRANDED OBJECT END;

PROCEDURE Init (v: T; f: FeedbackVBT.T): T =
  BEGIN
    EVAL QuickBtnVBT.T.init(v, f, Action);
    MultiClass.Be (v, NEW(MC));
    WITH ch = MultiFilter.Child(f) DO
      IF ch # NIL THEN MultiClass.BeChild(v, ch) END;
    END;
    RETURN v
  END Init;

PROCEDURE Callback (<* UNUSED *>          v : T;
                    <* UNUSED *> READONLY cd: VBT.MouseRec) =
  BEGIN
  END Callback;

PROCEDURE Action (selfAsButtonVBT: ButtonVBT.T; READONLY cd: VBT.MouseRec) =
  BEGIN
    NARROW(selfAsButtonVBT, T).callback(cd)
  END Action;

BEGIN
END QuickSwitchVBT.