summaryrefslogtreecommitdiff
path: root/module/grid/browser.m
diff options
context:
space:
mode:
Diffstat (limited to 'module/grid/browser.m')
-rw-r--r--module/grid/browser.m97
1 files changed, 97 insertions, 0 deletions
diff --git a/module/grid/browser.m b/module/grid/browser.m
new file mode 100644
index 00000000..78dadebe
--- /dev/null
+++ b/module/grid/browser.m
@@ -0,0 +1,97 @@
+Browser: module {
+
+ PATH: con "/dis/grid/lib/browser.dis";
+
+ DESELECT: con 0;
+ SELECT: con 1;
+ TOGGLE: con 2;
+ OPEN: con 3;
+ CLOSE: con 4;
+
+ init: fn ();
+ dialog: fn (ctxt: ref draw->Context, oldtop: ref Tk->Toplevel, butlist: list of string, title, msg: string): int;
+ prevpath: fn (path: string): string;
+ setcentre: fn (top1, top2: ref Tk->Toplevel);
+
+ Browse: adt {
+ new: fn (top: ref Tk->Toplevel, tkchanname, root, rlabel: string, nopanes: int, reader: PathReader): ref Browse;
+ refresh: fn (b: self ref Browse);
+ defaultaction: fn (b: self ref Browse, lst: list of string, f: ref File);
+ getpath: fn (b: self ref Browse, tkpath: string): ref File;
+ opendir: fn (b: self ref Browse, file: File, tkpath: string, action: int): int;
+ newroot: fn (b: self ref Browse, root, rlabel: string);
+ changeview: fn (b: self ref Browse, nopanes: int);
+ selectfile: fn (b: self ref Browse, pane, action: int, file: File, tkpath: string);
+ gotoselectfile: fn (b: self ref Browse, file: File): string;
+ gotopath: fn (b: self ref Browse, dir: File, openfinal: int): (File, string);
+ getselected: fn (b: self ref Browse, pane: int): File;
+ addopened: fn (b: self ref Browse, file: File, add: int);
+ showpath: fn (b: self ref Browse, on: int);
+ resize: fn (b: self ref Browse);
+ top: ref Tk->Toplevel;
+ tkchan: string;
+ bgnorm, bgselect: string;
+ nopanes: int;
+ selected: array of Selected;
+ opened: list of File;
+ root, rlabel: string;
+ reader: PathReader;
+ pane1: File;
+ pane0width: string;
+ width: int;
+ showpathlabel: int;
+ released: int;
+ };
+
+ SELECTED: con 0;
+ UNSELECTED: con 1;
+ ALL: con 2;
+
+ Select: adt {
+ new: fn (top: ref Tk->Toplevel, tkchanname: string): ref Select;
+ addframe: fn (s: self ref Select, fname, title: string);
+ showframe: fn (s: self ref Select, fname: string);
+ delframe: fn (s: self ref Select, fname: string);
+ addselection: fn (s: self ref Select, fname, text: string, lp: list of ref Parameter, allowdups: int): string;
+ delselection: fn (s: self ref Select, fname, tkpath: string);
+ getselection: fn (s: self ref Select, fname: string): list of (string, list of ref Parameter);
+ getselected: fn (s: self ref Select, fname: string): string;
+ select: fn (s: self ref Select, fname, tkpath: string, action: int);
+ defaultaction: fn (s: self ref Select, lst: list of string);
+ resize: fn (s: self ref Select, width, height: int);
+ setscrollr: fn (s: self ref Select, fname: string);
+ top: ref Tk->Toplevel;
+ tkchan: string;
+ currfname, currfid: string;
+ frames: list of ref Frame;
+ };
+
+ Frame: adt {
+ name: string;
+ path: string;
+ selected: string;
+ };
+
+ Parameter: adt {
+ pick {
+ ArgIn =>
+ name, initval: string;
+ ArgOut =>
+ name, val: string;
+ IntIn =>
+ min, max, initval: int;
+ IntOut =>
+ val: int;
+ }
+ };
+
+ File: adt {
+ eq: fn (a,b: File): int;
+ path, qid: string;
+ };
+
+ Selected: adt {
+ file: File;
+ tkpath: string;
+ };
+}; \ No newline at end of file