Blender
V3.3
|
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "MEM_guardedalloc.h"
#include "BKE_context.h"
#include "BKE_modifier.h"
#include "BKE_object.h"
#include "BKE_screen.h"
#include "DNA_object_force_types.h"
#include "DNA_object_types.h"
#include "DNA_particle_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "ED_object.h"
#include "BLT_translation.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "WM_api.h"
#include "WM_types.h"
#include "MOD_modifiertypes.h"
#include "MOD_ui_common.h"
Go to the source code of this file.
Functions | |
static bool | modifier_ui_poll (const bContext *C, PanelType *UNUSED(pt)) |
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 *UNUSED(C), Panel *panel) |
static void | set_modifier_expand_flag (const bContext *UNUSED(C), 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 TIP_("External library data") |
void | modifier_panel_end (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 char *vgroup_prop, const char *invert_vgroup_prop, const char *text) |
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) |
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 106 of file MOD_ui_common.c.
Definition at line 71 of file MOD_ui_common.c.
References PointerRNA::data, ModifierData::ui_expand_flag, and UI_panel_custom_data_get().
Referenced by modifier_panel_register().
|
static |
Definition at line 169 of file MOD_ui_common.c.
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().
|
static |
Check whether Modifier is a simulation or not. Used for switching to the physics/particles context tab.
Definition at line 148 of file MOD_ui_common.c.
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 191 of file MOD_ui_common.c.
References BKE_modifier_is_non_geometrical(), BKE_modifier_is_same_topology(), BLI_listbase_count(), BLT_I18NCONTEXT_OPERATOR_DEFAULT, C, CTX_IFACE_, ED_object_active_context(), ELEM, eModifierType_Cloth, eModifierType_Fluid, eModifierType_Fluidsim, eModifierType_ParticleSystem, eModifierType_Softbody, Object::id, IFACE_, Object::modifiers, ModifierData::next, NULL, ModifierData::prev, ptr, RNA_int_set(), RNA_pointer_create(), ModifierData::type, UI_block_flag_enable(), UI_BLOCK_IS_FLIP, uiItemBooleanO(), uiItemFullO(), uiItemO(), uiItemS(), uiLayoutColumn(), uiLayoutGetBlock(), uiLayoutSetContextPointer(), uiLayoutSetEnabled(), uiLayoutSetOperatorContext(), uiLayoutSetUnitsX(), and WM_OP_INVOKE_DEFAULT.
Referenced by modifier_panel_header().
void modifier_panel_end | ( | struct uiLayout * | layout, |
PointerRNA * | ptr | ||
) |
Draw modifier error message.
Definition at line 91 of file MOD_ui_common.c.
References PointerRNA::data, ModifierData::error, ptr, TIP_, uiItemL(), and uiLayoutRow().
Referenced by falloff_panel_draw(), and panel_draw().
PointerRNA* modifier_panel_get_property_pointers | ( | Panel * | panel, |
PointerRNA * | r_ob_ptr | ||
) |
Definition at line 107 of file MOD_ui_common.c.
References BLI_assert, ERROR_LIBDATA_MESSAGE, ID_IS_LINKED, Panel::layout, NULL, PointerRNA::owner_id, ptr, RNA_pointer_create(), RNA_pointer_is_null(), RNA_struct_is_a(), PointerRNA::type, UI_block_lock_set(), UI_panel_context_pointer_set(), UI_panel_custom_data_get(), and uiLayoutGetBlock().
Referenced by advanced_panel_draw(), axis_mapping_panel_draw(), caps_panel_draw(), clamp_panel_draw(), constant_offset_draw(), constant_offset_header_draw(), data_panel_draw(), edge_data_panel_draw(), edge_panel_draw(), edge_panel_draw_header(), face_corner_panel_draw(), face_corner_panel_draw_header(), face_corner_uv_panel_draw(), face_corner_vcol_panel_draw(), face_panel_draw(), face_panel_draw_header(), falloff_panel_draw(), generate_panel_draw(), geometry_panel_draw(), influence_panel_draw(), internal_dependencies_panel_draw(), layers_panel_draw(), materials_panel_draw(), mix_mode_panel_draw(), normals_panel_draw(), object_offset_draw(), object_offset_header_draw(), offset_panel_draw(), output_attribute_panel_draw(), override_layers_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(), render_procedural_panel_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(), 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_panel_draw(), vertex_panel_draw_header(), and vertex_vgroup_panel_draw().
Definition at line 281 of file MOD_ui_common.c.
References BKE_modifier_couldbe_cage(), BKE_modifier_get_info(), BKE_modifier_supports_cage(), BKE_modifiers_get_cage_index(), BLI_findindex(), C, CTX_data_scene(), PointerRNA::data, ELEM, eModifierMode_ApplyOnSpline, eModifierMode_Realtime, eModifierType_Collision, eModifierType_Hook, eModifierType_MeshDeform, eModifierType_Softbody, eModifierType_Surface, eModifierTypeFlag_SupportsEditmode, eModifierTypeType_Constructive, ModifierTypeInfo::flags, ModifierTypeInfo::isDisabled, Panel::layout, ModifierData::mode, modifier_can_delete(), modifier_is_simulation(), modifier_ops_extra_draw(), ModifierData::name, OB_CURVES_LEGACY, OB_FONT, OB_MESH, OB_SURF, PointerRNA::owner_id, ptr, RNA_struct_ui_icon(), scene, Panel::sizex, TIP_, ModifierTypeInfo::type, ModifierData::type, PointerRNA::type, UI_BTYPE_TOGGLE, UI_but_disable(), UI_EMBOSS_NONE, UI_LAYOUT_ALIGN_RIGHT, UI_panel_context_pointer_set(), UI_panel_custom_data_get(), UI_UNIT_X, UI_UNIT_Y, uiDefIconButBitI(), uiItemMenuF(), uiItemO(), uiItemR(), uiItemS(), uiItemStringO(), uiLayoutGetBlock(), uiLayoutRow(), uiLayoutSetActive(), uiLayoutSetAlignment(), uiLayoutSetEmboss(), and uiLayoutSetRedAlert().
Referenced by modifier_panel_register().
PanelType* modifier_panel_register | ( | struct ARegionType * | region_type, |
ModifierType | type, | ||
PanelDrawFn | draw | ||
) |
Create a panel in the context's region
Definition at line 416 of file MOD_ui_common.c.
References PanelType::active_property, BKE_modifier_type_panel_id(), BKE_ST_MAXNAME, BLI_addtail(), BLI_strncpy(), 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::poll, PanelType::reorder, PanelType::set_list_data_expand_flag, set_modifier_expand_flag(), PanelType::translation_context, and type.
Referenced by panelRegister().
Move a modifier to the index it's moved to after a drag and drop.
Definition at line 57 of file MOD_ui_common.c.
References C, PointerRNA::data, ModifierData::name, NULL, ot, RNA_int_set(), RNA_string_set(), UI_panel_custom_data_get(), WM_OP_INVOKE_DEFAULT, 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 | ( | struct ARegionType * | region_type, |
const char * | name, | ||
const char * | label, | ||
PanelDrawFn | draw_header, | ||
PanelDrawFn | draw, | ||
struct PanelType * | parent | ||
) |
Add a child panel to the parent.
idname
. Definition at line 442 of file MOD_ui_common.c.
References PanelType::active_property, BKE_ST_MAXNAME, BLI_addtail(), BLI_assert, BLI_genericNodeN(), BLI_snprintf(), BLI_strncpy(), BLT_I18NCONTEXT_DEFAULT_BPYRNA, PanelType::children, PanelType::context, PanelType::draw, PanelType::draw_header, PanelType::flag, PanelType::idname, PanelType::label, label, MEM_callocN, modifier_ui_poll(), NULL, PANEL_TYPE_DEFAULT_CLOSED, ARegionType::paneltypes, PanelType::parent, PanelType::parent_id, PanelType::poll, and PanelType::translation_context.
Referenced by panelRegister().
Poll function so these modifier panels don't show for other object types with modifiers (only grease pencil currently).
Definition at line 43 of file MOD_ui_common.c.
References C, ED_object_active_context(), NULL, OB_GPENCIL, and Object::type.
Referenced by modifier_panel_register(), and modifier_subpanel_register().
void modifier_vgroup_ui | ( | struct uiLayout * | layout, |
struct PointerRNA * | ptr, | ||
struct PointerRNA * | ob_ptr, | ||
const char * | vgroup_prop, | ||
const char * | invert_vgroup_prop, | ||
const char * | text | ||
) |
Helper function for modifier layouts to draw vertex group settings.
Definition at line 125 of file MOD_ui_common.c.
References NULL, ptr, RNA_string_length(), uiItemPointerR(), uiItemR(), uiLayoutRow(), uiLayoutSetActive(), and uiLayoutSetPropDecorate().
Referenced by mix_mode_panel_draw(), panel_draw(), restrictions_panel_draw(), vertex_group_panel_draw(), and weightvg_ui_common().
|
static |
Definition at line 78 of file MOD_ui_common.c.
References PointerRNA::data, ModifierData::ui_expand_flag, and UI_panel_custom_data_get().
Referenced by modifier_panel_register().