summaryrefslogtreecommitdiff
path: root/tools/editor/array_property_edit.h
blob: 948b2a71a384dc21369c2d1feefdc9625bdef727 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef ARRAY_PROPERTY_EDIT_H
#define ARRAY_PROPERTY_EDIT_H

#include "scene/main/node.h"

class ArrayPropertyEdit : public Reference {

	OBJ_TYPE(ArrayPropertyEdit,Reference);

	int page;
	ObjectID obj;
	StringName property;
	String vtypes;
	Variant get_array() const;
	Variant::Type default_type;

	void _notif_change();
	void _notif_changev(const String& p_v);
	void _set_size(int p_size);
	void _set_value(int p_idx,const Variant& p_value);

protected:

	static void _bind_methods();
	bool _set(const StringName& p_name, const Variant& p_value);
	bool _get(const StringName& p_name,Variant &r_ret) const;
	void _get_property_list( List<PropertyInfo> *p_list) const;

public:

	void edit(Object* p_obj, const StringName& p_prop, Variant::Type p_deftype);

	Node *get_node();

	ArrayPropertyEdit();
};

#endif // ARRAY_PROPERTY_EDIT_H