diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_screen.h')
-rw-r--r-- | source/blender/blenkernel/BKE_screen.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h index c49b6e27bba..fc7146b8cf4 100644 --- a/source/blender/blenkernel/BKE_screen.h +++ b/source/blender/blenkernel/BKE_screen.h @@ -34,6 +34,7 @@ extern "C" { struct ARegion; struct Header; struct ID; +struct LibraryForeachIDData; struct ListBase; struct Menu; struct Panel; @@ -228,6 +229,25 @@ typedef struct PanelType { /* draw entirely, view changes should be handled here */ void (*draw)(const struct bContext *C, struct Panel *panel); + /* For instanced panels corresponding to a list: */ + + /** Reorder function, called when drag and drop finishes. */ + void (*reorder)(struct bContext *C, struct Panel *pa, int new_index); + /** + * Get the panel and sub-panel's expansion state from the expansion flag in the corresponding + * data item. Called on draw updates. + * \note Sub-panels are indexed in depth first order, + * the visual order you would see if all panels were expanded. + */ + short (*get_list_data_expand_flag)(const struct bContext *C, struct Panel *pa); + /** + * Set the expansion bit-field from the closed / open state of this panel and its sub-panels. + * Called when the expansion state of the panel changes with user input. + * \note Sub-panels are indexed in depth first order, + * the visual order you would see if all panels were expanded. + */ + void (*set_list_data_expand_flag)(const struct bContext *C, struct Panel *pa, short expand_flag); + /* sub panels */ struct PanelType *parent; ListBase children; @@ -389,6 +409,8 @@ float BKE_screen_view3d_zoom_from_fac(float zoomfac); void BKE_screen_view3d_shading_init(struct View3DShading *shading); /* screen */ +void BKE_screen_foreach_id_screen_area(struct LibraryForeachIDData *data, struct ScrArea *area); + void BKE_screen_free(struct bScreen *screen); void BKE_screen_area_map_free(struct ScrAreaMap *area_map) ATTR_NONNULL(); |