forked from bartvdbraak/blender
2.5 - Action Editor
New Actions can now be added again from the Action Editor. There are no guarantees that this works totally safely yet (reference counting may be quite off), so you've been warned.
This commit is contained in:
parent
e80ac54a22
commit
33343fced5
@ -444,6 +444,20 @@ int uiDefIDPoinButs(uiBlock *block, Main *bmain, ID *parid, ID *id, int id_code,
|
||||
uiBlockClearButLock(block);
|
||||
}
|
||||
|
||||
/* add button */
|
||||
if(events & UI_ID_ADD_NEW) {
|
||||
uiBlockSetButLock(block, (events & UI_ID_PIN) && *pin_p, "Can't unlink pinned data");
|
||||
if(parid && parid->lib);
|
||||
else {
|
||||
dup_params= MEM_dupallocN(params);
|
||||
but= uiDefIconBut(block, BUT, 0, ICON_ZOOMIN, x,y,DEF_ICON_BUT_WIDTH,DEF_BUT_HEIGHT, &dup_params->browsenr, params->browsenr, 32767.0, 0, 0, "Add new data block");
|
||||
uiButSetNFunc(but, idpoin_cb, MEM_dupallocN(params), SET_INT_IN_POINTER(UI_ID_ADD_NEW));
|
||||
x+= DEF_ICON_BUT_WIDTH;
|
||||
}
|
||||
|
||||
uiBlockClearButLock(block);
|
||||
}
|
||||
|
||||
/* delete button */
|
||||
if(events & UI_ID_DELETE) {
|
||||
uiBlockSetButLock(block, (events & UI_ID_PIN) && *pin_p, "Can't unlink pinned data");
|
||||
|
@ -43,6 +43,7 @@
|
||||
#include "BLI_blenlib.h"
|
||||
|
||||
#include "BKE_animsys.h"
|
||||
#include "BKE_action.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_screen.h"
|
||||
|
||||
@ -272,6 +273,7 @@ static void saction_idpoin_handle(bContext *C, ID *id, int event)
|
||||
/* set action */
|
||||
printf("\tset action \n");
|
||||
adt->action= saction->action;
|
||||
adt->action->id.us++;
|
||||
}
|
||||
|
||||
ED_area_tag_redraw(CTX_wm_area(C));
|
||||
@ -282,7 +284,14 @@ static void saction_idpoin_handle(bContext *C, ID *id, int event)
|
||||
break;
|
||||
case UI_ID_ADD_NEW:
|
||||
printf("actedit addnew \n");
|
||||
/* XXX not implemented */
|
||||
if (saction->pin == 0) {
|
||||
AnimData *adt= BKE_id_add_animdata(&obact->id); /* this only adds if non-existant */
|
||||
|
||||
/* set new action */
|
||||
// XXX need to restore behaviour to copy old actions...
|
||||
printf("\tset new action \n");
|
||||
adt->action= saction->action= add_empty_action("Action");
|
||||
}
|
||||
break;
|
||||
case UI_ID_OPEN:
|
||||
printf("actedit open \n");
|
||||
|
Loading…
Reference in New Issue
Block a user