Hide a few APIs from the C++ documentation

Since Doxygen can't seem to just exclude them via command, they are moved
into a private_api namespace and then excluded via Doxygen config:

    * *VTable
    * make_dyn_node, ItemTreeNode, etc.
    * VersionCheck
This commit is contained in:
Simon Hausmann 2020-08-25 17:45:12 +02:00
parent 91621aa87a
commit 9785919f6e
4 changed files with 34 additions and 21 deletions

View file

@ -26,6 +26,7 @@ struct ItemVTable;
namespace sixtyfps {
namespace private_api {
extern "C" {
extern const cbindgen_private::ItemVTable RectangleVTable;
extern const cbindgen_private::ItemVTable BorderRectangleVTable;
@ -36,12 +37,14 @@ extern const cbindgen_private::ItemVTable PathVTable;
extern const cbindgen_private::ItemVTable FlickableVTable;
extern const cbindgen_private::ItemVTable WindowVTable;
}
}
// Bring opaque structure in scope
namespace private_api {
using cbindgen_private::ComponentVTable;
using cbindgen_private::ItemVTable;
using ItemTreeNode = cbindgen_private::ItemTreeNode<uint8_t>;
using ComponentRef = VRef<ComponentVTable>;
}
using ComponentRef = VRef<private_api::ComponentVTable>;
using ItemVisitorRefMut = VRefMut<cbindgen_private::ItemVisitorVTable>;
using cbindgen_private::EasingCurve;
using cbindgen_private::PropertyAnimation;
@ -50,6 +53,9 @@ using cbindgen_private::TextHorizontalAlignment;
using cbindgen_private::TextVerticalAlignment;
using cbindgen_private::TraversalOrder;
namespace private_api {
using ItemTreeNode = cbindgen_private::ItemTreeNode<uint8_t>;
struct ComponentWindow
{
ComponentWindow() { cbindgen_private::sixtyfps_component_window_gl_renderer_init(&inner); }
@ -81,6 +87,7 @@ struct ComponentWindow
private:
cbindgen_private::ComponentWindowOpaque inner;
};
}
using cbindgen_private::BorderRectangle;
using cbindgen_private::Flickable;
@ -91,6 +98,7 @@ using cbindgen_private::Text;
using cbindgen_private::TouchArea;
using cbindgen_private::Window;
namespace private_api {
constexpr inline ItemTreeNode make_item_node(std::uintptr_t offset,
const cbindgen_private::ItemVTable *vtable,
uint32_t child_count, uint32_t child_index)
@ -104,10 +112,12 @@ constexpr inline ItemTreeNode make_dyn_node(std::uintptr_t offset)
return ItemTreeNode { ItemTreeNode::DynamicTree_Body { ItemTreeNode::Tag::DynamicTree,
offset } };
}
}
using cbindgen_private::InputEventResult;
using cbindgen_private::MouseEvent;
using cbindgen_private::sixtyfps_visit_item_tree;
namespace private_api {
template<typename GetDynamic>
inline InputEventResult process_input_event(ComponentRef component, int64_t &mouse_grabber,
MouseEvent mouse_event, Slice<ItemTreeNode> tree,
@ -144,6 +154,7 @@ inline InputEventResult process_input_event(ComponentRef component, int64_t &mou
&mouse_grabber);
}
}
}
// layouts:
using cbindgen_private::grid_layout_info;
@ -210,7 +221,7 @@ struct Repeater
{
for (std::size_t i = 0; i < data.size(); ++i) {
int index = order == TraversalOrder::BackToFront ? i : data.size() - 1 - i;
VRef<ComponentVTable> ref = item_at(index);
auto ref = item_at(index);
if (ref.vtable->visit_children_item(ref, -1, order, visitor) != -1) {
return index;
}
@ -218,7 +229,7 @@ struct Repeater
return -1;
}
VRef<ComponentVTable> item_at(int i) const
VRef<private_api::ComponentVTable> item_at(int i) const
{
const auto &x = data.at(i);
return { &C::component_type, x.get() };
@ -234,9 +245,11 @@ Flickable::~Flickable()
sixtyfps_flickable_data_free(&data);
}
namespace private_api {
template<int Major, int Minor, int Patch>
struct VersionCheckHelper
{
};
}
} // namespace sixtyfps