Lua ImGUI Dialogfenster
Dieses Skript vereinfacht das Schreiben von Dialogfenstern und reduziert die Erstellung eines Dialogfensters auf eine einzige Zeile.
Derzeit gibt es Dialogfenster mit Schaltflächen, Eingabe von Ganzzahlen, Texteingabe und mit RadioButtons.
Hier ist ein kleines Handbuch
m.BtnDialog(Header, Text, strButtons, butSize) erstellt ein Dialogfenster mit Schaltflächen und Text
Header - Titel des Fensters (String)
Text - Text nach dem Titel (String)
strButtons - Text, der auf den Schaltflächen angezeigt wird (Tabelle von Strings)
butSize - imgui.ImVec2, Größe der Schaltflächen
m.BigBtnDialog(Header, Text, strButtons, butSize) erstellt ein Dialogfenster mit Schaltflächen und Text
strButtons - Text, der auf den Schaltflächen angezeigt wird (Tabelle von Tabellen von Strings)
Schaltflächen aus verschiedenen Tabellen strButtons werden in der entsprechenden Zeile angeordnet (z.B. {{\"1zeile 1\", \"1zeile 2\"}, {\"2s 1\", \"2s 2\"}})
m.RadioButtonDialog(Header, Text, strButtons, imint, butSize) erstellt ein Dialogfenster mit RadioButtons
strButtons - Text, der auf den RadioButtons angezeigt wird (Tabelle von Strings)
imint - imgui.ImInt, in den die Nummer des ausgewählten RadioButtons (beginnend bei eins) geschrieben wird.
m.RadioButtonReturnDialog(Header, Text, strButtons, Values, imint, butSize) erstellt ein Dialogfenster mit RadioButtons
Unterscheidet sich von der vorherigen durch das Vorhandensein von Values
Values - Tabelle von Werten (kann auch eine Tabelle von Tabellen sein), der Wert am Index des ausgewählten RadioButtons, der von dieser Funktion zurückgegeben wird.
m.InputIntDialog(Header, Text, strInts, imints, butSize) erstellt ein Dialogfenster zur Eingabe einer Ganzzahl (oder mehrerer Ganzzahlen)
strInts - Tabelle von Bezeichnungen für die Eingabefelder für Zahlen
imints - Tabelle von imgui.ImInt zur Speicherung der Werte.
m.InputTextDialog(Header, Text, strings, imbufs, butSize) erstellt ein Dialogfenster zur Eingabe von Text (mehreren Zeilen)
strings - Tabelle von Bezeichnungen für die Eingabefelder für Text
Этот скрипт упростит написание диалоговых окон, сведёт создание диалогового окна к написанию одной строки.
На данный момент присутствуют диалоговые окна с кнопками, вводом целых чисел, вводом строк и с RadioButton.
Вот небольшой мануал
m.BtnDialog(Header, Text, strButtons, butSize) создаёт диалоговое окно с кнопками и текстом
Header - Заголовок окна(строка)
Text - Текст после заголовка(строка)
strButtons - Текст, отображаемый на кнопках(таблица строк)
butSize - imgui.ImVec2, размер кнопок
m.BigBtnDialog(Header, Text, strButtons, butSize) создаёт диалоговое окно с кнопками и текстом
strButtons - Текст, отображаемый на кнопках(таблица таблиц строк)
кнопки из разный таблиц strButtons располагаются на соответствующей строчке(ex. {{\"1stroka 1\", \"1stroka 2\"}, {\"2s 1\", \"2s 2\"}})
m.RadioButtonDialog(Header, Text, strButtons, imint, butSize) создаёт диалоговое окно с RadioButton`ами
strButtons - Текст, отображаемый на RadioButton`ах(таблица строк)
imint - imgui.ImInt, в который записывается номер выбранного RadioButton`а (с еденицы).
m.RadioButtonReturnDialog(Header, Text, strButtons, Values, imint, butSize) создаёт диалоговое окно с RadioButton`ами
От предыдущего отличается наличием Values
Values - таблица значений(может быть и таблица таблиц), значение по индексу выбранного RadioButton`а из которого возвращается этой функцией.
m.InputIntDialog(Header, Text, strInts, imints, butSize) создает диалоговое окно с вводом целого числа(целых чисел)
strInts - таблица названий для полей ввода чисел
imints - таблица imgui.ImInt для записи в них значений.
m.InputTextDialog(Header, Text, strings, imbufs, butSize) создает диалоговое окно с вводом строки(нескольких строк)
strings - таблица наименований для полей ввода текста