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:
Diffstat (limited to 'source/blender/src/header_action.c')
-rw-r--r--source/blender/src/header_action.c108
1 files changed, 77 insertions, 31 deletions
diff --git a/source/blender/src/header_action.c b/source/blender/src/header_action.c
index c9edd6cd1f0..f9a3fb08bd8 100644
--- a/source/blender/src/header_action.c
+++ b/source/blender/src/header_action.c
@@ -134,6 +134,12 @@ enum {
};
enum {
+ ACTMENU_KEY_CHANGROUP_ADD_TOACTIVE = 0,
+ ACTMENU_KEY_CHANGROUP_ADD_TONEW,
+ ACTMENU_KEY_CHANGROUP_REMOVE
+};
+
+enum {
ACTMENU_KEY_TRANSFORM_MOVE = 0,
ACTMENU_KEY_TRANSFORM_SCALE,
ACTMENU_KEY_TRANSFORM_SLIDE,
@@ -466,35 +472,19 @@ static uiBlock *action_viewmenu(void *arg_unused)
static void do_action_selectmenu_columnmenu(void *arg, int event)
{
- SpaceAction *saction;
- bAction *act;
- Key *key;
-
- saction = curarea->spacedata.first;
- if (!saction) return;
-
- act = saction->action;
- key = get_action_mesh_key();
-
-#if 0 // actionrewite
- if (event == ACTMENU_SEL_COLUMN_MARKERSBETWEEN) {
- markers_selectkeys_between();
- }
- else if (ELEM(event, ACTMENU_SEL_COLUMN_KEYS, ACTMENU_SEL_COLUMN_MARKERSCOLUMN)) {
- if (act)
- column_select_actionkeys(act, event);
- else if (key)
- column_select_shapekeys(key, event);
+ switch (event) {
+ case ACTMENU_SEL_COLUMN_MARKERSBETWEEN:
+ markers_selectkeys_between();
+ break;
+ case ACTMENU_SEL_COLUMN_KEYS:
+ column_select_action_keys(1);
+ break;
+ case ACTMENU_SEL_COLUMN_MARKERSCOLUMN:
+ column_select_action_keys(2);
+ break;
}
- else
- return;
-#endif // actionrewite
- allqueue(REDRAWTIME, 0);
- allqueue(REDRAWIPO, 0);
- allqueue(REDRAWACTION, 0);
- allqueue(REDRAWNLA, 0);
- allqueue(REDRAWSOUND, 0);
+ allqueue(REDRAWMARKER, 0);
}
static uiBlock *action_selectmenu_columnmenu(void *arg_unused)
@@ -871,16 +861,16 @@ static void do_action_keymenu_chanposmenu(void *arg, int event)
switch(event)
{
case ACTMENU_KEY_CHANPOS_MOVE_CHANNEL_DOWN:
- down_sel_action();
+ rearrange_action_channels(REARRANGE_ACTCHAN_DOWN);
break;
case ACTMENU_KEY_CHANPOS_MOVE_CHANNEL_UP:
- up_sel_action();
+ rearrange_action_channels(REARRANGE_ACTCHAN_UP);
break;
case ACTMENU_KEY_CHANPOS_MOVE_CHANNEL_TOP:
- top_sel_action();
+ rearrange_action_channels(REARRANGE_ACTCHAN_TOP);
break;
case ACTMENU_KEY_CHANPOS_MOVE_CHANNEL_BOTTOM:
- bottom_sel_action();
+ rearrange_action_channels(REARRANGE_ACTCHAN_BOTTOM);
break;
}
@@ -923,6 +913,54 @@ static uiBlock *action_keymenu_chanposmenu(void *arg_unused)
return block;
}
+static void do_action_keymenu_changroupmenu(void *arg, int event)
+{
+ switch(event)
+ {
+ case ACTMENU_KEY_CHANGROUP_ADD_TOACTIVE:
+ action_groups_group(0);
+ break;
+ case ACTMENU_KEY_CHANGROUP_ADD_TONEW:
+ action_groups_group(1);
+ break;
+ case ACTMENU_KEY_CHANGROUP_REMOVE:
+ action_groups_ungroup();
+ break;
+ }
+}
+
+static uiBlock *action_keymenu_changroupmenu(void *arg_unused)
+{
+ uiBlock *block;
+ short yco= 0, menuwidth=120;
+
+ block= uiNewBlock(&curarea->uiblocks, "action_keymenu_changroupmenu",
+ UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
+ uiBlockSetButmFunc(block, do_action_keymenu_changroupmenu, NULL);
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Add to Active Group|Shift G", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_CHANGROUP_ADD_TOACTIVE, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Add To New Group|Ctrl Shift G", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_CHANGROUP_ADD_TONEW, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Remove From Group|Alt G", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_CHANGROUP_REMOVE, "");
+
+ uiBlockSetDirection(block, UI_RIGHT);
+ uiTextBoundsBlock(block, 60);
+
+ return block;
+}
+
static void do_action_keymenu_snapmenu(void *arg, int event)
{
switch(event)
@@ -1125,6 +1163,14 @@ static uiBlock *action_keymenu(void *arg_unused)
uiDefIconTextBlockBut(block, action_keymenu_intpolmenu,
NULL, ICON_RIGHTARROW_THIN,
"Interpolation Mode", 0, yco-=20, 120, 20, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBlockBut(block, action_keymenu_changroupmenu,
+ NULL, ICON_RIGHTARROW_THIN,
+ "Channel Grouping", 0, yco-=20, 120, 20, "");
+
uiDefIconTextBlockBut(block, action_keymenu_chanposmenu,
NULL, ICON_RIGHTARROW_THIN,
"Channel Ordering", 0, yco-=20, 120, 20, "");