2.5: Various

* Buttons header: made tab buttons bigger, remove view menu,
  replaced by RMB menu in main region.
* Timeline header: tweak button placement and alignment, added
  a play reverse icon.
* Window type chooser menu: removed audio and scripts windows,
  change console and logic icons.
* Node space: disable the channel region until it is used.
This commit is contained in:
Brecht Van Lommel 2009-07-23 20:40:51 +00:00
parent 580b527854
commit 062b1b88ad
13 changed files with 5649 additions and 5632 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 173 KiB

@ -233,7 +233,7 @@ char *ANIM_build_keyingsets_menu (ListBase *list, short for_edit)
BLI_dynstr_append(pupds, " %x0|");
}
else
BLI_dynstr_append(pupds, "<No Keying Set Active>%x0|");
BLI_dynstr_append(pupds, "No Keying Set%x0|");
/* loop through keyingsets, adding them */
for (ks=list->first, i=1; ks; ks=ks->next, i++) {

File diff suppressed because it is too large Load Diff

@ -62,6 +62,7 @@ void ED_region_header(const struct bContext *C, struct ARegion *ar);
/* spaces */
void ED_spacetypes_init(void);
void ED_spacetypes_keymap(struct wmWindowManager *wm);
int ED_area_header_switchbutton(const struct bContext *C, struct uiBlock *block, int yco);
int ED_area_header_standardbuttons(const struct bContext *C, struct uiBlock *block, int yco);
void ED_area_overdraw(struct bContext *C);
void ED_area_overdraw_flush(struct bContext *C, struct ScrArea *sa, struct ARegion *ar);

@ -158,9 +158,9 @@ DEF_ICON(ICON_NLA)
DEF_ICON(ICON_SCRIPTWIN)
DEF_ICON(ICON_TIME)
DEF_ICON(ICON_NODE)
DEF_ICON(ICON_BLANK053)
DEF_ICON(ICON_BLANK054)
DEF_ICON(ICON_BLANK055)
DEF_ICON(ICON_LOGIC)
DEF_ICON(ICON_CONSOLE)
DEF_ICON(ICON_PREFERENCES)
DEF_ICON(ICON_BLANK056)
DEF_ICON(ICON_BLANK057)
DEF_ICON(ICON_BLANK058)
@ -570,7 +570,7 @@ DEF_ICON(ICON_PAUSE)
DEF_ICON(ICON_PREV_KEYFRAME)
DEF_ICON(ICON_NEXT_KEYFRAME)
DEF_ICON(ICON_PLAY_AUDIO)
DEF_ICON(ICON_BLANK178)
DEF_ICON(ICON_PLAY_REVERSE)
DEF_ICON(ICON_BLANK179)
DEF_ICON(ICON_BLANK180)
DEF_ICON(ICON_PMARKER_ACT)

@ -1056,7 +1056,7 @@ static char *windowtype_pup(void)
"|Video Sequence Editor %x8" //143
"|Timeline %x15" //163
"|Audio Window %x11" //163
// "|Audio Window %x11" //163
"|Text Editor %x9" //179
"|%l" //192
@ -1073,7 +1073,7 @@ static char *windowtype_pup(void)
"|%l" //293
"|Scripts Window %x14"//313
// "|Scripts Window %x14"//313
"|Console %x18"
);
}
@ -1085,7 +1085,7 @@ static void spacefunc(struct bContext *C, void *arg1, void *arg2)
}
/* returns offset for next button in header */
int ED_area_header_standardbuttons(const bContext *C, uiBlock *block, int yco)
int ED_area_header_switchbutton(const bContext *C, uiBlock *block, int yco)
{
ScrArea *sa= CTX_wm_area(C);
uiBut *but;
@ -1098,9 +1098,18 @@ int ED_area_header_standardbuttons(const bContext *C, uiBlock *block, int yco)
"Click for menu of available types.");
uiButSetFunc(but, spacefunc, NULL, NULL);
xco += XIC + 14;
return xco + XIC + 14;
}
int ED_area_header_standardbuttons(const bContext *C, uiBlock *block, int yco)
{
ScrArea *sa= CTX_wm_area(C);
int xco= 8;
xco= ED_area_header_switchbutton(C, block, yco);
uiBlockSetEmboss(block, UI_EMBOSSN);
if (sa->flag & HEADER_NO_PULLDOWN) {
uiDefIconButBitS(block, TOG, HEADER_NO_PULLDOWN, 0,
ICON_DISCLOSURE_TRI_RIGHT,
@ -1115,11 +1124,10 @@ int ED_area_header_standardbuttons(const bContext *C, uiBlock *block, int yco)
&(sa->flag), 0, 0, 0, 0,
"Hide pulldown menus");
}
xco+=XIC;
uiBlockSetEmboss(block, UI_EMBOSS);
return xco;
return xco + XIC;
}
/************************ standard UI regions ************************/

