Blender V4.3
MOD_ui_common.cc File Reference
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "MEM_guardedalloc.h"
#include "BKE_context.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_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
PanelTypemodifier_panel_register (ARegionType *region_type, ModifierType type, PanelDrawFn draw)
 
PanelTypemodifier_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_panel_end (uiLayout *layout, PointerRNA *ptr)
 
PointerRNAmodifier_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)
 
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)
 

Macro Definition Documentation

◆ ERROR_LIBDATA_MESSAGE

#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.

Note
The modifier PointerRNA is owned by the panel so we only need a pointer to it.

Definition at line 104 of file MOD_ui_common.cc.

Referenced by modifier_panel_get_property_pointers().

Function Documentation

◆ get_modifier_expand_flag()

static short get_modifier_expand_flag ( const bContext * ,
Panel * panel )
static

◆ modifier_can_delete()

◆ modifier_grease_pencil_curve_header_draw()

void modifier_grease_pencil_curve_header_draw ( const bContext * ,
Panel * panel )

◆ modifier_grease_pencil_curve_panel_draw()

void modifier_grease_pencil_curve_panel_draw ( const bContext * ,
Panel * panel )

◆ modifier_is_simulation()

static int modifier_is_simulation ( const ModifierData * md)
static

Check whether Modifier is a simulation or not. Used for switching to the physics/particles context tab.

Definition at line 164 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().

◆ modifier_ops_extra_draw()

◆ modifier_panel_end()

◆ modifier_panel_get_property_pointers()

PointerRNA * modifier_panel_get_property_pointers ( Panel * panel,
PointerRNA * r_ob_ptr )

Definition at line 105 of file MOD_ui_common.cc.

References BLI_assert, ERROR_LIBDATA_MESSAGE, ID_IS_EDITABLE, Panel::layout, 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(), 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(), 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(), 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(), 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().

◆ modifier_panel_header()

◆ 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 481 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, 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, 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(), and panel_register().

◆ modifier_reorder()

static void modifier_reorder ( bContext * C,
Panel * panel,
int new_index )
static

◆ modifier_subpanel_register()

◆ modifier_ui_poll()

static bool modifier_ui_poll ( const bContext * C,
PanelType *  )
static

Poll function so these modifier panels don't show for other object types with modifiers (only grease pencil currently).

Definition at line 41 of file MOD_ui_common.cc.

References blender::ed::object::context_active_object(), OB_GPENCIL_LEGACY, and Object::type.

Referenced by modifier_panel_register(), and modifier_subpanel_register().

◆ modifier_vgroup_ui()

◆ set_modifier_expand_flag()

static void set_modifier_expand_flag ( const bContext * ,
Panel * panel,
short expand_flag )
static