1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2008 by Sun Microsystems, Inc.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * $RCSfile:  $
10  *
11  * $Revision:  $
12  *
13  * This file is part of OpenOffice.org.
14  *
15  * OpenOffice.org is free software: you can redistribute it and/or modify
16  * it under the terms of the GNU Lesser General Public License version 3
17  * only, as published by the Free Software Foundation.
18  *
19  * OpenOffice.org is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU Lesser General Public License version 3 for more details
23  * (a copy is included in the LICENSE file that accompanied this code).
24  *
25  * You should have received a copy of the GNU Lesser General Public License
26  * version 3 along with OpenOffice.org.  If not, see
27  * <http://www.openoffice.org/license.html>
28  * for a copy of the LGPLv3 License.
29  *
30  ************************************************************************/
31 
32 #ifndef _SHADOWOVERLAYOBJECT_HXX
33 #define _SHADOWOVERLAYOBJECT_HXX
34 
35 #include <svx/sdr/overlay/overlayobject.hxx>
36 
37 class SwView;
38 
39 namespace sw { namespace sidebarwindows {
40 
41 enum ShadowState
42 {
43     SS_NORMAL,
44     SS_VIEW,
45     SS_EDIT
46 };
47 
48 class ShadowOverlayObject: public sdr::overlay::OverlayObjectWithBasePosition
49 {
50     protected:
51         // geometry creation for OverlayObject
52         virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence();
53 
54     private:
55         basegfx::B2DPoint maSecondPosition;
56         ShadowState mShadowState;
57 
58         ShadowOverlayObject( const basegfx::B2DPoint& rBasePos,
59                              const basegfx::B2DPoint& rSecondPosition,
60                              Color aBaseColor,
61                              ShadowState aState );
62         virtual ~ShadowOverlayObject();
63 
64     public:
65         void SetShadowState(ShadowState aState);
66         inline ShadowState GetShadowState() {return mShadowState;}
67 
68         inline const basegfx::B2DPoint& GetSecondPosition() const { return maSecondPosition; }
69         void SetSecondPosition( const basegfx::B2DPoint& rNew );
70 
71         void SetPosition( const basegfx::B2DPoint& rPoint1,
72                           const basegfx::B2DPoint& rPoint2 );
73 
74         static ShadowOverlayObject* CreateShadowOverlayObject( SwView& rDocView );
75         static void DestroyShadowOverlayObject( ShadowOverlayObject* pShadow );
76 };
77 
78 } } // end of namespace sw::sidebarwindows
79 
80 #endif
81