1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
22 #include <ooo/vba/excel/XButton.hpp>
23 #include <ooo/vba/excel/XControlObject.hpp>
24 #include <ooo/vba/excel/XSheetObject.hpp>
25 #include <cppuhelper/implbase.hxx>
26 #include <vbahelper/vbahelperinterface.hxx>
27 #include "vbapalette.hxx"
29 namespace com::sun::star
{
30 namespace container
{ class XIndexContainer
; }
31 namespace drawing
{ class XControlShape
; }
34 typedef InheritedHelperInterfaceWeakImpl
< ov::excel::XCharacters
> ScVbaButtonCharacters_BASE
;
36 /** Simple implementation of the Characters symbol for drawing button objects. */
37 class ScVbaButtonCharacters
: public ScVbaButtonCharacters_BASE
40 /// @throws css::uno::RuntimeException
41 explicit ScVbaButtonCharacters(
42 const css::uno::Reference
< ov::XHelperInterface
>& rxParent
,
43 const css::uno::Reference
< css::uno::XComponentContext
>& rxContext
,
44 const css::uno::Reference
< css::beans::XPropertySet
>& rxPropSet
,
45 const ScVbaPalette
& rPalette
,
46 const css::uno::Any
& rStart
,
47 const css::uno::Any
& rLength
);
48 virtual ~ScVbaButtonCharacters() override
;
50 // XCharacters attributes
51 virtual OUString SAL_CALL
getCaption() override
;
52 virtual void SAL_CALL
setCaption( const OUString
& rCaption
) override
;
53 virtual OUString SAL_CALL
getText() override
;
54 virtual void SAL_CALL
setText( const OUString
& rText
) override
;
55 virtual sal_Int32 SAL_CALL
getCount() override
;
56 virtual css::uno::Reference
< ov::excel::XFont
> SAL_CALL
getFont() override
;
57 virtual void SAL_CALL
setFont( const css::uno::Reference
< ov::excel::XFont
>& rxFont
) override
;
59 // XCharacters methods
60 virtual void SAL_CALL
Insert( const OUString
& rString
) override
;
61 virtual void SAL_CALL
Delete() override
;
64 VBAHELPER_DECL_XHELPERINTERFACE
67 /// @throws css::uno::RuntimeException
68 OUString
getFullString() const;
69 /// @throws css::uno::RuntimeException
70 void setFullString( const OUString
& rString
);
73 ScVbaPalette maPalette
;
74 css::uno::Reference
< css::beans::XPropertySet
> mxPropSet
;
79 typedef InheritedHelperInterfaceWeakImpl
< ov::excel::XSheetObject
> ScVbaSheetObject_BASE
;
81 /** Base class for drawing objects embedded in sheets. */
82 class ScVbaSheetObjectBase
: public ScVbaSheetObject_BASE
85 /// @throws css::uno::RuntimeException
86 explicit ScVbaSheetObjectBase(
87 const css::uno::Reference
< ov::XHelperInterface
>& rxParent
,
88 const css::uno::Reference
< css::uno::XComponentContext
>& rxContext
,
89 const css::uno::Reference
< css::frame::XModel
>& rxModel
,
90 const css::uno::Reference
< css::drawing::XShape
>& rxShape
);
92 // XSheetObject attributes
93 virtual double SAL_CALL
getLeft() override
;
94 virtual void SAL_CALL
setLeft( double fLeft
) override
;
95 virtual double SAL_CALL
getTop() override
;
96 virtual void SAL_CALL
setTop( double fTop
) override
;
97 virtual double SAL_CALL
getWidth() override
;
98 virtual void SAL_CALL
setWidth( double fWidth
) override
;
99 virtual double SAL_CALL
getHeight() override
;
100 virtual void SAL_CALL
setHeight( double fHeight
) override
;
101 virtual OUString SAL_CALL
getName() override
;
102 virtual void SAL_CALL
setName( const OUString
& rName
) override
;
103 virtual sal_Int32 SAL_CALL
getPlacement() override
;
104 virtual void SAL_CALL
setPlacement( sal_Int32 nPlacement
) override
;
105 virtual sal_Bool SAL_CALL
getPrintObject() override
;
106 virtual void SAL_CALL
setPrintObject( sal_Bool bPrintObject
) override
;
108 /** Sets default properties after a new object has been created.
110 @throws css::uno::RuntimeException
112 void setDefaultProperties( sal_Int32 nIndex
);
115 /** Derived classes return the base name used for new objects. */
116 virtual OUString
implGetBaseName() const = 0;
117 /** Derived classes set default properties for new drawing objects.
119 @throws css::uno::RuntimeException
121 virtual void implSetDefaultProperties();
124 ScVbaPalette maPalette
;
125 css::uno::Reference
< css::frame::XModel
> mxModel
;
126 css::uno::Reference
< css::drawing::XShape
> mxShape
;
127 css::uno::Reference
< css::beans::XPropertySet
> mxShapeProps
;
130 typedef ::cppu::ImplInheritanceHelper
< ScVbaSheetObjectBase
, ov::excel::XControlObject
> ScVbaControlObject_BASE
;
132 class ScVbaControlObjectBase
: public ScVbaControlObject_BASE
135 /// @throws css::uno::RuntimeException
136 explicit ScVbaControlObjectBase(
137 const css::uno::Reference
< ov::XHelperInterface
>& rxParent
,
138 const css::uno::Reference
< css::uno::XComponentContext
>& rxContext
,
139 const css::uno::Reference
< css::frame::XModel
>& rxModel
,
140 const css::uno::Reference
< css::container::XIndexContainer
>& rxFormIC
,
141 const css::uno::Reference
< css::drawing::XControlShape
>& rxControlShape
);
143 // XSheetObject attributes
144 virtual OUString SAL_CALL
getName() override
;
145 virtual void SAL_CALL
setName( const OUString
& rName
) override
;
146 virtual OUString SAL_CALL
getOnAction() override
;
147 virtual void SAL_CALL
setOnAction( const OUString
& rMacroName
) override
;
148 virtual sal_Bool SAL_CALL
getPrintObject() override
;
149 virtual void SAL_CALL
setPrintObject( sal_Bool bPrintObject
) override
;
151 // XControlObject attributes
152 virtual sal_Bool SAL_CALL
getAutoSize() override
;
153 virtual void SAL_CALL
setAutoSize( sal_Bool bAutoSize
) override
;
155 /// Notify that the document contains a macro event handler
156 void NotifyMacroEventRead();
159 /// @throws css::uno::RuntimeException
160 sal_Int32
getModelIndexInForm() const;
163 css::uno::Reference
< css::container::XIndexContainer
> mxFormIC
;
164 css::uno::Reference
< css::beans::XPropertySet
> mxControlProps
;
165 bool mbNotifyMacroEventRead
;
168 typedef ::cppu::ImplInheritanceHelper
< ScVbaControlObjectBase
, ov::excel::XButton
> ScVbaButton_BASE
;
170 class ScVbaButton
: public ScVbaButton_BASE
173 /// @throws css::uno::RuntimeException
174 explicit ScVbaButton(
175 const css::uno::Reference
< ov::XHelperInterface
>& rxParent
,
176 const css::uno::Reference
< css::uno::XComponentContext
>& rxContext
,
177 const css::uno::Reference
< css::frame::XModel
>& rxModel
,
178 const css::uno::Reference
< css::container::XIndexContainer
>& rxFormIC
,
179 const css::uno::Reference
< css::drawing::XControlShape
>& rxControlShape
);
181 // XButton attributes
182 virtual OUString SAL_CALL
getCaption() override
;
183 virtual void SAL_CALL
setCaption( const OUString
& rCaption
) override
;
184 virtual css::uno::Reference
< ov::excel::XFont
> SAL_CALL
getFont() override
;
185 virtual void SAL_CALL
setFont( const css::uno::Reference
< ov::excel::XFont
>& rxFont
) override
;
186 virtual sal_Int32 SAL_CALL
getHorizontalAlignment() override
;
187 virtual void SAL_CALL
setHorizontalAlignment( sal_Int32 nAlign
) override
;
188 virtual sal_Int32 SAL_CALL
getVerticalAlignment() override
;
189 virtual void SAL_CALL
setVerticalAlignment( sal_Int32 nAlign
) override
;
190 virtual sal_Int32 SAL_CALL
getOrientation() override
;
191 virtual void SAL_CALL
setOrientation( sal_Int32 nOrientation
) override
;
192 virtual css::uno::Any SAL_CALL
getValue() override
;
193 virtual void SAL_CALL
setValue( const css::uno::Any
&nValue
) override
;
194 virtual OUString SAL_CALL
getText() override
;
195 virtual void SAL_CALL
setText( const OUString
&aText
) override
;
198 css::uno::Reference
< ov::excel::XCharacters
> SAL_CALL
Characters(
199 const css::uno::Any
& rStart
, const css::uno::Any
& rLength
) override
;
202 VBAHELPER_DECL_XHELPERINTERFACE
205 virtual OUString
implGetBaseName() const override
;
206 virtual void implSetDefaultProperties() override
;
209 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */