diff options
author | Daniel Dunbar <daniel@zuster.org> | 2005-07-15 21:55:19 +0400 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2005-07-15 21:55:19 +0400 |
commit | 0be013010fa5acc19c34a516e3f8e62f4f0c80d7 (patch) | |
tree | 549f693dd3ca03eaca75dfea749b2578b569de5b | |
parent | 5263d588c10a252a6bac9f14e521adef4c90cdab (diff) |
- decided it made more sense to make a key_get_active function, switched
to that in editmesh as well as for edit{curve,lattice}
- added a G.editModeTitleExtra string that gets displayed in header info
string in editmode. currently used to display "(Key)" when editing a
key (before there was not UI level display of this info).
-rw-r--r-- | source/blender/blenkernel/BKE_global.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_key.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_mesh.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/key.c | 13 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mesh.c | 11 | ||||
-rw-r--r-- | source/blender/src/editcurve.c | 47 | ||||
-rw-r--r-- | source/blender/src/editlattice.c | 27 | ||||
-rw-r--r-- | source/blender/src/editmesh.c | 6 | ||||
-rw-r--r-- | source/blender/src/editobject.c | 2 | ||||
-rw-r--r-- | source/blender/src/header_info.c | 22 |
10 files changed, 56 insertions, 76 deletions
diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h index f7160eb1a13..24b555e3cce 100644 --- a/source/blender/blenkernel/BKE_global.h +++ b/source/blender/blenkernel/BKE_global.h @@ -80,6 +80,7 @@ typedef struct Global { struct Scene *scene; /* denk aan file.c */ struct bScreen *curscreen; struct Object *obedit; + char editModeTitleExtra[64]; /* fonts, allocated global data */ struct BMF_Font *font, *fonts, *fontss; diff --git a/source/blender/blenkernel/BKE_key.h b/source/blender/blenkernel/BKE_key.h index 22b20e28b89..59984389f21 100644 --- a/source/blender/blenkernel/BKE_key.h +++ b/source/blender/blenkernel/BKE_key.h @@ -60,5 +60,7 @@ void do_spec_key(struct Key *key); void unlock_all_keys(void); +struct KeyBlock *key_get_active(struct Key *keyData); + #endif diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h index 89f691af535..c20f0fd3e4e 100644 --- a/source/blender/blenkernel/BKE_mesh.h +++ b/source/blender/blenkernel/BKE_mesh.h @@ -80,7 +80,6 @@ void mesh_set_smooth_flag(struct Object *meshOb, int enableSmooth); struct BoundBox *mesh_get_bb(struct Mesh *me); void mesh_get_texspace(struct Mesh *me, float *loc_r, float *rot_r, float *size_r); -struct KeyBlock *mesh_get_active_key(struct Mesh *me); void make_edges(struct Mesh *me); diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index d9218d78a27..3425a2ff85d 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -1206,3 +1206,16 @@ void do_spec_key(Key *key) else if(idcode==ID_LT) do_latt_key( (Lattice *)key->from); } + +KeyBlock *key_get_active(Key *keyData) +{ + if (keyData) { + KeyBlock *key; + + for (key=keyData->block.first; key; key= key->next) + if (key->flag&SELECT) + return key; + } + + return NULL; +} diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index f9737f1e11b..f9f1285a5be 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -1287,14 +1287,3 @@ void mesh_set_smooth_flag(Object *meshOb, int enableSmooth) { DAG_object_flush_update(G.scene, meshOb, OB_RECALC_DATA); } - -KeyBlock *mesh_get_active_key(Mesh *me) -{ - KeyBlock *key; - - for (key=me->key->block.first; key; key= key->next) - if (key->flag&SELECT) - break; - - return key; -} diff --git a/source/blender/src/editcurve.c b/source/blender/src/editcurve.c index b80e8861e9d..04aec0c48c7 100644 --- a/source/blender/src/editcurve.c +++ b/source/blender/src/editcurve.c @@ -69,6 +69,7 @@ #include "BKE_global.h" #include "BKE_object.h" #include "BKE_main.h" +#include "BKE_key.h" #include "BIF_editmode_undo.h" #include "BIF_gl.h" @@ -238,7 +239,7 @@ void load_editNurb() /* load editNurb in object */ Curve *cu= 0; Nurb *nu, *newnu; - KeyBlock *actkey=0; + KeyBlock *actkey; if(G.obedit==0) return; @@ -249,24 +250,17 @@ void load_editNurb() cu= G.obedit->data; /* are there keys? */ - if(cu->key) { - actkey= cu->key->block.first; - while(actkey) { - if(actkey->flag & SELECT) break; - actkey= actkey->next; - } - - if(actkey) { - /* active key: the vertices */ - - if(G.totvert) { - if(actkey->data) MEM_freeN(actkey->data); - - actkey->data= MEM_callocN(cu->key->elemsize*G.totvert, "actkey->data"); - actkey->totelem= G.totvert; + actkey = key_get_active(cu->key); + if(actkey) { + /* active key: the vertices */ - curve_to_key(cu, actkey, &editNurb); - } + if(G.totvert) { + if(actkey->data) MEM_freeN(actkey->data); + + actkey->data= MEM_callocN(cu->key->elemsize*G.totvert, "actkey->data"); + actkey->totelem= G.totvert; + + curve_to_key(cu, actkey, &editNurb); } } @@ -296,7 +290,6 @@ void load_editNurb() } lastnu= NULL; /* for selected */ - } void make_editNurb() @@ -304,7 +297,7 @@ void make_editNurb() /* make copy of baseNurb in editNurb */ Curve *cu=0; Nurb *nu, *newnu; - KeyBlock *actkey=0; + KeyBlock *actkey; if(G.obedit==NULL) return; @@ -323,16 +316,10 @@ void make_editNurb() nu= nu->next; } - if(cu->key) { - actkey= cu->key->block.first; - while(actkey) { - if(actkey->flag & SELECT) break; - actkey= actkey->next; - } - - if(actkey) { - key_to_curve(actkey, cu, &editNurb); - } + actkey = key_get_active(cu->key); + if(actkey) { + strcpy(G.editModeTitleExtra, "(Key) "); + key_to_curve(actkey, cu, &editNurb); } } else G.obedit= NULL; diff --git a/source/blender/src/editlattice.c b/source/blender/src/editlattice.c index 9566c0cb40a..10cdda7eeb7 100644 --- a/source/blender/src/editlattice.c +++ b/source/blender/src/editlattice.c @@ -108,22 +108,15 @@ static void setflagsLatt(int flag) void make_editLatt(void) { Lattice *lt; - KeyBlock *actkey=0; + KeyBlock *actkey; free_editLatt(); lt= G.obedit->data; - /* keys? */ - if(lt->key) { - actkey= lt->key->block.first; - while(actkey) { - if(actkey->flag & SELECT) break; - actkey= actkey->next; - } - } - + actkey = key_get_active(lt->key); if(actkey) { + strcpy(G.editModeTitleExtra, "(Key) "); key_to_latt(actkey, lt); } @@ -138,22 +131,14 @@ void make_editLatt(void) void load_editLatt(void) { Lattice *lt; - KeyBlock *actkey=0; + KeyBlock *actkey; BPoint *bp; float *fp; int tot; lt= G.obedit->data; - /* are there keys? */ - if(lt->key) { - actkey= lt->key->block.first; - while(actkey) { - if(actkey->flag & SELECT) break; - actkey= actkey->next; - } - } - + actkey = key_get_active(lt->key); if(actkey) { /* active key: vertices */ tot= editLatt->pntsu*editLatt->pntsv*editLatt->pntsw; @@ -170,7 +155,7 @@ void load_editLatt(void) bp++; } - if(actkey) showkeypos(lt->key, actkey); + showkeypos(lt->key, actkey); } else { diff --git a/source/blender/src/editmesh.c b/source/blender/src/editmesh.c index 7efa55af693..8ec5f75d6c1 100644 --- a/source/blender/src/editmesh.c +++ b/source/blender/src/editmesh.c @@ -660,9 +660,9 @@ void make_editMesh() /* initialize fastmalloc for editmesh */ init_editmesh_fastmalloc(G.editMesh, me->totvert, me->totedge, me->totface); - actkey = mesh_get_active_key(me); - + actkey = key_get_active(me->key); if(actkey) { + strcpy(G.editModeTitleExtra, "(Key) "); key_to_mesh(actkey, me); tot= actkey->totelem; } @@ -1168,7 +1168,7 @@ void load_editMesh(void) /* are there keys? */ if(me->key) { - KeyBlock *currkey, *actkey = mesh_get_active_key(me); + KeyBlock *currkey, *actkey = key_get_active(me->key); /* Lets reorder the key data so that things line up roughly * with the way things were before editmode */ diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c index e25350046ba..2510af89e08 100644 --- a/source/blender/src/editobject.c +++ b/source/blender/src/editobject.c @@ -1366,6 +1366,8 @@ void enter_editmode(void) if(base==0) return; if((G.vd==NULL || (base->lay & G.vd->lay))==0) return; + strcpy(G.editModeTitleExtra, ""); + ob= base->object; if(ob->data==0) return; diff --git a/source/blender/src/header_info.c b/source/blender/src/header_info.c index d2c41417f88..bfc9c8517ba 100644 --- a/source/blender/src/header_info.c +++ b/source/blender/src/header_info.c @@ -1775,25 +1775,27 @@ static void info_text(int x, int y) int hsize; if(G.obedit) { + char *s = infostr; + + s+= sprintf(s, "%s", G.editModeTitleExtra); if(G.obedit->type==OB_MESH) { if(G.scene->selectmode & SCE_SELECT_VERTEX) - sprintf(infostr,"Ve:%d-%d | Ed:%d-%d | Fa:%d-%d | Mem:%.2fM ", - G.totvertsel, G.totvert, G.totedgesel, G.totedge, G.totfacesel, G.totface, (mem_in_use>>10)/1024.0); + s+= sprintf(s,"Ve:%d-%d | Ed:%d-%d | Fa:%d-%d", + G.totvertsel, G.totvert, G.totedgesel, G.totedge, G.totfacesel, G.totface); else if(G.scene->selectmode & SCE_SELECT_EDGE) - sprintf(infostr,"Ed:%d-%d | Fa:%d-%d | Mem:%.2fM ", - G.totedgesel, G.totedge, G.totfacesel, G.totface, (mem_in_use>>10)/1024.0); + s+= sprintf(s,"Ed:%d-%d | Fa:%d-%d", + G.totedgesel, G.totedge, G.totfacesel, G.totface); else - sprintf(infostr,"Fa:%d-%d | Mem:%.2fM ", - G.totfacesel, G.totface, (mem_in_use>>10)/1024.0); + s+= sprintf(s,"Fa:%d-%d", G.totfacesel, G.totface); } else if(G.obedit->type==OB_ARMATURE) { - sprintf(infostr,"Ve:%d-%d | Bo:%d-%d | Mem:%.2fM ", - G.totvertsel, G.totvert, G.totbonesel, G.totbone, (mem_in_use>>10)/1024.0); + s+= sprintf(s,"Ve:%d-%d | Bo:%d-%d", G.totvertsel, G.totvert, G.totbonesel, G.totbone); } else { - sprintf(infostr,"Ve:%d-%d | Mem:%.2fM ", - G.totvertsel, G.totvert, (mem_in_use>>10)/1024.0); + s+= sprintf(s,"Ve:%d-%d", G.totvertsel, G.totvert); } + + sprintf(s," | Mem:%.2fM", (mem_in_use>>10)/1024.0); } else if(G.obpose) { sprintf(infostr,"Bo:%d-%d | Mem:%.2fM ", |