Chris@16
|
1 // Copyright Ralf W. Grosse-Kunstleve 2006.
|
Chris@16
|
2 // Distributed under the Boost Software License, Version 1.0. (See
|
Chris@16
|
3 // accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
4 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
5 #ifndef DOCSTRING_OPTIONS_RWGK20060111_HPP
|
Chris@16
|
6 # define DOCSTRING_OPTIONS_RWGK20060111_HPP
|
Chris@16
|
7
|
Chris@16
|
8 #include <boost/python/object/function.hpp>
|
Chris@16
|
9
|
Chris@16
|
10 namespace boost { namespace python {
|
Chris@16
|
11
|
Chris@16
|
12 // Note: the static data members are defined in object/function.cpp
|
Chris@16
|
13
|
Chris@16
|
14 class BOOST_PYTHON_DECL docstring_options : boost::noncopyable
|
Chris@16
|
15 {
|
Chris@16
|
16 public:
|
Chris@16
|
17 docstring_options(bool show_all=true)
|
Chris@16
|
18 {
|
Chris@16
|
19 previous_show_user_defined_ = show_user_defined_;
|
Chris@16
|
20 previous_show_py_signatures_ = show_py_signatures_;
|
Chris@16
|
21 previous_show_cpp_signatures_ = show_cpp_signatures_;
|
Chris@16
|
22 show_user_defined_ = show_all;
|
Chris@16
|
23 show_cpp_signatures_ = show_all;
|
Chris@16
|
24 show_py_signatures_ = show_all;
|
Chris@16
|
25 }
|
Chris@16
|
26
|
Chris@16
|
27 docstring_options(bool show_user_defined, bool show_signatures)
|
Chris@16
|
28 {
|
Chris@16
|
29 previous_show_user_defined_ = show_user_defined_;
|
Chris@16
|
30 previous_show_cpp_signatures_ = show_cpp_signatures_;
|
Chris@16
|
31 previous_show_py_signatures_ = show_py_signatures_;
|
Chris@16
|
32 show_user_defined_ = show_user_defined;
|
Chris@16
|
33 show_cpp_signatures_ = show_signatures;
|
Chris@16
|
34 show_py_signatures_ = show_signatures;
|
Chris@16
|
35 }
|
Chris@16
|
36
|
Chris@16
|
37 docstring_options(bool show_user_defined, bool show_py_signatures, bool show_cpp_signatures)
|
Chris@16
|
38 {
|
Chris@16
|
39 previous_show_user_defined_ = show_user_defined_;
|
Chris@16
|
40 previous_show_cpp_signatures_ = show_cpp_signatures_;
|
Chris@16
|
41 previous_show_py_signatures_ = show_py_signatures_;
|
Chris@16
|
42 show_user_defined_ = show_user_defined;
|
Chris@16
|
43 show_cpp_signatures_ = show_cpp_signatures;
|
Chris@16
|
44 show_py_signatures_ = show_py_signatures;
|
Chris@16
|
45 }
|
Chris@16
|
46
|
Chris@16
|
47 ~docstring_options()
|
Chris@16
|
48 {
|
Chris@16
|
49 show_user_defined_ = previous_show_user_defined_;
|
Chris@16
|
50 show_cpp_signatures_ = previous_show_cpp_signatures_;
|
Chris@16
|
51 show_py_signatures_ = previous_show_py_signatures_;
|
Chris@16
|
52 }
|
Chris@16
|
53
|
Chris@16
|
54 void
|
Chris@16
|
55 disable_user_defined() { show_user_defined_ = false; }
|
Chris@16
|
56
|
Chris@16
|
57 void
|
Chris@16
|
58 enable_user_defined() { show_user_defined_ = true; }
|
Chris@16
|
59
|
Chris@16
|
60 void
|
Chris@16
|
61 disable_py_signatures()
|
Chris@16
|
62 {
|
Chris@16
|
63 show_py_signatures_ = false;
|
Chris@16
|
64 }
|
Chris@16
|
65
|
Chris@16
|
66 void
|
Chris@16
|
67 enable_py_signatures()
|
Chris@16
|
68 {
|
Chris@16
|
69 show_py_signatures_ = true;
|
Chris@16
|
70 }
|
Chris@16
|
71
|
Chris@16
|
72 void
|
Chris@16
|
73 disable_cpp_signatures()
|
Chris@16
|
74 {
|
Chris@16
|
75 show_cpp_signatures_ = false;
|
Chris@16
|
76 }
|
Chris@16
|
77
|
Chris@16
|
78 void
|
Chris@16
|
79 enable_cpp_signatures()
|
Chris@16
|
80 {
|
Chris@16
|
81 show_cpp_signatures_ = true;
|
Chris@16
|
82 }
|
Chris@16
|
83
|
Chris@16
|
84 void
|
Chris@16
|
85 disable_signatures()
|
Chris@16
|
86 {
|
Chris@16
|
87 show_cpp_signatures_ = false;
|
Chris@16
|
88 show_py_signatures_ = false;
|
Chris@16
|
89 }
|
Chris@16
|
90
|
Chris@16
|
91 void
|
Chris@16
|
92 enable_signatures()
|
Chris@16
|
93 {
|
Chris@16
|
94 show_cpp_signatures_ = true;
|
Chris@16
|
95 show_py_signatures_ = true;
|
Chris@16
|
96 }
|
Chris@16
|
97
|
Chris@16
|
98 void
|
Chris@16
|
99 disable_all()
|
Chris@16
|
100 {
|
Chris@16
|
101 show_user_defined_ = false;
|
Chris@16
|
102 show_cpp_signatures_ = false;
|
Chris@16
|
103 show_py_signatures_ = false;
|
Chris@16
|
104 }
|
Chris@16
|
105
|
Chris@16
|
106 void
|
Chris@16
|
107 enable_all()
|
Chris@16
|
108 {
|
Chris@16
|
109 show_user_defined_ = true;
|
Chris@16
|
110 show_cpp_signatures_ = true;
|
Chris@16
|
111 show_py_signatures_ = true;
|
Chris@16
|
112 }
|
Chris@16
|
113
|
Chris@16
|
114 friend struct objects::function;
|
Chris@16
|
115
|
Chris@16
|
116 private:
|
Chris@16
|
117 static volatile bool show_user_defined_;
|
Chris@16
|
118 static volatile bool show_cpp_signatures_;
|
Chris@16
|
119 static volatile bool show_py_signatures_;
|
Chris@16
|
120 bool previous_show_user_defined_;
|
Chris@16
|
121 bool previous_show_cpp_signatures_;
|
Chris@16
|
122 bool previous_show_py_signatures_;
|
Chris@16
|
123 };
|
Chris@16
|
124
|
Chris@16
|
125 }} // namespace boost::python
|
Chris@16
|
126
|
Chris@16
|
127 #endif // DOCSTRING_OPTIONS_RWGK20060111_HPP
|