GalleryItems.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:20k
- // GalleryItems.cpp: implementation of the CGalleryItemStyleSet class.
- //
- //////////////////////////////////////////////////////////////////////
- #include "stdafx.h"
- #include "GalleryItems.h"
- #ifdef _DEBUG
- #undef THIS_FILE
- static char THIS_FILE[]=__FILE__;
- #define new DEBUG_NEW
- #endif
- //////////////////////////////////////////////////////////////////////
- // CGalleryItemStyleSet
- CGalleryItemStyleSet::CGalleryItemStyleSet(int nId, LPCTSTR lpszCaption)
- {
- m_strCaption = lpszCaption;
- m_nId = nId;
- }
- CGalleryItemStyleSet::~CGalleryItemStyleSet()
- {
- }
- void CGalleryItemStyleSet::Draw(CDC* pDC, CXTPControlGallery* pGallery, CRect rcItem, BOOL bEnabled, BOOL bSelected, BOOL bPressed, BOOL bChecked)
- {
- CXTPPaintManager* pPaintManager = pGallery->GetPaintManager();
- COLORREF clrTextColor = pPaintManager->GetRectangleTextColor(bSelected, bPressed, bEnabled, FALSE, FALSE, xtpBarTypePopup, xtpBarPopup);
- pDC->SetTextColor(clrTextColor);
- CXTPFontDC font(pDC, pPaintManager->GetRegularFont());
- int cx = pPaintManager->GetPopupBarGripperWidth(pGallery->GetParent()) - 1;
- pPaintManager->DrawPopupBarGripper(pDC, rcItem.left - 1, rcItem.top, cx + 1, rcItem.Height());
- pPaintManager->DrawRectangle(pDC, rcItem, bSelected, bPressed, bEnabled, FALSE, FALSE, xtpBarTypePopup, xtpBarPopup);
- if (bChecked && bEnabled)
- {
- CRect rcCheck(rcItem.left + 1, rcItem.top + 1, rcItem.left + cx - 2, rcItem.bottom - 1);
- pPaintManager->DrawRectangle(pDC, rcCheck, bSelected, bPressed, bEnabled, TRUE, FALSE, xtpBarTypePopup, xtpBarPopup);
-
- pPaintManager->DrawCheckMark(pDC, rcCheck);
- }
- CRect rcText(rcItem);
- rcText.left += pPaintManager->m_nPopupBarTextPadding + cx;
- pDC->DrawText(m_strCaption, rcText, DT_END_ELLIPSIS|DT_SINGLELINE|DT_VCENTER);
- }
- //////////////////////////////////////////////////////////////////////////
- // CGalleryItemThemeColors
- CGalleryItemThemeColors::CGalleryItemThemeColors(int nId, LPCTSTR lpszCaption)
- {
- m_strToolTip = m_strCaption = lpszCaption;
- m_nId = nId;
- }
- const struct COLORPREVIEWREC
- {
- COLORREF clr;
- LPCTSTR lpszCaption;
- };
- const struct COLORPREVIEW
- {
- COLORPREVIEWREC rec[10];
- }
- themeColors[] =
- {
- {//Office
- RGB(255, 255, 255), _T("White"), RGB(0, 0, 0), _T("Black"),
- RGB(238, 236, 225), _T("Tan"), RGB(31, 73, 125), _T("Dark Blue"), RGB(79, 129, 189), _T("Blue"), RGB(192, 80, 77), _T("Red"),
- RGB(155, 187, 89), _T("Olive Green"), RGB(128, 100, 162), _T("Purple"), RGB(75, 172, 198), _T("Aqua"), RGB(247, 150, 70), _T("Orange")
- },
- {//Grayscale
- RGB(255, 255, 255), _T("White"), RGB(0, 0, 0), _T("Black"),
- RGB(248, 248, 248), NULL, RGB(0, 0, 0), NULL, RGB(221, 221, 221), NULL, RGB(178, 178, 178), NULL,
- RGB(150, 150, 150), NULL, RGB(128, 128, 128), NULL, RGB(95, 95, 95), NULL, RGB(77, 77, 77), NULL
- },
- {//Apex
- RGB(255, 255, 255), _T("White"), RGB(0, 0, 0), _T("Black"),
- RGB(201, 194, 209), NULL, RGB(105, 103, 109), NULL, RGB(206, 185, 102), NULL, RGB(156, 176, 132), NULL,
- RGB(107, 177, 201), NULL, RGB(101, 133, 207),NULL, RGB(126, 107, 201), NULL, RGB(163, 121, 187), NULL
- },
- {//Aspect
- RGB(255, 255, 255), _T("White"), RGB(0, 0, 0), _T("Black"),
- RGB(227, 222, 209), NULL, RGB(50, 50, 50), NULL, RGB(240, 127, 9), NULL, RGB(159, 41, 54), NULL,
- RGB(27, 88, 124), NULL, RGB(78, 133, 66), NULL, RGB(96, 72, 120), NULL, RGB(193, 152, 89), NULL
- },
- {//Civic
- RGB(255, 255, 255), _T("White"), RGB(0, 0, 0), _T("Black"),
- RGB(197, 209, 215), NULL, RGB(100, 107, 134), NULL, RGB(209, 99, 73), NULL, RGB(204, 180, 0), NULL,
- RGB(140, 173, 174), NULL, RGB(140, 123, 112), NULL, RGB(143, 176, 140), NULL, RGB(209, 144, 73)
- },
- {//Concourse
- RGB(255, 255, 255), _T("White"), RGB(0, 0, 0), _T("Black"),
- RGB(222, 245, 250), NULL, RGB(70, 70, 70), NULL, RGB(045, 162, 191), NULL, RGB(218, 31, 40), NULL,
- RGB(235, 100, 27), NULL, RGB(57, 99, 157), NULL, RGB(71, 75, 120), NULL, RGB(125, 60, 74)
- },
- {//Currency
- RGB(255, 255, 255), _T("White"), RGB(0, 0, 0), _T("Black"),
- RGB(209, 225, 227), NULL, RGB(74, 96, 110), NULL, RGB(121, 181, 176), NULL, RGB(180, 188, 76), NULL,
- RGB(183, 120, 81), NULL, RGB(119, 106, 91), NULL, RGB(182, 173, 118), NULL, RGB(149, 174, 177)
- },
- {//Deluxe
- RGB(255, 255, 255), _T("White"), RGB(0, 0, 0), _T("Black"),
- RGB(255, 249, 229), NULL, RGB(48, 53, 110), NULL, RGB(204, 71, 87), NULL, RGB(255, 111, 97), NULL,
- RGB(255, 149, 62), NULL, RGB(248, 189, 82), NULL, RGB(70, 166, 189), NULL, RGB(84, 136, 188)
- }
- };
- void CGalleryItemThemeColors::Draw(CDC* pDC, CXTPControlGallery* pGallery, CRect rcItem, BOOL bEnabled, BOOL bSelected, BOOL bPressed, BOOL bChecked)
- {
- CXTPPaintManager* pPaintManager = pGallery->GetPaintManager();
- COLORREF clrTextColor = pPaintManager->GetRectangleTextColor(bSelected, bPressed, bEnabled, FALSE, FALSE, xtpBarTypePopup, xtpBarPopup);
- pDC->SetTextColor(clrTextColor);
- CXTPFontDC font(pDC, pPaintManager->GetRegularFont());
- pPaintManager->DrawRectangle(pDC, rcItem, bSelected, bPressed, bEnabled, FALSE, FALSE, xtpBarTypePopup, xtpBarPopup);
- CRect rcPreview(rcItem.left + 2, rcItem.top + 2, rcItem.left + 2 + 108, rcItem.bottom - 2);
- if (bChecked && bEnabled)
- {
- pPaintManager->DrawRectangle(pDC, rcPreview, bSelected, bPressed, bEnabled, TRUE, FALSE, xtpBarTypeNormal, xtpBarPopup);
- }
- CRect rcColor(rcPreview);
- rcColor.DeflateRect(2, 2);
- rcColor.right = rcColor.left + rcColor.Height();
- const COLORPREVIEW& clrPreview = themeColors[GetID()];
- int nOrder[] = {3, 2, 4, 5, 6, 7, 8, 9};
- for (int i = 0; i < _countof(nOrder); i++)
- {
- pDC->FillSolidRect(rcColor, clrPreview.rec[nOrder[i]].clr);
- pDC->Draw3dRect(rcColor, RGB(134, 134, 134), RGB(134, 134, 134));
-
- rcColor.OffsetRect(rcColor.Width() + 1, 0);
- }
- CRect rcText(rcItem);
- rcText.left += 120;
- pDC->DrawText(m_strCaption, rcText, DT_END_ELLIPSIS|DT_SINGLELINE|DT_VCENTER);
- }
- //////////////////////////////////////////////////////////////////////////
- // CGalleryItemThemeFonts
- const struct FONTPREVIEW
- {
- LPCTSTR lpszBody;
- LPCTSTR lpszHeadings;
- }
- themeFonts[] =
- {
- {//Office
- _T("Cambria"), _T("Calibri")
- },
- {//Apex
- _T("Arial"), _T("Times New Roman")
- },
- {//Aspect
- _T("Verdana"), _T("Verdana")
- },
- {//Civic
- _T("Georgia"), _T("Georgia")
- },
- {//Concourse
- _T("Eras Medium ITC"), _T("Eras Medium ITC")
- },
- {//Currency
- _T("Constantia"), _T("Constantia")
- },
- {//Deluxe
- _T("Corbel"), _T("Corbel")
- },
- {//Equity
- _T("Franklin Gothic Book"), _T("Perpetua")
- }
- };
- CGalleryItemThemeFonts::CGalleryItemThemeFonts(int nId, LPCTSTR lpszCaption)
- {
- m_strToolTip = m_strCaption = lpszCaption;
- m_nId = nId;
- }
- void CGalleryItemThemeFonts::Draw(CDC* pDC, CXTPControlGallery* pGallery, CRect rcItem, BOOL bEnabled, BOOL bSelected, BOOL bPressed, BOOL bChecked)
- {
- CXTPPaintManager* pPaintManager = pGallery->GetPaintManager();
- pPaintManager->DrawRectangle(pDC, rcItem, bSelected, bPressed, bEnabled, bChecked, FALSE, xtpBarTypeNormal, xtpBarPopup);
- CRect rcPreview(rcItem.left + 6, rcItem.top + 6, rcItem.left + 6 + 43, rcItem.bottom - 6);
- pDC->Draw3dRect(rcPreview, RGB(97, 108, 129), RGB(97, 108, 129));
- rcPreview.DeflateRect(1, 1);
- pDC->Draw3dRect(rcPreview, RGB(255, 255, 255), RGB(255, 255, 255));
- rcPreview.DeflateRect(1, 1);
- pDC->Draw3dRect(rcPreview, RGB(195, 200, 213), RGB(195, 200, 213));
- rcPreview.DeflateRect(1, 1);
- pDC->FillSolidRect(rcPreview, RGB(243, 243, 244));
-
- pDC->SetTextColor(0);
- const FONTPREVIEW& fontPreview = themeFonts[GetID()];
- CFont fntBody;
- fntBody.CreatePointFont(130, fontPreview.lpszBody);
-
- CFont fntHeadings;
- fntHeadings.CreatePointFont(120, fontPreview.lpszHeadings);
- CRect rcFontPreviewBody(rcPreview.left + 5, rcPreview.top, rcPreview.right, rcPreview.bottom - 5);
- CXTPFontDC fnt(pDC, &fntBody);
- pDC->DrawText(_T("A"), rcFontPreviewBody, DT_BOTTOM | DT_SINGLELINE);
- CRect rcFontPreviewBodyText(rcItem.left + 70, rcItem.top + 17, rcItem.right, rcItem.bottom);
- pDC->DrawText(fontPreview.lpszBody, rcFontPreviewBodyText, DT_TOP | DT_SINGLELINE);
- CRect rcFontPreviewHeadings(rcPreview.left + 20, rcPreview.top, rcPreview.right, rcPreview.bottom - 5);
- fnt.SetFont(&fntHeadings);
- pDC->DrawText(_T("a"), rcFontPreviewHeadings, DT_BOTTOM | DT_SINGLELINE);
- CRect rcFontPreviewHeadingsText(rcItem.left + 70, rcItem.top + 37, rcItem.right, rcItem.bottom);
- pDC->DrawText(fontPreview.lpszHeadings, rcFontPreviewHeadingsText, DT_TOP | DT_SINGLELINE);
- }
- //////////////////////////////////////////////////////////////////////////
- // CGalleryItemTable
- CGalleryItemTable::CGalleryItemTable(int nId)
- {
- m_nId = nId;
- }
- void CGalleryItemTable::Draw(CDC* pDC, CXTPControlGallery* pGallery, CRect rcItem, BOOL /*bEnabled*/, BOOL bSelected, BOOL /*bPressed*/, BOOL /*bChecked*/)
- {
- int nItem = pGallery->IsItemSelected() ? pGallery->GetSelectedItem() : -1;
- CRect rcItems = pGallery->GetItemsRect();
- CSize szItems = pGallery->GetItems()->GetItemSize();
- int nItemsPerRow = rcItems.Width() / szItems.cx;
- int nColumns = nItem < 1 ? 0 : (nItem - 1) % nItemsPerRow + 1;
- int nRows = nItem < 1 ? 0 : (nItem - 1) / nItemsPerRow + 1;
- int nColumnItem = (GetIndex() - 1) % nItemsPerRow + 1;
- int nRowItem = (GetIndex() - 1) / nItemsPerRow + 1;
- bSelected = nRowItem <= nRows && nColumnItem <= nColumns;
-
- rcItem.DeflateRect(0, 0, 1, 1);
- if (bSelected)
- {
- pDC->Draw3dRect(rcItem, RGB(239, 72, 16), RGB(239, 72, 16));
- rcItem.DeflateRect(1, 1);
- pDC->Draw3dRect(rcItem, RGB(255, 226, 148), RGB(255, 226, 148));
- }
- else
- {
- rcItem.DeflateRect(1, 1);
- pDC->Draw3dRect(rcItem, 0, 0);
- }
- rcItem.DeflateRect(1, 1);
- pDC->FillSolidRect(rcItem, GetXtremeColor(COLOR_WINDOW));
- }
- CGalleryItemTableLabel::CGalleryItemTableLabel()
- {
- m_bLabel = TRUE;
- }
- void CGalleryItemTableLabel::Draw(CDC* pDC, CXTPControlGallery* pGallery, CRect rcItem, BOOL bEnabled, BOOL bSelected, BOOL bPressed, BOOL bChecked)
- {
- int nItem = pGallery->IsItemSelected() ? pGallery->GetSelectedItem() : -1;
- CRect rcItems = pGallery->GetItemsRect();
- CSize szItems = pGallery->GetItems()->GetItemSize();
- int nItemsPerRow = rcItems.Width() / szItems.cx;
- int nColumns = nItem < 1 ? 0 : (nItem - 1) % nItemsPerRow + 1;
- int nRows = nItem < 1 ? 0 : (nItem - 1) / nItemsPerRow + 1;
- if (nItem < 1)
- m_strCaption = _T("Insert Table");
- else
- m_strCaption.Format(_T("%ix%i Table"), nRows, nColumns);
- CXTPControlGalleryItem::Draw(pDC, pGallery, rcItem, bEnabled, bSelected, bPressed, bChecked);
- }
- //////////////////////////////////////////////////////////////////////////
- //
- CGalleryItemFontColor::CGalleryItemFontColor(COLORREF clr, int nToolTip)
- {
- m_nId = clr;
- m_strToolTip.LoadString(nToolTip);
- m_bTopMargin = m_bBottomMargin = TRUE;
- }
- CGalleryItemFontColor::CGalleryItemFontColor(COLORREF clr, LPCTSTR lpszCaption, BOOL bTopMargin /*= TRUE*/, BOOL bBotttomMargin /*= TRUE*/)
- {
- m_nId = clr;
- m_strCaption = m_strToolTip = lpszCaption;
- m_bTopMargin = bTopMargin;
- m_bBottomMargin = bBotttomMargin;
- SetSize(CSize(17, 13 + (bTopMargin ? 2 : 0) + (bBotttomMargin ? 2 : 0)));
- }
- void CGalleryItemFontColor::Draw(CDC* pDC, CXTPControlGallery* /*pGallery*/, CRect rcItem, BOOL /*bEnabled*/, BOOL bSelected, BOOL /*bPressed*/, BOOL bChecked)
- {
- rcItem.DeflateRect(2, 0);
- if (m_bTopMargin)
- rcItem.DeflateRect(0, 2, 0, 0);
-
- if (m_bBottomMargin)
- rcItem.DeflateRect(0, 0, 0, 2);
- pDC->FillSolidRect(rcItem, (COLORREF)m_nId);
- if (bSelected || bChecked)
- {
- if (bSelected)
- pDC->Draw3dRect(rcItem, RGB(242, 148, 54), RGB(242, 148, 54));
- else
- pDC->Draw3dRect(rcItem, RGB(239, 72, 16), RGB(239, 72, 16));
-
- rcItem.DeflateRect(1, 1);
- pDC->Draw3dRect(rcItem, RGB(255, 226, 148), RGB(255, 226, 148));
- }
- else
- {
- if (m_bTopMargin) pDC->FillSolidRect(rcItem.left, rcItem.top, rcItem.Width(), 1, RGB(197, 197, 197));
- pDC->FillSolidRect(rcItem.left, rcItem.top, 1, rcItem.Height(), RGB(197, 197, 197));
- pDC->FillSolidRect(rcItem.right - 1, rcItem.top, 1, rcItem.Height(), RGB(197, 197, 197));
- if (m_bBottomMargin) pDC->FillSolidRect(rcItem.left, rcItem.bottom - 1, rcItem.Width(), 1, RGB(197, 197, 197));
- }
- }
- void CGalleryItemFontColor::AddStandardBackColors(CXTPControlGalleryItems* pItems)
- {
- pItems->AddItem(new CGalleryItemFontColor(RGB(0xFF, 0xFF, 0x00), XTP_IDS_CLR_YELLOW));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0x00, 0xFF, 0x00), XTP_IDS_CLR_BRIGHT_GREEN));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0x00, 0xFF, 0xFF), XTP_IDS_CLR_TURQUOISE));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0xFF, 0x00, 0xFF), XTP_IDS_CLR_PINK));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0x00, 0x00, 0xFF), XTP_IDS_CLR_BLUE));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0xFF, 0x00, 0x00), XTP_IDS_CLR_RED));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0x00, 0x00, 0x80), XTP_IDS_CLR_DARK_BLUE));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0x00, 0x80, 0x80), XTP_IDS_CLR_TEAL));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0x00, 0x80, 0x00), XTP_IDS_CLR_GREEN));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0x80, 0x00, 0x80), XTP_IDS_CLR_VIOLET));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0x80, 0x00, 0x00), XTP_IDS_CLR_DARK_RED));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0x80, 0x80, 0x00), XTP_IDS_CLR_DARK_YELLOW));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0x80, 0x80, 0x80), XTP_IDS_CLR_GRAY50));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0xC0, 0xC0, 0xC0), XTP_IDS_CLR_GRAY25));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0x00, 0x00, 0x00), XTP_IDS_CLR_BLACK));
- }
- void CGalleryItemFontColor::AddStandardColors(CXTPControlGalleryItems* pItems)
- {
- pItems->AddItem(new CGalleryItemFontColor(RGB(192, 0, 0), _T("Dark Red")));
- pItems->AddItem(new CGalleryItemFontColor(RGB(255, 0, 0), _T("Red")));
- pItems->AddItem(new CGalleryItemFontColor(RGB(255, 192, 0), _T("Orange")));
- pItems->AddItem(new CGalleryItemFontColor(RGB(255, 255, 0), _T("Yellow")));
- pItems->AddItem(new CGalleryItemFontColor(RGB(146, 208, 80), _T("Light Green")));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0, 176, 80), _T("Green")));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0, 176, 240), _T("Light Blue")));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0, 112, 192), _T("Blue")));
- pItems->AddItem(new CGalleryItemFontColor(RGB(0, 32, 96), _T("Dark Blue")));
- pItems->AddItem(new CGalleryItemFontColor(RGB(112, 48, 160), _T("Purple")));
- }
- COLORREF LightColor(COLORREF clr, int nTint)
- {
- double h, s, l;
- CXTPDrawHelpers::RGBtoHSL(clr, h, s, l);
- clr = CXTPDrawHelpers::HSLtoRGB(h, s, l + (1.0 - l) * (double)nTint / 100.0);
- return clr;
- }
- COLORREF DarkColor(COLORREF clr, int nShade)
- {
- double h, s, l;
- CXTPDrawHelpers::RGBtoHSL(clr, h, s, l);
- clr = CXTPDrawHelpers::HSLtoRGB(h, s, l * (1 + (double)nShade / 100.0));
- return clr;
- }
- int nMatrix[6][10] =
- {
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { -5, +50, -10, +80, +80, +80, +80, +80, +80, +80},
- { -15, +35, -25, +60, +60, +60, +60, +60, +60, +60},
- { -25, +25, -50, +40, +40, +40, +40, +40, +40, +40},
- { -35, +15, -75, -25, -25, -25, -25, -25, -25, -25},
- { -50, +5, -90, -50, -50, -50, -50, -50, -50, -50},
- };
- LPCTSTR strMatrixTip[10] =
- {
- _T("Background 1"), _T("Text 1"), _T("Background 2"), _T("Text 2"),
- _T("Accent 1"), _T("Accent 2"), _T("Accent 3"), _T("Accent 4"), _T("Accent 5"), _T("Accent 6")
- };
- COLORREF TranslateColor(COLORREF clr, int nTransalte)
- {
- return nTransalte == 0 ? clr : nTransalte > 0 ? LightColor(clr, nTransalte) : DarkColor(clr, nTransalte);
- }
- CString GetColorTip(LPCTSTR lpszToolTip, LPCTSTR lpszAccent, int nTransalte)
- {
- CString strTranslate;
- strTranslate.Format(_T(", %s %i%%"), nTransalte > 0 ? _T("Lighter") : _T("Darker"), abs(nTransalte));
- return (lpszToolTip ? CString(lpszToolTip) + _T(", ") : CString(_T(""))) + CString(lpszAccent) + (nTransalte != 0 ? strTranslate : _T(""));
- }
- void CGalleryItemFontColor::AddThemeColors(CXTPControlGalleryItems* pItems, int nTheme)
- {
- const COLORPREVIEW& clrPreview = themeColors[nTheme];
- for (int j = 0; j < 6; j++)
- {
- BOOL bTopMargin = j < 2;
- BOOL bBottomMargin = j == 0 || j == 5;
-
- for (int i = 0; i < 10; i++)
- {
- int nTranslate = nMatrix[j][i];
- COLORREF clr = TranslateColor(clrPreview.rec[i].clr, nTranslate);
- CString strToolTip = GetColorTip(clrPreview.rec[i].lpszCaption, strMatrixTip[i], nTranslate);
- pItems->AddItem(new CGalleryItemFontColor(clr, strToolTip, bTopMargin, bBottomMargin));
- }
- }
- }
- //////////////////////////////////////////////////////////////////////////
- // CGalleryItemFontFace
- CGalleryItemFontFace::CGalleryItemFontFace(LPCTSTR lpszCaption)
- {
- m_strCaption = lpszCaption;
- }
- void CGalleryItemFontFace::Draw(CDC* pDC, CXTPControlGallery* pGallery, CRect rcItem, BOOL bEnabled, BOOL bSelected, BOOL /*bPressed*/, BOOL bChecked)
- {
- CXTPPaintManager* pPaintManager = pGallery->GetPaintManager();
- pPaintManager->DrawRectangle(pDC, rcItem, bSelected, FALSE, bEnabled, bChecked, FALSE, xtpBarTypePopup, xtpBarPopup);
- COLORREF clrTextColor = pPaintManager->GetRectangleTextColor(bSelected, FALSE, bEnabled, FALSE, FALSE, xtpBarTypePopup, xtpBarPopup);
- pDC->SetTextColor(clrTextColor);
- CFont fnt;
- fnt.CreatePointFont(150, m_strCaption);
- CXTPFontDC font(pDC, &fnt);
- CRect rcText(rcItem);
- rcText.left += 4;
- pDC->DrawText(m_strCaption, rcText, DT_END_ELLIPSIS|DT_SINGLELINE|DT_VCENTER);
- }
- void CGalleryItemFontFace::AddFontItems(CXTPControlGalleryItems* pItems)
- {
- pItems->AddLabel(_T("Recently Used Fonts"));
- pItems->AddLabel(_T("All Fonts"));
- static CXTPControlFontComboBoxList::CFontDescHolder s_fontHolder;
- s_fontHolder.EnumFontFamilies();
- // now walk through the fonts and remove (charset) from fonts with only one
- CArray<CXTPControlFontComboBoxList::CFontDesc*, CXTPControlFontComboBoxList::CFontDesc*>& arrFontDesc =
- s_fontHolder.m_arrayFontDesc;
- int nCount = (int)arrFontDesc.GetSize();
- int i;
- for (i = 0; i < nCount; i++)
- {
- CXTPControlFontComboBoxList::CFontDesc* pDesc = arrFontDesc[i];
- CString str = pDesc->m_strName;
- if (str == _T("Arial") || str == _T("Tahoma"))
- {
- CXTPControlGalleryItem* pItem = pItems->InsertItem(1, new CGalleryItemFontFace(str));
- pItem->SetData((DWORD_PTR)pDesc);
- }
- CXTPControlGalleryItem* pItem = pItems->AddItem(new CGalleryItemFontFace(str));
- pItem->SetData((DWORD_PTR)pDesc);
- }
- }
- //////////////////////////////////////////////////////////////////////////
- // CControlGalleryUndo
- IMPLEMENT_XTP_CONTROL(CControlGalleryUndo, CXTPControlGallery)
- CControlGalleryUndo::CControlGalleryUndo()
- {
- }
- void CControlGalleryUndo::OnSelectedItemChanged()
- {
- CXTPControlStatic* pInfo = FindInfoControl();
- if (pInfo)
- {
- CString str;
- if (!IsItemSelected())
- {
- str = _T("Cancel");
- }
- else
- {
- str.Format(_T("Undo %i Actions"), GetSelectedItem() + 1);
- }
- pInfo->SetCaption(str);
- pInfo->RedrawParent(FALSE);
- }
- }
- CXTPControlStatic* CControlGalleryUndo::FindInfoControl()
- {
- CXTPCommandBar* pCommandBar = GetParent();
- for (int i = 0; i < pCommandBar->GetControls()->GetCount(); i++)
- {
- CXTPControlStatic* pControlStatic = DYNAMIC_DOWNCAST(CXTPControlStatic, pCommandBar->GetControl(i));
- if (pControlStatic && pControlStatic->GetID() == GetID())
- {
- return pControlStatic;
- }
- }
- return NULL;
- }
- CGalleryItemUndo::CGalleryItemUndo(LPCTSTR lpszCaption)
- {
- m_strCaption = lpszCaption;
- }
- void CGalleryItemUndo::Draw(CDC* pDC, CXTPControlGallery* pGallery, CRect rcItem, BOOL bEnabled, BOOL bSelected, BOOL bPressed, BOOL bChecked)
- {
- int nItem = pGallery->IsItemSelected() ? pGallery->GetSelectedItem() : -1;
- bSelected = GetID() <= nItem;
- CXTPControlGalleryItem::Draw(pDC, pGallery, rcItem, bEnabled, bSelected, bPressed, bChecked);
- }