ref: 94443daf8e248e65afc8d3f17f26efea22748b51
dir: /module/grid/browser.m/
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;
};
};