Merging r37732 through r37862 from trunk into soc-2011-tomato
[blender.git] / source / blender / makesrna / intern / rna_space.c
index f4753e2efbe9bfa3836d3f62ffd96515a288919a..139d2ec3168a008904caca455edbead0d4132b11 100644 (file)
@@ -69,6 +69,7 @@ EnumPropertyItem space_type_items[] = {
        {SPACE_LOGIC, "LOGIC_EDITOR", 0, "Logic Editor", ""},
        {SPACE_CONSOLE, "CONSOLE", 0, "Python Console", ""},
        {SPACE_USERPREF, "USER_PREFERENCES", 0, "User Preferences", ""},
+       {SPACE_CLIP, "CLIP_EDITOR", 0, "Clip Editor", ""},
        {0, NULL, 0, NULL, NULL}};
 
 static EnumPropertyItem draw_channels_items[] = {
@@ -122,6 +123,7 @@ EnumPropertyItem viewport_shade_items[] = {
 #include "ED_screen.h"
 #include "ED_view3d.h"
 #include "ED_sequencer.h"
+#include "ED_clip.h"
 
 #include "IMB_imbuf_types.h"
 
@@ -168,6 +170,8 @@ static StructRNA* rna_Space_refine(struct PointerRNA *ptr)
                        return &RNA_SpaceConsole;
                case SPACE_USERPREF:
                        return &RNA_SpaceUserPreferences;
+               case SPACE_CLIP:
+                       return &RNA_SpaceClipEditor;
                default:
                        return &RNA_Space;
        }
@@ -893,6 +897,13 @@ static EnumPropertyItem *rna_SpaceProperties_texture_context_itemf(bContext *C,
        return item;
 }
 
+static void rna_SpaceClipEditor_clip_set(PointerRNA *ptr, PointerRNA value)
+{
+       SpaceClip *sc= (SpaceClip*)(ptr->data);
+
+       ED_space_clip_set(NULL, sc, (MovieClip*)value.data);
+}
+
 #else
 
 static void rna_def_space(BlenderRNA *brna)
@@ -1096,21 +1107,45 @@ static void rna_def_background_image(BlenderRNA *brna)
                {(1<<RV3D_VIEW_CAMERA), "CAMERA", 0, "Camera", "Show background image in camera view"},
                {0, NULL, 0, NULL, NULL}};
 
+       static EnumPropertyItem bgpic_source_items[] = {
+               {V3D_BGPIC_IMAGE, "IMAGE", 0, "Image", ""},
+               {V3D_BGPIC_MOVIE, "MOVIE", 0, "Movie", ""},
+           {0, NULL, 0, NULL, NULL}
+       };
+
        srna= RNA_def_struct(brna, "BackgroundImage", NULL);
        RNA_def_struct_sdna(srna, "BGpic");
        RNA_def_struct_ui_text(srna, "Background Image", "Image and settings for display in the 3d View background");
 
+       prop= RNA_def_property(srna, "source", PROP_ENUM, PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "source");
+       RNA_def_property_enum_items(prop, bgpic_source_items);
+       RNA_def_property_ui_text(prop, "Background Source", "Data source used for background");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
        prop= RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "ima");
        RNA_def_property_ui_text(prop, "Image", "Image displayed and edited in this space");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
+       prop= RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
+       RNA_def_property_pointer_sdna(prop, NULL, "clip");
+       RNA_def_property_ui_text(prop, "MovieClip", "Movie clip displayed and edited in this space");
+       RNA_def_property_flag(prop, PROP_EDITABLE);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
        prop= RNA_def_property(srna, "image_user", PROP_POINTER, PROP_NONE);
        RNA_def_property_flag(prop, PROP_NEVER_NULL);
        RNA_def_property_pointer_sdna(prop, NULL, "iuser");
        RNA_def_property_ui_text(prop, "Image User", "Parameters defining which layer, pass and frame of the image is displayed");
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
+       prop= RNA_def_property(srna, "clip_user", PROP_POINTER, PROP_NONE);
+       RNA_def_property_flag(prop, PROP_NEVER_NULL);
+       RNA_def_property_pointer_sdna(prop, NULL, "cuser");
+       RNA_def_property_ui_text(prop, "Clip User", "Parameters defining which frame of the movie clip is displayed");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "offset_x", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "xof");
@@ -2561,6 +2596,75 @@ static void rna_def_space_logic(BlenderRNA *brna)
 
 }
 
+static void rna_def_space_clip(BlenderRNA *brna)
+{
+       StructRNA *srna;
+       PropertyRNA *prop;
+
+       srna= RNA_def_struct(brna, "SpaceClipEditor", "Space");
+       RNA_def_struct_sdna(srna, "SpaceClip");
+       RNA_def_struct_ui_text(srna, "Space Clip Editor", "Clip editor space data");
+
+       /* movieclip */
+       prop= RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
+       RNA_def_property_flag(prop, PROP_EDITABLE);
+       RNA_def_property_ui_text(prop, "Movie Clip", "Movie clip displayed and edited in this space");
+       RNA_def_property_pointer_funcs(prop, NULL, "rna_SpaceClipEditor_clip_set", NULL, NULL);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* clip user */
+       prop= RNA_def_property(srna, "clip_user", PROP_POINTER, PROP_NONE);
+       RNA_def_property_flag(prop, PROP_NEVER_NULL);
+       RNA_def_property_pointer_sdna(prop, NULL, "user");
+       RNA_def_property_ui_text(prop, "Movie Clip User", "Parameters defining which frame of the movie clip is displayed");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show pattern */
+       prop= RNA_def_property(srna, "show_marker_pattern", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Show Marker Pattern", "Show pattern boundbox for markers");
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_MARKER_PATTERN);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show search */
+       prop= RNA_def_property(srna, "show_marker_search", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Show Marker Search", "Show search boundbox for markers");
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_MARKER_SEARCH);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* lock to selection */
+       prop= RNA_def_property(srna, "lock_selection", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Lock to Selection", "Lock viewport to selected markers during playback");
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_LOCK_SELECTION);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show markers pathes */
+       prop= RNA_def_property(srna, "show_marker_path", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_MARKER_PATH);
+       RNA_def_property_ui_text(prop, "Show Marker Path", "Show path of markers");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* path length */
+       prop= RNA_def_property(srna, "path_length", PROP_INT, PROP_NONE);
+       RNA_def_property_int_sdna(prop, NULL, "path_length");
+       RNA_def_property_range(prop, 0, 50);
+       RNA_def_property_ui_text(prop, "Path Length", "Length of displaying path, in frames");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* ** debug flags ** */
+
+       /* show cache */
+       prop= RNA_def_property(srna, "show_cache", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Show Cache", "Show cached frames for current clip");
+       RNA_def_property_boolean_sdna(prop, NULL, "debug_flag", SC_DBG_SHOW_CACHE);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show tiny markers */
+       prop= RNA_def_property(srna, "show_tiny_markers", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Show Tiny Markers", "Show markers tiny");
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_TINY_MARKER);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+}
+
 void RNA_def_space(BlenderRNA *brna)
 {
        rna_def_space(brna);
@@ -2583,6 +2687,7 @@ void RNA_def_space(BlenderRNA *brna)
        rna_def_space_userpref(brna);
        rna_def_space_node(brna);
        rna_def_space_logic(brna);
+       rna_def_space_clip(brna);
 }
 
 #endif