Гайд [ImGui] ListBox & Callback getter

Статус
В этой теме нельзя размещать новые ответы.
///
Пользователь
Статус
Оффлайн
Регистрация
25 Янв 2018
Сообщения
511
Реакции[?]
114
Поинты[?]
0
Привет всем)
Сегодня я очередной раз делаю пасто-тему)
Меньше слов больше темы:
В ImGui есть такая штука, как ListBox
Всё хорошо, но есть одно ограничение, а конкретно то, что функция ListBox
в качестве элементов принимает указатель на массив строк, а я хочу передать
туда vector<string>, как же это сделать?
------------------------------------------------------------------------------------------------------------------------------------
Нам нужно описать простою CallBack функцию и перегрузить оригинальный ListBox
Код:
static auto vector_callback = [](void* vec, int idx, const char** out_text)
{
auto& vector = *static_cast<vector<string>*>(vec);
if (idx < 0 || idx >= static_cast<int>(vector.size())) { return false; }
*out_text = vector.at(idx).c_str();
return true;
};
Код:
bool ListBox(const char* label, int* currIndex, vector<string>& values)
{
if (values.empty()) { return false; }
return ListBox(label, currIndex, vector_callback,
static_cast<void*>(&values), values.size());
}
Код:
void AddProcessToVec() {
        hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        m_ProcNames.clear();
        if (Process32First(hSnap, &pe)) {
            while (Process32Next(hSnap, &pe)) {
                m_ProcNames.push_back(pe.szExeFile);
            }
        }
    }
Код:
static int VotedIdx = 0;
ImGui::ListBox("##List1", &VotedIdx, proc.m_ProcNames);
В скором времени P45H3 возможно сольёт исходник этой программы.
-----------------------------------------------------------------------------------------------------------------------------------
Credits: P45H3
 
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
///
Пользователь
Статус
Оффлайн
Регистрация
25 Янв 2018
Сообщения
511
Реакции[?]
114
Поинты[?]
0
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
midnight.im
Администратор
Статус
Оффлайн
Регистрация
1 Июл 2015
Сообщения
1,648
Реакции[?]
2,172
Поинты[?]
162K
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
28 Янв 2018
Сообщения
4
Реакции[?]
0
Поинты[?]
0
Для какой Visual Studio? При копировании половина кода красное.
 
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я лучше тебя
Участник
Статус
Оффлайн
Регистрация
31 Июл 2017
Сообщения
383
Реакции[?]
448
Поинты[?]
1K
Элита , скриншот посмотри.
#include <vector>
using namespace std;

а нахуя оно надо???
Разница между мосивом и контейнером в том, что у мосива фиксированное число элементов, а в контейнер их можно добавлять на лету.
 
Начинающий
Статус
Оффлайн
Регистрация
27 Дек 2018
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Credits: @@P45H3 Это значит автор? Вы бы хотя бы гуглом пользовались для начала , прежде чем чужое за своё выдавать.
 
///
Пользователь
Статус
Оффлайн
Регистрация
25 Янв 2018
Сообщения
511
Реакции[?]
114
Поинты[?]
0
Credits: @@P45H3 Это значит автор? Вы бы хотя бы гуглом пользовались для начала , прежде чем чужое за своё выдавать.
Я хотел бы промолчать, но отвечу... Посмотри вниз темы!!!
Даже тему не чекнул и пишешь ...
 
Забаненный
Статус
Оффлайн
Регистрация
10 Ноя 2018
Сообщения
91
Реакции[?]
26
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Credits: @@P45H3 Это значит автор? Вы бы хотя бы гуглом пользовались для начала , прежде чем чужое за своё выдавать.
чувак чо ты несешь? он указал автора темы ты предьявляешь хуйню рил
 
Начинающий
Статус
Оффлайн
Регистрация
27 Дек 2018
Сообщения
5
Реакции[?]
0
Поинты[?]
0
чувак чо ты несешь? он указал автора темы ты предьявляешь хуйню рил
Чувак это ты скорее всего.

Будьте добры , администрация или топик пастер темы.
Автора кода добавьте в первый пост "Elias Daler"
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу