cid#1607171 Data race condition
[LibreOffice.git] / sd / source / ui / animations / CustomAnimationDialog.hxx
blob34101fbc1f29497f7ede49fcf8ff75d0a972b5dc
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 <vcl/weld.hxx>
24 namespace sd {
26 // property handles
27 const sal_Int32 nHandleSound = 0;
28 const sal_Int32 nHandleHasAfterEffect = 1;
29 const sal_Int32 nHandleIterateType = 2;
30 const sal_Int32 nHandleIterateInterval = 3;
31 const sal_Int32 nHandleStart = 4;
32 const sal_Int32 nHandleBegin = 5;
33 const sal_Int32 nHandleDuration = 6;
34 const sal_Int32 nHandleRepeat = 7;
35 const sal_Int32 nHandleRewind = 8;
36 const sal_Int32 nHandleEnd = 9;
37 const sal_Int32 nHandleAfterEffectOnNextEffect = 10;
38 const sal_Int32 nHandleDimColor = 11;
39 const sal_Int32 nHandleMaxParaDepth = 12;
40 const sal_Int32 nHandlePresetId = 13;
41 const sal_Int32 nHandleProperty1Type = 14;
42 const sal_Int32 nHandleProperty1Value = 15;
43 const sal_Int32 nHandleProperty2Type = 16;
44 const sal_Int32 nHandleProperty2Value = 17;
46 const sal_Int32 nHandleAccelerate = 18;
47 const sal_Int32 nHandleDecelerate = 19;
48 const sal_Int32 nHandleAutoReverse = 20;
49 const sal_Int32 nHandleTrigger = 21;
51 const sal_Int32 nHandleHasText = 22;
52 const sal_Int32 nHandleTextGrouping = 23;
53 const sal_Int32 nHandleAnimateForm = 24;
54 const sal_Int32 nHandleTextGroupingAuto = 25;
55 const sal_Int32 nHandleTextReverse = 26;
57 const sal_Int32 nHandleCurrentPage = 27;
58 const sal_Int32 nHandleSoundURL = 28;
59 const sal_Int32 nHandleSoundVolume = 29;
60 const sal_Int32 nHandleSoundEndAfterSlide = 30;
62 const sal_Int32 nHandleCommand = 31;
64 const sal_Int32 nHandleHasVisibleShape = 32;
66 const sal_Int32 nPropertyTypeNone = 0;
67 const sal_Int32 nPropertyTypeDirection = 1;
68 const sal_Int32 nPropertyTypeSpokes = 2;
69 const sal_Int32 nPropertyTypeFirstColor = 3;
70 const sal_Int32 nPropertyTypeSecondColor = 4;
71 const sal_Int32 nPropertyTypeZoom = 5;
72 const sal_Int32 nPropertyTypeFillColor = 6;
73 const sal_Int32 nPropertyTypeColorStyle = 7;
74 const sal_Int32 nPropertyTypeFont = 8;
75 const sal_Int32 nPropertyTypeCharHeight = 9;
76 const sal_Int32 nPropertyTypeCharColor = 10;
77 const sal_Int32 nPropertyTypeCharHeightStyle = 11;
78 const sal_Int32 nPropertyTypeCharDecoration = 12;
79 const sal_Int32 nPropertyTypeLineColor = 13;
80 const sal_Int32 nPropertyTypeRotate = 14;
81 const sal_Int32 nPropertyTypeColor = 15;
82 const sal_Int32 nPropertyTypeAccelerate = 16;
83 const sal_Int32 nPropertyTypeDecelerate = 17;
84 const sal_Int32 nPropertyTypeAutoReverse = 18;
85 const sal_Int32 nPropertyTypeTransparency = 19;
86 const sal_Int32 nPropertyTypeFontStyle = 20;
87 const sal_Int32 nPropertyTypeScale = 21;
89 class SdPropertySubControl
91 public:
92 explicit SdPropertySubControl(weld::Container* pParent);
93 virtual ~SdPropertySubControl();
95 virtual css::uno::Any getValue() = 0;
96 virtual void setValue( const css::uno::Any& rValue, const OUString& rPresetId ) = 0;
98 static std::unique_ptr<SdPropertySubControl>
99 create( sal_Int32 nType,
100 weld::Label* pLabel,
101 weld::Container* pParent,
102 weld::Window* pTopLevel,
103 const css::uno::Any& rValue,
104 const OUString& rPresetId,
105 const Link<LinkParamNone*,void>& rModifyHdl );
107 protected:
108 std::unique_ptr<weld::Builder> mxBuilder;
109 std::unique_ptr<weld::Container> mxContainer;
110 weld::Container* mpParent;
113 class CustomAnimationDurationTabPage;
114 class CustomAnimationEffectTabPage;
115 class CustomAnimationTextAnimTabPage;
116 class STLPropertySet;
118 class CustomAnimationDialog : public weld::GenericDialogController
120 public:
121 CustomAnimationDialog(weld::Window* pParent, std::unique_ptr<STLPropertySet> pSet, const OUString& Page);
122 virtual ~CustomAnimationDialog() override;
124 STLPropertySet* getResultSet();
125 STLPropertySet* getPropertySet() const { return mxSet.get(); }
127 static std::unique_ptr<STLPropertySet> createDefaultSet();
129 private:
130 std::unique_ptr<STLPropertySet> mxSet;
131 std::unique_ptr<STLPropertySet> mxResultSet;
133 std::unique_ptr<weld::Notebook> mxTabControl;
134 std::unique_ptr<CustomAnimationDurationTabPage> mxDurationTabPage;
135 std::unique_ptr<CustomAnimationEffectTabPage> mxEffectTabPage;
136 std::unique_ptr<CustomAnimationTextAnimTabPage> mxTextAnimTabPage;
141 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */