factor-work/bemenu/bemenu.factor

27 lines
606 B
Factor
Raw Normal View History

2021-08-09 15:15:25 -04:00
USING: kernel destructors alien.c-types alien.data strings sequences ;
2021-08-09 17:17:00 -04:00
USING: bemenu.ffi bemenu.ffi.private ;
USING: vocabs.parser ;
2021-08-09 11:46:01 -04:00
IN: bemenu
2021-08-09 17:17:00 -04:00
"bemenu.ffi" use-vocab
2021-08-09 15:15:25 -04:00
TUPLE: bemenu-renderer
ptr name priority ;
2021-08-09 11:46:01 -04:00
: get-text ( -- str )
[
f bm_menu_new &bm_menu_free
bm_menu_render
"hi"
] with-destructors ;
2021-08-09 15:15:25 -04:00
2021-08-09 17:17:00 -04:00
: bemenu-get-renderers ( -- renderers )
2021-08-09 15:15:25 -04:00
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 ;