diff options
author | Katarina Behrens <bubli@bubli.org> | 2014-11-28 11:20:04 +0100 |
---|---|---|
committer | Katarina Behrens <bubli@bubli.org> | 2014-11-29 08:18:34 +0000 |
commit | 1386c348f81738a9966d1217db89d1f603466317 (patch) | |
tree | e4b1771a865a23b9f0ecd8bc43c4a2d947add396 /include/svx/transfrmhelper.hxx | |
parent | e22325ca9076de4cf11c82f21da611b8c7ba1b5a (diff) |
fdo#82616: set limits on spinboxes according to size of workarea
Do it the same way as position'n'size dialog does, for that matter
move shared code into a separate header/class.
This fixes regression from .ui migration that omitted spinbox limits
Change-Id: I884904719b2608dd80aecc5d7ffb3923de71774d
Reviewed-on: https://gerrit.libreoffice.org/13174
Tested-by: LibreOffice gerrit bot <gerrit@libreoffice.org>
Reviewed-by: Katarina Behrens <bubli@bubli.org>
Diffstat (limited to 'include/svx/transfrmhelper.hxx')
-rw-r--r-- | include/svx/transfrmhelper.hxx | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/include/svx/transfrmhelper.hxx b/include/svx/transfrmhelper.hxx new file mode 100644 index 000000000000..71affa79ab13 --- /dev/null +++ b/include/svx/transfrmhelper.hxx @@ -0,0 +1,50 @@ +/* -*- 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_SVX_TRANSFRMHELPER_HXX +#define INCLUDED_SVX_TRANSFRMHELPER_HXX + +#include <basegfx/range/b2drange.hxx> +#include <tools/fldunit.hxx> +#include <tools/mapunit.hxx> + +class SVX_DLLPUBLIC TransfrmHelper +{ +public: + static void ConvertRect(basegfx::B2DRange& rRange, const sal_uInt16 nDigits, const MapUnit ePoolUnit, const FieldUnit eDlgUnit) + { + const basegfx::B2DPoint aTopLeft( + (double)MetricField::ConvertValue(basegfx::fround(rRange.getMinX()), nDigits, ePoolUnit, eDlgUnit), + (double)MetricField::ConvertValue(basegfx::fround(rRange.getMinY()), nDigits, ePoolUnit, eDlgUnit)); + const basegfx::B2DPoint aBottomRight( + (double)MetricField::ConvertValue(basegfx::fround(rRange.getMaxX()), nDigits, ePoolUnit, eDlgUnit), + (double)MetricField::ConvertValue(basegfx::fround(rRange.getMaxY()), nDigits, ePoolUnit, eDlgUnit)); + + rRange = basegfx::B2DRange(aTopLeft, aBottomRight); + } + + static void ScaleRect(basegfx::B2DRange& rRange, const Fraction aUIScale) + { + const double fFactor(1.0 / double(aUIScale)); + rRange = basegfx::B2DRange(rRange.getMinimum() * fFactor, rRange.getMaximum() * fFactor); + } +}; + +#endif +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |