MODULE VOCgiBundle;
Generated by m3bundle; see its manpage.
IMPORT Bundle, BundleRep, Text;
IMPORT Thread, Wr, TextWr;
TYPE T = Bundle.T OBJECT OVERRIDES
get := LookUp;
getNames := GetNames;
END;
TYPE Texts = REF ARRAY OF TEXT;
VAR
bundle: T := NIL;
names : Texts := NIL;
PROCEDURE Get(): Bundle.T =
BEGIN
IF (bundle = NIL) THEN bundle := NEW (T) END;
RETURN bundle;
END Get;
PROCEDURE GetNames (<*UNUSED*> self: T): Texts =
BEGIN
IF names = NIL THEN
names := NEW (Texts, NUMBER (Names));
names^ := Names;
END;
RETURN names;
END GetNames;
PROCEDURE LookUp (<*UNUSED*> self: T; element: TEXT): TEXT =
BEGIN
FOR i := 0 TO LAST (Names)-1 DO
IF Text.Equal (Names[i], element) THEN
IF Elements[i] = NIL THEN Elements[i] := GetElt (i) END;
RETURN Elements[i];
END;
END;
RETURN NIL;
END LookUp;
CONST Names = ARRAY [0..2] OF TEXT {
"vos-internal.obl",
"volib.obl",
NIL
};
VAR Elements := ARRAY [0..2] OF TEXT {
E0,
NIL (* E1 .. E1_14 *),
NIL
};
PROCEDURE GetElt (n: INTEGER): TEXT =
<*FATAL Thread.Alerted, Wr.Failure *>
VAR wr := TextWr.New ();
BEGIN
CASE n OF
| 1 =>
Wr.PutText (wr, E1);
Wr.PutText (wr, E1_0);
Wr.PutText (wr, E1_1);
Wr.PutText (wr, E1_2);
Wr.PutText (wr, E1_3);
Wr.PutText (wr, E1_4);
Wr.PutText (wr, E1_5);
Wr.PutText (wr, E1_6);
Wr.PutText (wr, E1_7);
Wr.PutText (wr, E1_8);
Wr.PutText (wr, E1_9);
Wr.PutText (wr, E1_10);
Wr.PutText (wr, E1_11);
Wr.PutText (wr, E1_12);
Wr.PutText (wr, E1_13);
Wr.PutText (wr, E1_14);
ELSE (*skip*)
END;
RETURN TextWr.ToText (wr);
END GetElt;
CONST E0 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Tue Jan "
& "10 11:38:09 PST 1995 by mhb *)\n\nvar reinstall = true;\n\ntry \n "
& "net_import(\"vos\", \"\").ping();\n reinstall := false;\nexcept else\n"
& "end;\n\nif reinstall then\n let fv = \n \"(Shape (Width 600) (Heigh"
& "t 300) (Font\" &\n \"\\\"-\\*-helvetica-bold-\\*R-\\*240-\\*\\\") (L"
& "abelFont\" &\n \"\\\"-\\*-helvetica-bold-\\*R-\\*240-\\*\\\") (VBox "
& "(Text (BgColor\" &\n \"\\\"DarkBrown\\\") (Color \\\"White\\\") \\\""
& "Session Request\\\") (Text (Color\" &\n \"\\\"DarkBrown\\\") \\\"You"
& " are invited to join a session of\\\") (Text (Color\" &\n \"\\\"Red\\"
& "\") (Name name) \\\"foo\\\") Fill (HBox Fill (Button (Name accept)\" &\n"
& " \"(BgColor \\\"PaleGreen\\\") (Rim (Pen 5) \\\"Accept\\\")) Fill (B"
& "utton (Name \" &\n \"reject) (BgColor \\\"LightRed\\\") (Rim (Pen 5)"
& " \\\"Reject\\\")) Fill) Fill))\";\n\n let vos = {\n Install => meth"
& "(s, constructor, name)\n let noticeform = form_new(fv);\n for"
& "m_putText(noticeform, \"name\", \"\", name, false);\n form_attach("
& "noticeform, \"accept\", \n proc(fv) \n form_hide(fv);\n"
& " (constructor)(volibLocal);\n end);\n form_attac"
& "h(noticeform, \"reject\", \n proc(fv) \n form_hide(fv);"
& " \n ok \n end);\n form_show(noticeform);\n "
& "ok\n end,\n ping => meth(s)\n true\n end\n };\n "
& " net_export(\"vos\", \"\", vos);\nend;\n\n\n\n\n\n\n\n\n\n\n";
CONST E1 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Tue Jan "
& "10 11:38:03 PST 1995 by mhb *)\n\n(* Mandatory Include for all Visu"
& "al Obliq Programs *)\n\n(* Naming Convention for Online Listing within "
& "the VO Editor : \n\n A comment that begins/ends with \":\" contains t"
& "he signature of an additional volib proc.\n A comment that begins/e"
& "nds with \"=\" contains the name of a widget-class\n and may be follo"
& "wed by one or more method signatures.\n A comment that begins/ends wi"
& "th \"-\" contains the signature of a method\n and is associated with t"
& "he last widget-class name seen.\n Null method signatures are ignored."
& "\n*)\n\nmodule volib;\n\nsys_pushSilence();\n(* assert - must begin wit"
& "h a \\n\' *)\nlet unpkList = proc(s)\n\tlet ar = text_explode(\"\\n\", "
& "s);\n\tlet n = #(ar) -1; \n\tarray_sub(ar, 1, n);\nend;\n\nlet pkList ="
& " proc(ar)\n\tlet n = text_implode(\'\\n\', ar);\n\tn;\nend;\n\nlet voli"
& "bLocal = {\n\n HOSTNAME => sys_address,\n \n Join => ok,\n\n"
& " (*: LoadFile(filename:text) returns text :*)\n LoadFile => meth(s, f"
& "ilename)\n let r = rd_open(fileSys, filename);\n let contents = r"
& "d_getText(r, rd_length(r));\n rd_close(r);\n contents\n end,\n"
& "\n (*: SaveFile(t:text, f:filename) returns boolean :*)\n SaveFile =>"
& " meth(s, t, filename)\n try\n let w = wr_open(fileSys, filena"
& "me);\n wr_putText(w, t);\n wr_close(w);\n true;\n "
& " except else\n false;\n end\n end,\n\n(*= boolean "
& " =*)\n booleanNew => meth(s, n)\n {\n SELF => 0,\n form ="
& "> 0, \n name => n,\n class => \"boolean\",\n\n (* Generic Attr"
& "ibutes *)\n parent => 0,\n\n x => 0, y => 0, width =>0, height =>"
& "0, BgColor =>\"\", FgColor => \"\",\n Font => \"\", Rim => 0, Border"
& " => 0, Embellishment => \"\",\n InitialState => \"\", ResizeModel =>"
& " \"\", \t\n\n (* Widget Attributes *)\n tex";
CONST E1_0 =
"tLabel => true, textString=>\"\", \n pixmap => \"\", initialValue ="
& "> false, feedbackStyle => \"\",\n\n (*- getValue() returns boolean -"
& "*)\n getValue => meth(s) \n form_getBoolean(s.form, s.name) end,"
& "\n (*- setValue(booleanval) -*)\n setValue => meth(s, val) \n "
& " \ts.textLabel := val; \n\tform_putBoolean(s.form, s.name, val); ok "
& "end,\t\n (*- setLabel(tx:text) -*)\n setLabel => meth(s, val) \t\n"
& "\ts.textString := val;\n \tform_putText(s.form, s.name & \"text\","
& " \"\", val, false); ok end,\n (*- makeDormant() -*)\n makeDormant"
& " => meth(s) \n s.InitialState := \"Dormant\";\n form_putReacti"
& "vity(s.form, s.name & \"filter\", \"dormant\"); ok end,\n (*- makePa"
& "ssive() -*)\n makePassive => meth(s) \n s.InitialState := \"Pass"
& "ive\";\n form_putReactivity(s.form, s.name & \"filter\", \"passive"
& "\"); ok end,\n (*- makeActive() -*)\n makeActive => meth(s) \n "
& " s.InitialState := \"Active\";\t\n form_putReactivity(s.form, s."
& "name & \"filter\", \"active\"); \n form_popUp(s.form, s.name & \"t"
& "op\");\n ok end,\n (*- makeInvisible() -*)\n makeInvisible ="
& "> meth(s) \n s.InitialState := \"Vanish\";\n refreshWidget( s"
& ");\n \tok end, \n (*- -*)\n } \n end,\n\n(*= browser "
& " =*)\n browserNew => meth(s, n)\n { \n SELF => 0,\n form => 0,"
& " \n name => n,\n class => \"browser\",\n\n (* Generic Attributes "
& "*)\t\n parent => 0,\n\n x => 0, y => 0, width =>0, height =>0, Bg"
& "Color =>\"\", FgColor => \"\",\n Font => \"\", Rim => 0, Border => 0"
& ", Embellishment => \"\",\n InitialState => \"\", ResizeModel => \"\""
& ", \n \n (* Widget Attributes *)\n Quick => false, Multiplicity => fa"
& "lse, Contents => [],\n Selections => [], Selection => -1, (* not guar"
& "anteed to be up to date *)\n\n (*- numElements() returns integer -*)"
& "\n numElements => meth(s)\n\t#(s.getElements());\n end,\n \n "
& " (*- getElements() returns [text] -*)\n getElements => meth(s)\n\tco"
& "py(s.Contents);\n end,\n \n (*- putElements(elems:[text]) -*)\n "
& " putElements => meth(s, ar)\n\ts.Contents := copy(ar);\n\ts.Select";
CONST E1_1 =
"ions := [];\n\ts.Selection := -1;\n\tform_putText(s.form, s.name, \"Ite"
& "ms\", pkList(s.Contents), false);\n\tok\n end,\n\n (*- getElement(a"
& "tPosition:integer) returns text -*)\n getElement => meth(s, n)\n\ts.C"
& "ontents[n];\n end,\n (*- isQuick() returns boolean -*)\n isQuick "
& "=> meth(s)\n\ts.Quick;\n end,\n (*- setQuickness(q:boolean) -*)\n "
& " setQuickness => meth(s, q)\n\ts.Quick := q;\n\trefreshWidget(s);\n e"
& "nd,\n (*- putElement(atPosition:integer, elem:text) -*)\n putElemen"
& "t => meth(s, n, el)\n\ts.Contents[n] := el;\n\t(* update array *)\n\tfo"
& "rm_putText(s.form, s.name, \"Items\", pkList(s.Contents), false);\n\ts"
& ".getSelection(); (* to checkpoint selected items *)\n\tif s.Multiplicit"
& "y then\n\t\tforeach i in s.Selections do\n\t\t\tform_putText(s.form, s."
& "name, \"SelectAlso\", s.Contents[i], false);\n\t\tend;\n\telse\n\t\tif "
& "s.Selection isnot -1 then\n\t\t\tform_putText(s.form, s.name, \"Select\""
& ", s.Contents[s.Selection], false);\n\t\tend;\n\tend;\n\tok\n end,\n\n"
& " (*- appendElement(elem:text) -*)\n appendElement => meth(s, el)\n\t"
& "s.Contents := s.Contents @ [el];\n\ts.putElement(#(s.Contents) - 1, el)"
& ";\n\tok\n end,\n\n (*- prependElement(elem:text) -*)\n prependElemen"
& "t => meth(s, el)\t\n\ts.insertElement(0, el);\n\tok\n end,\t\n\n (*- "
& "deleteElement(atPosition:integer) returns boolean -*)\n deleteElement "
& "=> meth(s, n)\n\ttry\n\t\tlet ar = s.getElements();\n\t\tlet sz = #(ar)"
& ";\n\t\tlet newar = array_sub(ar, 0, n) @ array_sub(ar, n+1, (sz-n)-1);\n"
& "\t\ts.putElements(newar);\t\t\t\t\n\t\ttrue;\n\texcept\t\n\telse\n\t\tf"
& "alse;\n\tend; \n end,\n\n (*- insertElement(atPosition:integer, elem:t"
& "ext) returns boolean -*)\n insertElement =>meth(s, n, el)\n\ttry\n\t\t"
& "let ar = s.Contents;\n\t\tlet sz = #(ar);\n\t\ts.Contents := array_sub("
& "ar, 0, n) @ [el] @ array_sub(ar, n, (sz-n));\n\t\t(* update selections"
& " *)\n\t\ts.getSelection(); (* to checkpoint selected items *)\n\t\tif s"
& ".Multiplicity then\n\t\t\tfor i = 0 to #(s.Selections) do\n\t\t\t\tif s"
& ".Selections[i] >= n then\n\t\t\t\t\ts.Selections[i] := s.Selections[i]+"
& "1;\n\t\t\t\tend \n\t\t\tend;\n\t\telse\n\t\t\tif s.Selection >= n then\n"
& "\t\t\t\ts.Selection := s.Selection + 1;\n\t\t\tend;\n\t\tend";
CONST E1_2 =
";\t\t\t\t\n\t\ts.putElements(n, el);\n\t\ttrue;\n\texcept\n\telse\t\n\t"
& "\tfalse;\n\tend; \n end,\n\n (*- selectString(st:text) -*)\n (*-\t in"
& "crementalif not present turns off all -*)\n selectString =>meth(s, st)"
& "\n\tvar op = \"Select\";\n\tif s.Multiplicity then\n\t\tforeach i in s."
& "Contents do \n\t\t\tif i is st then\t\n\t\t\t\top := \"SelectAlso\";\n\t"
& "\t\tend;\n\t\tend;\n\tend;\n\tform_putText(s.form, s.name, op, st, fals"
& "e);\n\tok;\n end,\n\n\n(*- getSelection() returns selection(s) as text"
& " -*)\n(*- \t with \'\\n\' seperators -*)\n getSelection =>meth(wid)\t"
& "\n\tlet sel = form_getText(wid.form, wid.name, \"Select\");\n\t(* check"
& "point selections - side effect *)\n\tif wid.Multiplicity then\t\n\t\t\t"
& "\twid.Selections :=[];\n\t\t\t\tforeach item in wid.getSelItems() do\n\t"
& "\t\t\t\tfor i = 0 to #(wid.Contents) - 1 do\n\t\t\t\t\t\tif item is wid"
& ".Contents[i] then\n\t\t\t\t\t\t\twid.Selections := wid.Selections @ [i]"
& ";\n\t\t\t\t\t\tend;\n\t\t\t\t\tend;\n\t\t\t\tend;\n\t\t\telse\n\t\t\t\t"
& "wid.Selection := -1;\n\t\t\t\tif sel isnot \"\" then\n\t\t\t\t\tfor i "
& "= 0 to #(wid.Contents) - 1 do\n\t\t\t\t\t\tif sel is wid.Contents[i] th"
& "en\n\t\t\t\t\t\t\twid.Selection := i\n\t\t\t\t\t\tend;\n\t\t\t\t\tend;\n"
& "\t\t\t\tend;\n\t\t\tend;\n\tsel\n end,\n\n (*- getSelItems() returns "
& "array of text -*)\n getSelItems =>meth(s)\t\n\tlet sel = form_getText"
& "(s.form, s.name, \"Select\");\n\tif sel is \"\" then\n\t\t[]\n\telse\n\t"
& "\tunpkList(\"\\n\" & sel);\n\tend;\n end,\t\n\n (*- toggleMultiplic"
& "ity() switches between Uni/Multi browser-*)\n toggleMultiplicity =>me"
& "th(s)\t\n\tcheckptSX(s);\n\ts.Multiplicity := not(s.Multiplicity);\n\tr"
& "ebuildWidget( s);\n\tok\n end,\t\n (*- makeDormant() -*)\n makeD"
& "ormant => meth(s) \n s.InitialState := \"Dormant\";\n form_put"
& "Reactivity(s.form, s.name & \"filter\", \"dormant\"); ok end,\n (*- "
& "makePassive() -*)\n makePassive => meth(s) \n s.InitialState := "
& "\"Passive\";\n form_putReactivity(s.form, s.name & \"filter\", \"p"
& "assive\"); ok end,\n (*- makeActive() -*)\n makeActive => meth(s)"
& " \n s.InitialState := \"Active\";\t\n form_putReactivity(s.fo"
& "rm, s.name & \"filter\", \"active\"); \n form_popUp(s.form, s.name"
& " & \"top\");\n ok end,\n (*- makeInvisible() -*)\n m";
CONST E1_3 =
"akeInvisible => meth(s) \n s.InitialState := \"Vanish\";\n re"
& "freshWidget( s);\n \tok end,\n (*- -*)\n } \n end,\n\n (*= button"
& " =*)\n buttonNew => meth(s, n)\n { \n SELF => 0,\n form => 0, \n"
& " name => n,\n class => \"button\",\n\n (* Generic Attributes *"
& ")\n parent => 0,\n\n x => 0, y => 0, width =>0, height =>0, BgCol"
& "or =>\"\", FgColor => \"\",\n Font => \"\", Rim => 0, Border => 0, E"
& "mbellishment => \"\",\n InitialState => \"\", ResizeModel => \"\", \n"
& "\n (* Widget Attributes *)\n textLabel => true, textString => \"\","
& " pixmap => \"\",\n Guard => false, Trill => false,\n\n (*- makeDor"
& "mant() -*)\n makeDormant => meth(s) \n s.InitialState := \"Dorma"
& "nt\";\n form_putReactivity(s.form, s.name & \"filter\", \"dormant\""
& "); ok end,\n (*- makePassive() -*)\n makePassive => meth(s) \n "
& " s.InitialState := \"Passive\";\n form_putReactivity(s.form, s.na"
& "me & \"filter\", \"passive\"); ok end,\n (*- makeActive() -*)\n m"
& "akeActive => meth(s) \n s.InitialState := \"Active\";\t\n for"
& "m_putReactivity(s.form, s.name & \"filter\", \"active\"); \n form_"
& "popUp(s.form, s.name & \"top\");\n ok end,\n (*- makeInvisible("
& ") -*)\n makeInvisible => meth(s) \n s.InitialState := \"Vanish\""
& ";\n refreshWidget( s);\n \tok end,\n \n (*- putText(tx:te"
& "xt) -*)\n putText => meth(s, val) \t\n s.textString := val;\t\n"
& " if not (s.textLabel) then\n\ts.textLabel := true;\n\trefreshWidge"
& "t( s);\n else\n\tform_putText(s.form, s.name & \"text\", \"\", val"
& ", false); \n end;\n ok end,\n (*- putBgColor(clr:text) -*)\n "
& " putBgColor => meth(s, val) \t\n s.BgColor := val;\n form_p"
& "utText(s.form, s.name & \"text\", \"BgColor\", val, false); ok end,\n "
& " (*- getText() returns text -*)\n getText => meth(s) \n\ts.textStri"
& "ng\n end,\n (*- putPixmap(filename:text) -*)\n putPixmap => met"
& "h(s, val) \t\n s.pixmap := val;\n if s.textLabel then\n\ts.te"
& "xtLabel := false;\n\trefreshWidget( s);\n else\n\tform_putText(s.f"
& "orm, s.name & \"pixmap\", \"\", val, false); \n end;\n ok end,"
& "\n (*- ";
CONST E1_4 =
"-*)\n } \n end,\n\n (*= choice =*)\n choiceNew => meth(s, n)\n { "
& "\n SELF => 0,\n form => 0, \n name => n,\n class => \"choic"
& "e\",\n\n (* Generic Attributes *)\n parent => 0,\n\n x => 0, y "
& "=> 0, width =>0, height =>0, BgColor =>\"\", FgColor => \"\",\n Font"
& " => \"\", Rim => 0, Border => 0, Embellishment => \"\",\n InitialSta"
& "te => \"\", ResizeModel => \"\", \n\n (* Widget Attributes *)\n "
& "textLabel => true, textString => \"\", pixmap => \"\", \n initialVal"
& "ue => false, feedbackStyle => \"CheckBox\", \n \n \n (*- getValue()"
& " returns boolean -*)\n getValue => meth(s) \n form_getBoolean(s"
& ".form, s.name) end,\n (*- setValue(booleanval) -*)\n setValue => "
& "meth(s, val) \n form_putBoolean(s.form, s.name, val); ok end,\n "
& " (*- setLabel(tx:text) -*)\n setLabel => meth(s, val) \n s.text"
& "String := val;\t\n form_putText(s.form, s.name & \"text\", \"\", v"
& "al, false); ok end,\n (*- makeDormant() -*)\n makeDormant => met"
& "h(s) \n s.InitialState := \"Dormant\";\n form_putReactivity(s."
& "form, s.name & \"filter\", \"dormant\"); ok end,\n (*- makePassive()"
& " -*)\n makePassive => meth(s) \n s.InitialState := \"Passive\";\n"
& " form_putReactivity(s.form, s.name & \"filter\", \"passive\"); ok "
& "end,\n (*- makeActive() -*)\n makeActive => meth(s) \n s.Ini"
& "tialState := \"Active\";\t\n form_putReactivity(s.form, s.name & \""
& "filter\", \"active\"); \n form_popUp(s.form, s.name & \"top\");\n "
& " ok end,\n (*- makeInvisible() -*)\n makeInvisible => meth(s)"
& " \n s.InitialState := \"Vanish\";\n refreshWidget( s);\n \t"
& "ok end, \n (*- -*)\n } \n end,\n\n (*= filebrowser =*)\n filebro"
& "wserNew => meth(s, n)\n { \n SELF => 0,\n form => 0, \n nam"
& "e => n,\n class => \"filebrowser\",\n\n (* Generic Attributes *)\n"
& " parent => 0,\n\n x => 0, y => 0, width =>0, height =>0, BgColor "
& "=>\"\", FgColor => \"\",\n Font => \"\", Rim => 0, Border => 0, Embe"
& "llishment => \"\",\n InitialState => \"\", ResizeModel => \"\", \n\n"
& " (* Widget Attributes *)\n LabelFont => \"\", ReadOnly => false,\n"
& " V";
CONST E1_5 =
"alue => \".\", Suffixes => [], ActionLabel => \"\",\n\n (*- getFilen"
& "ame() returns text -*)\n getFilename => meth(s) \n form_getText"
& "(s.form, s.name, \"\") end, \n\n (*- setFilename(fnm:text) -*)\n "
& " setFilename => meth(s, fnm) \n form_putText(s.form, s.name, \"\""
& ",fnm, false ); ok end, \n\n (*- setActionLabel(lab:text) -*)\n "
& " setActionLabel => meth(s, lab)\n\ts.ActionLabel := lab;\n\trefreshWi"
& "dget( s);\n\tok end,\n (*- makeDormant() -*)\n makeDormant => m"
& "eth(s) \n s.InitialState := \"Dormant\";\n form_putReactivity("
& "s.form, s.name & \"filter\", \"dormant\"); ok end,\n (*- makePassive"
& "() -*)\n makePassive => meth(s) \n s.InitialState := \"Passive\""
& ";\n form_putReactivity(s.form, s.name & \"filter\", \"passive\"); "
& "ok end,\n (*- makeActive() -*)\n makeActive => meth(s) \n s."
& "InitialState := \"Active\";\t\n form_putReactivity(s.form, s.name "
& "& \"filter\", \"active\"); \n form_popUp(s.form, s.name & \"top\")"
& ";\n ok end,\n (*- makeInvisible() -*)\n makeInvisible => met"
& "h(s) \n s.InitialState := \"Vanish\";\n refreshWidget( s);\n "
& " \tok end,\t \n (*- -*)\n } \n end,\n\n (*= form =*)\n formNe"
& "w => meth(s, n)\n { \n SELF => 0,\n form => 0, \n name => n,"
& "\n class => \"form\",\n\n (* Generic Attributes *)\n parent => "
& "0,\n\n x => 0, y => 0, width =>0, height =>0, BgColor =>\"\", FgColo"
& "r => \"\",\n Font => \"\", Rim => 0, Border => 0, Embellishment => \""
& "\",\n InitialState => \"\", ResizeModel => \"\", \t\n\n (* Split "
& "Attributes *)\n Texture => \"\", children => [],\n\n (* Form Attr"
& "ibutes *)\n ParentForm => 0, ChildForms => [],\n HasMenu => false"
& ", MenuBgColor => \"\", MenuFgColor => \"\",\n MenuFont => \"\", Menu"
& " => [],\n TitleBgColor => \"\", TitleFgColor => \"\",\n TitleStr"
& "ing => \"\", StretchX => 0, StretchY => 0,\n ShrinkX => 0, ShrinkY "
& "=> 0,\n\n CheckpointedXY => false, (* if false pops up in default po"
& "sition *)\n \n (*- show(), shows form (toplevel or anchored)-*)\n "
& " show => meth(s) \n if s.ParentForm is 0 then\n\tif s.form is 0 t"
& "hen";
CONST E1_6 =
"\n\t\ts.SELF.FORM := form_new(computeSX(s));\n\t\ts.SELF.VOAttachCBacks"
& "(); \n\t\tform_show(s.form);\n\tend\n else\n\t s.popUp();\n "
& " end;\n ok end,\n (*- hide(), hides form (toplevel or anchored) -*"
& ")\n hide => meth(s) \n if s.ParentForm is 0 then\n\tif s.form "
& "isnot 0 then\n\t checkptSX(s);\n\t form_hide(s.form); \n "
& " \t s.SELF.FORM := 0;\n\tend\n else \n\t s.close(); \n "
& " end;\n ok end,\n (*- putTitleString(titstr:text) -*)\n pu"
& "tTitleString => meth(s, val)\n s.TitleString := val;\n form_p"
& "utText(s.form, s.name & \"titlestring\", \"\", val, false); ok end,\n "
& " (*- putBgColor(clr:text) -*)\n putBgColor => meth(s, val) \t\n "
& " s.BgColor := val;\n form_putText(s.form, s.name & \"background\""
& ", \"BgColor\", val, false); ok \n end,\n (*- getText() returns "
& "text -*)\n getText => meth(s) \n form_getText(s.form, s.name & "
& "\"titlestring\", \"\") end,\n (*- popUp(), shows anchored form -*)\n"
& " popUp => meth(s)\n form_popUp(s.form, s.name); \n form_pu"
& "tReactivity(s.form, s.name & \"filter\", \"active\"); \n ok end,\n"
& " (*- close(), hides anchored form -*)\n close => meth(s) \n "
& "form_popDown(s.form, s.name); ok end,\n (*- hasSelectedChoice() retu"
& "rns boolean -*)\n hasSelectedChoice => meth(s)\n\ttry\n\t s.getCho"
& "ice(); true;\n except else false end;\n end,\t \n (*- ge"
& "tChoice() : text, exception if none selected. -*)\n (*- - return val"
& "ue is name of choice, not label -*)\n getChoice => meth(s)\n \tform_"
& "getChoice(s.form, s.name & \"radio\") end,\n (*- putChoice(textnam"
& "e:text), exception if nonexistent -*)\n (*- - \ttextname is the n"
& "ame(not label) of the choice -*)\n putChoice => meth(s, item)\n \tfo"
& "rm_putChoice(s.form, s.name & \"radio\", item); ok\n end,\t\n (*-"
& " -*)\n } \n end,\n\n (*= frame =*)\n frameNew => meth(s, n)\n { \n"
& " SELF => 0,\n form => 0, \n name => n,\n class => \"frame\""
& ",\n\n (* Generic Attributes *)\n parent => 0,\n\n x => 0, y =>"
& " 0, width =>0, height =>0, BgColor =>\"\", FgColor => \"\"";
CONST E1_7 =
",\n Font => \"\", Rim => 0, Border => 0, Embellishment => \"\",\n "
& " InitialState => \"\", ResizeModel => \"\", \t\n\n Texture => \"\", "
& "children => 0,\t\n\n (*- hasSelectedChoice() returns boolean -*)\n "
& " hasSelectedChoice => meth(s)\n\ttry\n\t s.getChoice(); true;\n "
& " except else false end;\n end,\t \n (*- getChoice() returns te"
& "xt, raises exception if unselected -*)\n (*- -\tThe return value is "
& "the name of the choice, not its label -*)\n getChoice => meth(s)\n \t"
& "form_getChoice(s.form, s.name & \"radio\") end,\n (*- putChoice(tex"
& "tname: text), raises exception if nonexistant -*)\n (*- - \ttextname"
& " is a text containing the name (not label) of the choice -*)\n putCh"
& "oice => meth(s, item)\n \tform_putChoice(s.form, s.name & \"radio\", it"
& "em); ok\n end,\t\n (*- makeActive() -*)\n makeActive => meth(s"
& ") \n s.InitialState := \"Active\";\t\n form_putReactivity(s.f"
& "orm, s.name & \"filter\", \"active\"); \n form_popUp(s.form, s.nam"
& "e & \"top\");\n ok end,\n (*- makeInvisible() -*)\n makeInvi"
& "sible => meth(s) \n s.InitialState := \"Vanish\";\n refreshWi"
& "dget( s);\n \tok end,\n \n (*- -*)\n } \n end,\n\n (*= hscro"
& "ll =*)\n hscrollNew => meth(s, n)\n { \n SELF => 0,\n form => "
& "0, \n name => n,\n class => \"hscroll\",\n\n (* Generic Attribu"
& "tes *)\n parent => 0,\n\n x => 0, y => 0, width =>0, height =>0, "
& "BgColor =>\"\", FgColor => \"\",\n Font => \"\", Rim => 0, Border =>"
& " 0, Embellishment => \"\",\n InitialState => \"\", ResizeModel => \""
& "\", \n\n (* Widget Attributes *)\n Min => 0, Max => 0, Val => 0,\n "
& " Thumb => 0, Step => 0,\n\n (*- getValue() returns integer -*)\n "
& "getValue => meth(s) \n form_getInt(s.form, s.name , \"\") end,\n "
& " (*- getMin() returns integer -*)\n getMin => meth(s) \n form_"
& "getInt(s.form, s.name , \"Min\") end,\n (*- getMax() returns integer"
& " -*)\n getMax => meth(s) \n form_getInt(s.form, s.name , \"Max\""
& ") end,\n (*- setValue(val) -*)\n setValue => meth(s, val) \n "
& " form_putInt(s.form, s.name , \"\", val); ok end,\n (*- setMi";
CONST E1_8 =
"n(minval) -*)\n setMin => meth(s, val) \n\ts.Min := val;\n form"
& "_putInt(s.form, s.name , \"Min\", val); ok end,\n (*- setMax(maxval)"
& " -*)\n setMax => meth(s, val) \n\ts.Max := val;\n form_putInt("
& "s.form, s.name , \"Max\", val); ok end,\n (*- -*)\n } \n end,\n\n"
& " (*= menuitem =*)\n menuItemNew => meth(s, l, n, lev, initst)\n { "
& "\n SELF => 0,\n form => 0, \n Label => l,\n name => n,\n "
& " class => \"menuItem\",\n\n Level => lev,\n initialState => inits"
& "t,\n\n (*- setLabel(tx:text) -*)\n setLabel => meth(s, val) \t\n\t"
& "s.Label := val;\n form_putText(s.form, s.name & \"Label\", \"\", v"
& "al, false); ok end,\n (*- makeDormant() -*)\n makeDormant => meth"
& "(s) \n s.InitialState := \"Dormant\";\n form_putReactivity(s.f"
& "orm, s.name & \"filter\", \"dormant\"); ok end,\n (*- makePassive() "
& "-*)\n makePassive => meth(s) \n s.InitialState := \"Passive\";\n"
& " form_putReactivity(s.form, s.name & \"filter\", \"passive\"); ok "
& "end,\n (*- makeActive() -*)\n makeActive => meth(s) \n s.Ini"
& "tialState := \"Active\";\t\n form_putReactivity(s.form, s.name & \""
& "filter\", \"active\"); ok end,\n (*- makeInvisible() -*)\n makeI"
& "nvisible => meth(s) \n s.InitialState := \"Vanish\";\t\n form"
& "_putReactivity(s.form, s.name & \"filter\", \"vanished\"); ok end,\n "
& "(*- -*)\n } \n end,\n\n (*= numeric =*)\n numericNew => meth(s, n)"
& "\n { \n SELF => 0,\n form => 0, \n name => n,\n class => \""
& "numeric\",\n\n (* Generic Attributes *)\n parent => 0,\n\n x =>"
& " 0, y => 0, width =>0, height =>0, BgColor =>\"\", FgColor => \"\",\n "
& " Font => \"\", Rim => 0, Border => 0, Embellishment => \"\",\n Init"
& "ialState => \"\", ResizeModel => \"\", \n\n (* Widget Attributes *)\n"
& " AllowEmpty => false, HideButtons => false,\n Min => 0, Max => 0, V"
& "al => 0, \n\n (*- getValue() returns integer -*)\n getValue => met"
& "h(s) \n form_getInt(s.form, s.name , \"\") end,\n (*- getMin() "
& "returns integer -*)\n getMin => meth(s) \n form_getInt(s.form, "
& "s.name , \"Min\") end,\n (*- getMax() returns integer -*)\n get";
CONST E1_9 =
"Max => meth(s) \n form_getInt(s.form, s.name , \"Max\") end,\n "
& "(*- setValue(val) -*)\n setValue => meth(s, val) \n form_putInt"
& "(s.form, s.name , \"\", val); ok end,\n (*- setMin(minval) -*)\n "
& " setMin => meth(s, val)\n\ts.Min := val; \n form_putInt(s.form, s."
& "name , \"Min\", val); ok end,\n (*- setMax(maxval) -*)\n setMax "
& "=> meth(s, val) \n s.Max := val;\n form_putInt(s.form, s.name"
& " , \"Max\", val); ok end,\n (*- -*)\n } \n end,\n\n(*= text =*) \n"
& " textNew => meth(s, n)\n { \n SELF => 0,\n form => 0, \n na"
& "me => n,\n class => \"text\",\n\n (* Generic Attributes *)\n pa"
& "rent => 0,\n\n x => 0, y => 0, width =>0, height =>0, BgColor =>\"\""
& ", FgColor => \"\",\n Font => \"\", Rim => 0, Border => 0, Embellishm"
& "ent => \"\",\n InitialState => \"\", ResizeModel => \"\", \n\n (*"
& " Widget Attributes *)\n tOrientation => \"Center\", tVal => \"\",\n\n"
& " (*- getText() returns text -*)\n getText => meth(s) \n form"
& "_getText(s.form, s.name, \"\") end,\n (*- putText(val:text) -*)\n "
& " putText => meth(s, val) \n s.tVal := val;\n form_putText(s.fo"
& "rm, s.name, \"\", val, false); ok end,\n (*- appendText(val:text) -*"
& ")\n appendText => meth(s, val) \n\ts.tVal := s.tVal @ val;\n fo"
& "rm_putText(s.form, s.name, \"\", val, true); ok end,\n (*- putBgColo"
& "r(clr:text) -*)\n putBgColor => meth(s, val) \n\ts.BgColor := val;\n"
& " form_putText(s.form, s.name, \"BgColor\", val, false); ok end,\n "
& " (*- putFgColor(clr:text) -*)\n putFgColor => meth(s, val) \n\ts.F"
& "gColor := val;\n form_putText(s.form, s.name, \"FgColor\", val, fa"
& "lse); ok end,\n (*- putValue(intval:integer) -*)\n putValue => me"
& "th(s, val) \n var v = ok; \n try v := fmt_int(val) except els"
& "e v := \"\" end;\n\ts.tVal := v;\n form_putText(s.form, s.name, \""
& "\", v, false); \n ok end,\n (*- makeActive() -*)\n makeActi"
& "ve => meth(s) \n s.InitialState := \"Active\";\t\n form_putRe"
& "activity(s.form, s.name & \"filter\", \"active\"); \n form_popUp(s"
& ".form, s.name & \"top\");\n ok end,\n (*- makeInvis";
CONST E1_10 =
"ible() -*)\n makeInvisible => meth(s) \n s.InitialState := \"Va"
& "nish\";\n refreshWidget( s);\n \tok end,\t \n (*- -*)\n }"
& "\n end,\n\n(*= textedit =*) \n texteditNew => meth(s, n)\n { \n "
& "SELF => 0,\n form => 0, \n name => n,\n class => \"textedit\","
& "\n\n (* Generic Attributes *)\n parent => 0,\n\n x => 0, y => 0"
& ", width =>0, height =>0, BgColor =>\"\", FgColor => \"\",\n Font => "
& "\"\", Rim => 0, Border => 0, Embellishment => \"\",\n InitialState ="
& "> \"\", ResizeModel => \"\", \n\n (* Widget Attributes *)\n teRead"
& "Only => false, teClip => false, teHasScrollbar => true,\n teContents"
& " => \"\", teFromFile => \"\", getFromFile => false,\n \n (*- getT"
& "ext() returns text -*)\n getText => meth(s) \n form_getText(s.f"
& "orm, s.name, \"\") end,\n (*- putText(t:text) -*)\n putText => me"
& "th(s, val) \n form_putText(s.form, s.name, \"\", val, false); ok e"
& "nd,\n (*- appendText(t:text) -*)\n appendText => meth(s, val) \n "
& " form_putText(s.form, s.name, \"\", val, true); ok end,\n (*- fl"
& "ush() -*)\n flush => meth(s) \n form_putText(s.form, s.name, \""
& "\", \"\", false); ok end,\n (*- makeDormant() -*)\n makeDormant"
& " => meth(s) \n s.InitialState := \"Dormant\";\n form_putReacti"
& "vity(s.form, s.name & \"filter\", \"dormant\"); ok end,\n (*- makePa"
& "ssive() -*)\n makePassive => meth(s) \n s.InitialState := \"Pas"
& "sive\";\n form_putReactivity(s.form, s.name & \"filter\", \"passiv"
& "e\"); ok end,\n \n (*- putBgColor(clr:text) -*)\n putBgColor =>"
& " meth(s, val) \t\n\ts.BgColor := val;\n form_putText(s.form, s.nam"
& "e, \"BgColor\", val, false); ok end,\n (*- putFgColor(clr:text) -*)"
& "\n putFgColor => meth(s, val) \n s.FgColor := val;\n form_"
& "putText(s.form, s.name, \"FgColor\", val, false); ok end,\n(*- makeActi"
& "ve() -*)\n makeActive => meth(s) \n s.InitialState := \"Active\""
& ";\t\n form_putReactivity(s.form, s.name & \"filter\", \"active\");"
& " \n form_popUp(s.form, s.name & \"top\");\n ok end,\n (*- mak"
& "eInvisible() -*)\n makeInvisible => meth(s) \n s.Initial";
CONST E1_11 =
"State := \"Vanish\";\n refreshWidget( s);\n \tok end,\n (*- -"
& "*)\n }\n end,\n\n(*= typein =*)\n typeinNew => meth(s, n)\n { \n "
& " SELF => 0,\n form => 0, \n name => n,\n class => \"typein\","
& "\n\n (* Generic Attributes *)\n parent => 0,\n\n x => 0, y => "
& "0, width =>0, height =>0, BgColor =>\"\", FgColor => \"\",\n Font =>"
& " \"\", Rim => 0, Border => 0, Embellishment => \"\",\n InitialState "
& "=> \"\", ResizeModel => \"\", \n\n (* Widget Attributes *)\n tyR"
& "eadOnly => false, tyExpand => false, tyInit => \"\",\n\n \n (*- pu"
& "tText(t:text) -*)\n putText => meth(s, val) \n form_putText(s.f"
& "orm, s.name, \"\", val, false); ok end,\n (*- appendText(t:text) -*)"
& "\n appendText => meth(s, val) \n form_putText(s.form, s.name, \""
& "\", val, true); ok end,\n (*- getText() returns text -*)\n getTex"
& "t => meth(s) \n form_getText(s.form, s.name, \"\") end,\n (*- fl"
& "ush() -*)\n flush => meth(s) \n form_putText(s.form, s.name, \""
& "\", \"\", false); ok end,\n\n(*- makeDormant() -*)\n makeDormant => "
& "meth(s) \n s.InitialState := \"Dormant\";\n form_putReactivity"
& "(s.form, s.name & \"filter\", \"dormant\"); ok end,\n (*- makePassiv"
& "e() -*)\n makePassive => meth(s) \n s.InitialState := \"Passive\""
& ";\n form_putReactivity(s.form, s.name & \"filter\", \"passive\"); "
& "ok end,\n (*- makeActive() -*)\n makeActive => meth(s) \n s."
& "InitialState := \"Active\";\t\n form_putReactivity(s.form, s.name "
& "& \"filter\", \"active\"); \n form_popUp(s.form, s.name & \"top\")"
& ";\n ok end,\n (*- makeInvisible() -*)\n makeInvisible => met"
& "h(s) \n s.InitialState := \"Vanish\";\n refreshWidget( s);\n "
& " \tok end,\n \n\n (*- putBgColor(clr:text) -*)\n putBgColor ="
& "> meth(s, val) \t\n\ts.BgColor := val;\n form_putText(s.form, s.na"
& "me, \"BgColor\", val, false); ok end,\n (*- putFgColor(clr:text) -*"
& ")\n putFgColor => meth(s, val) \n s.FgColor := val;\n form"
& "_putText(s.form, s.name, \"FgColor\", val, false); ok end, \n }\n en"
& "d,\n\n(*= vscroll =*)\n vscrollNew => meth(s, n)\n { \n SELF => 0"
& ",";
CONST E1_12 =
"\n form => 0, \n name => n,\n class => \"vscroll\",\n\n (* G"
& "eneric Attributes *)\n parent => 0,\n\n x => 0, y => 0, width =>0"
& ", height =>0, BgColor =>\"\", FgColor => \"\",\n Font => \"\", Rim ="
& "> 0, Border => 0, Embellishment => \"\",\n InitialState => \"\", Res"
& "izeModel => \"\", \n \n (* Widget Attributes *)\n Min => 0, Max =>"
& " 0, Val => 0,\n Thumb => 0, Step => 0,\n\n (*- getValue() returns i"
& "nteger -*)\n getValue => meth(s) \n form_getInt(s.form, s.name "
& ", \"\") end,\n (*- getMin() returns integer -*)\n getMin => meth("
& "s) \n form_getInt(s.form, s.name , \"Min\") end,\n (*- getMax()"
& " returns integer -*)\n getMax => meth(s) \n form_getInt(s.form,"
& " s.name , \"Max\") end,\n (*- setValue(val) -*)\n setValue => met"
& "h(s, val) \n form_putInt(s.form, s.name , \"\", val); ok end,\n "
& " (*- setMin(minval) -*)\n setMin => meth(s, val) \n\ts.Min := val;\n"
& " form_putInt(s.form, s.name , \"Min\", val); ok end,\n (*- setM"
& "ax(maxval) -*)\n setMax => meth(s, val) \n\ts.Max := val;\n fo"
& "rm_putInt(s.form, s.name , \"Max\", val); ok end,\n (*- -*)\n } \n"
& " end,\n\n(*= video =*)\n videoNew => meth(s, n)\n { \n SELF => 0"
& ",\n form => 0, \n name => n,\n class => \"video\",\n\n (* Ge"
& "neric Attributes *)\n parent => 0,\n\n x => 0, y => 0, width =>0,"
& " height =>0, BgColor =>\"\", FgColor => \"\",\n Font => \"\", Rim =>"
& " 0, Border => 0, Embellishment => \"\",\n InitialState => \"\", Resi"
& "zeModel => \"\", \n\n (* Widget Attributes *)\n Source => \"\", "
& "Quality => 0, Width => 0, Height => 0,\n Colours => 0, MSecs => 0, "
& "Synchronous => false,\n FixedSize => false, Paused => false,\n \n "
& " AuSource => \"\", Volume => 0, Mute => false, \n IgnoreMapping => "
& "false,\n\n (*- setQuality(val:integer) returns boolean -*)\n setQ"
& "uality => meth(s, val) \t\t\n try\n form_putInt(s.form, s.name"
& ", \"Quality\", val); \n true\n except else false end\n en"
& "d,\n (*- setWidth(wid:integer) -*)\n setWidth => meth(s, val) \t\t"
& "\n form_putInt(s.form, s.name, \"Width\", val); ok end,\n (*-";
CONST E1_13 =
" setSource(src:text) returns ok -*)\n setSource => meth(s, src)\n\ts"
& ".AuSource := src;\n \ts.Source := src; refreshWidget( s); ok end,\n"
& " (*- setHeight(ht:integer) -*)\n setHeight => meth(s, val) \t\t\t\n"
& " form_putInt(s.form, s.name, \"Height\", val); ok end,\n (*- set"
& "FramesPerSec(fps:integer) -*)\n setFramesPerSec => meth(s, val) \t\t"
& "\t\n form_putInt(s.form, s.name, \"MSecs\", (1000 /val)); ok end,\n"
& " (*- setVolume(v:integer) returns boolean -*)\n setVolume => meth("
& "s, val) \t\t\n try\t\n \tform_putInt(s.form, s.name & \"audio"
& "\" , \"Volume\", val);\n\ttrue\n except else\n\tfalse\n end\n"
& " end, \n (*- setMute(onoff:boolean) -*)\n setMute => meth(s,"
& " val)\n\tform_putBool(s.form, s.name & \"audio\" , \"Mute\", val);\t\n "
& " ok end,\n (*- setIgnoreMapping(onoff:boolean) -*)\n setI"
& "gnoreMapping => meth(s, val)\n\tform_putBool(s.form, s.name & \"audio\""
& " , \"IgnoreMapping\", val);\t\n ok end,\n (*- setSynchronous"
& "(onoff:boolean) -*)\n setSynchronous => meth(s, val)\n\tform_putB"
& "ool(s.form, s.name, \"Synchronous\", val);\t\n ok end,\n (*-"
& " setPaused(onoff:boolean) -*)\n setPaused => meth(s, val)\n\tform_"
& "putBool(s.form, s.name, \"Paused\", val);\t\n ok end,\n (*- "
& "setFixedSize(onoff:boolean) -*)\n setFixedSize => meth(s, val)\n\t"
& "form_putBool(s.form, s.name, \"FixedSize\", val);\t\n ok end,\n "
& " (*- makeActive() -*)\n makeActive => meth(s) \n s.InitialS"
& "tate := \"Active\";\t\n form_putReactivity(s.form, s.name & \"filt"
& "er\", \"active\"); \n form_popUp(s.form, s.name & \"top\");\n "
& " ok end,\n (*- makeInvisible() -*)\n makeInvisible => meth(s) \n "
& " s.InitialState := \"Vanish\";\n refreshWidget( s);\n \tok "
& "end,\n \n (*- -*)\n } \n end,\n\n(* placeholders for restricte"
& "d access procs *)\nprocessNew => ok,\nrdOpen => ok,\nwrOpen => ok,\nw"
& "rOpenAppend => ok\n};\n\n\n(* Some useful procedures that will be copie"
& "d into volibLocal\n in cases where the computation needs to happen l"
& "ocally *)\n\n(*: Join(ssn:text, host:text) returns boolean :*)";
CONST E1_14 =
"\nlet Join = proc(ssn, host) \n try\n let sessionConst = net_import"
& "(ssn, host);\n (sessionConst.New)(volibLocal);\n true\n except e"
& "lse \n false\n end; \nend;\n\n(* normal versions of restricted acce"
& "ss procs *)\n(*: processNew(nameAndArgs:[text], mergeOut:boolean) retu"
& "rns process :*)\nvar processNew = proc(nameAndArgs, mergeOut) \n\tproce"
& "ss_new(processor, nameAndArgs, mergeOut)\nend;\n\n(*: rdOpen(filename:t"
& "ext) returns reader :*)\nvar rdOpen = proc(fnm) \n\trd_open(fileSys, fn"
& "m)\nend;\n\n(*: wrOpen(filename:text) returns writer :*)\nvar wrOpen = "
& " proc(fnm) \n\t\twr_open(fileSys, fnm);\nend;\n\n(*: wrOpenAppend(filen"
& "ame:text) returns writer :*)\nvar wrOpenAppend = proc(fnm) \n\t\twr_ope"
& "nAppend(fileSys, fnm);\nend;\n\n\nvolibLocal.Join := Join;\n\nvolibLoca"
& "l.processNew := meth(s, n , mer)\n\tprocessNew(n, mer)\nend;\n\nvolibLo"
& "cal.rdOpen := meth(s, fnm)\n\trdOpen(fnm)\nend;\n\nvolibLocal.wrOpen :="
& " meth(s, fnm)\n\twrOpen(fnm)\nend;\n\nvolibLocal.wrOpenAppend := meth(s"
& ", fnm)\n\twrOpenAppend(fnm)\nend;\nsys_popSilence();\n\n\n";
BEGIN
END VOCgiBundle.