forked from enlightenment/efl
elua: remove testing elementary bindings
This commit is contained in:
parent
5db7a70603
commit
8528d937e8
|
@ -1,174 +0,0 @@
|
|||
local ffi = require("ffi")
|
||||
local cutil = require("cutil")
|
||||
local util = require("util")
|
||||
|
||||
local elm, evas
|
||||
|
||||
local M = {}
|
||||
|
||||
ffi.cdef [[
|
||||
typedef struct Evas_Object Evas_Object;
|
||||
typedef unsigned char Eina_Bool;
|
||||
|
||||
typedef void(*Evas_Smart_Cb)(void *data, Evas_Object *obj, void *event_info);
|
||||
|
||||
int elm_init(int argc, char **argv);
|
||||
int elm_exit(void);
|
||||
|
||||
Evas_Object *elm_win_add(Evas_Object *parent, const char *name, int type);
|
||||
void elm_win_title_set(Evas_Object *obj, const char *title);
|
||||
void elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj);
|
||||
|
||||
Evas_Object *elm_bg_add(Evas_Object *parent);
|
||||
Evas_Object *elm_label_add(Evas_Object *parent);
|
||||
Evas_Object *elm_button_add(Evas_Object *parent);
|
||||
Evas_Object *elm_box_add(Evas_Object *parent);
|
||||
Evas_Object *elm_entry_add(Evas_Object *parent);
|
||||
void elm_box_pack_end(Evas_Object *obj, Evas_Object *subobj);
|
||||
void elm_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
|
||||
void elm_entry_scrollable_set(Evas_Object *obj, Eina_Bool scroll);
|
||||
void elm_entry_entry_set(Evas_Object *obj, const char *entry);
|
||||
const char *elm_entry_entry_get(const Evas_Object *obj);
|
||||
void elm_object_part_text_set(Evas_Object *obj, const char *part, const char *text);
|
||||
void elm_object_focus_set(Evas_Object *obj, Eina_Bool focus);
|
||||
|
||||
void evas_object_show(Evas_Object *obj);
|
||||
void evas_object_size_hint_weight_set(Evas_Object *obj, double x, double y);
|
||||
void evas_object_size_hint_align_set(Evas_Object *obj, double x, double y);
|
||||
void evas_object_resize(Evas_Object *obj, int w, int h);
|
||||
|
||||
void evas_object_smart_callback_add(Evas_Object *obj, const char *event, Evas_Smart_Cb func, const void *data);
|
||||
void evas_object_smart_callback_del_full(Evas_Object *obj, const char *event, Evas_Smart_Cb func, const void *data);
|
||||
]]
|
||||
|
||||
local callbacks = {}
|
||||
|
||||
local smart_cb_wrapper = ffi.cast("Evas_Smart_Cb",
|
||||
cutil.register_callbacks(callbacks))
|
||||
|
||||
cutil.init_module(function()
|
||||
elm, evas = ffi.load("elementary"), ffi.load("evas")
|
||||
elm.elm_init(0, nil)
|
||||
end, function()
|
||||
elm.elm_exit()
|
||||
end)
|
||||
|
||||
local Evas_Object = util.Object:clone {
|
||||
resize = function(self, w, h)
|
||||
evas.evas_object_resize(self.__o, w, h)
|
||||
end,
|
||||
show = function(self) evas.evas_object_show(self.__o) end,
|
||||
size_hint_weight_set = function(self, x, y)
|
||||
evas.evas_object_size_hint_weight_set(self.__o, x, y)
|
||||
end,
|
||||
size_hint_align_set = function(self, x, y)
|
||||
evas.evas_object_size_hint_align_set(self.__o, x, y)
|
||||
end,
|
||||
smart_callback_add = function(self, ev, cb)
|
||||
local cbt = callbacks[cb]
|
||||
if not cbt then
|
||||
callbacks[#callbacks + 1] = cb
|
||||
cbt = { #callbacks, 0 }
|
||||
callbacks[cb] = cbt
|
||||
end
|
||||
cbt[2] = cbt[2] + 1
|
||||
evas.evas_object_smart_callback_add(self.__o, ev, smart_cb_wrapper,
|
||||
ffi.cast("void*", cbt[1]))
|
||||
end,
|
||||
smart_callback_del = function(self, ev, cb)
|
||||
local cbt = callbacks[cb]
|
||||
if not cbt then return end
|
||||
local cbi = cbt[1]
|
||||
evas.evas_object_smart_callback_del_full(self.__o, ev, smart_cb_wrapper,
|
||||
ffi.cast("void*", cbi))
|
||||
local cnt = cbt[2] - 1
|
||||
if cnt == 0 then
|
||||
callbacks[cbi], callbacks[cb] = nil, nil
|
||||
else
|
||||
cbt[2] = cnt
|
||||
end
|
||||
end
|
||||
}
|
||||
|
||||
M.Window = Evas_Object:clone {
|
||||
__ctor = function(self, name, title)
|
||||
self.__o = elm.elm_win_add(nil, name, 0)
|
||||
elm.elm_win_title_set(self.__o, title)
|
||||
end,
|
||||
|
||||
resize_object_add = function(self, o)
|
||||
elm.elm_win_resize_object_add(self.__o, o.__o)
|
||||
end
|
||||
}
|
||||
|
||||
M.Background = Evas_Object:clone {
|
||||
__ctor = function(self, parent)
|
||||
self.__o = elm.elm_bg_add(parent.__o)
|
||||
end
|
||||
}
|
||||
|
||||
M.Label = Evas_Object:clone {
|
||||
__ctor = function(self, parent)
|
||||
self.__o = elm.elm_label_add(parent.__o)
|
||||
end,
|
||||
|
||||
text_set = function(self, label, part)
|
||||
elm.elm_object_part_text_set(self.__o, part, label)
|
||||
end
|
||||
}
|
||||
|
||||
M.Button = Evas_Object:clone {
|
||||
__ctor = function(self, parent)
|
||||
self.__o = elm.elm_button_add(parent.__o)
|
||||
end,
|
||||
|
||||
text_set = function(self, label, part)
|
||||
elm.elm_object_part_text_set(self.__o, part, label)
|
||||
end
|
||||
}
|
||||
|
||||
M.Box = Evas_Object:clone {
|
||||
__ctor = function(self, parent)
|
||||
self.__o = elm.elm_box_add(parent.__o)
|
||||
end,
|
||||
|
||||
pack_end = function(self, obj)
|
||||
elm.elm_box_pack_end(self.__o, obj.__o)
|
||||
end
|
||||
}
|
||||
|
||||
M.Entry = Evas_Object:clone {
|
||||
__ctor = function(self, parent)
|
||||
self.__o = elm.elm_entry_add(parent.__o)
|
||||
end,
|
||||
|
||||
single_line_set = function(self, v)
|
||||
elm.elm_entry_single_line_set(self.__o, v)
|
||||
end,
|
||||
|
||||
scrollable_set = function(self, v)
|
||||
elm.elm_entry_scrollable_set(self.__o, v)
|
||||
end,
|
||||
|
||||
focus_set = function(self, v)
|
||||
elm.elm_object_focus_set(self.__o, v)
|
||||
end,
|
||||
|
||||
text_set = function(self, label, part)
|
||||
elm.elm_object_part_text_set(self.__o, part, label)
|
||||
end,
|
||||
|
||||
entry_set = function(self, v)
|
||||
elm.elm_entry_entry_set(self.__o, v)
|
||||
end,
|
||||
|
||||
entry_get = function(self, v)
|
||||
return elm.elm_entry_entry_get(self.__o)
|
||||
end
|
||||
}
|
||||
|
||||
M.exit = function()
|
||||
elm.elm_exit()
|
||||
end
|
||||
|
||||
_G["elm"] = M
|
|
@ -2,20 +2,20 @@ if HAVE_ELUA
|
|||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
DATA_FILES = elm_test.lua
|
||||
DATA_FILES =
|
||||
EXTRA_DIST = $(DATA_FILES)
|
||||
|
||||
examples: ;
|
||||
|
||||
clean-local: ;
|
||||
|
||||
install-examples:
|
||||
mkdir -p $(datadir)/elua/examples
|
||||
cd $(srcdir) && $(install_sh_DATA) -c $(DATA_FILES) $(datadir)/elua/examples
|
||||
#install-examples:
|
||||
# mkdir -p $(datadir)/elua/examples
|
||||
# cd $(srcdir) && $(install_sh_DATA) -c $(DATA_FILES) $(datadir)/elua/examples
|
||||
|
||||
uninstall-local:
|
||||
for f in $(DATA_FILES); do \
|
||||
rm -f $(datadir)/elua/examples/$$f ; \
|
||||
done
|
||||
#uninstall-local:
|
||||
# for f in $(DATA_FILES); do \
|
||||
# rm -f $(datadir)/elua/examples/$$f ; \
|
||||
# done
|
||||
|
||||
endif
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
local log = require("eina.log")
|
||||
|
||||
local dom = log.Domain("elm_test", log.color.LIGHTRED)
|
||||
|
||||
local win = elm.Window("test", "Hello World")
|
||||
|
||||
dom:log(log.level.INFO, "created window")
|
||||
dom:log(log.level.ERR, "error test!")
|
||||
|
||||
log.log_err("test with default log domain")
|
||||
|
||||
local foo = function()
|
||||
for i = 1, 4 do
|
||||
log.err("testing: " .. i)
|
||||
end
|
||||
end
|
||||
|
||||
foo()
|
||||
log.set_default_domain(dom)
|
||||
foo()
|
||||
|
||||
win:smart_callback_add("delete,request", function()
|
||||
elm.exit()
|
||||
end)
|
||||
|
||||
local bg = elm.Background(win)
|
||||
bg:size_hint_weight_set(1.0, 1.0)
|
||||
win:resize_object_add(bg)
|
||||
bg:show()
|
||||
|
||||
local bx = elm.Box(win)
|
||||
bx:size_hint_weight_set(1.0, 1.0)
|
||||
win:resize_object_add(bx)
|
||||
bx:show()
|
||||
|
||||
local lbl = elm.Label(win)
|
||||
lbl:text_set("Lua runtime test")
|
||||
bx:pack_end(lbl)
|
||||
lbl:show()
|
||||
|
||||
local entry
|
||||
|
||||
local btn = elm.Button(win)
|
||||
btn:text_set("Reset counter")
|
||||
bx:pack_end(btn)
|
||||
btn:smart_callback_add("clicked", function()
|
||||
lbl:text_set(entry:entry_get())
|
||||
end)
|
||||
btn:show()
|
||||
|
||||
entry = elm.Entry(win)
|
||||
entry:single_line_set(true)
|
||||
entry:scrollable_set(true)
|
||||
entry:focus_set(true)
|
||||
entry:entry_set("Hello world")
|
||||
entry:size_hint_weight_set(1.0, 1.0)
|
||||
entry:size_hint_align_set(-1.0, -1.0)
|
||||
entry:show()
|
||||
bx:pack_end(entry)
|
||||
|
||||
win:resize(360, 360)
|
||||
win:show()
|
||||
|
||||
dom:log(log.level.INFO, "done initing")
|
||||
dom:unregister()
|
Loading…
Reference in New Issue