diff options
Diffstat (limited to 'svx/inc/svx/xdash.hxx')
-rw-r--r-- | svx/inc/svx/xdash.hxx | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/svx/inc/svx/xdash.hxx b/svx/inc/svx/xdash.hxx new file mode 100644 index 000000000000..3005c2a1b752 --- /dev/null +++ b/svx/inc/svx/xdash.hxx @@ -0,0 +1,77 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_XDASH_HXX +#define _SVX_XDASH_HXX + +//------------- +// class XDash +//------------- + +#include <svx/xenum.hxx> +#include "svx/svxdllapi.h" + +#include <vector> + +class SVX_DLLPUBLIC XDash +{ +protected: + XDashStyle eDash; + USHORT nDots; + ULONG nDotLen; + USHORT nDashes; + ULONG nDashLen; + ULONG nDistance; + +public: + XDash(XDashStyle eDash = XDASH_RECT, + USHORT nDots = 1, ULONG nDotLen = 20, + USHORT nDashes = 1, ULONG nDashLen = 20, ULONG nDistance = 20); + + bool operator==(const XDash& rDash) const; + + void SetDashStyle(XDashStyle eNewStyle) { eDash = eNewStyle; } + void SetDots(USHORT nNewDots) { nDots = nNewDots; } + void SetDotLen(ULONG nNewDotLen) { nDotLen = nNewDotLen; } + void SetDashes(USHORT nNewDashes) { nDashes = nNewDashes; } + void SetDashLen(ULONG nNewDashLen) { nDashLen = nNewDashLen; } + void SetDistance(ULONG nNewDistance) { nDistance = nNewDistance; } + + XDashStyle GetDashStyle() const { return eDash; } + USHORT GetDots() const { return nDots; } + ULONG GetDotLen() const { return nDotLen; } + USHORT GetDashes() const { return nDashes; } + ULONG GetDashLen() const { return nDashLen; } + ULONG GetDistance() const { return nDistance; } + + // XDash is translated into an array of doubles which describe the lengths of the + // dashes, dots and empty passages. It returns the complete length of the full DashDot + // sequence and fills the given vetor of doubles accordingly (also resizing, so deleting it). + double CreateDotDashArray(::std::vector< double >& rDotDashArray, double fLineWidth) const; +}; + +#endif |