Bugfix #3046
[blender.git] / source / blender / include / BIF_screen.h
1 /* replacement for screen.h */
2 /*
3  * 
4  *      Leftovers here are actually editscreen.c thingies
5  * 
6  * $Id$
7  *
8  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
9  *
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU General Public License
12  * as published by the Free Software Foundation; either version 2
13  * of the License, or (at your option) any later version. The Blender
14  * Foundation also sells licenses for use in proprietary software under
15  * the Blender License.  See http://www.blender.org/BL/ for information
16  * about this.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software Foundation,
25  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
26  *
27  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
28  * All rights reserved.
29  *
30  * The Original Code is: all of this file.
31  *
32  * Contributor(s): none yet.
33  *
34  * ***** END GPL/BL DUAL LICENSE BLOCK *****
35  */
36
37 #ifndef BIF_SCREEN_H
38 #define BIF_SCREEN_H
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
44
45 /* externs in editscreen.c */
46 extern int displaysizex, displaysizey;
47 extern struct ScrArea *curarea;
48
49 struct View3D;
50 struct bScreen;
51 struct ScrArea;
52 struct ScrVert;
53 struct ScrEdge;
54 struct ListBase;
55
56 struct View3D *find_biggest_view3d(void);
57 struct ScrArea *find_biggest_area_of_type(int spacecode);
58 struct ScrArea *find_biggest_area(void);
59
60 void scrarea_queue_redraw(struct ScrArea *area);
61 void scrarea_queue_winredraw(struct ScrArea *area);
62 void scrarea_queue_headredraw(struct ScrArea *area);
63
64 int blender_test_break(void);
65
66 void duplicate_screen(void);
67 void init_screen_cursors(void);
68 void set_timecursor(int nr);
69 void waitcursor(int val);
70 void wich_cursor(struct ScrArea *sa);
71 void setcursor_space(int spacetype, short cur);
72 void set_g_activearea(struct ScrArea *sa);
73 void getmouseco_sc(short *mval);
74 void getmouseco_areawin(short *mval);
75 void getmouseco_headwin(short *mval);
76 unsigned short qtest(void);
77 int anyqtest(void);
78 void areawinset(short win);
79 void headerbox(struct ScrArea *sa);
80 void defheaddraw(void);
81 void defheadchange(void);
82 unsigned short winqtest(struct ScrArea *sa);
83 unsigned short headqtest(struct ScrArea *sa);
84 void winqdelete(struct ScrArea *sa);
85 void winqclear(struct ScrArea *sa);
86 void addqueue(short win, unsigned short event, short val);
87 void addafterqueue(short win, unsigned short event, short val);
88 void add_readfile_event(char *filename);
89 short ext_qtest(void);
90 unsigned short extern_qread(short *val);
91 unsigned short extern_qread_ext(short *val, char *ascii);
92
93 extern void markdirty_all(void); // also sets redraw event
94 extern void markdirty_all_back(void);
95 extern void markdirty_win_back(short winid);
96         
97 void screen_swapbuffers(void);
98 void set_debug_swapbuffers_ovveride(struct bScreen *sc, int mode);
99 int is_allowed_to_change_screen(struct bScreen *newp);
100 void splash(void * data, int datasizei, char * string);
101 void screen_delayed_undo_push(char *name);
102 void screenmain(void);
103 void getdisplaysize(void);
104 void setprefsize(int stax, int stay, int sizx, int sizy);
105 void calc_arearcts(struct ScrArea *sa);
106 void resize_screen(int x, int y, int w, int h);
107 struct ScrArea *closest_bigger_area(void);
108 int mywinopen(int mode, short posx, short posy, short sizex, short sizey);
109 void setscreen(struct bScreen *sc);
110 void area_fullscreen(void);
111 int select_area(int spacetype);
112 struct bScreen *default_twosplit(void);
113 void initscreen(void);
114 void unlink_screen(struct bScreen *sc);
115 void reset_autosave(void);
116 int area_is_active_area(struct ScrArea *area);
117 void draw_area_emboss(struct ScrArea *sa);
118
119 void headerprint(char *str);
120
121 /* ******* handlers ****** */
122
123 #define SCREEN_MAXHANDLER               8
124
125 #define SCREEN_HANDLER_ANIM             1
126 #define SCREEN_HANDLER_PYTHON   2
127 #define SCREEN_HANDLER_VERSE    3
128
129 void add_screenhandler(struct bScreen *sc, short eventcode, short val);
130 void rem_screenhandler(struct bScreen *sc, short eventcode);
131 int do_screenhandlers(struct bScreen *sc);
132 int has_screenhandler(struct bScreen *sc, short eventcode);
133
134         /***/
135         
136 /**
137  * Draw @a text in the header of each info window
138  * of the given screen.
139  */
140 void screen_draw_info_text(struct bScreen *sc, char *text);
141
142 /* return all layers of all 3d windows in a screen */
143 unsigned int screen_view3d_layers(void);
144
145 #ifdef __cplusplus
146 }
147 #endif
148
149 #endif /* BIF_SCREEN_H */
150