tdf#130857 qt weld: Implement QtInstanceWidget::strip_mnemonic
[LibreOffice.git] / sc / source / ui / vba / vbasheetobject.hxx
blobd88b15034f3211185c5a9b6016880f0034f05c52
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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 .
20 #pragma once
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
39 public:
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;
63 // XHelperInterface
64 VBAHELPER_DECL_XHELPERINTERFACE
66 private:
67 /// @throws css::uno::RuntimeException
68 OUString getFullString() const;
69 /// @throws css::uno::RuntimeException
70 void setFullString( const OUString& rString );
72 private:
73 ScVbaPalette maPalette;
74 css::uno::Reference< css::beans::XPropertySet > mxPropSet;
75 sal_Int32 mnStart;
76 sal_Int32 mnLength;
79 typedef InheritedHelperInterfaceWeakImpl< ov::excel::XSheetObject > ScVbaSheetObject_BASE;
81 /** Base class for drawing objects embedded in sheets. */
82 class ScVbaSheetObjectBase : public ScVbaSheetObject_BASE
84 public:
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 );
114 protected:
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();
123 protected:
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
134 public:
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();
158 protected:
159 /// @throws css::uno::RuntimeException
160 sal_Int32 getModelIndexInForm() const;
162 protected:
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
172 public:
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;
197 // XButton methods
198 css::uno::Reference< ov::excel::XCharacters > SAL_CALL Characters(
199 const css::uno::Any& rStart, const css::uno::Any& rLength ) override;
201 // XHelperInterface
202 VBAHELPER_DECL_XHELPERINTERFACE
204 protected:
205 virtual OUString implGetBaseName() const override;
206 virtual void implSetDefaultProperties() override;
209 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */