|
Blender V5.0
|
#include "BLI_listbase.h"#include "BLI_string_utf8.h"#include "MEM_guardedalloc.h"#include "BKE_context.hh"#include "BKE_library.hh"#include "BKE_modifier.hh"#include "BKE_screen.hh"#include "DNA_object_types.h"#include "DNA_particle_types.h"#include "DNA_screen_types.h"#include "ED_object.hh"#include "BLT_translation.hh"#include "UI_interface.hh"#include "UI_interface_layout.hh"#include "UI_resources.hh"#include "RNA_access.hh"#include "RNA_prototypes.hh"#include "WM_api.hh"#include "WM_types.hh"#include "MOD_ui_common.hh"Go to the source code of this file.
Functions | |
| static bool | modifier_ui_poll (const bContext *C, PanelType *) |
Panel Drag and Drop, Expansion Saving | |
| static void | modifier_reorder (bContext *C, Panel *panel, int new_index) |
| static short | get_modifier_expand_flag (const bContext *, Panel *panel) |
| static void | set_modifier_expand_flag (const bContext *, Panel *panel, short expand_flag) |
Modifier Registration Helpers | |
| PanelType * | modifier_panel_register (ARegionType *region_type, ModifierType type, PanelDrawFn draw) |
| PanelType * | modifier_subpanel_register (ARegionType *region_type, const char *name, const char *label, PanelDrawFn draw_header, PanelDrawFn draw, PanelType *parent) |
Modifier Panel Layouts | |
| #define | ERROR_LIBDATA_MESSAGE N_("External library data") |
| void | modifier_error_message_draw (uiLayout *layout, PointerRNA *ptr) |
| PointerRNA * | modifier_panel_get_property_pointers (Panel *panel, PointerRNA *r_ob_ptr) |
| void | modifier_vgroup_ui (uiLayout *layout, PointerRNA *ptr, PointerRNA *ob_ptr, const StringRefNull vgroup_prop, const std::optional< StringRefNull > invert_vgroup_prop, const std::optional< StringRefNull > text) |
| void | modifier_grease_pencil_curve_header_draw (const bContext *, Panel *panel) |
| void | modifier_grease_pencil_curve_panel_draw (const bContext *, Panel *panel) |
| static int | modifier_is_simulation (const ModifierData *md) |
| static bool | modifier_can_delete (ModifierData *md) |
| static void | modifier_ops_extra_draw (bContext *C, uiLayout *layout, void *md_v) |
| static void | modifier_panel_header (const bContext *C, Panel *panel) |
| #define ERROR_LIBDATA_MESSAGE N_("External library data") |
Gets RNA pointers for the active object and the panel's modifier data. Also locks the layout if the modifier is from a linked object, and sets the context pointer.
Definition at line 107 of file MOD_ui_common.cc.
Definition at line 72 of file MOD_ui_common.cc.
References PointerRNA::data, ModifierData::ui_expand_flag, and UI_panel_custom_data_get().
Referenced by modifier_panel_register().
|
static |
Definition at line 189 of file MOD_ui_common.cc.
References ELEM, eModifierType_ParticleSystem, PART_FLUID, PART_FLUID_BUBBLE, PART_FLUID_FLIP, PART_FLUID_FOAM, PART_FLUID_FOAMBUBBLE, PART_FLUID_SPRAY, PART_FLUID_SPRAYBUBBLE, PART_FLUID_SPRAYFOAM, PART_FLUID_SPRAYFOAMBUBBLE, PART_FLUID_TRACER, and ModifierData::type.
Referenced by modifier_panel_header().
| void modifier_error_message_draw | ( | uiLayout * | layout, |
| PointerRNA * | ptr ) |
Draw modifier error message.
Definition at line 92 of file MOD_ui_common.cc.
References ModifierData::error, uiLayout::label(), ptr, uiLayout::row(), and RPT_.
Referenced by blender::nodes::draw_geometry_nodes_modifier_ui(), falloff_panel_draw(), blender::panel_draw(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), and panel_draw().
Definition at line 145 of file MOD_ui_common.cc.
References Panel::layout, modifier_panel_get_property_pointers(), uiLayout::prop(), ptr, and UI_ITEM_NONE.
Definition at line 154 of file MOD_ui_common.cc.
References Panel::layout, modifier_panel_get_property_pointers(), ptr, and uiTemplateCurveMapping().
|
static |
Check whether Modifier is a simulation or not. Used for switching to the physics/particles context tab.
Definition at line 167 of file MOD_ui_common.cc.
References ELEM, eModifierType_Cloth, eModifierType_Collision, eModifierType_DynamicPaint, eModifierType_Fluid, eModifierType_Fluidsim, eModifierType_ParticleSystem, eModifierType_Softbody, eModifierType_Surface, and ModifierData::type.
Referenced by modifier_panel_header().
Definition at line 212 of file MOD_ui_common.cc.
References BKE_modifier_is_non_geometrical(), BKE_modifier_is_same_topology(), BLI_listbase_count(), BLT_I18NCONTEXT_OPERATOR_DEFAULT, C, blender::ed::object::context_active_object(), uiLayout::context_ptr_set(), CTX_IFACE_, ELEM, eModifierType_Cloth, eModifierType_Fluid, eModifierType_Fluidsim, eModifierType_Nodes, eModifierType_ParticleSystem, eModifierType_Softbody, Object::id, IFACE_, blender::wm::InvokeDefault, Object::modifiers, OB_GREASE_PENCIL, uiLayout::op(), uiLayout::operator_context_set(), uiLayout::prop(), ptr, RNA_boolean_set(), RNA_int_set(), RNA_pointer_create_discrete(), uiLayout::separator(), ModifierData::type, Object::type, UI_ITEM_NONE, and uiLayout::ui_units_x_set().
Referenced by modifier_panel_header().
| PointerRNA * modifier_panel_get_property_pointers | ( | Panel * | panel, |
| PointerRNA * | r_ob_ptr ) |
Definition at line 108 of file MOD_ui_common.cc.
References BLI_assert, uiLayout::block(), ERROR_LIBDATA_MESSAGE, ID_IS_EDITABLE, Panel::layout, ptr, RNA_pointer_create_discrete(), RNA_pointer_is_null(), RNA_struct_is_a(), UI_block_lock_set(), UI_panel_context_pointer_set(), and UI_panel_custom_data_get().
Referenced by advanced_panel_draw(), advanced_panel_draw(), axis_mapping_panel_draw(), blender::bake_panel_draw(), caps_panel_draw(), blender::chaining_panel_draw(), clamp_panel_draw(), blender::composition_panel_draw(), constant_offset_draw(), constant_offset_header_draw(), data_panel_draw(), edge_data_panel_draw(), edge_panel_draw(), edge_panel_draw_header(), blender::edge_types_panel_draw(), face_corner_panel_draw(), face_corner_panel_draw_header(), face_corner_uv_panel_draw(), face_corner_vcol_panel_draw(), blender::face_mark_panel_draw(), blender::face_mark_panel_draw_header(), face_panel_draw(), face_panel_draw_header(), falloff_panel_draw(), falloff_panel_draw(), falloff_panel_draw(), falloff_panel_draw(), generate_panel_draw(), geometry_panel_draw(), get_show_adaptive_options(), influence_panel_draw(), influence_panel_draw(), influence_panel_draw(), blender::intersection_panel_draw(), layers_panel_draw(), blender::material_mask_panel_draw(), blender::material_mask_panel_draw_header(), materials_panel_draw(), mix_mode_panel_draw(), modifier_grease_pencil_curve_header_draw(), modifier_grease_pencil_curve_panel_draw(), normals_panel_draw(), normals_panel_draw(), object_offset_draw(), object_offset_header_draw(), blender::occlusion_panel_draw(), offset_panel_draw(), blender::options_light_reference_draw(), blender::options_panel_draw(), override_layers_panel_draw(), blender::panel_draw(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), path_panel_draw(), path_panel_draw_header(), position_panel_draw(), profile_panel_draw(), random_panel_draw(), random_panel_header_draw(), relative_offset_draw(), relative_offset_header_draw(), restrictions_panel_draw(), shading_panel_draw(), shape_panel_draw(), solver_options_panel_draw(), subdivisions_panel_draw(), symmetry_panel_draw(), symmetry_panel_header_draw(), texture_panel_draw(), texture_panel_draw(), time_panel_draw(), time_panel_draw(), time_remapping_panel_draw(), transform_panel_draw(), uv_panel_draw(), velocity_panel_draw(), vert_vcol_panel_draw(), vertex_group_panel_draw(), vertex_group_panel_draw(), vertex_panel_draw(), vertex_panel_draw_header(), vertex_vgroup_panel_draw(), and blender::vgroup_panel_draw().
Definition at line 309 of file MOD_ui_common.cc.
References uiLayout::active_set(), uiLayout::alignment_set(), BKE_modifier_couldbe_cage(), BKE_modifier_get_info(), BKE_modifier_supports_cage(), BKE_modifiers_get_cage_index(), BLI_findindex(), uiLayout::block(), C, Constructive, CTX_data_scene(), ELEM, uiLayout::emboss_set(), eModifierMode_ApplyOnSpline, eModifierMode_Realtime, eModifierType_Collision, eModifierType_Hook, eModifierType_MeshDeform, eModifierType_Smooth, eModifierType_Softbody, eModifierType_Surface, eModifierTypeFlag_SupportsEditmode, ModifierTypeInfo::flags, ModifierTypeInfo::is_disabled, Panel::layout, uiLayout::menu_fn(), ModifierData::mode, modifier_can_delete(), modifier_is_simulation(), modifier_ops_extra_draw(), Object::modifiers, ModifierData::name, blender::ui::None, OB_CURVES_LEGACY, OB_FONT, OB_MESH, OB_SURF, uiLayout::op(), uiLayout::prop(), ptr, uiLayout::red_alert_set(), blender::ui::Right, RNA_pointer_is_null(), RNA_string_set(), RNA_struct_ui_icon(), uiLayout::row(), RPT_, uiLayout::separator(), Panel::sizex, Toggle, ModifierData::type, ModifierTypeInfo::type, Object::type, UI_but_disable(), UI_ITEM_NONE, UI_panel_context_pointer_set(), UI_panel_custom_data_get(), UI_UNIT_X, UI_UNIT_Y, and uiDefIconButBitI().
Referenced by modifier_panel_register().
| PanelType * modifier_panel_register | ( | ARegionType * | region_type, |
| ModifierType | type, | ||
| PanelDrawFn | draw ) |
Create a panel in the context's region
Definition at line 466 of file MOD_ui_common.cc.
References PanelType::active_property, BKE_modifier_type_panel_id(), BLI_addtail(), BLT_I18NCONTEXT_DEFAULT_BPYRNA, PanelType::context, PanelType::draw, PanelType::draw_header, PanelType::flag, PanelType::get_list_data_expand_flag, get_modifier_expand_flag(), PanelType::idname, PanelType::label, MEM_callocN(), modifier_panel_header(), modifier_reorder(), modifier_ui_poll(), PANEL_TYPE_HEADER_EXPAND, PANEL_TYPE_INSTANCED, ARegionType::paneltypes, PanelType::pin_to_last_property, PanelType::poll, PanelType::reorder, PanelType::set_list_data_expand_flag, set_modifier_expand_flag(), STRNCPY_UTF8, and PanelType::translation_context.
Referenced by blender::panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), and blender::seq::tonemapmodifier_register().
Move a modifier to the index it's moved to after a drag and drop.
Definition at line 58 of file MOD_ui_common.cc.
References C, PointerRNA::data, blender::wm::InvokeDefault, ModifierData::name, ot, RNA_int_set(), RNA_string_set(), UI_panel_custom_data_get(), WM_operator_name_call_ptr(), WM_operator_properties_create_ptr(), WM_operator_properties_free(), and WM_operatortype_find().
Referenced by modifier_panel_register().
| PanelType * modifier_subpanel_register | ( | ARegionType * | region_type, |
| const char * | name, | ||
| const char * | label, | ||
| PanelDrawFn | draw_header, | ||
| PanelDrawFn | draw, | ||
| PanelType * | parent ) |
Add a child panel to the parent.
Definition at line 493 of file MOD_ui_common.cc.
References PanelType::active_property, BLI_addtail(), BLI_assert, BLI_genericNodeN(), BLT_I18NCONTEXT_DEFAULT_BPYRNA, PanelType::children, PanelType::context, PanelType::draw, PanelType::draw_header, PanelType::flag, PanelType::idname, PanelType::label, MEM_callocN(), modifier_ui_poll(), name, PANEL_TYPE_DEFAULT_CLOSED, ARegionType::paneltypes, PanelType::parent, PanelType::parent_id, PanelType::poll, SNPRINTF_UTF8, STRNCPY_UTF8, and PanelType::translation_context.
Referenced by blender::panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), panel_register(), and panel_register().
Poll function so these modifier panels don't show for other object types with modifiers (only grease pencil currently).
Definition at line 45 of file MOD_ui_common.cc.
References C, and blender::ed::object::context_active_object().
Referenced by modifier_panel_register(), and modifier_subpanel_register().
| void modifier_vgroup_ui | ( | uiLayout * | layout, |
| PointerRNA * | ptr, | ||
| PointerRNA * | ob_ptr, | ||
| blender::StringRefNull | vgroup_prop, | ||
| std::optional< blender::StringRefNull > | invert_vgroup_prop, | ||
| std::optional< blender::StringRefNull > | text ) |
Helper function for modifier layouts to draw vertex group settings.
Definition at line 126 of file MOD_ui_common.cc.
References uiLayout::active_set(), blender::StringRefNull::c_str(), uiLayout::prop(), uiLayout::prop_search(), ptr, RNA_string_length(), uiLayout::row(), UI_ITEM_NONE, and uiLayout::use_property_decorate_set().
Referenced by mix_mode_panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), restrictions_panel_draw(), vertex_group_panel_draw(), and weightvg_ui_common().
Definition at line 79 of file MOD_ui_common.cc.
References PointerRNA::data, ModifierData::ui_expand_flag, and UI_panel_custom_data_get().
Referenced by modifier_panel_register().