summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYakov Goldberg <yakov.goldberg@gmail.com>2012-12-07 16:36:01 +0200
committerYakov Goldberg <yakov.goldberg@gmail.com>2012-12-07 16:36:01 +0200
commit4c4fc627e169d8e4542834a3987434ba1f2475ad (patch)
tree9f3fd6059e5611acb99287acdd062eeb39f5747b
parent2b1d0291682d8a61e2f953f3ffb2381c96a63556 (diff)
Dev readme updated
Signed-off-by: Yakov Goldberg <yakov.goldberg@gmail.com>
-rw-r--r--DEV_README60
1 files changed, 51 insertions, 9 deletions
diff --git a/DEV_README b/DEV_README
index 2d4df07..1feb9f0 100644
--- a/DEV_README
+++ b/DEV_README
@@ -117,23 +117,65 @@ Enums from headers.
117 117
118Adding elm_init() and other additional funcs 118Adding elm_init() and other additional funcs
119 119
120 Sometimes some additional functions like elmi_init(), elm_run() 120 Sometimes some additional functions like elm_init(), elm_run()
121 are needed. These functions are not introspectable. 121 are needed. These functions are not introspectable,
122 122 they must be added manually.
123 So they must be added manually.
124 123
125 To do this user must provide definitions in *.pxd *.pxi files, 124 To do this user must provide definitions in *.pxd, *.pxi files,
126 include *.pxi into generated 'module_name.pyx' file and compile 125 include *.pxi into generated 'module_name.pyx' file and compile.
127
128 'elm_add.pxi', 'elm_add.pxd' added to eo_py folder
129 126
127 Usual workflow:
128 - generating XML
129 - generating source files, makefiles
130 < add files manually
131 - run makefile
130 132
131Property parsing 133
134Generating function names
135 In the beginning there was idea to cut func name from OP_ID.
136
137 There is OP_ID 'SOME_CLASS_SUB_ID_COLOR_GET' and public function
138 'some_class_color_get()' which connected with OP_ID,
139 so 'color_get()' will be generated.
140
141 If there is another class ANOTHER_CLASS(SOME_CLASS) with
142 'ANOTHER_CLASS_SUB_ID_COLOR_GET' and 'another_class_color_get()'
143 public function, another 'color_get()' func will be generated.
144
145 I don't check for names clash.
146 There won't be an error and function will be simply overloaded,
147 but it will be completely wrong.
148
149 There shouldn't be function overloading at all, that's all done
150 in library itself, in bindings I call only for most base public func.
151
152 Contflict should be resolved in library itself. If we want single
153 'color_set()' for all classes, they need to be overloaded
154 in proper way.
155
156 At the moment full names like some_class_color_set() and
157 another_class_color_set() will be generated.
158
159
160
161
162Properties names parsing
163 If func name ends with '_set'/'_get'
164 parameters are checked on direction 'in' for 'set' prop
165 and on 'out' for 'get' prop.
166 If it's wrong, this function will be generated as a method
132 167
133all funcs are public, impossible to override not needed 168all funcs are public, impossible to override not needed
134 169
135Visibility in CElmObject 170Visibility in CElmObject
136 171
172Issues about elementary:
173 After parsing sources, found headers are included
174 into generated files.
175
176 All include error must be fixed manually, t.e. issues with
177 including elm_*.h and Elementary.h and compilation flags like
178 -DELM_INTERNAL_API_ARGESFSDFEFC=1
137 179
138 180
139 181