epoc32/include/mw/aknquerydata.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@2
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description: 
williamr@2
    15
*   Implementation of Query data classes for query dialogs
williamr@2
    16
*
williamr@2
    17
*/
williamr@2
    18
williamr@2
    19
williamr@2
    20
#ifndef AKNQUERYDATA_H
williamr@2
    21
#define AKNQUERYDATA_H
williamr@2
    22
williamr@2
    23
#include <e32std.h>
williamr@4
    24
#include <aknQueryControl.h>
williamr@2
    25
#include <in_sock.h>
williamr@2
    26
#include <lbsposition.h>
williamr@2
    27
williamr@2
    28
class CAknQueryDialog;
williamr@2
    29
class TInetAddr;
williamr@2
    30
williamr@2
    31
williamr@2
    32
IMPORT_C TInt GetMaxTextLength(const CAknQueryControl* aControl, const TDes& aDataText, TInt aApiValue);
williamr@2
    33
williamr@2
    34
class MAknQueryData
williamr@2
    35
    {
williamr@2
    36
    public:
williamr@2
    37
        virtual void SetL(CAknQueryControl* aControl, TInt aMaxLength) = 0;
williamr@2
    38
        virtual void Get(CAknQueryControl* aControl) = 0;
williamr@2
    39
    };
williamr@2
    40
williamr@2
    41
template<class T>
williamr@2
    42
class TAknQueryData : public MAknQueryData
williamr@2
    43
    {
williamr@2
    44
    public:
williamr@2
    45
        TAknQueryData(T& aData) : iData(aData) {}
williamr@2
    46
williamr@2
    47
        void SetL(CAknQueryControl* aControl, TInt aMaxLength);
williamr@2
    48
        void Get(CAknQueryControl* aControl);
williamr@2
    49
williamr@2
    50
    public:
williamr@2
    51
        T& iData;
williamr@2
    52
    };
williamr@2
    53
williamr@2
    54
template<>
williamr@2
    55
class TAknQueryData<TDes> : public MAknQueryData
williamr@2
    56
    {
williamr@2
    57
    public:
williamr@2
    58
        TAknQueryData(TDes& aData) : iData(aData) {}
williamr@2
    59
williamr@2
    60
        void SetL(CAknQueryControl* aControl,TInt aMaxLength)
williamr@2
    61
            { aControl->SetTextL(iData); 
williamr@2
    62
              aControl->SetTextEntryLength(
williamr@2
    63
                  GetMaxTextLength(aControl,iData,aMaxLength)); }
williamr@2
    64
        void Get(CAknQueryControl* aControl) 
williamr@2
    65
            { aControl->GetText(iData); }
williamr@2
    66
    public:
williamr@2
    67
        TDes& iData;
williamr@2
    68
    };
williamr@2
    69
williamr@2
    70
template<>
williamr@2
    71
class TAknQueryData<TInt> : public MAknQueryData
williamr@2
    72
    {
williamr@2
    73
    public:
williamr@2
    74
        TAknQueryData(TInt& aData) : iData(aData) {}
williamr@2
    75
williamr@2
    76
        void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
williamr@2
    77
            { aControl->SetNumberL(iData); }
williamr@2
    78
        void Get(CAknQueryControl* aControl) 
williamr@2
    79
            { iData=aControl->GetNumber(); }
williamr@2
    80
    public:
williamr@2
    81
        TInt& iData;
williamr@2
    82
    };
williamr@2
    83
williamr@2
    84
template<>
williamr@2
    85
class TAknQueryData<TTime> : public MAknQueryData
williamr@2
    86
    {
williamr@2
    87
    public:
williamr@2
    88
        TAknQueryData(TTime& aData) : iData(aData) {}
williamr@2
    89
williamr@2
    90
        void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
williamr@2
    91
            { aControl->SetTime(iData); }
williamr@2
    92
        void Get(CAknQueryControl* aControl) 
williamr@2
    93
            { iData=aControl->GetTime(); }
williamr@2
    94
    public:
williamr@2
    95
        TTime& iData;
williamr@2
    96
    };
williamr@2
    97
williamr@2
    98
template<>
williamr@2
    99
class TAknQueryData<TTimeIntervalSeconds> : public MAknQueryData
williamr@2
   100
    {
williamr@2
   101
    public:
williamr@2
   102
        TAknQueryData(TTimeIntervalSeconds& aData) : iData(aData) {}
williamr@2
   103
williamr@2
   104
        void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
williamr@2
   105
            { aControl->SetDuration(iData); }
williamr@2
   106
        void Get(CAknQueryControl* aControl) 
williamr@2
   107
            { iData=aControl->GetDuration(); }
williamr@2
   108
    public:
williamr@2
   109
        TTimeIntervalSeconds& iData;
williamr@2
   110
    };
williamr@2
   111
williamr@2
   112
template<>
williamr@2
   113
class TAknQueryData<TReal> : public MAknQueryData
williamr@2
   114
    {
williamr@2
   115
    public:
williamr@2
   116
        TAknQueryData(TReal& aData) : iData(aData) {}
williamr@2
   117
williamr@2
   118
        void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
williamr@2
   119
            { aControl->SetFloatingPointNumberL(&iData); }
williamr@2
   120
        void Get(CAknQueryControl* aControl) 
williamr@2
   121
            { iData=aControl->GetFloatingPointNumberL(); }
williamr@2
   122
    public:
williamr@2
   123
        TReal& iData;
williamr@2
   124
    };
williamr@2
   125
williamr@2
   126
williamr@2
   127
template<>  
williamr@2
   128
class TAknQueryData<TInetAddr> : public MAknQueryData
williamr@2
   129
    {
williamr@2
   130
    public:
williamr@2
   131
        TAknQueryData(TInetAddr& aData) : iData(aData) {}
williamr@2
   132
        void SetL(CAknQueryControl* aControl,TInt /*aMaxLength*/)
williamr@2
   133
            {
williamr@2
   134
                CAknExtQueryControl* control = STATIC_CAST(CAknExtQueryControl*,aControl);
williamr@2
   135
                control->SetInetAddress(iData);
williamr@2
   136
            }
williamr@2
   137
        void Get(CAknQueryControl* aControl) 
williamr@2
   138
            {
williamr@2
   139
                CAknExtQueryControl* control = STATIC_CAST(CAknExtQueryControl*,aControl);
williamr@2
   140
                iData=control->GetInetAddress();
williamr@2
   141
            }
williamr@2
   142
williamr@2
   143
    public:
williamr@2
   144
        TInetAddr& iData;
williamr@2
   145
    };
williamr@2
   146
template<>    
williamr@2
   147
class TAknQueryData<TPosition> : public MAknQueryData
williamr@2
   148
	{
williamr@2
   149
public:
williamr@2
   150
	TAknQueryData(TPosition &aData) : iData(aData) {}
williamr@2
   151
	void SetL(CAknQueryControl* aControl, TInt /*aMaxLength*/)
williamr@2
   152
		{
williamr@2
   153
		aControl->SetLocation(iData);
williamr@2
   154
		}
williamr@2
   155
	void Get(CAknQueryControl* aControl)
williamr@2
   156
		{
williamr@2
   157
		aControl->GetLocation(iData);
williamr@2
   158
		}
williamr@2
   159
private:
williamr@2
   160
	TPosition& iData;
williamr@2
   161
	};
williamr@2
   162
williamr@2
   163
#endif