Finished wrapping SpaceGraph in RNA and also wrapped bDopeSheet in the process. Some...
authorElia Sarti <vekoon@gmail.com>
Sun, 6 Dec 2009 22:28:59 +0000 (22:28 +0000)
committerElia Sarti <vekoon@gmail.com>
Sun, 6 Dec 2009 22:28:59 +0000 (22:28 +0000)
source/blender/makesrna/intern/rna_action.c
source/blender/makesrna/intern/rna_space.c

index eaa11b4ad38da8d8fc7cfb5e64c3c122e394f05a..09649d6365b3a58c7cda42e8c10a2899f6b433dd 100644 (file)
 
 #include "MEM_guardedalloc.h"
 
+#include "WM_types.h"
+
+
 #ifdef RNA_RUNTIME
 
 #else
 
+static void rna_def_dopesheet(BlenderRNA *brna)
+{
+       StructRNA *srna;
+       PropertyRNA *prop;
+
+       srna= RNA_def_struct(brna, "DopeSheet", NULL);
+       RNA_def_struct_sdna(srna, "bDopeSheet");
+       RNA_def_struct_ui_text(srna, "DopeSheet", "Storage for Dopesheet/Grease-Pencil Editor data.");
+
+       prop= RNA_def_property(srna, "source", PROP_POINTER, PROP_NONE);
+       RNA_def_property_struct_type(prop, "ID");
+       RNA_def_property_ui_text(prop, "Source", "ID-Block representing source data, currently ID_SCE (for Dopesheet), and ID_SC (for Grease Pencil).");
+
+       prop= RNA_def_property(srna, "only_selected", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYSEL);
+       RNA_def_property_ui_text(prop, "Only Selected", "Only include channels relating to selected Objects.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "only_drivers", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYDRIVERS);
+       RNA_def_property_ui_text(prop, "Only Drivers", "Only include Driver data from Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "only_nla", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYNLA);
+       RNA_def_property_ui_text(prop, "Only NLA", "Only include NLA data from Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "use_filter", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_SELEDIT);
+       RNA_def_property_ui_text(prop, "Use Filter", "Indicates if filtering options must be taken into account.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_summary", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_SUMMARY);
+       RNA_def_property_ui_text(prop, "Display Summary", "Display an additional 'summary' line.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_shapekeys", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSHAPEKEYS);
+       RNA_def_property_ui_text(prop, "Display Shapekeys", "Include visualization of Shapekey related Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_camera", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOCAM);
+       RNA_def_property_ui_text(prop, "Display Camera", "Include visualization of Camera related Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_material", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMAT);
+       RNA_def_property_ui_text(prop, "Display Material", "Include visualization of Material related Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_lamp", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOLAM);
+       RNA_def_property_ui_text(prop, "Display Lamp", "Include visualization of Lamp related Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_curve", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOCUR);
+       RNA_def_property_ui_text(prop, "Display Curve", "Include visualization of Curve related Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_world", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOWOR);
+       RNA_def_property_ui_text(prop, "Display World", "Include visualization of World related Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_scene", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSCE);
+       RNA_def_property_ui_text(prop, "Display Scene", "Include visualization of Scene related Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_particle", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOPART);
+       RNA_def_property_ui_text(prop, "Display Particle", "Include visualization of Particle related Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_metaball", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMBA);
+       RNA_def_property_ui_text(prop, "Display Metaball", "Include visualization of Metaball related Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_armature", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOARM);
+       RNA_def_property_ui_text(prop, "Display Armature", "Include visualization of Armature related Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "display_node", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NONTREE);
+       RNA_def_property_ui_text(prop, "Display Node", "Include visualization of Node related Animation data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "include_missing_nla", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NLA_NOACT);
+       RNA_def_property_ui_text(prop, "Include Missing NLA", "Include Animation Data blocks with no NLA Data.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+
+       prop= RNA_def_property(srna, "collapse_summary", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", ADS_FLAG_SUMMARY_COLLAPSED);
+       RNA_def_property_ui_text(prop, "Collapse Summary", "Collapse summary when shown, so all other channels get hidden.");
+       RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */
+}
+
 static void rna_def_action_group(BlenderRNA *brna)
 {
        StructRNA *srna;
@@ -80,22 +187,22 @@ static void rna_def_action(BlenderRNA *brna)
 {
        StructRNA *srna;
        PropertyRNA *prop;
-       
+
        srna= RNA_def_struct(brna, "Action", "ID");
        RNA_def_struct_sdna(srna, "bAction");
        RNA_def_struct_ui_text(srna, "Action", "A collection of F-Curves for animation.");
        RNA_def_struct_ui_icon(srna, ICON_ACTION);
-       
+
        prop= RNA_def_property(srna, "fcurves", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "curves", NULL);
        RNA_def_property_struct_type(prop, "FCurve");
        RNA_def_property_ui_text(prop, "F-Curves", "The individual F-Curves that make up the Action.");
-       
+
        prop= RNA_def_property(srna, "groups", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "groups", NULL);
        RNA_def_property_struct_type(prop, "ActionGroup");
        RNA_def_property_ui_text(prop, "Groups", "Convenient groupings of F-Curves.");
-       
+
        prop= RNA_def_property(srna, "pose_markers", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "markers", NULL);
        RNA_def_property_struct_type(prop, "TimelineMarker");
@@ -110,6 +217,7 @@ void RNA_def_action(BlenderRNA *brna)
 {
        rna_def_action(brna);
        rna_def_action_group(brna);
+       rna_def_dopesheet(brna);
 }
 
 
index c10f3f74fd80135d23603285e0da34fcc2f86de9..edc088a7171ab716cc060fa8fefd6eea2204a2a9 100644 (file)
@@ -1284,7 +1284,14 @@ static void rna_def_space_graph(BlenderRNA *brna)
                //{V3D_CENTROID, "MEDIAN_POINT", 0, "Median Point", ""},
                //{V3D_ACTIVE, "ACTIVE_ELEMENT", 0, "Active Element", ""},
                {0, NULL, 0, NULL, NULL}};
-       
+
+       static EnumPropertyItem autosnap_items[] = {
+               {SACTSNAP_OFF, "NONE", 0, "None", ""},
+               {SACTSNAP_STEP, "STEP", 0, "Step", "Snap to 1.0 frame/second intervals."},
+               {SACTSNAP_FRAME, "FRAME", 0, "Frame", "Snap to actual frames/seconds (nla-action time)."},
+               {SACTSNAP_MARKER, "MARKER", 0, "Marker", "Snap to nearest marker."},
+               {0, NULL, 0, NULL, NULL}};
+
        
        srna= RNA_def_struct(brna, "SpaceGraphEditor", "Space");
        RNA_def_struct_sdna(srna, "SpaceIpo");
@@ -1351,8 +1358,19 @@ static void rna_def_space_graph(BlenderRNA *brna)
        RNA_def_property_enum_items(prop, gpivot_items);
        RNA_def_property_ui_text(prop, "Pivot Point", "Pivot center for rotation/scaling.");
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
-       
-       // TODO... autosnap, dopesheet?
+
+       /* dopesheet */
+       prop= RNA_def_property(srna, "dopesheet", PROP_POINTER, PROP_NONE);
+       RNA_def_property_struct_type(prop, "DopeSheet");
+       RNA_def_property_pointer_sdna(prop, NULL, "ads");
+       RNA_def_property_ui_text(prop, "DopeSheet", "Settings for filtering animation data.");
+
+       /* autosnap */
+       prop= RNA_def_property(srna, "autosnap", PROP_ENUM, PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "autosnap");
+       RNA_def_property_enum_items(prop, autosnap_items);
+       RNA_def_property_ui_text(prop, "Auto Snap", "Automatic time snapping settings for transformations.");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
 }
 
 static void rna_def_space_nla(BlenderRNA *brna)