2 * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
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".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
15 * Implementation of Query data classes for query dialogs
20 #ifndef AKNQUERYDATA_H
21 #define AKNQUERYDATA_H
24 #include <aknQueryControl.h>
26 #include <lbsposition.h>
28 class CAknQueryDialog;
32 IMPORT_C TInt GetMaxTextLength(const CAknQueryControl* aControl, const TDes& aDataText, TInt aApiValue);
37 virtual void SetL(CAknQueryControl* aControl, TInt aMaxLength) = 0;
38 virtual void Get(CAknQueryControl* aControl) = 0;
42 class TAknQueryData : public MAknQueryData
45 TAknQueryData(T& aData) : iData(aData) {}
47 void SetL(CAknQueryControl* aControl, TInt aMaxLength);
48 void Get(CAknQueryControl* aControl);
55 class TAknQueryData<TDes> : public MAknQueryData
58 TAknQueryData(TDes& aData) : iData(aData) {}
60 void SetL(CAknQueryControl* aControl,TInt aMaxLength)
61 { aControl->SetTextL(iData);
62 aControl->SetTextEntryLength(
63 GetMaxTextLength(aControl,iData,aMaxLength)); }
64 void Get(CAknQueryControl* aControl)
65 { aControl->GetText(iData); }
71 class TAknQueryData<TInt> : public MAknQueryData
74 TAknQueryData(TInt& aData) : iData(aData) {}
76 void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
77 { aControl->SetNumberL(iData); }
78 void Get(CAknQueryControl* aControl)
79 { iData=aControl->GetNumber(); }
85 class TAknQueryData<TTime> : public MAknQueryData
88 TAknQueryData(TTime& aData) : iData(aData) {}
90 void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
91 { aControl->SetTime(iData); }
92 void Get(CAknQueryControl* aControl)
93 { iData=aControl->GetTime(); }
99 class TAknQueryData<TTimeIntervalSeconds> : public MAknQueryData
102 TAknQueryData(TTimeIntervalSeconds& aData) : iData(aData) {}
104 void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
105 { aControl->SetDuration(iData); }
106 void Get(CAknQueryControl* aControl)
107 { iData=aControl->GetDuration(); }
109 TTimeIntervalSeconds& iData;
113 class TAknQueryData<TReal> : public MAknQueryData
116 TAknQueryData(TReal& aData) : iData(aData) {}
118 void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
119 { aControl->SetFloatingPointNumberL(&iData); }
120 void Get(CAknQueryControl* aControl)
121 { iData=aControl->GetFloatingPointNumberL(); }
128 class TAknQueryData<TInetAddr> : public MAknQueryData
131 TAknQueryData(TInetAddr& aData) : iData(aData) {}
132 void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
134 CAknExtQueryControl* control = STATIC_CAST(CAknExtQueryControl*,aControl);
135 control->SetInetAddress(iData);
137 void Get(CAknQueryControl* aControl)
139 CAknExtQueryControl* control = STATIC_CAST(CAknExtQueryControl*,aControl);
140 iData=control->GetInetAddress();
147 class TAknQueryData<TPosition> : public MAknQueryData
150 TAknQueryData(TPosition &aData) : iData(aData) {}
151 void SetL(CAknQueryControl* aControl, TInt /*aMaxLength*/)
153 aControl->SetLocation(iData);
155 void Get(CAknQueryControl* aControl)
157 aControl->GetLocation(iData);