factor-work/bemenu/bemenu.factor

27 lines
606 B
Factor

USING: kernel destructors alien.c-types alien.data strings sequences ;
USING: bemenu.ffi bemenu.ffi.private ;
USING: vocabs.parser ;
IN: bemenu
"bemenu.ffi" use-vocab
TUPLE: bemenu-renderer
ptr name priority ;
: get-text ( -- str )
[
f bm_menu_new &bm_menu_free
bm_menu_render
"hi"
] with-destructors ;
: bemenu-get-renderers ( -- renderers )
0 uint32_t <ref> [ bm_get_renderers ] keep uint32_t deref void* <c-direct-array>
[
dup
[ bm_renderer_get_name ]
[ bm_renderer_get_priorty ] bi
bemenu-renderer boa
] { } map-as ;