void idEditWindow::PostParse() { idWindow::PostParse(); if ( maxChars == 0 ) { maxChars = 10; } if ( sourceFile.Length() ) { void *buffer; fileSystem->ReadFile( sourceFile, &buffer ); text = (char *) buffer; fileSystem->FreeFile( buffer ); } InitCvar(); InitScroller(false); EnsureCursorVisible(); flags |= WIN_CANFOCUS; }
void idListWindow::PostParse() { idWindow::PostParse(); InitScroller(horizontal); idList<int> tabStops; idList<int> tabAligns; if (tabStopStr.Length()) { idParser src(tabStopStr, tabStopStr.Length(), "tabstops", LEXFL_NOFATALERRORS | LEXFL_NOSTRINGCONCAT | LEXFL_NOSTRINGESCAPECHARS); idToken tok; while (src.ReadToken(&tok)) { if (tok == ",") { continue; } tabStops.Append(atoi(tok)); } } if (tabAlignStr.Length()) { idParser src(tabAlignStr, tabAlignStr.Length(), "tabaligns", LEXFL_NOFATALERRORS | LEXFL_NOSTRINGCONCAT | LEXFL_NOSTRINGESCAPECHARS); idToken tok; while (src.ReadToken(&tok)) { if (tok == ",") { continue; } tabAligns.Append(atoi(tok)); } } idList<int> tabVAligns; if (tabVAlignStr.Length()) { idParser src(tabVAlignStr, tabVAlignStr.Length(), "tabvaligns", LEXFL_NOFATALERRORS | LEXFL_NOSTRINGCONCAT | LEXFL_NOSTRINGESCAPECHARS); idToken tok; while (src.ReadToken(&tok)) { if (tok == ",") { continue; } tabVAligns.Append(atoi(tok)); } } idList<int> tabTypes; if (tabTypeStr.Length()) { idParser src(tabTypeStr, tabTypeStr.Length(), "tabtypes", LEXFL_NOFATALERRORS | LEXFL_NOSTRINGCONCAT | LEXFL_NOSTRINGESCAPECHARS); idToken tok; while (src.ReadToken(&tok)) { if (tok == ",") { continue; } tabTypes.Append(atoi(tok)); } } idList<idVec2> tabSizes; if (tabIconSizeStr.Length()) { idParser src(tabIconSizeStr, tabIconSizeStr.Length(), "tabiconsizes", LEXFL_NOFATALERRORS | LEXFL_NOSTRINGCONCAT | LEXFL_NOSTRINGESCAPECHARS); idToken tok; while (src.ReadToken(&tok)) { if (tok == ",") { continue; } idVec2 size; size.x = atoi(tok); src.ReadToken(&tok); //"," src.ReadToken(&tok); size.y = atoi(tok); tabSizes.Append(size); } } idList<float> tabIconVOffsets; if (tabIconVOffsetStr.Length()) { idParser src(tabIconVOffsetStr, tabIconVOffsetStr.Length(), "tabiconvoffsets", LEXFL_NOFATALERRORS | LEXFL_NOSTRINGCONCAT | LEXFL_NOSTRINGESCAPECHARS); idToken tok; while (src.ReadToken(&tok)) { if (tok == ",") { continue; } tabIconVOffsets.Append(atof(tok)); } } int c = tabStops.Num(); bool doAligns = (tabAligns.Num() == tabStops.Num()); for (int i = 0; i < c; i++) { idTabRect r; r.x = tabStops[i]; r.w = (i < c - 1) ? tabStops[i+1] - r.x - tabBorder : -1; r.align = (doAligns) ? tabAligns[i] : 0; if(tabVAligns.Num() > 0) { r.valign = tabVAligns[i]; } else { r.valign = 0; } if(tabTypes.Num() > 0) { r.type = tabTypes[i]; } else { r.type = TAB_TYPE_TEXT; } if(tabSizes.Num() > 0) { r.iconSize = tabSizes[i]; } else { r.iconSize.Zero(); } if(tabIconVOffsets.Num() > 0 ) { r.iconVOffset = tabIconVOffsets[i]; } else { r.iconVOffset = 0; } tabInfo.Append(r); } flags |= WIN_CANFOCUS; }