Blender  V3.3
BKE_context.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
4 #pragma once
5 
10 /* XXX temporary, until AssetHandle is designed properly and queries can return a pointer to it. */
11 #include "DNA_asset_types.h"
12 
13 #include "BLI_utildefines.h"
14 
15 #include "DNA_listBase.h"
16 #include "DNA_object_enums.h"
17 #include "RNA_types.h"
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 struct ARegion;
24 struct Base;
25 struct CacheFile;
26 struct Collection;
27 struct Depsgraph;
28 struct EditBone;
29 struct ID;
30 struct Image;
31 struct LayerCollection;
32 struct ListBase;
33 struct Main;
34 struct Object;
35 struct PointerRNA;
36 struct RegionView3D;
37 struct RenderEngineType;
38 struct ReportList;
39 struct Scene;
40 struct ScrArea;
41 struct SpaceClip;
42 struct SpaceImage;
43 struct SpaceLink;
44 struct SpaceText;
45 struct StructRNA;
46 struct Text;
47 struct ToolSettings;
48 struct View3D;
49 struct ViewLayer;
50 struct bGPDframe;
51 struct bGPDlayer;
52 struct bGPdata;
53 struct bPoseChannel;
54 struct bScreen;
55 struct wmWindow;
56 struct wmWindowManager;
57 
58 /* Structs */
59 
60 struct bContext;
61 typedef struct bContext bContext;
62 
63 struct bContextDataResult;
65 
66 /* Result of context lookups.
67  * The specific values are important, and used implicitly in ctx_data_get(). Some functions also
68  * still accept/return `int` instead, to ensure that the compiler uses the correct storage size
69  * when mixing C/C++ code. */
70 typedef enum eContextResult {
71  /* The context member was found, and its data is available. */
73 
74  /* The context member was not found. */
76 
77  /* The context member was found, but its data is not available.
78  * For example, "active_bone" is a valid context member, but has not data in Object mode. */
81 
82 /* Function mapping a context member name to its value. */
83 typedef int /*eContextResult*/ (*bContextDataCallback)(const bContext *C,
84  const char *member,
86 
87 typedef struct bContextStoreEntry {
89 
90  char name[128];
93 
94 typedef struct bContextStore {
95  struct bContextStore *next, *prev;
96 
98  bool used;
100 
101 /* for the context's rna mode enum
102  * keep aligned with data_mode_strings in context.c */
103 typedef enum eContextObjectMode {
126 #define CTX_MODE_NUM (CTX_MODE_SCULPT_CURVES + 1)
127 
128 /* Context */
129 
130 bContext *CTX_create(void);
131 void CTX_free(bContext *C);
132 
133 bContext *CTX_copy(const bContext *C);
134 
135 /* Stored Context */
136 
137 bContextStore *CTX_store_add(ListBase *contexts, const char *name, const PointerRNA *ptr);
140 void CTX_store_set(bContext *C, bContextStore *store);
142  const char *name,
143  const StructRNA *type CPP_ARG_DEFAULT(nullptr));
145 void CTX_store_free(bContextStore *store);
146 void CTX_store_free_list(ListBase *contexts);
147 
148 /* need to store if python is initialized or not */
149 bool CTX_py_init_get(bContext *C);
150 void CTX_py_init_set(bContext *C, bool value);
151 
152 void *CTX_py_dict_get(const bContext *C);
153 void *CTX_py_dict_get_orig(const bContext *C);
154 
156  void *py_context;
158 };
159 void CTX_py_state_push(bContext *C, struct bContext_PyState *pystate, void *value);
160 void CTX_py_state_pop(bContext *C, struct bContext_PyState *pystate);
161 
162 /* Window Manager Context */
163 
164 struct wmWindowManager *CTX_wm_manager(const bContext *C);
165 struct wmWindow *CTX_wm_window(const bContext *C);
166 struct WorkSpace *CTX_wm_workspace(const bContext *C);
167 struct bScreen *CTX_wm_screen(const bContext *C);
168 struct ScrArea *CTX_wm_area(const bContext *C);
169 struct SpaceLink *CTX_wm_space_data(const bContext *C);
170 struct ARegion *CTX_wm_region(const bContext *C);
171 void *CTX_wm_region_data(const bContext *C);
172 struct ARegion *CTX_wm_menu(const bContext *C);
173 struct wmGizmoGroup *CTX_wm_gizmo_group(const bContext *C);
174 struct wmMsgBus *CTX_wm_message_bus(const bContext *C);
175 struct ReportList *CTX_wm_reports(const bContext *C);
176 
177 struct View3D *CTX_wm_view3d(const bContext *C);
179 struct SpaceText *CTX_wm_space_text(const bContext *C);
180 struct SpaceImage *CTX_wm_space_image(const bContext *C);
183 struct SpaceFile *CTX_wm_space_file(const bContext *C);
184 struct SpaceSeq *CTX_wm_space_seq(const bContext *C);
186 struct SpaceNla *CTX_wm_space_nla(const bContext *C);
187 struct SpaceNode *CTX_wm_space_node(const bContext *C);
188 struct SpaceGraph *CTX_wm_space_graph(const bContext *C);
189 struct SpaceAction *CTX_wm_space_action(const bContext *C);
190 struct SpaceInfo *CTX_wm_space_info(const bContext *C);
192 struct SpaceClip *CTX_wm_space_clip(const bContext *C);
193 struct SpaceTopBar *CTX_wm_space_topbar(const bContext *C);
195 
196 void CTX_wm_manager_set(bContext *C, struct wmWindowManager *wm);
197 void CTX_wm_window_set(bContext *C, struct wmWindow *win);
198 void CTX_wm_screen_set(bContext *C, struct bScreen *screen); /* to be removed */
199 void CTX_wm_area_set(bContext *C, struct ScrArea *area);
200 void CTX_wm_region_set(bContext *C, struct ARegion *region);
201 void CTX_wm_menu_set(bContext *C, struct ARegion *menu);
202 void CTX_wm_gizmo_group_set(bContext *C, struct wmGizmoGroup *gzgroup);
203 
211  char *(*get_fn)(bContext *C, void *user_data);
214  void *user_data;
215 };
216 
217 const char *CTX_wm_operator_poll_msg_get(struct bContext *C, bool *r_free);
218 void CTX_wm_operator_poll_msg_set(struct bContext *C, const char *msg);
220  const struct bContextPollMsgDyn_Params *params);
222 
223 /* Data Context
224  *
225  * - #ListBase consists of #CollectionPointerLink items and must be
226  * freed with #BLI_freelistN!
227  * - The dir #ListBase consists of #LinkData items.
228  */
229 
230 /* data type, needed so we can tell between a NULL pointer and an empty list */
231 enum {
234 };
235 
236 PointerRNA CTX_data_pointer_get(const bContext *C, const char *member);
237 PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type);
239  const char *member,
240  StructRNA *type);
241 ListBase CTX_data_collection_get(const bContext *C, const char *member);
248 ListBase CTX_data_dir_get_ex(const bContext *C, bool use_store, bool use_rna, bool use_all);
250 int /*eContextResult*/ CTX_data_get(
251  const bContext *C, const char *member, PointerRNA *r_ptr, ListBase *r_lb, short *r_type);
252 
256 
259 void CTX_data_list_add(bContextDataResult *result, struct ID *id, StructRNA *type, void *data);
260 
261 void CTX_data_dir_set(bContextDataResult *result, const char **dir);
262 
263 void CTX_data_type_set(struct bContextDataResult *result, short type);
265 
266 bool CTX_data_equals(const char *member, const char *str);
267 bool CTX_data_dir(const char *member);
268 
269 #define CTX_DATA_BEGIN(C, Type, instance, member) \
270  { \
271  ListBase ctx_data_list; \
272  CollectionPointerLink *ctx_link; \
273  CTX_data_##member(C, &ctx_data_list); \
274  for (ctx_link = (CollectionPointerLink *)ctx_data_list.first; ctx_link; \
275  ctx_link = ctx_link->next) { \
276  Type instance = (Type)ctx_link->ptr.data;
277 
278 #define CTX_DATA_END \
279  } \
280  BLI_freelistN(&ctx_data_list); \
281  } \
282  (void)0
283 
284 #define CTX_DATA_BEGIN_WITH_ID(C, Type, instance, member, Type_id, instance_id) \
285  CTX_DATA_BEGIN (C, Type, instance, member) \
286  Type_id instance_id = (Type_id)ctx_link->ptr.owner_id;
287 
288 int ctx_data_list_count(const bContext *C, int (*func)(const bContext *, ListBase *));
289 
290 #define CTX_DATA_COUNT(C, member) ctx_data_list_count(C, CTX_data_##member)
291 
292 /* Data Context Members */
293 
294 struct Main *CTX_data_main(const bContext *C);
295 struct Scene *CTX_data_scene(const bContext *C);
304 struct Collection *CTX_data_collection(const bContext *C);
305 struct ViewLayer *CTX_data_view_layer(const bContext *C);
308 
309 const char *CTX_data_mode_string(const bContext *C);
310 enum eContextObjectMode CTX_data_mode_enum_ex(const struct Object *obedit,
311  const struct Object *ob,
312  eObjectMode object_mode);
314 
315 void CTX_data_main_set(bContext *C, struct Main *bmain);
316 void CTX_data_scene_set(bContext *C, struct Scene *scene);
317 
318 /* Only Outliner currently! */
319 int CTX_data_selected_ids(const bContext *C, ListBase *list);
320 
323 
324 int CTX_data_editable_objects(const bContext *C, ListBase *list);
325 int CTX_data_editable_bases(const bContext *C, ListBase *list);
326 
327 int CTX_data_selected_objects(const bContext *C, ListBase *list);
328 int CTX_data_selected_bases(const bContext *C, ListBase *list);
329 
330 int CTX_data_visible_objects(const bContext *C, ListBase *list);
331 int CTX_data_visible_bases(const bContext *C, ListBase *list);
332 
334 int CTX_data_selectable_bases(const bContext *C, ListBase *list);
335 
336 struct Object *CTX_data_active_object(const bContext *C);
337 struct Base *CTX_data_active_base(const bContext *C);
338 struct Object *CTX_data_edit_object(const bContext *C);
339 
340 struct Image *CTX_data_edit_image(const bContext *C);
341 
342 struct Text *CTX_data_edit_text(const bContext *C);
344 struct Mask *CTX_data_edit_mask(const bContext *C);
345 
347 
348 int CTX_data_selected_nodes(const bContext *C, ListBase *list);
349 
350 struct EditBone *CTX_data_active_bone(const bContext *C);
351 int CTX_data_selected_bones(const bContext *C, ListBase *list);
353 int CTX_data_visible_bones(const bContext *C, ListBase *list);
354 int CTX_data_editable_bones(const bContext *C, ListBase *list);
355 
360 
361 struct bGPdata *CTX_data_gpencil_data(const bContext *C);
367 
369 struct AssetHandle CTX_wm_asset_handle(const bContext *C, bool *r_is_valid);
370 
371 bool CTX_wm_interface_locked(const bContext *C);
372 
383 
392 
402 
403 /* Will Return NULL if depsgraph is not allocated yet.
404  * Only used by handful of operators which are run on file load.
405  */
407 
408 #ifdef __cplusplus
409 }
410 #endif
int CTX_data_get(const bContext *C, const char *member, PointerRNA *r_ptr, ListBase *r_lb, short *r_type)
Definition: context.c:515
struct SpaceTopBar * CTX_wm_space_topbar(const bContext *C)
Definition: context.c:932
int CTX_data_visible_pose_bones(const bContext *C, ListBase *list)
Definition: context.c:1440
struct WorkSpace * CTX_wm_workspace(const bContext *C)
Definition: context.c:728
struct ScrArea * CTX_wm_area(const bContext *C)
Definition: context.c:738
struct Scene * CTX_data_scene(const bContext *C)
Definition: context.c:1090
int CTX_data_selectable_objects(const bContext *C, ListBase *list)
Definition: context.c:1343
PointerRNA CTX_data_pointer_get(const bContext *C, const char *member)
Definition: context.c:462
bContext * CTX_copy(const bContext *C)
Definition: context.c:109
void CTX_store_set(bContext *C, bContextStore *store)
Definition: context.c:188
int CTX_data_visible_bones(const bContext *C, ListBase *list)
Definition: context.c:1415
bool CTX_wm_interface_locked(const bContext *C)
Definition: context.c:718
struct SpaceClip * CTX_wm_space_clip(const bContext *C)
Definition: context.c:923
int ctx_data_list_count(const bContext *C, int(*func)(const bContext *, ListBase *))
Definition: context.c:683
struct SpaceInfo * CTX_wm_space_info(const bContext *C)
Definition: context.c:905
void CTX_wm_region_set(bContext *C, struct ARegion *region)
Definition: context.c:1009
void CTX_data_dir_set(bContextDataResult *result, const char **dir)
Definition: context.c:696
enum eContextObjectMode CTX_data_mode_enum_ex(const struct Object *obedit, const struct Object *ob, eObjectMode object_mode)
struct ARegion * CTX_wm_menu(const bContext *C)
Definition: context.c:760
PointerRNA CTX_data_pointer_get_type_silent(const bContext *C, const char *member, StructRNA *type)
Definition: context.c:492
struct SpaceNode * CTX_wm_space_node(const bContext *C)
Definition: context.c:878
struct SpaceProperties * CTX_wm_space_properties(const bContext *C)
Definition: context.c:833
int CTX_data_selected_bones(const bContext *C, ListBase *list)
Definition: context.c:1405
const struct AssetLibraryReference * CTX_wm_asset_library_ref(const bContext *C)
Definition: context.c:1475
struct Object * CTX_data_edit_object(const bContext *C)
Definition: context.c:1370
bool CTX_data_equals(const char *member, const char *str)
Definition: context.c:634
short CTX_data_type_get(struct bContextDataResult *result)
Definition: context.c:706
void CTX_data_pointer_set(bContextDataResult *result, struct ID *id, StructRNA *type, void *data)
Definition: context.c:649
void CTX_data_scene_set(bContext *C, struct Scene *scene)
Definition: context.c:1271
struct RenderEngineType * CTX_data_engine_type(const bContext *C)
Definition: context.c:1120
bool CTX_py_init_get(bContext *C)
Definition: context.c:233
int CTX_data_visible_objects(const bContext *C, ListBase *list)
Definition: context.c:1333
int CTX_data_editable_objects(const bContext *C, ListBase *list)
Definition: context.c:1313
void CTX_wm_menu_set(bContext *C, struct ARegion *menu)
Definition: context.c:1020
void CTX_data_id_pointer_set(bContextDataResult *result, struct ID *id)
Definition: context.c:644
int CTX_data_selected_editable_bases(const bContext *C, ListBase *list)
Definition: context.c:1308
int CTX_data_selected_objects(const bContext *C, ListBase *list)
Definition: context.c:1323
bContextStore * CTX_store_add(ListBase *contexts, const char *name, const PointerRNA *ptr)
Definition: context.c:128
struct Base * CTX_data_active_base(const bContext *C)
Definition: context.c:1358
void CTX_py_state_push(bContext *C, struct bContext_PyState *pystate, void *value)
Definition: context.c:251
bool CTX_data_dir(const char *member)
Definition: context.c:639
void CTX_data_id_list_add(bContextDataResult *result, struct ID *id)
Definition: context.c:659
void * CTX_py_dict_get(const bContext *C)
Definition: context.c:242
struct SpaceOutliner * CTX_wm_space_outliner(const bContext *C)
Definition: context.c:860
void * CTX_py_dict_get_orig(const bContext *C)
Definition: context.c:246
void CTX_wm_gizmo_group_set(bContext *C, struct wmGizmoGroup *gzgroup)
Definition: context.c:1025
struct bContextStore bContextStore
struct LayerCollection * CTX_data_layer_collection(const bContext *C)
Definition: context.c:1126
struct wmWindowManager * CTX_wm_manager(const bContext *C)
Definition: context.c:713
bContext * CTX_create(void)
Definition: context.c:102
void CTX_py_init_set(bContext *C, bool value)
Definition: context.c:237
@ CTX_DATA_TYPE_POINTER
Definition: BKE_context.h:232
@ CTX_DATA_TYPE_COLLECTION
Definition: BKE_context.h:233
int CTX_data_editable_gpencil_layers(const bContext *C, ListBase *list)
Definition: context.c:1465
int CTX_data_selected_editable_bones(const bContext *C, ListBase *list)
Definition: context.c:1410
struct Mask * CTX_data_edit_mask(const bContext *C)
Definition: context.c:1390
eContextObjectMode
Definition: BKE_context.h:103
@ CTX_MODE_EDIT_GPENCIL
Definition: BKE_context.h:120
@ CTX_MODE_EDIT_CURVE
Definition: BKE_context.h:105
@ CTX_MODE_PAINT_TEXTURE
Definition: BKE_context.h:116
@ CTX_MODE_EDIT_SURFACE
Definition: BKE_context.h:106
@ CTX_MODE_WEIGHT_GPENCIL
Definition: BKE_context.h:122
@ CTX_MODE_PARTICLE
Definition: BKE_context.h:117
@ CTX_MODE_SCULPT
Definition: BKE_context.h:113
@ CTX_MODE_VERTEX_GPENCIL
Definition: BKE_context.h:123
@ CTX_MODE_OBJECT
Definition: BKE_context.h:118
@ CTX_MODE_EDIT_MESH
Definition: BKE_context.h:104
@ CTX_MODE_SCULPT_CURVES
Definition: BKE_context.h:124
@ CTX_MODE_EDIT_TEXT
Definition: BKE_context.h:107
@ CTX_MODE_EDIT_CURVES
Definition: BKE_context.h:111
@ CTX_MODE_EDIT_ARMATURE
Definition: BKE_context.h:108
@ CTX_MODE_SCULPT_GPENCIL
Definition: BKE_context.h:121
@ CTX_MODE_EDIT_LATTICE
Definition: BKE_context.h:110
@ CTX_MODE_PAINT_GPENCIL
Definition: BKE_context.h:119
@ CTX_MODE_PAINT_VERTEX
Definition: BKE_context.h:115
@ CTX_MODE_EDIT_METABALL
Definition: BKE_context.h:109
@ CTX_MODE_PAINT_WEIGHT
Definition: BKE_context.h:114
@ CTX_MODE_POSE
Definition: BKE_context.h:112
struct SpaceSeq * CTX_wm_space_seq(const bContext *C)
Definition: context.c:851
PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type)
Definition: context.c:473
struct SpaceNla * CTX_wm_space_nla(const bContext *C)
Definition: context.c:869
int CTX_data_editable_bones(const bContext *C, ListBase *list)
Definition: context.c:1420
struct SpaceSpreadsheet * CTX_wm_space_spreadsheet(const bContext *C)
Definition: context.c:941
bContextStore * CTX_store_copy(bContextStore *store)
Definition: context.c:209
void CTX_store_free(bContextStore *store)
Definition: context.c:217
struct ViewLayer * CTX_data_view_layer(const bContext *C)
Definition: context.c:1100
int CTX_data_visible_bases(const bContext *C, ListBase *list)
Definition: context.c:1338
struct bGPDlayer * CTX_data_active_gpencil_layer(const bContext *C)
Definition: context.c:1450
struct MovieClip * CTX_data_edit_movieclip(const bContext *C)
Definition: context.c:1385
struct Collection * CTX_data_collection(const bContext *C)
Definition: context.c:1141
struct bGPdata * CTX_data_gpencil_data(const bContext *C)
Definition: context.c:1445
int CTX_data_editable_bases(const bContext *C, ListBase *list)
Definition: context.c:1318
struct wmGizmoGroup * CTX_wm_gizmo_group(const bContext *C)
Definition: context.c:765
struct Depsgraph * CTX_data_ensure_evaluated_depsgraph(const bContext *C)
Definition: context.c:1528
struct Depsgraph * CTX_data_depsgraph_on_load(const bContext *C)
Definition: context.c:1536
void CTX_free(bContext *C)
Definition: context.c:118
ListBase CTX_data_dir_get(const bContext *C)
Definition: context.c:629
struct Object * CTX_data_active_object(const bContext *C)
Definition: context.c:1353
struct View3D * CTX_wm_view3d(const bContext *C)
Definition: context.c:784
bContextStore * CTX_store_add_all(ListBase *contexts, bContextStore *context)
Definition: context.c:156
struct EditBone * CTX_data_active_bone(const bContext *C)
Definition: context.c:1395
void CTX_py_state_pop(bContext *C, struct bContext_PyState *pystate)
Definition: context.c:259
ListBase CTX_data_dir_get_ex(const bContext *C, bool use_store, bool use_rna, bool use_all)
Definition: context.c:552
struct SpaceUserPref * CTX_wm_space_userpref(const bContext *C)
Definition: context.c:914
const char * CTX_data_mode_string(const bContext *C)
struct Depsgraph * CTX_data_expect_evaluated_depsgraph(const bContext *C)
Definition: context.c:1519
eContextResult
Definition: BKE_context.h:70
@ CTX_RESULT_MEMBER_NOT_FOUND
Definition: BKE_context.h:75
@ CTX_RESULT_OK
Definition: BKE_context.h:72
@ CTX_RESULT_NO_DATA
Definition: BKE_context.h:79
int CTX_data_selected_ids(const bContext *C, ListBase *list)
Definition: context.c:1293
struct SpaceGraph * CTX_wm_space_graph(const bContext *C)
Definition: context.c:887
void CTX_data_list_add(bContextDataResult *result, struct ID *id, StructRNA *type, void *data)
Definition: context.c:667
struct bScreen * CTX_wm_screen(const bContext *C)
Definition: context.c:733
struct Image * CTX_data_edit_image(const bContext *C)
Definition: context.c:1375
void CTX_wm_screen_set(bContext *C, struct bScreen *screen)
Definition: context.c:984
void * CTX_wm_region_data(const bContext *C)
Definition: context.c:754
void CTX_wm_window_set(bContext *C, struct wmWindow *win)
Definition: context.c:966
int CTX_data_selected_pose_bones(const bContext *C, ListBase *list)
Definition: context.c:1430
void CTX_data_main_set(bContext *C, struct Main *bmain)
Definition: context.c:1084
void CTX_store_free_list(ListBase *contexts)
Definition: context.c:223
int CTX_data_visible_gpencil_layers(const bContext *C, ListBase *list)
Definition: context.c:1460
struct AssetHandle CTX_wm_asset_handle(const bContext *C, bool *r_is_valid)
Definition: context.c:1480
const char * CTX_wm_operator_poll_msg_get(struct bContext *C, bool *r_free)
Definition: context.c:1057
struct SpaceLink * CTX_wm_space_data(const bContext *C)
Definition: context.c:743
void CTX_data_type_set(struct bContextDataResult *result, short type)
Definition: context.c:701
struct SpaceAction * CTX_wm_space_action(const bContext *C)
Definition: context.c:896
void CTX_data_list_add_ptr(bContextDataResult *result, const PointerRNA *ptr)
Definition: context.c:675
int CTX_data_selectable_bases(const bContext *C, ListBase *list)
Definition: context.c:1348
struct ReportList * CTX_wm_reports(const bContext *C)
Definition: context.c:775
int CTX_data_selected_bases(const bContext *C, ListBase *list)
Definition: context.c:1328
void CTX_data_pointer_set_ptr(bContextDataResult *result, const PointerRNA *ptr)
Definition: context.c:654
void CTX_wm_operator_poll_msg_set_dynamic(bContext *C, const struct bContextPollMsgDyn_Params *params)
Definition: context.c:1049
void CTX_wm_operator_poll_msg_clear(struct bContext *C)
Definition: context.c:1030
struct wmMsgBus * CTX_wm_message_bus(const bContext *C)
Definition: context.c:770
struct ARegion * CTX_wm_region(const bContext *C)
Definition: context.c:749
struct Depsgraph * CTX_data_depsgraph_pointer(const bContext *C)
Definition: context.c:1505
struct SpaceText * CTX_wm_space_text(const bContext *C)
Definition: context.c:806
int CTX_data_selected_nodes(const bContext *C, ListBase *list)
Definition: context.c:1298
int CTX_data_selected_editable_objects(const bContext *C, ListBase *list)
Definition: context.c:1303
void CTX_wm_area_set(bContext *C, struct ScrArea *area)
Definition: context.c:997
void CTX_wm_operator_poll_msg_set(struct bContext *C, const char *msg)
Definition: context.c:1042
struct CacheFile * CTX_data_edit_cachefile(const bContext *C)
Definition: context.c:1400
int CTX_data_editable_gpencil_strokes(const bContext *C, ListBase *list)
Definition: context.c:1470
struct SpaceImage * CTX_wm_space_image(const bContext *C)
Definition: context.c:824
ListBase CTX_data_collection_get(const bContext *C, const char *member)
Definition: context.c:503
void CTX_wm_manager_set(bContext *C, struct wmWindowManager *wm)
Definition: context.c:950
const PointerRNA * CTX_store_ptr_lookup(const bContextStore *store, const char *name, const StructRNA *type CPP_ARG_DEFAULT(nullptr))
int CTX_data_selected_pose_bones_from_active_object(const bContext *C, ListBase *list)
Definition: context.c:1435
struct Main * CTX_data_main(const bContext *C)
Definition: context.c:1074
struct ToolSettings * CTX_data_tool_settings(const bContext *C)
Definition: context.c:1282
struct SpaceConsole * CTX_wm_space_console(const bContext *C)
Definition: context.c:815
struct bContextStoreEntry bContextStoreEntry
struct RegionView3D * CTX_wm_region_view3d(const bContext *C)
Definition: context.c:793
struct SpaceFile * CTX_wm_space_file(const bContext *C)
Definition: context.c:842
struct wmWindow * CTX_wm_window(const bContext *C)
Definition: context.c:723
struct Text * CTX_data_edit_text(const bContext *C)
Definition: context.c:1380
enum eContextObjectMode CTX_data_mode_enum(const bContext *C)
Definition: context.c:1228
struct bPoseChannel * CTX_data_active_pose_bone(const bContext *C)
Definition: context.c:1425
bContextStore * CTX_store_get(bContext *C)
Definition: context.c:183
struct bGPDframe * CTX_data_active_gpencil_frame(const bContext *C)
Definition: context.c:1455
#define CPP_ARG_DEFAULT(default_value)
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:35
These structs are the foundation for all linked lists in the library system.
eObjectMode
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
#define C
Definition: RandGen.cpp:25
Scene scene
SyclQueue void void size_t num_bytes void
#define str(s)
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
static void area(int d1, int d2, int e1, int e2, float weights[2])
Definition: DNA_ID.h:368
Definition: BKE_main.h:121
void(* free_fn)(bContext *C, void *user_data)
Definition: BKE_context.h:213
struct bContextStoreEntry * prev
Definition: BKE_context.h:88
PointerRNA ptr
Definition: BKE_context.h:91
struct bContextStoreEntry * next
Definition: BKE_context.h:88
struct bContextStore * next
Definition: BKE_context.h:95
ListBase entries
Definition: BKE_context.h:97
struct bContextStore * prev
Definition: BKE_context.h:95
void * py_context_orig
Definition: BKE_context.h:157
PointerRNA * ptr
Definition: wm_files.c:3480