Welcome to mirror list, hosted at ThFree Co, Russian Federation.

ED_screen.h « include « editors « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: ed2465647da71dfeab52222f7e58d5f8836d0acf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
/*
 * ***** BEGIN GPL LICENSE BLOCK *****
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version. 
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 * The Original Code is Copyright (C) 2008 Blender Foundation.
 * All rights reserved.
 *
 * 
 * Contributor(s): Blender Foundation
 *
 * ***** END GPL LICENSE BLOCK *****
 */

/** \file ED_screen.h
 *  \ingroup editors
 */

#ifndef __ED_SCREEN_H__
#define __ED_SCREEN_H__

#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "DNA_view2d_types.h"
#include "DNA_view3d_types.h"

struct wmWindowManager;
struct wmWindow;
struct wmNotifier;
struct wmEvent;
struct wmKeyConfig;
struct bContext;
struct SpaceType;
struct Scene;
struct bScreen;
struct ARegion;
struct uiBlock;
struct rcti;

/* regions */
void    ED_region_do_listen(struct bScreen *sc, struct ScrArea *sa, struct ARegion *ar, struct wmNotifier *note);
void    ED_region_do_draw(struct bContext *C, struct ARegion *ar);
void    ED_region_exit(struct bContext *C, struct ARegion *ar);
void    ED_region_pixelspace(struct ARegion *ar);
void    ED_region_set(const struct bContext *C, struct ARegion *ar);
void    ED_region_update_rect(struct bContext *C, struct ARegion *ar);
void    ED_region_init(struct bContext *C, struct ARegion *ar);
void    ED_region_tag_redraw(struct ARegion *ar);
void    ED_region_tag_redraw_partial(struct ARegion *ar, struct rcti *rct);
void    ED_region_tag_redraw_overlay(struct ARegion *ar);
void    ED_region_tag_refresh_ui(struct ARegion *ar);
void    ED_region_panels_init(struct wmWindowManager *wm, struct ARegion *ar);
void    ED_region_panels(const struct bContext *C, struct ARegion *ar, int vertical, const char *context, int contextnr);
void    ED_region_header_init(struct ARegion *ar);
void    ED_region_header(const struct bContext *C, struct ARegion *ar);
void    ED_region_toggle_hidden(struct bContext *C, struct ARegion *ar);
void    ED_region_info_draw(struct ARegion *ar, const char *text, int block, float fill_color[4]);
void    ED_region_grid_draw(struct ARegion *ar, float zoomx, float zoomy);
float	ED_region_blend_factor(struct ARegion *ar);
void	ED_region_visible_rect(struct ARegion *ar, struct rcti *rect);


/* spaces */
void    ED_spacetypes_keymap(struct wmKeyConfig *keyconf);
int     ED_area_header_switchbutton(const struct bContext *C, struct uiBlock *block, int yco);


/* areas */
void    ED_area_initialize(struct wmWindowManager *wm, struct wmWindow *win, struct ScrArea *sa);
void    ED_area_exit(struct bContext *C, struct ScrArea *sa);
int     ED_screen_area_active(const struct bContext *C);
void    ED_area_do_listen(struct bScreen *sc, ScrArea *sa, struct wmNotifier *note);
void    ED_area_tag_redraw(ScrArea *sa);
void    ED_area_tag_redraw_regiontype(ScrArea *sa, int type);
void    ED_area_tag_refresh(ScrArea *sa);
void    ED_area_do_refresh(struct bContext *C, ScrArea *sa);
void    ED_area_headerprint(ScrArea *sa, const char *str);
void    ED_area_newspace(struct bContext *C, ScrArea *sa, int type);
void    ED_area_prevspace(struct bContext *C, ScrArea *sa);
void    ED_area_swapspace(struct bContext *C, ScrArea *sa1, ScrArea *sa2);
int     ED_area_headersize(void);

/* screens */
void    ED_screens_initialize(struct wmWindowManager *wm);
void    ED_screen_draw(struct wmWindow *win);
void    ED_screen_refresh(struct wmWindowManager *wm, struct wmWindow *win);
void    ED_screen_do_listen(struct bContext *C, struct wmNotifier *note);
bScreen *ED_screen_duplicate(struct wmWindow *win, struct bScreen *sc);
bScreen *ED_screen_add(struct wmWindow *win, struct Scene *scene, const char *name);
void    ED_screen_set(struct bContext *C, struct bScreen *sc);
void    ED_screen_delete(struct bContext *C, struct bScreen *sc);
void    ED_screen_set_scene(struct bContext *C, struct bScreen *screen, struct Scene *scene);
void    ED_screen_delete_scene(struct bContext *C, struct Scene *scene);
void    ED_screen_set_subwinactive(struct bContext *C, struct wmEvent *event);
void    ED_screen_exit(struct bContext *C, struct wmWindow *window, struct bScreen *screen);
void    ED_screen_animation_timer(struct bContext *C, int redraws, int refresh, int sync, int enable);
void    ED_screen_animation_timer_update(struct bScreen *screen, int redraws, int refresh);
ScrArea *ED_screen_full_newspace(struct bContext *C, ScrArea *sa, int type);
void    ED_screen_full_prevspace(struct bContext *C, ScrArea *sa);
void    ED_screen_full_restore(struct bContext *C, ScrArea *sa);
struct ScrArea *ED_screen_state_toggle(struct bContext *C, struct wmWindow *win, struct ScrArea *sa, const short state);
void    ED_screens_header_tools_menu_create(struct bContext *C, struct uiLayout *layout, void *arg);

