diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mw/aknquerydata.h --- a/epoc32/include/mw/aknquerydata.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/mw/aknquerydata.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,163 @@ -aknquerydata.h +/* +* 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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Implementation of Query data classes for query dialogs +* +*/ + + +#ifndef AKNQUERYDATA_H +#define AKNQUERYDATA_H + +#include +#include +#include +#include + +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 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 : 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 : 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 : 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 : 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 : 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 : 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 : 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