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