@ -60,66 +60,14 @@
#include "buttons_intern.h"
/* ************************ header area region *********************** */
static void do_viewmenu(bContext *C, void *arg, int event)
{
SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C);
ScrArea *sa= CTX_wm_area(C);
switch(event) {
case 1:
case 2:
sbuts->align= event;
sbuts->re_align= 1;
break;
}
ED_area_tag_redraw(sa);
}
static uiBlock *dummy_viewmenu(bContext *C, ARegion *ar, void *arg_unused)
{
SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C);
ScrArea *sa= CTX_wm_area(C);
uiBlock *block;
short yco= 0, menuwidth=120;
block= uiBeginBlock(C, ar, "dummy_viewmenu", UI_EMBOSSP);
uiBlockSetButmFunc(block, do_viewmenu, NULL);
if (sbuts->align == 1) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Horizontal", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Horizontal", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
if (sbuts->align == 2) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Vertical", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Vertical", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
if(sa->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);
}
else {
uiBlockSetDirection(block, UI_TOP);
uiBlockFlipOrder(block);
}
uiTextBoundsBlock(block, 50);
uiEndBlock(C, block);
return block;
}
#define B_CONTEXT_SWITCH 101
#define B_BUTSPREVIEW 102
#define B_NEWFRAME 103
static void do_buttons_buttons(bContext *C, void *arg, int event)
{
SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C);
switch(event) {
case B_NEWFRAME:
WM_event_add_notifier(C, NC_SCENE|ND_FRAME, NULL);
break;
case B_CONTEXT_SWITCH:
case B_BUTSPREVIEW:
ED_area_tag_redraw(CTX_wm_area(C));
@ -137,7 +85,6 @@ static void do_buttons_buttons(bContext *C, void *arg, int event)
void buttons_header_buttons(const bContext *C, ARegion *ar)
{
ScrArea *sa= CTX_wm_area(C);
SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C);
uiBlock *block;
int xco, yco= 3;
@ -147,17 +94,7 @@ void buttons_header_buttons(const bContext *C, ARegion *ar)
block= uiBeginBlock(C, ar, "header buttons", UI_EMBOSS);
uiBlockSetHandleFunc(block, do_buttons_buttons, NULL);
xco= ED_area_header_standardbuttons(C, block, yco);
if((sa->flag & HEADER_NO_PULLDOWN)==0) {
int xmax;
xmax= GetButStringLength("View");
uiDefPulldownBut(block, dummy_viewmenu, CTX_wm_area(C),
"View", xco, yco, xmax-3, 20, "");
xco+=xmax;
}
xco= ED_area_header_switchbutton(C, block, yco);
uiBlockSetEmboss(block, UI_EMBOSS);
@ -166,30 +103,30 @@ void buttons_header_buttons(const bContext *C, ARegion *ar)
// Default panels
uiBlockBeginAlign(block);
if(sbuts->pathflag & (1<<BCONTEXT_SCENE))
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_SCENE, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_SCENE, 0, 0, "Scene");
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_SCENE, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_SCENE, 0, 0, "Scene");
if(sbuts->pathflag & (1<<BCONTEXT_WORLD))
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_WORLD, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_WORLD, 0, 0, "World");
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_WORLD, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_WORLD, 0, 0, "World");
if(sbuts->pathflag & (1<<BCONTEXT_OBJECT))
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_OBJECT_DATA, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_OBJECT, 0, 0, "Object");
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_OBJECT_DATA, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_OBJECT, 0, 0, "Object");
if(sbuts->pathflag & (1<<BCONTEXT_CONSTRAINT))
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_CONSTRAINT, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_CONSTRAINT, 0, 0, "Constraint");
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_CONSTRAINT, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_CONSTRAINT, 0, 0, "Constraint");
if(sbuts->pathflag & (1<<BCONTEXT_DATA))
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, sbuts->dataicon, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_DATA, 0, 0, "Object Data");
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, sbuts->dataicon, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_DATA, 0, 0, "Object Data");
if(sbuts->pathflag & (1<<BCONTEXT_MODIFIER))
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MODIFIER, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_MODIFIER, 0, 0, "Modifier");
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MODIFIER, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_MODIFIER, 0, 0, "Modifier");
if(sbuts->pathflag & (1<<BCONTEXT_BONE))
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_BONE_DATA, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_BONE, 0, 0, "Bone");
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_BONE_DATA, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_BONE, 0, 0, "Bone");
if(sbuts->pathflag & (1<<BCONTEXT_MATERIAL))
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MATERIAL, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_MATERIAL, 0, 0, "Material");
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MATERIAL, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_MATERIAL, 0, 0, "Material");
if(sbuts->pathflag & (1<<BCONTEXT_TEXTURE))
uiDefIconButS(block, ROW, B_BUTSPREVIEW, ICON_TEXTURE, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_TEXTURE, 0, 0, "Texture");
uiDefIconButS(block, ROW, B_BUTSPREVIEW, ICON_TEXTURE, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_TEXTURE, 0, 0, "Texture");
if(sbuts->pathflag & (1<<BCONTEXT_PARTICLE))
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PARTICLES, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_PARTICLE, 0, 0, "Particles");
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PARTICLES, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_PARTICLE, 0, 0, "Particles");
if(sbuts->pathflag & (1<<BCONTEXT_PHYSICS))
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PHYSICS, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_PHYSICS, 0, 0, "Physics");
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PHYSICS, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_PHYSICS, 0, 0, "Physics");
if(sbuts->pathflag & (1<<BCONTEXT_GAME))
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_GAME, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_GAME, 0, 0, "Game");
xco+= XIC;
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_GAME, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_GAME, 0, 0, "Game");
xco+= BUTS_UI_UNIT;
uiBlockEndAlign(block);

