コード例 #1
0
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]);
  }
}
コード例 #2
0
ファイル: epainter.cpp プロジェクト: Soulflare3/ilua
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);
}