Я хочу, чтобы мое приложение с графическим интерфейсом печатало динамические данные на экране (координаты мыши и т. Д.) В определенном пользователем формате и с использованием выбранных пользователем переменных. Мне нужно что-то вроде класса, который хранит этот формат (char*
) и все его указатели переменных (int*
, char*
, std::string*
и т. Д.)
Допустим, я хочу, чтобы всплывающая подсказка отображала координаты мыши. Мой класс будет:
class Printer{
private:
char *format;
// std::vector with pointers? Variadic template?
public:
Printer(char *format, ...){
// code
}
};
Пользователь может определить формат с переменными:
int x, y;
Printer p("X (%d), Y (%d)", &x, &y);
Функция обратного вызова мыши обновляет значения x
и y
.
И Printer
сделает:
snprintf(buffer, sizeof(buffer), format, *variables);
После этого буфер содержит обновленные значения x
и y
, и его можно просто передать подсказке.
Как мне этого добиться?