Blender  V3.3
Functions
MOD_ui_common.c File Reference
#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
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   TIP_("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)
 
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   TIP_("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 106 of file MOD_ui_common.c.

Function Documentation

◆ get_modifier_expand_flag()

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

◆ modifier_can_delete()

static bool modifier_can_delete ( ModifierData md)
static

◆ 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 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().

◆ modifier_ops_extra_draw()

static void modifier_ops_extra_draw ( bContext C,
uiLayout layout,
void md_v 
)
static

◆ modifier_panel_end()

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().

◆ modifier_panel_get_property_pointers()

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().

◆ modifier_panel_header()

static void modifier_panel_header ( const bContext C,
Panel panel 
)
static

◆ modifier_panel_register()

PanelType* modifier_panel_register ( struct ARegionType region_type,
ModifierType  type,
PanelDrawFn  draw 
)

◆ modifier_reorder()

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

◆ modifier_subpanel_register()

PanelType* modifier_subpanel_register ( struct ARegionType region_type,
const char *  name,
const char *  label,
PanelDrawFn  draw_header,
PanelDrawFn  draw,
struct PanelType parent 
)

◆ modifier_ui_poll()

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

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().

◆ modifier_vgroup_ui()

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().

◆ set_modifier_expand_flag()

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