AppSrc/CDrawOneByOne.cpp
author jkauppin
Fri, 15 Oct 2010 10:18:29 +0900
changeset 3 93fff7023be8
permissions -rw-r--r--
Initial version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     1
/*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     3
* All rights reserved.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     4
* This component and the accompanying materials are made available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     6
* which accompanies this distribution, and is available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     8
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     9
* Initial Contributors:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    11
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    12
* Contributors: Juha Kauppinen, Mika Hokkanen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    13
* 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    14
* Description: Photo Browser
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    15
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    16
*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    17
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    18
#include "CDrawOneByOne.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    19
#include "TextureLoader.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    20
#include "DrawUtility.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    21
#include "ImagicConsts.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    22
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    23
#define IS_NOT_IN_ZOOM_ONEBYONE ((iDrawOneByOneTargetZoom) < (iContainer->KDoubleTapZoomOneByOne1 + 0.01f))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    24
#define IS_ALMOST_ZERO (0.001)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    25
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    26
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    27
const float CDrawOneByOne::KMaxMagGlassZoomFactor = 2.2;//2.0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    28
const float KOneByOneSlideSpeed = 0.24;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    29
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    30
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    31
CDrawOneByOne::CDrawOneByOne(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex):
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    32
    iContainer(aContainer)//,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    33
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    34
    iMagGlassOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    35
    iMagGlassOnPrev = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    36
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    37
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    38
CDrawOneByOne::~CDrawOneByOne()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    39
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    40
    delete iMagGlass;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    41
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    42
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    43
CDrawOneByOne* CDrawOneByOne::NewLC(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    44
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    45
    CDrawOneByOne* self = new (ELeave) CDrawOneByOne(aContainer, aCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    46
    CleanupStack::PushL(self);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    47
    self->ConstructL(aContainer, aCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    48
    return self;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    49
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    50
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    51
CDrawOneByOne* CDrawOneByOne::NewL(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    52
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    53
    CDrawOneByOne* self = CDrawOneByOne::NewLC(aContainer, aCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    54
    CleanupStack::Pop(); // self;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    55
    return self;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    56
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    57
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    58
void CDrawOneByOne::ConstructL(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    59
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    60
    iMagGlass = CDrawMagGlass::NewL(iContainer, this);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    61
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    62
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    63
float CDrawOneByOne::GetMovingStep()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    64
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    65
    //iMovingStep = 0.01/(iDrawOneByOneZoom/8.0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    66
    iMovingStep = 0.015/(iDrawOneByOneZoom/8.0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    67
    return iMovingStep;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    68
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    69
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    70
float CDrawOneByOne::GetImgeFlowLocation()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    71
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    72
    return iOneByOneFlow;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    73
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    74
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    75
void CDrawOneByOne::SetImgeFlowLocation(float aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    76
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    77
    iOneByOneFlow = aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    78
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    79
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    80
TDrawOneByOneXY CDrawOneByOne::GetDrawOneByOneXY()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    81
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    82
    return iDrawOneByOneXY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    83
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    84
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    85
TDrawOneByOneXY CDrawOneByOne::GetDrawOneByOneTargetXY()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    86
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    87
    return iDrawOneByOneTargetXY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    88
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    89
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    90
void CDrawOneByOne::SetDrawOneByOneTargetXY(TDrawOneByOneXY aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    91
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    92
    iDrawOneByOneTargetXY = aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    93
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    94
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    95
void CDrawOneByOne::ChangeDrawOneByOneTargetX(float aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    96
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    97
    iDrawOneByOneTargetXY.iX += aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    98
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    99
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   100
void CDrawOneByOne::ChangeDrawOneByOneTargetY(float aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   101
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   102
    iDrawOneByOneTargetXY.iY += aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   103
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   104
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   105
float CDrawOneByOne::GetDrawOneByOneZoom()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   106
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   107
    return iDrawOneByOneZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   108
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   109
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   110
void CDrawOneByOne::SetDrawOneByOneZoom(float aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   111
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   112
    iDrawOneByOneZoom = aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   113
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   114
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   115
float CDrawOneByOne::GetDrawOneByOneTargetZoom()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   116
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   117
    return iDrawOneByOneTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   118
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   119
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   120
void CDrawOneByOne::SetDrawOneByOneTargetZoom(float aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   121
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   122
    iDrawOneByOneTargetZoom = aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   123
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   124
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   125
float CDrawOneByOne::GetDrawOneByOneWidth()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   126
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   127
    return iDrawOnebyOneW;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   128
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   129
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   130
void CDrawOneByOne::SetDrawOneByOneWidth(float aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   131
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   132
    iDrawOnebyOneW = aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   133
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   134
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   135
float CDrawOneByOne::GetDrawOneByOneHeight()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   136
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   137
    return iDrawOnebyOneH;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   138
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   139
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   140
void CDrawOneByOne::SetDrawOneByOneHeight(float aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   141
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   142
    iDrawOnebyOneH = aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   143
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   144
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   145
TBool CDrawOneByOne::IsMagGlassOn()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   146
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   147
    return iMagGlassOn;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   148
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   149
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   150
void CDrawOneByOne::SetMagGlassStatus(TBool aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   151
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   152
    iMagGlassOn = aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   153
    iMagGlass->InitDrawMagGlass();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   154
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   155
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   156
TBool CDrawOneByOne::IsMagGlassPrevStateOn()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   157
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   158
    return iMagGlassOnPrev;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   159
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   160
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   161
void CDrawOneByOne::SetMagGlassPrevStatus(TBool aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   162
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   163
    iMagGlassOnPrev = aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   164
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   165
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   166
CDrawMagGlass* CDrawOneByOne::GetMagGlass()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   167
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   168
    return iMagGlass;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   169
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   170
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   171
void CDrawOneByOne::KeyPressed()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   172
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   173
    iMenuAlpha = 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   174
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   175
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   176
void CDrawOneByOne::KeyReleased()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   177
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   178
    iMenuAlpha = 0.99;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   179
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   180
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   181
void CDrawOneByOne::KeyEvent()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   182
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   183
    //iMenuAlpha = 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   184
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   185
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   186
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   187
// Initializes one by one view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   188
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   189
void CDrawOneByOne::InitDrawOnebyOne(TReal aDrawZoom, TReal aInPictureX, TReal aInPictureY)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   190
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   191
    DP0_IMAGIC(_L("CDrawOneByOne::InitDrawOnebyOne"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   192
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   193
    //iDrawOneByOneXY.iX = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   194
    //iDrawOneByOneXY.iY = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   195
    iDrawOneByOneXY.iX = aInPictureX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   196
    iDrawOneByOneXY.iY = aInPictureY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   197
    iDrawOneByOneTargetXY.iX = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   198
    iDrawOneByOneTargetXY.iY = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   199
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   200
    //iDrawOneByOneZoom = 0.1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   201
    //if(aDrawZoom == 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   202
        iDrawOneByOneZoom = aDrawZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   203
    /*else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   204
        iDrawOneByOneZoom = 0.4;*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   205
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   206
    iDrawOneByOneTargetZoom = 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   207
    TSize size = iContainer->Size();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   208
    iContainer->CalculateImageSize(iDrawOnebyOneW, iDrawOnebyOneH, (float)size.iWidth/(float)size.iHeight);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   209
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   210
    iZoomingStep = 0.1 * iDrawOneByOneTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   211
    iZoomingSpeed = 0.2; // unno 2.5*iTimeDiff;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   212
    iScalingSpeed = 0.3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   213
    iOneByOneFlow = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   214
    iMagGlassOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   215
    iMagGlassOnPrev = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   216
#ifdef HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   217
    iContainer->iOneByOneSlideByDrag = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   218
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   219
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   220
    iBorder = 0.03;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   221
    iScreenW = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   222
    iScreenH = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   223
    iInPictureX = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   224
    iInPictureY = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   225
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   226
    //iContainer->iDrawFunction = CImagicContainerBrowser::EOneByOne;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   227
    iContainer->SetDrawMode(CImagicContainerBrowser::EOneByOne);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   228
    iContainer->iKeyPressedDown=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   229
    //iContainer->iZoomInKey=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   230
    //iContainer->iZoomOutKey=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   231
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   232
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   233
    iMagGlass->InitDrawMagGlass();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   234
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   235
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   236
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   237
//Draws one by one view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   238
// 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   239
void CDrawOneByOne::DrawOnebyOneL(const TSize &aSize)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   240
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   241
    DP0_IMAGIC(_L("CDrawOneByOne::DrawOnebyOne"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   242
    //RDebug::Print(_L("CDrawOneByOne::DrawOnebyOne"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   243
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   244
    CImageData* imageData = iContainer->iIEngine->GetImageData(iContainer->GetCurrentIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   245
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   246
    // Calculate screen size
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   247
    iContainer->CalculateImageSize(iImageWidth, iImageHeight, (float)aSize.iWidth/(float)aSize.iHeight);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   248
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   249
    //Interpolate current screen size into the new one
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   250
    //if(iContainer->iLastEventFromKeys)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   251
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   252
        iContainer->Interpolate(iDrawOnebyOneW, iImageWidth, 0.55);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   253
        iContainer->Interpolate(iDrawOnebyOneH, iImageHeight, 0.55);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   254
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   255
    /*else//faster interpolation for touch bcos slide speed is also faster
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   256
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   257
        iContainer->Interpolate(iDrawOnebyOneW, iImageWidth, 0.85);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   258
        iContainer->Interpolate(iDrawOnebyOneH, iImageHeight, 0.85);  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   259
        }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   260
    //iContainer->Interpolate(iDrawOnebyOneW, iImageWidth, 0.55);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   261
    //iContainer->Interpolate(iDrawOnebyOneH, iImageHeight, 0.55);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   262
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   263
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   264
    //Use orthogonal projection in OneByOne mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   265
    glLoadIdentity();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   266
    glOrthof(-iDrawOnebyOneW, iDrawOnebyOneW, -iDrawOnebyOneH, iDrawOnebyOneH, -1,1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   267
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   268
    //iContainer->Interpolate(iContainer->iDisplayRotation, iContainer->iDisplayRotationTarget, 0.2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   269
    float tmp = iContainer->GetDisplayRotAngle();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   270
    iContainer->Interpolate(tmp, iContainer->GetDisplayRotTargetAngle(), 0.2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   271
    iContainer->SetDisplayRotAngle(tmp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   272
    glRotatef(iContainer->GetDisplayRotAngle(), 0,0,1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   273
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   274
    // Handle keys----------------------->
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   275
    HandleMovingKeysOnebyOne();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   276
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   277
    // Calculate picture size
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   278
    iContainer->CalculateImageSize(iImageWidth, iImageHeight, imageData->GetAspectRatio());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   279
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   280
    //Here we check that we do not go over the picture boundaries
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   281
    CheckImageLocation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   282
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   283
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   284
    //Move in picture------------------------>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   285
    iDrawOneByOneTargetXY.iX = iInPictureX / iDrawOneByOneTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   286
    iDrawOneByOneTargetXY.iY = iInPictureY / iDrawOneByOneTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   287
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   288
    //iMovingStep = 0.01/(iDrawOneByOneZoom/8);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   289
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   290
    iContainer->Interpolate(iDrawOneByOneXY.iX,iDrawOneByOneTargetXY.iX, iMovingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   291
    iContainer->Interpolate(iDrawOneByOneXY.iY,iDrawOneByOneTargetXY.iY, iMovingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   292
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   293
    // Zooming-------------------------------->
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   294
    if(iContainer->iKeyPressedDown)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   295
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   296
        if(iContainer->GetKeyData().iZoomInKey)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   297
            iDrawOneByOneTargetZoom += iZoomingStep*2;//zoom in
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   298
        else if(iContainer->GetKeyData().iZoomOutKey)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   299
            iDrawOneByOneTargetZoom -= iZoomingStep*4;//zoom out
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   300
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   301
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   302
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   303
    //Limit zooming range
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   304
    iContainer->CheckLimits(iDrawOneByOneTargetZoom, CImagicContainerBrowser::KMinOneByOneZoom, CImagicContainerBrowser::KMaxOneByOneZoom);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   305
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   306
    // Interpolate to new zoom value
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   307
    if(iDrawOneByOneZoom < 0.99)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   308
        iContainer->Interpolate(iDrawOneByOneZoom, iDrawOneByOneTargetZoom, iScalingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   309
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   310
        iContainer->Interpolate(iDrawOneByOneZoom, iDrawOneByOneTargetZoom, iZoomingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   311
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   312
    // Rotation
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   313
    iContainer->HandleRotationKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   314
    iContainer->HandleRotation(imageData->iGridData.iRotationAngle, imageData->iGridData.iTargetRotationAngle);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   315
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   316
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   317
    //Load image ----------------------------------->
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   318
    // Load high res picture if possible
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   319
    //if(iOneByOneFlow < IS_ALMOST_ZERO)//when not zero, images are moving
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   320
    if(iOneByOneFlow == 0)//when not zero, images are moving in oneByOne flow
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   321
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   322
        iContainer->LoadHighResImage(imageData, iContainer->GetCurrentIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   323
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   324
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   325
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   326
    //Bind and Draw ------------------------------------->
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   327
    //Bind to Grid low res texture index. If high res is not available, so we have always some picture to bind and draw it
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   328
    // Determine image indexes, -1 means no image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   329
    TInt imageIndexes[3]={-1,iContainer->GetCurrentIndex(),-1};
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   330
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   331
    //Do not draw other images when not sliding and we are in zoomed into picture
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   332
    //if(iOneByOneFlow != 0)//when not zero, images are moving    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   333
    //if(!iMagGlassOn || IS_NOT_IN_ZOOM_ONEBYONE)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   334
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   335
        if (iContainer->GetCurrentIndex()>0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   336
            imageIndexes[0]=iContainer->GetCurrentIndex()-1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   337
        if (iContainer->GetCurrentIndex() < iContainer->iIEngine->GetTotalNumOfImages()-1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   338
            imageIndexes[2]=iContainer->GetCurrentIndex()+1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   339
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   340
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   341
    //Fade side images when flow goes 70% of image width
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   342
    if(Abs(iOneByOneFlow) > 0.25)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   343
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   344
        iFadeColor=1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   345
        glColor4f(iFadeColor,iFadeColor,iFadeColor, 1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   346
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   347
    if(iOneByOneFlow < 0.5)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   348
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   349
        //if(iContainer->iLastEventFromKeys)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   350
            iContainer->Interpolate(iFadeColor, 0, 0.25);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   351
        /*else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   352
            iContainer->Interpolate(iFadeColor, 0, 0.35);*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   353
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   354
        glColor4f(iFadeColor,iFadeColor,iFadeColor, 1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   355
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   356
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   357
    /*if(iFadeColor == 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   358
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   359
        // Determine image indexes, -1 means no image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   360
        TInt imageIndexes[3]={-1,iContainer->GetCurrentIndex(),-1};
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   361
        }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   362
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   363
    //Move to zero coordinate, which is selected image coordinate
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   364
#ifdef HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   365
    //Stop interpolation when user is dragging
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   366
    if(iContainer->iHoldSelection == EFalse)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   367
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   368
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   369
        if(iContainer->iLastEventFromKeys)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   370
            iContainer->Interpolate(iOneByOneFlow, 0, KOneByOneSlideSpeed);//sliding speed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   371
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   372
            iContainer->Interpolate(iOneByOneFlow, 0, KOneByOneSlideSpeed*1.3);//sliding speed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   373
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   374
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   375
    //glColor4f(1,1,1, 1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   376
    glPushMatrix();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   377
    glScalef(iDrawOneByOneZoom, iDrawOneByOneZoom, iDrawOneByOneZoom);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   378
    //Move to first image location (= current-1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   379
    glTranslatef(iOneByOneFlow-iContainer->KOneByOneSpacing,0,0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   380
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   381
    TInt currentIndexTexture=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   382
    for(TInt i=0; i<3; i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   383
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   384
        // Check that image index is valid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   385
        if (imageIndexes[i]!=-1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   386
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   387
            //Bind to best picture
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   388
            CImageData* data=iContainer->iIEngine->GetImageData(imageIndexes[i]);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   389
            if(i==1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   390
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   391
                iContainer->iCurrentBindedIndex = data->iGridData.BestImage();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   392
                //Bind to 512 res image when not zoomed for better image scaling quality
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   393
                if(IS_NOT_IN_ZOOM_ONEBYONE && data->iGridData.iGlHQ512TextIndex!=0 && !iMagGlassOn) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   394
                    iContainer->iCurrentBindedIndex = data->iGridData.iGlHQ512TextIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   395
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   396
            //Side images gets only 128x128 tn because of perf reason
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   397
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   398
                iContainer->iCurrentBindedIndex = data->iGridData.iGlLQ128TextIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   399
            if(!iContainer->iCurrentBindedIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   400
                iContainer->iCurrentBindedIndex = data->iGridData.iGlLQ32TextIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   401
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   402
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   403
            //If no images ready, bind with loading tn
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   404
            if (iContainer->iCurrentBindedIndex == 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   405
                iContainer->iCurrentBindedIndex = iContainer->iLoadingTextureIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   406
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   407
            glBindTexture(GL_TEXTURE_2D, iContainer->iCurrentBindedIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   408
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   409
            if(i==1){
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   410
                currentIndexTexture=iContainer->iCurrentBindedIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   411
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   412
            iContainer->SetMinMagFilterLinearDo(iContainer->iMinMagFilterSetting);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   413
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   414
            //Store matrix and rotate picture
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   415
            glPushMatrix();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   416
               
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   417
            if(i==1 && iMagGlassOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   418
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   419
                glColor4f(1,1,1, 1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   420
                glTranslatef(iDrawOneByOneXY.iX, -iDrawOneByOneXY.iY, 0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   421
                glRotatef(data->iGridData.iRotationAngle, 0,0,1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   422
                iMagGlass->DrawMagGlass(aSize, data->GetAspectRatio());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   423
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   424
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   425
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   426
                //Set Draw color to white when drawing selection or if we drag images 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   427
                if(i==1 || (iContainer->iHoldSelection && !iMagGlassOn))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   428
                    glColor4f(1,1,1, 1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   429
                else//othervise "fade" images
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   430
                    glColor4f(iFadeColor,iFadeColor,iFadeColor, 1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   431
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   432
                glTranslatef(-iDrawOneByOneXY.iX, iDrawOneByOneXY.iY, 0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   433
                glRotatef(data->iGridData.iRotationAngle, 0,0,1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   434
                // Set vertixes and draw
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   435
                GLfixed vertices[8];
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   436
                iContainer->SetPictureVertices(data, vertices);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   437
                glVertexPointer( 2, GL_FIXED, 0, vertices );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   438
                glDrawArrays(GL_TRIANGLE_STRIP,0,4);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   439
#ifdef EMPTY_IMAGE_AS_WIREFRAME
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   440
                // Draw black frame with white borders
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   441
                if (iContainer->iCurrentBindedIndex == 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   442
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   443
                    glScalef(0.92, 0.92, 0.92);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   444
                    glColor4f(0,0,0,1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   445
                    glDrawArrays(GL_TRIANGLE_STRIP,0,4);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   446
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   447
#endif                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   448
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   449
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   450
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   451
#ifdef RD_FACEFRAME
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   452
            //if (i==1 && iDrawFaceFrame) DrawFaceFrame();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   453
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   454
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   455
            //Remove rotation
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   456
            glPopMatrix();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   457
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   458
        // Move to next image position
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   459
        glTranslatef(iContainer->KOneByOneSpacing,0,0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   460
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   461
    glPopMatrix();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   462
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   463
    if(currentIndexTexture!=iContainer->iCurrentBindedIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   464
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   465
        iContainer->iCurrentBindedIndex = currentIndexTexture;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   466
        glBindTexture(GL_TEXTURE_2D, iContainer->iCurrentBindedIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   467
        iContainer->SetMinMagFilterLinearDo(iContainer->iMinMagFilterSetting);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   468
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   469
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   470
#ifdef SCR_DRAW_DEBUG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   471
    iDrawUtility->Update();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   472
    iDrawUtility->Draw(Size());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   473
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   474
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   475
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   476
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   477
    //iContainer->iDrawUtility->DrawMenuIndicators(iContainer->Size());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   478
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   479
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   480
#ifdef RD_ZOOMICON
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   481
    //Draw moving direction arrays when sliding in OnByOne mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   482
    if(!iMagGlassOn && iFadeColor!=0 || iOneByOneFlow != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   483
        iContainer->iDrawUtility->DrawMovingArrow(ETrue, EFalse, iContainer->Size());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   484
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   485
    //Draw moving direction arrays when zoomed in
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   486
    if (!IS_NOT_IN_ZOOM_ONEBYONE && 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   487
        (iDrawOneByOneXY.iX != iDrawOneByOneTargetXY.iX || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   488
         iDrawOneByOneXY.iY != iDrawOneByOneTargetXY.iY || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   489
         iDrawOneByOneZoom != iDrawOneByOneTargetZoom ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   490
         imageData->iGridData.iRotationAngle != imageData->iGridData.iTargetRotationAngle ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   491
         iContainer->iOnTheEdge))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   492
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   493
        /*if(!iMagGlassOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   494
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   495
            iContainer->iDrawUtility->DrawMovingArrow(ETrue, !IS_NOT_IN_ZOOM_ONEBYONE, iContainer->Size());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   496
            }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   497
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   498
        iContainer->iDrawUtility->DrawZoomIcon( imageData,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   499
                                                iContainer->Size(), 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   500
                                                -iDrawOneByOneXY.iX, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   501
                                                iDrawOneByOneXY.iY,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   502
                                                iDrawOnebyOneW/iImageWidth, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   503
                                                iDrawOnebyOneH/iImageHeight,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   504
                                                ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   505
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   506
#endif    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   507
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   508
#if 0
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   509
    if(iMenuAlpha < 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   510
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   511
        iMenuAlpha-=0.3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   512
        if(iMenuAlpha < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   513
            iMenuAlpha = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   514
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   515
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   516
    iContainer->iDrawUtility->DrawIcon2(iContainer->Size(), iContainer->iMenuTextureIndex, iMenuAlpha);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   517
#endif   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   518
    iContainer->DynamicLoadingL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   519
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   520
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   521
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   522
TBool CDrawOneByOne::IsDrawingNeededOneByOne()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   523
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   524
    CImageData* imageData = iContainer->iIEngine->GetImageData(iContainer->GetCurrentIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   525
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   526
#if 0
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   527
    if(iMenuAlpha != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   528
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   529
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   530
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   531
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   532
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   533
    if(Abs(iOneByOneFlow) > 0.01)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   534
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   535
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 2"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   536
        iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   537
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   538
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   539
    else if(iOneByOneFlow!=0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   540
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   541
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 3"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   542
        iOneByOneFlow=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   543
        //if(imageData->iGridData.iGlHQ512TextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   544
        //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   545
        iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   546
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   547
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   548
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   549
    if(iMagGlassOnPrev != iMagGlassOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   550
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   551
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 4"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   552
        iMagGlassOnPrev = iMagGlassOn;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   553
        //SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   554
        //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   555
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   556
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   557
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   558
    if(iMagGlassOn && (iMagGlass->GetMagGlassZoomFactor() < KMaxMagGlassZoomFactor-0.1))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   559
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   560
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 5"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   561
        DP1_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - magGlass: %f"), iMagGlass->GetMagGlassZoomFactor());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   562
        iMagGlassOnPrev = iMagGlassOn;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   563
        iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   564
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   565
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   566
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   567
    if(Abs(iContainer->GetDisplayRotAngle() - iContainer->GetDisplayRotTargetAngle()) > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   568
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   569
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 6"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   570
        iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   571
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   572
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   573
    else if(iContainer->GetDisplayRotAngle() != iContainer->GetDisplayRotTargetAngle())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   574
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   575
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 6.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   576
        iContainer->SetDisplayRotAngle(iContainer->GetDisplayRotTargetAngle());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   577
        iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   578
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   579
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   580
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   581
    if(Abs(imageData->iGridData.iRotationAngle - imageData->iGridData.iTargetRotationAngle) > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   582
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   583
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 7"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   584
        iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   585
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   586
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   587
    else if(imageData->iGridData.iRotationAngle != imageData->iGridData.iTargetRotationAngle)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   588
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   589
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 7.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   590
        imageData->iGridData.iRotationAngle = imageData->iGridData.iTargetRotationAngle;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   591
        iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   592
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   593
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   594
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   595
    if(Abs(iDrawOneByOneZoom - iDrawOneByOneTargetZoom) > 0.01)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   596
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   597
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 9"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   598
        iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   599
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   600
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   601
    else if(iDrawOneByOneZoom != iDrawOneByOneTargetZoom)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   602
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   603
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 9.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   604
        iDrawOneByOneZoom = iDrawOneByOneTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   605
        //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   606
        iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   607
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   608
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   609
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   610
    if(Abs(iDrawOneByOneXY.iX-iDrawOneByOneTargetXY.iX) > 0.001)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   611
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   612
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 11"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   613
        iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   614
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   615
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   616
    else if(iDrawOneByOneXY.iX != iDrawOneByOneTargetXY.iX)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   617
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   618
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 11.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   619
        iDrawOneByOneXY.iX = iDrawOneByOneTargetXY.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   620
        //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   621
        iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   622
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   623
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   624
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   625
    if(Abs(iDrawOneByOneXY.iY-iDrawOneByOneTargetXY.iY) > 0.001)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   626
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   627
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 12"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   628
        iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   629
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   630
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   631
    else if(iDrawOneByOneXY.iY != iDrawOneByOneTargetXY.iY)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   632
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   633
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 12.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   634
        iDrawOneByOneXY.iY = iDrawOneByOneTargetXY.iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   635
        //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   636
        iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   637
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   638
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   639
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   640
    /*if(iPreviousTexNum != iCurrentTexNum && !iDrawOneMoreTime)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   641
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   642
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 13.0"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   643
        //iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   644
        SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   645
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   646
        }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   647
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   648
    /*if(imageData->GetAspectRatio() > iScreenAspectRatio && (iDrawOneByOneZoom-1) < 0.01)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   649
        if(Abs(iDrawOnebyOneW-iImageWidth*2) > 0.01)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   650
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   651
            DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 13.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   652
            DP2_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - iDrawOnebyOneW: %f, iImageWidth: %f"),iDrawOnebyOneW, iImageWidth);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   653
            SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   654
            //iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   655
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   656
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   657
        else if(iDrawOnebyOneW != iImageWidth*2)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   658
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   659
            DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 13.2"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   660
            DP2_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - iDrawOnebyOneW: %f, iImageWidth: %f"),iDrawOnebyOneW, iImageWidth);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   661
            iDrawOnebyOneW = iImageWidth*2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   662
            iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   663
            SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   664
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   665
            }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   666
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   667
    /*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   668
    if(imageData->GetAspectRatio() < iContainer->iScreenAspectRatio && (iDrawOneByOneZoom-1) < 0.01)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   669
        if(Abs(iDrawOnebyOneH-iImageHeight) > 0.01)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   670
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   671
            DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 13.3"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   672
            DP2_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - iDrawOnebyOneH: %f, iImageHeight: %f"),iDrawOnebyOneH, iImageHeight);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   673
            iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   674
            //iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   675
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   676
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   677
        else if(Abs(iDrawOnebyOneH - iImageHeight) > IS_ALMOST_ZERO)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   678
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   679
            DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 13.4"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   680
            DP2_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - iDrawOnebyOneH: %f, iImageHeight: %f"),iDrawOnebyOneH, iImageHeight);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   681
            iDrawOnebyOneH = iImageHeight;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   682
            //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   683
            iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   684
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   685
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   686
    */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   687
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   688
    /*if(iContainer->iDrawOneMoreTime)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   689
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   690
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 14"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   691
        iContainer->iDrawOneMoreTime = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   692
        iContainer->SetMinMagFilterLinear(ETrue);//Draw one more time to change for Linear rendering mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   693
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   694
        }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   695
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   696
    if(!iContainer->iMagFilterLinear)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   697
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   698
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 15"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   699
        iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   700
        //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   701
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   702
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   703
    if(Abs(iOneByOneFlow) < 0.7)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   704
        if(iFadeColor > 0.1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   705
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   706
            DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 16"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   707
            iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   708
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   709
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   710
        else if(iFadeColor!=0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   711
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   712
            DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 17"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   713
            iFadeColor = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   714
            iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   715
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   716
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   717
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   718
    if(iContainer->iDrawNow)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   719
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   720
        DP0_IMAGIC(_L("CDrawOneByOne::IsDrawingNeededOneByOne - 1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   721
        if(iMagGlassOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   722
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   723
            if(!iContainer->IsTouchPointThresholdExeed())//moved >2 pixel
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   724
                iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   725
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   726
                iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   727
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   728
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   729
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   730
            iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   731
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   732
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   733
        iContainer->iDrawNow = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   734
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   735
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   736
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   737
    return EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   738
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   739
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   740
//Here we check that we do not go over the picture boundaries
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   741
void CDrawOneByOne::CheckImageLocation(/*float& aImageWidth, float& aImageHeight*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   742
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   743
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   744
    CImageData* imageData = iContainer->iIEngine->GetImageData(iContainer->GetCurrentIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   745
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   746
    // Change landscape<->portrait if pic is rotated 90 or 270
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   747
    TInt angle = imageData->iGridData.iTargetRotationAngle;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   748
    if(angle % 90 == 0 && angle % 180 != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   749
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   750
        if(imageData->GetAspectRatio() > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   751
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   752
            /*iImageWidth /= imageData->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   753
            iImageWidth -= (iImageWidth-iDrawOnebyOneW);*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   754
            iImageHeight *= imageData->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   755
            iImageHeight -= (iImageHeight-iDrawOnebyOneH);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   756
            iImageWidth = iImageHeight / imageData->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   757
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   758
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   759
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   760
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   761
            /*iImageWidth/= imageData->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   762
            iImageWidth-= (iImageWidth-iDrawOnebyOneW);*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   763
            iImageHeight *= imageData->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   764
            iImageHeight -= (iImageHeight-iDrawOnebyOneH);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   765
            iImageWidth = iImageHeight / imageData->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   766
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   767
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   768
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   769
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   770
    iImageWidth *= iDrawOneByOneTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   771
    iImageHeight *= iDrawOneByOneTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   772
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   773
    //Calculate location/coordinates in screen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   774
    iInPictureX = iDrawOneByOneTargetXY.iX * iDrawOneByOneTargetZoom; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   775
    iInPictureY = iDrawOneByOneTargetXY.iY * iDrawOneByOneTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   776
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   777
    //Lets move in picture little bit over the border
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   778
    if(iDrawOneByOneTargetZoom==1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   779
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   780
        iBorder=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   781
        iDrawOneByOneTargetXY.iX = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   782
        iDrawOneByOneTargetXY.iY = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   783
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   784
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   785
		{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   786
        iBorder=0.015; // was 0.1. Changed to 0 to limit just at the edge of image in zoom
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   787
		}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   788
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   789
    //Calculate screen size
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   790
    iScreenW = iDrawOnebyOneW - iBorder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   791
    iScreenH = iDrawOnebyOneH - iBorder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   792
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   793
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   794
    if (iImageWidth > iScreenW)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   795
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   796
        if (iInPictureX-iScreenW < -iImageWidth)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   797
            iInPictureX=-iImageWidth+iScreenW;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   798
        if (iInPictureX+iScreenW > iImageWidth)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   799
            iInPictureX=iImageWidth-iScreenW;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   800
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   801
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   802
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   803
        iInPictureX=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   804
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   805
    if (iImageHeight > iScreenH)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   806
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   807
        if (iInPictureY-iScreenH < -iImageHeight)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   808
            iInPictureY=-iImageHeight+iScreenH;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   809
        if (iInPictureY+iScreenH > iImageHeight)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   810
            iInPictureY=iImageHeight-iScreenH;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   811
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   812
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   813
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   814
        iInPictureY=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   815
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   816
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   817
    if(IS_NOT_IN_ZOOM_ONEBYONE)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   818
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   819
        iInPictureY=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   820
        iInPictureX=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   821
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   822
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   823
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   824
void CDrawOneByOne::HandleMovingKeysOnebyOne()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   825
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   826
    // Handle keys----------------------->
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   827
    CKeyData keyData = iContainer->GetKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   828
    CKeyData touchData = iContainer->GetTouchData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   829
    iFlowThresHold=0.8;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   830
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   831
    //Handle keydata and touchdata
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   832
    ChangeDrawOneByOneTargetX(keyData.iRight * GetMovingStep());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   833
    ChangeDrawOneByOneTargetX(-keyData.iLeft * GetMovingStep());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   834
    ChangeDrawOneByOneTargetY(keyData.iDown * GetMovingStep());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   835
    ChangeDrawOneByOneTargetY(-keyData.iUp * GetMovingStep());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   836
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   837
    ChangeDrawOneByOneTargetX(touchData.iRight * GetMovingStep());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   838
    ChangeDrawOneByOneTargetX(-touchData.iLeft * GetMovingStep());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   839
    ChangeDrawOneByOneTargetY(touchData.iDown * GetMovingStep());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   840
    ChangeDrawOneByOneTargetY(-touchData.iUp * GetMovingStep());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   841
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   842
    if(touchData.iRight || touchData.iLeft || touchData.iDown || touchData.iUp)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   843
        //iMovingSpeed = 2.2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   844
        iMovingSpeed = 100;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   845
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   846
        iMovingSpeed = 0.15;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   847
        //iMovingSpeed = 0.01;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   848
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   849
    //Calculate new index from movement keys to change picture in onebyone mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   850
    //but only if zooming is not done
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   851
    //And we have started sliding/moving
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   852
#ifdef HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   853
    if(GetDrawOneByOneTargetZoom()==1 && 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   854
       //((Abs(GetImgeFlowLocation())<0.99) || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   855
       ((Abs(GetImgeFlowLocation())<iFlowThresHold) ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   856
       iContainer->GetSlideByDragValue()) &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   857
       !IsMagGlassOn())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   858
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   859
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   860
    if(iDrawOneByOneTargetZoom==1 && Abs(iOneByOneFlow)<0.2 && !iMagGlassOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   861
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   862
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   863
        iContainer->SetCurrentIndex(iContainer->GetCurrentIndex() + keyData.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   864
        iContainer->SetCurrentIndex(iContainer->GetCurrentIndex() + keyData.iX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   865
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   866
        iContainer->SetCurrentIndex(iContainer->GetCurrentIndex() + touchData.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   867
        iContainer->SetCurrentIndex(iContainer->GetCurrentIndex() + touchData.iX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   868
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   869
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   870
    // Check that index is in grid area
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   871
    while(iContainer->GetCurrentIndex() >= iContainer->iIEngine->GetTotalNumOfImages())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   872
        iContainer->SetCurrentIndex(iContainer->GetCurrentIndex() - iContainer->iIEngine->GetTotalNumOfImages());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   873
    while(iContainer->GetCurrentIndex() < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   874
        iContainer->SetCurrentIndex(iContainer->GetCurrentIndex() + iContainer->iIEngine->GetTotalNumOfImages());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   875
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   876
    // Update selected picture index
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   877
    if(iContainer->GetPrevIndex() != iContainer->GetCurrentIndex())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   878
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   879
        //iContainer->iTextureLoader->ReleaseHQ512Textures();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   880
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   881
        //iMagGlassOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   882
        SetMagGlassStatus(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   883
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   884
        iContainer->iImagicAppUi->SetImageIndex(iContainer->GetCurrentIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   885
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   886
        // Set new flow coordinate
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   887
        if (keyData.iLeft || touchData.iLeft)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   888
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   889
            float tmp = GetImgeFlowLocation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   890
            tmp-=CImagicContainerBrowser::KOneByOneSpacing;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   891
            SetImgeFlowLocation(tmp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   892
            //iOneByOneFlow-=KOneByOneSpacing;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   893
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   894
        if (keyData.iRight || touchData.iRight)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   895
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   896
            float tmp = GetImgeFlowLocation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   897
            tmp+=CImagicContainerBrowser::KOneByOneSpacing;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   898
            SetImgeFlowLocation(tmp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   899
            //iOneByOneFlow+=KOneByOneSpacing;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   900
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   901
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   902
        //Cancel SuperZoom image loading, if it was started
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   903
        iContainer->iIEngine->CancelFullSizeLoading();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   904
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   905
    iContainer->SetPrevIndex(iContainer->GetCurrentIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   906
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   907
    iContainer->ResetKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   908
    iContainer->ResetTouchData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   909
    }