void UAutoFoldingSlot::SynchronizeProperties() { SetPadding(Padding); SetSize(Size); SetHorizontalAlignment(HorizontalAlignment); SetVerticalAlignment(VerticalAlignment); }
void UUniformGridSlot::SynchronizeProperties() { SetRow(Row); SetColumn(Column); SetHorizontalAlignment(HorizontalAlignment); SetVerticalAlignment(VerticalAlignment); }
void UWrapBoxSlot::SynchronizeProperties() { SetPadding(Padding); SetFillEmptySpace(bFillEmptySpace); SetFillSpanWhenLessThan(FillSpanWhenLessThan); SetHorizontalAlignment(HorizontalAlignment); SetVerticalAlignment(VerticalAlignment); }
void UBorderSlot::SynchronizeProperties() { if ( Border.IsValid() ) { SetPadding(Padding); SetHorizontalAlignment(HorizontalAlignment); SetVerticalAlignment(VerticalAlignment); } }
void UWindowTitleBarAreaSlot::SynchronizeProperties() { if (WindowTitleBarArea.IsValid()) { SetPadding(Padding); SetHorizontalAlignment(HorizontalAlignment); SetVerticalAlignment(VerticalAlignment); } }
void TextFormatD2D::SetProperties(const WCHAR* fontFamily, int size, bool bold, bool italic, Gdiplus::PrivateFontCollection* fontCollection) { Dispose(); HRESULT hr = E_FAIL; // |fontFamily| uses the GDI/GDI+ font naming convention so try to create DirectWrite font // using the GDI family name and then create a text format using the DirectWrite family name // obtained from it. WCHAR dwFamilyName[LF_FACESIZE]; DWRITE_FONT_WEIGHT dwFontWeight; DWRITE_FONT_STYLE dwFontStyle; DWRITE_FONT_STRETCH dwFontStretch; if (GetDWPropertiesFromGDIProperties( fontFamily, bold, italic, dwFontWeight, dwFontStyle, dwFontStretch, dwFamilyName, _countof(dwFamilyName))) { hr = CanvasD2D::c_DWFactory->CreateTextFormat( dwFamilyName, nullptr, dwFontWeight, dwFontStyle, dwFontStretch, size * (4.0f / 3.0f), L"", &m_TextFormat); } if (FAILED(hr)) { // Fallback in case above fails. hr = CanvasD2D::c_DWFactory->CreateTextFormat( fontFamily, nullptr, bold ? DWRITE_FONT_WEIGHT_BOLD : DWRITE_FONT_WEIGHT_REGULAR, italic ? DWRITE_FONT_STYLE_ITALIC : DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL, size * (4.0f / 3.0f), L"", &m_TextFormat); } if (SUCCEEDED(hr)) { SetHorizontalAlignment(GetHorizontalAlignment()); SetVerticalAlignment(GetVerticalAlignment()); } else { Dispose(); } }
Label::Label(Renderer* pRenderer, unsigned int GUIFont, const std::string &label, Colour colour) : Component(pRenderer), m_GUIFont(GUIFont), m_colour(colour) { SetText(label); SetVerticalAlignment(eVerticalAlignment_Center); SetHorizontalAlignment(eHorizontalAlignment_Left); // Set default dimensions SetDimensions(0, 0, 1, 1); m_outline = false; }
Slider::Slider() { SetClassName(_T("Slider")); SetMinHeight(10); SetMinWidth(50); SetHorizontalContentAlignment(suic::LEFT); SetHorizontalAlignment(suic::LEFT); SetVerticalContentAlignment(suic::TOP); SetVerticalAlignment(suic::TOP); SliderButton* pSliderBtn = new SliderButton(this); _thumbBtn = pSliderBtn; pSliderBtn->ThumbDragDelta.Add(this, &Slider::OnThumbDragDelta); }
void UOverlaySlot::SynchronizeProperties() { SetPadding(Padding); SetHorizontalAlignment(HorizontalAlignment); SetVerticalAlignment(VerticalAlignment); }
void TextFormatD2D::SetProperties( const WCHAR* fontFamily, int size, bool bold, bool italic, const FontCollection* fontCollection) { auto fontCollectionD2D = (FontCollectionD2D*)fontCollection; Dispose(); WCHAR dwriteFamilyName[LF_FACESIZE]; DWRITE_FONT_WEIGHT dwriteFontWeight = bold ? DWRITE_FONT_WEIGHT_BOLD : DWRITE_FONT_WEIGHT_REGULAR; DWRITE_FONT_STYLE dwriteFontStyle = italic ? DWRITE_FONT_STYLE_ITALIC : DWRITE_FONT_STYLE_NORMAL; DWRITE_FONT_STRETCH dwriteFontStretch = DWRITE_FONT_STRETCH_NORMAL; const float dwriteFontSize = size * (4.0f / 3.0f); // |fontFamily| uses the GDI/GDI+ font naming convention so try to create DirectWrite font // using the GDI family name and then create a text format using the DirectWrite family name // obtained from it. HRESULT hr = Util::GetDWritePropertiesFromGDIProperties( CanvasD2D::c_DWFactory.Get(), fontFamily, bold, italic, dwriteFontWeight, dwriteFontStyle, dwriteFontStretch, dwriteFamilyName, _countof(dwriteFamilyName)); if (SUCCEEDED(hr)) { hr = CanvasD2D::c_DWFactory->CreateTextFormat( dwriteFamilyName, nullptr, dwriteFontWeight, dwriteFontStyle, dwriteFontStretch, dwriteFontSize, L"", &m_TextFormat); } if (FAILED(hr)) { IDWriteFontCollection* dwriteFontCollection = nullptr; // If |fontFamily| is not in the system collection, use the font collection from // |fontCollectionD2D| if possible. if (!Util::IsFamilyInSystemFontCollection(CanvasD2D::c_DWFactory.Get(), fontFamily) && (fontCollectionD2D && fontCollectionD2D->InitializeCollection())) { IDWriteFont* dwriteFont = Util::FindDWriteFontInFontCollectionByGDIFamilyName( fontCollectionD2D->m_Collection, fontFamily); if (dwriteFont) { hr = Util::GetFamilyNameFromDWriteFont( dwriteFont, dwriteFamilyName, _countof(dwriteFamilyName)); if (SUCCEEDED(hr)) { fontFamily = dwriteFamilyName; Util::GetPropertiesFromDWriteFont( dwriteFont, bold, italic, &dwriteFontWeight, &dwriteFontStyle, &dwriteFontStretch); } dwriteFont->Release(); } dwriteFontCollection = fontCollectionD2D->m_Collection; } // Fallback in case above fails. hr = CanvasD2D::c_DWFactory->CreateTextFormat( fontFamily, dwriteFontCollection, dwriteFontWeight, dwriteFontStyle, dwriteFontStretch, dwriteFontSize, L"", &m_TextFormat); } if (SUCCEEDED(hr)) { SetHorizontalAlignment(GetHorizontalAlignment()); SetVerticalAlignment(GetVerticalAlignment()); // Get the family name to in case CreateTextFormat() fallbacked on some other family name. hr = m_TextFormat->GetFontFamilyName(dwriteFamilyName, _countof(dwriteFamilyName)); if (FAILED(hr)) return; Microsoft::WRL::ComPtr<IDWriteFontCollection> collection; Microsoft::WRL::ComPtr<IDWriteFontFamily> fontFamily; UINT32 familyNameIndex; BOOL exists; if (FAILED(m_TextFormat->GetFontCollection(collection.GetAddressOf())) || FAILED(collection->FindFamilyName(dwriteFamilyName, &familyNameIndex, &exists)) || FAILED(collection->GetFontFamily(familyNameIndex, fontFamily.GetAddressOf()))) { return; } Microsoft::WRL::ComPtr<IDWriteFont> font; hr = fontFamily->GetFirstMatchingFont( m_TextFormat->GetFontWeight(), m_TextFormat->GetFontStretch(), m_TextFormat->GetFontStyle(), font.GetAddressOf()); if (FAILED(hr)) return; DWRITE_FONT_METRICS fmetrics; font->GetMetrics(&fmetrics); // GDI+ compatibility: GDI+ adds extra padding below the string when |m_AccurateText| is // |false|. The bottom padding seems to be based on the font metrics so we can calculate it // once and keep using it regardless of the actual string. In some cases, GDI+ also adds // the line gap to the overall height so we will store it as well. const float pixelsPerDesignUnit = dwriteFontSize / (float)fmetrics.designUnitsPerEm; m_ExtraHeight = (((float)fmetrics.designUnitsPerEm / 8.0f) - fmetrics.lineGap) * pixelsPerDesignUnit; m_LineGap = fmetrics.lineGap * pixelsPerDesignUnit; } else { Dispose(); } }
void UKUIInterfaceElement::FillContainer() { SetHorizontalAlignment( EKUIInterfaceHAlign::HA_Fill ); SetVerticalAlignment( EKUIInterfaceVAlign::VA_Fill ); }