PDA

Просмотр полной версии : [API] !Gui


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

SR_team
25.11.2015, 18:01
Добавлены чекбоксы

luckyFOX
27.11.2015, 09:34
Это такие диалоги как например в RakFilter?

SR_team
27.11.2015, 11:46
Это такие диалоги как например в RakFilter?


Да