mirror of
https://github.com/rive-app/rive-cpp.git
synced 2026-01-18 21:21:17 +01:00
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>
37 lines
930 B
C++
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 |