aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp
diff options
context:
space:
mode:
authorOmar Emara <mail@OmarEmara.dev>2021-07-07 17:14:13 +0200
committerRaphael Isemann <teemperor@gmail.com>2021-07-07 17:17:46 +0200
commit29cc50e17a6800ca75cd23ed85ae1ddf3e3dcc14 (patch)
tree0377752dae4a6f0de0251a77c30d06052a292654 /lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp
parent2937f8d14840f54bb10daf71c7af236f4d897884 (diff)
downloadllvm-29cc50e17a6800ca75cd23ed85ae1ddf3e3dcc14.zip
llvm-29cc50e17a6800ca75cd23ed85ae1ddf3e3dcc14.tar.gz
llvm-29cc50e17a6800ca75cd23ed85ae1ddf3e3dcc14.tar.bz2
[LLDB][GUI] Add initial forms support
This patch adds initial support for forms for the LLDB GUI. The currently supported form elements are Text fields, Integer fields, Boolean fields, Choices fields, File fields, Directory fields, and List fields. A form can be created by subclassing FormDelegate. In the constructor, field factory methods can be used to add new fields, storing the returned pointer in a member variable. One or more actions can be added using the AddAction method. The method takes a function with an interface void(Window &). This function will be executed whenever the user executes the action. Example form definition: ```lang=cpp class TestFormDelegate : public FormDelegate { public: TestFormDelegate() { m_text_field = AddTextField("Text", "The big brown fox."); m_file_field = AddFileField("File", "/tmp/a"); m_directory_field = AddDirectoryField("Directory", "/tmp/"); m_integer_field = AddIntegerField("Number", 5); std::vector<std::string> choices; choices.push_back(std::string("Choice 1")); choices.push_back(std::string("Choice 2")); choices.push_back(std::string("Choice 3")); choices.push_back(std::string("Choice 4")); choices.push_back(std::string("Choice 5")); m_choices_field = AddChoicesField("Choices", 3, choices); m_bool_field = AddBooleanField("Boolean", true); TextFieldDelegate default_field = TextFieldDelegate("Text", "The big brown fox."); m_text_list_field = AddListField("Text List", default_field); AddAction("Submit", [this](Window &window) { Submit(window); }); } void Submit(Window &window) { SetError("An example error."); } protected: TextFieldDelegate *m_text_field; FileFieldDelegate *m_file_field; DirectoryFieldDelegate *m_directory_field; IntegerFieldDelegate *m_integer_field; BooleanFieldDelegate *m_bool_field; ChoicesFieldDelegate *m_choices_field; ListFieldDelegate<TextFieldDelegate> *m_text_list_field; }; ``` Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D104395
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp')
0 files changed, 0 insertions, 0 deletions