@ -49,6 +49,9 @@ struct wmOperatorType;
#define BUTS_SENS_STATE 512
#define BUTS_ACT_STATE 1024
#define BUTS_HEADERY (HEADERY*1.2)
#define BUTS_UI_UNIT (UI_UNIT_Y*1.2)
/* internal exports only */
/* buttons_header.c */
@ -86,5 +89,7 @@ void PARTICLE_OT_target_move_down(struct wmOperatorType *ot);
void SCENE_OT_render_layer_add(struct wmOperatorType *ot);
void SCENE_OT_render_layer_remove(struct wmOperatorType *ot);
void BUTTONS_OT_toolbox(struct wmOperatorType *ot);
#endif /* ED_BUTTONS_INTERN_H */

@ -38,6 +38,8 @@
#include "DNA_node_types.h"
#include "DNA_texture_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "DNA_world_types.h"
#include "BKE_context.h"
@ -69,6 +71,8 @@
#include "RNA_access.h"
#include "RNA_define.h"
#include "UI_interface.h"
#include "buttons_intern.h" // own include
@ -901,3 +905,33 @@ void SCENE_OT_render_layer_remove(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
/********************** toolbox operator *********************/
static int toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
bScreen *sc= CTX_wm_screen(C);
SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C);
PointerRNA ptr;
uiPopupMenu *pup;
uiLayout *layout;
RNA_pointer_create(&sc->id, &RNA_SpaceButtonsWindow, sbuts, &ptr);
pup= uiPupMenuBegin(C, "Align", 0);
layout= uiPupMenuLayout(pup);
uiItemsEnumR(layout, &ptr, "align");
uiPupMenuEnd(C, pup);
return OPERATOR_CANCELLED;
}
void BUTTONS_OT_toolbox(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Toolbox";
ot->idname= "BUTTONS_OT_toolbox";
/* api callbacks */
ot->invoke= toolbox_invoke;
}

