tframe.h - plan9port - [fork] Plan 9 from user space | |
git clone git://src.adamsgaard.dk/plan9port | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
tframe.h (2850B) | |
--- | |
1 #ifndef _FRAME_H_ | |
2 #define _FRAME_H_ 1 | |
3 #if defined(__cplusplus) | |
4 extern "C" { | |
5 #endif | |
6 | |
7 AUTOLIB(frame) | |
8 | |
9 typedef struct Frbox Frbox; | |
10 typedef struct Frame Frame; | |
11 | |
12 enum{ | |
13 BACK, | |
14 HIGH, | |
15 BORD, | |
16 TEXT, | |
17 HTEXT, | |
18 NCOL | |
19 }; | |
20 | |
21 #define FRTICKW 3 | |
22 struct Frbox | |
23 { | |
24 long wid; /* in pixels */ | |
25 long nrune; /* <0 ==> negate and t… | |
26 uchar *ptr; | |
27 short bc; /* break char */ | |
28 short minwid; | |
29 }; | |
30 | |
31 struct Frame | |
32 { | |
33 Font *font; /* of chars in the fra… | |
34 Display *display; /* on which frame appear… | |
35 Image *b; /* on which frame appear… | |
36 Image *cols[NCOL]; /* text and background … | |
37 Rectangle r; /* in which text appears */ | |
38 Rectangle entire; /* of full frame */ | |
39 void (*scroll)(Frame*, int); /* sc… | |
40 Frbox *box; | |
41 ulong p0, p1; /* selection */ | |
42 ushort nbox, nalloc; | |
43 ushort maxtab; /* max size of tab,… | |
44 ushort nchars; /* # runes in frame… | |
45 ushort nlines; /* # lines with tex… | |
46 ushort maxlines; /* total # lines in frame… | |
47 ushort lastlinefull; /* last line fills fr… | |
48 ushort modified; /* changed since frselect… | |
49 Image *tick; /* typing tick */ | |
50 Image *tickback; /* saved image under tick… | |
51 int ticked; /* flag: is tick onscr… | |
52 int noredraw; /* don't draw on the… | |
53 int tickscale; /* tick scaling fac… | |
54 }; | |
55 | |
56 ulong frcharofpt(Frame*, Point); | |
57 Point frptofchar(Frame*, ulong); | |
58 int frdelete(Frame*, ulong, ulong); | |
59 void frinsert(Frame*, Rune*, Rune*, ulong); | |
60 void frselect(Frame*, Mousectl*); | |
61 void frselectpaint(Frame*, Point, Point, Image*); | |
62 void frdrawsel(Frame*, Point, ulong, ulong, int); | |
63 Point frdrawsel0(Frame*, Point, ulong, ulong, Image*, Image*); | |
64 void frinit(Frame*, Rectangle, Font*, Image*, Image**); | |
65 void frsetrects(Frame*, Rectangle, Image*); | |
66 void frclear(Frame*, int); | |
67 void frredraw(Frame*); | |
68 | |
69 uchar *_frallocstr(Frame*, unsigned); | |
70 void _frinsure(Frame*, int, unsigned); | |
71 Point _frdraw(Frame*, Point); | |
72 void _frgrowbox(Frame*, int); | |
73 void _frfreebox(Frame*, int, int); | |
74 void _frmergebox(Frame*, int); | |
75 void _frdelbox(Frame*, int, int); | |
76 void _frsplitbox(Frame*, int, int); | |
77 int _frfindbox(Frame*, int, ulong, ulong); | |
78 void _frclosebox(Frame*, int, int); | |
79 int _frcanfit(Frame*, Point, Frbox*); | |
80 void _frcklinewrap(Frame*, Point*, Frbox*); | |
81 void _frcklinewrap0(Frame*, Point*, Frbox*); | |
82 void _fradvance(Frame*, Point*, Frbox*); | |
83 int _frnewwid(Frame*, Point, Frbox*); | |
84 int _frnewwid0(Frame*, Point, Frbox*); | |
85 void _frclean(Frame*, Point, int, int); | |
86 void _frdrawtext(Frame*, Point, Image*, Image*); | |
87 void _fraddbox(Frame*, int, int); | |
88 Point _frptofcharptb(Frame*, ulong, Point, int); | |
89 Point _frptofcharnb(Frame*, ulong, int); | |
90 int _frstrlen(Frame*, int); | |
91 void frtick(Frame*, Point, int); | |
92 void frinittick(Frame*); | |
93 | |
94 #define NRUNE(b) ((b)->nrune<0? 1 : (b)->nrune) | |
95 #define NBYTE(b) strlen((char*)(b)->ptr) | |
96 #if defined(__cplusplus) | |
97 } | |
98 #endif | |
99 #endif |