svn merge ^/trunk/blender -r49890:49917
[blender.git] / source / blender / makesrna / intern / rna_nodetree.c
index bcd1b0e610b232443757f1c1cd18a0ec12a6d5d9..667d85706e05d4303287ddd34dfd0df0de0a28db 100644 (file)
@@ -324,6 +324,20 @@ static char *rna_NodeSocket_path(PointerRNA *ptr)
        return NULL;
 }
 
        return NULL;
 }
 
+static void rna_NodeSocket_hide_set(PointerRNA *ptr, int value)
+{
+       bNodeSocket *sock = (bNodeSocket *)ptr->data;
+       
+       /* don't hide linked sockets */
+       if (sock->flag & SOCK_IN_USE)
+               return;
+       
+       if (value)
+               sock->flag |= SOCK_HIDDEN;
+       else
+               sock->flag &= ~SOCK_HIDDEN;
+}
+
 /* Button Set Funcs for Matte Nodes */
 static void rna_Matte_t1_set(PointerRNA *ptr, float value)
 {
 /* Button Set Funcs for Matte Nodes */
 static void rna_Matte_t1_set(PointerRNA *ptr, float value)
 {
@@ -1741,9 +1755,10 @@ static void def_cmp_blur(StructRNA *srna)
                {0, NULL, 0, NULL, NULL}
        };
 
                {0, NULL, 0, NULL, NULL}
        };
 
-       prop = RNA_def_property(srna, "use_reference", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_sdna(prop, NULL, "custom1", CMP_NODEFLAG_BLUR_REFERENCE);
-       RNA_def_property_ui_text(prop, "Reference", "Use size socket as a reference image");
+       /* duplicated in def_cmp_bokehblur */
+       prop = RNA_def_property(srna, "use_variable_size", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "custom1", CMP_NODEFLAG_BLUR_VARIABLE_SIZE);
+       RNA_def_property_ui_text(prop, "Variable Size", "Support variable blue per-pixel when using an image for size input");
        RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
 
        RNA_def_struct_sdna_from(srna, "NodeBlurData", "storage");
        RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
 
        RNA_def_struct_sdna_from(srna, "NodeBlurData", "storage");
@@ -3372,6 +3387,14 @@ static void def_cmp_ellipsemask(StructRNA *srna)
 static void def_cmp_bokehblur(StructRNA *srna)
 {
        PropertyRNA *prop;
 static void def_cmp_bokehblur(StructRNA *srna)
 {
        PropertyRNA *prop;
+
+       /* duplicated in def_cmp_blur */
+       prop = RNA_def_property(srna, "use_variable_size", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "custom1", CMP_NODEFLAG_BLUR_VARIABLE_SIZE);
+       RNA_def_property_ui_text(prop, "Variable Size", "Support variable blue per-pixel when using an image for size input");
+       RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+#if 0
        prop = RNA_def_property(srna, "f_stop", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "custom3");
        RNA_def_property_range(prop, 0.0f, 128.0f);
        prop = RNA_def_property(srna, "f_stop", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "custom3");
        RNA_def_property_range(prop, 0.0f, 128.0f);
@@ -3379,7 +3402,8 @@ static void def_cmp_bokehblur(StructRNA *srna)
                                 "Amount of focal blur, 128=infinity=perfect focus, half the value doubles "
                                 "the blur radius");
        RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
                                 "Amount of focal blur, 128=infinity=perfect focus, half the value doubles "
                                 "the blur radius");
        RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
-       
+#endif
+
        prop = RNA_def_property(srna, "blur_max", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "custom4");
        RNA_def_property_range(prop, 0.0f, 10000.0f);
        prop = RNA_def_property(srna, "blur_max", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "custom4");
        RNA_def_property_range(prop, 0.0f, 10000.0f);
@@ -4114,6 +4138,17 @@ static void rna_def_node_socket(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Group Socket",
                                 "For group nodes, the group input or output socket this corresponds to");
 
        RNA_def_property_ui_text(prop, "Group Socket",
                                 "For group nodes, the group input or output socket this corresponds to");
 
+       prop = RNA_def_property(srna, "hide", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SOCK_HIDDEN);
+       RNA_def_property_boolean_funcs(prop, NULL, "rna_NodeSocket_hide_set");
+       RNA_def_property_ui_text(prop, "Hide", "Hide the socket");
+       RNA_def_property_update(prop, NC_NODE | NA_EDITED, NULL);
+
+       prop = RNA_def_property(srna, "is_linked", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SOCK_IN_USE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_ui_text(prop, "Linked", "True if the socket is connected");
+
        prop = RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SOCK_COLLAPSED);
        RNA_def_property_ui_text(prop, "Expanded", "Socket links are expanded in the user interface");
        prop = RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SOCK_COLLAPSED);
        RNA_def_property_ui_text(prop, "Expanded", "Socket links are expanded in the user interface");