shapesappui.cpp

来自「最新官方例子,图形,描述副,基本控件,通讯协议,等等,」· C++ 代码 · 共 130 行

CPP
130
字号
/**
 * 
 * @brief Definition of CShapesAppUi
 *
 * Copyright (c) EMCC Software Ltd 2003
 * @version 1.0
 */

// INCLUDE FILES

// Class includes
#include "ShapesAppUi.h"

// System includes
#include <eikmenup.h>	// CEikMenuPane
#include <Shapes.rsg>				// R_SHAPES_APP_MENU, R_SHAPES_DATA_DIALOG

// User includes
#include "Shapes.hrh"				// Command IDs
#include "ShapesBarChartView.h"		// CShapesBarChartView
#include "ShapesForm.h"				// CShapesForm
#include "ShapesLineChartView.h"	// CShapesLineChartView
#include "ShapesModel.h"			// CShapesModel
#include "ShapesPieChartView.h"		// CShapesPieChartView
#include "ShapesSplashView.h"		// CShapesSplashView

// ================= MEMBER FUNCTIONS =======================

/**
 * Symbian OS 2nd phase constructor.  Constructs the application views, 
 * transferring ownership to the AppUi.
 */	
void CShapesAppUi::ConstructL()
	{
	BaseConstructL();

	iShapesModel = CShapesModel::NewL();

	CShapesSplashView* splashView = CShapesSplashView::NewLC();    
	AddViewL(splashView);	// transfer ownership to CAknViewAppUi
	CleanupStack::Pop(splashView);

	CShapesBarChartView* barView = CShapesBarChartView::NewLC(*iShapesModel);
	AddViewL( barView );	// transfer ownership to CAknViewAppUi
	CleanupStack::Pop(barView);

	CShapesPieChartView* pieView = CShapesPieChartView::NewLC(*iShapesModel);
	AddViewL(pieView);		// transfer ownership to CAknViewAppUi
	CleanupStack::Pop(pieView);

	CShapesLineChartView* lineView = CShapesLineChartView::NewLC(*iShapesModel);
	AddViewL(lineView);		// transfer ownership to CAknViewAppUi
	CleanupStack::Pop(lineView);

	// Set the initial (default) view.
	SetDefaultViewL(*splashView);
	}

/**
 * Destructor
 */
CShapesAppUi::~CShapesAppUi()
	{
	delete iShapesModel;
	}

/**
 * From MEikMenuObserver. Takes care of dynamic menu initialisation 
 * (e.g. dimming menu items) for the Shapes application
 *
 * @param aResourceId the resource ID of the menu pane being initialised
 * @param aMenuPane a pointer to that menu pane
 */
void CShapesAppUi::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
	{
	if (aResourceId == R_SHAPES_APP_MENU)
		{
		if (!iShapesModel->GetMaxValue())
			{
			aMenuPane->SetItemDimmed(EShapesBarChartView, ETrue);
			aMenuPane->SetItemDimmed(EShapesPieChartView, ETrue);
			aMenuPane->SetItemDimmed(EShapesLineChartView, ETrue);
			}
		}
	}

/**
 * From CEikAppUi, takes care of command handling for the Shapes
 * application.
 *
 * @param aCommand command to be handled
 */
void CShapesAppUi::HandleCommandL(TInt aCommand)
	{
	switch (aCommand)
		{
		case EEikCmdExit:
			Exit();
			break;
		case EShapesEnterData:
			EditFormL();		
			break;
		case EShapesBarChartView:
			ActivateLocalViewL(KBarChartViewId);	// Switch view.
			break;
		case EShapesPieChartView:
			ActivateLocalViewL(KPieChartViewId);	// Switch view.
			break;
		case EShapesLineChartView:
			ActivateLocalViewL(KLineChartViewId);	// Switch view.
			break;
		default:
			break;      
		}
	}

/**
 * Displays the form to input the data, which will be used to draw the charts
 */
void CShapesAppUi::EditFormL()
	{
	CAknForm* form = new (ELeave) CShapesForm(*iShapesModel);
	if (form->ExecuteLD(R_SHAPES_DATA_DIALOG))
		{
		// Do nothing!
		}
	}

// End of File  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?