25
25
///////////////////////////////////////////////////////////////////////////////
26
26
// Makros / Defines
27
27
#if defined _WIN32 && defined _DEBUG && defined _MSC_VER
28
#define new new(_NORMAL_BLOCK, THIS_FILE, __LINE__)
30
static char THIS_FILE[] = __FILE__;
28
#define new new(_NORMAL_BLOCK, THIS_FILE, __LINE__)
30
static char THIS_FILE[] = __FILE__;
33
33
///////////////////////////////////////////////////////////////////////////////
50
ctrlVarText::ctrlVarText(Window *parent,
54
const std::string& formatstr,
57
glArchivItem_Font *font,
60
: ctrlText(parent, id, x, y, formatstr, color, format, font)
50
ctrlVarText::ctrlVarText(Window* parent,
54
const std::string& formatstr,
57
glArchivItem_Font* font,
60
: ctrlText(parent, id, x, y, formatstr, color, format, font)
62
// Pointerliste einlesen
65
// Pointerliste anlegen
66
vars = new void*[count];
62
// Pointerliste einlesen
65
// Pointerliste anlegen
66
vars = new void*[count];
69
for(unsigned int i = 0; i < count; ++i)
70
vars[i] = va_arg(liste, void*);
69
for(unsigned int i = 0; i < count; ++i)
70
vars[i] = va_arg(liste, void*);
74
74
///////////////////////////////////////////////////////////////////////////////
94
94
bool ctrlVarText::Draw_(void)
98
for(unsigned int i = 0, j = 0, k = 0; i < text.length() && j < 1024; ++i)
109
snprintf(temp, 1024, (text[i]=='d') ? "%d" : "%u", *(int*)vars[k++]);
110
for(unsigned int x = 0; x < strlen(temp); ++x)
111
buffer[j++] = temp[x];
115
snprintf(temp, 1024, "%s", (char*)vars[k++]);
116
for(unsigned int x = 0; x < strlen(temp); ++x)
117
buffer[j++] = temp[x];
121
buffer[j++] = text[i-1];
122
buffer[j++] = text[i];
127
buffer[j++] = text[i];
130
// variablen Inhalt erzeugen
131
//vsnprintf(buffer, 1024, text, *(va_list*)&vars);
133
// letzte byte nullen (safety, vsnprintf schreibt bei zu gro�em string kein null-terminator)
137
font->Draw( GetX(), GetY(), buffer, format, color);
98
for(unsigned int i = 0, j = 0, k = 0; i < text.length() && j < 1024; ++i)
109
snprintf(temp, 1024, (text[i] == 'd') ? "%d" : "%u", *(int*)vars[k++]);
110
for(unsigned int x = 0; x < strlen(temp); ++x)
111
buffer[j++] = temp[x];
115
snprintf(temp, 1024, "%s", (char*)vars[k++]);
116
for(unsigned int x = 0; x < strlen(temp); ++x)
117
buffer[j++] = temp[x];
121
buffer[j++] = text[i - 1];
122
buffer[j++] = text[i];
127
buffer[j++] = text[i];
130
// variablen Inhalt erzeugen
131
//vsnprintf(buffer, 1024, text, *(va_list*)&vars);
133
// letzte byte nullen (safety, vsnprintf schreibt bei zu gro�em string kein null-terminator)
137
font->Draw( GetX(), GetY(), buffer, format, color);