Files
viseq/src/draggable.h
T
2026-05-04 18:40:00 +02:00

34 lines
835 B
C++

#pragma once
#include "moveable.h"
#include "raylib.h"
#include "selectable.h"
#include "state.h"
#include "vmath.h"
namespace VISEQ::BASE {
class Draggable : public Movable, public Selectable{
public:
Draggable() {}
Draggable(float x, float y) : Movable(Vec2Df(x, y), 960.0f) {}
Draggable(Vec2Df p) : Movable(p, 960.0f) {}
virtual ~Draggable() {}
std::shared_ptr<APP::State> state = APP::State::get();
Vec2Df drag_offset;
bool picked_up = false;
virtual bool entered() override;
virtual bool exited() override;
virtual bool pickedUp();
virtual void pickUp() override;
virtual void pickUp(Vec2Df selection_origin) override;
virtual void drag(Vec2Df new_position) override;
virtual void putDown() override;
virtual bool select() override;
virtual void deselect() override;
};
}