Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*
3 : : * This file is part of the LibreOffice project.
4 : : *
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/.
8 : : *
9 : : * This file incorporates work covered by the following license notice:
10 : : *
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 .
18 : : */
19 : :
20 : : #include <vcl/wrkwin.hxx>
21 : : #include <vcl/svapp.hxx>
22 : : #include <svtools/transfer.hxx>
23 : : #include "runtime.hxx"
24 : : #include <basic/sbstdobj.hxx>
25 : :
26 : : #define ATTR_IMP_TYPE 1
27 : : #define ATTR_IMP_WIDTH 2
28 : : #define ATTR_IMP_HEIGHT 3
29 : : #define ATTR_IMP_BOLD 4
30 : : #define ATTR_IMP_ITALIC 5
31 : : #define ATTR_IMP_STRIKETHROUGH 6
32 : : #define ATTR_IMP_UNDERLINE 7
33 : : #define ATTR_IMP_WEIGHT 8
34 : : #define ATTR_IMP_SIZE 9
35 : : #define ATTR_IMP_NAME 10
36 : :
37 : : #define METH_CLEAR 20
38 : : #define METH_GETDATA 21
39 : : #define METH_GETFORMAT 22
40 : : #define METH_GETTEXT 23
41 : : #define METH_SETDATA 24
42 : : #define METH_SETTEXT 25
43 : :
44 : : //------------------------------------------------------------------------------
45 : 778 : SbStdFactory::SbStdFactory()
46 : : {
47 : 778 : }
48 : :
49 : 0 : SbxObject* SbStdFactory::CreateObject( const rtl::OUString& rClassName )
50 : : {
51 [ # # ]: 0 : if( rClassName.equalsIgnoreAsciiCase("Picture") )
52 [ # # ]: 0 : return new SbStdPicture;
53 [ # # ]: 0 : else if( rClassName.equalsIgnoreAsciiCase("Font") )
54 [ # # ]: 0 : return new SbStdFont;
55 : : else
56 : 0 : return NULL;
57 : : }
58 : :
59 : : //------------------------------------------------------------------------------
60 : :
61 : :
62 : :
63 : 0 : void SbStdPicture::PropType( SbxVariable* pVar, SbxArray*, sal_Bool bWrite )
64 : : {
65 [ # # ]: 0 : if( bWrite )
66 : : {
67 : 0 : StarBASIC::Error( SbERR_PROP_READONLY );
68 : 0 : return;
69 : : }
70 : :
71 : 0 : GraphicType eType = aGraphic.GetType();
72 : 0 : sal_Int16 nType = 0;
73 : :
74 [ # # ]: 0 : if( eType == GRAPHIC_BITMAP )
75 : 0 : nType = 1;
76 : : else
77 [ # # ]: 0 : if( eType != GRAPHIC_NONE )
78 : 0 : nType = 2;
79 : :
80 : 0 : pVar->PutInteger( nType );
81 : : }
82 : :
83 : :
84 : 0 : void SbStdPicture::PropWidth( SbxVariable* pVar, SbxArray*, sal_Bool bWrite )
85 : : {
86 [ # # ]: 0 : if( bWrite )
87 : : {
88 [ # # ]: 0 : StarBASIC::Error( SbERR_PROP_READONLY );
89 : 0 : return;
90 : : }
91 : :
92 [ # # ]: 0 : Size aSize = aGraphic.GetPrefSize();
93 [ # # ][ # # ]: 0 : aSize = GetpApp()->GetAppWindow()->LogicToPixel( aSize, aGraphic.GetPrefMapMode() );
[ # # ][ # # ]
[ # # ]
94 [ # # ][ # # ]: 0 : aSize = GetpApp()->GetAppWindow()->PixelToLogic( aSize, MapMode( MAP_TWIP ) );
[ # # ][ # # ]
[ # # ]
95 : :
96 [ # # ]: 0 : pVar->PutInteger( (sal_Int16)aSize.Width() );
97 : : }
98 : :
99 : 0 : void SbStdPicture::PropHeight( SbxVariable* pVar, SbxArray*, sal_Bool bWrite )
100 : : {
101 [ # # ]: 0 : if( bWrite )
102 : : {
103 [ # # ]: 0 : StarBASIC::Error( SbERR_PROP_READONLY );
104 : 0 : return;
105 : : }
106 : :
107 [ # # ]: 0 : Size aSize = aGraphic.GetPrefSize();
108 [ # # ][ # # ]: 0 : aSize = GetpApp()->GetAppWindow()->LogicToPixel( aSize, aGraphic.GetPrefMapMode() );
[ # # ][ # # ]
[ # # ]
109 [ # # ][ # # ]: 0 : aSize = GetpApp()->GetAppWindow()->PixelToLogic( aSize, MapMode( MAP_TWIP ) );
[ # # ][ # # ]
[ # # ]
110 : :
111 [ # # ]: 0 : pVar->PutInteger( (sal_Int16)aSize.Height() );
112 : : }
113 : :
114 : :
115 [ # # ][ # # ]: 0 : TYPEINIT1( SbStdPicture, SbxObject );
116 : :
117 : 0 : SbStdPicture::SbStdPicture() :
118 [ # # ][ # # ]: 0 : SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("Picture") ) )
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
119 : : {
120 : : // Properties
121 [ # # ][ # # ]: 0 : SbxVariable* p = Make( String( RTL_CONSTASCII_USTRINGPARAM("Type") ), SbxCLASS_PROPERTY, SbxVARIANT );
[ # # ][ # # ]
[ # # ][ # # ]
122 : 0 : p->SetFlags( SBX_READ | SBX_DONTSTORE );
123 : 0 : p->SetUserData( ATTR_IMP_TYPE );
124 [ # # ]: 0 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("Width") ), SbxCLASS_PROPERTY, SbxVARIANT );
[ # # # # ]
[ # # ][ # # ]
[ # # ]
125 : 0 : p->SetFlags( SBX_READ | SBX_DONTSTORE );
126 : 0 : p->SetUserData( ATTR_IMP_WIDTH );
127 [ # # ]: 0 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("Height") ), SbxCLASS_PROPERTY, SbxVARIANT );
[ # # # # ]
[ # # ][ # # ]
[ # # ]
128 : 0 : p->SetFlags( SBX_READ | SBX_DONTSTORE );
129 : 0 : p->SetUserData( ATTR_IMP_HEIGHT );
130 : 0 : }
131 : :
132 [ # # ][ # # ]: 0 : SbStdPicture::~SbStdPicture()
[ # # ][ # # ]
133 : : {
134 [ # # ][ # # ]: 0 : }
[ # # ][ # # ]
[ # # ][ # # ]
135 : :
136 : :
137 : 0 : SbxVariable* SbStdPicture::Find( const rtl::OUString& rName, SbxClassType t )
138 : : {
139 : : // entered already?
140 : 0 : return SbxObject::Find( rName, t );
141 : : }
142 : :
143 : :
144 : :
145 : 0 : void SbStdPicture::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
146 : : const SfxHint& rHint, const TypeId& rHintType )
147 : :
148 : : {
149 [ # # ][ # # ]: 0 : const SbxHint* pHint = PTR_CAST( SbxHint, &rHint );
150 : :
151 [ # # ]: 0 : if( pHint )
152 : : {
153 [ # # ]: 0 : if( pHint->GetId() == SBX_HINT_INFOWANTED )
154 : : {
155 : 0 : SbxObject::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
156 : 0 : return;
157 : : }
158 : :
159 : 0 : SbxVariable* pVar = pHint->GetVar();
160 : 0 : SbxArray* pPar_ = pVar->GetParameters();
161 : 0 : sal_uInt16 nWhich = (sal_uInt16)pVar->GetUserData();
162 : 0 : sal_Bool bWrite = pHint->GetId() == SBX_HINT_DATACHANGED;
163 : :
164 : : // Propteries
165 [ # # # # ]: 0 : switch( nWhich )
166 : : {
167 : 0 : case ATTR_IMP_TYPE: PropType( pVar, pPar_, bWrite ); return;
168 : 0 : case ATTR_IMP_WIDTH: PropWidth( pVar, pPar_, bWrite ); return;
169 : 0 : case ATTR_IMP_HEIGHT: PropHeight( pVar, pPar_, bWrite ); return;
170 : : }
171 : :
172 : 0 : SbxObject::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
173 : : }
174 : : }
175 : :
176 : : //-----------------------------------------------------------------------------
177 : :
178 : 0 : void SbStdFont::PropBold( SbxVariable* pVar, SbxArray*, sal_Bool bWrite )
179 : : {
180 [ # # ]: 0 : if( bWrite )
181 : 0 : SetBold( pVar->GetBool() );
182 : : else
183 : 0 : pVar->PutBool( IsBold() );
184 : 0 : }
185 : :
186 : 0 : void SbStdFont::PropItalic( SbxVariable* pVar, SbxArray*, sal_Bool bWrite )
187 : : {
188 [ # # ]: 0 : if( bWrite )
189 : 0 : SetItalic( pVar->GetBool() );
190 : : else
191 : 0 : pVar->PutBool( IsItalic() );
192 : 0 : }
193 : :
194 : 0 : void SbStdFont::PropStrikeThrough( SbxVariable* pVar, SbxArray*, sal_Bool bWrite )
195 : : {
196 [ # # ]: 0 : if( bWrite )
197 : 0 : SetStrikeThrough( pVar->GetBool() );
198 : : else
199 : 0 : pVar->PutBool( IsStrikeThrough() );
200 : 0 : }
201 : :
202 : 0 : void SbStdFont::PropUnderline( SbxVariable* pVar, SbxArray*, sal_Bool bWrite )
203 : : {
204 [ # # ]: 0 : if( bWrite )
205 : 0 : SetUnderline( pVar->GetBool() );
206 : : else
207 : 0 : pVar->PutBool( IsUnderline() );
208 : 0 : }
209 : :
210 : 0 : void SbStdFont::PropSize( SbxVariable* pVar, SbxArray*, sal_Bool bWrite )
211 : : {
212 [ # # ]: 0 : if( bWrite )
213 : 0 : SetSize( (sal_uInt16)pVar->GetInteger() );
214 : : else
215 : 0 : pVar->PutInteger( (sal_Int16)GetSize() );
216 : 0 : }
217 : :
218 : 0 : void SbStdFont::PropName( SbxVariable* pVar, SbxArray*, sal_Bool bWrite )
219 : : {
220 [ # # ]: 0 : if( bWrite )
221 : 0 : SetFontName( pVar->GetString() );
222 : : else
223 [ # # ][ # # ]: 0 : pVar->PutString( GetFontName() );
224 : 0 : }
225 : :
226 : :
227 [ # # ][ # # ]: 0 : TYPEINIT1( SbStdFont, SbxObject );
228 : :
229 : 0 : SbStdFont::SbStdFont() :
230 [ # # ][ # # ]: 0 : SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("Font") ) )
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
231 : : {
232 : : // Properties
233 [ # # ][ # # ]: 0 : SbxVariable* p = Make( String( RTL_CONSTASCII_USTRINGPARAM("Bold") ), SbxCLASS_PROPERTY, SbxVARIANT );
[ # # ][ # # ]
[ # # ][ # # ]
234 : 0 : p->SetFlags( SBX_READWRITE | SBX_DONTSTORE );
235 : 0 : p->SetUserData( ATTR_IMP_BOLD );
236 [ # # ]: 0 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("Italic") ), SbxCLASS_PROPERTY, SbxVARIANT );
[ # # # # ]
[ # # ][ # # ]
[ # # ]
237 : 0 : p->SetFlags( SBX_READWRITE | SBX_DONTSTORE );
238 : 0 : p->SetUserData( ATTR_IMP_ITALIC );
239 [ # # ]: 0 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("StrikeThrough") ), SbxCLASS_PROPERTY, SbxVARIANT );
[ # # # # ]
[ # # ][ # # ]
[ # # ]
240 : 0 : p->SetFlags( SBX_READWRITE | SBX_DONTSTORE );
241 : 0 : p->SetUserData( ATTR_IMP_STRIKETHROUGH );
242 [ # # ]: 0 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("Underline") ), SbxCLASS_PROPERTY, SbxVARIANT );
[ # # # # ]
[ # # ][ # # ]
[ # # ]
243 : 0 : p->SetFlags( SBX_READWRITE | SBX_DONTSTORE );
244 : 0 : p->SetUserData( ATTR_IMP_UNDERLINE );
245 [ # # ]: 0 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("Size") ), SbxCLASS_PROPERTY, SbxVARIANT );
[ # # # # ]
[ # # ][ # # ]
[ # # ]
246 : 0 : p->SetFlags( SBX_READWRITE | SBX_DONTSTORE );
247 : 0 : p->SetUserData( ATTR_IMP_SIZE );
248 : :
249 : : // handle name property yourself
250 [ # # ][ # # ]: 0 : p = Find( String( RTL_CONSTASCII_USTRINGPARAM("Name") ), SbxCLASS_PROPERTY );
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
251 : : DBG_ASSERT( p, "Keine Name Property" );
252 : 0 : p->SetUserData( ATTR_IMP_NAME );
253 : 0 : }
254 : :
255 [ # # ][ # # ]: 0 : SbStdFont::~SbStdFont()
[ # # ][ # # ]
256 : : {
257 [ # # ][ # # ]: 0 : }
[ # # ][ # # ]
[ # # ][ # # ]
258 : :
259 : :
260 : 0 : SbxVariable* SbStdFont::Find( const rtl::OUString& rName, SbxClassType t )
261 : : {
262 : 0 : return SbxObject::Find( rName, t );
263 : : }
264 : :
265 : :
266 : :
267 : 0 : void SbStdFont::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
268 : : const SfxHint& rHint, const TypeId& rHintType )
269 : : {
270 [ # # ][ # # ]: 0 : const SbxHint* pHint = PTR_CAST( SbxHint, &rHint );
271 : :
272 [ # # ]: 0 : if( pHint )
273 : : {
274 [ # # ]: 0 : if( pHint->GetId() == SBX_HINT_INFOWANTED )
275 : : {
276 : 0 : SbxObject::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
277 : 0 : return;
278 : : }
279 : :
280 : 0 : SbxVariable* pVar = pHint->GetVar();
281 : 0 : SbxArray* pPar_ = pVar->GetParameters();
282 : 0 : sal_uInt16 nWhich = (sal_uInt16)pVar->GetUserData();
283 : 0 : sal_Bool bWrite = pHint->GetId() == SBX_HINT_DATACHANGED;
284 : :
285 : : // Propteries
286 [ # # # # : 0 : switch( nWhich )
# # # ]
287 : : {
288 : 0 : case ATTR_IMP_BOLD: PropBold( pVar, pPar_, bWrite ); return;
289 : 0 : case ATTR_IMP_ITALIC: PropItalic( pVar, pPar_, bWrite ); return;
290 : 0 : case ATTR_IMP_STRIKETHROUGH:PropStrikeThrough( pVar, pPar_, bWrite ); return;
291 : 0 : case ATTR_IMP_UNDERLINE: PropUnderline( pVar, pPar_, bWrite ); return;
292 : 0 : case ATTR_IMP_SIZE: PropSize( pVar, pPar_, bWrite ); return;
293 : 0 : case ATTR_IMP_NAME: PropName( pVar, pPar_, bWrite ); return;
294 : : }
295 : :
296 : 0 : SbxObject::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
297 : : }
298 : : }
299 : :
300 : :
301 : : //-----------------------------------------------------------------------------
302 : :
303 : :
304 : 0 : void SbStdClipboard::MethClear( SbxVariable*, SbxArray* pPar_, sal_Bool )
305 : : {
306 [ # # ][ # # ]: 0 : if( pPar_ && (pPar_->Count() > 1) )
[ # # ]
307 : : {
308 : 0 : StarBASIC::Error( SbERR_BAD_NUMBER_OF_ARGS );
309 : 0 : return;
310 : : }
311 : :
312 : : }
313 : :
314 : 0 : void SbStdClipboard::MethGetData( SbxVariable* pVar, SbxArray* pPar_, sal_Bool )
315 : : {
316 : : (void)pVar;
317 : :
318 [ # # ][ # # ]: 0 : if( !pPar_ || (pPar_->Count() != 2) )
[ # # ]
319 : : {
320 : 0 : StarBASIC::Error( SbERR_BAD_NUMBER_OF_ARGS );
321 : 0 : return;
322 : : }
323 : :
324 : 0 : sal_uInt16 nFormat = pPar_->Get(1)->GetInteger();
325 [ # # ][ # # ]: 0 : if( !nFormat || nFormat > 3 )
326 : : {
327 : 0 : StarBASIC::Error( SbERR_BAD_ARGUMENT );
328 : 0 : return;
329 : : }
330 : :
331 : : }
332 : :
333 : 0 : void SbStdClipboard::MethGetFormat( SbxVariable* pVar, SbxArray* pPar_, sal_Bool )
334 : : {
335 [ # # ][ # # ]: 0 : if( !pPar_ || (pPar_->Count() != 2) )
[ # # ]
336 : : {
337 : 0 : StarBASIC::Error( SbERR_BAD_NUMBER_OF_ARGS );
338 : 0 : return;
339 : : }
340 : :
341 : 0 : sal_uInt16 nFormat = pPar_->Get(1)->GetInteger();
342 [ # # ][ # # ]: 0 : if( !nFormat || nFormat > 3 )
343 : : {
344 : 0 : StarBASIC::Error( SbERR_BAD_ARGUMENT );
345 : 0 : return;
346 : : }
347 : :
348 : 0 : pVar->PutBool( sal_False );
349 : : }
350 : :
351 : 0 : void SbStdClipboard::MethGetText( SbxVariable* pVar, SbxArray* pPar_, sal_Bool )
352 : : {
353 [ # # ][ # # ]: 0 : if( pPar_ && (pPar_->Count() > 1) )
[ # # ]
354 : : {
355 : 0 : StarBASIC::Error( SbERR_BAD_NUMBER_OF_ARGS );
356 : 0 : return;
357 : : }
358 : :
359 [ # # ][ # # ]: 0 : pVar->PutString( String() );
360 : : }
361 : :
362 : 0 : void SbStdClipboard::MethSetData( SbxVariable* pVar, SbxArray* pPar_, sal_Bool )
363 : : {
364 : : (void)pVar;
365 : :
366 [ # # ][ # # ]: 0 : if( !pPar_ || (pPar_->Count() != 3) )
[ # # ]
367 : : {
368 : 0 : StarBASIC::Error( SbERR_BAD_NUMBER_OF_ARGS );
369 : 0 : return;
370 : : }
371 : :
372 : 0 : sal_uInt16 nFormat = pPar_->Get(2)->GetInteger();
373 [ # # ][ # # ]: 0 : if( !nFormat || nFormat > 3 )
374 : : {
375 : 0 : StarBASIC::Error( SbERR_BAD_ARGUMENT );
376 : 0 : return;
377 : : }
378 : :
379 : : }
380 : :
381 : 0 : void SbStdClipboard::MethSetText( SbxVariable* pVar, SbxArray* pPar_, sal_Bool )
382 : : {
383 : : (void)pVar;
384 : :
385 [ # # ][ # # ]: 0 : if( !pPar_ || (pPar_->Count() != 2) )
[ # # ]
386 : : {
387 : 0 : StarBASIC::Error( SbERR_BAD_NUMBER_OF_ARGS );
388 : 0 : return;
389 : : }
390 : :
391 : : }
392 : :
393 : :
394 [ # # ][ # # ]: 0 : TYPEINIT1( SbStdClipboard, SbxObject );
395 : :
396 : 778 : SbStdClipboard::SbStdClipboard() :
397 [ + - ][ + - ]: 778 : SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("Clipboard") ) )
[ + - ][ # # ]
[ # # ][ # # ]
398 : : {
399 [ + - ][ + - ]: 778 : SbxVariable* p = Find( String( RTL_CONSTASCII_USTRINGPARAM("Name") ), SbxCLASS_PROPERTY );
[ + - ][ + - ]
[ # # ][ # # ]
[ # # ][ # # ]
400 : : DBG_ASSERT( p, "Keine Name Property" );
401 : 778 : p->SetUserData( ATTR_IMP_NAME );
402 : :
403 : : // register methods
404 [ + - ]: 778 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("Clear") ), SbxCLASS_METHOD, SbxEMPTY );
[ + - # # ]
[ # # ][ # # ]
[ + - ]
405 : 778 : p->SetFlag( SBX_DONTSTORE );
406 : 778 : p->SetUserData( METH_CLEAR );
407 [ + - ]: 778 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("GetData") ), SbxCLASS_METHOD, SbxEMPTY );
[ + - # # ]
[ # # ][ # # ]
[ + - ]
408 : 778 : p->SetFlag( SBX_DONTSTORE );
409 : 778 : p->SetUserData( METH_GETDATA );
410 [ + - ]: 778 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("GetFormat") ), SbxCLASS_METHOD, SbxEMPTY );
[ + - # # ]
[ # # ][ # # ]
[ + - ]
411 : 778 : p->SetFlag( SBX_DONTSTORE );
412 : 778 : p->SetUserData( METH_GETFORMAT );
413 [ + - ]: 778 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("GetText") ), SbxCLASS_METHOD, SbxEMPTY );
[ + - # # ]
[ # # ][ # # ]
[ + - ]
414 : 778 : p->SetFlag( SBX_DONTSTORE );
415 : 778 : p->SetUserData( METH_GETTEXT );
416 [ + - ]: 778 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("SetData") ), SbxCLASS_METHOD, SbxEMPTY );
[ + - # # ]
[ # # ][ # # ]
[ + - ]
417 : 778 : p->SetFlag( SBX_DONTSTORE );
418 : 778 : p->SetUserData( METH_SETDATA );
419 [ + - ]: 778 : p = Make( String( RTL_CONSTASCII_USTRINGPARAM("SetText") ), SbxCLASS_METHOD, SbxEMPTY );
[ + - # # ]
[ # # ][ # # ]
[ + - ]
420 : 778 : p->SetFlag( SBX_DONTSTORE );
421 : 778 : p->SetUserData( METH_SETTEXT );
422 : 778 : }
423 : :
424 [ + - ][ # # ]: 1430 : SbStdClipboard::~SbStdClipboard()
425 : : {
426 [ + - ][ - + ]: 2145 : }
[ # # ][ # # ]
[ # # ][ # # ]
427 : :
428 : :
429 : 778 : SbxVariable* SbStdClipboard::Find( const rtl::OUString& rName, SbxClassType t )
430 : : {
431 : 778 : return SbxObject::Find( rName, t );
432 : : }
433 : :
434 : :
435 : :
436 : 0 : void SbStdClipboard::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
437 : : const SfxHint& rHint, const TypeId& rHintType )
438 : : {
439 [ # # ][ # # ]: 0 : const SbxHint* pHint = PTR_CAST( SbxHint, &rHint );
440 : :
441 [ # # ]: 0 : if( pHint )
442 : : {
443 [ # # ]: 0 : if( pHint->GetId() == SBX_HINT_INFOWANTED )
444 : : {
445 : 0 : SbxObject::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
446 : 0 : return;
447 : : }
448 : :
449 : 0 : SbxVariable* pVar = pHint->GetVar();
450 : 0 : SbxArray* pPar_ = pVar->GetParameters();
451 : 0 : sal_uInt16 nWhich = (sal_uInt16)pVar->GetUserData();
452 : 0 : sal_Bool bWrite = pHint->GetId() == SBX_HINT_DATACHANGED;
453 : :
454 : : // Methods
455 [ # # # # : 0 : switch( nWhich )
# # # ]
456 : : {
457 : 0 : case METH_CLEAR: MethClear( pVar, pPar_, bWrite ); return;
458 : 0 : case METH_GETDATA: MethGetData( pVar, pPar_, bWrite ); return;
459 : 0 : case METH_GETFORMAT: MethGetFormat( pVar, pPar_, bWrite ); return;
460 : 0 : case METH_GETTEXT: MethGetText( pVar, pPar_, bWrite ); return;
461 : 0 : case METH_SETDATA: MethSetData( pVar, pPar_, bWrite ); return;
462 : 0 : case METH_SETTEXT: MethSetText( pVar, pPar_, bWrite ); return;
463 : : }
464 : :
465 : 0 : SbxObject::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
466 : : }
467 : : }
468 : :
469 : :
470 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|