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 #ifndef _SDR_CONTACT_VIEWCONTACTOFSDRMEDIAOBJ_HXX
29 #define _SDR_CONTACT_VIEWCONTACTOFSDRMEDIAOBJ_HXX
30 
31 #include <svx/sdr/contact/viewcontactofsdrobj.hxx>
32 #include "svx/svxdllapi.h"
33 
34 //////////////////////////////////////////////////////////////////////////////
35 // predeclarations
36 
37 class SdrMediaObj;
38 namespace avmedia { class MediaItem; }
39 
40 //////////////////////////////////////////////////////////////////////////////
41 
42 namespace sdr
43 {
44 	namespace contact
45 	{
46 		class SVX_DLLPUBLIC ViewContactOfSdrMediaObj : public ViewContactOfSdrObj
47 		{
48 			friend class ViewObjectContactOfSdrMediaObj;
49 
50 		public:
51 
52 			// basic constructor, used from SdrObject.
53 			ViewContactOfSdrMediaObj( SdrMediaObj& rMediaObj );
54 			virtual ~ViewContactOfSdrMediaObj();
55 
56 		public:
57 
58 			// access to SdrMediaObj
59 			SdrMediaObj& GetSdrMediaObj() const
60 			{
61 				return (SdrMediaObj&)GetSdrObject();
62 			}
63 
64 			bool	hasPreferredSize() const;
65 			Size	getPreferredSize() const;
66 
67 			void	updateMediaItem( ::avmedia::MediaItem& rItem ) const;
68 			void	executeMediaItem( const ::avmedia::MediaItem& rItem );
69 
70 		protected:
71 
72 			// Create a Object-Specific ViewObjectContact, set ViewContact and
73 			// ObjectContact. Always needs to return something.
74 			virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact);
75 
76 			// get notified if some properties have changed
77 			virtual void mediaPropertiesChanged( const ::avmedia::MediaItem& rNewState );
78 
79 		protected:
80 			// This method is responsible for creating the graphical visualisation data
81             // ONLY based on model data
82 			virtual drawinglayer::primitive2d::Primitive2DSequence createViewIndependentPrimitive2DSequence() const;
83 		};
84 	} // end of namespace contact
85 } // end of namespace sdr
86 
87 //////////////////////////////////////////////////////////////////////////////
88 
89 #endif //_SDR_CONTACT_VIEWCONTACTOFSDRMEDIAOBJ_HXX
90