Blender V5.0
BKE_screen.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4#pragma once
5
9
10#include <memory>
11#include <string>
12
13#include "BLI_compiler_attrs.h"
14#include "BLI_map.hh"
16#include "BLI_string_ref.hh"
17#include "BLI_vector.hh"
18
19#include "DNA_vec_types.h"
20
21#include "RNA_types.hh"
22
23#include "BKE_context.hh"
24
25namespace blender::bke::id {
26class IDRemapper;
27}
28
29namespace blender::asset_system {
31}
32
33struct ARegion;
34struct AssetShelfType;
35struct BlendDataReader;
36struct BlendLibReader;
37struct BlendWriter;
38struct Header;
39struct ID;
40struct LayoutPanelState;
42struct ListBase;
43struct Menu;
44struct Panel;
45struct Scene;
46struct ScrArea;
47struct ScrAreaMap;
48struct ScrEdge;
49struct ScrVert;
50struct SpaceType;
51struct View3D;
52struct View3DShading;
53struct WorkSpace;
54struct bContext;
55struct bScreen;
56struct uiBlock;
57struct uiLayout;
58struct uiList;
59struct wmDrawBuffer;
60struct wmGizmoMap;
61struct wmKeyConfig;
62struct wmMsgBus;
63struct wmNotifier;
64struct wmTimer;
65struct wmWindow;
66struct wmWindowManager;
67
68/* spacetype has everything stored to get an editor working, it gets initialized via
69 * #ED_spacetypes_init() in `editors/space_api/spacetypes.cc` */
70/* an editor in Blender is a combined ScrArea + SpaceType + SpaceData. */
71
72#define BKE_ST_MAXNAME 64
73
80
81struct SpaceType {
87 int iconid;
88
93 SpaceLink *(*create)(const ScrArea *area, const Scene *scene);
95 void (*free)(SpaceLink *sl);
96
98 void (*init)(wmWindowManager *wm, ScrArea *area);
100 void (*exit)(wmWindowManager *wm, ScrArea *area);
103
105 void (*deactivate)(ScrArea *area);
106
108 void (*refresh)(const bContext *C, ScrArea *area);
109
111 SpaceLink *(*duplicate)(SpaceLink *sl);
112
114 void (*operatortypes)();
116 void (*keymap)(wmKeyConfig *keyconf);
118 void (*dropboxes)();
119
121 void (*gizmos)();
122
125
127 void (*id_remap)(ScrArea *area, SpaceLink *sl, const blender::bke::id::IDRemapper &mappings);
128
135
137 void (*space_subtype_set)(ScrArea *area, int value);
138 void (*space_subtype_item_extend)(bContext *C, EnumPropertyItem **item, int *totitem);
139
143 int (*space_icon_get)(const ScrArea *area);
144
148 void (*blend_read_data)(BlendDataReader *reader, SpaceLink *space_link);
149
153 void (*blend_read_after_liblink)(BlendLibReader *reader, ID *parent_id, SpaceLink *space_link);
154
158 void (*blend_write)(BlendWriter *writer, SpaceLink *space_link);
159
162
163 /* read and write... */
164
167
168 ~SpaceType();
169};
170
171/* Region types are also defined using spacetypes_init, via a callback. */
172
181
191
194 const ScrArea *area;
196
199};
200
201/* #ARegionType::lock */
208
213
215 void (*init)(wmWindowManager *wm, ARegion *region);
217 void (*exit)(wmWindowManager *wm, ARegion *region);
224 bool (*poll)(const RegionPollParams *params);
226 void (*draw)(const bContext *C, ARegion *region);
234 void (*draw_overlay)(const bContext *C, ARegion *region);
236 void (*layout)(const bContext *C, ARegion *region);
238 int (*snap_size)(const ARegion *region, int size, int axis);
243
244 void (*free)(ARegion *);
245
247 void *(*duplicate)(void *poin);
248
250 void (*operatortypes)();
252 void (*keymap)(wmKeyConfig *keyconf);
254 void (*cursor)(wmWindow *win, ScrArea *area, ARegion *region);
255
258
263 void (*on_poll_success)(const bContext *C, ARegion *region);
264
269 void (*on_user_resize)(const ARegion *region);
280 void (*on_view2d_changed)(const bContext *C, ARegion *region);
281
284
287
290
302 short do_lock, lock;
307};
308
309/* Panel types. */
310
311struct PanelType {
313
319 const char *description;
326 char owner_id[128];
341 int order;
342
343 int flag;
344
346 bool (*poll)(const bContext *C, PanelType *pt);
348 void (*draw_header)(const bContext *C, Panel *panel);
350 void (*draw_header_preset)(const bContext *C, Panel *panel);
352 void (*draw)(const bContext *C, Panel *panel);
358
359 /* For instanced panels corresponding to a list: */
360
362 void (*reorder)(bContext *C, Panel *pa, int new_index);
376 void (*set_list_data_expand_flag)(const bContext *C, Panel *pa, short expand_flag);
377
381
384};
385
387enum {
397};
398
405
407 float start_y;
408 float end_y;
409};
410
422
423 void clear()
424 {
425 this->headers.clear();
426 this->bodies.clear();
427 }
428};
429
432 int region_ofsx = 0;
433
442
447 uiBlock *block = nullptr;
448
451
454};
455
456namespace blender::bke {
457
461
464
472
477 int offset_x = 0;
478 int offset_y = 0;
479
481 const char *category = nullptr;
482
487
490
492 char *headerstr = nullptr;
493
496
499
501
504
506 short visible = 0;
507
509 short do_draw = 0;
510
513
516};
517
518} // namespace blender::bke
519
520/* #uiList types. */
521
523using uiListDrawItemFunc = void (*)(uiList *ui_list,
524 const bContext *C,
526 PointerRNA *dataptr,
527 PointerRNA *itemptr,
528 int icon,
529 PointerRNA *active_dataptr,
530 const char *active_propname,
531 int index,
532 int flt_flag);
533
535using uiListDrawFilterFunc = void (*)(uiList *ui_list, const bContext *C, uiLayout *layout);
536
538using uiListFilterItemsFunc = void (*)(uiList *ui_list,
539 const bContext *C,
540 PointerRNA *,
541 const char *propname);
542
545
562
563/* Header types. */
564
571
572 bool (*poll)(const bContext *C, HeaderType *ht);
574 void (*draw)(const bContext *C, Header *header);
575
578};
579
586
587/* Menu types. */
588
589enum class MenuTypeFlag {
599};
601
625
632
633/* Asset shelf types. */
634
635/* #AssetShelfType.flag */
654
655#define ASSET_SHELF_PREVIEW_SIZE_DEFAULT 48
656
660
662
664 std::string activate_operator;
666 std::string drag_operator;
667
669
671
673 bool (*poll)(const bContext *C, const AssetShelfType *shelf_type);
674
679 bool (*asset_poll)(const AssetShelfType *shelf_type,
681
684 const AssetShelfType *shelf_type,
686 uiLayout *layout);
687
688 const AssetWeakReference *(*get_active_asset)(const AssetShelfType *shelf_type);
689
692};
693
694/* Space-types. */
695
696SpaceType *BKE_spacetype_from_id(int spaceid);
697ARegionType *BKE_regiontype_from_id(const SpaceType *st, int regionid);
699void BKE_spacetype_register(std::unique_ptr<SpaceType> st);
700bool BKE_spacetype_exists(int spaceid);
703
704/* Space-data. */
705
710void BKE_spacedata_copylist(ListBase *lb_dst, ListBase *lb_src);
711
720
726 const ScrArea *area,
727 int region_type) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
728
730 void (*func)(ScrArea *area, SpaceLink *sl, ID *old_id, ID *new_id));
734void BKE_spacedata_id_unref(ScrArea *area, SpaceLink *sl, ID *id);
735
736/* Area/regions. */
737
738ARegion *BKE_area_region_copy(const SpaceType *st, const ARegion *region);
739
741
745void BKE_area_region_free(SpaceType *st, ARegion *region);
750Panel *BKE_panel_new(PanelType *panel_type);
751void BKE_panel_free(Panel *panel);
755void BKE_screen_area_free(ScrArea *area);
760void BKE_region_callback_free_gizmomap_set(void (*callback)(wmGizmoMap *));
762
768 blender::StringRef idname,
769 bool default_closed);
770
777ARegion *BKE_region_find_in_listbase_by_type(const ListBase *regionbase, const int region_type);
784ARegion *BKE_area_find_region_type(const ScrArea *area, int region_type);
786ARegion *BKE_area_find_region_xy(const ScrArea *area, int regiontype, const int xy[2])
787 ATTR_NONNULL(3);
788
792ARegion *BKE_screen_find_region_type(const bScreen *screen, int region_type) ATTR_NONNULL(1);
797 int regiontype,
798 const int xy[2]) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1, 3);
799
800ARegion *BKE_screen_find_main_region_at_xy(const bScreen *screen, int space_type, const int xy[2])
801 ATTR_NONNULL(1, 3);
808 ATTR_NONNULL(1, 2);
812std::optional<std::string> BKE_screen_path_from_screen_to_space(const PointerRNA *ptr);
817ScrArea *BKE_screen_find_big_area(const bScreen *screen, int spacetype, short min);
819 int spacetype,
820 const int xy[2]) ATTR_NONNULL(1, 3);
821ScrArea *BKE_screen_find_area_xy(const bScreen *screen, int spacetype, const int xy[2])
822 ATTR_NONNULL(1, 3);
823
825
831
832void BKE_screen_view3d_sync(View3D *v3d, Scene *scene);
833void BKE_screen_view3d_scene_sync(bScreen *screen, Scene *scene);
836
837/* Zoom factor conversion. */
838
839float BKE_screen_view3d_zoom_to_fac(float camzoom);
840float BKE_screen_view3d_zoom_from_fac(float zoomfac);
841
843
844/* Screen. */
845
851
855void BKE_screen_free_data(bScreen *screen);
857
864
866
867/* .blend file I/O */
868
871
882
889 ID *parent_id,
890 ScrArea *area);
int(*)(const bContext *C, const char *member, bContextDataResult *result) bContextDataCallback
void(*)(uiList *ui_list, const bContext *C, PointerRNA *, const char *propname) uiListFilterItemsFunc
ARegion * BKE_spacedata_find_region_type(const SpaceLink *slink, const ScrArea *area, int region_type) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
Definition screen.cc:437
void BKE_screen_remove_unused_scrverts(bScreen *screen)
Definition screen.cc:810
AssetShelfTypeFlag
@ ASSET_SHELF_TYPE_FLAG_MAX
@ ASSET_SHELF_TYPE_FLAG_ACTIVATE_FOR_CONTEXT_MENU
@ ASSET_SHELF_TYPE_FLAG_NO_ASSET_DRAG
@ ASSET_SHELF_TYPE_FLAG_STORE_CATALOGS_IN_PREFS
@ ASSET_SHELF_TYPE_FLAG_DEFAULT_VISIBLE
void BKE_screen_view3d_shading_blend_read_data(BlendDataReader *reader, View3DShading *shading)
Definition screen.cc:1096
ScrArea ScrArea void BKE_screen_gizmo_tag_refresh(bScreen *screen)
Definition screen.cc:487
ARegion ARegion ScrArea * BKE_screen_find_area_from_space(const bScreen *screen, const SpaceLink *sl) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
void BKE_screen_area_map_blend_write(BlendWriter *writer, ScrAreaMap *area_map)
Definition screen.cc:1202
void BKE_spacetypes_free()
Definition screen.cc:252
void BKE_screen_remove_unused_scredges(bScreen *screen)
Definition screen.cc:765
void BKE_spacedata_copylist(ListBase *lb_dst, ListBase *lb_src)
Definition screen.cc:406
bool BKE_screen_is_used(const bScreen *screen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
Definition screen.cc:1054
float BKE_screen_view3d_zoom_from_fac(float zoomfac)
Definition screen.cc:1044
void BKE_screen_area_blend_read_after_liblink(BlendLibReader *reader, ID *parent_id, ScrArea *area)
Definition screen.cc:1470
void BKE_screen_remove_double_scrverts(bScreen *screen)
Definition screen.cc:697
bool BKE_screen_blend_read_data(BlendDataReader *reader, bScreen *screen)
Definition screen.cc:141
#define BKE_ST_MAXNAME
Definition BKE_screen.hh:72
ARegion * BKE_screen_find_region_type(const bScreen *screen, int region_type) ATTR_NONNULL(1)
Definition screen.cc:891
ARegion * BKE_area_find_region_xy(const ScrArea *area, int regiontype, const int xy[2]) ATTR_NONNULL(3)
Definition screen.cc:875
void BKE_spacetype_register(std::unique_ptr< SpaceType > st)
Definition screen.cc:282
ARegion * BKE_area_find_region_active_win(const ScrArea *area)
Definition screen.cc:859
void(*)(uiList *ui_list, const bContext *C, uiLayout *layout) uiListDrawFilterFunc
void BKE_spacedata_freelist(ListBase *lb)
Definition screen.cc:305
ARegion * BKE_area_region_new()
Definition screen.cc:387
ScrArea * BKE_screen_area_map_find_area_xy(const ScrAreaMap *areamap, int spacetype, const int xy[2]) ATTR_NONNULL(1
MenuTypeFlag
void BKE_screen_view3d_shading_blend_write(BlendWriter *writer, View3DShading *shading)
Definition screen.cc:1089
void BKE_region_callback_free_gizmomap_set(void(*callback)(wmGizmoMap *))
Definition screen.cc:515
void BKE_screen_sort_scrvert(ScrVert **v1, ScrVert **v2)
Definition screen.cc:688
ScrEdge * BKE_screen_find_edge(const bScreen *screen, ScrVert *v1, ScrVert *v2)
Definition screen.cc:676
ScrArea ScrArea * BKE_screen_find_area_xy(const bScreen *screen, int spacetype, const int xy[2]) ATTR_NONNULL(1
ARegion ARegion ScrArea std::optional< std::string > BKE_screen_path_from_screen_to_space(const PointerRNA *ptr)
Definition screen.cc:924
void BKE_spacedata_callback_id_remap_set(void(*func)(ScrArea *area, SpaceLink *sl, ID *old_id, ID *new_id))
Definition screen.cc:465
void BKE_screen_area_free(ScrArea *area)
Definition screen.cc:638
bool BKE_spacetype_exists(int spaceid)
Definition screen.cc:294
void(*)(uiList *ui_list, wmRegionListenerParams *params) uiListListener
void BKE_screen_area_map_free(ScrAreaMap *area_map) ATTR_NONNULL()
Definition screen.cc:654
SpaceType * BKE_spacetype_from_id(int spaceid)
Definition screen.cc:257
void(*)(uiList *ui_list, const bContext *C, uiLayout *layout, PointerRNA *dataptr, PointerRNA *itemptr, int icon, PointerRNA *active_dataptr, const char *active_propname, int index, int flt_flag) uiListDrawItemFunc
ARegionType * BKE_regiontype_from_id(const SpaceType *st, int regionid)
Definition screen.cc:267
void BKE_screen_header_alignment_reset(bScreen *screen)
Definition screen.cc:1059
ARegion * BKE_region_find_in_listbase_by_type(const ListBase *regionbase, const int region_type)
Definition screen.cc:835
void BKE_spacedata_draw_locks(ARegionDrawLockFlags lock_flags)
Definition screen.cc:423
void BKE_spacedata_id_unref(ScrArea *area, SpaceLink *sl, ID *id)
Definition screen.cc:470
void BKE_area_region_free(SpaceType *st, ARegion *region)
Definition screen.cc:597
ScrArea * BKE_screen_find_big_area(const bScreen *screen, int spacetype, short min)
Definition screen.cc:944
blender::Span< std::unique_ptr< SpaceType > > BKE_spacetypes_list()
Definition screen.cc:277
@ PANEL_TYPE_NO_HEADER
@ PANEL_TYPE_INSTANCED
@ PANEL_TYPE_DEFAULT_CLOSED
@ PANEL_TYPE_LAYOUT_VERT_BAR
@ PANEL_TYPE_NO_SEARCH
@ PANEL_TYPE_HEADER_EXPAND
bool BKE_screen_is_fullscreen_area(const bScreen *screen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
Definition screen.cc:1049
bool BKE_screen_area_map_blend_read_data(BlendDataReader *reader, ScrAreaMap *area_map)
Definition screen.cc:1423
void BKE_screen_view3d_scene_sync(bScreen *screen, Scene *scene)
Definition screen.cc:1004
void BKE_panel_free(Panel *panel)
Definition screen.cc:563
ARegion ARegion * BKE_screen_find_main_region_at_xy(const bScreen *screen, int space_type, const int xy[2]) ATTR_NONNULL(1
void BKE_screen_remove_double_scredges(bScreen *screen)
Definition screen.cc:749
void BKE_region_callback_refresh_tag_gizmomap_set(void(*callback)(wmGizmoMap *))
Definition screen.cc:482
void BKE_screen_runtime_refresh_for_blendfile(bScreen *screen)
Definition screen.cc:502
float BKE_screen_view3d_zoom_to_fac(float camzoom)
Definition screen.cc:1039
ARegion * BKE_screen_find_region_xy(const bScreen *screen, int regiontype, const int xy[2]) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
Panel * BKE_panel_new(PanelType *panel_type)
Definition screen.cc:546
void BKE_screen_view3d_shading_init(View3DShading *shading)
Definition screen.cc:1017
ARegion * BKE_area_find_region_type(const ScrArea *area, int region_type)
Definition screen.cc:846
LayoutPanelState * BKE_panel_layout_panel_state_ensure(Panel *panel, blender::StringRef idname, bool default_closed)
Definition screen.cc:520
ARegion * BKE_area_region_copy(const SpaceType *st, const ARegion *region)
Definition screen.cc:350
void BKE_screen_view3d_sync(View3D *v3d, Scene *scene)
Definition screen.cc:986
void BKE_area_region_panels_free(ListBase *panels)
Definition screen.cc:585
ARegionDrawLockFlags
@ REGION_DRAW_LOCK_ALL
@ REGION_DRAW_LOCK_BAKING
@ REGION_DRAW_LOCK_NONE
@ REGION_DRAW_LOCK_RENDER
void BKE_screen_view3d_do_versions_250(View3D *v3d, ListBase *regions)
Definition screen.cc:1329
void BKE_screen_free_data(bScreen *screen)
Definition screen.cc:665
void BKE_screen_foreach_id_screen_area(LibraryForeachIDData *data, ScrArea *area)
Definition screen.cc:97
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_NONNULL(...)
#define ENUM_OPERATORS(_type, _max)
#define C
Definition RandGen.cpp:29
BMesh const char void * data
ATTR_WARN_UNUSED_RESULT const BMVert * v2
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
VecBase< float, 2 > float2
#define min(a, b)
Definition sort.cc:36
bool(* poll)(const RegionPollParams *params)
void(* exit)(wmWindowManager *wm, ARegion *region)
void(* free)(ARegion *)
void(* on_poll_success)(const bContext *C, ARegion *region)
bool clip_gizmo_events_by_ui
void(* keymap)(wmKeyConfig *keyconf)
void(* message_subscribe)(const wmRegionMessageSubscribeParams *params)
void(* cursor)(wmWindow *win, ScrArea *area, ARegion *region)
ARegionType * next
void(* listener)(const wmRegionListenerParams *params)
void(* on_view2d_changed)(const bContext *C, ARegion *region)
ListBase drawcalls
ListBase headertypes
bContextDataCallback context
void(* draw)(const bContext *C, ARegion *region)
void(* layout)(const bContext *C, ARegion *region)
ARegionType * prev
short event_cursor
void(* on_user_resize)(const ARegion *region)
ListBase paneltypes
void(* draw_overlay)(const bContext *C, ARegion *region)
int(* snap_size)(const ARegion *region, int size, int axis)
void(* init)(wmWindowManager *wm, ARegion *region)
void(* operatortypes)()
short default_preview_size
std::string activate_operator
char idname[BKE_ST_MAXNAME]
void(* draw_context_menu)(const bContext *C, const AssetShelfType *shelf_type, const blender::asset_system::AssetRepresentation *asset, uiLayout *layout)
bool(* poll)(const bContext *C, const AssetShelfType *shelf_type)
AssetShelfTypeFlag flag
bool(* asset_poll)(const AssetShelfType *shelf_type, const blender::asset_system::AssetRepresentation *asset)
ExtensionRNA rna_ext
std::string drag_operator
HeaderType * next
void(* draw)(const bContext *C, Header *header)
char idname[BKE_ST_MAXNAME]
HeaderType * prev
bool(* poll)(const bContext *C, HeaderType *ht)
ExtensionRNA rna_ext
uiLayout * layout
HeaderType * type
Definition DNA_ID.h:414
PointerRNA open_owner_ptr
std::string open_prop_name
blender::Vector< LayoutPanelBody > bodies
blender::Vector< LayoutPanelHeader > headers
MenuTypeFlag flag
const char * description
char label[BKE_ST_MAXNAME]
bool(* poll)(const bContext *C, MenuType *mt)
MenuType * prev
MenuType * next
ExtensionRNA rna_ext
char idname[BKE_ST_MAXNAME]
void(* draw)(const bContext *C, Menu *menu)
void(* listener)(const wmRegionListenerParams *params)
char owner_id[128]
char translation_context[BKE_ST_MAXNAME]
uiLayout * layout
MenuType * type
ExtensionRNA rna_ext
void(* reorder)(bContext *C, Panel *pa, int new_index)
void(* set_list_data_expand_flag)(const bContext *C, Panel *pa, short expand_flag)
void(* draw)(const bContext *C, Panel *panel)
short region_type
PanelType * prev
char idname[BKE_ST_MAXNAME]
bool(* poll)(const bContext *C, PanelType *pt)
char pin_to_last_property[BKE_ST_MAXNAME]
void(* listener)(const wmRegionListenerParams *params)
short space_type
char context[BKE_ST_MAXNAME]
char translation_context[BKE_ST_MAXNAME]
char owner_id[128]
char active_property[BKE_ST_MAXNAME]
ListBase children
char category[BKE_ST_MAXNAME]
blender::float2 offset_units_xy
void(* draw_header_preset)(const bContext *C, Panel *panel)
char label[BKE_ST_MAXNAME]
short(* get_list_data_expand_flag)(const bContext *C, Panel *pa)
char parent_id[BKE_ST_MAXNAME]
PanelType * parent
void(* draw_header)(const bContext *C, Panel *panel)
PanelType * next
const char * description
bContextStore * context
uiBlock * block
PointerRNA * custom_data_ptr
LayoutPanels layout_panels
const ARegion * region
const bContext * context
const bScreen * screen
const ScrArea * area
ListBase regiontypes
void(* id_remap)(ScrArea *area, SpaceLink *sl, const blender::bke::id::IDRemapper &mappings)
void(* free)(SpaceLink *sl)
Definition BKE_screen.hh:95
void(* blend_read_data)(BlendDataReader *reader, SpaceLink *space_link)
void(* refresh)(const bContext *C, ScrArea *area)
void(* operatortypes)()
int(* space_subtype_get)(ScrArea *area)
void(* keymap)(wmKeyConfig *keyconf)
int(* space_icon_get)(const ScrArea *area)
void(* exit)(wmWindowManager *wm, ScrArea *area)
void(* init)(wmWindowManager *wm, ScrArea *area)
Definition BKE_screen.hh:98
void(* blend_read_after_liblink)(BlendLibReader *reader, ID *parent_id, SpaceLink *space_link)
void(* space_subtype_item_extend)(bContext *C, EnumPropertyItem **item, int *totitem)
void(* listener)(const wmSpaceTypeListenerParams *params)
void(* deactivate)(ScrArea *area)
blender::StringRefNull(* space_name_get)(const ScrArea *area)
bContextDataCallback context
void(* dropboxes)()
~SpaceType()
Definition screen.cc:223
char name[BKE_ST_MAXNAME]
Definition BKE_screen.hh:83
void(* gizmos)()
void(* space_subtype_set)(ScrArea *area, int value)
void(* blend_write)(BlendWriter *writer, SpaceLink *space_link)
void(* foreach_id)(SpaceLink *space_link, LibraryForeachIDData *data)
Map< std::string, uiBlock * > block_name_map
struct ARegionType * type
char idname[BKE_ST_MAXNAME]
uiListFilterItemsFunc filter_items
ExtensionRNA rna_ext
uiListDrawFilterFunc draw_filter
uiListType * prev
uiListType * next
uiListDrawItemFunc draw_item
uiListListener listener
const wmNotifier * notifier
const wmNotifier * notifier
Definition BKE_screen.hh:77
int xy[2]
Definition wm_draw.cc:178
PointerRNA * ptr
Definition wm_files.cc:4238