Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #ifndef SVX_SDR_CONTACT_VIEWOBJECTCONTACTOFUNOCONTROL_HXX
30 : : #define SVX_SDR_CONTACT_VIEWOBJECTCONTACTOFUNOCONTROL_HXX
31 : :
32 : : #include <svx/sdr/contact/viewobjectcontactofsdrobj.hxx>
33 : :
34 : : #include <com/sun/star/uno/Reference.hxx>
35 : : #include <rtl/ref.hxx>
36 : : #include <svx/svxdllapi.h>
37 : :
38 : : class OutputDevice;
39 : : class Window;
40 : : class SdrUnoObj;
41 : : namespace com { namespace sun { namespace star {
42 : : namespace awt {
43 : : class XControl;
44 : : class XControlContainer;
45 : : }
46 : : } } }
47 : :
48 : : //........................................................................
49 : : namespace sdr { namespace contact {
50 : : //........................................................................
51 : :
52 : : class ViewContactOfUnoControl;
53 : : class ObjectContactOfPageView;
54 : : //====================================================================
55 : : //= ViewObjectContactOfUnoControl
56 : : //====================================================================
57 : : class ViewObjectContactOfUnoControl_Impl;
58 : : class SVX_DLLPRIVATE ViewObjectContactOfUnoControl : public ViewObjectContactOfSdrObj
59 : : {
60 : : protected:
61 : : ::rtl::Reference< ViewObjectContactOfUnoControl_Impl > m_pImpl;
62 : :
63 : : public:
64 : : ViewObjectContactOfUnoControl( ObjectContact& _rObjectContact, ViewContactOfUnoControl& _rViewContact );
65 : :
66 : : /// returns the ->XControl instance belonging to the instance, creates it if necessary
67 : : ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >
68 : : getControl();
69 : :
70 : : /** retrieves a temporary XControl instance, whose parent is the given device
71 : : @seealso SdrUnoObj::GetTemporaryControlForWindow
72 : : */
73 : : static ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >
74 : : getTemporaryControlForWindow(
75 : : const Window& _rWindow,
76 : : ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& _inout_ControlContainer,
77 : : const SdrUnoObj& _rUnoObject
78 : : );
79 : :
80 : : /// ensures that the control belonging to this instances has a given visibility
81 : : void ensureControlVisibility( bool _bVisible ) const;
82 : :
83 : : /** sets the design/alive mode of the control
84 : : */
85 : : void setControlDesignMode( bool _bDesignMode ) const;
86 : :
87 : : /** callback from impl class to react on changes of properties form the XControlModel
88 : : */
89 : : void propertyChange();
90 : :
91 : : /** React on changes of the object of this ViewContact
92 : : */
93 : : virtual void ActionChanged();
94 : :
95 : : /** to be called when any aspect of the control which requires view updates changed
96 : : */
97 : 0 : struct ImplAccess { friend class ViewObjectContactOfUnoControl_Impl; friend class ViewObjectContactOfUnoControl; private: ImplAccess() { } };
98 : 0 : void onControlChangedOrModified( ImplAccess ) { impl_onControlChangedOrModified(); }
99 : :
100 : : protected:
101 : : ~ViewObjectContactOfUnoControl();
102 : :
103 : : // support for Primitive2D
104 : : virtual drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequence(const DisplayInfo& rDisplayInfo) const;
105 : :
106 : : // visibility check
107 : : virtual bool isPrimitiveVisible( const DisplayInfo& _rDisplayInfo ) const;
108 : : /// to be called when any aspect of the control which requires view updates changed
109 : : void impl_onControlChangedOrModified();
110 : :
111 : : private:
112 : : ViewObjectContactOfUnoControl(); // never implemented
113 : : ViewObjectContactOfUnoControl( const ViewObjectContactOfUnoControl& ); // never implemented
114 : : ViewObjectContactOfUnoControl& operator=( const ViewObjectContactOfUnoControl& ); // never implemented
115 : : };
116 : :
117 : : //====================================================================
118 : : //= UnoControlPrintOrPreviewContact
119 : : //====================================================================
120 : : class SVX_DLLPRIVATE UnoControlPrintOrPreviewContact : public ViewObjectContactOfUnoControl
121 : : {
122 : : public:
123 : : UnoControlPrintOrPreviewContact( ObjectContactOfPageView& _rObjectContact, ViewContactOfUnoControl& _rViewContact );
124 : : ~UnoControlPrintOrPreviewContact();
125 : :
126 : : private:
127 : : UnoControlPrintOrPreviewContact(); // never implemented
128 : : UnoControlPrintOrPreviewContact( const UnoControlPrintOrPreviewContact& ); // never implemented
129 : : UnoControlPrintOrPreviewContact& operator=( const UnoControlPrintOrPreviewContact& ); // never implemented
130 : :
131 : : virtual drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequence(const DisplayInfo& rDisplayInfo ) const;
132 : : };
133 : :
134 : : //........................................................................
135 : : } } // namespace sdr::contact
136 : : //........................................................................
137 : :
138 : : #endif // SVX_SDR_CONTACT_VIEWOBJECTCONTACTOFUNOCONTROL_HXX
139 : :
140 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|