void SearchResults::addItem(int pos, bool progress) { int colPos[colCount]; getColPos(colPos); int id = ListFrame::addItem(items[pos].data.name, getApp()->getImageLibrary()->getListIndex("IconReplay"), pos); if (colPos[colDate] >= 0 && items[pos].data.ftime) setItemText(id, colPos[colDate], format_systime(items[pos].data.ftime, "%c")); if (colPos[colSize] >= 0) setItemText(id, colPos[colSize], String::format("%d KB", (items[pos].data.size + 1023) / 1024)); if (colPos[colName] >= 0) setItemText(id, colPos[colName], items[pos].data.gameName); if (colPos[colLineup] >= 0) setItemText(id, colPos[colLineup], items[pos].data.lineup); if (colPos[colLength] >= 0) setItemText(id, colPos[colLength], format_time(items[pos].data.gameLength)); if (colPos[colMode] >= 0) setItemText(id, colPos[colMode], items[pos].data.gameMode); if (progress) { for (int i = 0; i < colCount; i++) if (colPos[i] >= 0 && cfg.colWidth[i] < 0) setColumnWidth(colPos[i], cfg.colWidth[i]); } }
void Editor::paint() { PAINTSTRUCT ps; HDC hPaintDC = BeginPaint(hWnd, &ps); if (hDC == NULL) hDC = CreateCompatibleDC(hPaintDC); if (hBitmap == NULL) { RECT rc; GetClientRect(hWnd, &rc); if (rc.right < 10) rc.right = 10; if (rc.bottom < 10) rc.bottom = 10; hBitmap = CreateCompatibleBitmap(hPaintDC, rc.right, rc.bottom); SelectObject(hDC, hBitmap); } Painter p(this, hDC); SetBkMode(hDC, OPAQUE); bool activeWnd = (GetFocus() == hWnd); if (settings->bpOffset) { SetBkColor(hDC, 0xF0F0F0); p.rc.top = ps.rcPaint.top; p.rc.bottom = ps.rcPaint.bottom; p.rc.left = -scrollPos.x * chSize.cx; p.rc.right = p.rc.left + settings->bpOffset; ExtTextOut(hDC, 0, 0, ETO_OPAQUE, &p.rc, NULL, 0, NULL); } p.rc.top = ps.rcPaint.top; p.rc.bottom = p.rc.top; int absOffset = 0; for (int y = 0; y < lines.length(); y++) { p.init(y, absOffset); if (p.rc.top > ps.rcPaint.bottom) break; if (p.rc.bottom >= ps.rcPaint.top) { SelectObject(hDC, hFont); SetBkColor(hDC, settings->bgcolor); if (settings->lineNumbers.margin + settings->lineNumbers.fields) { p.rc.left = settings->bpOffset - scrollPos.x * chSize.cx; p.rc.right = p.rc.left + LeftMargin(); ExtTextOut(hDC, 0, 0, ETO_OPAQUE, &p.rc, NULL, 0, NULL); } if (settings->lineNumbers.fields) { p.rc.left = settings->bpOffset - scrollPos.x * chSize.cx; p.rc.right = settings->bpOffset + (settings->lineNumbers.fields - scrollPos.x) * chSize.cx; WideString lnum; if (settings->mode == 0) lnum = WideString(y + 1); else if (lines[y].timestamp) lnum = WideString(format_systime(lines[y].timestamp, "%H:%M:%S")); SetTextColor(hDC, settings->colors.line); DrawText(hDC, lnum.c_str(), lnum.length(), &p.rc, DT_RIGHT); } if (settings->mode == 0) { int prev = 0; do { p.next(); SelectObject(hDC, hFont); if (p.lexemStart > prev) p.drawchunk(prev, p.lexemStart, 0); if (p.lexemStart < p.lexemEnd) { //if (p.lexemType == Painter::tFocusBracket || p.lexemType == Painter::tFocusKeyword) // SelectObject(hDC, hFontBf); p.drawchunk(p.lexemStart, p.lexemEnd, p.lexemType); } prev = p.lexemEnd; } while (p.lexemType); } else { if (lines[y].ctx == Painter::tKeyword) SelectObject(hDC, hFontIt); p.drawchunk(0, lines[y].text.length(), lines[y].ctx); } if (p.rc.right < ps.rcPaint.right) { SetBkColor(hDC, settings->bgcolor); p.rc.left = p.rc.right; p.rc.right = ps.rcPaint.right; ExtTextOut(hDC, 0, 0, ETO_OPAQUE, &p.rc, NULL, 0, NULL); } if (settings->mode == 0) { if (lines[y].breakpoint > 0) DrawIconEx(hDC, -scrollPos.x * chSize.cx, p.rc.top, icons[iBreakpoint], 16, 16, 0, NULL, DI_IMAGE | DI_MASK); if (y == currentLine) DrawIconEx(hDC, -scrollPos.x * chSize.cx, p.rc.top, icons[iCurline], 16, 16, 0, NULL, DI_IMAGE | DI_MASK); } } absOffset += lines[y].text.length() + 1; } if (p.rc.bottom < ps.rcPaint.bottom) { SetBkColor(hDC, settings->bgcolor); p.rc.top = p.rc.bottom; p.rc.bottom = ps.rcPaint.bottom; p.rc.left = settings->bpOffset - scrollPos.x * chSize.cx; p.rc.right = ps.rcPaint.right; ExtTextOut(hDC, 0, 0, ETO_OPAQUE, &p.rc, NULL, 0, NULL); } BitBlt(hPaintDC, ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right - ps.rcPaint.left, ps.rcPaint.bottom - ps.rcPaint.top, hDC, ps.rcPaint.left, ps.rcPaint.top, SRCCOPY); EndPaint(hWnd, &ps); }