Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for all methods of all objects #6

Open
rreilink opened this issue May 22, 2019 · 5 comments
Open

Support for all methods of all objects #6

rreilink opened this issue May 22, 2019 · 5 comments

Comments

@rreilink
Copy link
Owner

Currently, some methods of objects are not instantiated because the data type is not yet supported; full support for all methods is desired.

@AGlass0fMilk
Copy link

@rreilink Can you give specific data types/methods that aren't supported? It's not very clear from the code/output.

From my searching, the "unimplemented" data types are:

const void*
lv_spinbox_value_changed_cb_t
lv_color_t
const lv_btnm_ctrl_t*
char*
void cb(lv_obj_t *)*
lv_point_t*
lv_chart_series_t*
lv_signal_cb_t
lv_area_t*
const lv_point_t*
const char**
lv_point_t
const lv_color_t*
lv_design_cb_t
lv_event_cb_t
void*
lv_event_t
lv_fit_t
lv_disp_t*

And the unimplemented functions are:

$ grep -e "not implemented" lvglmodule.c | awk '{ print $4}'
lv_obj_set_event_cb:
lv_obj_send_event:
lv_obj_set_signal_cb:
lv_obj_send_signal:
lv_obj_set_design_cb:
lv_obj_animate:
lv_obj_get_disp:
lv_obj_get_coords:
lv_obj_get_signal_func:
lv_obj_get_design_func:
lv_obj_get_group:
lv_cont_set_fit4:
lv_cont_set_fit2:
lv_cont_set_fit:
lv_cont_get_fit_left:
lv_cont_get_fit_right:
lv_cont_get_fit_top:
lv_cont_get_fit_bottom:
lv_imgbtn_set_src:
lv_imgbtn_get_src:
lv_img_set_src:
lv_img_get_src:
lv_line_set_points:
lv_page_set_scrl_fit4:
lv_page_set_scrl_fit2:
lv_page_set_scrl_fit:
lv_page_get_scrl_fit_left:
lv_page_get_scrl_fit_right:
lv_page_get_scrl_get_fit_top:
lv_page_get_scrl_fit_bottom:
lv_chart_add_series:
lv_chart_clear_serie:
lv_chart_init_points:
lv_chart_set_points:
lv_chart_set_next:
lv_btnm_set_map:
lv_btnm_set_ctrl_map:
lv_btnm_get_map:
lv_ddlist_set_fit:
lv_ddlist_get_selected_str:
lv_roller_set_hor_fit:
lv_canvas_set_buffer:
lv_canvas_set_px:
lv_canvas_get_px:
lv_canvas_copy_buf:
lv_canvas_mult_buf:
lv_canvas_draw_circle:
lv_canvas_draw_line:
lv_canvas_draw_triangle:
lv_canvas_draw_rect:
lv_canvas_draw_polygon:
lv_canvas_fill_polygon:
lv_canvas_boundary_fill4:
lv_canvas_flood_fill:
lv_win_add_btn:
lv_win_close_event:
lv_tileview_set_valid_positions:
lv_mbox_add_btns:
lv_gauge_set_needle_count:
lv_spinbox_set_value_changed_cb:

@AGlass0fMilk
Copy link

@rreilink I just pulled the changes you made over the weekend into master. So the list above is obviously outdated. Thanks for supporting this!

@rreilink
Copy link
Owner Author

Yes, currently arrays and similar and callbacks are the main (if not only) missing data types

@AGlass0fMilk
Copy link

Can you point me to some resources that explain the process for developing python bindings like this?

From the code I have bit of an understanding but I haven’t done this before so I’m not sure where to start.

@rreilink
Copy link
Owner Author

I am afraid the way how the code works in general is still to be documented (shame). I've created issue #8 , and I think it makes sense to work on that first (unless you are currently facing roadblocks for the GUI, just let me know in that case). Anyway, these are some points to get started:

The basics of creating Python modules are given here: Python/C API and Extending and Embedding the Python Interpreter

The code is generated from the template lvglmodule_template.c. However, to skip the binding generation step, I usually work by developing a specific feature in the generated code lvglmodule.c, and then generalizing it to the general case and implementing it in the template (obviously taking care not to regenerate the modified file).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants