Files
rive-cpp/include/rive/virtualizing_component.hpp
philter c7ba843f8c List virtualization fixes (#10143) bf3b33a30a
First round of fixes for List Virtualization/Carousel

Fix layout flicker when adding a new artboard using virtualization
Fix hit detection
Fix scroll snapping not working properly in Carousel mode
Fix z-index issue with Carousel when items wrapped around from end to start.
Fix a transform issue found by @JcToon

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2025-07-10 22:33:35 +00:00

37 lines
930 B
C++

#ifndef _RIVE_VIRTUALIZING_COMPONENT_HPP_
#define _RIVE_VIRTUALIZING_COMPONENT_HPP_
#include "rive/math/vec2d.hpp"
#include <stdio.h>
namespace rive
{
enum class VirtualizedDirection
{
horizontal,
vertical
};
class Virtualizable
{
public:
virtual Component* virtualizableComponent() = 0;
};
class VirtualizingComponent
{
public:
static VirtualizingComponent* from(Component* component);
virtual bool virtualizationEnabled() = 0;
virtual int itemCount() = 0;
virtual Virtualizable* item(int index) = 0;
virtual Vec2D size() = 0;
virtual Vec2D itemSize(int index) = 0;
virtual void setItemSize(Vec2D size, int index) = 0;
virtual void addVirtualizable(int index) = 0;
virtual void removeVirtualizable(int index) = 0;
virtual void setVisibleIndices(int start, int end) = 0;
virtual void setVirtualizablePosition(int index, Vec2D position) = 0;
};
} // namespace rive
#endif