Bring back --with-sys-screenrc configure flag.
[screen-lua.git] / src / canvas.h
blob6aeb3d83e8789945ea788328156e0a6bd444d7c6
1 /* Copyright (c) 2008, 2009
2 * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
3 * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
4 * Micah Cowan (micah@cowan.name)
5 * Sadrul Habib Chowdhury (sadrul@users.sourceforge.net)
6 * Copyright (c) 1993-2002, 2003, 2005, 2006, 2007
7 * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
8 * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
9 * Copyright (c) 1987 Oliver Laumann
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 3, or (at your option)
14 * any later version.
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with this program (see the file COPYING); if not, see
23 * http://www.gnu.org/licenses/, or contact Free Software Foundation, Inc.,
24 * 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
26 ****************************************************************
27 * $Id$ GNU
30 #ifndef SCREEN_CANVAS_H
31 #define SCREEN_CANVAS_H
33 #define SLICE_UNKN 0
34 #define SLICE_VERT (1 << 0)
35 #define SLICE_HORI (1 << 1)
37 #define SLICE_THIS (1 << 2) /* used in equal test */
38 #define SLICE_GLOBAL (1 << 3)
40 struct canvas
42 struct canvas *c_next; /* next canvas on display */
43 struct display *c_display; /* back pointer to display */
45 struct canvas *c_slnext; /* next canvas in display slice */
46 struct canvas *c_slprev; /* prev canvas in display slice */
47 struct canvas *c_slperp; /* perpendicular slice */
48 struct canvas *c_slback; /* perpendicular slice back pointer */
49 int c_slorient; /* our slice orientation */
50 int c_slweight; /* size ratio */
52 struct viewport *c_vplist;
53 struct layer *c_layer; /* layer on this canvas */
54 struct canvas *c_lnext; /* next canvas that displays layer */
55 struct layer c_blank; /* bottom layer, always blank */
56 int c_xoff; /* canvas x offset on display */
57 int c_yoff; /* canvas y offset on display */
58 int c_xs;
59 int c_xe;
60 int c_ys;
61 int c_ye;
62 struct event c_captev; /* caption changed event */
65 struct win; /* forward declaration */
67 extern void SetCanvasWindow __P((struct canvas *, struct win *));
68 extern void SetForeCanvas __P((struct display *, struct canvas *));
69 extern struct canvas *FindCanvas __P((int, int));
70 extern int MakeDefaultCanvas __P((void));
71 extern int AddCanvas __P((int));
72 extern void RemCanvas __P((void));
73 extern void OneCanvas __P((void));
74 extern void FreeCanvas __P((struct canvas *));
75 extern void ResizeCanvas __P((struct canvas *));
76 extern void RecreateCanvasChain __P((void));
77 extern void RethinkViewportOffsets __P((struct canvas *));
78 extern int CountCanvasPerp __P((struct canvas *));
79 extern void EqualizeCanvas __P((struct canvas *, int));
80 extern void DupLayoutCv __P((struct canvas *, struct canvas *, int));
81 extern void PutWindowCv __P((struct canvas *));
83 #define CV_CALL(cv, cmd) \
84 { \
85 struct display *olddisplay = display; \
86 struct layer *oldflayer = flayer; \
87 struct layer *l = cv->c_layer; \
88 struct canvas *cvlist = l->l_cvlist; \
89 struct canvas *cvlnext = cv->c_lnext; \
90 flayer = l; \
91 l->l_cvlist = cv; \
92 cv->c_lnext = 0; \
93 cmd; \
94 flayer = oldflayer; \
95 l->l_cvlist = cvlist; \
96 cv->c_lnext = cvlnext; \
97 display = olddisplay; \
100 #endif /* SCREEN_CANVAS_H */