diff -r 000000000000 -r 2f259fa3e83a classicui_pub/queries_api/inc/aknquerydata.h --- /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 +#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