SR_team
23.11.2015, 23:45
Простенький плагин реализующий гуи подобное DXTU. Все сложности с подключением оставлены в !Gui.sf, все что вам нужно, это подключить файлы из папки Include, зарегистрировать класс и начать рисовать, можно регистрировать неограниченное количество классов в плагине.
Функции класса:
MenuGUI - конструктор класса, может принимать указатель на шрифт для копирования шрифта в класс. Если шрифт не указан создастся свой.
~MenuGUI - деструктор класса.
SetFont - перегруженная функция изменения шрифта в классе, может принимать указатель на шрифт, либо его параметры.
InputBox - функция создания поля ввода. Принимает координаты поля, цвет, id поля ввода, зависимость от меню (координаты будут относительно координат меню, если оно есть), максимальную длину поля в символах. Возвращает строку
ClearInputBox - Очищает поле ввода. Принимает id поля ввода.
SetInputBox - Устанавливает текст в поле ввода. Принимает id поля ввода и текст.
Text - Рисует кликабельный текст. Принимает текст, координаты, цвет, форматирование относительно координат (как в ворде - слева, справа, по центру), зависимость от меню. Возвращает информацию был ли нажат текст и если да, то какой клавишей мыши (левой или правой).
Button - Рисует кнопку. Принимает текст, координаты, цвет, зависимость от меню. Возвращает информацию был ли нажат текст и если да, то какой клавишей мыши.
CheckBox - рисует чекбокс. Принимает текст, координаты, цвет, указатель на изменяемую переменную, зависимость от меню
Listing - Рисует список. Принимает текст, координаты, набор цветов lColor, информацию о скроллбаре mScroll, id выделеной строки в списке, зависимость от меню. Возвращает id нажатой строки начиная с 0 (-1 - строка не нажата)
MenuBox - Рисует меню. Принимает текст, указатели на координаты, ширину и высоту, цвет.
LineInMenu - Рисует линию в меню. Принимает координаты начала и конца, цвет. Координаты зависят от координат меню.
LockGUI - Блокирует обработку индивидуальных событий текущего класса меню.
Лимиты:
InputBox - лимит длины строки - 256 символов (для чтения и установки)
Listing - лимит 1000 строк
Типы данных:
mScroll - структура данных о скроллбаре. Имеет следующие данные:
Size - количиство строк для скроллбара
Pos - указатель на позицию скроллбара
Show - отображение скроллбара
lColor - Структура данных о цвете. Имеет следующие данные:
default - основной цвет строк
Selected - цвет подложки выделеной строки
Spewial - массив цветов, определяет индивидуальный цвет для каждой строки, если значение не 0
MenuRet - не совсем тип данных - enum, определяет нажатие для кликабельных текстов и кнопок. Имеет следующие параметры:
ret_not - нажатия не было
ret_lmb - нажатие было левой кнопкой мыши
ret_rmb - нажатие было правой кнопкой мыши
TextAlig - тоже emun, Определяет положение текста. Имеет следующие данные:
ta_Left - рисовать текст относительно левого края экрана (из заданных координат)
ta_Center - рисовать текст в центре заданных координат
ta_Right - рисовать текст относительно правого края экрана (из заданных координат)
В архиве имеется пример плагина с подключенным !Gui и рисованием небольшого окна.
Для работы плагинов написанных с использованием этого апи должен быть установлен плагин !Gui.sf
Функции класса:
MenuGUI - конструктор класса, может принимать указатель на шрифт для копирования шрифта в класс. Если шрифт не указан создастся свой.
~MenuGUI - деструктор класса.
SetFont - перегруженная функция изменения шрифта в классе, может принимать указатель на шрифт, либо его параметры.
InputBox - функция создания поля ввода. Принимает координаты поля, цвет, id поля ввода, зависимость от меню (координаты будут относительно координат меню, если оно есть), максимальную длину поля в символах. Возвращает строку
ClearInputBox - Очищает поле ввода. Принимает id поля ввода.
SetInputBox - Устанавливает текст в поле ввода. Принимает id поля ввода и текст.
Text - Рисует кликабельный текст. Принимает текст, координаты, цвет, форматирование относительно координат (как в ворде - слева, справа, по центру), зависимость от меню. Возвращает информацию был ли нажат текст и если да, то какой клавишей мыши (левой или правой).
Button - Рисует кнопку. Принимает текст, координаты, цвет, зависимость от меню. Возвращает информацию был ли нажат текст и если да, то какой клавишей мыши.
CheckBox - рисует чекбокс. Принимает текст, координаты, цвет, указатель на изменяемую переменную, зависимость от меню
Listing - Рисует список. Принимает текст, координаты, набор цветов lColor, информацию о скроллбаре mScroll, id выделеной строки в списке, зависимость от меню. Возвращает id нажатой строки начиная с 0 (-1 - строка не нажата)
MenuBox - Рисует меню. Принимает текст, указатели на координаты, ширину и высоту, цвет.
LineInMenu - Рисует линию в меню. Принимает координаты начала и конца, цвет. Координаты зависят от координат меню.
LockGUI - Блокирует обработку индивидуальных событий текущего класса меню.
Лимиты:
InputBox - лимит длины строки - 256 символов (для чтения и установки)
Listing - лимит 1000 строк
Типы данных:
mScroll - структура данных о скроллбаре. Имеет следующие данные:
Size - количиство строк для скроллбара
Pos - указатель на позицию скроллбара
Show - отображение скроллбара
lColor - Структура данных о цвете. Имеет следующие данные:
default - основной цвет строк
Selected - цвет подложки выделеной строки
Spewial - массив цветов, определяет индивидуальный цвет для каждой строки, если значение не 0
MenuRet - не совсем тип данных - enum, определяет нажатие для кликабельных текстов и кнопок. Имеет следующие параметры:
ret_not - нажатия не было
ret_lmb - нажатие было левой кнопкой мыши
ret_rmb - нажатие было правой кнопкой мыши
TextAlig - тоже emun, Определяет положение текста. Имеет следующие данные:
ta_Left - рисовать текст относительно левого края экрана (из заданных координат)
ta_Center - рисовать текст в центре заданных координат
ta_Right - рисовать текст относительно правого края экрана (из заданных координат)
В архиве имеется пример плагина с подключенным !Gui и рисованием небольшого окна.
Для работы плагинов написанных с использованием этого апи должен быть установлен плагин !Gui.sf