Blame


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