/* anim */
void    ED_update_for_newframe(struct Main *bmain, struct Scene *scene, int mute);

void    ED_refresh_viewport_fps(struct bContext *C);
int		ED_screen_animation_play(struct bContext *C, int sync, int mode);
bScreen	*ED_screen_animation_playing(const struct wmWindowManager *wm);

/* screen keymaps */
void    ED_operatortypes_screen(void);
void    ED_keymap_screen(struct wmKeyConfig *keyconf);

/* operators; context poll callbacks */
int     ED_operator_screenactive(struct bContext *C);
int     ED_operator_screen_mainwinactive(struct bContext *C);
int     ED_operator_areaactive(struct bContext *C);
int     ED_operator_regionactive(struct bContext *C);

int     ED_operator_scene_editable(struct bContext *C);
int     ED_operator_objectmode(struct bContext *C);

int     ED_operator_view3d_active(struct bContext *C);
int     ED_operator_region_view3d_active(struct bContext *C);
int     ED_operator_animview_active(struct bContext *C);
int     ED_operator_timeline_active(struct bContext *C);
int     ED_operator_outliner_active(struct bContext *C);
int     ED_operator_outliner_active_no_editobject(struct bContext *C);
int     ED_operator_file_active(struct bContext *C);
int     ED_operator_action_active(struct bContext *C);
int     ED_operator_buttons_active(struct bContext *C);
int     ED_operator_node_active(struct bContext *C);
int     ED_operator_node_editable(struct bContext *C);
int     ED_operator_graphedit_active(struct bContext *C);
int     ED_operator_sequencer_active(struct bContext *C);
int     ED_operator_sequencer_active_editable(struct bContext *C);
int     ED_operator_image_active(struct bContext *C);
int     ED_operator_nla_active(struct bContext *C);
int     ED_operator_logic_active(struct bContext *C);
int     ED_operator_info_active(struct bContext *C);
int     ED_operator_console_active(struct bContext *C);


int     ED_operator_object_active(struct bContext *C);
int     ED_operator_object_active_editable(struct bContext *C);
int     ED_operator_object_active_editable_mesh(struct bContext *C);
int     ED_operator_object_active_editable_font(struct bContext *C);
int     ED_operator_editmesh(struct bContext *C);
int     ED_operator_editmesh_view3d(struct bContext *C);
int     ED_operator_editmesh_region_view3d(struct bContext *C);
int     ED_operator_editarmature(struct bContext *C);
int     ED_operator_editcurve(struct bContext *C);
int     ED_operator_editcurve_3d(struct bContext *C);
int     ED_operator_editsurf(struct bContext *C);
int     ED_operator_editsurfcurve(struct bContext *C);
int     ED_operator_editsurfcurve_region_view3d(struct bContext *C);
int     ED_operator_editfont(struct bContext *C);
int     ED_operator_editlattice(struct bContext *C);
int     ED_operator_editmball(struct bContext *C);
int     ED_operator_uvedit(struct bContext *C);
int     ED_operator_uvedit_space_image(struct bContext *C);
int     ED_operator_uvmap(struct bContext *C);
int     ED_operator_posemode_exclusive(struct bContext *C);
int     ED_operator_posemode_context(struct bContext *C);
int     ED_operator_posemode(struct bContext *C);
int     ED_operator_mask(struct bContext *C);


/* Cache display helpers */

void ED_region_cache_draw_background(const struct ARegion *ar);
void ED_region_cache_draw_curfra_label(const int framenr, const float x, const float y);
void ED_region_cache_draw_cached_segments(const struct ARegion *ar, const int num_segments, const int *points, const int sfra, const int efra);

/* default keymaps, bitflags */
#define ED_KEYMAP_UI        1
#define ED_KEYMAP_VIEW2D    2
#define ED_KEYMAP_MARKERS   4
#define ED_KEYMAP_ANIMATION 8
#define ED_KEYMAP_FRAMES    16
#define ED_KEYMAP_GPENCIL   32
#define ED_KEYMAP_HEADER    64

#endif /* __ED_SCREEN_H__ */