videditor/VideoEditorUiComponents/src/VeiSlider.cpp
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 5 4c409de21d23
--- a/videditor/VideoEditorUiComponents/src/VeiSlider.cpp	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,429 +0,0 @@
-/*
-* Copyright (c) 2010 Ixonos Plc.
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the "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:
-* Ixonos Plc
-*
-* Description:  
-*
-*/
-
-
-#include "VeiSlider.h"
-#include "VeiSlider.pan"
-#include "VideoEditorDebugUtils.h"
-
-#include <VideoEditorUiComponents.mbg>
-#include <fbs.h>
-#include <aknutils.h>
-#include <AknIconUtils.h>
-#include <eikenv.h>
-
-// CONSTANTS
-_LIT(KSliderMifFile, "\\resource\\apps\\VideoEditorUiComponents.mif");
-
-const TInt KTabAspectRatioX = 10;
-const TInt KTabAspectRatioY = 24;
-
-//=============================================================================
-//
-//	class CVeiSlider member functions
-//
-//=============================================================================
-
-//=============================================================================
-EXPORT_C CVeiSlider::~CVeiSlider()
-    {
-    delete iSliderBg;
-	delete iSliderBgMask;
-	delete iSliderTab;
-	delete iSliderTabMask;
-    }
-
-//=============================================================================
-CVeiSlider::CVeiSlider()
-    {
-    // no implementation required
-    }
-
-//=============================================================================
-TInt CVeiSlider::CountComponentControls() const
-    {
-    return 0;
-    }
-
-//=============================================================================
-CCoeControl* CVeiSlider::ComponentControl(TInt /*aIndex*/) const
-    {
-    return NULL;
-    }
-
-// setters
-
-//=============================================================================
-EXPORT_C void CVeiSlider::SetMinimum(TInt aValue)
-	{
-	iMinimumValue = aValue;
-	}
-
-//=============================================================================
-EXPORT_C void CVeiSlider::SetMaximum(TInt aValue)
-	{
-	iMaximumValue = aValue;
-	}
-
-//=============================================================================
-EXPORT_C void CVeiSlider::SetStep(TUint aValue)
-	{
-	iStep = aValue;
-	}
-
-//=============================================================================
-EXPORT_C void CVeiSlider::SetStepAmount(TUint8 aValue)
-	{
-	iNumberOfSteps = aValue;
-	
-	if(aValue == 0)
-		{
-		iStep = 0;
-		}
-	else
-		{
-		iStep = (iMaximumValue-iMinimumValue) / aValue;
-		}
-	}
-
-//=============================================================================
-EXPORT_C void CVeiSlider::SetPosition(TInt aValue)
-	{
-	__ASSERT_ALWAYS( aValue >= iMinimumValue, Panic(EVeiSliderPanicIndexUnderflow) );
-	__ASSERT_ALWAYS( aValue <= iMaximumValue, Panic(EVeiSliderPanicIndexOverflow) );
-
-	iPosition = aValue;
-	}
-
-// getters
-
-//=============================================================================
-EXPORT_C TInt CVeiSlider::Minimum() const
-	{
-	return iMinimumValue;
-	}
-
-//=============================================================================
-EXPORT_C TInt CVeiSlider::Maximum() const
-	{
-	return iMaximumValue;
-	}
-
-//=============================================================================
-EXPORT_C TInt CVeiSlider::Step() const
-	{
-	return iStep;
-	}
-
-//=============================================================================
-EXPORT_C TInt CVeiSlider::SliderPosition() const
-	{
-	return iPosition;
-	}
-
-//=============================================================================
-EXPORT_C void CVeiSlider::Increment()
-	{
-	iPosition += iStep;
-	if(iPosition > iMaximumValue)
-		{
-		iPosition = iMaximumValue;
-		}
-	}
-
-//=============================================================================
-EXPORT_C void CVeiSlider::Decrement()
-	{
-	iPosition -= iStep;
-	if(iPosition < iMinimumValue)
-		{
-		iPosition = iMinimumValue;
-		}
-	}
-
-//=============================================================================
-void CVeiSlider::LoadBitmapL( CFbsBitmap*& aBitmap, CFbsBitmap*& aMask, TInt aBitmapId, TInt aMaskId ) const
-	{
-    TFileName iconFile( KSliderMifFile );
-  
-    User::LeaveIfError( CompleteWithAppPath(iconFile) );
-
-    // Get ids for bitmap and mask
-    AknIconUtils::CreateIconL(
-        aBitmap,
-        aMask,
-        iconFile,
-        aBitmapId,
-        aMaskId
-        );                
-	}
-
-
-//=============================================================================
-//
-//	class CVeiVerticalSlider member functions
-//
-//=============================================================================
-
-//=============================================================================
-EXPORT_C CVeiVerticalSlider* CVeiVerticalSlider::NewL(const TRect& aRect, const CCoeControl& aControl)
-	{
-	CVeiVerticalSlider* self = CVeiVerticalSlider::NewLC(aRect, aControl);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-//=============================================================================
-EXPORT_C CVeiVerticalSlider* CVeiVerticalSlider::NewLC(const TRect& aRect, const CCoeControl& aControl)
-    {
-    CVeiVerticalSlider* self = new (ELeave) CVeiVerticalSlider;
-    CleanupStack::PushL(self);
-    self->ConstructL(aRect, aControl);
-    return self;
-    }
-
-//=============================================================================
-EXPORT_C CVeiVerticalSlider::~CVeiVerticalSlider()
-    {
-    }
-
-//=============================================================================
-void CVeiVerticalSlider::ConstructL(const TRect& aRect, const CCoeControl& aControl)
-	{
-	LOG(KVideoEditorLogFile, "CVeiVerticalSlider::ConstructL: in");
-
-	SetContainerWindowL(aControl);
-
-    // Load the bitmaps 
-    LoadBitmapL( iSliderBg, iSliderBgMask, EMbmVideoeditoruicomponentsQgn_graf_ied_vslider, EMbmVideoeditoruicomponentsQgn_graf_ied_vslider_mask );
-    LoadBitmapL( iSliderTab, iSliderTabMask, EMbmVideoeditoruicomponentsQgn_graf_ied_vtab, EMbmVideoeditoruicomponentsQgn_graf_ied_vtab_mask );
-
-	SetRect(aRect);
-	ActivateL();
-
-	LOG(KVideoEditorLogFile, "CVeiVerticalSlider::ConstructL: out");
-	}
-
-//=============================================================================
-CVeiVerticalSlider::CVeiVerticalSlider()
-    {
-    // no implementation required
-    }
-
-//=============================================================================
-void CVeiVerticalSlider::Draw(const TRect& aRect) const
-	{
-    if ( Minimum() <= Maximum() )
-    	{
-        TUint height = Maximum() - Minimum(); // height of the slider
-        TUint pixelsFromMin = SliderPosition() - Minimum(); // tab position from the beginning
-    
-        TReal factor = 0.0;
-        if (Minimum() < Maximum() )
-        	{
-            factor = (TReal) pixelsFromMin / height; // tab position from the beginning in percentage
-        	}
-        TUint sliderTabHeight = iSliderTab->SizeInPixels().iHeight; // slider tab height
-
-        // slider bitmap is actually a bit longer but this resolves the problem
-        // where the tab is drawn outside of the slider when in maximum position
-        TUint sliderBitmapHeight = iSliderBg->SizeInPixels().iHeight - sliderTabHeight;
-    
-        TUint tabPositionFromMinInPixels = (TUint) (factor * sliderBitmapHeight + 0.5); // calculate tab position
-
-        // top left coordinate
-        const TPoint tl = aRect.iTl;
-
-        CWindowGc& gc = SystemGc();
-
-        // draw actual slider using mask bitmap
-        TRect bgRect(TPoint(0,0), iSliderBg->SizeInPixels());
-        gc.BitBltMasked(tl, iSliderBg, bgRect, iSliderBgMask, ETrue);
-
-        // draw the tab using mask bitmap
-        TRect tabRect(TPoint(0,0), iSliderTab->SizeInPixels());
-        gc.BitBltMasked(TPoint(tl.iX, tl.iY+tabPositionFromMinInPixels), iSliderTab, tabRect, iSliderTabMask, ETrue);
-    	}
-	}
-
-//=============================================================================
-void CVeiVerticalSlider::SizeChanged()
-	{
-	LOG(KVideoEditorLogFile, "CVeiVerticalSlider::SizeChanged: in");
-
-	__ASSERT_ALWAYS( iSliderBg && iSliderTab, Panic(EVeiSliderPanicBitmapsNotLoaded) );
-
-	// Set size for scalable icons - MUST BE CALLED BEFORE ICON IS USABLE
-	TSize sliderSize;
-	TSize tabSize;
-
-	TInt w = Rect().Width();
-	TInt h = Rect().Height();
-
-	// NOTE: this assumes that the slider and the slider tab have the same width.
-	// If that is not the case, it should be handled with transparency in the SVG graphic.
-
-	// Set the slider bg to fill the whole rect
-	sliderSize.iWidth = w;
-	sliderSize.iHeight = h;
-	AknIconUtils::SetSize( iSliderBg, sliderSize, EAspectRatioNotPreserved);
-
-	// The slider tab is set to have the same width.
-	// The height is calculated from the aspect ratio (set based on the original SVG)
-	tabSize.iWidth = w;
-	tabSize.iHeight = (TInt)( w * KTabAspectRatioY / KTabAspectRatioX );
-	AknIconUtils::SetSize( iSliderTab, tabSize, EAspectRatioNotPreserved);
-
-	LOGFMT4(KVideoEditorLogFile, "CVeiVerticalSlider::SizeChanged: out: sliderSize(%d,%d), tabSize(%d,%d)", sliderSize.iWidth,sliderSize.iHeight,tabSize.iWidth,tabSize.iHeight);
-	}
-
-//=============================================================================
-TSize CVeiVerticalSlider::MinimumSize()
-	{
-	LOG(KVideoEditorLogFile, "CVeiVerticalSlider::MinimumSize()");
-
-	return iSliderBg->SizeInPixels();
-	}
-
-//=============================================================================
-//
-//	class CVeiHorizontalSlider member functions
-//
-//=============================================================================
-
-//=============================================================================
-EXPORT_C CVeiHorizontalSlider* CVeiHorizontalSlider::NewL(const TRect& aRect, const CCoeControl& aControl)
-	{
-	CVeiHorizontalSlider* self = CVeiHorizontalSlider::NewLC(aRect, aControl);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-//=============================================================================
-EXPORT_C CVeiHorizontalSlider* CVeiHorizontalSlider::NewLC(const TRect& aRect, const CCoeControl& aControl)
-    {
-    CVeiHorizontalSlider* self = new (ELeave) CVeiHorizontalSlider;
-    CleanupStack::PushL(self);
-    self->ConstructL(aRect, aControl);
-    return self;
-    }
-
-//=============================================================================
-EXPORT_C CVeiHorizontalSlider::~CVeiHorizontalSlider()
-    {
-    }
-
-//=============================================================================
-void CVeiHorizontalSlider::ConstructL(const TRect& aRect, const CCoeControl& aControl)
-	{
-	LOG(KVideoEditorLogFile, "CVeiVerticalSlider::ConstructL: in");
-
-	SetContainerWindowL(aControl);
-
-    // Load the bitmaps 
-    LoadBitmapL( iSliderBg, iSliderBgMask, EMbmVideoeditoruicomponentsQgn_graf_ied_hslider, EMbmVideoeditoruicomponentsQgn_graf_ied_hslider_mask );
-    LoadBitmapL( iSliderTab, iSliderTabMask, EMbmVideoeditoruicomponentsQgn_graf_ied_htab, EMbmVideoeditoruicomponentsQgn_graf_ied_htab_mask );
-
-	SetRect(aRect);
-	ActivateL();
-
-	LOG(KVideoEditorLogFile, "CVeiVerticalSlider::ConstructL: out");
-	}
-
-//=============================================================================
-CVeiHorizontalSlider::CVeiHorizontalSlider()
-    {
-    // no implementation required
-    }
-
-//=============================================================================
-void CVeiHorizontalSlider::Draw(const TRect& aRect) const
-	{
-    if ( Minimum() <= Maximum() )
-    	{
-        TUint height = Maximum() - Minimum(); // height of the slider
-        TUint pixelsFromMin = SliderPosition() - Minimum(); // tab position from the beginning
-    
-        TReal factor = 0.0;
-        if (Minimum() < Maximum() )
-        	{
-            factor = (TReal) pixelsFromMin / height; // tab position from the beginning in percentage
-        	}
-        TUint sliderTabWidth = iSliderTab->SizeInPixels().iWidth; // slider tab width
-
-        // slider bitmap is actually a bit longer but this resolves the problem
-        // where the tab is drawn outside of the slider when in maximum position
-        TUint sliderBitmapWidth = iSliderBg->SizeInPixels().iWidth - sliderTabWidth;
-    
-        TUint tabPositionFromMinInPixels = (TUint) (factor * sliderBitmapWidth + 0.5); // calculate tab position
-
-        // top left coordinate
-        const TPoint tl = aRect.iTl;
-
-        CWindowGc& gc = SystemGc();
-
-        // draw actual slider using mask bitmap
-        TRect bgRect(TPoint(0,0), iSliderBg->SizeInPixels());
-        gc.BitBltMasked(tl, iSliderBg, bgRect, iSliderBgMask, ETrue);
-
-        // draw the tab using mask bitmap
-        TRect tabRect(TPoint(0,0),iSliderTab->SizeInPixels());
-        gc.BitBltMasked(TPoint(tl.iX + tabPositionFromMinInPixels, tl.iY), iSliderTab, tabRect, iSliderTabMask, ETrue);
-    	}
-	}
-
-//=============================================================================
-void CVeiHorizontalSlider::SizeChanged()
-	{
-	LOG(KVideoEditorLogFile, "CVeiHorizontalSlider::SizeChanged: in");
-
-	__ASSERT_ALWAYS( iSliderBg && iSliderTab, Panic(EVeiSliderPanicBitmapsNotLoaded) );
-
-	// Set size for scalable icons - MUST BE CALLED BEFORE ICON IS USABLE
-	TSize sliderSize;
-	TSize tabSize;
-
-	TInt w = Rect().Width();
-	TInt h = Rect().Height();
-
-	// NOTE: this assumes that the slider and the slider tab have the same height.
-	// If that is not the case, it should be handled with transparency in the SVG graphic.
-
-	// Set the slider bg to fill the whole rect.
-	sliderSize.iWidth = w;
-	sliderSize.iHeight = h;
-	AknIconUtils::SetSize( iSliderBg, sliderSize, EAspectRatioNotPreserved);
-
-	// The slider tab is set to have the same height with the bg.
-	// The width is calculated from the aspect ratio (set based on the original SVG).
-	tabSize.iWidth = (TInt)( h * KTabAspectRatioY / KTabAspectRatioX );
-	tabSize.iHeight = h;
-	AknIconUtils::SetSize( iSliderTab, tabSize, EAspectRatioNotPreserved);
-
-	LOGFMT4(KVideoEditorLogFile, "CVeiHorizontalSlider::SizeChanged: out: sliderSize(%d,%d), tabSize(%d,%d)", sliderSize.iWidth,sliderSize.iHeight,tabSize.iWidth,tabSize.iHeight);
-	}
-
-//=============================================================================
-TSize CVeiHorizontalSlider::MinimumSize()
-	{
-	LOG(KVideoEditorLogFile, "CVeiHorizontalSlider::MinimumSize()");
-
-	return iSliderBg->SizeInPixels();
-	}
-
-// End of File