LibreOffice Module cui (master) 1
textanim.cxx
Go to the documentation of this file.
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 <textanim.hxx>
21#include <textattr.hxx>
22#include <TextColumnsPage.hxx>
23#include <svx/dlgutil.hxx>
24#include <svx/svdmark.hxx>
25#include <svx/svdview.hxx>
26#include <svx/sdtaaitm.hxx>
27#include <svx/sdtacitm.hxx>
28#include <svx/sdtaiitm.hxx>
29#include <svx/sdtayitm.hxx>
30#include <svtools/unitconv.hxx>
31
33 svl::Items<SDRATTR_TEXT_ANIKIND, SDRATTR_TEXT_ANIAMOUNT>);
34
35/*************************************************************************
36|*
37|* constructor of the tab dialog: adds pages to the dialog
38|*
39\************************************************************************/
40
41SvxTextTabDialog::SvxTextTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrView* pSdrView)
42 : SfxTabDialogController(pParent, "cui/ui/textdialog.ui", "TextDialog", pAttr)
43 , pView(pSdrView)
44{
45 AddTabPage("RID_SVXPAGE_TEXTATTR", SvxTextAttrPage::Create, nullptr);
46 AddTabPage("RID_SVXPAGE_TEXTANIMATION", SvxTextAnimationPage::Create, nullptr);
47 AddTabPage("RID_SVXPAGE_TEXTCOLUMNS", SvxTextColumnsPage::Create, nullptr);
48}
49
50/*************************************************************************
51|*
52|* PageCreated()
53|*
54\************************************************************************/
55
56void SvxTextTabDialog::PageCreated(const OUString& rId, SfxTabPage &rPage)
57{
58 if (rId != "RID_SVXPAGE_TEXTATTR")
59 return;
60
61 SdrObjKind eKind = SdrObjKind::NONE;
62 if (pView)
63 {
64 const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
65 bool bHasMarked = rMarkList.GetMarkCount() > 0;
66 if (bHasMarked)
67 {
68 if (rMarkList.GetMarkCount() == 1)
69 {
70 const SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
71 eKind = pObj->GetObjIdentifier();
72 }
73 }
74 }
75 static_cast<SvxTextAttrPage&>(rPage).SetObjKind(eKind);
76 static_cast<SvxTextAttrPage&>(rPage).Construct();
77}
78
79/*************************************************************************
80|*
81|* Page
82|*
83\************************************************************************/
85 : SfxTabPage(pPage, pController, "cui/ui/textanimtabpage.ui", "TextAnimation", &rInAttrs)
86 , eAniKind(SdrTextAniKind::NONE)
87 , m_aUpState(TRISTATE_INDET)
88 , m_aLeftState(TRISTATE_INDET)
89 , m_aRightState(TRISTATE_INDET)
90 , m_aDownState(TRISTATE_INDET)
91 , m_xLbEffect(m_xBuilder->weld_combo_box("LB_EFFECT"))
92 , m_xBoxDirection(m_xBuilder->weld_widget("boxDIRECTION"))
93 , m_xBtnUp(m_xBuilder->weld_toggle_button("BTN_UP"))
94 , m_xBtnLeft(m_xBuilder->weld_toggle_button("BTN_LEFT"))
95 , m_xBtnRight(m_xBuilder->weld_toggle_button("BTN_RIGHT"))
96 , m_xBtnDown(m_xBuilder->weld_toggle_button("BTN_DOWN"))
97 , m_xFlProperties(m_xBuilder->weld_frame("FL_PROPERTIES"))
98 , m_xTsbStartInside(m_xBuilder->weld_check_button("TSB_START_INSIDE"))
99 , m_xTsbStopInside(m_xBuilder->weld_check_button("TSB_STOP_INSIDE"))
100 , m_xBoxCount(m_xBuilder->weld_widget("boxCOUNT"))
101 , m_xTsbEndless(m_xBuilder->weld_check_button("TSB_ENDLESS"))
102 , m_xNumFldCount(m_xBuilder->weld_spin_button("NUM_FLD_COUNT"))
103 , m_xTsbPixel(m_xBuilder->weld_check_button("TSB_PIXEL"))
104 , m_xMtrFldAmount(m_xBuilder->weld_metric_spin_button("MTR_FLD_AMOUNT", FieldUnit::PIXEL))
105 , m_xTsbAuto(m_xBuilder->weld_check_button("TSB_AUTO"))
106 , m_xMtrFldDelay(m_xBuilder->weld_metric_spin_button("MTR_FLD_DELAY", FieldUnit::MILLISECOND))
107{
108 eFUnit = GetModuleFieldUnit( rInAttrs );
109 SfxItemPool* pPool = rInAttrs.GetPool();
110 DBG_ASSERT( pPool, "Where is the pool?" );
112
113 m_xLbEffect->connect_changed( LINK( this, SvxTextAnimationPage, SelectEffectHdl_Impl ) );
114 m_xTsbEndless->connect_toggled( LINK( this, SvxTextAnimationPage, ClickEndlessHdl_Impl ) );
115 m_xTsbAuto->connect_toggled( LINK( this, SvxTextAnimationPage, ClickAutoHdl_Impl ) );
116 m_xTsbPixel->connect_toggled( LINK( this, SvxTextAnimationPage, ClickPixelHdl_Impl ) );
117
118 Link<weld::Button&,void> aLink( LINK( this, SvxTextAnimationPage, ClickDirectionHdl_Impl ) );
119 m_xBtnUp->connect_clicked( aLink );
120 m_xBtnLeft->connect_clicked( aLink );
121 m_xBtnRight->connect_clicked( aLink );
122 m_xBtnDown->connect_clicked( aLink );
123}
124
126{
127}
128
129/*************************************************************************
130|*
131|* reads the passed item set
132|*
133\************************************************************************/
134
136{
137 const SfxItemPool* pPool = rAttrs->GetPool();
138
139 // animation type
140 const SfxPoolItem* pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIKIND );
141
142 if( !pItem )
143 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIKIND );
144
145 eAniKind = static_cast<const SdrTextAniKindItem*>(pItem)->GetValue();
146 m_xLbEffect->set_active(sal::static_int_cast<sal_Int32>(eAniKind));
147 m_xLbEffect->save_value();
148
149 // animation direction
150 pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIDIRECTION );
151 if( !pItem )
152 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIDIRECTION );
153
154 SelectDirection(static_cast<const SdrTextAniDirectionItem*>(pItem)->GetValue());
155 m_aUpState = m_xBtnUp->get_state();
156 m_aLeftState = m_xBtnLeft->get_state();
157 m_aRightState = m_xBtnRight->get_state();
158 m_aDownState = m_xBtnDown->get_state();
159
160 // Start inside
161 pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANISTARTINSIDE );
162 if( !pItem )
164
165 if (static_cast<const SdrTextAniStartInsideItem*>(pItem)->GetValue())
167 else
169 m_xTsbStartInside->save_state();
170
171 // Stop inside
172 pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANISTOPINSIDE );
173 if( !pItem )
175
176 if (static_cast<const SdrTextAniStopInsideItem*>(pItem)->GetValue())
178 else
180 m_xTsbStopInside->save_state();
181
182 // quantity
183 pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANICOUNT );
184 if( !pItem )
185 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANICOUNT );
186
187 tools::Long nValue = static_cast<tools::Long>(static_cast<const SdrTextAniCountItem*>(pItem)->GetValue());
188 m_xNumFldCount->set_value(nValue);
189 if (nValue == 0)
190 {
191 if (eAniKind == SdrTextAniKind::Slide)
192 {
193 m_xTsbEndless->set_state(TRISTATE_FALSE);
194 m_xTsbEndless->set_sensitive(false);
195 }
196 else
197 {
198 m_xTsbEndless->set_state(TRISTATE_TRUE);
199 m_xNumFldCount->set_text("");
200 }
201 }
202 else
203 m_xTsbEndless->set_state(TRISTATE_FALSE);
204 m_xTsbEndless->save_state();
205 m_xNumFldCount->save_value();
206
207 // delay
208 pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIDELAY );
209 if( !pItem )
210 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIDELAY );
211
212 nValue = static_cast<tools::Long>(static_cast<const SdrTextAniDelayItem*>(pItem)->GetValue());
213 m_xMtrFldDelay->set_value(nValue, FieldUnit::NONE);
214 if (nValue == 0)
215 {
216 m_xTsbAuto->set_state(TRISTATE_TRUE);
217 m_xMtrFldDelay->set_text("");
218 }
219 else
220 m_xTsbAuto->set_state(TRISTATE_FALSE);
221 m_xTsbAuto->save_state();
222 m_xMtrFldDelay->save_value();
223
224 // step size
225 pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIAMOUNT );
226 if( !pItem )
227 pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIAMOUNT );
228
229 nValue = static_cast<tools::Long>(static_cast<const SdrTextAniAmountItem*>(pItem)->GetValue());
230 if (nValue <= 0)
231 {
232 m_xTsbPixel->set_state(TRISTATE_TRUE);
233 nValue = -nValue;
234 if (nValue == 0)
235 nValue++;
236 m_xMtrFldAmount->set_unit(FieldUnit::CUSTOM);
237 m_xMtrFldAmount->set_digits(0);
238
239 m_xMtrFldAmount->set_increments(1, 10, FieldUnit::NONE);
240 m_xMtrFldAmount->set_range(1, 100, FieldUnit::NONE);
241 m_xMtrFldAmount->set_value(nValue, FieldUnit::NONE);
242 }
243 else
244 {
245 m_xTsbPixel->set_state(TRISTATE_FALSE);
246 m_xMtrFldAmount->set_unit(eFUnit);
247 m_xMtrFldAmount->set_digits(2);
248
249 m_xMtrFldAmount->set_increments(10, 100, FieldUnit::NONE);
250 m_xMtrFldAmount->set_range(1, 10000, FieldUnit::NONE);
251
253 }
254 m_xTsbPixel->save_state();
255 m_xMtrFldAmount->save_value();
256
257 SelectEffectHdl_Impl(*m_xLbEffect);
258 ClickEndlessHdl_Impl(*m_xTsbEndless);
259 ClickAutoHdl_Impl(*m_xTsbAuto);
260}
261
262/*************************************************************************
263|*
264|* fills the passed item set with dialog box attributes
265|*
266\************************************************************************/
267
269{
270 bool bModified = false;
271 TriState eState;
272
273 // animation type
274 int nPos = m_xLbEffect->get_active();
275 if( nPos != -1 &&
276 m_xLbEffect->get_value_changed_from_saved() )
277 {
278 rAttrs->Put( SdrTextAniKindItem( static_cast<SdrTextAniKind>(nPos) ) );
279 bModified = true;
280 }
281
282 // animation direction
283 if (m_aUpState != m_xBtnUp->get_state() ||
284 m_aLeftState != m_xBtnLeft->get_state() ||
285 m_aRightState != m_xBtnRight->get_state() ||
286 m_aDownState != m_xBtnDown->get_state())
287 {
289 rAttrs->Put( SdrTextAniDirectionItem( eValue ) );
290 bModified = true;
291 }
292
293 // Start inside
294 eState = m_xTsbStartInside->get_state();
295 if (m_xTsbStartInside->get_state_changed_from_saved())
296 {
297 rAttrs->Put( SdrTextAniStartInsideItem( TRISTATE_TRUE == eState ) );
298 bModified = true;
299 }
300
301 // Stop inside
302 eState = m_xTsbStopInside->get_state();
303 if (m_xTsbStopInside->get_state_changed_from_saved())
304 {
305 rAttrs->Put( SdrTextAniStopInsideItem( TRISTATE_TRUE == eState ) );
306 bModified = true;
307 }
308
309 // quantity
310 eState = m_xTsbEndless->get_state();
311 if (m_xTsbEndless->get_state_changed_from_saved() ||
312 m_xNumFldCount->get_value_changed_from_saved())
313 {
314 sal_Int64 nValue = 0;
315 if( eState == TRISTATE_TRUE /*#89844#*/ && m_xTsbEndless->get_sensitive())
316 bModified = true;
317 else
318 {
319 if( m_xNumFldCount->get_value_changed_from_saved() )
320 {
321 nValue = m_xNumFldCount->get_value();
322 bModified = true;
323 }
324 }
325 if( bModified )
326 rAttrs->Put( SdrTextAniCountItem( static_cast<sal_uInt16>(nValue) ) );
327 }
328
329 // delay
330 eState = m_xTsbAuto->get_state();
331 if (m_xTsbAuto->get_state_changed_from_saved() ||
332 m_xMtrFldDelay->get_value_changed_from_saved())
333 {
334 sal_Int64 nValue = 0;
335 if( eState == TRISTATE_TRUE )
336 bModified = true;
337 else
338 {
339 if( m_xMtrFldDelay->get_value_changed_from_saved() )
340 {
341 nValue = m_xMtrFldDelay->get_value(FieldUnit::NONE);
342 bModified = true;
343 }
344 }
345 if( bModified )
346 rAttrs->Put( SdrTextAniDelayItem( static_cast<sal_uInt16>(nValue) ) );
347 }
348
349 // step size
350 eState = m_xTsbPixel->get_state();
351 if (m_xTsbPixel->get_state_changed_from_saved() ||
352 m_xMtrFldAmount->get_value_changed_from_saved())
353 {
354 sal_Int64 nValue = 0;
355 if( eState == TRISTATE_TRUE )
356 {
357 nValue = m_xMtrFldAmount->get_value(FieldUnit::NONE);
358 nValue = -nValue;
359 }
360 else
361 {
363 }
364 rAttrs->Put( SdrTextAniAmountItem( static_cast<sal_Int16>(nValue) ) );
365
366 bModified = true;
367 }
368
369 return bModified;
370}
371
372/*************************************************************************
373|*
374|* creates the page
375|*
376\************************************************************************/
377
378std::unique_ptr<SfxTabPage> SvxTextAnimationPage::Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrs)
379{
380 return std::make_unique<SvxTextAnimationPage>(pPage, pController, *rAttrs);
381}
382
384{
385 int nPos = m_xLbEffect->get_active();
386 if (nPos == -1)
387 return;
388
389 eAniKind = static_cast<SdrTextAniKind>(nPos);
390 switch( eAniKind )
391 {
392 case SdrTextAniKind::NONE:
393 {
394 m_xBoxDirection->set_sensitive(false);
395 m_xFlProperties->set_sensitive(false);
396 }
397 break;
398
399 case SdrTextAniKind::Blink:
400 case SdrTextAniKind::Scroll:
401 case SdrTextAniKind::Alternate:
402 case SdrTextAniKind::Slide:
403 {
404 m_xFlProperties->set_sensitive(true);
405 if( eAniKind == SdrTextAniKind::Slide )
406 {
407 m_xTsbStartInside->set_sensitive(false);
408 m_xTsbStopInside->set_sensitive(false);
409 m_xTsbEndless->set_sensitive(false);
410 m_xNumFldCount->set_sensitive(true);
411 m_xNumFldCount->set_value(m_xNumFldCount->get_value());
412 }
413 else
414 {
415 m_xTsbStartInside->set_sensitive(true);
416 m_xTsbStopInside->set_sensitive(true);
417 m_xTsbEndless->set_sensitive(true);
418 ClickEndlessHdl_Impl(*m_xTsbEndless);
419 }
420
421 m_xTsbAuto->set_sensitive(true);
422 ClickAutoHdl_Impl(*m_xTsbAuto);
423
424 if( eAniKind == SdrTextAniKind::Blink )
425 {
426 m_xBoxDirection->set_sensitive(false);
427 m_xBoxCount->set_sensitive(false);
428 }
429 else
430 {
431 m_xBoxDirection->set_sensitive(true);
432 m_xBoxCount->set_sensitive(true);
433 }
434 }
435 break;
436 }
437}
438
440{
441 if( eAniKind == SdrTextAniKind::Slide )
442 return;
443
444 TriState eState = m_xTsbEndless->get_state();
445 if( eState != TRISTATE_FALSE )
446 {
447 m_xNumFldCount->set_sensitive(false);
448 m_xNumFldCount->set_text("");
449 }
450 else
451 {
452 m_xNumFldCount->set_sensitive(true);
453 m_xNumFldCount->set_value(m_xNumFldCount->get_value());
454 }
455}
456
458{
459 TriState eState = m_xTsbAuto->get_state();
460 if( eState != TRISTATE_FALSE )
461 {
462 m_xMtrFldDelay->set_sensitive(false);
463 m_xMtrFldDelay->set_text("");
464 }
465 else
466 {
467 m_xMtrFldDelay->set_sensitive(true);
468 m_xMtrFldDelay->set_value(m_xMtrFldDelay->get_value(FieldUnit::NONE), FieldUnit::NONE); //to-do
469 }
470}
471
473{
474 TriState eState = m_xTsbPixel->get_state();
475 if (eState == TRISTATE_TRUE)
476 {
477 int nValue = m_xMtrFldAmount->get_value(FieldUnit::NONE) / 10;
478 m_xMtrFldAmount->set_sensitive(true);
479 m_xMtrFldAmount->set_unit(FieldUnit::CUSTOM);
480 m_xMtrFldAmount->set_digits(0);
481
482 m_xMtrFldAmount->set_increments(1, 10, FieldUnit::NONE);
483 m_xMtrFldAmount->set_range(1, 100, FieldUnit::NONE);
484
485 m_xMtrFldAmount->set_value(nValue, FieldUnit::NONE);
486 }
487 else if( eState == TRISTATE_FALSE )
488 {
489 int nValue = m_xMtrFldAmount->get_value(FieldUnit::NONE) * 10;
490 m_xMtrFldAmount->set_sensitive(true);
491 m_xMtrFldAmount->set_unit(eFUnit);
492 m_xMtrFldAmount->set_digits(2);
493
494 m_xMtrFldAmount->set_increments(10, 100, FieldUnit::NONE);
495 m_xMtrFldAmount->set_range(1, 10000, FieldUnit::NONE);
496
497 m_xMtrFldAmount->set_value(nValue, FieldUnit::NONE);
498 }
499}
500
501IMPL_LINK(SvxTextAnimationPage, ClickDirectionHdl_Impl, weld::Button&, rBtn, void)
502{
503 m_xBtnUp->set_active(&rBtn == m_xBtnUp.get());
504 m_xBtnLeft->set_active(&rBtn == m_xBtnLeft.get());
505 m_xBtnRight->set_active(&rBtn == m_xBtnRight.get());
506 m_xBtnDown->set_active(&rBtn == m_xBtnDown.get());
507}
508
510{
511 m_xBtnUp->set_active( nValue == SdrTextAniDirection::Up );
512 m_xBtnLeft->set_active( nValue == SdrTextAniDirection::Left );
513 m_xBtnRight->set_active( nValue == SdrTextAniDirection::Right );
514 m_xBtnDown->set_active( nValue == SdrTextAniDirection::Down );
515}
516
518{
519 SdrTextAniDirection nValue = SdrTextAniDirection::Left;
520
521 if( m_xBtnUp->get_active() )
522 nValue = SdrTextAniDirection::Up;
523 else if( m_xBtnLeft->get_active() )
524 nValue = SdrTextAniDirection::Left;
525 else if( m_xBtnRight->get_active() )
526 nValue = SdrTextAniDirection::Right;
527 else if( m_xBtnDown->get_active() )
528 nValue = SdrTextAniDirection::Down;
529
530 return static_cast<sal_uInt16>(nValue);
531}
532
533
534/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
size_t GetMarkCount() const
SdrMark * GetMark(size_t nNum) const
const SdrMarkList & GetMarkedObjectList() const
SdrObject * GetMarkedSdrObj() const
virtual SdrObjKind GetObjIdentifier() const
const SfxPoolItem & GetDefaultItem(sal_uInt16 nWhich) const
virtual MapUnit GetMetric(sal_uInt16 nWhich) const
SfxItemPool * GetPool() const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
void AddTabPage(const OUString &rName, CreateTabPage pCreateFunc, GetTabPageRanges pRangesFunc)
static const SfxPoolItem * GetItem(const SfxItemSet &rSet, sal_uInt16 nSlot, bool bDeep=true)
std::unique_ptr< weld::ToggleButton > m_xBtnRight
Definition: textanim.hxx:52
std::unique_ptr< weld::SpinButton > m_xNumFldCount
Definition: textanim.hxx:61
std::unique_ptr< weld::CheckButton > m_xTsbStopInside
Definition: textanim.hxx:57
virtual ~SvxTextAnimationPage() override
Definition: textanim.cxx:125
sal_uInt16 GetSelectedDirection() const
Definition: textanim.cxx:517
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *)
Definition: textanim.cxx:378
std::unique_ptr< weld::ToggleButton > m_xBtnUp
Definition: textanim.hxx:50
std::unique_ptr< weld::ComboBox > m_xLbEffect
Definition: textanim.hxx:48
std::unique_ptr< weld::CheckButton > m_xTsbEndless
Definition: textanim.hxx:60
std::unique_ptr< weld::ToggleButton > m_xBtnLeft
Definition: textanim.hxx:51
virtual void Reset(const SfxItemSet *) override
Definition: textanim.cxx:135
std::unique_ptr< weld::MetricSpinButton > m_xMtrFldAmount
Definition: textanim.hxx:64
TriState m_aLeftState
Definition: textanim.hxx:44
SvxTextAnimationPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rInAttrs)
Definition: textanim.cxx:84
std::unique_ptr< weld::ToggleButton > m_xBtnDown
Definition: textanim.hxx:53
std::unique_ptr< weld::CheckButton > m_xTsbPixel
Definition: textanim.hxx:63
std::unique_ptr< weld::CheckButton > m_xTsbAuto
Definition: textanim.hxx:66
virtual bool FillItemSet(SfxItemSet *) override
Definition: textanim.cxx:268
TriState m_aRightState
Definition: textanim.hxx:45
SdrTextAniKind eAniKind
Definition: textanim.hxx:39
std::unique_ptr< weld::MetricSpinButton > m_xMtrFldDelay
Definition: textanim.hxx:67
static const WhichRangesContainer pRanges
Definition: textanim.hxx:37
std::unique_ptr< weld::CheckButton > m_xTsbStartInside
Definition: textanim.hxx:56
void SelectDirection(SdrTextAniDirection nValue)
Definition: textanim.cxx:509
TriState m_aDownState
Definition: textanim.hxx:46
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *)
Definition: textattr.cxx:474
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *)
const SdrView * pView
Definition: textanim.hxx:97
virtual void PageCreated(const OUString &rId, SfxTabPage &rPage) override
Definition: textanim.cxx:56
SvxTextTabDialog(weld::Window *pParent, const SfxItemSet *pAttr, const SdrView *pView)
Definition: textanim.cxx:41
#define DBG_ASSERT(sCon, aError)
virtual tools::Long GetValue() const override
SVXCORE_DLLPUBLIC FieldUnit GetModuleFieldUnit(const SfxItemSet &)
FieldUnit
sal_Int16 nValue
TriState
TRISTATE_FALSE
TRISTATE_INDET
TRISTATE_TRUE
sal_uInt16 nPos
NONE
long Long
SdrTextAniDirection
SdrTextAniKind
constexpr TypedWhichId< SdrTextAniDelayItem > SDRATTR_TEXT_ANIDELAY(SDRATTR_MISC_FIRST+19)
constexpr TypedWhichId< SdrMetricItem > SDRATTR_TEXT_LEFTDIST(SDRATTR_MISC_FIRST+4)
constexpr TypedWhichId< SdrTextAniStartInsideItem > SDRATTR_TEXT_ANISTARTINSIDE(SDRATTR_MISC_FIRST+16)
constexpr TypedWhichId< SdrTextAniStopInsideItem > SDRATTR_TEXT_ANISTOPINSIDE(SDRATTR_MISC_FIRST+17)
constexpr TypedWhichId< SdrTextAniKindItem > SDRATTR_TEXT_ANIKIND(SDRATTR_MISC_FIRST+14)
constexpr TypedWhichId< SdrTextAniCountItem > SDRATTR_TEXT_ANICOUNT(SDRATTR_MISC_FIRST+18)
constexpr TypedWhichId< SdrTextAniDirectionItem > SDRATTR_TEXT_ANIDIRECTION(SDRATTR_MISC_FIRST+15)
constexpr TypedWhichId< SdrTextAniAmountItem > SDRATTR_TEXT_ANIAMOUNT(SDRATTR_MISC_FIRST+20)
SdrObjKind
IMPL_LINK_NOARG(SvxTextAnimationPage, SelectEffectHdl_Impl, weld::ComboBox &, void)
Definition: textanim.cxx:383
IMPL_LINK(SvxTextAnimationPage, ClickDirectionHdl_Impl, weld::Button &, rBtn, void)
Definition: textanim.cxx:501
SVT_DLLPUBLIC sal_Int64 GetCoreValue(const weld::MetricSpinButton &rField, MapUnit eUnit)
SVT_DLLPUBLIC void SetMetricValue(weld::MetricSpinButton &rField, sal_Int64 nCoreValue, MapUnit eUnit)