summaryrefslogtreecommitdiff
path: root/appl/acme/text.m
diff options
context:
space:
mode:
Diffstat (limited to 'appl/acme/text.m')
-rw-r--r--appl/acme/text.m65
1 files changed, 65 insertions, 0 deletions
diff --git a/appl/acme/text.m b/appl/acme/text.m
new file mode 100644
index 00000000..1c258be3
--- /dev/null
+++ b/appl/acme/text.m
@@ -0,0 +1,65 @@
+Textm : module {
+ PATH : con "/dis/acme/text.dis";
+
+ init : fn(mods : ref Dat->Mods);
+
+ # Text.what
+ Columntag, Rowtag, Tag, Body : con iota;
+
+ newtext : fn() : ref Text;
+
+ Text : adt {
+ file : cyclic ref Filem->File;
+ frame : ref Framem->Frame;
+ reffont : ref Dat->Reffont;
+ org : int;
+ q0 : int;
+ q1 : int;
+ what : int;
+ tabstop : int;
+ w : cyclic ref Windowm->Window;
+ scrollr : Draw->Rect;
+ lastsr : Draw->Rect;
+ all : Draw->Rect;
+ row : cyclic ref Rowm->Row;
+ col : cyclic ref Columnm->Column;
+ eq0 : int; # start of typing for ESC
+ cq0 : int; # cache position
+ ncache : int; # storage for insert
+ ncachealloc : int;
+ cache : string;
+ nofill : int;
+
+ init : fn(t : self ref Text, f : ref Filem->File, r : Draw->Rect, rf : ref Dat->Reffont, cols : array of ref Draw->Image);
+ redraw : fn(t : self ref Text, r : Draw->Rect, f : ref Draw->Font, b : ref Draw->Image, n : int);
+ insert : fn(t : self ref Text, n : int, s : string, p : int, q : int, r : int);
+ bsinsert : fn(t : self ref Text, n : int, s : string, p : int, q : int) : (int, int);
+ delete : fn(t : self ref Text, n : int, p : int, q : int);
+ loadx : fn(t : self ref Text, n : int, b : string, q : int) : int;
+ typex : fn(t : self ref Text, r : int, echomode : int);
+ select : fn(t : self ref Text, d : int);
+ select2 : fn(t : self ref Text, p : int, q : int) : (int, ref Text, int, int);
+ select3 : fn(t : self ref Text, p: int, q : int) : (int, int, int);
+ setselect : fn(t : self ref Text, p : int, q : int);
+ setselect0 : fn(t : self ref Text, p : int, q : int);
+ show : fn(t : self ref Text, p : int, q : int);
+ fill : fn(t : self ref Text);
+ commit : fn(t : self ref Text, n : int);
+ setorigin : fn(t : self ref Text, p : int, q : int);
+ readc : fn(t : self ref Text, n : int) : int;
+ reset : fn(t : self ref Text);
+ reshape : fn(t : self ref Text, r : Draw->Rect) : int;
+ close : fn(t : self ref Text);
+ framescroll : fn(t : self ref Text, n : int);
+ select23 : fn(t : self ref Text, p : int, q : int, i, it : ref Draw->Image, n : int) : (int, int, int);
+ forwnl : fn(t : self ref Text, p : int, q : int) : int;
+ backnl : fn(t : self ref Text, p : int, q : int) : int;
+ bswidth : fn(t : self ref Text, r : int) : int;
+ doubleclick : fn(t : self ref Text, p : int, q : int) : (int, int);
+ clickmatch : fn(t : self ref Text, p : int, q : int, r : int, n : int) : (int, int);
+ columnate : fn(t : self ref Text, d : array of ref Dat->Dirlist, n : int);
+ };
+
+ framescroll : fn(f : ref Framem->Frame, dl : int);
+ setalphabet: fn(s: string);
+}; \ No newline at end of file