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:
authorRoland Hess <me@harkyman.com>2009-01-15 06:12:21 +0300
committerRoland Hess <me@harkyman.com>2009-01-15 06:12:21 +0300
commitad50055610298cff793cdde1c01e1bc126398395 (patch)
treedc155090c293ad8afb28c3bfd55c2d09a11b9dca /source/blender/editors
parentcaa9e7b1338a487a2980275be7fb30c034c36354 (diff)
Action Editor header menu structure ported, but menu items not yet linked up to functionality. Just wanted to get this committed in case I skid off a cliff in the snow tomorrow.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/space_action/action_header.c1170
1 files changed, 1125 insertions, 45 deletions
diff --git a/source/blender/editors/space_action/action_header.c b/source/blender/editors/space_action/action_header.c
index b6f65dfdcd7..65a2d956e11 100644
--- a/source/blender/editors/space_action/action_header.c
+++ b/source/blender/editors/space_action/action_header.c
@@ -30,6 +30,7 @@
#include <stdio.h>
#include "DNA_action_types.h"
+#include "DNA_key_types.h"
#include "DNA_space_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
@@ -212,11 +213,14 @@ enum {
/* test if active action editor is showing any markers */
#if 0
- #define G_SACTION_HASMARKERS \
- ((G.saction->action && G.saction->action->markers.first) \
- || (G.scene->markers.first))
+ #define SACTION_HASMARKERS \
+ ((saction->action && saction->action->markers.first) \
+ || (scene->markers.first))
#endif
+/* need to find out how to get scene from context */
+#define SACTION_HASMARKERS (saction->action && saction->action->markers.first)
+
/* ------------------------------- */
/* *************************************************************** */
@@ -224,9 +228,348 @@ enum {
/* Key menu --------------------------- */
-static void do_keymenu(bContext *C, void *arg, int event)
+static void do_keymenu_transformmenu(bContext *C, void *arg, int event)
+{
+ switch (event)
+ {
+ case ACTMENU_KEY_TRANSFORM_MOVE:
+ //transform_action_keys('g', 0);
+ break;
+ case ACTMENU_KEY_TRANSFORM_SCALE:
+ //transform_action_keys('s', 0);
+ break;
+ case ACTMENU_KEY_TRANSFORM_SLIDE:
+ //transform_action_keys('t', 0);
+ break;
+ case ACTMENU_KEY_TRANSFORM_EXTEND:
+ //transform_action_keys('e', 0);
+ break;
+ }
+}
+
+static uiBlock *action_keymenu_transformmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
+{
+ uiBlock *block;
+ short yco= 0, menuwidth=120;
+
+ block= uiBeginBlock(C, handle->region, "action_keymenu_transformmenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_keymenu_transformmenu, NULL);
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Grab/Move|G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_TRANSFORM_MOVE, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Grab/Extend from Frame|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_TRANSFORM_EXTEND, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Scale|S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_TRANSFORM_SCALE, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Time Slide|T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_TRANSFORM_SLIDE, "");
+
+ uiBlockSetDirection(block, UI_RIGHT);
+
+ uiTextBoundsBlock(block, 60);
+ uiEndBlock(C, block);
+
+ return block;
+}
+
+static void do_keymenu_snapmenu(bContext *C, void *arg, int event)
+{
+ switch(event)
+ {
+ case ACTMENU_KEY_SNAP_NEARFRAME:
+ case ACTMENU_KEY_SNAP_CURFRAME:
+ case ACTMENU_KEY_SNAP_NEARMARK:
+ case ACTMENU_KEY_SNAP_NEARTIME:
+ //snap_action_keys(event);
+ break;
+
+ case ACTMENU_KEY_SNAP_CFRA2KEY:
+ //snap_cfra_action();
+ break;
+ }
+}
+
+static uiBlock *action_keymenu_snapmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
{
+ SpaceAction *saction= (SpaceAction*)CTX_wm_space_data(C);
+ uiBlock *block;
+ short yco= 0, menuwidth=120;
+
+
+ block= uiBeginBlock(C, handle->region, "action_keymenu_snapmenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_keymenu_snapmenu, NULL);
+
+ if (saction->flag & SACTION_DRAWTIME) {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Key -> Nearest Second|Shift S, 1", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_SNAP_NEARTIME, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Key -> Current Time|Shift S, 2", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_SNAP_CURFRAME, "");
+
+ }
+ else {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Key -> Nearest Frame|Shift S, 1", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_SNAP_NEARFRAME, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Key -> Current Frame|Shift S, 2", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_SNAP_CURFRAME, "");
+ }
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Key -> Nearest Marker|Shift S, 3", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_SNAP_NEARMARK, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Current Frame -> Key|Ctrl Shift S", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_SNAP_NEARMARK, "");
+
+ uiBlockSetDirection(block, UI_RIGHT);
+ uiTextBoundsBlock(block, 60);
+ uiEndBlock(C, block);
+
+ return block;
+}
+
+static void do_keymenu_mirrormenu(bContext *C, void *arg, int event)
+{
+ switch(event)
+ {
+ case ACTMENU_KEY_MIRROR_CURFRAME:
+ case ACTMENU_KEY_MIRROR_YAXIS:
+ //mirror_action_keys(event);
+ break;
+ }
+
+}
+
+static uiBlock *action_keymenu_mirrormenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
+{
+ uiBlock *block;
+ short yco= 0, menuwidth=120;
+
+ block= uiBeginBlock(C, handle->region, "action_keymenu_mirrormenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_keymenu_mirrormenu, NULL);
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Current Frame|Shift M, 1", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_MIRROR_CURFRAME, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Vertical Axis|Shift M, 2", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_MIRROR_YAXIS, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Horizontal Axis|Shift M, 3", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_MIRROR_XAXIS, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Selected Marker|Shift M, 4", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_MIRROR_MARKER, "");
+
+ uiBlockSetDirection(block, UI_RIGHT);
+
+ uiTextBoundsBlock(block, 60);
+ uiEndBlock(C, block);
+
+ return block;
+}
+
+static void do_keymenu_handlemenu(bContext *C, void *arg, int event)
+{
+ switch (event) {
+ case ACTMENU_KEY_HANDLE_AUTO:
+ //sethandles_action_keys(HD_AUTO);
+ break;
+
+ case ACTMENU_KEY_HANDLE_ALIGN:
+ case ACTMENU_KEY_HANDLE_FREE:
+ /* OK, this is kinda dumb, need to fix the
+ * toggle crap in sethandles_ipo_keys()
+ */
+ //sethandles_action_keys(HD_ALIGN);
+ break;
+
+ case ACTMENU_KEY_HANDLE_VECTOR:
+ //sethandles_action_keys(HD_VECT);
+ break;
+ }
+}
+
+static uiBlock *action_keymenu_handlemenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
+{
+ uiBlock *block;
+ short yco= 0, menuwidth=120;
+
+ block= uiBeginBlock(C, handle->region, "action_keymenu_handlemenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_keymenu_handlemenu, NULL);
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Auto|Shift H", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_HANDLE_AUTO, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Aligned|H", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_HANDLE_ALIGN, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Free|H", 0, yco-=20, menuwidth,
+ 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_HANDLE_FREE, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Vector|V", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_HANDLE_VECTOR, "");
+
+ uiBlockSetDirection(block, UI_RIGHT);
+
+ uiTextBoundsBlock(block, 60);
+ uiEndBlock(C, block);
+
+ return block;
+}
+
+static void do_keymenu_extendmenu(bContext *C, void *arg, int event)
+{
+ switch(event)
+ {
+ case ACTMENU_KEY_EXTEND_CONST:
+ //action_set_ipo_flags(SET_EXTEND_MENU, SET_EXTEND_CONSTANT);
+ break;
+ case ACTMENU_KEY_EXTEND_EXTRAPOLATION:
+ //action_set_ipo_flags(SET_EXTEND_MENU, SET_EXTEND_EXTRAPOLATION);
+ break;
+ case ACTMENU_KEY_EXTEND_CYCLIC:
+ //action_set_ipo_flags(SET_EXTEND_MENU, SET_EXTEND_CYCLIC);
+ break;
+ case ACTMENU_KEY_EXTEND_CYCLICEXTRAPOLATION:
+ //action_set_ipo_flags(SET_EXTEND_MENU, SET_EXTEND_CYCLICEXTRAPOLATION);
+ break;
+ }
+}
+
+static uiBlock *action_keymenu_extendmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
+{
+ uiBlock *block;
+ short yco= 0, menuwidth=120;
+
+ block= uiBeginBlock(C, handle->region, "action_keymenu_extendmenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_keymenu_extendmenu, NULL);
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Constant", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_EXTEND_CONST, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Extrapolation", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_EXTEND_EXTRAPOLATION, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Cyclic", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_EXTEND_CYCLIC, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Cyclic Extrapolation", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_EXTEND_CYCLICEXTRAPOLATION, "");
+
+ uiBlockSetDirection(block, UI_RIGHT);
+
+ uiTextBoundsBlock(block, 60);
+ uiEndBlock(C, block);
+
+ return block;
+}
+
+static void do_keymenu_intpolmenu(bContext *C, void *arg, int event)
+{
+ switch(event)
+ {
+ case ACTMENU_KEY_INTERP_CONST:
+ //action_set_ipo_flags(SET_IPO_MENU, SET_IPO_CONSTANT);
+ break;
+ case ACTMENU_KEY_INTERP_LINEAR:
+ //action_set_ipo_flags(SET_IPO_MENU, SET_IPO_LINEAR);
+ break;
+ case ACTMENU_KEY_INTERP_BEZIER:
+ //action_set_ipo_flags(SET_IPO_MENU, SET_IPO_BEZIER);
+ break;
+ }
+}
+
+static uiBlock *action_keymenu_intpolmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
+{
+ uiBlock *block;
+ short yco= 0, menuwidth=120;
+
+ block= uiBeginBlock(C, handle->region, "action_keymenu_intpolmenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_keymenu_intpolmenu, NULL);
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Constant|Shift T, 1", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_INTERP_CONST, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Linear|Shift T, 2", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_INTERP_LINEAR, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Bezier|Shift T, 3", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_INTERP_BEZIER, "");
+
+ uiBlockSetDirection(block, UI_RIGHT);
+
+ uiTextBoundsBlock(block, 60);
+ uiEndBlock(C, block);
+
+ return block;
+}
+
+static void do_action_keymenu(bContext *C, void *arg, int event)
+{
+ SpaceAction *saction= (SpaceAction*)CTX_wm_space_data(C);
+ bAction *act;
+ //Key *key;
+
+ if (!saction) return;
+
+ act = saction->action;
+ //key = get_action_mesh_key();
+
+ switch(event)
+ {
+ case ACTMENU_KEY_DUPLICATE:
+ //duplicate_action_keys();
+ break;
+ case ACTMENU_KEY_DELETE:
+ //delete_action_keys();
+ break;
+ case ACTMENU_KEY_CLEAN:
+ //clean_action();
+ break;
+ case ACTMENU_KEY_SAMPLEKEYS:
+ //sample_action_keys();
+ break;
+ case ACTMENU_KEY_INSERTKEY:
+ //insertkey_action();
+ break;
+ }
}
static uiBlock *action_keymenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
@@ -235,11 +578,70 @@ static uiBlock *action_keymenu(bContext *C, uiMenuBlockHandle *handle, void *arg
uiBlock *block;
short yco= 0, menuwidth=120;
- block= uiBeginBlock(C, handle->region, "dummy_keymenu", UI_EMBOSSP, UI_HELV);
- uiBlockSetButmFunc(block, do_keymenu, NULL);
+ block= uiBeginBlock(C, handle->region, "action_keymenu", UI_EMBOSSP, UI_HELV);
+
+
+ uiBlockSetButmFunc(block, do_action_keymenu, NULL);
+
+ uiDefIconTextBlockBut(block, action_keymenu_transformmenu,
+ NULL, ICON_RIGHTARROW_THIN, "Transform", 0, yco-=20, 120, 20, "");
+
+ uiDefIconTextBlockBut(block, action_keymenu_snapmenu,
+ NULL, ICON_RIGHTARROW_THIN, "Snap", 0, yco-=20, 120, 20, "");
+
+ uiDefIconTextBlockBut(block, action_keymenu_mirrormenu,
+ NULL, ICON_RIGHTARROW_THIN, "Mirror", 0, yco-=20, 120, 20, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Insert Key|I", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_INSERTKEY, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Duplicate|Shift D", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_DUPLICATE, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Delete|X", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_DELETE, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Clean Action|O", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_CLEAN, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Sample Keys|Alt O", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_SAMPLEKEYS, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBlockBut(block, action_keymenu_handlemenu,
+ NULL, ICON_RIGHTARROW_THIN,
+ "Handle Type", 0, yco-=20, 120, 20, "");
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Nothing yet", 0, yco-=20,
- menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBlockBut(block, action_keymenu_extendmenu,
+ NULL, ICON_RIGHTARROW_THIN,
+ "Extend Mode", 0, yco-=20, 120, 20, "");
+ uiDefIconTextBlockBut(block, action_keymenu_intpolmenu,
+ NULL, ICON_RIGHTARROW_THIN,
+ "Interpolation Mode", 0, yco-=20, 120, 20, "");
if(curarea->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);
@@ -257,22 +659,38 @@ static uiBlock *action_keymenu(bContext *C, uiMenuBlockHandle *handle, void *arg
/* Frame menu --------------------------- */
-static void do_framemenu(bContext *C, void *arg, int event)
-{
-
-}
+// framemenu uses functions from keymenu
static uiBlock *action_framemenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
{
ScrArea *curarea= CTX_wm_area(C);
uiBlock *block;
short yco= 0, menuwidth=120;
- block= uiBeginBlock(C, handle->region, "dummy_framemenu", UI_EMBOSSP, UI_HELV);
- uiBlockSetButmFunc(block, do_framemenu, NULL);
+ block= uiBeginBlock(C, handle->region, "action_framemenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_action_keymenu, NULL);
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Nothing yet", 0, yco-=20,
- menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
+ uiDefIconTextBlockBut(block, action_keymenu_transformmenu,
+ NULL, ICON_RIGHTARROW_THIN, "Transform", 0, yco-=20, 120, 20, "");
+
+ uiDefIconTextBlockBut(block, action_keymenu_snapmenu,
+ NULL, ICON_RIGHTARROW_THIN, "Snap", 0, yco-=20, 120, 20, "");
+
+ uiDefIconTextBlockBut(block, action_keymenu_mirrormenu,
+ NULL, ICON_RIGHTARROW_THIN, "Mirror", 0, yco-=20, 120, 20, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Duplicate|Shift D", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_DUPLICATE, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Delete|X", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_KEY_DELETE, "");
if(curarea->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);
@@ -292,20 +710,76 @@ static uiBlock *action_framemenu(bContext *C, uiMenuBlockHandle *handle, void *a
static void do_markermenu(bContext *C, void *arg, int event)
{
-
+ switch(event)
+ {
+ case ACTMENU_MARKERS_ADD:
+ //add_marker(CFRA);
+ break;
+ case ACTMENU_MARKERS_DUPLICATE:
+ //duplicate_marker();
+ break;
+ case ACTMENU_MARKERS_DELETE:
+ //remove_marker();
+ break;
+ case ACTMENU_MARKERS_NAME:
+ //rename_marker();
+ break;
+ case ACTMENU_MARKERS_MOVE:
+ //transform_markers('g', 0);
+ break;
+ case ACTMENU_MARKERS_LOCALADD:
+ //action_add_localmarker(G.saction->action, CFRA);
+ break;
+ case ACTMENU_MARKERS_LOCALDELETE:
+ //action_remove_localmarkers(G.saction->action);
+ break;
+ case ACTMENU_MARKERS_LOCALRENAME:
+ //action_rename_localmarker(G.saction->action);
+ break;
+ case ACTMENU_MARKERS_LOCALMOVE:
+ /*G.saction->flag |= SACTION_POSEMARKERS_MOVE;
+ transform_markers('g', 0);
+ G.saction->flag &= ~SACTION_POSEMARKERS_MOVE;*/
+ break;
+ }
}
static uiBlock *action_markermenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
{
+ SpaceAction *saction= (SpaceAction*)CTX_wm_space_data(C);
ScrArea *curarea= CTX_wm_area(C);
uiBlock *block;
short yco= 0, menuwidth=120;
- block= uiBeginBlock(C, handle->region, "dummy_markermenu", UI_EMBOSSP, UI_HELV);
+ block= uiBeginBlock(C, handle->region, "action_markermenu", UI_EMBOSSP, UI_HELV);
uiBlockSetButmFunc(block, do_markermenu, NULL);
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Nothing yet", 0, yco-=20,
- menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Add Marker|M", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1, ACTMENU_MARKERS_ADD, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate Marker|Ctrl Shift D", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1, ACTMENU_MARKERS_DUPLICATE, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete Marker|Shift X", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1, ACTMENU_MARKERS_DELETE, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "(Re)Name Marker|Ctrl M", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1, ACTMENU_MARKERS_NAME, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grab/Move Marker|Ctrl G", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1, ACTMENU_MARKERS_MOVE, "");
+
+ if (saction->mode == SACTCONT_ACTION) {
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Add Pose Marker|Shift L", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1, ACTMENU_MARKERS_LOCALADD, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Rename Pose Marker|Ctrl Shift L", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1, ACTMENU_MARKERS_LOCALRENAME, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete Pose Marker|Alt L", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1, ACTMENU_MARKERS_LOCALDELETE, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grab/Move Pose Marker|Ctrl L", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1, ACTMENU_MARKERS_LOCALMOVE, "");
+ }
if(curarea->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);
@@ -321,24 +795,227 @@ static uiBlock *action_markermenu(bContext *C, uiMenuBlockHandle *handle, void *
return block;
}
-/* Grease Pencil --------------------------- */
-static void do_gplayermenu(bContext *C, void *arg, int event)
+/* Channel menu --------------------------- */
+
+static void do_channelmenu_posmenu(bContext *C, void *arg, int event)
+{
+ switch(event)
+ {
+ case ACTMENU_CHANNELS_CHANPOS_MOVE_CHANNEL_DOWN:
+ //rearrange_action_channels(REARRANGE_ACTCHAN_DOWN);
+ break;
+ case ACTMENU_CHANNELS_CHANPOS_MOVE_CHANNEL_UP:
+ //rearrange_action_channels(REARRANGE_ACTCHAN_UP);
+ break;
+ case ACTMENU_CHANNELS_CHANPOS_MOVE_CHANNEL_TOP:
+ //rearrange_action_channels(REARRANGE_ACTCHAN_TOP);
+ break;
+ case ACTMENU_CHANNELS_CHANPOS_MOVE_CHANNEL_BOTTOM:
+ //rearrange_action_channels(REARRANGE_ACTCHAN_BOTTOM);
+ break;
+ }
+}
+
+static uiBlock *action_channelmenu_posmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
{
+ uiBlock *block;
+ short yco= 0, menuwidth=120;
+
+ block= uiBeginBlock(C, handle->region, "action_channelmenu_posmenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_channelmenu_posmenu, NULL);
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Move Up|Shift Page Up", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_CHANNELS_CHANPOS_MOVE_CHANNEL_UP, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Move Down|Shift Page Down", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_CHANNELS_CHANPOS_MOVE_CHANNEL_DOWN, "");
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Move to Top|Ctrl Shift Page Up", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_CHANNELS_CHANPOS_MOVE_CHANNEL_TOP, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Move to Bottom|Ctrl Shift Page Down", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_CHANNELS_CHANPOS_MOVE_CHANNEL_BOTTOM, "");
+
+ uiBlockSetDirection(block, UI_RIGHT);
+ uiTextBoundsBlock(block, 60);
+
+ return block;
}
-static uiBlock *action_gplayermenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
+static void do_channelmenu_groupmenu(bContext *C, void *arg, int event)
+{
+ switch(event)
+ {
+ case ACTMENU_CHANNELS_GROUP_ADD_TOACTIVE:
+ //action_groups_group(0);
+ break;
+ case ACTMENU_CHANNELS_GROUP_ADD_TONEW:
+ //action_groups_group(1);
+ break;
+ case ACTMENU_CHANNELS_GROUP_REMOVE:
+ //action_groups_ungroup();
+ break;
+ case ACTMENU_CHANNELS_GROUP_SYNCPOSE: /* Syncronise Pose-data and Action-data */
+ //sync_pchan2achan_grouping();
+ break;
+ }
+}
+
+static uiBlock *action_channelmenu_groupmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
+{
+ uiBlock *block;
+ short yco= 0, menuwidth=120;
+
+ block= uiBeginBlock(C, handle->region, "action_channelmenu_groupmenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_channelmenu_groupmenu, 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_CHANNELS_GROUP_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_CHANNELS_GROUP_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_CHANNELS_GROUP_REMOVE, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Synchronise with Armature", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_CHANNELS_GROUP_SYNCPOSE, "");
+
+ uiBlockSetDirection(block, UI_RIGHT);
+ uiTextBoundsBlock(block, 60);
+
+ return block;
+}
+
+static void do_channelmenu_settingsmenu(bContext *C, void *arg, int event)
+{
+ //setflag_action_channels(event);
+}
+
+static uiBlock *action_channelmenu_settingsmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
+{
+ uiBlock *block;
+ short yco= 0, menuwidth=120;
+
+ block= uiBeginBlock(C, handle->region, "action_channelmenu_settingsmenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_channelmenu_settingsmenu, NULL);
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Toggle a Setting|Shift W", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_CHANNELS_SETTINGS_TOGGLE, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Enable a Setting|Ctrl Shift W", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_CHANNELS_SETTINGS_ENABLE, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Disable a Setting|Alt W", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_CHANNELS_SETTINGS_DISABLE, "");
+
+ uiBlockSetDirection(block, UI_RIGHT);
+ uiTextBoundsBlock(block, 60);
+
+ return block;
+}
+
+static void do_channelmenu(bContext *C, void *arg, int event)
+{
+ SpaceAction *saction= (SpaceAction*)CTX_wm_space_data(C);
+
+ if (saction == NULL) return;
+
+ switch(event)
+ {
+ case ACTMENU_CHANNELS_OPENLEVELS: /* Unfold selected channels one step */
+ //openclose_level_action(1);
+ break;
+ case ACTMENU_CHANNELS_CLOSELEVELS: /* Fold selected channels one step */
+ //openclose_level_action(-1);
+ break;
+ case ACTMENU_CHANNELS_EXPANDALL: /* Expands all channels */
+ //expand_all_action();
+ break;
+ case ACTMENU_CHANNELS_SHOWACHANS: /* Unfold groups that are hiding selected achans */
+ //expand_obscuregroups_action();
+ break;
+ case ACTMENU_CHANNELS_DELETE: /* Deletes selected channels */
+ //delete_action_channels();
+ break;
+ }
+}
+
+static uiBlock *action_channelmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
{
ScrArea *curarea= CTX_wm_area(C);
uiBlock *block;
short yco= 0, menuwidth=120;
- block= uiBeginBlock(C, handle->region, "dummy_gplayermenu", UI_EMBOSSP, UI_HELV);
- uiBlockSetButmFunc(block, do_gplayermenu, NULL);
+ block= uiBeginBlock(C, handle->region, "action_channelmenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_channelmenu, NULL);
+
+ uiDefIconTextBlockBut(block, action_channelmenu_groupmenu,
+ NULL, ICON_RIGHTARROW_THIN,
+ "Grouping", 0, yco-=20, 120, 20, "");
+
+ uiDefIconTextBlockBut(block, action_channelmenu_posmenu,
+ NULL, ICON_RIGHTARROW_THIN,
+ "Ordering", 0, yco-=20, 120, 20, "");
+
+ uiDefIconTextBlockBut(block, action_channelmenu_settingsmenu,
+ NULL, ICON_RIGHTARROW_THIN,
+ "Settings", 0, yco-=20, 120, 20, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Nothing yet", 0, yco-=20,
- menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Delete|X", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0, ACTMENU_CHANNELS_DELETE, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Toggle Show Hierachy|~", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0, ACTMENU_CHANNELS_EXPANDALL, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Show Group-Hidden Channels|Shift ~", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0, ACTMENU_CHANNELS_SHOWACHANS, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Expand One Level|Ctrl NumPad+", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0, ACTMENU_CHANNELS_OPENLEVELS, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Collapse One Level|Ctrl NumPad-", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0, ACTMENU_CHANNELS_CLOSELEVELS, "");
if(curarea->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);
@@ -354,24 +1031,28 @@ static uiBlock *action_gplayermenu(bContext *C, uiMenuBlockHandle *handle, void
return block;
}
-/* Channel menu --------------------------- */
-
-static void do_channelmenu(bContext *C, void *arg, int event)
-{
-
-}
+/* Grease Pencil --------------------------- */
-static uiBlock *action_channelmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
+/* Uses channelmenu functions */
+static uiBlock *action_gplayermenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
{
ScrArea *curarea= CTX_wm_area(C);
uiBlock *block;
short yco= 0, menuwidth=120;
- block= uiBeginBlock(C, handle->region, "dummy_channelmenu", UI_EMBOSSP, UI_HELV);
+ block= uiBeginBlock(C, handle->region, "action_gplayermenu", UI_EMBOSSP, UI_HELV);
uiBlockSetButmFunc(block, do_channelmenu, NULL);
+
+ uiDefIconTextBlockBut(block, action_channelmenu_settingsmenu,
+ NULL, ICON_RIGHTARROW_THIN,
+ "Settings", 0, yco-=20, 120, 20, "");
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Nothing yet", 0, yco-=20,
- menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Delete|X", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0, ACTMENU_CHANNELS_DELETE, "");
if(curarea->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);
@@ -389,22 +1070,219 @@ static uiBlock *action_channelmenu(bContext *C, uiMenuBlockHandle *handle, void
/* Select menu --------------------------- */
+static void do_selectmenu_columnmenu(bContext *C, void *arg, int 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;
+ case ACTMENU_SEL_COLUMN_CFRA:
+ //column_select_action_keys(3);
+ break;
+ }
+}
+
+static uiBlock *action_selectmenu_columnmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
+{
+ SpaceAction *saction= (SpaceAction*)CTX_wm_space_data(C);
+ uiBlock *block;
+ short yco= 0, menuwidth=120;
+
+ block= uiBeginBlock(C, handle->region, "action_selectmenu_columnmenu", UI_EMBOSSP, UI_HELV);
+ uiBlockSetButmFunc(block, do_selectmenu_columnmenu, NULL);
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "On Selected Keys|K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_COLUMN_KEYS, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "On Current Frame|Ctrl K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_COLUMN_CFRA, "");
+
+ if (SACTION_HASMARKERS) {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "On Selected Markers|Shift K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_COLUMN_MARKERSCOLUMN, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Between Selected Markers|Alt K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_COLUMN_MARKERSBETWEEN, "");
+ }
+
+ uiBlockSetDirection(block, UI_RIGHT);
+ uiTextBoundsBlock(block, 60);
+
+ return block;
+}
+
static void do_selectmenu(bContext *C, void *arg, int event)
{
+ SpaceAction *saction= (SpaceAction*)CTX_wm_space_data(C);
+ //Key *key;
+
+ if (saction == NULL) return;
+
+ //key = get_action_mesh_key();
+ switch(event)
+ {
+ case ACTMENU_SEL_BORDER: /* Border Select */
+ //borderselect_action();
+ break;
+
+ case ACTMENU_SEL_BORDERC: /* Border Select */
+ //borderselect_actionchannels();
+ break;
+
+ case ACTMENU_SEL_BORDERM: /* Border Select */
+ //borderselect_markers();
+ break;
+
+ case ACTMENU_SEL_ALL_KEYS: /* Select/Deselect All Keys */
+ /*deselect_action_keys(1, 1);
+ BIF_undo_push("(De)Select Keys");
+ allqueue(REDRAWACTION, 0);
+ allqueue(REDRAWNLA, 0);
+ allqueue(REDRAWIPO, 0);*/
+ break;
+
+ case ACTMENU_SEL_ALL_CHAN: /* Select/Deselect All Channels */
+ /*deselect_action_channels(1);
+ BIF_undo_push("(De)Select Action Channels");
+ allqueue(REDRAWVIEW3D, 0);
+ allqueue(REDRAWACTION, 0);
+ allqueue(REDRAWNLA, 0);
+ allqueue(REDRAWIPO, 0);*/
+ break;
+
+ case ACTMENU_SEL_ALL_MARKERS: /* select/deselect all markers */
+ /*deselect_markers(1, 0);
+ BIF_undo_push("(De)Select Markers");
+ allqueue(REDRAWMARKER, 0);*/
+ break;
+
+ case ACTMENU_SEL_INVERSE_KEYS: /* invert selection status of keys */
+ /*deselect_action_keys(0, 2);
+ BIF_undo_push("Inverse Keys");
+ allqueue(REDRAWACTION, 0);
+ allqueue(REDRAWNLA, 0);
+ allqueue(REDRAWIPO, 0);*/
+ break;
+
+ case ACTMENU_SEL_INVERSE_CHANNELS: /* invert selection status of channels */
+ /*deselect_action_channels(2);
+ BIF_undo_push("Inverse Action Channels");
+ allqueue(REDRAWVIEW3D, 0);
+ allqueue(REDRAWACTION, 0);
+ allqueue(REDRAWNLA, 0);
+ allqueue(REDRAWIPO, 0);*/
+ break;
+
+ case ACTMENU_SEL_INVERSE_MARKERS: /* invert selection of markers */
+ /*deselect_markers(0, 2);
+ BIF_undo_push("Inverse Action Channels");
+ allqueue(REDRAWMARKER, 0);*/
+ break;
+
+ case ACTMENU_SEL_LEFTKEYS:
+ //selectkeys_leftright(1, SELECT_REPLACE);
+ break;
+
+ case ACTMENU_SEL_RIGHTKEYS:
+ //selectkeys_leftright(0, SELECT_REPLACE);
+ break;
+ }
}
static uiBlock *action_selectmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
{
ScrArea *curarea= CTX_wm_area(C);
+ SpaceAction *saction= (SpaceAction*)CTX_wm_space_data(C);
uiBlock *block;
short yco= 0, menuwidth=120;
- block= uiBeginBlock(C, handle->region, "dummy_selectmenu", UI_EMBOSSP, UI_HELV);
+ block= uiBeginBlock(C, handle->region, "action_selectmenu", UI_EMBOSSP, UI_HELV);
uiBlockSetButmFunc(block, do_selectmenu, NULL);
-
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Nothing yet", 0, yco-=20,
- menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Border Select Keys|B", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_BORDER, "");
+ if (SACTION_HASMARKERS) {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Border Select Markers|Ctrl B", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_BORDERM, "");
+ }
+ if (saction->mode != SACTCONT_SHAPEKEY) {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Border Select Channels|B", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_BORDERC, "");
+ }
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Select/Deselect All Keys|A", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_ALL_KEYS, "");
+ if (SACTION_HASMARKERS) {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Select/Deselect All Markers|Ctrl A", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_ALL_MARKERS, "");
+ }
+ if (saction->mode != SACTCONT_SHAPEKEY) {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Select/Deselect All Channels|A", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_ALL_CHAN, "");
+ }
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Inverse Keys|Ctrl I", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_INVERSE_KEYS, "");
+ if (SACTION_HASMARKERS) {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Inverse Markers|Ctrl Shift I", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_INVERSE_MARKERS, "");
+ }
+ if (saction->mode != SACTCONT_SHAPEKEY) {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Inverse All Channels|Ctrl I", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_INVERSE_CHANNELS, "");
+ }
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Back In Time|Alt RMB", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_LEFTKEYS, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Ahead In Time|Alt RMB", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_SEL_RIGHTKEYS, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBlockBut(block, action_selectmenu_columnmenu,
+ NULL, ICON_RIGHTARROW_THIN, "Column Select Keys", 0, yco-=20, 120, 20, "");
if(curarea->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);
@@ -424,20 +1302,222 @@ static uiBlock *action_selectmenu(bContext *C, uiMenuBlockHandle *handle, void *
static void do_viewmenu(bContext *C, void *arg, int event)
{
-
+ switch(event) {
+ case ACTMENU_VIEW_CENTERVIEW: /* Center View to Current Frame */
+ //center_currframe();
+ break;
+ case ACTMENU_VIEW_AUTOUPDATE: /* Update Automatically */
+ /*if (BTST(G.saction->lock, 0))
+ G.saction->lock = BCLR(G.saction->lock, 0);
+ else
+ G.saction->lock = BSET(G.saction->lock, 0);*/
+ break;
+ case ACTMENU_VIEW_PLAY3D: /* Play Back Animation */
+ //play_anim(0);
+ break;
+ case ACTMENU_VIEW_PLAYALL: /* Play Back Animation in All */
+ //play_anim(1);
+ break;
+ case ACTMENU_VIEW_ALL: /* View All */
+ //do_action_buttons(B_ACTHOME);
+ break;
+ case ACTMENU_VIEW_LOCK:
+ /*G.v2d->flag ^= V2D_VIEWLOCK;
+ if (G.v2d->flag & V2D_VIEWLOCK)
+ view2d_do_locks(curarea, 0);*/
+ break;
+ case ACTMENU_VIEW_SLIDERS: /* Show sliders (when applicable) */
+ //G.saction->flag ^= SACTION_SLIDERS;
+ break;
+ case ACTMENU_VIEW_MAXIMIZE: /* Maximize Window */
+ /* using event B_FULL */
+ break;
+ case ACTMENU_VIEW_NEXTMARKER: /* Jump to next marker */
+ //nextprev_marker(1);
+ break;
+ case ACTMENU_VIEW_PREVMARKER: /* Jump to previous marker */
+ //nextprev_marker(-1);
+ break;
+ case ACTMENU_VIEW_TIME: /* switch between frames and seconds display */
+ //G.saction->flag ^= SACTION_DRAWTIME;
+ break;
+ case ACTMENU_VIEW_NOHIDE: /* Show hidden channels */
+ //G.saction->flag ^= SACTION_NOHIDE;
+ break;
+ case ACTMENU_VIEW_NEXTKEYFRAME: /* Jump to next keyframe */
+ //nextprev_action_keyframe(1);
+ break;
+ case ACTMENU_VIEW_PREVKEYFRAME: /* Jump to previous keyframe */
+ //nextprev_action_keyframe(-1);
+ break;
+ case ACTMENU_VIEW_TRANSDELDUPS: /* Don't delete duplicate/overlapping keyframes after transform */
+ //G.saction->flag ^= SACTION_NOTRANSKEYCULL;
+ break;
+ case ACTMENU_VIEW_HORIZOPTIMISE: /* Include keyframes not in view (horizontally) when preparing to draw */
+ //G.saction->flag ^= SACTION_HORIZOPTIMISEON;
+ break;
+ case ACTMENU_VIEW_GCOLORS: /* Draw grouped-action channels using its group's color */
+ //G.saction->flag ^= SACTION_NODRAWGCOLORS;
+ break;
+ case ACTMENU_VIEW_PREVRANGESET: /* Set preview range */
+ //anim_previewrange_set();
+ break;
+ case ACTMENU_VIEW_PREVRANGECLEAR: /* Clear preview range */
+ //anim_previewrange_clear();
+ break;
+ case ACTMENU_VIEW_PREVRANGEAUTO: /* Auto preview-range length */
+ //action_previewrange_set(G.saction->action);
+ break;
+ }
}
static uiBlock *action_viewmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
{
ScrArea *curarea= CTX_wm_area(C);
+ SpaceAction *saction= (SpaceAction*)CTX_wm_space_data(C);
+ View2D *v2d= UI_view2d_fromcontext_rwin(C);
uiBlock *block;
short yco= 0, menuwidth=120;
- block= uiBeginBlock(C, handle->region, "dummy_viewmenu", UI_EMBOSSP, UI_HELV);
+ block= uiBeginBlock(C, handle->region, "viewmenu", UI_EMBOSSP, UI_HELV);
uiBlockSetButmFunc(block, do_viewmenu, NULL);
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Nothing yet", 0, yco-=20,
- menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Center View to Current Frame|C", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_CENTERVIEW, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ if (saction->flag & SACTION_DRAWTIME) {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Show Frames|Ctrl T", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_TIME, "");
+ }
+ else {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Show Seconds|Ctrl T", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_TIME, "");
+ }
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ if (saction->mode == SACTCONT_GPENCIL) {
+ // this option may get removed in future
+ uiDefIconTextBut(block, BUTM, 1, (saction->flag & SACTION_HORIZOPTIMISEON)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
+ "Cull Out-of-View Keys (Time)|", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_HORIZOPTIMISE, "");
+ }
+ else {
+ uiDefIconTextBut(block, BUTM, 1, (saction->flag & SACTION_SLIDERS)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
+ "Show Sliders|", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_SLIDERS, "");
+
+ uiDefIconTextBut(block, BUTM, 1, (saction->flag & SACTION_NOHIDE)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
+ "Show Hidden Channels|", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_NOHIDE, "");
+
+ uiDefIconTextBut(block, BUTM, 1, (saction->flag & SACTION_NODRAWGCOLORS)?ICON_CHECKBOX_DEHLT:ICON_CHECKBOX_HLT,
+ "Use Group Colors|", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_GCOLORS, "");
+
+ // this option may get removed in future
+ uiDefIconTextBut(block, BUTM, 1, (saction->flag & SACTION_HORIZOPTIMISEON)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
+ "Cull Out-of-View Keys (Time)|", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_HORIZOPTIMISE, "");
+
+ uiDefIconTextBut(block, BUTM, 1, (saction->flag & SACTION_NOTRANSKEYCULL)?ICON_CHECKBOX_DEHLT:ICON_CHECKBOX_HLT,
+ "AutoMerge Keyframes|", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_TRANSDELDUPS, "");
+ }
+
+
+ uiDefIconTextBut(block, BUTM, 1, (v2d->flag & V2D_VIEWSYNC_SCREEN_TIME)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
+ "Lock Time to Other Windows|", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_LOCK, "");
+
+ /*uiDefIconTextBut(block, BUTM, 1, BTST(saction->lock, 0)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
+ "Update Automatically|", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_AUTOUPDATE, "");*/
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Jump To Next Marker|PageUp", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0, ACTMENU_VIEW_NEXTMARKER, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Jump To Prev Marker|PageDown", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0, ACTMENU_VIEW_PREVMARKER, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Jump To Next Keyframe|Ctrl PageUp", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0, ACTMENU_VIEW_NEXTKEYFRAME, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Jump To Prev Keyframe|Ctrl PageDown", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0, ACTMENU_VIEW_PREVKEYFRAME, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Play Back Animation|Alt A", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_PLAY3D, "");
+ //uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ // "Play Back Animation in 3D View|Alt Shift A", 0, yco-=20,
+ // menuwidth, 19, NULL, 0.0, 0.0, 1,
+ // ACTMENU_VIEW_PLAYALL, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Set Preview Range|Ctrl P", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_PREVRANGESET, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Clear Preview Range|Alt P", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_PREVRANGECLEAR, "");
+
+ if ((saction->mode == SACTCONT_ACTION) && (saction->action)) {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "Preview Range from Action Length|Ctrl Alt P", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_PREVRANGEAUTO, "");
+ }
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6,
+ menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
+ "View All|Home", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 1,
+ ACTMENU_VIEW_ALL, "");
+
+/* if (!curarea->full)
+ uiDefIconTextBut(block, BUTM, B_FULL, ICON_BLANK1,
+ "Maximize Window|Ctrl UpArrow", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_VIEW_MAXIMIZE, "");
+ else
+ uiDefIconTextBut(block, BUTM, B_FULL, ICON_BLANK1,
+ "Tile Window|Ctrl DownArrow", 0, yco-=20,
+ menuwidth, 19, NULL, 0.0, 0.0, 0,
+ ACTMENU_VIEW_MAXIMIZE, "");
+*/
if (curarea->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);