summaryrefslogtreecommitdiff
path: root/tools/editor/property_selector.h
blob: f7f0e7e167c11e490e14aa535ade8d829e3deea8 (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#ifndef PROPERTYSELECTOR_H
#define PROPERTYSELECTOR_H

#include "tools/editor/property_editor.h"
#include "scene/gui/rich_text_label.h"
#include "editor_help.h"

class PropertySelector : public ConfirmationDialog {
	OBJ_TYPE(PropertySelector,ConfirmationDialog )


	LineEdit *search_box;
	Tree *search_options;

	void _update_search();

	void _sbox_input(const InputEvent& p_ie);

	void _confirmed();
	void _text_changed(const String& p_newtext);

	EditorHelpBit *help_bit;

	bool properties;
	String selected;
	Variant::Type type;
	InputEvent::Type event_type;
	String base_type;
	ObjectID script;
	Object *instance;

	void _item_selected();
protected:
	void _notification(int p_what);
	static void _bind_methods();



public:


	void select_method_from_base_type(const String& p_base,const String& p_current="");
	void select_method_from_script(const Ref<Script>& p_script,const String& p_current="");
	void select_method_from_basic_type(Variant::Type p_type,const String& p_current="");
	void select_method_from_instance(Object* p_instance, const String &p_current="");

	void select_property_from_base_type(const String& p_base,const String& p_current="");
	void select_property_from_script(const Ref<Script>& p_script,const String& p_current="");
	void select_property_from_basic_type(Variant::Type p_type,InputEvent::Type p_event_type,const String& p_current="");
	void select_property_from_instance(Object* p_instance, const String &p_current="");

	PropertySelector();
};

#endif // PROPERTYSELECTOR_H