blob: 32657a686966d580b5235c5b4af9e6b453d71f48 [file] [log] [blame] [edit]
#ifndef _RIVE_ARTBOARD_HOST_HPP_
#define _RIVE_ARTBOARD_HOST_HPP_
#include "rive/refcnt.hpp"
#include "rive/file.hpp"
#include "rive/data_bind_path_referencer.hpp"
#include <stdio.h>
namespace rive
{
class ArtboardInstance;
class DataBind;
class DataContext;
class ViewModelInstance;
class ArtboardHost : public DataBindPathReferencer
{
public:
virtual size_t artboardCount() = 0;
virtual ArtboardInstance* artboardInstance(int index = 0) = 0;
virtual void internalDataContext(DataContext* dataContext) = 0;
virtual void bindViewModelInstance(rcp<ViewModelInstance> viewModelInstance,
DataContext* parent) = 0;
virtual void clearDataContext() = 0;
virtual void unbind() = 0;
virtual void updateDataBinds() = 0;
virtual void markHostingLayoutDirty(ArtboardInstance* artboardInstance) {}
// The artboard that contains this ArtboardHost
virtual Artboard* parentArtboard() = 0;
virtual bool hitTestHost(const Vec2D& position,
bool skipOnUnclipped,
ArtboardInstance* artboard) = 0;
virtual Vec2D hostTransformPoint(const Vec2D&, ArtboardInstance*) = 0;
virtual void markHostTransformDirty() = 0;
virtual bool isLayoutProvider() { return false; }
virtual void file(File* value) = 0;
virtual File* file() const = 0;
};
} // namespace rive
#endif