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 <sfx2/app.hxx>
21 : #include <sfx2/module.hxx>
22 :
23 : #include <cuires.hrc>
24 : #include <svx/dialogs.hrc>
25 :
26 : #include "textanim.hxx"
27 : #include "textattr.hxx"
28 : #include <dialmgr.hxx>
29 : #include "svx/dlgutil.hxx"
30 :
31 : static const sal_uInt16 pRanges[] =
32 : {
33 : SDRATTR_TEXT_ANIKIND,
34 : SDRATTR_TEXT_ANIAMOUNT,
35 : 0
36 : };
37 :
38 : /*************************************************************************
39 : |*
40 : |* constructor of the tab dialog: adds pages to the dialog
41 : |*
42 : \************************************************************************/
43 :
44 0 : SvxTextTabDialog::SvxTextTabDialog( vcl::Window* pParent,
45 : const SfxItemSet* pAttr,
46 : const SdrView* pSdrView ) :
47 : SfxTabDialog ( pParent
48 : ,"TextDialog"
49 : ,"cui/ui/textdialog.ui"
50 : , pAttr ),
51 0 : pView ( pSdrView )
52 : {
53 0 : m_nTextId = AddTabPage( "RID_SVXPAGE_TEXTATTR", SvxTextAttrPage::Create, 0);
54 0 : m_nTextAnimId = AddTabPage( "RID_SVXPAGE_TEXTANIMATION", SvxTextAnimationPage::Create, 0);
55 0 : }
56 :
57 : /*************************************************************************
58 : |*
59 : |* PageCreated()
60 : |*
61 : \************************************************************************/
62 :
63 0 : void SvxTextTabDialog::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
64 : {
65 0 : if (nId == m_nTextId)
66 : {
67 0 : static_cast<SvxTextAttrPage&>(rPage).SetView( pView );
68 0 : static_cast<SvxTextAttrPage&>(rPage).Construct();
69 : }
70 0 : }
71 :
72 :
73 : /*************************************************************************
74 : |*
75 : |* Page
76 : |*
77 : \************************************************************************/
78 :
79 0 : SvxTextAnimationPage::SvxTextAnimationPage( vcl::Window* pWindow, const SfxItemSet& rInAttrs ) :
80 : SfxTabPage ( pWindow
81 : ,"TextAnimation"
82 : ,"cui/ui/textanimtabpage.ui"
83 : ,&rInAttrs ),
84 : rOutAttrs ( rInAttrs ),
85 0 : eAniKind ( SDRTEXTANI_NONE )
86 : {
87 0 : get(m_pLbEffect, "LB_EFFECT");
88 0 : get(m_pBoxDirection,"boxDIRECTION");
89 0 : get(m_pBtnUp, "BTN_UP");
90 0 : get(m_pBtnLeft, "BTN_LEFT");
91 0 : get(m_pBtnRight, "BTN_RIGHT");
92 0 : get(m_pBtnDown, "BTN_DOWN");
93 :
94 0 : get(m_pFlProperties, "FL_PROPERTIES");
95 0 : get(m_pTsbStartInside, "TSB_START_INSIDE");
96 0 : get(m_pTsbStopInside, "TSB_STOP_INSIDE");
97 :
98 0 : get(m_pBoxCount, "boxCOUNT");
99 0 : get(m_pTsbEndless,"TSB_ENDLESS");
100 0 : get(m_pNumFldCount,"NUM_FLD_COUNT");
101 :
102 0 : get(m_pTsbPixel, "TSB_PIXEL");
103 0 : get(m_pMtrFldAmount, "MTR_FLD_AMOUNT");
104 :
105 0 : get(m_pTsbAuto, "TSB_AUTO");
106 0 : get(m_pMtrFldDelay, "MTR_FLD_DELAY");
107 :
108 0 : eFUnit = GetModuleFieldUnit( rInAttrs );
109 0 : SfxItemPool* pPool = rOutAttrs.GetPool();
110 : DBG_ASSERT( pPool, "Wo ist der Pool" );
111 0 : eUnit = pPool->GetMetric( SDRATTR_TEXT_LEFTDIST );
112 :
113 0 : m_pLbEffect->SetSelectHdl( LINK( this, SvxTextAnimationPage, SelectEffectHdl_Impl ) );
114 0 : m_pTsbEndless->SetClickHdl( LINK( this, SvxTextAnimationPage, ClickEndlessHdl_Impl ) );
115 0 : m_pTsbAuto->SetClickHdl( LINK( this, SvxTextAnimationPage, ClickAutoHdl_Impl ) );
116 0 : m_pTsbPixel->SetClickHdl( LINK( this, SvxTextAnimationPage, ClickPixelHdl_Impl ) );
117 :
118 0 : Link aLink( LINK( this, SvxTextAnimationPage, ClickDirectionHdl_Impl ) );
119 0 : m_pBtnUp->SetClickHdl( aLink );
120 0 : m_pBtnLeft->SetClickHdl( aLink );
121 0 : m_pBtnRight->SetClickHdl( aLink );
122 0 : m_pBtnDown->SetClickHdl( aLink );
123 0 : }
124 :
125 : /*************************************************************************
126 : |*
127 : |* Dtor
128 : |*
129 : \************************************************************************/
130 :
131 0 : SvxTextAnimationPage::~SvxTextAnimationPage()
132 : {
133 0 : }
134 :
135 : /*************************************************************************
136 : |*
137 : |* reads the passed item set
138 : |*
139 : \************************************************************************/
140 :
141 0 : void SvxTextAnimationPage::Reset( const SfxItemSet* rAttrs )
142 : {
143 0 : const SfxItemPool* pPool = rAttrs->GetPool();
144 :
145 : // animation type
146 0 : const SfxPoolItem* pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIKIND );
147 :
148 0 : if( !pItem )
149 0 : pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIKIND );
150 0 : if( pItem )
151 : {
152 0 : eAniKind = static_cast<const SdrTextAniKindItem*>(pItem)->GetValue();
153 0 : m_pLbEffect->SelectEntryPos( sal::static_int_cast< sal_Int32 >(eAniKind) );
154 : }
155 : else
156 0 : m_pLbEffect->SetNoSelection();
157 0 : m_pLbEffect->SaveValue();
158 :
159 : // animation direction
160 0 : pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIDIRECTION );
161 0 : if( !pItem )
162 0 : pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIDIRECTION );
163 0 : if( pItem )
164 : {
165 0 : SdrTextAniDirection eValue = static_cast<const SdrTextAniDirectionItem*>(pItem)->GetValue();
166 0 : SelectDirection( eValue );
167 : }
168 : else
169 : {
170 0 : m_pBtnUp->Check( false );
171 0 : m_pBtnLeft->Check( false );
172 0 : m_pBtnRight->Check( false );
173 0 : m_pBtnDown->Check( false );
174 : }
175 0 : m_pBtnUp->SaveValue();
176 0 : m_pBtnLeft->SaveValue();
177 0 : m_pBtnRight->SaveValue();
178 0 : m_pBtnDown->SaveValue();
179 :
180 : // Start inside
181 0 : pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANISTARTINSIDE );
182 0 : if( !pItem )
183 0 : pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANISTARTINSIDE );
184 0 : if( pItem )
185 : {
186 0 : m_pTsbStartInside->EnableTriState( false );
187 0 : bool bValue = static_cast<const SdrTextAniStartInsideItem*>(pItem)->GetValue();
188 0 : if( bValue )
189 0 : m_pTsbStartInside->SetState( TRISTATE_TRUE );
190 : else
191 0 : m_pTsbStartInside->SetState( TRISTATE_FALSE );
192 : }
193 : else
194 0 : m_pTsbStartInside->SetState( TRISTATE_INDET );
195 0 : m_pTsbStartInside->SaveValue();
196 :
197 : // Stop inside
198 0 : pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANISTOPINSIDE );
199 0 : if( !pItem )
200 0 : pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANISTOPINSIDE );
201 0 : if( pItem )
202 : {
203 0 : m_pTsbStopInside->EnableTriState( false );
204 0 : bool bValue = static_cast<const SdrTextAniStopInsideItem*>(pItem)->GetValue();
205 0 : if( bValue )
206 0 : m_pTsbStopInside->SetState( TRISTATE_TRUE );
207 : else
208 0 : m_pTsbStopInside->SetState( TRISTATE_FALSE );
209 : }
210 : else
211 0 : m_pTsbStopInside->SetState( TRISTATE_INDET );
212 0 : m_pTsbStopInside->SaveValue();
213 :
214 : // quantity
215 0 : pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANICOUNT );
216 0 : if( !pItem )
217 0 : pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANICOUNT );
218 0 : if( pItem )
219 : {
220 0 : m_pTsbEndless->EnableTriState( false );
221 0 : long nValue = (long) static_cast<const SdrTextAniCountItem*>(pItem)->GetValue();
222 0 : m_pNumFldCount->SetValue( nValue );
223 0 : if( nValue == 0 )
224 : {
225 0 : if( eAniKind == SDRTEXTANI_SLIDE )
226 : {
227 0 : m_pTsbEndless->SetState( TRISTATE_FALSE );
228 0 : m_pTsbEndless->Enable( false );
229 : }
230 : else
231 : {
232 0 : m_pTsbEndless->SetState( TRISTATE_TRUE );
233 0 : m_pNumFldCount->SetEmptyFieldValue();
234 : }
235 : }
236 : else
237 0 : m_pTsbEndless->SetState( TRISTATE_FALSE );
238 : }
239 : else
240 : {
241 0 : m_pNumFldCount->SetEmptyFieldValue();
242 0 : m_pTsbEndless->SetState( TRISTATE_INDET );
243 : }
244 0 : m_pTsbEndless->SaveValue();
245 0 : m_pNumFldCount->SaveValue();
246 :
247 : // delay
248 0 : pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIDELAY );
249 0 : if( !pItem )
250 0 : pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIDELAY );
251 0 : if( pItem )
252 : {
253 0 : m_pTsbAuto->EnableTriState( false );
254 0 : long nValue = (long) static_cast<const SdrTextAniDelayItem*>(pItem)->GetValue();
255 0 : m_pMtrFldDelay->SetValue( nValue );
256 0 : if( nValue == 0 )
257 : {
258 0 : m_pTsbAuto->SetState( TRISTATE_TRUE );
259 0 : m_pMtrFldDelay->SetEmptyFieldValue();
260 : }
261 : else
262 0 : m_pTsbAuto->SetState( TRISTATE_FALSE );
263 : }
264 : else
265 : {
266 0 : m_pMtrFldDelay->SetEmptyFieldValue();
267 0 : m_pTsbAuto->SetState( TRISTATE_INDET );
268 : }
269 0 : m_pTsbAuto->SaveValue();
270 0 : m_pMtrFldDelay->SaveValue();
271 :
272 : // step size
273 0 : pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIAMOUNT );
274 0 : if( !pItem )
275 0 : pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIAMOUNT );
276 0 : if( pItem )
277 : {
278 0 : m_pTsbPixel->EnableTriState( false );
279 0 : long nValue = (long) static_cast<const SdrTextAniAmountItem*>(pItem)->GetValue();
280 0 : if( nValue <= 0 )
281 : {
282 0 : m_pTsbPixel->SetState( TRISTATE_TRUE );
283 0 : nValue = -nValue;
284 0 : if( nValue == 0 )
285 0 : nValue++;
286 0 : m_pMtrFldAmount->SetUnit( FUNIT_CUSTOM );
287 0 : m_pMtrFldAmount->SetDecimalDigits( 0 );
288 :
289 0 : m_pMtrFldAmount->SetSpinSize( 1 );
290 0 : m_pMtrFldAmount->SetMin( 1 );
291 0 : m_pMtrFldAmount->SetFirst( 1 );
292 0 : m_pMtrFldAmount->SetMax( 100 );
293 0 : m_pMtrFldAmount->SetLast( 100 );
294 :
295 0 : m_pMtrFldAmount->SetValue( nValue );
296 : }
297 : else
298 : {
299 0 : m_pTsbPixel->SetState( TRISTATE_FALSE );
300 0 : m_pMtrFldAmount->SetUnit( eFUnit );
301 0 : m_pMtrFldAmount->SetDecimalDigits( 2 );
302 :
303 0 : m_pMtrFldAmount->SetSpinSize( 10 );
304 0 : m_pMtrFldAmount->SetMin( 1 );
305 0 : m_pMtrFldAmount->SetFirst( 1 );
306 0 : m_pMtrFldAmount->SetMax( 10000 );
307 0 : m_pMtrFldAmount->SetLast( 10000 );
308 :
309 0 : SetMetricValue( *m_pMtrFldAmount, nValue, eUnit );
310 : }
311 : }
312 : else
313 : {
314 0 : m_pMtrFldAmount->Disable();
315 0 : m_pMtrFldAmount->SetEmptyFieldValue();
316 0 : m_pTsbPixel->SetState( TRISTATE_INDET );
317 : }
318 0 : m_pTsbPixel->SaveValue();
319 0 : m_pMtrFldAmount->SaveValue();
320 :
321 :
322 0 : SelectEffectHdl_Impl( NULL );
323 0 : ClickEndlessHdl_Impl( NULL );
324 0 : ClickAutoHdl_Impl( NULL );
325 : //ClickPixelHdl_Impl( NULL );
326 0 : }
327 :
328 : /*************************************************************************
329 : |*
330 : |* fills the passed item set with dialog box attributes
331 : |*
332 : \************************************************************************/
333 :
334 0 : bool SvxTextAnimationPage::FillItemSet( SfxItemSet* rAttrs)
335 : {
336 0 : bool bModified = false;
337 : sal_Int32 nPos;
338 : TriState eState;
339 :
340 : // animation type
341 0 : nPos = m_pLbEffect->GetSelectEntryPos();
342 0 : if( nPos != LISTBOX_ENTRY_NOTFOUND &&
343 0 : m_pLbEffect->IsValueChangedFromSaved() )
344 : {
345 0 : rAttrs->Put( SdrTextAniKindItem( (SdrTextAniKind) nPos ) );
346 0 : bModified = true;
347 : }
348 :
349 : // animation direction
350 0 : if( m_pBtnUp->IsValueChangedFromSaved() ||
351 0 : m_pBtnLeft->IsValueChangedFromSaved() ||
352 0 : m_pBtnRight->IsValueChangedFromSaved() ||
353 0 : m_pBtnDown->IsValueChangedFromSaved() )
354 : {
355 0 : SdrTextAniDirection eValue = (SdrTextAniDirection) GetSelectedDirection();
356 0 : rAttrs->Put( SdrTextAniDirectionItem( eValue ) );
357 0 : bModified = true;
358 : }
359 :
360 : // Start inside
361 0 : eState = m_pTsbStartInside->GetState();
362 0 : if( m_pTsbStartInside->IsValueChangedFromSaved() )
363 : {
364 0 : rAttrs->Put( SdrTextAniStartInsideItem( TRISTATE_TRUE == eState ) );
365 0 : bModified = true;
366 : }
367 :
368 : // Stop inside
369 0 : eState = m_pTsbStopInside->GetState();
370 0 : if( m_pTsbStopInside->IsValueChangedFromSaved() )
371 : {
372 0 : rAttrs->Put( SdrTextAniStopInsideItem( TRISTATE_TRUE == eState ) );
373 0 : bModified = true;
374 : }
375 :
376 : // quantity
377 0 : eState = m_pTsbEndless->GetState();
378 0 : OUString aStr = m_pNumFldCount->GetText();
379 0 : if( m_pTsbEndless->IsValueChangedFromSaved() ||
380 0 : m_pNumFldCount->IsValueChangedFromSaved() )
381 : {
382 0 : sal_Int64 nValue = 0;
383 0 : if( eState == TRISTATE_TRUE /*#89844#*/ && m_pTsbEndless->IsEnabled())
384 0 : bModified = true;
385 : else
386 : {
387 0 : if( m_pNumFldCount->IsValueChangedFromSaved() )
388 : {
389 0 : nValue = m_pNumFldCount->GetValue();
390 0 : bModified = true;
391 : }
392 : }
393 0 : if( bModified )
394 0 : rAttrs->Put( SdrTextAniCountItem( (sal_uInt16) nValue ) );
395 : }
396 :
397 : // delay
398 0 : eState = m_pTsbAuto->GetState();
399 0 : aStr = m_pMtrFldDelay->GetText();
400 0 : if( m_pTsbAuto->IsValueChangedFromSaved() ||
401 0 : m_pMtrFldDelay->IsValueChangedFromSaved() )
402 : {
403 0 : sal_Int64 nValue = 0;
404 0 : if( eState == TRISTATE_TRUE )
405 0 : bModified = true;
406 : else
407 : {
408 0 : if( m_pMtrFldDelay->IsValueChangedFromSaved() )
409 : {
410 0 : nValue = m_pMtrFldDelay->GetValue();
411 0 : bModified = true;
412 : }
413 : }
414 0 : if( bModified )
415 0 : rAttrs->Put( SdrTextAniDelayItem( (sal_uInt16) nValue ) );
416 : }
417 :
418 : // step size
419 0 : eState = m_pTsbPixel->GetState();
420 0 : aStr = m_pMtrFldAmount->GetText();
421 0 : if( m_pTsbPixel->IsValueChangedFromSaved() ||
422 0 : m_pMtrFldAmount->IsValueChangedFromSaved() )
423 : {
424 0 : sal_Int64 nValue = 0;
425 0 : if( eState == TRISTATE_TRUE )
426 : {
427 0 : nValue = m_pMtrFldAmount->GetValue();
428 0 : nValue = -nValue;
429 : }
430 : else
431 : {
432 0 : nValue = GetCoreValue( *m_pMtrFldAmount, eUnit );
433 : }
434 0 : rAttrs->Put( SdrTextAniAmountItem( (sal_Int16) nValue ) );
435 :
436 0 : bModified = true;
437 : }
438 :
439 0 : return( bModified );
440 : }
441 :
442 0 : const sal_uInt16* SvxTextAnimationPage::GetRanges()
443 : {
444 0 : return( pRanges );
445 : }
446 :
447 : /*************************************************************************
448 : |*
449 : |* creates the page
450 : |*
451 : \************************************************************************/
452 :
453 0 : SfxTabPage* SvxTextAnimationPage::Create( vcl::Window* pWindow,
454 : const SfxItemSet* rAttrs )
455 : {
456 0 : return( new SvxTextAnimationPage( pWindow, *rAttrs ) );
457 : }
458 :
459 0 : IMPL_LINK_NOARG(SvxTextAnimationPage, SelectEffectHdl_Impl)
460 : {
461 0 : sal_Int32 nPos = m_pLbEffect->GetSelectEntryPos();
462 0 : if( nPos != LISTBOX_ENTRY_NOTFOUND )
463 : {
464 0 : eAniKind = (SdrTextAniKind) nPos;
465 0 : switch( eAniKind )
466 : {
467 : case SDRTEXTANI_NONE:
468 : {
469 0 : m_pBoxDirection->Disable();
470 0 : m_pFlProperties->Disable();
471 : }
472 0 : break;
473 :
474 : case SDRTEXTANI_BLINK:
475 : case SDRTEXTANI_SCROLL:
476 : case SDRTEXTANI_ALTERNATE:
477 : case SDRTEXTANI_SLIDE:
478 : {
479 0 : m_pFlProperties->Enable();
480 0 : if( eAniKind == SDRTEXTANI_SLIDE )
481 : {
482 0 : m_pTsbStartInside->Disable();
483 0 : m_pTsbStopInside->Disable();
484 0 : m_pTsbEndless->Disable();
485 0 : m_pNumFldCount->Enable();
486 0 : m_pNumFldCount->SetValue( m_pNumFldCount->GetValue() );
487 : }
488 : else
489 : {
490 0 : m_pTsbStartInside->Enable();
491 0 : m_pTsbStopInside->Enable();
492 0 : m_pTsbEndless->Enable();
493 0 : ClickEndlessHdl_Impl( NULL );
494 : }
495 :
496 0 : m_pTsbAuto->Enable();
497 0 : ClickAutoHdl_Impl( NULL );
498 :
499 0 : if( eAniKind == SDRTEXTANI_BLINK )
500 : {
501 0 : m_pBoxDirection->Disable();
502 0 : m_pBoxCount->Disable();
503 : }
504 : else
505 : {
506 0 : m_pBoxDirection->Enable();
507 0 : m_pBoxCount->Enable();
508 : }
509 : }
510 0 : break;
511 : }
512 :
513 : }
514 0 : return( 0L );
515 : }
516 :
517 0 : IMPL_LINK_NOARG(SvxTextAnimationPage, ClickEndlessHdl_Impl)
518 : {
519 :
520 0 : if( eAniKind != SDRTEXTANI_SLIDE )
521 : {
522 0 : TriState eState = m_pTsbEndless->GetState();
523 0 : if( eState != TRISTATE_FALSE )
524 : {
525 0 : m_pNumFldCount->Disable();
526 0 : m_pNumFldCount->SetEmptyFieldValue();
527 : }
528 : else
529 : {
530 0 : m_pNumFldCount->Enable();
531 0 : m_pNumFldCount->SetValue( m_pNumFldCount->GetValue() );
532 : }
533 : }
534 0 : return( 0L );
535 : }
536 :
537 0 : IMPL_LINK_NOARG(SvxTextAnimationPage, ClickAutoHdl_Impl)
538 : {
539 0 : TriState eState = m_pTsbAuto->GetState();
540 0 : if( eState != TRISTATE_FALSE )
541 : {
542 0 : m_pMtrFldDelay->Disable();
543 0 : m_pMtrFldDelay->SetEmptyFieldValue();
544 : }
545 : else
546 : {
547 0 : m_pMtrFldDelay->Enable();
548 0 : m_pMtrFldDelay->SetValue( m_pMtrFldDelay->GetValue() );
549 : }
550 :
551 0 : return( 0L );
552 : }
553 :
554 0 : IMPL_LINK_NOARG(SvxTextAnimationPage, ClickPixelHdl_Impl)
555 : {
556 0 : TriState eState = m_pTsbPixel->GetState();
557 0 : if( eState == TRISTATE_TRUE )
558 : {
559 0 : sal_Int64 nValue = m_pMtrFldAmount->GetValue() / 10;
560 0 : m_pMtrFldAmount->Enable();
561 0 : m_pMtrFldAmount->SetUnit( FUNIT_CUSTOM );
562 : //SetFieldUnit( aMtrFldAmount, FUNIT_CUSTOM );
563 0 : m_pMtrFldAmount->SetDecimalDigits( 0 );
564 :
565 0 : m_pMtrFldAmount->SetSpinSize( 1 );
566 0 : m_pMtrFldAmount->SetMin( 1 );
567 0 : m_pMtrFldAmount->SetFirst( 1 );
568 0 : m_pMtrFldAmount->SetMax( 100 );
569 0 : m_pMtrFldAmount->SetLast( 100 );
570 :
571 0 : m_pMtrFldAmount->SetValue( nValue );
572 : }
573 0 : else if( eState == TRISTATE_FALSE )
574 : {
575 0 : sal_Int64 nValue = m_pMtrFldAmount->GetValue() * 10;
576 0 : m_pMtrFldAmount->Enable();
577 0 : m_pMtrFldAmount->SetUnit( eFUnit );
578 : //SetFieldUnit( aMtrFldAmount, eFUnit );
579 0 : m_pMtrFldAmount->SetDecimalDigits( 2 );
580 :
581 0 : m_pMtrFldAmount->SetSpinSize( 10 );
582 0 : m_pMtrFldAmount->SetMin( 1 );
583 0 : m_pMtrFldAmount->SetFirst( 1 );
584 0 : m_pMtrFldAmount->SetMax( 10000 );
585 0 : m_pMtrFldAmount->SetLast( 10000 );
586 :
587 0 : m_pMtrFldAmount->SetValue( nValue );
588 : }
589 :
590 0 : return( 0L );
591 : }
592 :
593 0 : IMPL_LINK( SvxTextAnimationPage, ClickDirectionHdl_Impl, ImageButton *, pBtn )
594 : {
595 0 : m_pBtnUp->Check( pBtn == m_pBtnUp );
596 0 : m_pBtnLeft->Check( pBtn == m_pBtnLeft );
597 0 : m_pBtnRight->Check( pBtn == m_pBtnRight );
598 0 : m_pBtnDown->Check( pBtn == m_pBtnDown );
599 :
600 0 : return( 0L );
601 : }
602 :
603 0 : void SvxTextAnimationPage::SelectDirection( SdrTextAniDirection nValue )
604 : {
605 0 : m_pBtnUp->Check( nValue == SDRTEXTANI_UP );
606 0 : m_pBtnLeft->Check( nValue == SDRTEXTANI_LEFT );
607 0 : m_pBtnRight->Check( nValue == SDRTEXTANI_RIGHT );
608 0 : m_pBtnDown->Check( nValue == SDRTEXTANI_DOWN );
609 0 : }
610 :
611 0 : sal_uInt16 SvxTextAnimationPage::GetSelectedDirection()
612 : {
613 0 : sal_uInt16 nValue = 0;
614 :
615 0 : if( m_pBtnUp->IsChecked() )
616 0 : nValue = SDRTEXTANI_UP;
617 0 : else if( m_pBtnLeft->IsChecked() )
618 0 : nValue = SDRTEXTANI_LEFT;
619 0 : else if( m_pBtnRight->IsChecked() )
620 0 : nValue = SDRTEXTANI_RIGHT;
621 0 : else if( m_pBtnDown->IsChecked() )
622 0 : nValue = SDRTEXTANI_DOWN;
623 :
624 0 : return( nValue );
625 0 : }
626 :
627 :
628 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|