MODULE ObxTabViews;
(**
project = "BlackBox"
organization = "www.oberon.ch"
contributors = "Oberon microsystems"
version = "System/Rsrc/About"
copyright = "System/Rsrc/About"
license = "Docu/BB-License"
changes = ""
issues = ""
**)
IMPORT StdTabViews, Views, Strings, Dialog, StdLog,
ObxCalc, ObxCubes;
VAR
st: StdTabViews.View;
calc: Views.View;
PROCEDURE New* (): StdTabViews.View;
VAR v: Views.View;
BEGIN
st := StdTabViews.dir.New();
calc := ObxCalc.New(); v := ObxCubes.New();
st.SetItem(0, 'Cube', v);
st.SetItem(1, 'Calc 1', calc);
st.SetItem(2, 'Calc 2', calc);
st.SetNotifier("ObxTabViews.Notify");
RETURN st
END New;
PROCEDURE Deposit*;
BEGIN
Views.Deposit(New())
END Deposit;
PROCEDURE AddNewCalc*;
VAR s: ARRAY 4 OF CHAR;
BEGIN
Strings.IntToString(st.NofTabs(), s);
st.SetItem(st.NofTabs(), 'Calc ' + s, calc)
END AddNewCalc;
PROCEDURE DeleteTab*;
VAR i: INTEGER; s: Dialog.String; v: Views.View;
BEGIN
IF st.NofTabs() > 0 THEN
FOR i := st.Index() TO st.NofTabs() - 2 DO
st.GetItem(i + 1, s, v); st.SetItem(i, s, v)
END;
st.SetNofTabs(st.NofTabs() - 1)
END
END DeleteTab;
PROCEDURE Notify* (v: StdTabViews.View; from, to: INTEGER);
BEGIN
StdLog.String("Notify: "); StdLog.Int(from); StdLog.Int(to); StdLog.Ln
END Notify;
END ObxTabViews.