This commit is contained in:
Felipe Magno de Almeida 2016-05-17 11:22:42 +02:00
parent 75a53ece10
commit 5d5c04fd66
11 changed files with 438 additions and 81 deletions

View File

@ -5075,6 +5075,7 @@ EFL_INTERNAL_DEPEND_PKG([EFL_JS], [Eldbus])
EFL_INTERNAL_DEPEND_PKG([EFL_JS], [Emile])
EFL_INTERNAL_DEPEND_PKG([EFL_JS], [Ethumb_Client])
EFL_INTERNAL_DEPEND_PKG([EFL_JS], [Eio])
EFL_INTERNAL_DEPEND_PKG([EFL_JS], [Elementary])
AM_COND_IF([HAVE_NODEJS], [], [ EFL_ADD_LIBS([EFL_JS], [-lv8]) ])

View File

@ -59,6 +59,7 @@ endif
bindings/js/efl_js/eolian_js_bindings.cc: $(GENERATED_JS_BINDINGS)
@echo @ECHO_E@ "#ifdef HAVE_CONFIG_H" > $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#include \"config.h\"" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#include \"elementary_config.h\"" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#endif\n" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#include <Efl.h>" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#include <Efl_Config.h>" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@ -69,7 +70,10 @@ bindings/js/efl_js/eolian_js_bindings.cc: $(GENERATED_JS_BINDINGS)
@echo @ECHO_E@ "#include <Evas.h>" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#include <Edje.h>" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#include <Ecore_Con_Eet.h>" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#include <Emotion.h>\n" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#include <Emotion.h>" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#define ELM_INTERNAL_API_ARGESFSDFEFC" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#include <Elementary.h>" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@echo @ECHO_E@ "#include <elm_widget.h>\n" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc
@for i in $(GENERATED_JS_BINDINGS); do echo "#include <$$i>" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc; done
CLEANFILES += bindings/js/efl_js/eolian_js_bindings.cc
@ -177,7 +181,8 @@ lib_efl_js_libefl_js_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \
@ELDBUS_JS_CFLAGS@ \
@EIO_JS_CFLAGS@ \
@ETHUMB_JS_CFLAGS@ \
@EINA_CXX_CFLAGS@
@EINA_CXX_CFLAGS@ \
@ELEMENTARY_CFLAGS@
lib_efl_js_libefl_js_la_LIBADD = @EFL_JS_LIBS@
lib_efl_js_libefl_js_la_DEPENDENCIES = @EFL_JS_INTERNAL_LIBS@
lib_efl_js_libefl_js_la_LIBTOOLFLAGS = --tag=disable-static

View File

@ -1290,7 +1290,7 @@ endif
if HAVE_ELUA
elementary_eolian_lua = $(elm_eolian_files:%.eo=%.eo.lua)
elementary_eolian_lua = $(elm_public_eolian_files:%.eo=%.eo.lua)
generated_elementary_lua_all = $(elementary_eolian_lua)
@ -1303,7 +1303,7 @@ endif
if HAVE_JS
generated_elementary_js_bindings = $(elm_eolian_files:%.eo=%.eo.js.cc)
generated_elementary_js_bindings = $(elm_public_eolian_files:%.eo=%.eo.js.cc)
CLEANFILES += $(generated_elementary_js_bindings)

View File

@ -153,7 +153,8 @@ _eolian_type_cpp_type_named_get(const Eolian_Type *tp, std::string const& caller
{"array", "Eina_Array"},
{"iterator", "Eina_Iterator"},
{"hash", "Eina_Hash"},
{"list", "Eina_List"}
{"list", "Eina_List"},
{"promise", "Eina_Promise"}
};
std::string type_name = eolian_type_name_get(tp);

View File

