/* -*- 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/. * */ #pragma once #include namespace basegfx { template class Size2D : protected Tuple2D { public: Size2D(TYPE width, TYPE height) : Tuple2D(width, height) { } Size2D(Tuple2D const& rTuple) : Tuple2D(rTuple.getX(), rTuple.getY()) { } TYPE getWidth() const { return Tuple2D::getX(); } TYPE getHeight() const { return Tuple2D::getY(); } void setWidth(TYPE const& rWidth) { Tuple2D::setX(rWidth); } void setHeight(TYPE const& rHeight) { Tuple2D::setY(rHeight); } bool operator==(Size2D const& rSize) const { return Tuple2D::operator==(rSize); } bool operator!=(Size2D const& rSize) const { return Tuple2D::operator!=(rSize); } Size2D& operator-=(Size2D const& rSize) { Tuple2D::operator-=(rSize); return *this; } Size2D& operator+=(Size2D const& rSize) { Tuple2D::operator+=(rSize); return *this; } Size2D& operator/=(Size2D const& rSize) { Tuple2D::operator/=(rSize); return *this; } Size2D& operator*=(Size2D const& rSize) { Tuple2D::operator*=(rSize); return *this; } Size2D& operator*=(TYPE value) { Tuple2D::operator*=(value); return *this; } Size2D& operator/=(TYPE value) { Tuple2D::operator/=(value); return *this; } Size2D operator-(void) const { return Tuple2D::operator-(); } using Tuple2D::equalZero; }; template inline Size2D operator-(const Size2D& rSizeA, const Size2D& rSizeB) { Size2D aNew(rSizeA); aNew -= rSizeB; return aNew; } template inline Size2D operator+(const Size2D& rSizeA, const Size2D& rSizeB) { Size2D aNew(rSizeA); aNew += rSizeB; return aNew; } template inline Size2D operator*(const Size2D& rSizeA, const Size2D& rSizeB) { Size2D aNew(rSizeA); aNew *= rSizeB; return aNew; } template inline Size2D operator/(const Size2D& rSizeA, const Size2D& rSizeB) { Size2D aNew(rSizeA); aNew /= rSizeB; return aNew; } } // end of namespace gfx /* vim:set shiftwidth=4 softtabstop=4 expandtab: */