TextMetrics GdiContext2D::measureText(const wchar_t* psz) { Check(); // TEXTMETRIC tm; // GetTextMetrics(m_hDC, &tm); // HFONT oldfont = (HFONT) SelectObject(m_hDC, (HFONT) font.m_pNativeObject); SIZE sz; ::GetTextExtentPoint(m_hDC, psz, wcslen(psz), &sz); ::SelectObject(m_hDC, oldfont); return TextMetrics(sz.cx); }
wxSize StyledTextBox::GetMinSize() const { int width = 0; int height = 0; TextMetrics textMetrics = TextMetrics(const_cast<StyledTextBox*>(this)); int fontHeight = textMetrics.GetFontMetrics().height; width += GetInsets().Width(); height += GetInsets().Height(); height += fontHeight; wxSize userMinSize = StyledWindow::GetMinSize(); return wxSize(std::max(width, userMinSize.GetWidth()), std::max(height, userMinSize.GetHeight())); }
const TextMetrics TextLayout::GetMetrics(std::error_code& error_code) const { DWRITE_TEXT_METRICS dwrite_text_metrics = { 0 }; HRESULT result = handle_->GetMetrics(&dwrite_text_metrics); error_code = MakeComErrorCode(result); if (! IsSucceeded(error_code)) { return TextMetrics(); } TextMetrics text_metrics; text_metrics.left = dwrite_text_metrics.left; text_metrics.top = dwrite_text_metrics.top; text_metrics.width = dwrite_text_metrics.width; text_metrics.height = dwrite_text_metrics.height; text_metrics.width_including_trailing_whitespace = dwrite_text_metrics.widthIncludingTrailingWhitespace; text_metrics.max_bidi_reordering_depth = dwrite_text_metrics.maxBidiReorderingDepth; return text_metrics; }
int StyledTextBox::FindCursorPointFromIndex() { TextMetrics textMetrics = TextMetrics(const_cast<StyledTextBox*>(this)); return textMetrics.GetTextSize(GetText().SubString(0, GetCursorPosition() - 1), GetDefinitionBundle().GetFont()).GetWidth() + pimpl->textOffset; }