[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20826] branches/soc-2009-aligorith/source /blender: NLA SoC: Added menus including the operators coded already

Joshua Leung aligorith at gmail.com
Fri Jun 12 08:44:49 CEST 2009


Revision: 20826
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20826
Author:   aligorith
Date:     2009-06-12 08:44:49 +0200 (Fri, 12 Jun 2009)

Log Message:
-----------
NLA SoC: Added menus including the operators coded already

Modified Paths:
--------------
    branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_header.c
    branches/soc-2009-aligorith/source/blender/makesdna/DNA_space_types.h
    branches/soc-2009-aligorith/source/blender/makesrna/RNA_access.h
    branches/soc-2009-aligorith/source/blender/makesrna/intern/rna_space.c

Modified: branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_header.c
===================================================================
--- branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_header.c	2009-06-12 04:16:12 UTC (rev 20825)
+++ branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_header.c	2009-06-12 06:44:49 UTC (rev 20826)
@@ -57,7 +57,10 @@
 #include "ED_screen.h"
 
 #include "BIF_gl.h"
+#include "BIF_transform.h"
 
+#include "RNA_access.h"
+
 #include "WM_api.h"
 #include "WM_types.h"
 
@@ -74,37 +77,84 @@
 
 /* ************************ header area region *********************** */
 
-static void do_viewmenu(bContext *C, void *arg, int event)
+
+static void nla_viewmenu(bContext *C, uiLayout *layout, void *arg_unused)
 {
+	bScreen *sc= CTX_wm_screen(C);
+	ScrArea *sa= CTX_wm_area(C);
+	Scene *scene= CTX_data_scene(C);
+	SpaceNla *snla= (SpaceNla*)CTX_wm_space_data(C);
+	PointerRNA spaceptr;
 	
+	/* retrieve state */
+	RNA_pointer_create(&sc->id, &RNA_SpaceNLA, snla, &spaceptr);
+	
+	/* create menu */
+	uiItemO(layout, NULL, ICON_MENU_PANEL, "NLAEDIT_OT_properties");
+	
+	uiItemS(layout);
+	
+	uiItemR(layout, NULL, 0, &spaceptr, "show_cframe_indicator", 0, 0, 0);
+	
+	if (snla->flag & SNLA_DRAWTIME)
+		uiItemO(layout, "Show Frames", 0, "ANIM_OT_time_toggle");
+	else
+		uiItemO(layout, "Show Seconds", 0, "ANIM_OT_time_toggle");
+
+	uiItemS(layout);
+	
+	if (scene->flag & SCE_NLA_EDIT_ON) 
+		uiItemO(layout, NULL, 0, "NLAEDIT_OT_tweakmode_exit");
+	else
+		uiItemO(layout, NULL, 0, "NLAEDIT_OT_tweakmode_enter");
+	
+	uiItemS(layout);
+	
+	uiItemO(layout, NULL, 0, "NLA_OT_view_all");
+	
+	if (sa->full) 
+		uiItemO(layout, NULL, 0, "SCREEN_OT_screen_full_area"); // "Tile Window", Ctrl UpArrow
+	else 
+		uiItemO(layout, NULL, 0, "SCREEN_OT_screen_full_area"); // "Maximize Window", Ctr DownArrow
 }
 
-static uiBlock *dummy_viewmenu(bContext *C, ARegion *ar, void *arg_unused)
+static void nla_selectmenu(bContext *C, uiLayout *layout, void *arg_unused)
 {
-	ScrArea *curarea= CTX_wm_area(C);
-	uiBlock *block;
-	short yco= 0, menuwidth=120;
+	uiItemO(layout, NULL, 0, "NLAEDIT_OT_select_all_toggle");
+	uiItemBooleanO(layout, "Invert All", 0, "NLAEDIT_OT_select_all_toggle", "invert", 1);
 	
-	block= uiBeginBlock(C, ar, "dummy_viewmenu", UI_EMBOSSP);
-	uiBlockSetButmFunc(block, do_viewmenu, NULL);
+	uiItemS(layout);
 	
-	uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Nothing yet", 0, yco-=20, 
-					 menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
+	uiItemO(layout, NULL, 0, "NLAEDIT_OT_select_border");
+	uiItemBooleanO(layout, "Border Axis Range", 0, "NLAEDIT_OT_select_border", "axis_range", 1);
+}
+
+static void nla_edit_transformmenu(bContext *C, uiLayout *layout, void *arg_unused)
+{
+	// XXX these operators may change for NLA...
+	uiItemEnumO(layout, "Grab/Move", 0, "TFM_OT_transform", "mode", TFM_TIME_TRANSLATE);
+	uiItemEnumO(layout, "Extend", 0, "TFM_OT_transform", "mode", TFM_TIME_EXTEND);
+	uiItemEnumO(layout, "Scale", 0, "TFM_OT_transform", "mode", TFM_TIME_SCALE);
+}
+
+static void nla_editmenu(bContext *C, uiLayout *layout, void *arg_unused)
+{
+	uiItemMenuF(layout, "Transform", 0, nla_edit_transformmenu);
 	
-	if(curarea->headertype==HEADERTOP) {
-		uiBlockSetDirection(block, UI_DOWN);
-	}
-	else {
-		uiBlockSetDirection(block, UI_TOP);
-		uiBlockFlipOrder(block);
-	}
+	uiItemS(layout);
 	
-	uiTextBoundsBlock(block, 50);
-	uiEndBlock(C, block);
+	uiItemO(layout, NULL, 0, "NLA_OT_add_tracks");
+	uiItemBooleanO(layout, "Add Tracks Above Selected", 0, "NLA_OT_add_tracks", "above_selected", 1);
 	
-	return block;
+	uiItemO(layout, NULL, 0, "NLAEDIT_OT_split");
+	
+	uiItemS(layout);
+	
+	uiItemO(layout, NULL, 0, "NLAEDIT_OT_delete");
 }
 
