📄 viewbase.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 + -