BOOL CBCGPRibbonInfoLoader::LoadImage (const CBCGPRibbonInfo::XID& id, CBCGPToolBarImages& image, BOOL bSingle)
{
    if (id.IsEmpty ())
    {
        return TRUE;
    }

    if (id.m_Value > 0)
    {
        image.Load (id.m_Value, GetInstance ());
    }

    if (!image.IsValid () && !id.m_Name.IsEmpty ())
    {
        image.LoadStr (id.m_Name, GetInstance ());
    }

    if (image.IsValid ())
    {
        if (bSingle)
        {
            image.SetSingleImage ();
        }

        return TRUE;
    }

    return FALSE;
}
BOOL CBCGPTagManager::ParseToolBarImages (const CString& strItem, CBCGPToolBarImages& value, LPCTSTR lpszID)
{
	CBCGPTagManager tm (strItem);

	CSize size (value.GetImageSize ());

	value.Clear ();
	value.SetTransparentColor ((COLORREF)(-1));

	tm.ReadSize (s_Size, size);

	BOOL bPreMultiplyCheck = TRUE;
	tm.ReadBool (s_PreMltCheck, bPreMultiplyCheck);

	value.SetPreMultiplyAutoCheck (bPreMultiplyCheck);

	if (size != CSize (0, 0))
	{
		value.SetImageSize (size);
	}

	value.LoadStr (lpszID);

	if (size == CSize (0, 0))
	{
		value.SetSingleImage ();
	}

	COLORREF clrTransparent = CLR_DEFAULT;
	if (tm.ReadColor (s_Transparent, clrTransparent))
	{
		value.SetTransparentColor (clrTransparent);
	}

#ifndef _BCGSUITE_
	if (m_clrBase != (COLORREF)-1 &&
		m_clrTarget != (COLORREF)-1)
	{
		value.AddaptColors (m_clrBase, m_clrTarget);
	}
#endif

    if (CBCGPToolBarImages::IsRTL () && value.GetImageWell () != NULL &&
		clrTransparent == CLR_DEFAULT)
    {
		BITMAP bmp;
		if (::GetObject (value.GetImageWell (), sizeof (BITMAP), &bmp) != 0)
		{
			if (bmp.bmBitsPixel == 32)
			{
				value.Mirror ();
			}
		}
	}

	return TRUE;
}
void CBCGPRibbonBackstagePagePrint::OnInitPrintControls()
{
	CBCGPLocalResource localRes;

	double dblScale = globalData.GetRibbonImageScale ();
	if (dblScale != 1.0)
	{
		CBCGPToolBarImages image;
		image.Load (IDB_BCGBARRES_PRINT_BUTTON);
		image.SetSingleImage ();
		image.SmoothResize (dblScale);

		m_btnPrint.SetImage (image.GetImageWell (), 0, 0);
	}
	else
	{
		m_btnPrint.SetImage(IDB_BCGBARRES_PRINT_BUTTON);
	}

	m_btnPrint.m_bTopImage = TRUE;
	m_btnPrint.m_bDrawFocus = FALSE;

	m_btnCopies.SetRange (1, 9999);

	m_wndPrinterProperties.m_bDefaultClickProcess = TRUE;
	m_wndPrinterProperties.m_nAlignStyle = CBCGPButton::ALIGN_CENTER;

	m_btnPrev.SetWindowText (_T(""));
	m_btnPrev.SetStdImage (CBCGPMenuImages::IdArowLeftTab3d);

	m_btnNext.SetWindowText (_T(""));
	m_btnNext.SetStdImage (CBCGPMenuImages::IdArowRightTab3d);

	m_wndZoomSlider.SetRange (10, 100);
	m_wndZoomSlider.SetPos (10);

	PRINTDLG* dlgPrint = GetPrintDlg();
	if (dlgPrint == NULL || dlgPrint->hDevMode == NULL || dlgPrint->hDevNames == NULL)
	{
		m_wndPrinter.EnableWindow (FALSE);
		m_wndPrinterProperties.EnableWindow (FALSE);
		m_wndPage.EnableWindow (FALSE);
		m_wndPageFrom.EnableWindow (FALSE);
		m_wndPageTo.EnableWindow (FALSE);
		m_wndCollate.EnableWindow (FALSE);
		m_wndOrientation.EnableWindow (FALSE);
		m_wndPaper.EnableWindow (FALSE);

		return;
	}

	CString strLine;

	int nPages = 0;
	m_wndPage.SetIcons (IDB_BCGBARRES_PRINT_PAGE, 32);
	strLine.LoadString (IDS_BCGBARRES_PRINT_PAGE_A);
	m_wndPage.AddString(strLine, 0);
	if ((dlgPrint->Flags & PD_NOSELECTION) == 0)
	{
		strLine.LoadString (IDS_BCGBARRES_PRINT_PAGE_S);
		m_wndPage.AddString(strLine, 1);
		if ((dlgPrint->Flags & PD_SELECTION) == PD_SELECTION)
		{
			nPages = 1;
		}
	}
	if ((dlgPrint->Flags & PD_NOPAGENUMS) == 0 && dlgPrint->nMinPage != dlgPrint->nMaxPage)
	{
		strLine.LoadString (IDS_BCGBARRES_PRINT_PAGE_C);
		m_wndPage.AddString(strLine, 2);
		strLine.LoadString (IDS_BCGBARRES_PRINT_PAGE_R);
		m_wndPage.AddString(strLine, 3);
		if ((dlgPrint->Flags & PD_PAGENUMS) == PD_PAGENUMS)
		{
			nPages = m_wndPage.GetCount () - 1;
		}
	}
	else
	{
		m_wndPageFrom.EnableWindow (FALSE);
		m_wndPageTo.EnableWindow (FALSE);
	}

	m_wndPage.SetCurSel (nPages);

	m_wndCollate.SetIcons (IDB_BCGBARRES_PRINT_COLLATE, 32);
	strLine.LoadString (IDS_BCGBARRES_PRINT_COLLATE_C);
	m_wndCollate.AddString (strLine, 0);
	strLine.LoadString (IDS_BCGBARRES_PRINT_COLLATE_U);
	m_wndCollate.AddString (strLine, 1);

	m_wndOrientation.SetIcons (IDB_BCGBARRES_PRINT_ORIENT, 32);
	strLine.LoadString (IDS_BCGBARRES_PRINT_ORIENT_P);
	m_wndOrientation.AddString (strLine, 0);
	strLine.LoadString (IDS_BCGBARRES_PRINT_ORIENT_L);
	m_wndOrientation.AddString (strLine, 1);

	m_nPageFrom = dlgPrint->nFromPage;
	m_nPageTo = dlgPrint->nToPage;
	UpdateData(FALSE);

	LoadPrinterImages ();

	UpdatePrinters ();
}