TextList
GitHub
Описание
Система списков на Text Draw.
Скриншоты
На скриншотах изображена реально работающая система тюнинга, выполенная с использованием данной библиотеки. Посмотреть её код можно здесь, но учтите, что данная реализация частично привязана к различным системам режима Open-GTO.
Функции
Показать созданный TextList
TextList_Show(playerid, function[]);
Открыть TextList
TextList_Open(playerid, function[], list_items[][], list_size = sizeof(list_items), header[] = "", button1[] = "", button2[] = "", Float:pos_x = 89.0, Float:pos_y = 140.0, select_color = 0xFFA500FF, lists_bg_color[TEXTLIST_MAX_ITEMS] = {0x212121A0, ...}, lists_fg_color[TEXTLIST_MAX_ITEMS] = {0xFFFFFFFF, ...}, header_bg_color = 0xB71C1CAA, header_fg_color = 0xFFFFFFFF, paginator_bg_color = 0x21212160, paginator_fg_color = 0xFFFFFFFF, button1_bg_color = 0x6D4C41AA, button1_fg_color = 0xFFFFFFFF, button2_bg_color = 0x6D4C41AA, button2_fg_color = 0xFFFFFFFF);
Закрыть TextList
TextList_Close(playerid);
Статус TextList
TextList_IsOpen(playerid);
Автовызываемые функции
Для каждого TextList оформляется собственная функция-обработчик, выглядит она следующим образом:
TextListResponse:example_tl(playerid, TextListType:response, itemid, itemvalue[]) { return 1; }
Эта функция вызывается при любом взаимодействии пользователя с TextList.
TextListType может принимать следующие значения:
- TextList_None
- TextList_Button1
- TextList_Button2
- TextList_ListItem
- TextList_ListUp
- TextList_ListDown
- TextList_Cancel
Константы
Доступно несколько констант, некоторые из них можно переназначить.
Константа Значение по умолчанию Можно переназначить? TEXTLIST_MAX_ITEMS 30 Да TEXTLIST_MAX_ITEMS_ON_LIST 10 Да TEXTLIST_MAX_ITEM_NAME 32 Нет TEXTLIST_MAX_FUNCTION_NAME 31 Нет TEXTLIST_MAX_BUTTON_NAME 12 Нет
Использование
Для более удобного использования, в системе предусмотрена возможность создавать функцию для открытия TextList, это полезно при множественном вызове одного списка (в основном используется при создании вложенных меню):
TextListCreate:example_tl(playerid) { new items[][TEXTLIST_MAX_ITEM_NAME] = { "Test 1", "Big Test 2" }; new bg_colors[TEXTLIST_MAX_ITEMS] = { 0xFF0000FF, 0x00FF00FF }; TextList_Open(playerid, TextList:example_tl, items, sizeof(items), "Example header", "Button 1", "Button 2", .lists_bg_color = bg_colors); } TextListResponse:example_tl(playerid, TextListType:response, itemid, itemvalue[]) { new string[128]; return 1; }
И где-то вы можете открыть созданный TextList:
TextList_Show(playerid, TextList:example_tl);
Естественно вас никто не заставляет пользоваться этой системой, вы можете обойтись без TextListCreate.
Скачать
- Последнюю версию вы всегда можете найти на странице релизов GitHub.