1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_svx.hxx"
30 #include "EnhancedCustomShapeHandle.hxx"
31 #include "svx/EnhancedCustomShape2d.hxx"
32 #include "svx/unoapi.hxx"
33 
34 // -----------------------------------------------------------------------------
35 
36 EnhancedCustomShapeHandle::EnhancedCustomShapeHandle( com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& xCustomShape, sal_uInt32 nIndex ) :
37 	mnIndex		( nIndex ),
38 	mxCustomShape ( xCustomShape )
39 {
40 }
41 
42 // -----------------------------------------------------------------------------
43 
44 EnhancedCustomShapeHandle::~EnhancedCustomShapeHandle()
45 {
46 }
47 
48 // -----------------------------------------------------------------------------
49 
50 void SAL_CALL EnhancedCustomShapeHandle::acquire() throw()
51 {
52 	OWeakObject::acquire();
53 }
54 
55 // -----------------------------------------------------------------------------
56 
57 void SAL_CALL EnhancedCustomShapeHandle::release() throw()
58 {
59 	OWeakObject::release();
60 }
61 
62 // XCustomShapeHandle
63 com::sun::star::awt::Point SAL_CALL EnhancedCustomShapeHandle::getPosition()
64 	throw ( com::sun::star::uno::RuntimeException )
65 {
66 	SdrObject* pSdrObjCustomShape( GetSdrObjectFromXShape( mxCustomShape ) );
67 	if ( !pSdrObjCustomShape )
68 		throw com::sun::star::uno::RuntimeException();
69 
70 	Point aPosition;
71 	EnhancedCustomShape2d aCustomShape2d( pSdrObjCustomShape );
72 	if ( !aCustomShape2d.GetHandlePosition( mnIndex, aPosition ) )
73 		throw com::sun::star::uno::RuntimeException();
74 	return com::sun::star::awt::Point( aPosition.X(), aPosition.Y() );
75 }
76 
77 void SAL_CALL EnhancedCustomShapeHandle::setControllerPosition( const com::sun::star::awt::Point& aPnt )
78 	throw ( com::sun::star::uno::RuntimeException )
79 {
80 	SdrObject* pSdrObjCustomShape( GetSdrObjectFromXShape( mxCustomShape ) );
81 	if ( !pSdrObjCustomShape )
82 		throw com::sun::star::uno::RuntimeException();
83 
84 	EnhancedCustomShape2d aCustomShape2d( pSdrObjCustomShape );
85 	if ( !aCustomShape2d.SetHandleControllerPosition( mnIndex, aPnt ) )
86 		throw com::sun::star::uno::RuntimeException();
87 }
88 
89 // XInitialization
90 void SAL_CALL EnhancedCustomShapeHandle::initialize( const com::sun::star::uno::Sequence< com::sun::star::uno::Any >& /* aArguments */ )
91 	throw ( com::sun::star::uno::Exception, com::sun::star::uno::RuntimeException )
92 {
93 }
94