src/NPRAppView.cpp
author tahirm@symbian.org
Fri, 24 Jul 2009 08:46:02 +0100
changeset 0 0049171ecffb
permissions -rw-r--r--
initial release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     1
/*
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     2
 ============================================================================
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     3
 Name		: NPRAppView.cpp
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     4
 Author	  : John Kern
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     5
 Copyright (c) 2009 Symbian Foundation Ltd
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     6
 This component and the accompanying materials are made available
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     7
 under the terms of the License "Eclipse Public License v1.0"
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     8
 which accompanies this distribution, and is available
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     9
 at the URL "http://www.eclipse.org/legal/epl-v10.html".
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    10
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    11
 Initial Contributors:
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    12
 Symbian Foundation Ltd - initial contribution.
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    13
 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    14
 Contributors: John Kern
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    15
 Description : Application view implementation
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    16
 ============================================================================
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    17
 */
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    18
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    19
// INCLUDE FILES
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    20
#include <coemain.h>
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    21
#include "NPRAppView.h"
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    22
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    23
// ============================ MEMBER FUNCTIONS ===============================
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    24
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    25
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    26
// CNPRAppView::NewL()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    27
// Two-phased constructor.
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    28
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    29
//
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    30
CNPRAppView* CNPRAppView::NewL(const TRect& aRect)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    31
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    32
	CNPRAppView* self = CNPRAppView::NewLC(aRect);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    33
	CleanupStack::Pop(self);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    34
	return self;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    35
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    36
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    37
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    38
// CNPRAppView::NewLC()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    39
// Two-phased constructor.
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    40
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    41
//
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    42
CNPRAppView* CNPRAppView::NewLC(const TRect& aRect)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    43
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    44
	CNPRAppView* self = new (ELeave) CNPRAppView;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    45
	CleanupStack::PushL(self);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    46
	self->ConstructL(aRect);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    47
	return self;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    48
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    49
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    50
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    51
// CNPRAppView::ConstructL()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    52
// Symbian 2nd phase constructor can leave.
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    53
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    54
//
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    55
void CNPRAppView::ConstructL(const TRect& aRect)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    56
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    57
	// Create a window for this application view
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    58
	CreateWindowL();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    59
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    60
	// Set the windows size
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    61
	SetRect(aRect);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    62
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    63
	// Activate the window, which makes it ready to be drawn
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    64
	ActivateL();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    65
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    66
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    67
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    68
// CNPRAppView::CNPRAppView()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    69
// C++ default constructor can NOT contain any code, that might leave.
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    70
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    71
//
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    72
CNPRAppView::CNPRAppView()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    73
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    74
	// No implementation required
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    75
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    76
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    77
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    78
// CNPRAppView::~CNPRAppView()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    79
// Destructor.
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    80
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    81
//
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    82
CNPRAppView::~CNPRAppView()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    83
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    84
	// No implementation required
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    85
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    86
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    87
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    88
// CNPRAppView::Draw()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    89
// Draws the display.
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    90
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    91
//
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    92
void CNPRAppView::Draw(const TRect& /*aRect*/) const
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    93
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    94
	// Get the standard graphics context
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    95
	CWindowGc& gc = SystemGc();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    96
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    97
	// Gets the control's extent
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    98
	TRect drawRect(Rect());
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    99
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   100
	// Clears the screen
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   101
	gc.Clear(drawRect);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   102
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   103
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   104
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   105
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   106
// CNPRAppView::SizeChanged()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   107
// Called by framework when the view size is changed.
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   108
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   109
//
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   110
void CNPRAppView::SizeChanged()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   111
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   112
	DrawNow();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   113
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   114
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   115
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   116
// CNPRAppView::HandlePointerEventL()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   117
// Called by framework to handle pointer touch events.
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   118
// Note: although this method is compatible with earlier SDKs, 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   119
// it will not be called in SDKs without Touch support.
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   120
// -----------------------------------------------------------------------------
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   121
//
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   122
void CNPRAppView::HandlePointerEventL(const TPointerEvent& aPointerEvent)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   123
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   124
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   125
	// Call base class HandlePointerEventL()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   126
	CCoeControl::HandlePointerEventL(aPointerEvent);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   127
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   128
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   129
// End of File