1 typedef struct Box Box;
2 typedef struct Cimage Cimage;
3 typedef struct Column Column;
4 typedef struct Exec Exec;
5 typedef struct Line Line;
6 typedef struct Page Page;
7 typedef struct Row Row;
8 typedef struct Runestr Runestr;
9 typedef struct Text Text;
10 typedef struct Timer Timer;
11 typedef struct Url Url;
12 typedef struct Window Window;
47 uint textbacknl(Text*, uint, uint);
48 int textbswidth(Text*, Rune);
49 int textclickmatch(Text*, int, int, int, uint*);
50 void textclose(Text*);
51 void textdelete(Text*, uint, uint);
52 void textdoubleclick(Text*, uint*, uint*);
54 void textframescroll(Text*, int);
55 void textinit(Text *, Image *, Rectangle, Font *, Image **);
56 void textinsert(Text*, uint, Rune*, uint);
57 void textredraw(Text *, Rectangle, Font *, Image *);
58 int textresize(Text *, Image *, Rectangle);
59 void textscrdraw(Text*);
60 void textscroll(Text*, int);
61 void textselect(Text*);
62 int textselect2(Text *, uint *, uint *, Text **);
63 int textselect3(Text *, uint *, uint *);
64 void textset(Text *, Rune *, int);
65 void textsetorigin(Text*, uint, int);
66 void textsetselect(Text*, uint, uint);
67 void textshow(Text*, uint, uint, int);
68 void texttype(Text*, Rune);
69 void textmouse(Text *, Point, int);
88 void (*draw)(Box *, Page *, Image *);
89 void (*mouse)(Box *, Page *, int);
90 void (*key)(Box *, Page *, Rune);
95 Box* boxalloc(Line *, Item *, Rectangle);
110 void laypage(Page *p);
111 Lay* layitems(Item *, Rectangle, int);
112 void laydraw(Page *, Image *, Lay *);
126 Ref; /* urls in window.url[] are not freed */
128 int method; /* HGet or HPost */
129 Runestr src; /* requested url */
130 Runestr act; /* actual url (redirection) */
131 Runestr post; /* only set if method==HPost */
132 Runestr ctype; /* content type */
135 Url* urlalloc(Runestr *, Runestr *, int);
183 void pageget(Page *, Runestr *, Runestr *, int, int);
184 void pageload(Page *, Url *, int);
185 void pageclose(Page *);
186 void pageredraw(Page *);
187 void pagerender(Page *);
188 void pagemouse(Page *, Point, int);
189 void pagetype(Page *, Rune, Point);
190 void pagescrldraw(Page *);
191 void pagescroll(Page *, int, int);
192 int pagescrollxy(Page *, int, int);
193 int pageabort(Page *);
194 void pagesnarf(Page *);
195 void pagesetrefresh(Page *);
196 int pagerefresh(Page *);
217 void wininit(Window *, Window *, Rectangle);
218 int winclean(Window *, int);
219 void winclose(Window *);
220 int winresize(Window *, Rectangle, int);
221 Text* wintext(Window *, Point);
222 void winlock(Window *, int);
223 void winunlock(Window *);
224 void winaddhist(Window *, Url *);
225 void wingohist(Window *, int);
226 void winsettag(Window *);
227 void winseturl(Window *);
228 void winsetstatus(Window *w, Rune *);
229 Text* wintype(Window *, Point, Rune);
230 Text* winmouse(Window *, Point, int);
231 void winmousebut(Window *);
232 void windebug(Window *);
244 void colinit(Column*, Rectangle);
245 Window* coladd(Column*, Window*, Window*, int);
246 void colclose(Column*, Window*, int);
247 void colcloseall(Column*);
248 void colresize(Column*, Rectangle);
249 Text* colwhich(Column*, Point, Rune, int);
250 void coldragwin(Column*, Window*, int);
251 void colgrow(Column*, Window*, int);
252 int colclean(Column*);
253 void colsort(Column*);
254 void colmousebut(Column*);
266 void rowinit(Row*, Rectangle);
267 Column* rowadd(Row*, Column *c, int);
268 void rowclose(Row*, Column*, int);
269 Text* rowwhich(Row*, Point, Rune, int);
270 Column* rowwhichcol(Row*, Point);
271 void rowresize(Row*, Rectangle);
272 void rowdragcol(Row*, Column*, int but);
277 int p[2]; /* p[1] is write to program; p[0] set to prog fd 0*/
278 int q[2]; /* q[0] is read from program; q[1] set to prog fd 1 */
279 Channel *sync; /* chan(ulong) */
286 Channel *c; /* chan(int) */
299 WFont = FntR*NumSize+Tiny,
305 RBUFSIZE = BUFSIZE/sizeof(Rune),
326 Keyboardctl *keyboardctl;
327 Image *tagcols[NCOL];
328 Image *textcols[NCOL];
347 Channel *cplumb; /* chan(Plumbmsg*) */
348 Channel *cexit; /* chan(int) */
349 Channel *crefresh; /* chan(page *) */