1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 #include "precompiled_sd.hxx"
25
26 #include "model/SlsVisualState.hxx"
27 #include "model/SlsPageDescriptor.hxx"
28 #include "controller/SlsAnimator.hxx"
29
30 namespace sd { namespace slidesorter { namespace model {
31
VisualState(const sal_Int32 nPageId)32 VisualState::VisualState (const sal_Int32 nPageId)
33 : mnPageId(nPageId),
34 meCurrentVisualState(VS_None),
35 meOldVisualState(VS_None),
36 mnVisualStateBlend(1.0),
37 mnStateAnimationId(controller::Animator::NotAnAnimationId),
38 maLocationOffset(0,0),
39 mnLocationAnimationId(controller::Animator::NotAnAnimationId),
40 mnButtonAlpha(1.0),
41 mnButtonBarAlpha(1.0),
42 mnButtonAlphaAnimationId(controller::Animator::NotAnAnimationId)
43 {
44 }
45
46
47
48
~VisualState(void)49 VisualState::~VisualState (void)
50 {
51 if (mnStateAnimationId != controller::Animator::NotAnAnimationId
52 || mnLocationAnimationId != controller::Animator::NotAnAnimationId)
53 {
54 OSL_ASSERT(mnStateAnimationId == controller::Animator::NotAnAnimationId);
55 OSL_ASSERT(mnLocationAnimationId == controller::Animator::NotAnAnimationId);
56 }
57 }
58
59
60
61
GetCurrentVisualState(void) const62 VisualState::State VisualState::GetCurrentVisualState (void) const
63 {
64 return meCurrentVisualState;
65 }
66
67
68
69
GetOldVisualState(void) const70 VisualState::State VisualState::GetOldVisualState (void) const
71 {
72 return meOldVisualState;
73 }
74
75
76
77
SetVisualState(const State eState)78 void VisualState::SetVisualState (const State eState)
79 {
80 meOldVisualState = meCurrentVisualState;
81 meCurrentVisualState = eState;
82 mnVisualStateBlend = 1.0;
83 }
84
85
86
87
GetVisualStateBlend(void) const88 double VisualState::GetVisualStateBlend (void) const
89 {
90 return mnVisualStateBlend;
91 }
92
93
94
95
SetVisualStateBlend(const double nBlend)96 void VisualState::SetVisualStateBlend (const double nBlend)
97 {
98 mnVisualStateBlend = nBlend;
99 }
100
101
102
103
UpdateVisualState(const PageDescriptor & rDescriptor)104 void VisualState::UpdateVisualState (const PageDescriptor& rDescriptor)
105 {
106 if (rDescriptor.HasState(PageDescriptor::ST_Excluded))
107 SetVisualState(VS_Excluded);
108 else if (rDescriptor.HasState(PageDescriptor::ST_Current))
109 SetVisualState(VS_Current);
110 else if (rDescriptor.HasState(PageDescriptor::ST_Focused))
111 SetVisualState(VS_Focused);
112 else if (rDescriptor.HasState(PageDescriptor::ST_Selected))
113 SetVisualState(VS_Selected);
114 else
115 SetVisualState(VS_None);
116
117 SetMouseOverState(rDescriptor.HasState(PageDescriptor::ST_MouseOver));
118 }
119
120
121
122
SetMouseOverState(const bool bIsMouseOver)123 void VisualState::SetMouseOverState (const bool bIsMouseOver)
124 {
125 mbOldMouseOverState = mbCurrentMouseOverState;
126 mbCurrentMouseOverState = bIsMouseOver;
127 }
128
129
130
131
GetStateAnimationId(void) const132 sal_Int32 VisualState::GetStateAnimationId (void) const
133 {
134 return mnStateAnimationId;
135 }
136
137
138
139
SetStateAnimationId(const sal_Int32 nAnimationId)140 void VisualState::SetStateAnimationId (const sal_Int32 nAnimationId)
141 {
142 mnStateAnimationId = nAnimationId;
143 }
144
145
146
147
GetLocationOffset(void) const148 Point VisualState::GetLocationOffset (void) const
149 {
150 return maLocationOffset;
151 }
152
153
154
155
SetLocationOffset(const Point & rOffset)156 bool VisualState::SetLocationOffset (const Point& rOffset)
157 {
158 if (maLocationOffset != rOffset)
159 {
160 maLocationOffset = rOffset;
161 return true;
162 }
163 else
164 return false;
165 }
166
167
168
169
GetLocationAnimationId(void) const170 sal_Int32 VisualState::GetLocationAnimationId (void) const
171 {
172 return mnLocationAnimationId;
173 }
174
175
176
177
SetLocationAnimationId(const sal_Int32 nAnimationId)178 void VisualState::SetLocationAnimationId (const sal_Int32 nAnimationId)
179 {
180 mnLocationAnimationId = nAnimationId;
181 }
182
183
184
185
GetButtonAlpha(void) const186 double VisualState::GetButtonAlpha (void) const
187 {
188 return mnButtonAlpha;
189 }
190
191
192
193
SetButtonAlpha(const double nAlpha)194 void VisualState::SetButtonAlpha (const double nAlpha)
195 {
196 mnButtonAlpha = nAlpha;
197 }
198
199
200
201
GetButtonBarAlpha(void) const202 double VisualState::GetButtonBarAlpha (void) const
203 {
204 return mnButtonBarAlpha;
205 }
206
207
208
209
SetButtonBarAlpha(const double nAlpha)210 void VisualState::SetButtonBarAlpha (const double nAlpha)
211 {
212 mnButtonBarAlpha = nAlpha;
213 }
214
215
216
217
GetButtonAlphaAnimationId(void) const218 sal_Int32 VisualState::GetButtonAlphaAnimationId (void) const
219 {
220 return mnButtonAlphaAnimationId;
221 }
222
223
224
225
SetButtonAlphaAnimationId(const sal_Int32 nAnimationId)226 void VisualState::SetButtonAlphaAnimationId (const sal_Int32 nAnimationId)
227 {
228 mnButtonAlphaAnimationId = nAnimationId;
229 }
230
231
232 } } } // end of namespace ::sd::slidesorter::model
233