/* -*- 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 . */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace psp; /******************************************************* * GenPspGraphics *******************************************************/ GenPspGraphics::GenPspGraphics() : m_pJobData( nullptr ) , m_aTextRenderImpl(m_aCairoCommon) , m_pBackend(new SvpGraphicsBackend(m_aCairoCommon)) { } void GenPspGraphics::Init(psp::JobData* pJob) { m_pJobData = pJob; SetLayout( SalLayoutFlags::NONE ); } GenPspGraphics::~GenPspGraphics() { ReleaseFonts(); } void GenPspGraphics::GetResolution( sal_Int32 &rDPIX, sal_Int32 &rDPIY ) { if (m_pJobData != nullptr) { int x = m_pJobData->m_aContext.getRenderResolution(); rDPIX = x; rDPIY = x; } } void GenPspGraphics::DrawTextLayout(const GenericSalLayout& rLayout) { m_aTextRenderImpl.DrawTextLayout(rLayout, *this); } FontCharMapRef GenPspGraphics::GetFontCharMap() const { return m_aTextRenderImpl.GetFontCharMap(); } bool GenPspGraphics::GetFontCapabilities(vcl::FontCapabilities &rFontCapabilities) const { return m_aTextRenderImpl.GetFontCapabilities(rFontCapabilities); } void GenPspGraphics::SetFont(LogicalFontInstance *pFontInstance, int nFallbackLevel) { m_aTextRenderImpl.SetFont(pFontInstance, nFallbackLevel); } void GenPspGraphics::SetTextColor( Color nColor ) { m_aTextRenderImpl.SetTextColor(nColor); } bool GenPspGraphics::AddTempDevFont( vcl::font::PhysicalFontCollection* pFontCollection, const OUString& rFileURL, const OUString& rFontName ) { return m_aTextRenderImpl.AddTempDevFont(pFontCollection, rFileURL, rFontName); } void GenPspGraphics::GetDevFontList( vcl::font::PhysicalFontCollection *pFontCollection ) { m_aTextRenderImpl.GetDevFontList(pFontCollection); } void GenPspGraphics::ClearDevFontCache() { m_aTextRenderImpl.ClearDevFontCache(); } void GenPspGraphics::GetFontMetric(FontMetricDataRef& rxFontMetric, int nFallbackLevel) { m_aTextRenderImpl.GetFontMetric(rxFontMetric, nFallbackLevel); } std::unique_ptr GenPspGraphics::GetTextLayout(int nFallbackLevel) { return m_aTextRenderImpl.GetTextLayout(nFallbackLevel); } namespace vcl { const char* getLangBoost() { const char* pLangBoost; const LanguageType eLang = Application::GetSettings().GetUILanguageTag().getLanguageType(); if (eLang == LANGUAGE_JAPANESE) pLangBoost = "jan"; else if (MsLangId::isKorean(eLang)) pLangBoost = "kor"; else if (MsLangId::isSimplifiedChinese(eLang)) pLangBoost = "zhs"; else if (MsLangId::isTraditionalChinese(eLang)) pLangBoost = "zht"; else pLangBoost = nullptr; return pLangBoost; } } SystemGraphicsData GenPspGraphics::GetGraphicsData() const { return SystemGraphicsData(); } #if ENABLE_CAIRO_CANVAS bool GenPspGraphics::SupportsCairo() const { return false; } cairo::SurfaceSharedPtr GenPspGraphics::CreateSurface(const cairo::CairoSurfaceSharedPtr& /*rSurface*/) const { return cairo::SurfaceSharedPtr(); } cairo::SurfaceSharedPtr GenPspGraphics::CreateSurface(const OutputDevice& /*rRefDevice*/, int /*x*/, int /*y*/, int /*width*/, int /*height*/) const { return cairo::SurfaceSharedPtr(); } cairo::SurfaceSharedPtr GenPspGraphics::CreateBitmapSurface(const OutputDevice& /*rRefDevice*/, const BitmapSystemData& /*rData*/, const Size& /*rSize*/) const { return cairo::SurfaceSharedPtr(); } css::uno::Any GenPspGraphics::GetNativeSurfaceHandle(cairo::SurfaceSharedPtr& /*rSurface*/, const basegfx::B2ISize& /*rSize*/) const { return css::uno::Any(); } #endif // ENABLE_CAIRO_CANVAS /* vim:set shiftwidth=4 softtabstop=4 expandtab: */