diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-08-17 18:32:14 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-08-17 18:32:14 +0400 |
commit | b278279c95c9396432a66ef50499e45389e9ec18 (patch) | |
tree | 35a454ba66936f75b818c6d84dd655327a76b97e | |
parent | 08d55cbe985b97933a701848e2edaf0cd1a68641 (diff) |
document rna functions that have the no_self flag set as classmethods
-rw-r--r-- | release/scripts/modules/rna_info.py | 1 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_rna.c | 11 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_ui.c | 2 | ||||
-rw-r--r-- | source/blender/python/doc/sphinx_doc_gen.py | 2 |
4 files changed, 14 insertions, 2 deletions
diff --git a/release/scripts/modules/rna_info.py b/release/scripts/modules/rna_info.py index 296ec87fcb4..41ed0ce6b12 100644 --- a/release/scripts/modules/rna_info.py +++ b/release/scripts/modules/rna_info.py @@ -302,6 +302,7 @@ class InfoFunctionRNA: self.identifier = rna_func.identifier # self.name = rna_func.name # functions have no name! self.description = rna_func.description.strip() + self.is_classmethod = rna_func.no_self self.args = [] self.return_values = () diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c index 6c7670907b7..0ee3990ef3f 100644 --- a/source/blender/makesrna/intern/rna_rna.c +++ b/source/blender/makesrna/intern/rna_rna.c @@ -811,6 +811,12 @@ static int rna_Function_registered_optional_get(PointerRNA *ptr) return func->flag & FUNC_REGISTER_OPTIONAL; } +static int rna_Function_no_self_get(PointerRNA *ptr) +{ + FunctionRNA *func= (FunctionRNA*)ptr->data; + return func->flag & FUNC_NO_SELF; +} + /* Blender RNA */ static void rna_BlenderRNA_structs_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) @@ -1049,6 +1055,11 @@ static void rna_def_function(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_boolean_funcs(prop, "rna_Function_registered_optional_get", NULL); RNA_def_property_ui_text(prop, "Registered Optionally", "Function is optionally registered as callback part of type registration"); + + prop= RNA_def_property(srna, "no_self", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Function_no_self_get", NULL); + RNA_def_property_ui_text(prop, "No Self", "Function does not pass its self as an argument (becomes a class method in python)"); } static void rna_def_number_property(StructRNA *srna, PropertyType type) diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c index e13483bf87a..a9b2672e205 100644 --- a/source/blender/makesrna/intern/rna_ui.c +++ b/source/blender/makesrna/intern/rna_ui.c @@ -712,7 +712,7 @@ static void rna_def_menu(BlenderRNA *brna) /* poll */ func= RNA_def_function(srna, "poll", NULL); - RNA_def_function_ui_description(func, "If this method returns a non-null output, then the menu can be drawn. This is a static method, hence it is not possible to use 'self' in it."); + RNA_def_function_ui_description(func, "If this method returns a non-null output, then the menu can be drawn."); RNA_def_function_flag(func, FUNC_NO_SELF|FUNC_REGISTER|FUNC_REGISTER_OPTIONAL); RNA_def_function_return(func, RNA_def_boolean(func, "visible", 1, "", "")); parm= RNA_def_pointer(func, "context", "Context", "", ""); diff --git a/source/blender/python/doc/sphinx_doc_gen.py b/source/blender/python/doc/sphinx_doc_gen.py index 3beb17f194e..06d1a9021b8 100644 --- a/source/blender/python/doc/sphinx_doc_gen.py +++ b/source/blender/python/doc/sphinx_doc_gen.py @@ -594,7 +594,7 @@ def rna2sphinx(BASEPATH): for func in struct.functions: args_str = ", ".join([prop.get_arg_default(force=False) for prop in func.args]) - fw(" .. method:: %s(%s)\n\n" % (func.identifier, args_str)) + fw(" .. %s:: %s(%s)\n\n" % ("classmethod" if func.is_classmethod else "method", func.identifier, args_str)) fw(" %s\n\n" % func.description) for prop in func.args: |