lego/src/MenuSwitchVBT.m3


Copyright (C) 1994, Digital Equipment Corp.

MODULE MenuSwitchVBT;

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

REVEAL
  T = Public BRANDED OBJECT
      OVERRIDES
        init     := Init;
        pre      := SwitchVBT.Pre;
        post     := SwitchVBT.Post;
        cancel   := SwitchVBT.Cancel;
      END;

TYPE
  MC = SwitchVBT.MC BRANDED OBJECT END;

PROCEDURE Init (v: T; f: FeedbackVBT.T): T =
  BEGIN
    EVAL MenuBtnVBT.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 Action (selfAsButtonVBT: ButtonVBT.T; READONLY cd: VBT.MouseRec) =
  BEGIN
    NARROW (selfAsButtonVBT, T).callback (cd)
  END Action;

BEGIN
END MenuSwitchVBT.