45#include "RNA_prototypes.hh"
121 if (sbuts->
runtime !=
nullptr) {
132 if (sbuts->
runtime ==
nullptr) {
145 sbutsn->
path =
nullptr;
147 if (sfile_old->
runtime !=
nullptr) {
182 constexpr std::array<blender::StringRefNull, BCONTEXT_TOT> filter_items = {
183 "show_properties_tool",
"show_properties_render",
184 "show_properties_output",
"show_properties_view_layer",
185 "show_properties_scene",
"show_properties_world",
186 "show_properties_collection",
"show_properties_object",
187 "show_properties_modifiers",
"show_properties_effects",
188 "show_properties_particles",
"show_properties_physics",
189 "show_properties_constraints",
"show_properties_data",
190 "show_properties_bone",
"show_properties_bone_constraints",
191 "show_properties_material",
"show_properties_texture",
192 "show_properties_strip",
"show_properties_strip_modifier",
204 layout->
op(
"SCREEN_OT_region_toggle",
IFACE_(
"Hide"), ICON_NONE);
213 auto add_spacer = [&]() {
220 if (sbuts->
pathflag & (1 << tab) && (!apply_filter ||
filter & (1 << tab))) {
300 return "bone_constraint";
306 return "strip_modifier";
324 ®ion->
runtime->type->paneltypes,
377 C, region, ®ion->
runtime->type->paneltypes, contexts,
nullptr);
388 int current_tab_index = 0;
389 for (
int i = 0;
i < context_tabs_array.
size();
i++) {
390 if (sbuts->
mainb == context_tabs_array[
i]) {
391 current_tab_index =
i;
397 for (
int i = current_tab_index;
i < context_tabs_array.
size();
i++) {
405 for (
int i = 0;
i < current_tab_index;
i++) {
421 ScrArea area_copy = blender::dna::shallow_copy(*area_original);
425 region_copy->
runtime->visible =
true;
430 sbuts_copy.
path =
nullptr;
438 for (
int i = 0;
i < context_tabs_array.
size();
i++) {
440 if (context_tabs_array[
i] == -1) {
445 if (context_tabs_array[
i] == sbuts->
mainb) {
481 bool current_tab_has_search_match =
false;
484 current_tab_has_search_match =
true;
489 int current_tab_index = -1;
491 if (context_tabs_array[
i] == sbuts->
mainb) {
492 current_tab_index =
i;
502 if (!current_tab_has_search_match) {
525 for (
int i = old_index;
i < tabs_array_no_filter.
size();
i += iter_step) {
534 if (found_tab_index != -1) {
535 new_tab = tabs_array[found_tab_index];
547 if (!tab_was_hidden) {
554 if (
int(new_tab) == -1) {
558 if (
int(new_tab) == -1) {
563 sbuts->
mainb = new_tab;
657 msg_sub_value_region_tag_redraw.
owner = region;
658 msg_sub_value_region_tag_redraw.
user_data = region;
710 msg_sub_value_region_tag_redraw.
owner = region;
711 msg_sub_value_region_tag_redraw.
user_data = region;
718 mbus, SpaceImageEditor, ui_mode, &msg_sub_value_region_tag_redraw);
728 if (sbuts->
mainb == buttons) {
973 for (
int i = 0;
i < path->
len;
i++) {
980 for (
int j =
i; j < path->
len; j++) {
991 for (
int j =
i; j < path->
len; j++) {
1005 if (path->
len == 0 && sbuts->
path) {
1007 sbuts->
path =
nullptr;
1030 if (sbuts->
pinid ==
nullptr) {
1037 sbuts->
path =
nullptr;
1059 sbuts->
path =
nullptr;
1072 if (sbuts->
pinid ==
nullptr) {
1090 std::unique_ptr<SpaceType> st = std::make_unique<SpaceType>();
bScreen * CTX_wm_screen(const bContext *C)
SpaceProperties * CTX_wm_space_properties(const bContext *C)
ScrArea * CTX_wm_area(const bContext *C)
void CTX_wm_area_set(bContext *C, ScrArea *area)
void CTX_wm_region_set(bContext *C, ARegion *region)
#define BKE_LIB_FOREACHID_PROCESS_IDSUPER(data_, id_super_, cb_flag_)
@ IDWALK_CB_DIRECT_WEAK_LINK
#define BKE_LIB_FOREACHID_PROCESS_ID(data_, id_, cb_flag_)
LibraryForeachIDFlag BKE_lib_query_foreachid_process_flags_get(const LibraryForeachIDData *data)
@ ID_REMAP_RESULT_SOURCE_REMAPPED
@ ID_REMAP_RESULT_SOURCE_UNASSIGNED
@ ID_REMAP_RESULT_SOURCE_NOT_MAPPABLE
@ ID_REMAP_RESULT_SOURCE_UNAVAILABLE
const ModifierTypeInfo * BKE_modifier_get_info(ModifierType type)
void BKE_spacetype_register(std::unique_ptr< SpaceType > st)
ARegion * BKE_area_region_new()
void BKE_area_region_free(SpaceType *st, ARegion *region)
@ PANEL_TYPE_LAYOUT_VERT_BAR
ARegion * BKE_area_region_copy(const SpaceType *st, const ARegion *region)
const ShaderFxTypeInfo * BKE_shaderfx_get_info(ShaderFxType type)
#define BLI_assert_unreachable()
#define BLI_BITMAP_NEW(_num, _alloc_string)
#define BLI_BITMAP_TEST(_bitmap, _index)
#define BLI_BITMAP_SET(_bitmap, _index, _set)
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE void BLI_listbase_clear(ListBase *lb)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_addhead(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define STRNCPY_UTF8(dst, src)
#define BLO_write_struct(writer, struct_name, data_ptr)
@ RGN_FLAG_SEARCH_FILTER_UPDATE
@ RGN_FLAG_NO_USER_RESIZE
@ RGN_FLAG_INDICATE_OVERFLOW
@ RGN_FLAG_SEARCH_FILTER_ACTIVE
@ NUM_STRIP_MODIFIER_TYPES
@ eShaderFxType_Light_deprecated
@ BCONTEXT_BONE_CONSTRAINT
@ BCONTEXT_STRIP_MODIFIER
void ED_area_tag_redraw(ScrArea *area)
bool ED_region_property_search(const bContext *C, ARegion *region, ListBase *paneltypes, const char *contexts[], const char *category_override)
void ED_region_header(const bContext *C, ARegion *region)
void ED_region_header_init(ARegion *region)
void ED_region_panels_layout(const bContext *C, ARegion *region)
void ED_region_panels_init(wmWindowManager *wm, ARegion *region)
void ED_region_panels_layout_ex(const bContext *C, ARegion *region, ListBase *paneltypes, blender::wm::OpCallContext op_context, const char *contexts[], const char *category_override)
void ED_region_tag_redraw(ARegion *region)
void ED_screens_region_flip_menu_create(bContext *C, uiLayout *layout, void *arg)
void ED_region_do_msg_notify_tag_redraw(bContext *C, wmMsgSubscribeKey *msg_key, wmMsgSubscribeValue *msg_val)
void ED_region_panels_draw(const bContext *C, ARegion *region)
void ED_view3d_buttons_region_layout_ex(const bContext *C, ARegion *region, const char *category_override)
Read Guarded memory(de)allocation.
void UI_blocklist_free(const bContext *C, ARegion *region)
bool UI_panel_matches_search_filter(const Panel *panel)
bool UI_panel_is_active(const Panel *panel)
View2D * UI_view2d_fromcontext(const bContext *C)
#define ND_RENDER_OPTIONS
#define ND_SHADING_PREVIEW
#define ND_SPACE_PROPERTIES
#define ND_BONE_COLLECTION
BMesh const char void * data
int buttons_context(const bContext *C, const char *member, bContextDataResult *result)
void buttons_context_compute(const bContext *C, SpaceProperties *sbuts)
void buttons_context_register(ARegionType *art)
int64_t first_index_of(const T &value) const
int64_t first_index_of_try(const T &value) const
constexpr int64_t size() const
void append(const T &value)
const T & last(const int64_t n=0) const
IndexRange index_range() const
IDRemapperApplyResult apply(ID **r_id_ptr, IDRemapperApplyOptions options, ID *id_self=nullptr) const
void * MEM_mallocN(size_t len, const char *str)
void * MEM_callocN(size_t len, const char *str)
void * MEM_dupallocN(const void *vmemh)
void MEM_freeN(void *vmemh)
const StripModifierTypeInfo * modifier_type_info_get(int type)
PointerRNA RNA_pointer_create_discrete(ID *id, StructRNA *type, void *data)
PointerRNA RNA_id_pointer_create(ID *id)
void(* message_subscribe)(const wmRegionMessageSubscribeParams *params)
void(* listener)(const wmRegionListenerParams *params)
void(* draw)(const bContext *C, ARegion *region)
void(* layout)(const bContext *C, ARegion *region)
void(* init)(wmWindowManager *wm, ARegion *region)
ARegionRuntimeHandle * runtime
struct ButsTextureUser * user
void(* panel_register)(ARegionType *region_type)
void(* panel_register)(struct ARegionType *region_type)
BLI_bitmap * tab_search_results
char search_string[UI_MAX_NAME_STR]
struct SpaceProperties_Runtime * runtime
void(* panel_register)(ARegionType *region_type)
void operator_context_set(blender::wm::OpCallContext opcontext)
PointerRNA op(wmOperatorType *ot, std::optional< blender::StringRef > name, int icon, blender::wm::OpCallContext context, eUI_Item_Flag flag)
void prop(PointerRNA *ptr, PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, std::optional< blender::StringRef > name_opt, int icon, std::optional< blender::StringRef > placeholder=std::nullopt)
WindowManagerRuntimeHandle * runtime
wmEventHandler_Keymap * WM_event_add_keymap_handler(ListBase *handlers, wmKeyMap *keymap)
wmKeyMap * WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
#define WM_msg_subscribe_rna_anon_prop(mbus, type_, prop_, value)
void WM_operatortype_append(void(*opfunc)(wmOperatorType *))