/* -*- 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 . */ #ifndef INCLUDED_VCL_CANVASTOOLS_HXX #define INCLUDED_VCL_CANVASTOOLS_HXX #include #include #include #include #include class Point; class Size; namespace tools { class Rectangle; } class BitmapEx; class Color; namespace basegfx { class B2DVector; class B2DPoint; class B2DRange; class B2IPoint; class B2IRange; class B2DSize; } namespace com::sun::star::geometry { struct RealSize2D; struct IntegerPoint2D; struct IntegerSize2D; struct IntegerRectangle2D; } namespace com::sun::star::rendering { class XBitmap; class XIntegerReadOnlyBitmap; } namespace com::sun::star::rendering { class XColorSpace; } namespace vcl::unotools { // Bitmap conversions /** Create an XBitmap from VCL BitmapEx */ css::uno::Reference< css::rendering::XBitmap > VCL_DLLPUBLIC xBitmapFromBitmapEx( const ::BitmapEx& inputBitmap ); /** Create a BitmapEx from an XBitmap */ ::BitmapEx VCL_DLLPUBLIC bitmapExFromXBitmap( const css::uno::Reference< css::rendering::XIntegerReadOnlyBitmap >& xInputBitmap ); // Color conversions (vcl/tools Color <-> canvas standard color space) /** Create a device-specific color sequence from VCL/Tools color Note that this method assumes a color space equivalent to the one returned from createStandardColorSpace() */ css::uno::Sequence< double > VCL_DLLPUBLIC colorToStdColorSpaceSequence( const Color& rColor ); /** Convert color to device color sequence @param rColor Color to convert @param xColorSpace Color space to convert into */ css::uno::Sequence< double > VCL_DLLPUBLIC colorToDoubleSequence( const Color& rColor, const css::uno::Reference< css::rendering::XColorSpace >& xColorSpace ); /** Convert from standard device color space to VCL/Tools color Note that this method assumes a color space equivalent to the one returned from createStandardColorSpace() */ Color VCL_DLLPUBLIC stdColorSpaceSequenceToColor( const css::uno::Sequence< double >& rColor ); /** Convert color to device color sequence @param rColor Color sequence to convert from @param xColorSpace Color space to convert from */ Color VCL_DLLPUBLIC doubleSequenceToColor( const css::uno::Sequence< double >& rColor, const css::uno::Reference< css::rendering::XColorSpace >& xColorSpace ); /// Convert [0,1] double value to [0,255] int inline sal_Int8 toByteColor( double val ) { return sal::static_int_cast( basegfx::fround(val*255.0)); } /// Convert [0,255] int value to [0,1] double value inline double toDoubleColor( sal_uInt8 val ) { return val / 255.0; } /// Create a standard color space suitable for VCL RGB color css::uno::Reference< css::rendering::XColorSpace> VCL_DLLPUBLIC createStandardColorSpace(); // Geometry conversions (vcl/tools <-> x) // geometry::Real css::geometry::RealSize2D VCL_DLLPUBLIC size2DFromSize( const Size& ); Size VCL_DLLPUBLIC sizeFromRealSize2D( const css::geometry::RealSize2D& ); // geometry::Integer css::geometry::IntegerSize2D VCL_DLLPUBLIC integerSize2DFromSize( const Size& ); Size VCL_DLLPUBLIC sizeFromIntegerSize2D( const css::geometry::IntegerSize2D& ); Point VCL_DLLPUBLIC pointFromIntegerPoint2D( const css::geometry::IntegerPoint2D& ); tools::Rectangle VCL_DLLPUBLIC rectangleFromIntegerRectangle2D( const css::geometry::IntegerRectangle2D& ); // basegfx::B2D Size VCL_DLLPUBLIC sizeFromB2DSize( const basegfx::B2DVector& ); Point VCL_DLLPUBLIC pointFromB2DPoint( const basegfx::B2DPoint& ); tools::Rectangle VCL_DLLPUBLIC rectangleFromB2DRectangle( const basegfx::B2DRange& ); VCL_DLLPUBLIC basegfx::B2DSize b2DSizeFromSize(const Size& rSize); VCL_DLLPUBLIC basegfx::B2DVector b2DVectorFromSize(const Size& rSize); basegfx::B2DPoint VCL_DLLPUBLIC b2DPointFromPoint( const Point& ); basegfx::B2DRange VCL_DLLPUBLIC b2DRectangleFromRectangle( const tools::Rectangle& ); // basegfx::B2I Point VCL_DLLPUBLIC pointFromB2IPoint( const basegfx::B2IPoint& ); tools::Rectangle VCL_DLLPUBLIC rectangleFromB2IRectangle( const basegfx::B2IRange& ); basegfx::B2IPoint VCL_DLLPUBLIC b2IPointFromPoint(const Point&); basegfx::B2IRectangle VCL_DLLPUBLIC b2IRectangleFromRectangle(const tools::Rectangle&); } #endif // INCLUDED_VCL_CANVASTOOLS_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ ro/lhm/libreoffice-7-6+backports'>distro/lhm/libreoffice-7-6+backports LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-08-12Fix typosAndrea Gelmini
Change-Id: I359ac987daa01e624bdf889c319eeb660f88bbfd Reviewed-on: https://gerrit.libreoffice.org/77260 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-07-31Improved loplugin:stringconstant (now that GCC 7 supports it): svlStephan Bergmann
Change-Id: I7df3b3c430c0bb8e12eeedc1d0bf11d1f7453f55 Reviewed-on: https://gerrit.libreoffice.org/76642 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-07-15Simplify Sequence iterations in svlArkadiy Illarionov
Use range-based loops, STL and comphelper functions Change-Id: I1c3dbf194600bec60c0881d2d19ff07b89d8333b Reviewed-on: https://gerrit.libreoffice.org/75563 Tested-by: Jenkins Reviewed-by: Arkadiy Illarionov <qarkai@gmail.com>
2019-06-07tdf#42949 Fix IWYU warnings in svl/Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Except source/svdde/* which is WIN-specific Also recheck include/svl Change-Id: I32d3bcb6b14665c56c07a2f10526329b08c64cbe Reviewed-on: https://gerrit.libreoffice.org/73630 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-10-12SvNumberFormatsSupplierServiceObject: default to LANGUAGE_SYSTEMEike Rathke
... instead of LANGUAGE_ENGLISH_US that will be ultimate fall-back anyway if no match is found. Change-Id: Ice6495e54fa0a1e275769fcfdf1e0e932e22944e Reviewed-on: https://gerrit.libreoffice.org/61729 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
2018-09-12loplugin:simplifyconstruct in stoc..svlNoel Grandin
Change-Id: I81d465d66a979e9a1e092e5d23ed339840d1fb2d Reviewed-on: https://gerrit.libreoffice.org/60315 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-13loplugin:useuniqueptr in svlNoel Grandin
Change-Id: I89aa05b3c59ca3ad680d35899400957a399ccf0e Reviewed-on: https://gerrit.libreoffice.org/47795 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-12-11loplugin:salcall fix functionsNoel Grandin
since cdecl is the default calling convention on Windows for such functions, the annotation is redundant. Change-Id: I1a85fa27e5ac65ce0e04a19bde74c90800ffaa2d Reviewed-on: https://gerrit.libreoffice.org/46164 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-26Remove dynamic exception specificationsStephan Bergmann
...(for now, from LIBO_INTERNAL_CODE only). See the mail thread starting at <https://lists.freedesktop.org/archives/libreoffice/2017-January/076665.html> "Dynamic Exception Specifications" for details. Most changes have been done automatically by the rewriting loplugin:dynexcspec (after enabling the rewriting mode, to be committed shortly). The way it only removes exception specs from declarations if it also sees a definition, it identified some dead declarations-w/o-definitions (that have been removed manually) and some cases where a definition appeared in multiple include files (which have also been cleaned up manually). There's also been cases of macro paramters (that were used to abstract over exception specs) that have become unused now (and been removed). Furthermore, some code needed to be cleaned up manually (avmedia/source/quicktime/ and connectivity/source/drivers/kab/), as I had no configurations available that would actually build that code. Missing @throws documentation has not been applied in such manual clean-up. Change-Id: I3408691256c9b0c12bc5332de976743626e13960 Reviewed-on: https://gerrit.libreoffice.org/33574 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>