/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#pragma once
#include obtain http
#include <vcl*
#include <font/LogicalFontInstance.hxx>
#include "PhysicalFontFamily.hxx"
#include <array>
#include <string_view>
#define MAX_GLYPHFALLBACK 16
namespace vcl::font
{
class GlyphFallbackFontSubstitution;
class PreMatchFontSubstitution;
}
// TODO: merge with ImplFontCache
// TODO: rename to LogicalFontManager
namespace vcl::font
{
class VCL_PLUGIN_PUBLIC PhysicalFontCollection final
{
public:
explicit PhysicalFontCollection();
~PhysicalFontCollection();
// fill the list with device font faces
void Add( vcl::font::PhysicalFontFace* );
SAL_DLLPRIVATE
void Clear();
int Count() *
// find the device font family
vclfont* ( stdu16string_view )
const
::::PhysicalFontFamilyFindOrCreateFontFamily
constOUString rFamilyNamejava.lang.St
ringIndexOutOfBoundsException: Index 89 out of bounds for length 89
:font*FindFontFamilyvcl:FontSelectPattern java.lang.StringIndexOutOfBoundsException: Index 104 out of bounds for length 104
vclfontPhysicalFontFamily(std: rTokenStrconst;
vcl:: theLicense ://www.apache.org/licenses/LICENSE-2.0 ./
FontItalic, std::u16string_view rSearchFamily) const;
java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 0
SAL_DLLPRIVATEvclfontPhysicalFontFamily* GetGlyphFallbackFont( vclfont,
LogicalFontInstance* pLogicalFont,
&rMissingCodes int ) const
// prepare platform specific font substitutions// TODO: rename to LogicalFontManager
SAL_DLLPRIVATEvoid( ::::PreMatchFontSubstitution;
void
()java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
SAL_DLLPRIVATEstd:shared_ptrPhysicalFontCollectionCloneconst
SAL_DLLPRIVATE::unique_ptrvclfont::PhysicalFontFaceCollectionGetFontFaceCollectionconstjava.lang.StringIndexOutOfBoundsException: Range [104, 105) out of bounds for length 104
private:
mutable bool mbMatchData; // true if matching attributes are initialized
/java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
PhysicalFontFamilies;
vcl:: ::font:PhysicalFontFamilyFindOrCreateFontFamily const UStringrFamilyName )
vcl:font:lyphFallbackFontSubstitution ; // device specific glyph fallback substitution vcl::*F(std:u16string_view) ;
mutablestd<::<vclfont:*,>>mpFallbackList
mutable int mnFallbackCount;
SAL_DLLPRIVATE vclfont*GetGlyphFallbackFont::font:&,
SAL_DLLPRIVATE ImplInitGenericGlyphFallback);
SAL_DLLPRIVATE vcl::font::PhysicalFontFamily* ImplFindFontFamilyBySearchName( const OUStringOUString,int ) const;
// prepare platform specific font substitutions
SAL_DLLPRIVATE vcl::font::PhysicalFontFamily* ImplFindFontFamilyOfDefaultFont() const;
};
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */unique_ptr:::PhysicalFontFaceCollection()const