CXTPTabPaintManager::CColorSet* CXTPTabPaintManager::SetColor(XTPTabColorStyle tabColor) { CColorSet* pColorSet = NULL; m_tabColor = tabColor; switch (tabColor) { case xtpTabColorWinNative: pColorSet = new CColorSetWinNative(); break; case xtpTabColorVisualStudio2003: pColorSet = new CColorSetVisualStudio2003(); break; case xtpTabColorVisualStudio2005: pColorSet = new CColorSetVisualStudio2005(); break; case xtpTabColorVisualStudio2008: pColorSet = new CColorSetVisualStudio2008(); break; case xtpTabColorVisualStudio2010: pColorSet = new CColorSetVisualStudio2010(); break; case xtpTabColorOffice2003: pColorSet = new CColorSetOffice2003(); break; case xtpTabColorResource: pColorSet = new CColorSetOffice2007(); break; case xtpTabColorOffice2007Access: pColorSet = new CColorSetOffice2007Access(); break; default: pColorSet = new CColorSetDefault(); break; } return SetColorSet(pColorSet); }
HRESULT ui::UIListBox::Initialize(graphics::D3DInteropHelper *pD3DInteropHelper) { #ifdef DEBUG_UILISTBOX LOG_ENTER(SEVERITY_LEVEL_DEBUG); #endif assert(GetWidth() > 0.0f); assert(GetHeight() > 0.0f); ui::UIListBoxItem::LAYOUT_DIRECTION layoutDirection = ui::UIListBoxItem::LAYOUT_DIRECTION_VERTICAL; switch (m_scrollDirection) { case ui::UIListBox::SCROLL_DIRECTION_HORIZONTAL: layoutDirection = ui::UIListBoxItem::LAYOUT_DIRECTION_VERTICAL; m_itemHeight = GetHeight(); if (m_preferredTextAreaSize.height == 0.0f) { m_preferredTextAreaSize.height = GetHeight() - m_preferredBitmapSize.height - m_marginBetweenBitmapAndText; } if (m_preferredTextAreaSize.width == 0.0f) { m_preferredTextAreaSize.width = m_preferredBitmapSize.width * 3.0f; } m_itemWidth = m_preferredTextAreaSize.width; break; case ui::UIListBox::SCROLL_DIRECTION_VERTICAL: layoutDirection = ui::UIListBoxItem::LAYOUT_DIRECTION_HORIZONTAL; m_itemWidth = GetWidth(); if (m_preferredTextAreaSize.width == 0.0f) { m_preferredTextAreaSize.width = GetWidth() - m_preferredBitmapSize.width - m_marginBetweenBitmapAndText; } if (m_preferredTextAreaSize.height == 0.0f) { m_preferredTextAreaSize.height = m_preferredBitmapSize.height; } m_itemHeight = m_preferredTextAreaSize.height; break; } for (size_t i = 0; i < GetNumberOfElements(); ++i) { auto element = GetElement(i); auto listBoxItem = std::dynamic_pointer_cast<UIListBoxItem>(element); if (listBoxItem.get() != nullptr) { listBoxItem->SetLayoutDirection(layoutDirection); listBoxItem->SetPreferredBitmapSize(m_preferredBitmapSize); listBoxItem->SetPreferredTextAreaSize(m_preferredTextAreaSize); listBoxItem->SetBounds(0.0f, 0.0f, m_itemWidth, m_itemHeight); } } CHK_WARN_HRESULT(UIContainer::Initialize(pD3DInteropHelper)); auto frameDecorator = std::make_shared<graphics::decorator::FrameDecorator>(); frameDecorator->SetColorSet(m_colorSet); for (size_t i = 0; i < m_colorSet->GetNumberOfColors(); ++i) { frameDecorator->AddFrame(graphics::decorator::Frame(i)); } m_rectFigure->AddDecorator(frameDecorator); m_rectFigure->SetX(0.0f); m_rectFigure->SetY(0.0f); m_rectFigure->SetWidth(GetWidth()); m_rectFigure->SetHeight(GetHeight()); m_rectFigure->SetColor(graphics::color::ColorValue(graphics::color::ColorValue::COLOR_TYPE_RGBA, 0x222222, 1.0f), graphics::color::COLOR_PATTERN_FLAT); CHK_WARN_HRESULT(m_rectFigure->Initialize(pD3DInteropHelper)); m_scrollBar->SetParentContainer(shared_from_this()); m_scrollBar->SetMinValue(0.0f); m_scrollBar->SetMaxValue(GetNumberOfElements() - 1.0f); m_scrollBar->SetPageSize(1.0f); if (m_scrollBar->GetCurrentValue() < m_scrollBar->GetMinValue() || m_scrollBar->GetCurrentValue() > m_scrollBar->GetMaxValue() - m_scrollBar->GetPageSize()) { m_scrollBar->SetCurrentValue(0.0f); } FLOAT frameThick = static_cast<FLOAT>(m_colorSet->GetNumberOfColors()); if (m_scrollDirection == ui::UIListBox::SCROLL_DIRECTION_HORIZONTAL) { m_scrollBar->SetDirection(ui::UIScrollBar::SCROLLBAR_DIRECTION_HORIZONTAL); m_scrollBar->SetBounds(frameThick + m_scrollBarMarginFromSide, GetHeight() - m_scrollBarThick - frameThick - m_scrollBarMarginFromSide, GetWidth() - (frameThick + m_scrollBarMarginFromSide) * 2, m_scrollBarThick); } else { m_scrollBar->SetDirection(ui::UIScrollBar::SCROLLBAR_DIRECTION_VERTICAL); m_scrollBar->SetBounds(GetWidth() - m_scrollBarThick - frameThick - m_scrollBarMarginFromSide, frameThick + m_scrollBarMarginFromSide, m_scrollBarThick, GetHeight() - (frameThick + m_scrollBarMarginFromSide) * 2); } m_scrollBar->AddPositionChangedCallback([&](FLOAT position) { NotifyScrollPositionChanged(position); }); CHK_FATAL_HRESULT(m_scrollBar->Initialize(pD3DInteropHelper)); #ifdef DEBUG_UILISTBOX LOG_LEAVE(SEVERITY_LEVEL_DEBUG); #endif return S_OK; }