/*
============================================================================
Name : BasicTouchGesturesAppView.cpp
Author : Damavik
Copyright : Damavik, 2008
Description : Application view implementation
============================================================================
*/
// INCLUDE FILES
#include <coemain.h>
#include "BasicTouchGesturesAppView.h"
#include <aknnotewrappers.h>
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
// CBasicTouchGesturesAppView::NewL()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CBasicTouchGesturesAppView* CBasicTouchGesturesAppView::NewL(const TRect& aRect)
{
CBasicTouchGesturesAppView* self = CBasicTouchGesturesAppView::NewLC(aRect);
CleanupStack::Pop(self);
return self;
}
// -----------------------------------------------------------------------------
// CBasicTouchGesturesAppView::NewLC()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CBasicTouchGesturesAppView* CBasicTouchGesturesAppView::NewLC(const TRect& aRect)
{
CBasicTouchGesturesAppView* self = new ( ELeave ) CBasicTouchGesturesAppView;
CleanupStack::PushL(self);
self->ConstructL(aRect);
return self;
}
// -----------------------------------------------------------------------------
// CBasicTouchGesturesAppView::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CBasicTouchGesturesAppView::ConstructL(const TRect& aRect)
{
// Create a window for this application view
CreateWindowL();
// Set the windows size
SetRect(aRect);
// Enable handling of drag events
EnableDragEvents();
// Activate the window, which makes it ready to be drawn
ActivateL();
}
// -----------------------------------------------------------------------------
// CBasicTouchGesturesAppView::CBasicTouchGesturesAppView()
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
CBasicTouchGesturesAppView::CBasicTouchGesturesAppView()
{
// No implementation required
}
// -----------------------------------------------------------------------------
// CBasicTouchGesturesAppView::~CBasicTouchGesturesAppView()
// Destructor.
// -----------------------------------------------------------------------------
//
CBasicTouchGesturesAppView::~CBasicTouchGesturesAppView()
{
// No implementation required
}
// -----------------------------------------------------------------------------
// CBasicTouchGesturesAppView::Draw()
// Draws the display.
// -----------------------------------------------------------------------------
//
void CBasicTouchGesturesAppView::Draw(const TRect& /*aRect*/) const
{
// Get the standard graphics context
CWindowGc& gc = SystemGc();
// Gets the control's extent
TRect drawRect(Rect());
// Clears the screen
gc.Clear(drawRect);
}
// -----------------------------------------------------------------------------
// CBasicTouchGesturesAppView::SizeChanged()
// Called by framework when the view size is changed.
// -----------------------------------------------------------------------------
//
void CBasicTouchGesturesAppView::SizeChanged()
{
DrawNow();
}
// -----------------------------------------------------------------------------
// CBasicTouchGesturesAppView::HandlePointerEventL()
// Called by framework to handle pointer touch events.
// -----------------------------------------------------------------------------
//
void CBasicTouchGesturesAppView::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
switch (aPointerEvent.iType)
{
case TPointerEvent::EButton1Down:
// Save tap position (because it could be the beginning of the gesture)
iStartPoint = aPointerEvent.iPosition;
break;
case TPointerEvent::EButton1Up:
if (iGesture)
{
// Idenditify type of gesture
TGestureType gesture = GetGestureType(iStartPoint, aPointerEvent.iPosition);
// Perform necessary action depends on gesture type
HandleGesture(gesture);
}
// Reset gesture indicator
iGesture = EFalse;
break;
case TPointerEvent::EDrag:
iGesture = ETrue;
break;
default:
break;
}
}
TGestureType CBasicTouchGesturesAppView::GetGestureType(const TPoint& aStartPoint, const TPoint& aEndPoint)
{
// Default return value
TGestureType returnValue = EUpDown;
// Local copies of the passed positions
TPoint startPoint = aStartPoint;
TPoint endPoint = aEndPoint;
// Control's extent
TRect rect(Rect());
TInt rectHalfWidth = rect.Width()/2;
TInt rectHalfHeight = rect.Height()/2;
// Start point position type
TInt startPointLocation = EAreaA;
// End point position type
TInt endPointLocation = EAreaA;
// Determine in which logical part of the control is the start point
if (aStartPoint.iX <= rectHalfWidth)
{
if (aStartPoint.iY <= rectHalfHeight)
{
startPointLocation = EAreaA;
}
else if (aStartPoint.iY > rectHalfHeight)
{
startPointLocation = EAreaD;
}
}
else if (aStartPoint.iX > rectHalfWidth)
{
if (aStartPoint.iY <= rectHalfHeight)
{
startPointLocation = EAreaB;
}
else if (aStartPoint.iY > rectHalfHeight)
{
startPointLocation = EAreaC;
}
}
// Determine in which logical part of the control is the end point
if (aEndPoint.iX <= rectHalfWidth)
{
if (aEndPoint.iY <= rectHalfHeight)
{
endPointLocation = EAreaA;
}
else if (aEndPoint.iY > rectHalfHeight)
{
endPointLocation = EAreaD;
}
}
else if (aEndPoint.iX > rectHalfWidth)
{
if (aEndPoint.iY <= rectHalfHeight)
{
endPointLocation = EAreaB;
}
else if (aEndPoint.iY > rectHalfHeight)
{
endPointLocation = EAreaC;
}
}
// Calculate actual type of the gesture
switch (startPointLocation)
{
case EAreaA:
switch (endPointLocation)
{
case EAreaA:
returnValue = ENoneGesture;
break;
case EAreaB:
returnValue = ELeftRight;
break;
case EAreaC:
returnValue = ELeftUpRightDown;
break;
case EAreaD:
returnValue = EUpDown;
break;
default:
returnValue = ENoneGesture;
break;
}
break;
case EAreaB:
switch (endPointLocation)
{
case EAreaA:
returnValue = ERightLeft;
break;
case EAreaB:
returnValue = ENoneGesture;
break;
case EAreaC:
returnValue = EUpDown;
break;
case EAreaD:
returnValue = ERightUpLeftDown;
break;
default:
returnValue = ENoneGesture;
break;
}
break;
case EAreaC:
switch (endPointLocation)
{
case EAreaA:
returnValue = ERightDownLeftUp;
break;
case EAreaB:
returnValue = EDownUp;
break;
case EAreaC:
returnValue = ENoneGesture;
break;
case EAreaD:
returnValue = ERightLeft;
break;
default:
returnValue = ENoneGesture;
break;
}
break;
case EAreaD:
switch (endPointLocation)
{
case EAreaA:
returnValue = EDownUp;
break;
case EAreaB:
returnValue = ELeftDownRightUp;
break;
case EAreaC:
returnValue = ELeftRight;
break;
case EAreaD:
returnValue = ENoneGesture;
break;
default:
returnValue = ENoneGesture;
break;
}
break;
default:
returnValue = ENoneGesture;
没有合适的资源?快使用搜索试试~ 我知道了~
symbian S60 5th触摸全屏到位范例源代码
共28个文件
cpp:5个
h:4个
xml:4个
需积分: 3 33 下载量 65 浏览量
2009-12-31
13:03:58
上传
评论
收藏 20KB RAR 举报
温馨提示
这是一个对刚入门学习S60 5th触摸屏的基础范例,实用与触摸的全方定位触摸。
资源推荐
资源详情
资源评论
收起资源包目录
Touch.rar (28个子文件)
Touch
group
ABLD.BAT 303B
bld.inf 501B
BasicTouchGestures.mmp 1KB
Icons_scalable_dc.mk 1KB
sis
BasicTouchGestures_S60_3_X_v_1_0_0.pkg 2KB
backup_registration.xml 144B
help
BasicTouchGestures.xml 498B
BasicTouchGestures_0xE4685497.hlp 3KB
BasicTouchGestures.cshlp 573B
BasicTouchGestures_0xE4685497.hlp.hrh 272B
temp
BasicTouchGestures_0xE4685497.cshlp.xml 1KB
build_help.mk 1KB
Custom.xml 660B
inc
BasicTouchGestures.pan 716B
BasicTouchGesturesApplication.h 2KB
BasicTouchGesturesAppUi.h 2KB
BasicTouchGesturesAppView.h 3KB
BasicTouchGestures.hrh 671B
BasicTouchGesturesDocument.h 2KB
src
BasicTouchGesturesApplication.cpp 1KB
BasicTouchGesturesAppView.cpp 9KB
BasicTouchGesturesDocument.cpp 3KB
BasicTouchGestures.cpp 564B
BasicTouchGesturesAppUi.cpp 5KB
gfx
qgn_menu_BasicTouchGestures.svg 4KB
data
BasicTouchGestures.rss 4KB
BasicTouchGestures.rls 930B
BasicTouchGestures_reg.rss 785B
共 28 条
- 1
资源评论
bountifulyang
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功