summaryrefslogtreecommitdiff
path: root/appl/wm/wmdeb.m
diff options
context:
space:
mode:
Diffstat (limited to 'appl/wm/wmdeb.m')
-rw-r--r--appl/wm/wmdeb.m82
1 files changed, 82 insertions, 0 deletions
diff --git a/appl/wm/wmdeb.m b/appl/wm/wmdeb.m
new file mode 100644
index 00000000..378740e9
--- /dev/null
+++ b/appl/wm/wmdeb.m
@@ -0,0 +1,82 @@
+Diss: module {};
+
+DebSrc: module
+{
+ PATH: con "/dis/wm/debsrc.dis";
+
+ Mod: adt
+ {
+ src: string; # .b path
+ tk: string; # text widget
+ dis: string; # .dis path
+ sym: ref Sym; # debugger symbol table
+ srcask: int; # look for src file?
+ symask: int; # look for symbol file?
+ };
+
+ loadsrc: fn(src: string, addpath: int): ref Mod;
+ showstrsrc: fn(src: string);
+ search: fn(s: string): int;
+ snarf: fn(): string;
+ getsel: fn(): (ref Mod, int);
+ attachdis: fn(m: ref Mod): int;
+ attachsym: fn(m: ref Mod);
+ showmodsrc: fn(m: ref Mod, src: ref Src);
+ findmod: fn(m: ref Module): ref Mod;
+
+ init: fn(ctxt: ref Draw->Context, t: ref Tk->Toplevel,
+ tkclient: Tkclient, selectfile: Selectfile, dialog: Dialog,
+ str: String, debug: Debug, xscroll: int, remcr: int);
+ reinit: fn(xscroll: int, remcr: int);
+
+ packed: ref Mod;
+ searchpath: array of string;
+ opendir: string;
+};
+
+DebData: module
+{
+ PATH: con "/dis/wm/debdata.dis";
+
+ Datum: adt
+ {
+ tkid: string;
+ parent: string; # tkid of parent
+ vtk: string; # root tk name
+ e: ref Exp;
+ val: string; # value displayed on screen
+ canwalk: int; # can the variable be expanded?
+ kids: cyclic array of ref Datum; # list of expanded kids
+
+ expand: fn(d: self ref Datum, okids: array of ref Datum, who: string): ref Datum;
+ contract: fn(d: self ref Datum, who: string): ref Datum;
+ destroy: fn(d: self ref Datum);
+ showsrc: fn(d: self ref Datum);
+ };
+
+ Vars: adt
+ {
+ tk: string; # root tk widget
+ xbar: int; # x coord of var/val dividing line
+ d: array of ref Datum; # displayed variables
+
+ create: fn(): ref Vars;
+ delete: fn(v: self ref Vars);
+ show: fn(v: self ref Vars);
+ refresh: fn(v: self ref Vars, e: array of ref Debug->Exp);
+
+ expand: fn(v: self ref Vars, kid: string);
+ contract: fn(v: self ref Vars, kid: string);
+ showsrc: fn(v: self ref Vars, kid: string);
+ update: fn(v: self ref Vars);
+ scrolly: fn(v: self ref Vars, s: string);
+ };
+
+ ctl: fn(s: string);
+ wmctl: fn(s: string);
+ init: fn(ctxt: ref Draw->Context, geom: string,
+ debsrc: DebSrc,
+ str: String, debug: Debug):
+ (ref Tk->Toplevel, chan of string, chan of string);
+ raisex: fn();
+};