TextList - система списков на Text Draw
Описание
Система списков на Text Draw.
Скриншоты
На скриншотах изображена реально работающая система тюнинга, выполенная с использованием данной библиотеки. Посмотреть её код можно здесь, но учтите, что данная реализация частично привязана к различным системам режима Open-GTO.
http://ihost.pro-pawn.ru/image.php?di=AXYC http://ihost.pro-pawn.ru/image.php?di=45NX
Функции
Показать созданный 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];
format(string
, sizeof(string
), " %d | %d | %d | %s", playerid
, _:response
, itemid
, itemvalue
); return 1;
}
И где-то вы можете открыть созданный TextList:
TextList_Show(playerid, TextList:example_tl);
Естественно вас никто не заставляет пользоваться этой системой, вы можете обойтись без TextListCreate.
Скачать