Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2009-02-04 14:52:16 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2009-02-04 14:52:16 +0300
commitdf7e7660325611847721768fb7d082e7d5f2736c (patch)
treea13434a5824a3f55c46f6d876275f864647c0f95 /source/blender/editors/space_outliner
parent0341e762b28f732dd2913ebec48405f7718a4617 (diff)
UI
* Changed uiPupMenuOperator usage to uiPupMenuBegin/End (simpler, no need to build a string). Also made transform orientation and subdiv type enums instead of ints for this. * Added an icon argument to many of the uiMenu calls, and added a uiMenuItemIntO. * Move auto rna button creation out of outliner code, now is uiDefAutoButR for individual buttons and uiDefAutoButsRNA for a whole block. * Implemented uiPupBlock(O). Pressing F6 gives a menu with the properties of the last operator to test. I tried to make a redo last operator out of this but couldn't get the context correct for the operator to repeat in. Further the popup block also has some issues getting closed while editing buttons. * Fix uiAfterFunc memory leak on Ctrl+Q quit. * Fix handling of RNA number button dragging and sliding for RNA buttons with range -inf/inf.
Diffstat (limited to 'source/blender/editors/space_outliner')
-rw-r--r--source/blender/editors/space_outliner/outliner.c234
1 files changed, 3 insertions, 231 deletions
diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c
index ef5b59e905b..5e54a57f48d 100644
--- a/source/blender/editors/space_outliner/outliner.c
+++ b/source/blender/editors/space_outliner/outliner.c
@@ -3092,161 +3092,6 @@ void outliner_operation_menu(Scene *scene, ARegion *ar, SpaceOops *soops)
/* ***************** DRAW *************** */
-static int tselem_rna_icon(PointerRNA *ptr)
-{
- StructRNA *rnatype= ptr->type;
-
- if(rnatype == &RNA_Scene)
- return ICON_SCENE_DEHLT;
- else if(rnatype == &RNA_World)
- return ICON_WORLD;
- else if(rnatype == &RNA_Object)
- return ICON_OBJECT;
- else if(rnatype == &RNA_Mesh)
- return ICON_MESH;
- else if(rnatype == &RNA_MeshVertex)
- return ICON_VERTEXSEL;
- else if(rnatype == &RNA_MeshEdge)
- return ICON_EDGESEL;
- else if(rnatype == &RNA_MeshFace)
- return ICON_FACESEL;
- else if(rnatype == &RNA_MeshTextureFace)
- return ICON_FACESEL_HLT;
- else if(rnatype == &RNA_VertexGroup)
- return ICON_VGROUP;
- else if(rnatype == &RNA_VertexGroupElement)
- return ICON_VGROUP;
- else if(rnatype == &RNA_Curve)
- return ICON_CURVE;
- else if(rnatype == &RNA_MetaBall)
- return ICON_MBALL;
- else if(rnatype == &RNA_MetaElement)
- return ICON_OUTLINER_DATA_META;
- else if(rnatype == &RNA_Lattice)
- return ICON_LATTICE;
- else if(rnatype == &RNA_Armature)
- return ICON_ARMATURE;
- else if(rnatype == &RNA_Bone)
- return ICON_BONE_DEHLT;
- else if(rnatype == &RNA_Camera)
- return ICON_CAMERA;
- else if(rnatype == &RNA_LocalLamp)
- return ICON_LAMP;
- else if(rnatype == &RNA_AreaLamp)
- return ICON_LAMP;
- else if(rnatype == &RNA_SpotLamp)
- return ICON_LAMP;
- else if(rnatype == &RNA_SunLamp)
- return ICON_LAMP;
- else if(rnatype == &RNA_HemiLamp)
- return ICON_LAMP;
- else if(rnatype == &RNA_Lamp)
- return ICON_LAMP;
- else if(rnatype == &RNA_Group)
- return ICON_GROUP;
- else if(rnatype == &RNA_ParticleSystem)
- return ICON_PARTICLES;
- else if(rnatype == &RNA_ParticleSettings)
- return ICON_PARTICLES;
- else if(rnatype == &RNA_Material)
- return ICON_MATERIAL;
- else if(rnatype == &RNA_Texture)
- return ICON_TEXTURE;
- else if(rnatype == &RNA_TextureSlot)
- return ICON_TEXTURE;
- else if(rnatype == &RNA_WorldTextureSlot)
- return ICON_TEXTURE;
- else if(rnatype == &RNA_MaterialTextureSlot)
- return ICON_TEXTURE;
- else if(rnatype == &RNA_Image)
- return ICON_TEXTURE;
- else if(rnatype == &RNA_Screen)
- return ICON_SPLITSCREEN;
- else if(rnatype == &RNA_NodeTree)
- return ICON_NODE;
- else if(rnatype == &RNA_Text)
- return ICON_TEXT;
- else if(rnatype == &RNA_Sound)
- return ICON_SOUND;
- else if(rnatype == &RNA_Brush)
- return ICON_TPAINT_HLT;
- else if(rnatype == &RNA_Library)
- return ICON_LIBRARY_DEHLT;
- else if(rnatype == &RNA_Action)
- return ICON_ACTION;
- else if(rnatype == &RNA_FCurve)
- return ICON_IPO_DEHLT;
- //else if(rnatype == &RNA_Ipo)
- // return ICON_IPO_DEHLT;
- else if(rnatype == &RNA_Key)
- return ICON_SHAPEKEY;
- else if(rnatype == &RNA_Main)
- return ICON_BLENDER;
- else if(rnatype == &RNA_Struct)
- return ICON_RNA;
- else if(rnatype == &RNA_Property)
- return ICON_RNA;
- else if(rnatype == &RNA_BooleanProperty)
- return ICON_RNA;
- else if(rnatype == &RNA_IntProperty)
- return ICON_RNA;
- else if(rnatype == &RNA_FloatProperty)
- return ICON_RNA;
- else if(rnatype == &RNA_StringProperty)
- return ICON_RNA;
- else if(rnatype == &RNA_EnumProperty)
- return ICON_RNA;
- else if(rnatype == &RNA_EnumPropertyItem)
- return ICON_RNA;
- else if(rnatype == &RNA_PointerProperty)
- return ICON_RNA;
- else if(rnatype == &RNA_CollectionProperty)
- return ICON_RNA;
- else if(rnatype == &RNA_GameObjectSettings)
- return ICON_GAME;
- else if(rnatype == &RNA_ScriptLink)
- return ICON_PYTHON;
-
- /* modifiers */
- else if(rnatype == &RNA_SubsurfModifier)
- return ICON_MOD_SUBSURF;
- else if(rnatype == &RNA_ArmatureModifier)
- return ICON_ARMATURE;
- else if(rnatype == &RNA_LatticeModifier)
- return ICON_LATTICE;
- else if(rnatype == &RNA_CurveModifier)
- return ICON_CURVE;
- else if(rnatype == &RNA_BuildModifier)
- return ICON_MOD_BUILD;
- else if(rnatype == &RNA_MirrorModifier)
- return ICON_MOD_MIRROR;
- else if(rnatype == &RNA_DecimateModifier)
- return ICON_MOD_DECIM;
- else if(rnatype == &RNA_WaveModifier)
- return ICON_MOD_WAVE;
- else if(rnatype == &RNA_HookModifier)
- return ICON_HOOK;
- else if(rnatype == &RNA_SoftbodyModifier)
- return ICON_MOD_SOFT;
- else if(rnatype == &RNA_BooleanModifier)
- return ICON_MOD_BOOLEAN;
- else if(rnatype == &RNA_ParticleInstanceModifier)
- return ICON_MOD_PARTICLEINSTANCE;
- else if(rnatype == &RNA_ParticleSystemModifier)
- return ICON_MOD_PARTICLES;
- else if(rnatype == &RNA_EdgeSplitModifier)
- return ICON_MOD_EDGESPLIT;
- else if(rnatype == &RNA_ArrayModifier)
- return ICON_MOD_ARRAY;
- else if(rnatype == &RNA_UVProjectModifier)
- return ICON_MOD_UVPROJECT;
- else if(rnatype == &RNA_DisplaceModifier)
- return ICON_MOD_DISPLACE;
-
- else
- return ICON_DOT;
-}
-
static void tselem_draw_icon(float x, float y, TreeStoreElem *tselem, TreeElement *te)
{
if(tselem->type) {
@@ -3353,7 +3198,7 @@ static void tselem_draw_icon(float x, float y, TreeStoreElem *tselem, TreeElemen
UI_icon_draw(x, y, ICON_OBJECT);
break;
case TSE_RNA_STRUCT:
- UI_icon_draw(x, y, tselem_rna_icon(&te->rnaptr));
+ UI_icon_draw(x, y, UI_GetIconRNA(&te->rnaptr));
break;
default:
UI_icon_draw(x, y, ICON_DOT); break;
@@ -4084,79 +3929,6 @@ static void outliner_draw_rnacols(ARegion *ar, SpaceOops *soops, int sizex)
v2d->cur.ymin);
}
-static uiBut *outliner_draw_rnabut(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int index, int x1, int y1, int x2, int y2)
-{
- uiBut *but=NULL;
- const char *propname= RNA_property_identifier(ptr, prop);
- int arraylen= RNA_property_array_length(ptr, prop);
-
- switch(RNA_property_type(ptr, prop)) {
- case PROP_BOOLEAN: {
- int value, length;
-
- if(arraylen && index == -1)
- return NULL;
-
- length= RNA_property_array_length(ptr, prop);
-
- if(length)
- value= RNA_property_boolean_get_index(ptr, prop, index);
- else
- value= RNA_property_boolean_get(ptr, prop);
-
- but= uiDefButR(block, TOG, 0, (value)? "True": "False", x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
- break;
- }
- case PROP_INT:
- case PROP_FLOAT:
- if(arraylen && index == -1) {
- if(RNA_property_subtype(ptr, prop) == PROP_COLOR)
- but= uiDefButR(block, COL, 0, "", x1, y1, x2, y2, ptr, propname, 0, 0, 0, -1, -1, NULL);
- }
- else
- but= uiDefButR(block, NUM, 0, "", x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
- break;
- case PROP_ENUM:
- but= uiDefButR(block, MENU, 0, NULL, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
- break;
- case PROP_STRING:
- but= uiDefButR(block, TEX, 0, "", x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
- break;
- case PROP_POINTER: {
- PointerRNA pptr;
- PropertyRNA *nameprop;
- char *text, *descr, textbuf[256];
- int icon;
-
- pptr= RNA_property_pointer_get(ptr, prop);
-
- if(!pptr.data)
- return NULL;
-
- icon= tselem_rna_icon(&pptr);
- nameprop= RNA_struct_name_property(&pptr);
-
- if(nameprop) {
- text= RNA_property_string_get_alloc(&pptr, nameprop, textbuf, sizeof(textbuf));
- descr= (char*)RNA_property_ui_description(&pptr, prop);
- but= uiDefIconTextBut(block, LABEL, 0, icon, text, x1, y1, x2, y2, NULL, 0, 0, 0, 0, descr);
- if(text != textbuf)
- MEM_freeN(text);
- }
- else {
- text= (char*)RNA_struct_ui_name(&pptr);
- descr= (char*)RNA_property_ui_description(&pptr, prop);
- but= uiDefIconTextBut(block, LABEL, 0, icon, text, x1, y1, x2, y2, NULL, 0, 0, 0, 0, descr);
- }
- }
- default:
- but= NULL;
- break;
- }
-
- return but;
-}
-
static void outliner_draw_rnabuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, int sizex, ListBase *lb)
{
TreeElement *te;
@@ -4174,13 +3946,13 @@ static void outliner_draw_rnabuts(uiBlock *block, Scene *scene, ARegion *ar, Spa
prop= te->directdata;
if(!(RNA_property_type(ptr, prop) == PROP_POINTER && (tselem->flag & TSE_CLOSED)==0))
- outliner_draw_rnabut(block, ptr, prop, -1, sizex, te->ys, OL_RNA_COL_SIZEX, OL_H-1);
+ uiDefAutoButR(block, ptr, prop, -1, "", sizex, te->ys, OL_RNA_COL_SIZEX, OL_H-1);
}
else if(tselem->type == TSE_RNA_ARRAY_ELEM) {
ptr= &te->rnaptr;
prop= te->directdata;
- outliner_draw_rnabut(block, ptr, prop, te->index, sizex, te->ys, OL_RNA_COL_SIZEX, OL_H-1);
+ uiDefAutoButR(block, ptr, prop, te->index, "", sizex, te->ys, OL_RNA_COL_SIZEX, OL_H-1);
}
}