@ -1,6 +1,7 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
#include <elementary_config.h>
#endif
#include <Efl.h>
@ -13,6 +14,7 @@
#include <Eio_Js.hh>
#include <Eldbus_Js.hh>
#include <Ethumb_Js.hh>
#include <Elementary.h>
#include <iostream>
@ -130,6 +132,124 @@ EAPI void register_object(v8::Handle<v8::Object> global, v8::Isolate* isolate);
namespace emotion {
EAPI void register_object(v8::Handle<v8::Object> global, v8::Isolate* isolate);
}
EAPI void register_elm_app_client(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_app_client_view(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_app_server(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_app_server_view(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_atspi_app_object(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_atspi_accessible(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_atspi_action(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_atspi_component(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_atspi_editable_text(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_atspi_image(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_atspi_selection(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_atspi_text(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_atspi_value(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_atspi_widget_action(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_atspi_window(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_fileselector(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_interface_scrollable(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_elm_pan(v8::Handle<v8::Object> global, v8::Isolate* isolate);
namespace elm {
EAPI void register_access(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_actionslider(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_bg(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_box(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_bubble(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_button(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_calendar(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_check(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_clock(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_colorselector(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_conformant(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_container(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_combobox(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_ctxpopup(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_datetime(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_dayselector(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_diskselector(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_entry(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_fileselector(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_fileselector_button(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_fileselector_entry(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_flip(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_flipselector(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_frame(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_gengrid(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_gengrid_pan(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_genlist(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_genlist_pan(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_gesture_layer(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_glview(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_grid(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_hover(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_hoversel(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_icon(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_image(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_index(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_inwin(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_label(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_layout(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_list(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_map(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_map_pan(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_menu(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_multibuttonentry(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_naviframe(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_notify(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_panel(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_panes(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_photo(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_photocam(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_photocam_pan(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_player(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_plug(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_popup(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_prefs(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_progressbar(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_radio(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_route(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_scroller(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_segment_control(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_separator(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_slider(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_slideshow(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_spinner(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_systray(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_table(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_thumb(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_toolbar(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_video(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_web(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_widget(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_win(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_widget_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_color_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_dayselector_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_hoversel_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_segment_control_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_slideshow_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_flipselector_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_menu_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_ctxpopup_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_index_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_multibuttonentry_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_naviframe_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_genlist_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_gengrid_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_list_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_toolbar_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_diskselector_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
EAPI void register_popup_item(v8::Handle<v8::Object> global, v8::Isolate* isolate);
namespace win {
EAPI void register_standard(v8::Handle<v8::Object> global, v8::Isolate* isolate);
}
}
#ifdef HAVE_NODEJS
@ -142,37 +262,35 @@ namespace efl_js {
EAPI void init(v8::Handle<v8::Object> exports)
{
::eina_init();
::ecore_init();
::ecore_file_init();
::ecore_evas_init();
::eo_init();
::eio_init();
::evas_init();
static char* argv[] = {const_cast<char*>("node")};
::elm_init(1, argv);
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN);
try
{
eina_container_register(exports, v8::Isolate::GetCurrent());
eina_log_register(exports, v8::Isolate::GetCurrent());
eina_value_register(exports, v8::Isolate::GetCurrent());
register_ecore_mainloop(exports, v8::Isolate::GetCurrent());
//register_ecore_mainloop(exports, v8::Isolate::GetCurrent());
efl::eio::js::register_eio(v8::Isolate::GetCurrent(), exports);
efl::eldbus::js::register_eldbus(v8::Isolate::GetCurrent(), exports);
efl::ethumb::js::register_ethumb(v8::Isolate::GetCurrent(), exports);
ecore::register_animator(exports, v8::Isolate::GetCurrent());
ecore::register_exe(exports, v8::Isolate::GetCurrent());
ecore::register_idler(exports, v8::Isolate::GetCurrent());
ecore::idle::register_enterer(exports, v8::Isolate::GetCurrent());
ecore::idle::register_exiter(exports, v8::Isolate::GetCurrent());
ecore::register_job(exports, v8::Isolate::GetCurrent());
// ecore::register_idler(exports, v8::Isolate::GetCurrent());
// ecore::idle::register_enterer(exports, v8::Isolate::GetCurrent());
// ecore::idle::register_exiter(exports, v8::Isolate::GetCurrent());
// ecore::register_job(exports, v8::Isolate::GetCurrent());
ecore::register_parent(exports, v8::Isolate::GetCurrent());
ecore::register_poller(exports, v8::Isolate::GetCurrent());
ecore::register_timer(exports, v8::Isolate::GetCurrent());
efl::network::register_base(exports, v8::Isolate::GetCurrent());
// ecore::register_poller(exports, v8::Isolate::GetCurrent());
// ecore::register_timer(exports, v8::Isolate::GetCurrent());
// efl::network::register_base(exports, v8::Isolate::GetCurrent());
efl::network::register_client(exports, v8::Isolate::GetCurrent());
efl::network::register_connector(exports, v8::Isolate::GetCurrent());
efl::network::register_server(exports, v8::Isolate::GetCurrent());
efl::network::register_url(exports, v8::Isolate::GetCurrent());
#if 1
#if 0
register_ecore_audio(exports, v8::Isolate::GetCurrent());
register_ecore_audio_in(exports, v8::Isolate::GetCurrent());
register_ecore_audio_in_sndfile(exports, v8::Isolate::GetCurrent());
@ -189,48 +307,265 @@ EAPI void init(v8::Handle<v8::Object> exports)
efl::register_image(exports, v8::Isolate::GetCurrent());
efl::register_player(exports, v8::Isolate::GetCurrent());
efl::register_text(exports, v8::Isolate::GetCurrent());
efl::register_text_properties(exports, v8::Isolate::GetCurrent());
eo::register_abstract_class(exports, v8::Isolate::GetCurrent());
// efl::register_text_properties(exports, v8::Isolate::GetCurrent());
// eo::register_abstract_class(exports, v8::Isolate::GetCurrent());
eo::register_base(exports, v8::Isolate::GetCurrent());
#if 1
evas::register_box(exports, v8::Isolate::GetCurrent());
evas::register_canvas(exports, v8::Isolate::GetCurrent());
evas::register_clickable_interface(exports, v8::Isolate::GetCurrent());
evas::register_common_interface(exports, v8::Isolate::GetCurrent());
evas::register_draggable_interface(exports, v8::Isolate::GetCurrent());
evas::register_grid(exports, v8::Isolate::GetCurrent());
evas::register_image(exports, v8::Isolate::GetCurrent());
evas::register_line(exports, v8::Isolate::GetCurrent());
evas::register_object(exports, v8::Isolate::GetCurrent());
evas::register_object_smart(exports, v8::Isolate::GetCurrent());
evas::register_out(exports, v8::Isolate::GetCurrent());
evas::register_rectangle(exports, v8::Isolate::GetCurrent());
evas::register_scrollable_interface(exports, v8::Isolate::GetCurrent());
evas::register_selectable_interface(exports, v8::Isolate::GetCurrent());
evas::register_signal_interface(exports, v8::Isolate::GetCurrent());
evas::register_smart_clipped(exports, v8::Isolate::GetCurrent());
evas::register_table(exports, v8::Isolate::GetCurrent());
evas::register_text(exports, v8::Isolate::GetCurrent());
evas::register_textblock(exports, v8::Isolate::GetCurrent());
evas::register_textgrid(exports, v8::Isolate::GetCurrent());
evas::register_zoomable_interface(exports, v8::Isolate::GetCurrent());
evas::canvas3d::register_camera(exports, v8::Isolate::GetCurrent());
evas::canvas3d::register_light(exports, v8::Isolate::GetCurrent());
evas::canvas3d::register_material(exports, v8::Isolate::GetCurrent());
evas::canvas3d::register_mesh(exports, v8::Isolate::GetCurrent());
evas::canvas3d::register_node(exports, v8::Isolate::GetCurrent());
evas::canvas3d::register_object(exports, v8::Isolate::GetCurrent());
evas::canvas3d::register_scene(exports, v8::Isolate::GetCurrent());
evas::canvas3d::register_texture(exports, v8::Isolate::GetCurrent());
efl::canvas::register_polygon(exports, v8::Isolate::GetCurrent());
// evas::register_box(exports, v8::Isolate::GetCurrent());
// evas::register_canvas(exports, v8::Isolate::GetCurrent());
// evas::register_clickable_interface(exports, v8::Isolate::GetCurrent());
// evas::register_common_interface(exports, v8::Isolate::GetCurrent());
// evas::register_draggable_interface(exports, v8::Isolate::GetCurrent());
// evas::register_grid(exports, v8::Isolate::GetCurrent());
// evas::register_image(exports, v8::Isolate::GetCurrent());
// evas::register_line(exports, v8::Isolate::GetCurrent());
// evas::register_object(exports, v8::Isolate::GetCurrent());
// evas::register_object_smart(exports, v8::Isolate::GetCurrent());
// evas::register_out(exports, v8::Isolate::GetCurrent());
// evas::register_rectangle(exports, v8::Isolate::GetCurrent());
// evas::register_scrollable_interface(exports, v8::Isolate::GetCurrent());
// evas::register_selectable_interface(exports, v8::Isolate::GetCurrent());
// evas::register_signal_interface(exports, v8::Isolate::GetCurrent());
// evas::register_smart_clipped(exports, v8::Isolate::GetCurrent());
// evas::register_table(exports, v8::Isolate::GetCurrent());
// evas::register_text(exports, v8::Isolate::GetCurrent());
// evas::register_textblock(exports, v8::Isolate::GetCurrent());
// evas::register_textgrid(exports, v8::Isolate::GetCurrent());
// evas::register_zoomable_interface(exports, v8::Isolate::GetCurrent());
// evas::canvas3d::register_camera(exports, v8::Isolate::GetCurrent());
// evas::canvas3d::register_light(exports, v8::Isolate::GetCurrent());
// evas::canvas3d::register_material(exports, v8::Isolate::GetCurrent());
// evas::canvas3d::register_mesh(exports, v8::Isolate::GetCurrent());
// evas::canvas3d::register_node(exports, v8::Isolate::GetCurrent());
// evas::canvas3d::register_object(exports, v8::Isolate::GetCurrent());
// evas::canvas3d::register_scene(exports, v8::Isolate::GetCurrent());
// evas::canvas3d::register_texture(exports, v8::Isolate::GetCurrent());
// efl::canvas::register_polygon(exports, v8::Isolate::GetCurrent());
#endif
#if 1
#if 0
edje::register_edit(exports, v8::Isolate::GetCurrent());
edje::register_object(exports, v8::Isolate::GetCurrent());
#endif
#if 1
#if 0
emotion::register_object(exports, v8::Isolate::GetCurrent());
#endif
// elm::register_access(exports, v8::Isolate::GetCurrent());
// elm::register_actionslider(exports, v8::Isolate::GetCurrent());
// ::register_elm_app_client(exports, v8::Isolate::GetCurrent());
// ::register_elm_app_client_view(exports, v8::Isolate::GetCurrent());
// ::register_elm_app_server(exports, v8::Isolate::GetCurrent());
// ::register_elm_app_server_view(exports, v8::Isolate::GetCurrent());
// ::register_elm_atspi_app_object(exports, v8::Isolate::GetCurrent());
// elm::register_box(exports, v8::Isolate::GetCurrent());
elm::register_bg(exports, v8::Isolate::GetCurrent());
elm::register_bubble(exports, v8::Isolate::GetCurrent());
elm::register_button(exports, v8::Isolate::GetCurrent());
elm::register_calendar(exports, v8::Isolate::GetCurrent());
elm::register_check(exports, v8::Isolate::GetCurrent());
// crash
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_clock(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// crash
// elm::register_colorselector(exports, v8::Isolate::GetCurrent());
elm::register_conformant(exports, v8::Isolate::GetCurrent());
// crash
// elm::register_combobox(exports, v8::Isolate::GetCurrent());
// doesn't exist
// elm::register_container(exports, v8::Isolate::GetCurrent());
elm::register_ctxpopup(exports, v8::Isolate::GetCurrent());
elm::register_datetime(exports, v8::Isolate::GetCurrent());
elm::register_dayselector(exports, v8::Isolate::GetCurrent());
// crash
// elm::register_diskselector(exports, v8::Isolate::GetCurrent());
elm::register_entry(exports, v8::Isolate::GetCurrent());
elm::register_fileselector(exports, v8::Isolate::GetCurrent());
elm::register_fileselector_button(exports, v8::Isolate::GetCurrent());
elm::register_fileselector_entry(exports, v8::Isolate::GetCurrent());
elm::register_flip(exports, v8::Isolate::GetCurrent());
elm::register_flipselector(exports, v8::Isolate::GetCurrent());
elm::register_frame(exports, v8::Isolate::GetCurrent());
// crash
// elm::register_gengrid(exports, v8::Isolate::GetCurrent());
// doesn't exist
// elm::register_gengrid_pan(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// crash
elm::register_genlist(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_genlist_pan(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_gesture_layer(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_glview(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_grid(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_hover(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_hoversel(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_icon(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_image(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_index(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// ::register_elm_interface_atspi_accessible(exports, v8::Isolate::GetCurrent());
// ::register_elm_interface_atspi_action(exports, v8::Isolate::GetCurrent());
// ::register_elm_interface_atspi_component(exports, v8::Isolate::GetCurrent());
// ::register_elm_interface_atspi_editable_text(exports, v8::Isolate::GetCurrent());
// ::register_elm_interface_atspi_image(exports, v8::Isolate::GetCurrent());
// ::register_elm_interface_atspi_selection(exports, v8::Isolate::GetCurrent());
// ::register_elm_interface_atspi_text(exports, v8::Isolate::GetCurrent());
// ::register_elm_interface_atspi_value(exports, v8::Isolate::GetCurrent());
// ::register_elm_interface_atspi_widget_action(exports, v8::Isolate::GetCurrent());
// ::register_elm_interface_atspi_window(exports, v8::Isolate::GetCurrent());
// ::register_elm_interface_fileselector(exports, v8::Isolate::GetCurrent());
// ::register_elm_interface_scrollable(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_inwin(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_label(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_layout(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_list(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_map(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_map_pan(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
//elm::register_mapbuf(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_menu(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_multibuttonentry(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_naviframe(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_notify(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// ::register_elm_pan(exports, v8::Isolate::GetCurrent());
elm::register_panel(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_panes(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_photo(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_photocam(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_photocam_pan(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_player(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_plug(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_popup(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_prefs(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_progressbar(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_radio(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_route(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_scroller(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_segment_control(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_separator(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_slider(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_slideshow(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_spinner(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_systray(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_table(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_thumb(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_toolbar(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_video(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::register_web(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_widget(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// crash
// elm::register_win(exports, v8::Isolate::GetCurrent());
fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
elm::win::register_standard(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_widget_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_color_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_dayselector_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_hoversel_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_segment_control_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_slideshow_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_flipselector_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_menu_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_ctxpopup_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_index_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_multibuttonentry_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_naviframe_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_genlist_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_gengrid_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_list_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_toolbar_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_diskselector_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
// elm::register_popup_item(exports, v8::Isolate::GetCurrent());
// fprintf(stderr, __FILE__ ":%d\n", __LINE__); fflush(stderr);
}
catch(...)
{

View File

@ -450,6 +450,16 @@ inline Evas_Smart_Cb get_value_from_javascript (
return nullptr;
}
template <typename T, typename K>
inline Eina_Promise* get_value_from_javascript (
v8::Local<v8::Value>,
v8::Isolate*,
const char*,
value_tag<complex_tag<Eina_Promise*, T, K> >)
{
return nullptr;
}
} } }
#endif

View File

@ -260,6 +260,13 @@ get_value_from_c(efl::eina::js::complex_tag<const Eina_Iterator *, T, K> v, v8::
return get_value_from_c(efl::eina::js::complex_tag<Eina_Iterator *, T, K>{const_cast<Eina_Iterator*>(v.value)}, isolate, class_name);
}
template <typename T, typename K>
inline v8::Local<v8::Value>
get_value_from_c(efl::eina::js::complex_tag<Eina_Promise *, T, K>, v8::Isolate*, const char*)
{
std::abort();
}
template <typename T, typename KT, typename U, typename KU>
inline v8::Local<v8::Value>
get_value_from_c(efl::eina::js::complex_tag<Eina_Hash *, T, KT, U, KU>, v8::Isolate*, const char*)

View File

@ -60,11 +60,11 @@ inline Eina_Bool event_callback(void* data, Eo_Event const* eo_event)
v8::HandleScope handle_scope(isolate);
event_callback_information* event = static_cast<event_callback_information*>(data);
v8::Handle<v8::Value> a[] = {eina::js::compatibility_new<v8::External>(isolate, eo_event->object)};
v8::Local<v8::Object> self = (event->info->constructor->handle())->NewInstance(1, a);
v8::Local<v8::Object> self = (event->event_info->constructor->handle())->NewInstance(1, a);
v8::Local<v8::Value> call_args[] = {
self,
get_event_info<T>(eo_event->info, isolate, event->info->class_name)
get_event_info<T>(eo_event->info, isolate, event->event_info->class_name)
};
event->function.handle()->Call(eina::js::compatibility_global(), 2, call_args);

View File

@ -1,12 +1,11 @@
efl = require('efl');
elm = require('elm');
win = new elm.Elm.WinStandard(null);
win = new efl.Elm.Win.Standard(null);
win.setTitle("Hello, World!");
win.setAutohide(true);
btn = new elm.Elm.Button(win);
btn = new efl.Elm.Button(win);
btn.setText(null, "Good-Bye, World!");
btn.setSize(120, 30);
btn.setPosition(60, 15);

View File

@ -1,6 +1,5 @@
efl = require('efl');
elm = require('elm');
util = require('util');
fs = require('fs');
@ -17,16 +16,16 @@ var twit = new Twitter({
access_token_secret: 'l7ccNKXTVv6cymfSD1gQH61tmfixkdna2QmOjPtpVxSHD'
});
win = new elm.Elm.WinStandard(null);
win.setTitle("Twitter App");
win.setAutohide(true);
win = new efl.ui.WinStandard(null);
win.title = "Twitter App";
win.autohide = true;
box = new elm.Elm.Box(win);
box = new efl.ui.Box(win);
box.setSizeHintWeight(1.0, 1.0);
win.resizeObjectAdd(box);
box.setVisible(true);
list = new elm.Elm.List(win);
list = new efl.List(win);
list.setSizeHintWeight(1.0, 1.0);
list.setSizeHintAlign(-1.0, -1.0);
box.packEnd(list);
@ -41,7 +40,7 @@ twit.get('statuses/user_timeline', {screen_name: user_acount, count:10}, functio
console.log("finished");
for (i=0; i < icon_array.length; i++) {
console.log(i);
icon_array[i].setFile("/tmp/twitter_pic.jpg", null);
icon_array[i].file = "/tmp/twitter_pic.jpg";
}
});
if (tweets.length > 0) {
@ -49,8 +48,8 @@ twit.get('statuses/user_timeline', {screen_name: user_acount, count:10}, functio
}
for(i=0; i < tweets.length; i++){
var layout = new elm.Elm.Layout(win);
layout.setFile("twitter_example_01.edj", "tweet");
var layout = new efl.ui.Layout(win);
layout.file["tweet"] = "twitter_example_01.edj";
var user_name = tweets[i].user.name;
var screen_name = tweets[i].user.screen_name;
@ -59,24 +58,24 @@ twit.get('statuses/user_timeline', {screen_name: user_acount, count:10}, functio
layout.setText("user_name", screen_name);
layout.setText("screen_name", " - @"+screen_name);
var entry = new elm.Elm.Entry(win);
entry.setText("elm.text", text);
var entry = new efl.ui.Entry(win);
entry.text["elm.text"] = text;
console.log(text);
layout.contentSet("tweet_text", entry);
layout.content["tweet_text"] = entry;
layout.setSizeHintMin(127, 96);
layout.setSizeHintWeight(1.0, 1.0);
layout.setSizeHintAlign(-1.0, -1.0);
layout.sizeHintMin = {127, 96};
layout.sizeHintWeight = {1.0, 1.0};
layout.sizeHintAlign = {-1.0, -1.0};
var icon = new elm.Elm.Image(win);
icon.setFillInside(true);
var icon = new efl.ui.Image(win);
icon.fillInside = true;
icon_array.push(icon);
layout.contentSet("user_icon", icon);
layout.content["user_icon"] = icon;
item = list.itemAppend("", layout, null, null, null);
}
list.go();
}
});
win.setSize(380,400);
win.setVisible(true);
win.size = {380,400};
win.visible = {true};

View File

@ -65,7 +65,7 @@ using efl::eina::js::compatibility_new;
} \
eina_counter_stop(counter, 20000); \
fprintf(stderr, "%s", eina_counter_dump(counter)); \
eo_del(object); \
eo_unref(object); \
return compatibility_return(); \
}