[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18514] branches/blender2.5/blender/source /blender/editors/space_action/action_header.c: Action Editor header menu structure ported, but menu items not yet linked up to functionality.

Roland Hess me at harkyman.com
Thu Jan 15 04:12:24 CET 2009


Revision: 18514
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18514
Author:   harkyman
Date:     2009-01-15 04:12:21 +0100 (Thu, 15 Jan 2009)

Log Message:
-----------
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.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/space_action/action_header.c

Modified: branches/blender2.5/blender/source/blender/editors/space_action/action_header.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_action/action_header.c	2009-01-15 03:10:01 UTC (rev 18513)
+++ branches/blender2.5/blender/source/blender/editors/space_action/action_header.c	2009-01-15 03:12:21 UTC (rev 18514)
@@ -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 @@
 
 /* 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,23 +228,421 @@
 
 /* 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, "");

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list