Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_outliner/outliner_draw.c
| Show All 26 Lines | |||||
| /** \file blender/editors/space_outliner/outliner_draw.c | /** \file blender/editors/space_outliner/outliner_draw.c | ||||
| * \ingroup spoutliner | * \ingroup spoutliner | ||||
| */ | */ | ||||
| #include "DNA_anim_types.h" | #include "DNA_anim_types.h" | ||||
| #include "DNA_armature_types.h" | #include "DNA_armature_types.h" | ||||
| #include "DNA_gpencil_types.h" | #include "DNA_gpencil_types.h" | ||||
| #include "DNA_gpencil_modifier_types.h" | |||||
| #include "DNA_group_types.h" | #include "DNA_group_types.h" | ||||
| #include "DNA_lamp_types.h" | #include "DNA_lamp_types.h" | ||||
| #include "DNA_lightprobe_types.h" | #include "DNA_lightprobe_types.h" | ||||
| #include "DNA_object_types.h" | #include "DNA_object_types.h" | ||||
| #include "DNA_scene_types.h" | #include "DNA_scene_types.h" | ||||
| #include "DNA_sequence_types.h" | #include "DNA_sequence_types.h" | ||||
| #include "BLI_math.h" | #include "BLI_math.h" | ||||
| #include "BLI_blenlib.h" | #include "BLI_blenlib.h" | ||||
| #include "BLI_string_utils.h" | #include "BLI_string_utils.h" | ||||
| #include "BLI_utildefines.h" | #include "BLI_utildefines.h" | ||||
| #include "BLI_mempool.h" | #include "BLI_mempool.h" | ||||
| #include "BLT_translation.h" | #include "BLT_translation.h" | ||||
| #include "BKE_context.h" | #include "BKE_context.h" | ||||
| #include "BKE_deform.h" | #include "BKE_deform.h" | ||||
| #include "BKE_fcurve.h" | #include "BKE_fcurve.h" | ||||
| #include "BKE_gpencil.h" | |||||
| #include "BKE_global.h" | #include "BKE_global.h" | ||||
| #include "BKE_layer.h" | #include "BKE_layer.h" | ||||
| #include "BKE_library.h" | #include "BKE_library.h" | ||||
| #include "BKE_main.h" | #include "BKE_main.h" | ||||
| #include "BKE_modifier.h" | #include "BKE_modifier.h" | ||||
| #include "BKE_report.h" | #include "BKE_report.h" | ||||
| #include "BKE_scene.h" | #include "BKE_scene.h" | ||||
| #include "BKE_object.h" | #include "BKE_object.h" | ||||
| ▲ Show 20 Lines • Show All 370 Lines • ▼ Show 20 Lines | else { | ||||
| BLI_uniquename(&ob->pose->agroups, grp, CTX_DATA_(BLT_I18NCONTEXT_ID_ACTION, "Group"), '.', | BLI_uniquename(&ob->pose->agroups, grp, CTX_DATA_(BLT_I18NCONTEXT_ID_ACTION, "Group"), '.', | ||||
| offsetof(bActionGroup, name), sizeof(grp->name)); | offsetof(bActionGroup, name), sizeof(grp->name)); | ||||
| WM_event_add_notifier(C, NC_OBJECT | ND_POSE, ob); | WM_event_add_notifier(C, NC_OBJECT | ND_POSE, ob); | ||||
| break; | break; | ||||
| } | } | ||||
| case TSE_GP_LAYER: | case TSE_GP_LAYER: | ||||
| { | { | ||||
| bGPdata *gpd = (bGPdata *)tselem->id; // id = GP Datablock | bGPdata *gpd = (bGPdata *)tselem->id; /* id = GP Datablock */ | ||||
| bGPDlayer *gpl = te->directdata; | bGPDlayer *gpl = te->directdata; | ||||
| /* always make layer active */ | |||||
| BKE_gpencil_layer_setactive(gpd, gpl); | |||||
| // XXX: name needs translation stuff | // XXX: name needs translation stuff | ||||
| BLI_uniquename(&gpd->layers, gpl, "GP Layer", '.', | BLI_uniquename(&gpd->layers, gpl, "GP Layer", '.', | ||||
| offsetof(bGPDlayer, info), sizeof(gpl->info)); | offsetof(bGPDlayer, info), sizeof(gpl->info)); | ||||
| WM_event_add_notifier(C, NC_GPENCIL | ND_DATA, gpd); | WM_event_add_notifier(C, NC_GPENCIL | ND_DATA, gpd); | ||||
| break; | break; | ||||
| } | } | ||||
| case TSE_R_LAYER: | case TSE_R_LAYER: | ||||
| { | { | ||||
| Scene *scene = (Scene *)tselem->id; | Scene *scene = (Scene *)tselem->id; | ||||
| ViewLayer *view_layer = te->directdata; | ViewLayer *view_layer = te->directdata; | ||||
| ▲ Show 20 Lines • Show All 412 Lines • ▼ Show 20 Lines | uiBut *but = uiDefIconBut( | ||||
| (arg->id && ID_IS_LINKED(arg->id)) ? arg->id->lib->name : ""); | (arg->id && ID_IS_LINKED(arg->id)) ? arg->id->lib->name : ""); | ||||
| if (arg->id) | if (arg->id) | ||||
| UI_but_drag_set_id(but, arg->id); | UI_but_drag_set_id(but, arg->id); | ||||
| } | } | ||||
| } | } | ||||
| static void UNUSED_FUNCTION(tselem_draw_gp_icon_uibut)(struct DrawIconArg *arg, ID *id, bGPDlayer *gpl) | static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, | ||||
| { | |||||
| /* restrict column clip - skip it for now... */ | |||||
| if (arg->x >= arg->xmax) { | |||||
| /* pass */ | |||||
| } | |||||
| else { | |||||
| PointerRNA ptr; | |||||
| const float eps = 0.001f; | |||||
| const bool is_stroke_visible = (gpl->color[3] > eps); | |||||
| const bool is_fill_visible = (gpl->fill[3] > eps); | |||||
| float w = 0.5f * UI_UNIT_X; | |||||
| float h = 0.85f * UI_UNIT_Y; | |||||
| RNA_pointer_create(id, &RNA_GPencilLayer, gpl, &ptr); | |||||
| UI_block_align_begin(arg->block); | |||||
| UI_block_emboss_set(arg->block, is_stroke_visible ? UI_EMBOSS : UI_EMBOSS_NONE); | |||||
| uiDefButR(arg->block, UI_BTYPE_COLOR, 1, "", arg->xb, arg->yb, w, h, | |||||
| &ptr, "color", -1, | |||||
| 0, 0, 0, 0, NULL); | |||||
| UI_block_emboss_set(arg->block, is_fill_visible ? UI_EMBOSS : UI_EMBOSS_NONE); | |||||
| uiDefButR(arg->block, UI_BTYPE_COLOR, 1, "", arg->xb + w, arg->yb, w, h, | |||||
| &ptr, "fill_color", -1, | |||||
| 0, 0, 0, 0, NULL); | |||||
| UI_block_emboss_set(arg->block, UI_EMBOSS_NONE); | |||||
| UI_block_align_end(arg->block); | |||||
| } | |||||
| } | |||||
| static void tselem_draw_icon( | |||||
| uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, | |||||
| float alpha) | float alpha) | ||||
| { | { | ||||
| struct DrawIconArg arg; | struct DrawIconArg arg; | ||||
| float aspect; | float aspect; | ||||
| /* make function calls a bit compacter */ | /* make function calls a bit compacter */ | ||||
| arg.block = block; | arg.block = block; | ||||
| arg.id = tselem->id; | arg.id = tselem->id; | ||||
| arg.xmax = xmax; | arg.xmax = xmax; | ||||
| ▲ Show 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | switch (tselem->type) { | ||||
| ICON_DRAW(ICON_OBJECT_DATA); | ICON_DRAW(ICON_OBJECT_DATA); | ||||
| break; | break; | ||||
| case TSE_LINKED_PSYS: | case TSE_LINKED_PSYS: | ||||
| ICON_DRAW(ICON_PARTICLES); | ICON_DRAW(ICON_PARTICLES); | ||||
| break; | break; | ||||
| case TSE_MODIFIER: | case TSE_MODIFIER: | ||||
| { | { | ||||
| Object *ob = (Object *)tselem->id; | Object *ob = (Object *)tselem->id; | ||||
| if (ob->type != OB_GPENCIL) { | |||||
| ModifierData *md = BLI_findlink(&ob->modifiers, tselem->nr); | ModifierData *md = BLI_findlink(&ob->modifiers, tselem->nr); | ||||
| switch ((ModifierType)md->type) { | switch ((ModifierType)md->type) { | ||||
| case eModifierType_Subsurf: | case eModifierType_Subsurf: | ||||
| ICON_DRAW(ICON_MOD_SUBSURF); | ICON_DRAW(ICON_MOD_SUBSURF); | ||||
| break; | break; | ||||
| case eModifierType_Armature: | case eModifierType_Armature: | ||||
| ICON_DRAW(ICON_MOD_ARMATURE); | ICON_DRAW(ICON_MOD_ARMATURE); | ||||
| break; | break; | ||||
| case eModifierType_Lattice: | case eModifierType_Lattice: | ||||
| ICON_DRAW(ICON_MOD_LATTICE); | ICON_DRAW(ICON_MOD_LATTICE); | ||||
| break; | break; | ||||
| case eModifierType_Curve: | case eModifierType_Curve: | ||||
| ICON_DRAW(ICON_MOD_CURVE); | ICON_DRAW(ICON_MOD_CURVE); | ||||
| break; | break; | ||||
| case eModifierType_Build: | case eModifierType_Build: | ||||
| ICON_DRAW(ICON_MOD_BUILD); | ICON_DRAW(ICON_MOD_BUILD); | ||||
| break; | break; | ||||
| case eModifierType_Mirror: | case eModifierType_Mirror: | ||||
| ICON_DRAW(ICON_MOD_MIRROR); | ICON_DRAW(ICON_MOD_MIRROR); | ||||
| break; | break; | ||||
| case eModifierType_Decimate: | case eModifierType_Decimate: | ||||
| ICON_DRAW(ICON_MOD_DECIM); | ICON_DRAW(ICON_MOD_DECIM); | ||||
| break; | break; | ||||
| case eModifierType_Wave: | case eModifierType_Wave: | ||||
| ICON_DRAW(ICON_MOD_WAVE); | ICON_DRAW(ICON_MOD_WAVE); | ||||
| break; | break; | ||||
| case eModifierType_Hook: | case eModifierType_Hook: | ||||
| ICON_DRAW(ICON_HOOK); | ICON_DRAW(ICON_HOOK); | ||||
| break; | break; | ||||
| case eModifierType_Softbody: | case eModifierType_Softbody: | ||||
| ICON_DRAW(ICON_MOD_SOFT); | ICON_DRAW(ICON_MOD_SOFT); | ||||
| break; | break; | ||||
| case eModifierType_Boolean: | case eModifierType_Boolean: | ||||
| ICON_DRAW(ICON_MOD_BOOLEAN); | ICON_DRAW(ICON_MOD_BOOLEAN); | ||||
| break; | break; | ||||
| case eModifierType_ParticleSystem: | case eModifierType_ParticleSystem: | ||||
| ICON_DRAW(ICON_MOD_PARTICLES); | ICON_DRAW(ICON_MOD_PARTICLES); | ||||
| break; | break; | ||||
| case eModifierType_ParticleInstance: | case eModifierType_ParticleInstance: | ||||
| ICON_DRAW(ICON_MOD_PARTICLES); | ICON_DRAW(ICON_MOD_PARTICLES); | ||||
| break; | break; | ||||
| case eModifierType_EdgeSplit: | case eModifierType_EdgeSplit: | ||||
| ICON_DRAW(ICON_MOD_EDGESPLIT); | ICON_DRAW(ICON_MOD_EDGESPLIT); | ||||
| break; | break; | ||||
| case eModifierType_Array: | case eModifierType_Array: | ||||
| ICON_DRAW(ICON_MOD_ARRAY); | ICON_DRAW(ICON_MOD_ARRAY); | ||||
| break; | break; | ||||
| case eModifierType_UVProject: | case eModifierType_UVProject: | ||||
| case eModifierType_UVWarp: /* TODO, get own icon */ | case eModifierType_UVWarp: /* TODO, get own icon */ | ||||
| ICON_DRAW(ICON_MOD_UVPROJECT); | ICON_DRAW(ICON_MOD_UVPROJECT); | ||||
| break; | break; | ||||
| case eModifierType_Displace: | case eModifierType_Displace: | ||||
| ICON_DRAW(ICON_MOD_DISPLACE); | ICON_DRAW(ICON_MOD_DISPLACE); | ||||
| break; | break; | ||||
| case eModifierType_Shrinkwrap: | case eModifierType_Shrinkwrap: | ||||
| ICON_DRAW(ICON_MOD_SHRINKWRAP); | ICON_DRAW(ICON_MOD_SHRINKWRAP); | ||||
| break; | break; | ||||
| case eModifierType_Cast: | case eModifierType_Cast: | ||||
| ICON_DRAW(ICON_MOD_CAST); | ICON_DRAW(ICON_MOD_CAST); | ||||
| break; | break; | ||||
| case eModifierType_MeshDeform: | case eModifierType_MeshDeform: | ||||
| case eModifierType_SurfaceDeform: | case eModifierType_SurfaceDeform: | ||||
| ICON_DRAW(ICON_MOD_MESHDEFORM); | ICON_DRAW(ICON_MOD_MESHDEFORM); | ||||
| break; | break; | ||||
| case eModifierType_Bevel: | case eModifierType_Bevel: | ||||
| ICON_DRAW(ICON_MOD_BEVEL); | ICON_DRAW(ICON_MOD_BEVEL); | ||||
| break; | break; | ||||
| case eModifierType_Smooth: | case eModifierType_Smooth: | ||||
| case eModifierType_LaplacianSmooth: | case eModifierType_LaplacianSmooth: | ||||
| case eModifierType_CorrectiveSmooth: | case eModifierType_CorrectiveSmooth: | ||||
| ICON_DRAW(ICON_MOD_SMOOTH); | ICON_DRAW(ICON_MOD_SMOOTH); | ||||
| break; | break; | ||||
| case eModifierType_SimpleDeform: | case eModifierType_SimpleDeform: | ||||
| ICON_DRAW(ICON_MOD_SIMPLEDEFORM); | ICON_DRAW(ICON_MOD_SIMPLEDEFORM); | ||||
| break; | break; | ||||
| case eModifierType_Mask: | case eModifierType_Mask: | ||||
| ICON_DRAW(ICON_MOD_MASK); | ICON_DRAW(ICON_MOD_MASK); | ||||
| break; | break; | ||||
| case eModifierType_Cloth: | case eModifierType_Cloth: | ||||
| ICON_DRAW(ICON_MOD_CLOTH); | ICON_DRAW(ICON_MOD_CLOTH); | ||||
| break; | break; | ||||
| case eModifierType_Explode: | case eModifierType_Explode: | ||||
| ICON_DRAW(ICON_MOD_EXPLODE); | ICON_DRAW(ICON_MOD_EXPLODE); | ||||
| break; | break; | ||||
| case eModifierType_Collision: | case eModifierType_Collision: | ||||
| case eModifierType_Surface: | case eModifierType_Surface: | ||||
| ICON_DRAW(ICON_MOD_PHYSICS); | ICON_DRAW(ICON_MOD_PHYSICS); | ||||
| break; | break; | ||||
| case eModifierType_Fluidsim: | case eModifierType_Fluidsim: | ||||
| ICON_DRAW(ICON_MOD_FLUIDSIM); | ICON_DRAW(ICON_MOD_FLUIDSIM); | ||||
| break; | break; | ||||
| case eModifierType_Multires: | case eModifierType_Multires: | ||||
| ICON_DRAW(ICON_MOD_MULTIRES); | ICON_DRAW(ICON_MOD_MULTIRES); | ||||
| break; | break; | ||||
| case eModifierType_Smoke: | case eModifierType_Smoke: | ||||
| ICON_DRAW(ICON_MOD_SMOKE); | ICON_DRAW(ICON_MOD_SMOKE); | ||||
| break; | break; | ||||
| case eModifierType_Solidify: | case eModifierType_Solidify: | ||||
| ICON_DRAW(ICON_MOD_SOLIDIFY); | ICON_DRAW(ICON_MOD_SOLIDIFY); | ||||
| break; | break; | ||||
| case eModifierType_Screw: | case eModifierType_Screw: | ||||
| ICON_DRAW(ICON_MOD_SCREW); | ICON_DRAW(ICON_MOD_SCREW); | ||||
| break; | break; | ||||
| case eModifierType_Remesh: | case eModifierType_Remesh: | ||||
| ICON_DRAW(ICON_MOD_REMESH); | ICON_DRAW(ICON_MOD_REMESH); | ||||
| break; | break; | ||||
| case eModifierType_WeightVGEdit: | case eModifierType_WeightVGEdit: | ||||
| case eModifierType_WeightVGMix: | case eModifierType_WeightVGMix: | ||||
| case eModifierType_WeightVGProximity: | case eModifierType_WeightVGProximity: | ||||
| ICON_DRAW(ICON_MOD_VERTEX_WEIGHT); | ICON_DRAW(ICON_MOD_VERTEX_WEIGHT); | ||||
| break; | break; | ||||
| case eModifierType_DynamicPaint: | case eModifierType_DynamicPaint: | ||||
| ICON_DRAW(ICON_MOD_DYNAMICPAINT); | ICON_DRAW(ICON_MOD_DYNAMICPAINT); | ||||
| break; | break; | ||||
| case eModifierType_Ocean: | case eModifierType_Ocean: | ||||
| ICON_DRAW(ICON_MOD_OCEAN); | ICON_DRAW(ICON_MOD_OCEAN); | ||||
| break; | break; | ||||
| case eModifierType_Warp: | case eModifierType_Warp: | ||||
| ICON_DRAW(ICON_MOD_WARP); | ICON_DRAW(ICON_MOD_WARP); | ||||
| break; | break; | ||||
| case eModifierType_Skin: | case eModifierType_Skin: | ||||
| ICON_DRAW(ICON_MOD_SKIN); | ICON_DRAW(ICON_MOD_SKIN); | ||||
| break; | break; | ||||
| case eModifierType_Triangulate: | case eModifierType_Triangulate: | ||||
| ICON_DRAW(ICON_MOD_TRIANGULATE); | ICON_DRAW(ICON_MOD_TRIANGULATE); | ||||
| break; | break; | ||||
| case eModifierType_MeshCache: | case eModifierType_MeshCache: | ||||
| ICON_DRAW(ICON_MOD_MESHDEFORM); /* XXX, needs own icon */ | ICON_DRAW(ICON_MOD_MESHDEFORM); /* XXX, needs own icon */ | ||||
| break; | break; | ||||
| case eModifierType_MeshSequenceCache: | case eModifierType_MeshSequenceCache: | ||||
| ICON_DRAW(ICON_MOD_MESHDEFORM); /* XXX, needs own icon */ | ICON_DRAW(ICON_MOD_MESHDEFORM); /* XXX, needs own icon */ | ||||
| break; | break; | ||||
| case eModifierType_Wireframe: | case eModifierType_Wireframe: | ||||
| ICON_DRAW(ICON_MOD_WIREFRAME); | ICON_DRAW(ICON_MOD_WIREFRAME); | ||||
| break; | break; | ||||
| case eModifierType_LaplacianDeform: | case eModifierType_LaplacianDeform: | ||||
| ICON_DRAW(ICON_MOD_MESHDEFORM); /* XXX, needs own icon */ | ICON_DRAW(ICON_MOD_MESHDEFORM); /* XXX, needs own icon */ | ||||
| break; | break; | ||||
| case eModifierType_DataTransfer: | case eModifierType_DataTransfer: | ||||
| ICON_DRAW(ICON_MOD_DATA_TRANSFER); | ICON_DRAW(ICON_MOD_DATA_TRANSFER); | ||||
| break; | break; | ||||
| case eModifierType_NormalEdit: | case eModifierType_NormalEdit: | ||||
| ICON_DRAW(ICON_MOD_NORMALEDIT); | ICON_DRAW(ICON_MOD_NORMALEDIT); | ||||
| break; | break; | ||||
| /* Default */ | /* Default */ | ||||
| case eModifierType_None: | case eModifierType_None: | ||||
| case eModifierType_ShapeKey: | case eModifierType_ShapeKey: | ||||
| case NUM_MODIFIER_TYPES: | case NUM_MODIFIER_TYPES: | ||||
| ICON_DRAW(ICON_DOT); | ICON_DRAW(ICON_DOT); | ||||
| break; | break; | ||||
| } | } | ||||
| } | |||||
| else { | |||||
| /* grease pencil modifiers */ | |||||
| GpencilModifierData *md = BLI_findlink(&ob->greasepencil_modifiers, tselem->nr); | |||||
| switch ((GpencilModifierType)md->type) { | |||||
| case eGpencilModifierType_Noise: | |||||
| ICON_DRAW(ICON_RNDCURVE); | |||||
| break; | |||||
| case eGpencilModifierType_Subdiv: | |||||
| ICON_DRAW(ICON_MOD_SUBSURF); | |||||
| break; | |||||
| case eGpencilModifierType_Thick: | |||||
| ICON_DRAW(ICON_MAN_ROT); | |||||
| break; | |||||
| case eGpencilModifierType_Tint: | |||||
| ICON_DRAW(ICON_COLOR); | |||||
| break; | |||||
| case eGpencilModifierType_Instance: | |||||
| ICON_DRAW(ICON_MOD_ARRAY); | |||||
| break; | |||||
| case eGpencilModifierType_Build: | |||||
| ICON_DRAW(ICON_MOD_BUILD); | |||||
| break; | |||||
| case eGpencilModifierType_Opacity: | |||||
| ICON_DRAW(ICON_MOD_MASK); | |||||
| break; | |||||
| case eGpencilModifierType_Color: | |||||
| ICON_DRAW(ICON_GROUP_VCOL); | |||||
| break; | |||||
| case eGpencilModifierType_Lattice: | |||||
| ICON_DRAW(ICON_MOD_LATTICE); | |||||
| break; | |||||
| case eGpencilModifierType_Simplify: | |||||
| ICON_DRAW(ICON_MOD_DECIM); | |||||
| break; | |||||
| case eGpencilModifierType_Smooth: | |||||
| ICON_DRAW(ICON_MOD_SMOOTH); | |||||
| break; | |||||
| case eGpencilModifierType_Hook: | |||||
| ICON_DRAW(ICON_HOOK); | |||||
| break; | |||||
| case eGpencilModifierType_Offset: | |||||
| ICON_DRAW(ICON_MOD_DISPLACE); | |||||
| break; | |||||
| /* Default */ | |||||
| default: | |||||
| ICON_DRAW(ICON_DOT); | |||||
| break; | |||||
| } | |||||
| } | |||||
| break; | break; | ||||
| } | } | ||||
| case TSE_POSE_BASE: | case TSE_POSE_BASE: | ||||
| ICON_DRAW(ICON_ARMATURE_DATA); | ICON_DRAW(ICON_ARMATURE_DATA); | ||||
| break; | break; | ||||
| case TSE_POSE_CHANNEL: | case TSE_POSE_CHANNEL: | ||||
| ICON_DRAW(ICON_BONE_DATA); | ICON_DRAW(ICON_BONE_DATA); | ||||
| break; | break; | ||||
| ▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | switch (tselem->type) { | ||||
| } | } | ||||
| break; | break; | ||||
| case TSE_LAYER_COLLECTION: | case TSE_LAYER_COLLECTION: | ||||
| case TSE_SCENE_COLLECTION_BASE: | case TSE_SCENE_COLLECTION_BASE: | ||||
| case TSE_VIEW_COLLECTION_BASE: | case TSE_VIEW_COLLECTION_BASE: | ||||
| ICON_DRAW(ICON_GROUP); | ICON_DRAW(ICON_GROUP); | ||||
| break; | break; | ||||
| /* Removed the icons from outliner. Need a better structure with Layers, Palettes and Colors */ | /* Removed the icons from outliner. Need a better structure with Layers, Palettes and Colors */ | ||||
| #if 0 | |||||
| case TSE_GP_LAYER: | case TSE_GP_LAYER: | ||||
| tselem_draw_gp_icon_uibut(&arg, tselem->id, te->directdata); | { | ||||
| /* indicate whether layer is active */ | |||||
| bGPDlayer *gpl = te->directdata; | |||||
| if (gpl->flag & GP_LAYER_ACTIVE) { | |||||
| ICON_DRAW(ICON_GREASEPENCIL); | |||||
| } | |||||
| else { | |||||
| ICON_DRAW(ICON_DOT); | |||||
| } | |||||
| break; | break; | ||||
| #endif | } | ||||
| default: | default: | ||||
| ICON_DRAW(ICON_DOT); | ICON_DRAW(ICON_DOT); | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| else if (tselem->id) { | else if (tselem->id) { | ||||
| if (GS(tselem->id->name) == ID_OB) { | if (GS(tselem->id->name) == ID_OB) { | ||||
| Object *ob = (Object *)tselem->id; | Object *ob = (Object *)tselem->id; | ||||
| Show All 23 Lines | if (GS(tselem->id->name) == ID_OB) { | ||||
| case OB_EMPTY: | case OB_EMPTY: | ||||
| if (ob->dup_group) { | if (ob->dup_group) { | ||||
| tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_GROUP_INSTANCE); | tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_GROUP_INSTANCE); | ||||
| } | } | ||||
| else { | else { | ||||
| tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); | tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); | ||||
| } | } | ||||
| break; | break; | ||||
| case OB_GPENCIL: | |||||
| tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_GREASEPENCIL); | |||||
| break; | |||||
| } | } | ||||
| } | } | ||||
| else { | else { | ||||
| /* TODO(sergey): Casting to short here just to handle ID_NLA which is | /* TODO(sergey): Casting to short here just to handle ID_NLA which is | ||||
| * NOT inside of IDType enum. | * NOT inside of IDType enum. | ||||
| */ | */ | ||||
| switch ((short)GS(tselem->id->name)) { | switch ((short)GS(tselem->id->name)) { | ||||
| case ID_SCE: | case ID_SCE: | ||||
| ▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | else { | ||||
| } | } | ||||
| else { | else { | ||||
| tselem_draw_icon_uibut(&arg, ICON_LIBRARY_DATA_DIRECT); | tselem_draw_icon_uibut(&arg, ICON_LIBRARY_DATA_DIRECT); | ||||
| } | } | ||||
| break; | break; | ||||
| case ID_LS: | case ID_LS: | ||||
| tselem_draw_icon_uibut(&arg, ICON_LINE_DATA); break; | tselem_draw_icon_uibut(&arg, ICON_LINE_DATA); break; | ||||
| case ID_GD: | case ID_GD: | ||||
| tselem_draw_icon_uibut(&arg, ICON_GREASEPENCIL); break; | tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_GREASEPENCIL); break; | ||||
| case ID_LP: | case ID_LP: | ||||
| { | { | ||||
| LightProbe * lp = (LightProbe *)tselem->id; | LightProbe * lp = (LightProbe *)tselem->id; | ||||
| switch (lp->type) { | switch (lp->type) { | ||||
| case LIGHTPROBE_TYPE_CUBE: | case LIGHTPROBE_TYPE_CUBE: | ||||
| tselem_draw_icon_uibut(&arg, ICON_LIGHTPROBE_CUBEMAP); break; | tselem_draw_icon_uibut(&arg, ICON_LIGHTPROBE_CUBEMAP); break; | ||||
| case LIGHTPROBE_TYPE_PLANAR: | case LIGHTPROBE_TYPE_PLANAR: | ||||
| tselem_draw_icon_uibut(&arg, ICON_LIGHTPROBE_PLANAR); break; | tselem_draw_icon_uibut(&arg, ICON_LIGHTPROBE_PLANAR); break; | ||||
| ▲ Show 20 Lines • Show All 796 Lines • Show Last 20 Lines | |||||