|
1 /* |
|
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Toolbar hide item action class. |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 #include <cvtlogger.h> |
|
20 #include "cvtuihidetoolbaritemaction.h" |
|
21 #include "tvtuicmdvalidatorcallback.h" |
|
22 #include "tvtuitoolbarcommanditerator.h" |
|
23 #include "cvtuitoolbarbase.h" |
|
24 #include "videotelui.hrh" |
|
25 |
|
26 // ======== MEMBER FUNCTIONS ======== |
|
27 |
|
28 // --------------------------------------------------------------------------- |
|
29 // CVtUiHideToolbarItemAction::NewL |
|
30 // --------------------------------------------------------------------------- |
|
31 // |
|
32 CVtUiHideToolbarItemAction* CVtUiHideToolbarItemAction::NewL( |
|
33 CVtUiToolbarBase* aToolbar, const TVtUiStates& aUiStates ) |
|
34 { |
|
35 __VTPRINTENTER( "HideTbAct.NewL" ) |
|
36 CVtUiHideToolbarItemAction* self = |
|
37 new ( ELeave ) CVtUiHideToolbarItemAction( aToolbar, aUiStates ); |
|
38 __VTPRINTEXIT( "HideTbAct.NewL" ) |
|
39 return self; |
|
40 } |
|
41 |
|
42 // --------------------------------------------------------------------------- |
|
43 // CVtUiHideToolbarItemAction::~CVtUiHideToolbarItemAction |
|
44 // --------------------------------------------------------------------------- |
|
45 // |
|
46 CVtUiHideToolbarItemAction::~CVtUiHideToolbarItemAction() |
|
47 { |
|
48 } |
|
49 |
|
50 // --------------------------------------------------------------------------- |
|
51 // CVtUiHideToolbarItemAction::ProcessL |
|
52 // --------------------------------------------------------------------------- |
|
53 // |
|
54 void CVtUiHideToolbarItemAction::ProcessL( |
|
55 const MVtUiCmdValidatorCallBack& aCallBack ) |
|
56 { |
|
57 __VTPRINTENTER( "HideTbAct.ProcessL" ) |
|
58 for ( TVtUiToolbarCommandIterator i( *iToolbar ); i.HasNext(); ) |
|
59 { |
|
60 TInt commandId( i.Next() ); |
|
61 if ( !IsCommandHandled( commandId ) ) |
|
62 { |
|
63 __VTPRINT2( DEBUG_GEN, "HideTbAct.cb.call.cmddId=%d", commandId ) |
|
64 if ( aCallBack.Call( commandId ) ) // primarypolicy |
|
65 { // says can't be shown |
|
66 CommandHandledL( commandId ); |
|
67 SetItemHiddenL( commandId ); |
|
68 } |
|
69 else |
|
70 { |
|
71 HideOrShowToolbarControlL( commandId ); |
|
72 } |
|
73 } |
|
74 } |
|
75 __VTPRINTEXIT( "HideTbAct.ProcessL" ) |
|
76 } |
|
77 |
|
78 // --------------------------------------------------------------------------- |
|
79 // CVtUiHideToolbarItemAction::CVtUiHideToolbarItemAction |
|
80 // --------------------------------------------------------------------------- |
|
81 // |
|
82 CVtUiHideToolbarItemAction::CVtUiHideToolbarItemAction |
|
83 ( CVtUiToolbarBase* aToolbar, const TVtUiStates& aUiStates ) |
|
84 : iToolbar( aToolbar ), iUiStates ( aUiStates ) |
|
85 { |
|
86 __VTPRINTENTER( "HideTbAct.ctor" ) |
|
87 __VTPRINTEXIT( "HideTbAct.ctor" ) |
|
88 } |
|
89 |
|
90 // --------------------------------------------------------------------------- |
|
91 // CVtUiHideToolbarItemAction::SetItemHiddenL |
|
92 // --------------------------------------------------------------------------- |
|
93 // |
|
94 void CVtUiHideToolbarItemAction::SetItemHiddenL( TInt aCommandId ) |
|
95 { |
|
96 __VTPRINTENTER( "HideTbAct.SetItemHidden" ) |
|
97 iToolbar->SetCmdIdVisibilityStateL( aCommandId, |
|
98 CVtUiToolbarBase::EHidden ); |
|
99 __VTPRINTEXIT( "HideTbAct.SetItemHidden" ) |
|
100 } |
|
101 |
|
102 // --------------------------------------------------------------------------- |
|
103 // CVtUiHideToolbarItemAction::HideOrShowToolbarControlL |
|
104 // --------------------------------------------------------------------------- |
|
105 // |
|
106 void CVtUiHideToolbarItemAction::HideOrShowToolbarControlL |
|
107 ( TInt aCommandId ) |
|
108 { |
|
109 __VTPRINTENTER( "HideTbAct.HideOrShowToolbarControlL" ) |
|
110 TBool isZoomModeOn = iUiStates.IsZoomModeOn(); |
|
111 TBool isVolumeModeOn = iUiStates.IsVolumeModeOn(); |
|
112 TBool isBrightnessModeOn = iUiStates.IsBrightnessModeOn(); |
|
113 TBool isContrastModeOn = iUiStates.IsContrastModeOn(); |
|
114 TBool isDialerOpen = iUiStates.IsDialerOpen(); |
|
115 TBool isDialerActivating = iUiStates.IsDialerActivating(); |
|
116 TBool isWhiteBalanceModeOn = iUiStates.IsWhiteBalanceModeOn(); |
|
117 TBool isColorToneModeOn = iUiStates.IsColorToneModeOn(); |
|
118 TBool isCaptureModeOn = iUiStates.IsCaptureModeOn(); |
|
119 TBool isSomeElseZoomOn = isBrightnessModeOn || isContrastModeOn || isDialerOpen || isVolumeModeOn |
|
120 || isDialerActivating || isWhiteBalanceModeOn || isColorToneModeOn || isCaptureModeOn; |
|
121 TBool isSomeoneOn = isZoomModeOn || isSomeElseZoomOn; |
|
122 TBool dimmed = EFalse; |
|
123 const TVtUiMediaState& mediaState( iUiStates.MediaState() ); |
|
124 const TVtUiAudioState& audioState( iUiStates.AudioState() ); |
|
125 |
|
126 switch ( aCommandId ) |
|
127 { |
|
128 case EVtUiCmdDisableVideo: |
|
129 case EVtUiCmdSwapImagesPlaces: |
|
130 case EVtUiCmdDisableAudio: |
|
131 case EVtUiCmdEnableAudio: |
|
132 case EVtUiCmdEnableVideo: |
|
133 if ( isSomeoneOn ) |
|
134 { |
|
135 dimmed = ETrue; |
|
136 } |
|
137 break; |
|
138 |
|
139 case EVtUiCmdUsePrimaryCamera: |
|
140 case EVtUiCmdUseSecondaryCamera: |
|
141 if ( mediaState.IsSharing() |
|
142 || isSomeoneOn ) |
|
143 { |
|
144 dimmed = ETrue; |
|
145 } |
|
146 break; |
|
147 case EVtUiCmdZoom: |
|
148 if ( !mediaState.IsVideo() || |
|
149 mediaState.IsFrozen() || |
|
150 mediaState.IsSharing() || |
|
151 isSomeElseZoomOn ) |
|
152 { |
|
153 dimmed = ETrue; |
|
154 } |
|
155 break; |
|
156 |
|
157 case EVtUiCmdShareObjectImage: |
|
158 if ( mediaState.IsFrozen() || |
|
159 mediaState.IsVideoPermanentlyStopped() || |
|
160 isSomeoneOn ) |
|
161 { |
|
162 dimmed = ETrue; |
|
163 } |
|
164 break; |
|
165 |
|
166 case EVtUiCmdActivateBT: |
|
167 if ( !audioState.CanActivateBtHf() || |
|
168 audioState.IsAudioPermanentlyStopped() || |
|
169 isSomeoneOn ) |
|
170 { |
|
171 dimmed = ETrue; |
|
172 } |
|
173 break; |
|
174 |
|
175 case EVtUiCmdDeactivateLoudspeaker: |
|
176 if ( !audioState.CanDeactivateLoudspeaker() || |
|
177 audioState.IsAudioPermanentlyStopped() || |
|
178 isSomeoneOn ) |
|
179 { |
|
180 dimmed = ETrue; |
|
181 } |
|
182 break; |
|
183 |
|
184 case EVtUiCmdSwitchFromBTToIHF: |
|
185 if ( !audioState.CanDeactivateBtHf() || |
|
186 !audioState.CanActivateLoudspeaker() || |
|
187 audioState.IsAudioPermanentlyStopped() || |
|
188 isSomeoneOn ) |
|
189 { |
|
190 dimmed = ETrue; |
|
191 } |
|
192 break; |
|
193 |
|
194 case EVtUiCmdActivateLoudspeaker: |
|
195 if ( !audioState.CanActivateLoudspeaker() || |
|
196 audioState.IsAudioPermanentlyStopped() || |
|
197 isSomeoneOn ) |
|
198 { |
|
199 dimmed = ETrue; |
|
200 } |
|
201 break; |
|
202 |
|
203 /* |
|
204 case EVtUiCmdSnapshot: |
|
205 if ( iUiStates.IsContrastModeOn() || iUiStates.IsBrightnessModeOn () |
|
206 || isZoomModeOn || ( !iUiStates.MediaState().IsVideo() && |
|
207 !iUiStates.MediaState().IsFrozen() ) || |
|
208 !iUiStates.MediaState().IsFreezeSupported() || iUiStates.IsContrastModeOn() || |
|
209 iUiStates.IsBrightnessModeOn() || isVolumeModeOn ) |
|
210 { |
|
211 dimmed = ETrue; |
|
212 } |
|
213 break; |
|
214 */ |
|
215 default: |
|
216 dimmed = EFalse; |
|
217 break; |
|
218 } |
|
219 |
|
220 // update toolbar's commands visibility values |
|
221 if ( dimmed ) |
|
222 { |
|
223 iToolbar->SetCmdIdVisibilityStateL( aCommandId, |
|
224 CVtUiToolbarBase::EDimmed ); |
|
225 } |
|
226 else |
|
227 { |
|
228 iToolbar->SetCmdIdVisibilityStateL( aCommandId, |
|
229 CVtUiToolbarBase::EShown ); |
|
230 } |
|
231 __VTPRINTEXIT( "HideTbAct.HideOrShowToolbarControlL" ) |
|
232 } |
|
233 |
|
234 // --------------------------------------------------------------------------- |
|
235 // CVtUiHideToolbarItemAction::EndProcess |
|
236 // --------------------------------------------------------------------------- |
|
237 // |
|
238 void CVtUiHideToolbarItemAction::EndProcess() |
|
239 { |
|
240 __VTPRINTENTER( "HideTbAct.EndProcess" ) |
|
241 TRAP_IGNORE( iToolbar->UpdateToolbarL() ); |
|
242 __VTPRINTEXIT( "HideTbAct.EndProcess" ) |
|
243 } |
|
244 // End of File |