@ -139,7 +139,12 @@ static SpaceLink *buttons_duplicate(SpaceLink *sl)
/* add handlers, stuff you only do once or on area/region changes */
static void buttons_main_area_init(wmWindowManager *wm, ARegion *ar)
{
ListBase *keymap;
ED_region_panels_init(wm, ar);
keymap= WM_keymap_listbase(wm, "Buttons Generic", SPACE_BUTS, 0);
WM_event_add_keymap_handler(&ar->handlers, keymap);
}
static void buttons_main_area_draw(const bContext *C, ARegion *ar)
@ -205,11 +210,15 @@ void buttons_operatortypes(void)
WM_operatortype_append(SCENE_OT_render_layer_add);
WM_operatortype_append(SCENE_OT_render_layer_remove);
WM_operatortype_append(BUTTONS_OT_toolbox);
}
void buttons_keymap(struct wmWindowManager *wm)
{
ListBase *keymap= WM_keymap_listbase(wm, "Buttons Generic", SPACE_BUTS, 0);
WM_keymap_add_item(keymap, "BUTTONS_OT_toolbox", RIGHTMOUSE, KM_PRESS, 0, 0);
}
//#define PY_HEADER
@ -394,7 +403,7 @@ void ED_spacetype_buttons(void)
/* regions: header */
art= MEM_callocN(sizeof(ARegionType), "spacetype buttons region");
art->regionid = RGN_TYPE_HEADER;
art->minsizey= HEADERY;
art->minsizey= BUTS_HEADERY;
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES;
art->init= buttons_header_area_init;

@ -81,6 +81,7 @@ static SpaceLink *node_new(const bContext *C)
ar->regiontype= RGN_TYPE_HEADER;
ar->alignment= RGN_ALIGN_BOTTOM;
#if 0
/* channels */
ar= MEM_callocN(sizeof(ARegion), "nodetree area for node");
@ -89,6 +90,7 @@ static SpaceLink *node_new(const bContext *C)
ar->alignment= RGN_ALIGN_LEFT;
//ar->v2d.scroll = (V2D_SCROLL_RIGHT|V2D_SCROLL_BOTTOM);
#endif
/* main area */
ar= MEM_callocN(sizeof(ARegion), "main area for node");
@ -189,6 +191,7 @@ static SpaceLink *node_duplicate(SpaceLink *sl)
return (SpaceLink *)snoden;
}
#if 0
static void node_channel_area_init(wmWindowManager *wm, ARegion *ar)
{
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_LIST, ar->winx, ar->winy);
@ -217,6 +220,7 @@ static void node_channel_area_draw(const bContext *C, ARegion *ar)
UI_view2d_scrollers_draw(C, v2d, scrollers);
UI_view2d_scrollers_free(scrollers);
}
#endif
/* Initialise main area, setting handlers. */
static void node_main_area_init(wmWindowManager *wm, ARegion *ar)
@ -341,6 +345,7 @@ void ED_spacetype_node(void)
BLI_addhead(&st->regiontypes, art);
#if 0
/* regions: channels */
art= MEM_callocN(sizeof(ARegionType), "spacetype node region");
art->regionid = RGN_TYPE_CHANNELS;
@ -351,6 +356,7 @@ void ED_spacetype_node(void)
art->draw= node_channel_area_draw;
BLI_addhead(&st->regiontypes, art);
#endif
BKE_spacetype_register(st);

