Beispiel #1
0
HRESULT UIBookMenuDlg::DrawBackGround(DK_IMAGE _drawingImg)
{
    HRESULT hr(S_OK);
    DK_IMAGE imgSelf;

    DK_RECT rcSelf={0, 0, m_iWidth, m_iHeight};

    RTN_HR_IF_FAILED(CropImage(
        _drawingImg,
        rcSelf,
        &imgSelf));

    CTpGraphics grp(imgSelf);

    SPtr<ITpImage> spImg = ImageManager::GetImage(IMAGE_MENU_BACK);
    if (spImg)
    {
        RTN_HR_IF_FAILED(grp.DrawImageStretchBlend(spImg.Get(), 0, 0, m_iWidth, m_iHeight));
    }
    return S_OK;
}
Beispiel #2
0
HRESULT UIWifiListItem::DrawBackGround(DK_IMAGE drawingImg)
{
    HRESULT hr(S_OK);
    CTpGraphics grf(drawingImg);
	RTN_HR_IF_FAILED(grf.EraserBackGround());

    SPtr<ITpImage> pimgSignalAP = ImageManager::GetImage(IMAGE_TOUCH_ICON_WIFI_LEVEL);

    const int width = pimgSignalAP->GetWidth();
    const int height = pimgSignalAP->GetHeight()/5;
    const int top = m_fIsProtected ? m_pProtecedAPImg->GetY() : (m_iHeight - height) >> 1;
    RTN_HR_IF_FAILED(grf.DrawImageBlend(pimgSignalAP.Get(),
        m_iLeft + m_iWidth - pimgSignalAP->GetWidth(),
        top,
        0,
        height * (m_iQualityLv - 1),
        width,
        height));

    RTN_HR_IF_FAILED(grf.DrawLine(m_pSSIDLabel->GetX(), m_iHeight - 1, m_iWidth - m_pSSIDLabel->GetX(), 1, DOTTED_STROKE));
    return hr;
}
Beispiel #3
0
HRESULT UITextBox::Draw(DK_IMAGE image)
{
    //初始化绘图工具
    if (!m_bIsVisible)
    {
        return S_OK;
    }
    if (image.pbData == NULL)
    {
        return E_FAIL;
    }
    HRESULT hr(S_OK);
    DK_IMAGE img1;
    DK_RECT rect={m_iLeft, m_iTop, m_iLeft + m_iWidth, m_iTop + m_iHeight};
    RTN_HR_IF_FAILED(CropImage(image,rect,&img1));
    CTpGraphics g1(img1);//主要画布
    RTN_HR_IF_FAILED(g1.EraserBackGround());

    //背景图边框
    int iLeft = 0, iTop = 0;
    if (m_showBorder)
    {
#ifdef KINDLE_FOR_TOUCH
        RTN_HR_IF_FAILED(UIUtility::DrawBorder(img1, 0, 0, 0, 0, 0, true, true));
#else
        SPtr<ITpImage> spImg = ImageManager::GetImage(IMAGE_TEXTBOX_BACK);
        if (spImg)
        {
            g1.DrawImageStretchBlend(spImg.Get(), iLeft, iTop, m_iWidth, m_iHeight,1,10);
        }
#endif
    }

    ITpImage* pImage = m_spImage.Get();
    if (IsFocus() && m_spFocusedImage)
    {
        pImage = m_spFocusedImage.Get();
    }
    if (pImage)
    {
        int iLeftOffset = (m_iHeight > pImage->GetHeight()) ? (m_iHeight - pImage->GetHeight()) >> 1 : 0;
        int iTopOffset  = (m_iHeight > pImage->GetWidth()) ? (m_iHeight - pImage->GetWidth()) >> 1 : 0;
        iLeft += iLeftOffset;
        iTop +=  iTopOffset;
        g1.DrawImageBlend(pImage, iLeft, iTop, 0, 0, pImage->GetWidth(), pImage->GetHeight());
        iLeft += pImage->GetWidth() + iLeftOffset;
    }


    //画字
    if(m_iDataLen > 0)
    {
        DK_IMAGE imgDrawChar;
        DK_RECT rcDrawChar={m_iLeft + m_nMarginLeft + m_nBorderLinePixel + iLeft,
                          m_iTop + m_nMarginTop + m_nBorderLinePixel, 
                          m_iLeft + m_iWidth - m_nBorderLinePixel, 
                          m_iTop + m_iHeight - m_nMarginBottom - m_nBorderLinePixel };        

        HRESULT hr(S_OK);        
        RTN_HR_IF_FAILED(CropImage(
                        image,
                        rcDrawChar,
                        &imgDrawChar
                        ));

        if(!imgDrawChar.pbData)
        {
            return E_FAIL;
        }

        CTpGraphics g2(imgDrawChar);//绘字画布

        wchar_t wcharTmp[TEXTBOX_DATA_MAX_LEN];
        if (m_echoMode == Normal)
        {
            memcpy(wcharTmp , m_strData + m_iStartIndex , (m_iEndIndex - m_iStartIndex + 1) * sizeof(wcharTmp[0]));
        }
        else if (m_echoMode == Password || m_echoMode == PasswordEchoOnEdit)
        {
            memcpy(wcharTmp , m_strEchoData + m_iStartIndex , (m_iEndIndex - m_iStartIndex + 1) * sizeof(wcharTmp[0]));
        }
        wcharTmp[m_iEndIndex - m_iStartIndex + 1]=0;

        if(m_fIsSelectAll && m_bIsFocus)
        {
            m_iFontColor = ColorManager::knWhite;
        }
        else if (!IsEnable())
        {
            m_iFontColor = ColorManager::GetColor(COLOR_SCROLLBAR_BACK);
        }
        else
        {
            m_iFontColor = ColorManager::knBlack;
        }
        ITpFont* pFont = FontManager::GetInstance()->GetFont(m_ifontAttr, m_iFontColor);
        if (pFont)
        {
            const int maxTxtHeight = (m_iHeight -(m_nBorderLinePixel * 2 + m_nMarginTop + m_nMarginBottom));
            const int iTxtTop = (maxTxtHeight > pFont->GetHeight()) ? ((maxTxtHeight - pFont->GetHeight()) >> 1) : 0;
            if(m_fIsSelectAll)
            {
                int width = pFont->StringWidth(wcharTmp,m_iEndIndex - m_iStartIndex + 1);
                if(m_bIsFocus)
                {
                    g2.FillRect(0,iTxtTop,width,imgDrawChar.iHeight,ColorManager::knBlack);
                }
                else
                {
                    g2.FillRect(0,iTxtTop,width,imgDrawChar.iHeight,ColorManager::GetColor(COLOR_SCROLLBAR_SLIDER));
                }
            }
            g2.DrawStringUnicode(wcharTmp,0,iTxtTop,pFont,FALSE);
        }
        
        if (ColorManager::knBlack == m_iFontColor && !m_fIsSelectAll)
        {
            g2.Do2Gray(0,iTop,imgDrawChar.iWidth,imgDrawChar.iHeight);
        }
    }
HRESULT UIPdfTrimColumnedDlg::Draw(DK_IMAGE drawingImg)
{
	DebugPrintf(DLC_ZHY,"enter %s::%s,%s(%d)",GetClassName(), __FUNCTION__, __FILE__, __LINE__);
	if (!IsVisible())
		return S_OK;
	HRESULT hr(S_OK);
	CTpGraphics grf(drawingImg);
	DK_IMAGE imgSelf;
	DK_RECT rcSelf={m_iLeft, m_iTop, m_iLeft + m_iWidth, m_iTop + m_iHeight};
	RTN_HR_IF_FAILED(CropImage(drawingImg, rcSelf, &imgSelf));

	RTN_HR_IF_FAILED(DrawBackGround(imgSelf));

	//draw flag
	SPtr<ITpImage> spImageCursor = ImageManager::GetImage(IMAGE_PDF_LOCATE_CURSOR);
	int w = spImageCursor->GetWidth();
	int h = spImageCursor->GetHeight();

	if (m_bIsActionFinished) 
    {
		m_btnConfirmed.SetVisible(true);
		m_btnCancel.SetVisible(true);
		RTN_HR_IF_FAILED(m_btnConfirmed.Draw(imgSelf));
		RTN_HR_IF_FAILED(m_btnCancel.Draw(imgSelf));
	} 
    else 
    {
		m_btnConfirmed.SetVisible(false);
		m_btnCancel.SetVisible(false);
	}

	//draw lines
	if (m_iCurAction == PdfTrimAction) 
    {
		//Trim
		grf.DrawImage(spImageCursor.Get(), m_iLeftCuttingEdge - w/2, m_iTopCuttingEdge -h/2);
		grf.DrawImage(spImageCursor.Get(), m_iRightCuttingEdge - w/2, m_iBottomCuttingEdge - h/2);

		DebugPrintf(DLC_ZHY,"rect,left,top,right,bottom:%d,%d,%d,%d",m_iLeftCuttingEdge, m_iTopCuttingEdge, m_iRightCuttingEdge, m_iBottomCuttingEdge);
		grf.DrawLine(m_iLeftCuttingEdge, m_iTop, 2, m_iHeight, SOLID_STROKE);
		grf.DrawLine(m_iRightCuttingEdge, m_iTop, 2, m_iHeight, SOLID_STROKE);
		grf.DrawLine(m_iLeft, m_iTopCuttingEdge, m_iWidth, 2, SOLID_STROKE);
		grf.DrawLine(m_iLeft, m_iBottomCuttingEdge, m_iWidth, 2, SOLID_STROKE);
	}
    else 
    {
		grf.DrawLine(m_iColumnedX, m_iTop, 2, m_iHeight, SOLID_STROKE);
		grf.DrawImage(spImageCursor.Get(), m_iColumnedX - w/2, m_iColumnedY - h/2);

		if (m_iCurAction==PdfColumnedComicOrderLR || m_iCurAction==PdfColumnedComicOrderRL) 
        {
			//split to 2 pages
		} 
        else 
        {
			//split to 4 pages
			grf.DrawLine(m_iLeft, m_iColumnedY, m_iWidth, 2, SOLID_STROKE);
		}
	}
	if (m_btnTips.IsVisible())
		m_btnTips.SetVisible(false);

	DebugPrintf(DLC_ZHY,"leave %s::%s,%s(%d)",GetClassName(), __FUNCTION__, __FILE__, __LINE__);

	return hr;
}