Finally returned to editor development. Editor UI will be written by Lua scripts. I started my UI from simple and usable source of Recast library, For example, button usage:
if ( imguiButton("Start game") )
LoadLevel("super-duper mega Quake level.mdl")
this is button creation, displaying and logic in one place. After years on Windows it was amazing! I mapped API into Lua script language by luabind library, and now UI script code looks like here:
if object_selected
rollout( "Object", 0, 0, width, height )
show_object_properties()
if collapse("physics", true, true)
show_physics_properties()
if collapse("visual", true, true)
show_visual_properties()
if collapse("script", true, true)
show_object_script()
end_rollout()