void onTrackStart(const QXmlAttributes&) { m_albumInfo.m_vTracks.push_back(TrackInfo()); char a [10]; sprintf(a, "%d", cSize(m_albumInfo.m_vTracks)); m_albumInfo.m_vTracks.back().m_strPos = a; }
BOOL CTrueColorToolBar::SetTrueColorToolBar(UINT uToolBarType, UINT uToolBar, int nBtnWidth) { CImageList cImageList; CBitmap cBitmap; BITMAP bmBitmap; if (!cBitmap.Attach(LoadImage(AfxGetResourceHandle(), MAKEINTRESOURCE(uToolBar), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE|LR_CREATEDIBSECTION)) || !cBitmap.GetBitmap(&bmBitmap)) return FALSE; CSize cSize(bmBitmap.bmWidth, bmBitmap.bmHeight); int nNbBtn = cSize.cx/nBtnWidth; RGBTRIPLE* rgb = (RGBTRIPLE*)(bmBitmap.bmBits); COLORREF rgbMask = RGB(rgb[0].rgbtRed, rgb[0].rgbtGreen, rgb[0].rgbtBlue); if (!cImageList.Create(nBtnWidth, cSize.cy, ILC_COLOR24|ILC_MASK, nNbBtn, 0)) return FALSE; if (cImageList.Add(&cBitmap, rgbMask) == -1) return FALSE; SendMessage(uToolBarType, 0, (LPARAM)cImageList.m_hImageList); cImageList.Detach(); cBitmap.Detach(); return TRUE; }
cForm::cForm( s32 x, s32 y, u32 w, u32 h, cWindow * parent, const std::string & text ) :cWindow( parent, text ) //_renderDesc(NULL) { _size = cSize( w, h ); _position = cPoint( x, y ); _modalRet = -1; }
QSize QPixmap::size() const { kdDebug(10) << "QPixmap::" << __FUNCTION__ << "()" << endl; if ( d->m_pcBitmap != NULL ) { BRect cBounds = d->m_pcBitmap->Bounds(); QSize cSize( cBounds.Width() + 1, cBounds.Height() + 1 ); return( cSize ); } else { return( QSize( 0, 0 ) ); } }
string getVal(const Mp3Handler* pHndl, bool bAcceptEmpty) const { string strRes; for (int i = 0, n = cSize(m_vpPatterns); i < n; ++i) { string s (m_vpPatterns[i]->getVal(pHndl)); if (s.empty() && !bAcceptEmpty) { return s; } strRes += s; } return strRes; }
void onMetaEnd() { m_albumInfo.m_vpImages.resize(m_albumInfo.m_vstrImageNames.size()); m_albumInfo.m_vstrImageInfo.resize(m_albumInfo.m_vstrImageNames.size()); if (m_albumInfo.m_strAmazonLink.empty() && !m_albumInfo.m_strAsin.empty()) { m_albumInfo.m_strAmazonLink = "http://www.amazon.com/gp/product/" + m_albumInfo.m_strAsin; } for (int i = 0, n = cSize(m_albumInfo.m_vTracks); i < n; ++i) { TrackInfo& t (m_albumInfo.m_vTracks[i]); addList(t.m_strArtist, m_albumInfo.m_strArtist); } }
void EXTreeCtrl::InitTree( IXTreeItem* pRoot , int nIconsBitmap ) { SetRootMember(pRoot); if(m_pIconImageList==NULL) { if( nIconsBitmap!=0 ) { //-------------- int nBtnWidth = 16; m_pIconImageList = new CImageList; CBitmap cBitmap; BITMAP bmBitmap; HANDLE hImage = LoadImage( AfxGetResourceHandle() , MAKEINTRESOURCE(nIconsBitmap) , IMAGE_BITMAP , 0 , 0 , LR_DEFAULTSIZE | LR_CREATEDIBSECTION ); if( cBitmap.Attach(hImage) && cBitmap.GetBitmap(&bmBitmap) ) { CSize cSize(bmBitmap.bmWidth, bmBitmap.bmHeight); int nNbBtn = cSize.cx/nBtnWidth; RGBTRIPLE* rgb = (RGBTRIPLE*)(bmBitmap.bmBits); COLORREF rgbMask = RGB(255,0,255); //RGB(rgb[0].rgbtRed, rgb[0].rgbtGreen, rgb[0].rgbtBlue); if (!m_pIconImageList->Create(nBtnWidth, cSize.cy, ILC_COLOR24|ILC_MASK, nNbBtn, 0)) return; if (m_pIconImageList->Add(&cBitmap, rgbMask) == -1) return; // SendMessage(uToolBarType, 0, (LPARAM)m_pIconImageList->m_hImageList); // m_pIconImageList->Detach(); cBitmap.Detach(); SetImageList( m_pIconImageList, TVSIL_NORMAL ); } //-------------- // m_pIconImageList = new CImageList; // m_pIconImageList->Create( nIconsBitmap , 16 , 1 , RGB(255,255,255) ); // SetImageList( m_pIconImageList, TVSIL_NORMAL ); //-------------- } } RefreshSubItems(TVI_ROOT); }
cPopMenu::cPopMenu( s32 x, s32 y, u32 w, u32 h, cWindow * parent, const std::string & text ) : cWindow( parent, text ) { _size = cSize( w, h ); _position = cPoint( x, y ); _selectedItemIndex = 0; _itemHeight = 0; _itemWidth = 0; _barLeft = 2; _textColor = uiSettings().popMenuTextColor; _textHighLightColor = uiSettings().popMenuTextHighLightColor; _barColor = uiSettings().popMenuBarColor; _renderDesc = new cBitmapDesc(); _renderDesc->setBltMode( BM_MASKBLT ); _skipTouch = false; }
void cTrueColorDemo::Action(void) { cPixmap *FadeInPixmap = NULL; cPixmap *FadeOutPixmap = NULL; cPixmap *MovePixmap = NULL; cPixmap *NextPixmap = NULL; cPixmap *TilePixmap = NULL; cPixmap *ScrollPixmap = NULL; cPixmap *AnimPixmap = NULL; int FrameTime = 40; // ms int FadeTime = 1000; // ms int MoveTime = 4000; // ms int TileTime = 6000; // ms int ScrollWaitTime = 1000; // ms int ScrollLineTime = 200; // ms int ScrollTotalTime = 8000; // ms uint64_t Start = 0; uint64_t ScrollStartTime = 0; int ScrollLineNumber = 0; cPoint MoveStart, MoveEnd; cPoint TileStart, TileEnd; cPoint ScrollStart, ScrollEnd; int Line = osd->Height() / 20; int StartLine = Line; cPoint OldCursor; int State = 0; while (Running()) { cPixmap::Lock(); bool Animated = false; uint64_t Now = cTimeMs::Now(); if (FadeInPixmap) { double t = std::min(double(Now - Start) / FadeTime, 1.0); int Alpha = t * ALPHA_OPAQUE; FadeInPixmap->SetAlpha(Alpha); if (t >= 1) FadeInPixmap = NULL; Animated = true; } if (FadeOutPixmap) { double t = std::min(double(Now - Start) / FadeTime, 1.0); int Alpha = ALPHA_OPAQUE - t * ALPHA_OPAQUE; FadeOutPixmap->SetAlpha(Alpha); if (t >= 1) FadeOutPixmap = NULL; Animated = true; } if (MovePixmap) { double t = std::min(double(Now - Start) / MoveTime, 1.0); int x = MoveStart.X() + t * (MoveEnd.X() - MoveStart.X()); int y = MoveStart.Y() + t * (MoveEnd.Y() - MoveStart.Y()); cRect r = MovePixmap->ViewPort(); r.SetPoint(x, y); MovePixmap->SetViewPort(r); if (t >= 1) MovePixmap = NULL; Animated = true; } if (TilePixmap) { double t = std::min(double(Now - Start) / TileTime, 1.0); int x = TileStart.X() + t * (TileEnd.X() - TileStart.X()); int y = TileStart.Y() + t * (TileEnd.Y() - TileStart.Y()); TilePixmap->SetDrawPortPoint(cPoint(x, y)); if (t >= 1) { destroyablePixmap = TilePixmap; TilePixmap = NULL; } Animated = true; } if (ScrollPixmap) { if (int(Now - Start) > ScrollWaitTime) { if (ScrollStartTime) { double t = std::min(double(Now - ScrollStartTime) / ScrollLineTime, 1.0); int x = ScrollStart.X() + t * (ScrollEnd.X() - ScrollStart.X()); int y = ScrollStart.Y() + t * (ScrollEnd.Y() - ScrollStart.Y()); ScrollPixmap->SetDrawPortPoint(cPoint(x, y)); if (t >= 1) { if (int(Now - Start) < ScrollTotalTime) { cRect r = ScrollPixmap->DrawPort(); r.SetPoint(-r.X(), -r.Y()); ScrollPixmap->Pan(cPoint(0, 0), r); const cFont *Font = cFont::GetFont(fontOsd); cString s = cString::sprintf("Line %d", ++ScrollLineNumber); ScrollPixmap->DrawRectangle(cRect(0, ScrollPixmap->ViewPort().Height(), ScrollPixmap->DrawPort().Width(), ScrollPixmap->DrawPort().Height()), clrTransparent); ScrollPixmap->DrawText(cPoint(0, ScrollPixmap->ViewPort().Height()), s, clrYellow, clrTransparent, Font); ScrollStartTime = Now; } else { FadeOutPixmap = ScrollPixmap; ScrollPixmap = NULL; Start = cTimeMs::Now(); } } } else ScrollStartTime = Now; } Animated = true; } if (AnimPixmap) { int d = AnimPixmap->ViewPort().Height(); if (clockwise) d = -d; cPoint p = AnimPixmap->DrawPort().Point().Shifted(0, d); if (clockwise && p.Y() <= -AnimPixmap->DrawPort().Height()) p.SetY(0); else if (!clockwise && p.Y() > 0) p.SetY(-(AnimPixmap->DrawPort().Height() - AnimPixmap->ViewPort().Height())); AnimPixmap->SetDrawPortPoint(p); } if (!Animated) { switch (State) { case 0: { if (cFont *Font = cFont::CreateFont(DefaultFontOsd, osd->Height() / 10)) { FadeInPixmap = CreateTextPixmap("VDR", Line, 1, clrYellow, clrTransparent, Font); if (FadeInPixmap) Line += FadeInPixmap->DrawPort().Height(); delete Font; Start = cTimeMs::Now(); } State++; } break; case 1: { FadeInPixmap = CreateTextPixmap("Video Disk Recorder", Line, 3, clrYellow, clrTransparent); if (FadeInPixmap) Line += FadeInPixmap->DrawPort().Height(); Start = cTimeMs::Now(); State++; } break; case 2: { FadeInPixmap = CreateTextPixmap("True Color OSD Demo", Line, 1, clrYellow, clrTransparent); if (FadeInPixmap) Line += FadeInPixmap->DrawPort().Height(); Start = cTimeMs::Now(); State++; } break; case 3: { if (cFont *Font = cFont::CreateFont(DefaultFontOsd, osd->Height() / 10)) { NextPixmap = CreateTextPixmap("Millions of colors", Line, 1, clrYellow, clrTransparent, Font); delete Font; if (NextPixmap) { FadeInPixmap = NextPixmap; Start = cTimeMs::Now(); StartLine = Line; Line += NextPixmap->DrawPort().Height(); } } State++; } break; case 4: { Line += osd->Height() / 10; int w = osd->Width() / 2; int h = osd->Height() - Line - osd->Height() / 10; cImage Image(cSize(w, h)); for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) Image.SetPixel(cPoint(x, y), HsvToColor(360 * double(x) / w, 1 - double(y) / h, 1) | 0xDF000000); } if (cPixmap *Pixmap = osd->CreatePixmap(2, cRect((osd->Width() - w) / 2, Line, w, h))) { Pixmap->DrawImage(cPoint(0, 0), Image); toggleablePixmap = Pixmap; } State++; } break; case 5: { if (NextPixmap) { MovePixmap = NextPixmap; MoveStart = MovePixmap->ViewPort().Point(); MoveEnd.Set(osd->Width() - MovePixmap->ViewPort().Width(), osd->Height() - MovePixmap->ViewPort().Height()); Start = cTimeMs::Now(); } State++; } break; case 6: { TilePixmap = CreateTextPixmap("Tiled Pixmaps", StartLine, 1, clrRed, clrWhite); if (TilePixmap) { TilePixmap->SetViewPort(TilePixmap->ViewPort().Grown(TilePixmap->DrawPort().Width(), TilePixmap->DrawPort().Height())); TilePixmap->SetAlpha(200); TilePixmap->SetTile(true); TileStart = TilePixmap->DrawPort().Point(); TileEnd = TileStart.Shifted(TilePixmap->ViewPort().Width(), TilePixmap->ViewPort().Height()); MovePixmap = TilePixmap; MoveStart = MovePixmap->ViewPort().Point(); MoveEnd.Set(10, osd->Height() - MovePixmap->ViewPort().Height() - 10); Start = cTimeMs::Now(); } State++; } break; case 7: { const cFont *Font = cFont::GetFont(fontOsd); const char *Text = "Scrolling Pixmaps"; int w = Font->Width(Text); int h = Font->Height(); if (cPixmap *Pixmap = osd->CreatePixmap(2, cRect((osd->Width() - w) / 2, StartLine, w, 2 * h), cRect(0, 0, w, 3 * h))) { Pixmap->Clear(); Pixmap->DrawText(cPoint(0, 0), Text, clrYellow, clrTransparent, Font); cString s = cString::sprintf("Line %d", ++ScrollLineNumber); Pixmap->DrawText(cPoint(0, Pixmap->ViewPort().Height()), s, clrYellow, clrTransparent, Font); ScrollPixmap = Pixmap; ScrollStart.Set(0, 0); ScrollEnd.Set(0, -h); Start = cTimeMs::Now(); } State++; } break; case 8: { const cFont *Font = cFont::GetFont(fontSml); const char *Text = "Animation"; const int Size = Font->Width(Text) + 10; const int NumDots = 12; const int AnimFrames = NumDots; // Temporarily using pixmap layer 0 to have the text alpha blended: AnimPixmap = osd->CreatePixmap(0, cRect((osd->Width() - Size) / 2, StartLine, Size, Size), cRect(0, 0, Size, Size * AnimFrames)); if (AnimPixmap) { AnimPixmap->SetAlpha(0); AnimPixmap->Clear(); const int Diameter = Size / 5; int xc = Size / 2 - Diameter / 2; for (int Frame = 0; Frame < AnimFrames; Frame++) { AnimPixmap->DrawEllipse(cRect(0, Frame * Size, Size, Size), 0xDDFFFFFF); int yc = Frame * Size + Size / 2 - Diameter / 2; int Color = 0xFF; int Delta = Color / NumDots / 3; for (int a = 0; a < NumDots; a++) { double t = 2 * M_PI * (Frame + a) / NumDots; int x = xc + ((Size - Diameter) / 2 - 5) * cos(t); int y = yc + ((Size - Diameter) / 2 - 5) * sin(t); AnimPixmap->DrawEllipse(cRect(x, y, Diameter, Diameter), ArgbToColor(0xFF, Color, Color, Color)); Color -= Delta; } AnimPixmap->DrawText(cPoint(0, Frame * Size), Text, clrBlack, clrTransparent, cFont::GetFont(fontSml), Size, Size, taCenter); } AnimPixmap->SetLayer(3); // now setting the actual pixmap layer FadeInPixmap = AnimPixmap; LOCK_THREAD; OldCursor = cursor = AnimPixmap->ViewPort().Point(); cursorLimits.Set(0, 0, osd->Width(), osd->Height()); cursorLimits.SetRight(cursorLimits.Right() - Size); cursorLimits.SetBottom(cursorLimits.Bottom() - Size); cursorLimits.Grow(-10, -10); Start = cTimeMs::Now(); } State++; } break; case 9: { LOCK_THREAD; if (cursor != OldCursor) { MovePixmap = AnimPixmap; MoveStart = MovePixmap->ViewPort().Point(); MoveEnd = OldCursor = cursor; MoveTime = 500; Start = cTimeMs::Now(); } } break; } } osd->Flush(); cPixmap::Unlock(); int Delta = cTimeMs::Now() - Now; if (Delta < FrameTime) cCondWait::SleepMs(FrameTime - Delta); } }
void RecalcSizesL() { CALLSTACKITEM_N_NOSTATS(_CL("CJuikBoxSizer"), _CL("RecalcSizesL")); if ( ! iChildren.Count() ) return; // Calculate delta = extra space (distributed between proportional children) TInt delta = 0; if ( iTotalStretch ) { if ( iOrient == Juik::EHorizontal ) delta = iSize.iWidth - iFixedsSize.iWidth; else delta = iSize.iHeight - iFixedsSize.iHeight; } // TPoint currentPos = iPos; for (TInt i=0; i < iChildren.Count(); i++) { CJuikSizerItem* child = iChildren[i]; if ( iOrient == Juik::EVertical ) { // Calculate child's height // c-prefix means child's TSize cMinSz = child->MinSize(); TInt cHeight = 0; if ( child->Proportion() ) cHeight = (delta * child->Proportion()) / iTotalStretch; else cHeight = cMinSz.iHeight; TPoint cPos( currentPos ); TSize cSize( cMinSz.iWidth, cHeight ); // These flags control non-stretch axis if ( child->Flags() & Juik::EExpand ) cSize.iWidth = iSize.iWidth; else if ( child->Flags() & Juik::EAlignRight ) cPos.iX += iSize.iWidth - cSize.iWidth; else if ( child->Flags() & Juik::EAlignCenterHorizontal ) cPos.iX += (iSize.iWidth - cSize.iWidth) / 2; child->SetDimensionL( cPos, cSize ); currentPos += TSize( 0, cHeight ); } else { // Calculate child's width // c-prefix means child's TSize cMinSz = child->MinSize(); TInt cWidth = 0; if ( child->Proportion() ) cWidth = (delta * child->Proportion()) / iTotalStretch; else cWidth = cMinSz.iWidth; TPoint cPos( currentPos ); TSize cSize(cWidth, cMinSz.iHeight ); // These flags control non-stretch axis if ( child->Flags() & Juik::EExpand ) cSize.iHeight = iSize.iHeight; else if ( child->Flags() & Juik::EAlignBottom ) cPos.iY += iSize.iHeight - cSize.iHeight; else if ( child->Flags() & Juik::EAlignCenterVertical ) cPos.iY += (iSize.iHeight - cSize.iHeight) / 2; child->SetDimensionL( cPos, cSize ); currentPos += TSize( cWidth, 0 ); } } }