void NCNumberWin::Paint( wal::GC& gc, const crect& paintRect ) { crect rect = ClientRect(); gc.SetFillColor( UiGetColor( uiBackground, 0, 0, 0xFFFFFF ) ); gc.FillRect( rect ); gc.SetTextColor( UiGetColor( uiColor, 0, 0, 0 ) ); gc.Set( GetFont() ); unicode_t c[32]; unicode_t buf[32]; unicode_t* s = buf; int64_t n = _num; bool minus = n < 0; if ( minus ) { n = -n; } int i = 0; for ( ; n > 0; i++, n /= 10 ) { c[i] = char( n % 10 ) + '0'; } if ( minus ) { *s = '-'; s++; } if ( i == 0 ) {*s = '0'; s++; }; for ( i--; i >= 0; i-- ) { *( s++ ) = c[i]; } *s = 0; gc.TextOut( 0, 0, buf ); }
void TBToolTip::Paint(wal::GC &gc, const crect &paintRect) { gc.SetFillColor(UiGetColor(uiBackground, 0,0, 0xFFFFFF)/*GetColor(IC_BG)*/); //0x80FFFF); crect r = ClientRect(); gc.FillRect(r); gc.SetTextColor(UiGetColor(uiColor, 0,0, 0)/*GetColor(IC_TEXT)*/); //gc.TextOutF(0,0,text.ptr()); DrawStaticText(gc, 2, 1, text.ptr(), GetFont(), false); }
void clFileAssociationsListWin::DrawItem( wal::GC& gc, int n, crect rect ) { if ( n < 0 || n >= ( int )m_ItemList->size( ) ) { gc.SetFillColor( UiGetColor( uiBackground, 0, 0, 0xB0B000 ) ); gc.FillRect( rect ); //CCC return; } UiCondList ucl; if ( ( n % 2 ) == 0 ) { ucl.Set( uiOdd, true ); } if ( n == this->GetCurrent() ) { ucl.Set( uiCurrentItem, true ); } unsigned bg = UiGetColor( uiBackground, uiItem, &ucl, 0xB0B000 ); unsigned color = UiGetColor( uiColor, uiItem, &ucl, 0 ); unsigned fcColor = UiGetColor( uiFcColor, uiItem, &ucl, 0xFFFF ); gc.SetFillColor( bg ); gc.FillRect( rect ); const clNCFileAssociation* p = &m_ItemList->at( n ); if ( p ) { gc.Set( GetFont() ); gc.SetTextColor( color ); gc.TextOutF( rect.left + 10, rect.top + 1, p->GetMask().data() ); gc.SetTextColor( fcColor ); gc.TextOutF( rect.left + 10, rect.top + 1, p->GetMask().data(), 1 ); } }
void NCDialog::Paint( wal::GC& gc, const crect& paintRect ) { int bcolor = UiGetColor( uiBackground, 0, 0, 0x808080 ); gc.SetFillColor( bcolor ); gc.FillRect( _borderRect ); Draw3DButtonW2( gc, _borderRect, bcolor, true ); crect rect = _frameRect; Draw3DButtonW2( gc, _frameRect, bcolor, false ); rect.Dec(); rect.Dec(); DrawBorder( gc, rect, 0 ); }
void CharsetListWin::DrawItem(wal::GC &gc, int n, crect rect) { if (cList && n >= 0 && n < cCount) { bool frame = false; UiCondList ucl; if ((n % 2)==0) ucl.Set(uiOdd, true); if (n == this->GetCurrent()) ucl.Set(uiCurrentItem, true); unsigned bg = UiGetColor(uiBackground, uiItem, &ucl, 0xFFFFFF); unsigned textColor = UiGetColor(uiColor, uiItem, &ucl, 0); unsigned frameColor = UiGetColor(uiFrameColor, uiItem, &ucl, 0);; if (n == this->GetCurrent()) frame = true; gc.SetFillColor(bg); gc.FillRect(rect); gc.Set(GetFont()); int x = 0; const unicode_t *txt = 0; gc.SetTextColor(textColor); gc.TextOutF(rect.left+10, rect.top+2, utf8_to_unicode(cList[n]->name).ptr()); gc.TextOutF(rect.left+10+15*fontW, rect.top+2, utf8_to_unicode(cList[n]->comment).ptr() ); } else { gc.SetFillColor(UiGetColor(uiBackground, uiItem, 0, 0xFFFFFF)); gc.FillRect(rect); } }
void OperFileNameWin::Paint(wal::GC &gc, const crect &paintRect) { crect rect = ClientRect(); gc.SetFillColor(UiGetColor(uiBackground,0,0,0xFFFFFF)); gc.FillRect(rect); gc.SetTextColor(UiGetColor(uiColor,0,0,0)); gc.Set(GetFont()); unicode_t *p = text.ptr(); if (p) { int l = unicode_strlen(p); if (l > _ccount) { p += l - _ccount; } DrawStaticText(gc,0,0,p); } }
void FillHorisontalRect(wal::GC &gc, crect rect, unsigned a, unsigned b) { unsigned ar = a & 0xFF, ag = (a>>8) & 0xFF, ab = (a>>16) & 0xFF, br = b & 0xFF, bg = (b>>8) & 0xFF, bb = (b>>16) & 0xFF; int h = rect.Height(); int x1 = rect.left, x2 = rect.right; if (h<=0 || x1>=x2) return; for (int i = 0; i<h; i++) { unsigned color = (MidAB(ar, br, i, h) & 0xFF) + ((MidAB(ag, bg, i, h) & 0xFF)<<8) + ((MidAB(ab, bb, i, h)&0xFF)<<16); gc.SetLine(color); gc.MoveTo(x1,rect.top+i); gc.LineTo(x2,rect.top+i); } }
void ToolBar::DrawNode( wal::GC& gc, Node* pNode, int state ) { if ( !pNode ) { return; } int W = pNode->rect.Width(); int H = pNode->rect.Height(); if ( W <= 0 || H <= 0 ) { return; } int x = pNode->rect.left + 1 + XSPACE; int y = pNode->rect.top + 1 + YSPACE; unsigned bgColor = UiGetColor( uiBackground, uiItem, 0, 0x808080 ); //GetColor(0); unsigned frameColor = ColorTone( bgColor, -150 ); if ( state == DRAW_PRESSED ) { bgColor = ColorTone( bgColor, -50 ); } gc.SetFillColor( bgColor ); { crect r = pNode->rect; r.Dec(); gc.FillRect( r ); } if ( pNode->icon.ptr() && pNode->icon->Valid() ) { pNode->icon->DrawF( gc, x, y ); x += _iconSize; } if ( state != DRAW_NORMAL ) { DrawBorder( gc, pNode->rect, frameColor ); } }
void ToolBar::Paint( wal::GC& gc, const crect& paintRect ) { crect cr = ClientRect(); crect rect = cr; unsigned colorBg = UiGetColor( uiBackground, 0, 0, 0x808080 ); //GetColor(0); unsigned splitColor1 = ColorTone( colorBg, -70 ); unsigned splitColor2 = ColorTone( colorBg, 70 ); if ( g_WcmConfig.styleShow3DUI ) { Draw3DButtonW2( gc, rect, colorBg, true ); rect.Dec(); rect.Dec(); } gc.SetFillColor( colorBg ); gc.FillRect( rect ); gc.Set( GetFont() ); int x = 2; for ( size_t i = 0; i < _list.size(); i++ ) { Node* p = _list[i].ptr(); if ( p ) { DrawNode( gc, p, _pressed == p ? DRAW_PRESSED : DRAW_NORMAL ); x += p->rect.Width(); } else { gc.SetFillColor( splitColor1 ); int x1 = x + SPLITTER_WIDTH / 2; gc.FillRect( crect( x1, rect.top, x1 + 1, rect.bottom ) ); gc.SetFillColor( splitColor2 ); gc.FillRect( crect( x1 + 2, rect.top, x1 + 2, rect.bottom ) ); x += SPLITTER_WIDTH; } } return; }
void PathListWin::DrawItem(wal::GC& gc, int n, crect rect) { const PathList::Data* curr = m_dataList.GetData(n); if (curr) { std::vector<unicode_t> text = GetItemText( curr ); UiCondList ucl; if ((n % 2) == 0) { ucl.Set(uiOdd, true); } if (n == this->GetCurrent()) { ucl.Set(uiCurrentItem, true); } unsigned bg = UiGetColor(uiBackground, uiItem, &ucl, 0xB0B000); unsigned color = UiGetColor(uiColor, uiItem, &ucl, 0); // unsigned fcColor = UiGetColor(uiFcColor, uiItem, &ucl, 0xFFFF); gc.SetFillColor(bg); gc.FillRect(rect); gc.Set(GetFont()); gc.SetTextColor(color); gc.TextOutF( rect.left + 10, rect.top + 1, text.data() ); //gc.SetTextColor(fcColor); //gc.TextOutF(rect.left + 10, rect.top + 1, name, 1); } else { gc.SetFillColor(UiGetColor(uiBackground, 0, 0, 0xB0B000)); gc.FillRect(rect); } }
void NCShadowWin::Paint( wal::GC& gc, const crect& paintRect ) { crect cr = ClientRect(); gc.SetFillColor( 0 ); //::g_WcmConfig.whiteStyle ? 0x404040 : 0x01); gc.FillRect( cr ); }
void clSelectDriveDlgMenu::Paint( wal::GC& gc, const crect& paintRect ) { cfont* font = GetFont(); gc.Set( font ); int y = 0; int bgColor = UiGetColor( uiBackground, 0, 0, 0xB0B000 ); int count = _data->Count(); int Splitters = 0; int SplitterTop = 0; int SplitterBottom = 0; for ( int i = 0; i < count; i++ ) { if ( _data->list[i].cmd == 0 ) { gc.SetFillColor( bgColor ); gc.FillRect( crect( 0, y, _width, y + _splitterH ) ); crect rect( 0, y + 1, 0 + _width, y + 2 ); gc.SetFillColor( ColorTone( bgColor, -150 ) ); gc.FillRect( rect ); rect.top += 1; rect.bottom += 1; gc.SetFillColor( ColorTone( bgColor, +50 ) ); gc.FillRect( rect ); y += _splitterH; Splitters++; if ( Splitters == 1 ) { SplitterTop = y; } if ( Splitters == 2 ) { SplitterBottom = y - _splitterH; } } else { UiCondList ucl; if ( i == _current ) { ucl.Set( uiCurrentItem, true ); } unsigned bg = UiGetColor( uiBackground, uiItem, &ucl, 0xFFFFFF ); unsigned textColor = UiGetColor( uiColor, uiItem, &ucl, 0 ); unsigned fcColor = UiGetColor( uiFcColor, uiItem, &ucl, 0xFF ); unsigned commentColor = UiGetColor( uiCommentColor, uiItem, &ucl, 0 ); gc.SetFillColor( bg ); gc.FillRect( crect( 0, y, _width, y + _itemH ) ); cicon icon; if ( _data->list[i].icon >= 0 ) { icon.Load( _data->list[i].icon, 16, 16 ); } else { icon.Load( _data->list[i].cmd, 16, 16 ); } gc.DrawIcon( 0, y, &icon ); gc.SetTextColor( textColor ); int x = 16 + 5; const unicode_t* name = _data->list[i].name.data(); const unicode_t* comment1 = _data->list[i].comment1.data(); const unicode_t* comment2 = _data->list[i].comment2.data(); if ( name ) { gc.TextOutF( x, y, name ); gc.SetTextColor( fcColor ); gc.TextOutF( x, y, name, 1 ); } if ( comment1 ) { gc.SetTextColor( commentColor ); gc.TextOutF( x + _nameW + 5, y, comment1 ); } if ( comment2 ) { gc.SetTextColor( commentColor ); gc.TextOutF( x + _nameW + 5 + _comment1W + 30, y, comment2 ); } y += _itemH; } } if ( _comment2W && SplitterTop && SplitterBottom ) { int cx = _nameW + 5 + _comment1W + 30; gc.SetFillColor( ColorTone( bgColor, -150 ) ); gc.FillRect( crect( cx, SplitterTop, cx + _splitterW, SplitterBottom ) ); } }
void Win32CompatibleBitmap::Put(wal::GC &gc, int src_x, int src_y, int dest_x, int dest_y, int w, int h) { if (!handle) return; int right = src_x + w; int bottom = src_y + h; if (src_x<0) src_x = 0; if (src_y<0) src_y = 0; if (right > _w) right=_w; if (bottom > _h) bottom = _h; w = right - src_x; h = bottom - src_y; if (w<=0 || h<=0) return; HDC dc = CreateCompatibleDC(gc.W32Handle()); if (!dc) return; HGDIOBJ old = SelectObject(dc, handle); if (mask.ptr()) { crect r(0,-1,0,-1); char *m = mask.ptr(); for (int y = src_y; y < bottom; y++, m += _w) { int x = src_x; while (x < right) { while (x<right && !m[x]) x++; if (x < right) { int x1 = x; while (x < right && m[x]) x++; if (r.bottom == y && r.left == x1 && r.right == x) { r.bottom++; } else { if (!r.IsEmpty()) { BitBlt(gc.W32Handle(),dest_x + r.left, dest_y + r.top, r.Width(), r.Height(), dc, r.left, r.top, SRCCOPY); // XPutImage(display, gc.GetXDrawable(), gc.XHandle(), &im, r.left, r.top, // dest_x + r.left, dest_y + r.top, r.Width(), r.Height()); } r.Set(x1, y, x, y+1); } } } } if (!r.IsEmpty()) { BitBlt(gc.W32Handle(),dest_x + r.left, dest_y + r.top, r.Width(), r.Height(), dc, r.left, r.top, SRCCOPY); //XPutImage(display, gc.GetXDrawable(), gc.XHandle(), &im, r.left, r.top, // dest_x + r.left, dest_y + r.top, r.Width(), r.Height()); } } else { BitBlt(gc.W32Handle(),dest_x, dest_y, w, h, dc, src_x, src_y, SRCCOPY); //XPutImage(display, gc.GetXDrawable(), gc.XHandle(), &im, src_x, src_y, dest_x, dest_y, w, h); } ::SelectObject(dc, old); DeleteDC(dc); }