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;
 }
Beispiel #2
0
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;
}
Beispiel #3
0
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);
}
Beispiel #8
0
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;
}
Beispiel #9
0
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 );
					}
			}
	}