28 lines
625 B
C++
28 lines
625 B
C++
#pragma once
|
|
|
|
#include "scene/2d/node_2d.h"
|
|
|
|
class FilePopup : public Node2D {
|
|
GDCLASS(FilePopup, Node2D);
|
|
static void _bind_methods();
|
|
void enter_tree();
|
|
void process(double delta);
|
|
|
|
protected:
|
|
virtual void unhandled_input(Ref<InputEvent> const &what) override;
|
|
void _notification(int what);
|
|
|
|
public:
|
|
void request_open();
|
|
void request_close();
|
|
bool is_open() const;
|
|
void set_open_position(Node2D *node);
|
|
Node2D *get_open_position() const;
|
|
|
|
private:
|
|
double animation_progress{ 0.0 };
|
|
bool desire_open{ false };
|
|
Transform2D home_position{};
|
|
Node2D *open_position{ nullptr };
|
|
double const ANIM_SPEED{ 5.0 };
|
|
};
|