+/* ------------------ */
+
 static void do_nla_buttons(bContext *C, void *arg, int event)
 {
 	switch (event) {
@@ -132,9 +182,17 @@
 		int xmax;
 		
 		xmax= GetButStringLength("View");
-		uiDefPulldownBut(block, dummy_viewmenu, CTX_wm_area(C), 
-						 "View", xco, yco-2, xmax-3, 24, "");
-		xco+=XIC+xmax;
+		uiDefMenuBut(block, nla_viewmenu, NULL, "View", xco, yco, xmax-3, 20, "");
+		xco+= xmax;
+		
+		xmax= GetButStringLength("Select");
+		uiDefMenuBut(block, nla_selectmenu, NULL, "Select", xco, yco, xmax-3, 20, "");
+		xco+= xmax;
+		
+		xmax= GetButStringLength("Edit");
+		uiDefMenuBut(block, nla_editmenu, NULL, "Edit", xco, yco, xmax-3, 20, "");
+		xco+= xmax;
+		
 	}
 	
 	uiBlockSetEmboss(block, UI_EMBOSS);

Modified: branches/soc-2009-aligorith/source/blender/makesdna/DNA_space_types.h
===================================================================
--- branches/soc-2009-aligorith/source/blender/makesdna/DNA_space_types.h	2009-06-12 04:16:12 UTC (rev 20825)
+++ branches/soc-2009-aligorith/source/blender/makesdna/DNA_space_types.h	2009-06-12 06:44:49 UTC (rev 20826)
@@ -696,8 +696,11 @@
 #define IMS_INFILESLI		4
 
 /* nla->flag */
+	// depreceated
 #define SNLA_ALLKEYED		(1<<0)
+	// depreceated
 #define SNLA_ACTIVELAYERS	(1<<1)
+
 #define SNLA_DRAWTIME		(1<<2)
 #define SNLA_NOTRANSKEYCULL	(1<<3)
 #define SNLA_NODRAWCFRANUM	(1<<4)

Modified: branches/soc-2009-aligorith/source/blender/makesrna/RNA_access.h
===================================================================
--- branches/soc-2009-aligorith/source/blender/makesrna/RNA_access.h	2009-06-12 04:16:12 UTC (rev 20825)
+++ branches/soc-2009-aligorith/source/blender/makesrna/RNA_access.h	2009-06-12 06:44:49 UTC (rev 20826)
@@ -365,6 +365,7 @@
 extern StructRNA RNA_Space3DView;
 extern StructRNA RNA_SpaceButtonsWindow;
 extern StructRNA RNA_SpaceImageEditor;
+extern StructRNA RNA_SpaceNLA;
 extern StructRNA RNA_SpaceOutliner;
 extern StructRNA RNA_SpaceSequenceEditor;
 extern StructRNA RNA_SpaceTextEditor;

Modified: branches/soc-2009-aligorith/source/blender/makesrna/intern/rna_space.c
===================================================================
--- branches/soc-2009-aligorith/source/blender/makesrna/intern/rna_space.c	2009-06-12 04:16:12 UTC (rev 20825)
+++ branches/soc-2009-aligorith/source/blender/makesrna/intern/rna_space.c	2009-06-12 06:44:49 UTC (rev 20826)
@@ -92,10 +92,10 @@
 		/*case SPACE_SOUND:
 			return &RNA_SpaceAudioWindow;
 		case SPACE_ACTION:
-			return &RNA_SpaceDopeSheetEditor;
+			return &RNA_SpaceDopeSheetEditor;*/
 		case SPACE_NLA:
-			return &RNA_SpaceNLAEditor;
-		case SPACE_SCRIPT:
+			return &RNA_SpaceNLA;
+		/*case SPACE_SCRIPT:
 			return &RNA_SpaceScriptsWindow;
 		case SPACE_TIME:
 			return &RNA_SpaceTimeline;
@@ -757,6 +757,27 @@
 	RNA_def_property_ui_text(prop, "Replace Text", "Text to replace selected text with using the replace tool.");
 }
 
+static void rna_def_space_nla(BlenderRNA *brna)
+{
+	StructRNA *srna;
+	PropertyRNA *prop;
+	
+	srna= RNA_def_struct(brna, "SpaceNLA", "Space");
+	RNA_def_struct_sdna(srna, "SpaceNla");
+	RNA_def_struct_ui_text(srna, "Space Nla Editor", "NLA editor space data.");
+	
+	/* display */
+	prop= RNA_def_property(srna, "show_seconds", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", SNLA_DRAWTIME);
+	RNA_def_property_clear_flag(prop, PROP_EDITABLE); // XXX for now, only set with operator
+	RNA_def_property_ui_text(prop, "Show Seconds", "Show timing in seconds not frames.");
+	
+	prop= RNA_def_property(srna, "show_cframe_indicator", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SNLA_NODRAWCFRANUM);
+	RNA_def_property_ui_text(prop, "Show Frame Number Indicator", "Show frame number beside the current frame indicator line.");
+
+}
+
 void RNA_def_space(BlenderRNA *brna)
 {
 	rna_def_space(brna);
@@ -767,6 +788,7 @@
 	rna_def_background_image(brna);
 	rna_def_space_3dview(brna);
 	rna_def_space_buttons(brna);
+	rna_def_space_nla(brna);
 }
 
 #endif





More information about the Bf-blender-cvs mailing list