camerauis/cameraapp/generic/src/camlinevfgriddrawer.cpp
branchRCL_3
changeset 53 61bc0f252b2b
parent 50 f54ad444594d
child 54 bac7acad7cb3
--- a/camerauis/cameraapp/generic/src/camlinevfgriddrawer.cpp	Thu Aug 19 09:36:57 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,377 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Implemantation for CCamLineVfGridDrawer class.
-*
-*  Copyright © 2007 Nokia.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-
-*
-*
-*/
-
-
-#include <gdi.h>
-#include "camlinevfgriddrawer.h"
-#include "camlogging.h"
-
-// ======== LOCAL CONSTANTS ========
-
-namespace
-  {
-  const TInt KArrayGranularity =   8;
-  const TInt KMaxLineCount     =  64;
-
-  const TInt KPenColorRed   = 255;
-  const TInt KPenColorGreen =   0;//255;
-  const TInt KPenColorBlue  =   0;//255;
-  const TInt KPenColorAlpha = 255;//128;
-  const TInt KPenWidth      =   2;
-  const TInt KPenHeight     =   2;
-  const CGraphicsContext::TPenStyle KPenStyle = CGraphicsContext::ESolidPen;  
-  }
-  
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-// ===========================================================================
-// Public part
-
-// ---------------------------------------------------------------------------
-// static NewL
-//
-// 2-phased constructor
-// ---------------------------------------------------------------------------
-//
-CCamLineVfGridDrawer* 
-CCamLineVfGridDrawer::NewL()
-  {
-  CCamLineVfGridDrawer* self = new (ELeave) CCamLineVfGridDrawer;
-  CleanupStack::PushL( self );
-  self->ConstructL();
-  CleanupStack::Pop( self );
-  return self;
-  }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CCamLineVfGridDrawer::~CCamLineVfGridDrawer()
-  {
-  PRINT( _L("Camera => ~CCamLineVfGridDrawer") );
-  iLineArray.Reset();
-  iLineArray.Close();
-  PRINT( _L("Camera <= ~CCamLineVfGridDrawer") );
-  }
-    
-
-
-// ---------------------------------------------------------------------------
-// virtual InitL
-// * from MCamVfGridDrawer
-// 
-// Initialize the drawer.
-// ---------------------------------------------------------------------------
-//
-void 
-CCamLineVfGridDrawer::InitL( TAny* /*aParam*/ )
-  {
-  }
-
-// ---------------------------------------------------------------------------
-// virtual Draw( CBitmapContext& )
-//   * from MCamVfGridDrawer
-// 
-// Draw the grid. If not set visible nothing is drawn.
-// ---------------------------------------------------------------------------
-//
-void 
-CCamLineVfGridDrawer::Draw( CBitmapContext& aGc ) const
-  {
-  if( iVisible &&   
-      iLineArray.Count() > 0 )
-    {
-    // Set drawing properties.
-    aGc.SetPenStyle( iPenStyle );
-    aGc.SetPenSize ( iPenSize  );
-    aGc.SetPenColor( iPenColor );
-
-    // Draw the lines
-    for( TInt i = 0; i < iLineArray.Count(); i++ )
-      {
-      // Top-left and bottom-right corners of the rect 
-      // represent the line ends.
-      aGc.DrawLine( iLineArray[i].iTl, iLineArray[i].iBr );
-      }
-
-    // Clear any settings made to gc
-    aGc.Reset();
-    }
-  else
-    {
-    // Not visible => draw nothing.
-    }
-  }
-
-
-// ---------------------------------------------------------------------------
-// virtual Draw( const TRect&, CBitmapContext& )
-//   * from MCamVfGridDrawer
-// 
-// Draw part of the grid. If not set visible nothing is drawn.
-// Note:
-//   Only pure vertical and pure horizontal lines
-//   get drawn to right place if lines expand outside
-//   the aRect rectangle given here as parameter.
-// ---------------------------------------------------------------------------
-//
-void 
-CCamLineVfGridDrawer::Draw( const TRect&          aRect,
-                                  CBitmapContext& aGc   ) const
-  {
-  if( iVisible &&   
-      iLineArray.Count() > 0 )
-    {
-    // Limit the drawing to given rectangle.
-    // Drawing outside this rectangle has no visible effect.
-    aGc.SetClippingRect( aRect );
-    // Make the same drawing operations as in full screen draw.
-    // The drawing is so simple that any optimization is
-    // probably more time consuming than the drawing itself.
-    // Draw resets the gc in the end, so clipping rect is cleared.
-    Draw( aGc );
-    }
-  else
-    {
-    // Not visible => draw nothing.
-    }
-  }
-
-// ---------------------------------------------------------------------------
-// virtual SetVisible
-// * from MCamVfGridDrawer
-// 
-// Set visibility of the grid.
-// 
-// ---------------------------------------------------------------------------
-//
-void 
-CCamLineVfGridDrawer::SetVisible( TBool aVisible )
-  {
-  iVisible = aVisible;
-  }
-
-
-
-// ---------------------------------------------------------------------------
-// virtual IsVisible
-// * from MCamVfGridDrawer
-// 
-// Get visibility of the grid.
-// 
-// ---------------------------------------------------------------------------
-//
-TBool
-CCamLineVfGridDrawer::IsVisible() const
-  {
-  return iVisible;
-  }
-
-
-// ---------------------------------------------------------------------------
-// SetLinesL
-// * from MCamVfGridDrawer
-// 
-// Set the line end pair array.
-// ---------------------------------------------------------------------------
-//
-void 
-CCamLineVfGridDrawer::SetLinesL( const RLineArray& aLineArray )
-  {
-  TInt newLineCount = aLineArray.Count();
-  if( newLineCount > KMaxLineCount )
-    {
-    User::Leave( KErrArgument );
-    }
-  
-  iLineArray.Reset();
-  for( TInt i = 0; i < newLineCount; i++ )
-    {
-    iLineArray.Append( aLineArray[i] );
-    }
-  }
-
-
-// ---------------------------------------------------------------------------
-// SetLinesL
-// 
-// Set the line end pair array by defining the count and bordered property
-// of lines per horizontal and vertical axis.
-// ---------------------------------------------------------------------------
-//
-void 
-CCamLineVfGridDrawer::SetLinesL( const TRect& aDrawingRect, 
-                                       TInt   aHorizontalLines, 
-                                       TInt   aVerticalLines,
-                                       TBool  aBorderedGrid /* = EFalse */)
-  {
-  // -------------------------------------------------------
-  // Check the max limit for lines does not exceed.
-  if( aHorizontalLines < 0
-   || aVerticalLines   < 0
-   || aHorizontalLines + aVerticalLines > KMaxLineCount
-    )
-    {
-    User::Leave( KErrArgument );
-    }
-
-  // -------------------------------------------------------
-  // Fill the line end array
-  //
-  // The lines are evenly spaced over the draw area axis in question.  
-  // The aBorderedGrid parameter determines whether the grid 
-  // draws lines to the borders of draw area:
-  // E.g. 3 vertical lines: '[' and ']' are the draw area borders.
-  //  aBorderedGrid: [|    |    |]
-  // !aBorderedGrid: [  |  |  |  ]  
-  //
-  // The formula for the location of i:th line when N lines
-  // are used along dimension D:
-  // -  aBorderedGrid: (  i   * D) / (N - 1) 
-  // - !aBorderedGrid: ((i+1) * D) / (N + 1) 
-  // * Divide by (N-1) needs special handling with N=1.
-  // * Half of pen width is subtracted from the above formula result
-  //   to center the line to the calculated location.
-  // * odd area or pen width/height may cause error of 1 pixel.
-  TInt indexOffset = (aBorderedGrid ?  0 : 1);
-  TInt countOffset = (aBorderedGrid ? -1 : 1);
-
-  // -----------------------------------
-  // First horizontal lines
-  TInt height  = aDrawingRect.Height();
-  TInt leftX   = aDrawingRect.iTl.iX;
-  TInt rightX  = aDrawingRect.iBr.iX;
-
-  TInt i = 0;
-  while( i < aHorizontalLines )
-    {
-    // Max used to make sure no div-by-zero
-    TInt currentY = ((i+indexOffset)*height) / Max(1,aHorizontalLines+countOffset) - KPenHeight/2;
-    iLineArray.Append( TRect( leftX, currentY, rightX, currentY ) );
-    i++;
-    }
-
-  // -----------------------------------
-  // Then vertical lines
-  TInt width   = aDrawingRect.Width();
-  TInt topY    = aDrawingRect.iTl.iY;
-  TInt bottomY = aDrawingRect.iBr.iY;
-
-  TInt j = 0;
-  while( j < aVerticalLines )
-    {
-    // Max used to make sure no div-by-zero
-    TInt currentX = leftX + ((j+indexOffset)*width) / Max(1,aVerticalLines+countOffset) - KPenWidth/2;
-    iLineArray.Append( TRect( currentX, topY, currentX, bottomY ) );
-    j++;
-    }
-  // -------------------------------------------------------
-  }
-
-
-// ---------------------------------------------------------------------------
-// SetPenStyle
-// 
-// Set the style of drawing pen.
-// See CGraphicsContext.
-// ---------------------------------------------------------------------------
-//
-void 
-CCamLineVfGridDrawer::SetPenStyle( const CGraphicsContext::TPenStyle& aPenStyle )
-  {
-  iPenStyle = aPenStyle;
-  }
-
-
-// ---------------------------------------------------------------------------
-// SetPenSize
-// 
-// Set the size of drawing pen.
-// See CGraphicsContext.
-// ---------------------------------------------------------------------------
-//
-void 
-CCamLineVfGridDrawer::SetPenSize( const TSize& aPenSize )
-  {
-  iPenSize = aPenSize;
-  }
-
-// ---------------------------------------------------------------------------
-// SetPenColor
-// 
-// Set the color of drawing pen.
-// See CGraphicsContext.
-// ---------------------------------------------------------------------------
-//
-void 
-CCamLineVfGridDrawer::SetPenColor( const TRgb aPenColor )
-  {
-  iPenColor = aPenColor;
-  }
-
-
-// ===========================================================================
-// Protected part
-
-// ---------------------------------------------------------------------------
-// ConstructL
-// 
-// 2nd phase constructor.
-// ---------------------------------------------------------------------------
-//
-void 
-CCamLineVfGridDrawer::ConstructL()
-  {
-  // empty
-  }
-
-
-
-// ===========================================================================
-// Private part
-
-// ---------------------------------------------------------------------------
-// C++ constructor.
-// Called in 1st phase of construction.
-// ---------------------------------------------------------------------------
-//
-CCamLineVfGridDrawer::CCamLineVfGridDrawer()
-  : iLineArray( KArrayGranularity ),
-    iVisible( EFalse ),
-    iPenStyle( KPenStyle ),
-    iPenSize( KPenWidth, KPenHeight ),
-    iPenColor( KPenColorRed, KPenColorGreen, KPenColorBlue, KPenColorAlpha )
-  {
-  // empty
-  }
-
-
-// ============================== end of file ================================