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