⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 viewbase.h

📁 SYMBIAN GPS NMEA协议实现
💻 H
字号:
/************************************************************************/
/* Bluetooth Test      			The.Berlin.Factor   		April 2003	*/
/************************************************************************/

#ifndef __CViewBase_H__
#define __CViewBase_H__

#include <BaDesCA.h>
#include <CoeCntrl.h>
#include <EikMobs.h>


class CAknNavigationDecorator;
class CUserInterface;



// Basisklasse fuer die Screens/Views der Applikation.
class CViewBase : public CCoeControl, public MEikMenuObserver {

public:

	static const TInt KDontChange = -1;


public:

	virtual ~CViewBase( );


public:

	// Wird vom CUserInterface mit Kommandos aufgerufen die ihm unbekannt
	// sind. Hierin werden auch die IDs eines ggf vorhandenen
	// Kontextmenues geliefert. Die vorliegende Basisimplementierung
	// oeffnet lediglich das Kontextmenue - falls es definiert ist - sobald
	// das entsprechende #ECmdContextMenu Kommando auftritt.
	virtual void HandleCommandL( TInt aCommand );

	// Wird vom #CUserInterface aufgerufen sobald die Ansicht (wieder)
	// gezeigt wird.
	virtual void ReActivateL( );

	// Wird aufgerufen bevor die View vom #CUserInterface entfernt wird.
	virtual void RemovingNow( ) { };


public:

	// From MEikMenuObserver

	// (De)Aktiviert das Kontextmenue je nach Bedarf.
	void SetEmphasis( CCoeControl * aMenuControl, TBool aEmphasis );


public:

	// From MEikCommandObserver

	// Hierin werden die Kommandos vom Kontextmenue empfangen und lediglich
	// an #HandleCommandL weitergeleitet.
	void ProcessCommandL( TInt aCommandId );


protected:

	// Geschuetzter Konstruktor fuer Unterklassen. Nach dem Konstruktor
	// sollte #BaseConstructL aufgerufen werden.
    CViewBase( );

	// Kann von Unterklassen mit einer spezifischen Titel- und
	// Menue-Resource aufgerufen werden. Wird kein Titel angegeben bzw ist
	// dieser 0, wird kein Titel angezeigt. Wird kein Menue angegeben bzw
	// ist dieses 0, wird das Default-Menue fuer Views angezeigt. Gleiches
	// gilt fuer die Command-Buttons.
	//
	// Eine besondere Bedeutung hat dabei der Wert #KDontChange. Wird
	// dieser als ResourceId uebergeben, wird die aktuell gesetzte
	// Resource (potentiell durch die Vorgaenger-View gesetzt) nicht
	// veraendert!
	void BaseConstructL( const TRect & aRect, TInt aTitleResourceId = 0,
		TInt aMenuResourceId = 0, TInt aCbaResourceId = 0 );


protected:

	// Legt einen Titel fuer die aktuelle Ansicht fest.
	void SetViewTitleL( TInt aLabelResourceID );

	// Legt statt einem Titel eine Tab-Group fest.
	void SetTabGroupL( CDesCArrayFlat & aTabGroupTitleArray );

	// Aktiviert einen der Titel aus der Tab-Group anhand des Indexs des
	// in #SetTabGroupL uebergebenen Arrays. ACHTUNG: Es muss auch
	// tatsaechlich eine Tab-Group gesetzt sein!
	void ActivateTabByIdxL( TInt aIdx );

	// Legt das darzustellende Optionsmenue fest (Left Softkey).
	void SetOptionsMenuL( TInt aMenuBarResourceID );

	// Unterklassen koennen hiermit ein eigenes Kontextmenue setzen. Die
	// zugehoerigen Kommandos bekommen sie dann ueber #HandleCommandL.
	// Siehe jedoch auch #HandleContextCommandL( ).
	void SetContextMenuL( TInt aCbaResourceID, TInt aMenuBarResourceID );

	// Legt neue Command-uttons auf die SoftKeys.
	void SetCommandButtonsL( TInt aCbaResourceID );

	// Setzt die Default-Command-Buttons.
	void ResetCommandButtonsL( );

	// Loescht ein ggf gesetztes Kontextmenue.
	void ClearContextMenu( );

	// Sobald das in den CBA Resourcen definierte Kommando der Unterklasse
	// in #HandleCommandL gemeldet wird, muss sie diese Funktion aufrufen,
	// damit das Kontextmenue angezeigt wird.
	void HandleContextCommandL( );


protected:

	// Das zugehoerige Haupt-UI-Objekt. Wird in #CViewBase( ) gesetzt.
	CUserInterface * iUserInterface;

	// Ein ggf vorhandenes Kontextmenue.
	CEikMenuBar * iContextMenu;

	// Optional vorhandene Titelzeile.
	CAknNavigationDecorator * iNaviDecorator;

	// Eine ggf gesetzte Titel-Resource oder 0 falls kein Titel gesetzt
	// ist.
	TInt iTitleLabelResourceId;

	// Eine ggf gesetzte Menue-Resource oder 0 falls kein Menue gesetzt
	// ist.
	TInt iOptionsMenuBarResourceId;

	// Eine ggf gesetzte Kontext-Menue-Resource oder 0 falls kein
	// Kontext-Menue gesetzt ist.
	TInt iContextMenuBarResourceId;

	// Eine ggf gesetzte Command-Buttons-Resource oder 0 falls keine
	// Command-Buttons gesetzt sind.
	TInt iCbaResourceId;

};

#endif 

⌨️ 快捷键说明

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