1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: tablehandles.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef _SVX_TABLEHANDLES_HXX
32 #define _SVX_TABLEHANDLES_HXX
34 #include <svx/sdr/overlay/overlayobject.hxx>
36 #include <svx/svdhdl.hxx>
38 // --------------------------------------------------------------------
40 namespace sdr
{ namespace table
{
42 enum TableEdgeState
{ Empty
, Invisible
, Visible
};
48 TableEdgeState meState
;
50 TableEdge() : mnStart(0), mnEnd(0), meState(Empty
) {}
53 typedef std::vector
< TableEdge
> TableEdgeVector
;
55 class TableEdgeHdl
: public SdrHdl
58 TableEdgeHdl( const Point
& rPnt
, bool bHorizontal
, sal_Int32 nMin
, sal_Int32 nMax
, sal_Int32 nEdges
);
60 sal_Int32
GetValidDragOffset( const SdrDragStat
& rDrag
) const;
62 virtual Pointer
GetPointer() const;
64 void SetEdge( sal_Int32 nEdge
, sal_Int32 nStart
, sal_Int32 nEnd
, TableEdgeState nState
);
66 bool IsHorizontalEdge() const { return mbHorizontal
; }
68 basegfx::B2DPolyPolygon
getSpecialDragPoly(const SdrDragStat
& rDrag
) const;
69 void getPolyPolygon(basegfx::B2DPolyPolygon
& rVisible
, basegfx::B2DPolyPolygon
& rInvisible
, const SdrDragStat
* pDrag
) const;
72 // create marker for this kind
73 virtual void CreateB2dIAObject();
77 sal_Int32 mnMin
, mnMax
;
78 TableEdgeVector maEdges
;
81 class TableBorderHdl
: public SdrHdl
84 TableBorderHdl( const Rectangle
& rRect
);
86 virtual Pointer
GetPointer() const;
89 // create marker for this kind
90 virtual void CreateB2dIAObject();
93 Rectangle maRectangle
;
96 } // end of namespace table
97 } // end of namespace sdr