@ -108,11 +108,6 @@ static void do_time_redrawmenu(bContext *C, void *arg, int event)
sad->ar= time_top_left_3dwindow(screen);
}
}
else {
if(event==1001) {
// button(&CTX_data_scene(C)->r.frs_sec,1,120,"FPS:");
}
}
}
@ -120,10 +115,8 @@ static uiBlock *time_redrawmenu(bContext *C, ARegion *ar, void *arg_unused)
{
ScrArea *curarea= CTX_wm_area(C);
SpaceTime *stime= (SpaceTime*)CTX_wm_space_data(C);
Scene *scene= CTX_data_scene(C);
uiBlock *block;
short yco= 0, menuwidth=120, icon;
char str[32];
block= uiBeginBlock(C, ar, "header time_redrawmenu", UI_EMBOSSP);
uiBlockSetButmFunc(block, do_time_redrawmenu, NULL);
@ -155,16 +148,10 @@ static uiBlock *time_redrawmenu(bContext *C, ARegion *ar, void *arg_unused)
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
sprintf(str, "Set Frames/Sec (%d/%f)", scene->r.frs_sec, scene->r.frs_sec_base);
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, str, 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1001, "");
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
if(stime->redraws & TIME_CONTINUE_PHYSICS) icon= ICON_CHECKBOX_HLT;
else icon= ICON_CHECKBOX_DEHLT;
uiDefIconTextBut(block, BUTM, 1, icon, "Continue Physics", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, TIME_CONTINUE_PHYSICS, "During playblack, continue physics simulations regardless of the frame number");
if(curarea->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);
}
@ -547,7 +534,7 @@ void time_header_buttons(const bContext *C, ARegion *ar)
}
uiBlockEndAlign(block);
xco += (short)(4.5 * XIC + 16);
xco += (short)(4.5 * XIC);
/* MINAFRAMEF not MINFRAMEF, since MINAFRAMEF allows to set current frame negative
* to facilitate easier keyframing in some situations
@ -557,75 +544,77 @@ void time_header_buttons(const bContext *C, ARegion *ar)
&(scene->r.cfra), MINAFRAMEF, MAXFRAMEF, 0, 0,
"Displays Current Frame of animation");
xco += (short)(3.5 * XIC + 16);
xco += (short)(3.5 * XIC);
uiBlockBeginAlign(block);
uiDefIconBut(block, BUT, B_TL_REW, ICON_REW,
xco, yco, XIC, YIC, 0, 0, 0, 0, 0, "Skip to Start frame (Shift DownArrow)");
xco+= XIC+4;
xco+= XIC;
uiDefIconBut(block, BUT, B_TL_PREVKEY, ICON_PREV_KEYFRAME,
xco, yco, XIC, YIC, 0, 0, 0, 0, 0, "Skip to previous keyframe (Ctrl PageDown)");
xco+= XIC+4;
xco+= XIC;
if(CTX_wm_screen(C)->animtimer) {
/* pause button is drawn centered between the two other buttons for now (saves drawing 2 buttons, or having position changes) */
xco+= XIC/2 + 2;
/* pause button 2*size to keep buttons in place */
uiDefIconBut(block, BUT, B_TL_STOP, ICON_PAUSE,
xco, yco, XIC, YIC, 0, 0, 0, 0, 0, "Stop Playing Timeline");
xco, yco, XIC*2, YIC, 0, 0, 0, 0, 0, "Stop Playing Timeline");
xco+= XIC/2 + 2;
xco+= XIC;
}
else {
// FIXME: the icon for this is crap
uiDefIconBut(block, BUT, B_TL_RPLAY, ICON_REW/*ICON_PLAY*/,
uiDefIconBut(block, BUT, B_TL_RPLAY, ICON_PLAY_REVERSE,
xco, yco, XIC, YIC, 0, 0, 0, 0, 0, "Play Timeline in Reverse");
xco+= XIC+4;
xco+= XIC;
uiDefIconBut(block, BUT, B_TL_PLAY, ICON_PLAY,
xco, yco, XIC, YIC, 0, 0, 0, 0, 0, "Play Timeline ");
}
xco+= XIC+4;
xco+= XIC;
uiDefIconBut(block, BUT, B_TL_NEXTKEY, ICON_NEXT_KEYFRAME,
xco, yco, XIC, YIC, 0, 0, 0, 0, 0, "Skip to next keyframe (Ctrl PageUp)");
xco+= XIC+4;
xco+= XIC;
uiDefIconBut(block, BUT, B_TL_FF, ICON_FF,
xco, yco, XIC, YIC, 0, 0, 0, 0, 0, "Skip to End frame (Shift UpArrow)");
xco+= XIC+8;
uiBlockEndAlign(block);
xco+= 2*XIC;
uiBlockBeginAlign(block);
uiDefIconButBitS(block, TOG, AUTOKEY_ON, B_REDRAWALL, ICON_REC,
xco, yco, XIC, YIC, &(scene->toolsettings->autokey_mode), 0, 0, 0, 0, "Automatic keyframe insertion for Objects and Bones");
xco+= XIC;
if (IS_AUTOKEY_ON(scene)) {
uiDefButS(block, MENU, B_REDRAWALL,
"Auto-Keying Mode %t|Add/Replace Keys%x3|Replace Keys %x5",
xco, yco, (int)5.5*XIC, YIC, &(scene->toolsettings->autokey_mode), 0, 1, 0, 0,
"Mode of automatic keyframe insertion for Objects and Bones");
xco+= (6*XIC);
}
uiDefIconButBitS(block, TOG, AUTOKEY_ON, B_REDRAWALL, ICON_REC,
xco, yco, XIC, YIC, &(scene->toolsettings->autokey_mode), 0, 0, 0, 0, "Automatic keyframe insertion for Objects and Bones");
xco+= XIC;
if(IS_AUTOKEY_ON(scene)) {
uiDefButS(block, MENU, B_REDRAWALL,
"Auto-Keying Mode %t|Add/Replace Keys%x3|Replace Keys %x5",
xco, yco, (int)5.5*XIC, YIC, &(scene->toolsettings->autokey_mode), 0, 1, 0, 0,
"Mode of automatic keyframe insertion for Objects and Bones");
xco+= (5.5*XIC);
}
else
xco+= 6;
uiBlockEndAlign(block);
xco+= 16;
menustr= ANIM_build_keyingsets_menu(&scene->keyingsets, 0);
uiDefButI(block, MENU, B_DIFF,
menustr,
xco, yco, (int)5.5*XIC, YIC, &(scene->active_keyingset), 0, 1, 0, 0,
"Active Keying Set (i.e. set of channels to Insert Keyframes for)");
MEM_freeN(menustr);
xco+= (6*XIC);
xco+= (5.5*XIC);
uiBlockBeginAlign(block);
uiDefIconButO(block, BUT, "ANIM_OT_delete_keyframe", WM_OP_INVOKE_REGION_WIN, ICON_KEY_DEHLT, xco,yco,XIC,YIC, "Delete Keyframes for the Active Keying Set (Alt-I)");
xco += XIC;
uiDefIconButO(block, BUT, "ANIM_OT_insert_keyframe", WM_OP_INVOKE_REGION_WIN, ICON_KEY_HLT, xco,yco,XIC,YIC, "Insert Keyframes for the Active Keying Set (I)");
xco += XIC;
uiDefIconButO(block, BUT, "ANIM_OT_delete_keyframe", WM_OP_INVOKE_REGION_WIN, ICON_KEY_DEHLT, xco,yco,XIC,YIC, "Delete Keyframes for the Active Keying Set (Alt-I)");
xco += XIC;
uiDefIconButO(block, BUT, "ANIM_OT_insert_keyframe", WM_OP_INVOKE_REGION_WIN, ICON_KEY_HLT, xco,yco,XIC,YIC, "Insert Keyframes for the Active Keying Set (I)");
xco += XIC;
uiBlockEndAlign(block);
xco+= 16;
xco+= XIC;
uiDefIconButBitI(block, TOG, TIME_WITH_SEQ_AUDIO, B_DIFF, ICON_SPEAKER,
xco, yco, XIC, YIC, &(stime->redraws), 0, 0, 0, 0, "Play back and sync with audio from Sequence Editor");

@ -150,7 +150,6 @@ static void rna_Particle_target_reset(bContext *C, PointerRNA *ptr)
ParticleTarget *pt = (ParticleTarget*)ptr->data;
Object *ob = (Object*)ptr->id.data;
ParticleSystem *kpsys=NULL, *psys=psys_get_current(ob);
int psys_num = BLI_findindex(&ob->particlesystem, psys);
if(pt->ob==ob || pt->ob==NULL) {
kpsys = BLI_findlink(&ob->particlesystem, pt->psys-1);