There is LEO, and it's officially supported also.
When programming C++, you can choose whether you want to use the procedural C++ headers (engine.h), or the OOP C++ headers (leo.h). When you use LEO (the OOP C++ headers), you can still access the procedural C++ headers directly, since LEO includes also engine.h. Framework is available in both also, with LEO you just have an OOP style framework interface, but you can also mix procedural and OOP engine (and framework) commands if you like.
Lua is used in Editor to make logic and actions to models, you don't have to do anything in C++ for them, they just works automatically like in Editor.