--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_pub/queries_api/inc/aknquerydata.h Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,163 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Implementation of Query data classes for query dialogs
+*
+*/
+
+
+#ifndef AKNQUERYDATA_H
+#define AKNQUERYDATA_H
+
+#include <e32std.h>
+#include <aknQueryControl.h>
+#include <in_sock.h>
+#include <lbsposition.h>
+
+class CAknQueryDialog;
+class TInetAddr;
+
+
+IMPORT_C TInt GetMaxTextLength(const CAknQueryControl* aControl, const TDes& aDataText, TInt aApiValue);
+
+class MAknQueryData
+ {
+ public:
+ virtual void SetL(CAknQueryControl* aControl, TInt aMaxLength) = 0;
+ virtual void Get(CAknQueryControl* aControl) = 0;
+ };
+
+template<class T>
+class TAknQueryData : public MAknQueryData
+ {
+ public:
+ TAknQueryData(T& aData) : iData(aData) {}
+
+ void SetL(CAknQueryControl* aControl, TInt aMaxLength);
+ void Get(CAknQueryControl* aControl);
+
+ public:
+ T& iData;
+ };
+
+template<>
+class TAknQueryData<TDes> : public MAknQueryData
+ {
+ public:
+ TAknQueryData(TDes& aData) : iData(aData) {}
+
+ void SetL(CAknQueryControl* aControl,TInt aMaxLength)
+ { aControl->SetTextL(iData);
+ aControl->SetTextEntryLength(
+ GetMaxTextLength(aControl,iData,aMaxLength)); }
+ void Get(CAknQueryControl* aControl)
+ { aControl->GetText(iData); }
+ public:
+ TDes& iData;
+ };
+
+template<>
+class TAknQueryData<TInt> : public MAknQueryData
+ {
+ public:
+ TAknQueryData(TInt& aData) : iData(aData) {}
+
+ void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
+ { aControl->SetNumberL(iData); }
+ void Get(CAknQueryControl* aControl)
+ { iData=aControl->GetNumber(); }
+ public:
+ TInt& iData;
+ };
+
+template<>
+class TAknQueryData<TTime> : public MAknQueryData
+ {
+ public:
+ TAknQueryData(TTime& aData) : iData(aData) {}
+
+ void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
+ { aControl->SetTime(iData); }
+ void Get(CAknQueryControl* aControl)
+ { iData=aControl->GetTime(); }
+ public:
+ TTime& iData;
+ };
+
+template<>
+class TAknQueryData<TTimeIntervalSeconds> : public MAknQueryData
+ {
+ public:
+ TAknQueryData(TTimeIntervalSeconds& aData) : iData(aData) {}
+
+ void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
+ { aControl->SetDuration(iData); }
+ void Get(CAknQueryControl* aControl)
+ { iData=aControl->GetDuration(); }
+ public:
+ TTimeIntervalSeconds& iData;
+ };
+
+template<>
+class TAknQueryData<TReal> : public MAknQueryData
+ {
+ public:
+ TAknQueryData(TReal& aData) : iData(aData) {}
+
+ void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
+ { aControl->SetFloatingPointNumberL(&iData); }
+ void Get(CAknQueryControl* aControl)
+ { iData=aControl->GetFloatingPointNumberL(); }
+ public:
+ TReal& iData;
+ };
+
+
+template<>
+class TAknQueryData<TInetAddr> : public MAknQueryData
+ {
+ public:
+ TAknQueryData(TInetAddr& aData) : iData(aData) {}
+ void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
+ {
+ CAknExtQueryControl* control = STATIC_CAST(CAknExtQueryControl*,aControl);
+ control->SetInetAddress(iData);
+ }
+ void Get(CAknQueryControl* aControl)
+ {
+ CAknExtQueryControl* control = STATIC_CAST(CAknExtQueryControl*,aControl);
+ iData=control->GetInetAddress();
+ }
+
+ public:
+ TInetAddr& iData;
+ };
+template<>
+class TAknQueryData<TPosition> : public MAknQueryData
+ {
+public:
+ TAknQueryData(TPosition &aData) : iData(aData) {}
+ void SetL(CAknQueryControl* aControl, TInt /*aMaxLength*/)
+ {
+ aControl->SetLocation(iData);
+ }
+ void Get(CAknQueryControl* aControl)
+ {
+ aControl->GetLocation(iData);
+ }
+private:
+ TPosition& iData;
+ };
+
+#endif