diff -r 000000000000 -r e686773b3f54 logsui/AppSrc/CLogsBaseControlContainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logsui/AppSrc/CLogsBaseControlContainer.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,330 @@ +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Logs Application view control container superclass +* +*/ + + +#ifndef __Logs_App_CLogsBaseControlContainer_H__ +#define __Logs_App_CLogsBaseControlContainer_H__ + +// INCLUDES + +#include // CCoeControl +#include // iListBox's format + +#include "LogsConsts.h" +#include "Logs.hrh" + +//#include + + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CAknIconArray; +class CGulIcon; +class CEikListBox; +class CEikStatusPane; +class MLogsKeyProcessor; +class CAknNavigationDecorator; +class CAknNavigationControlContainer; +class MLogsNaviDecoratorWrapper; + +// CLASS DECLARATION + +/** + * Logs Application view control container superclass. + * Provides functionality common to all control containers. Derive specialized + * control containers from this class to use the common functionality. + * The control container encapsulates and creates the actual controls + * implementing the view. It also receives view's keyboard events and maps them + * to application commands or forwards the events to child controls for + * processing. + * If derived control container class contains more than 1 component + * functions: + * - SetFocus + * - OfferKeyEventL + * - CountComponentControls must be rewritten + * The application view creates and owns the control container. +*/ + +class CLogsBaseControlContainer + : public CCoeControl + , public MCoeControlObserver + //, public MAknLongTapDetectorCallBack // For long tap event callback handling + { + protected: // construction + /** + * C++ Constructor + * + * @param aKeyProcessor pointer to keyprocessor view + */ + CLogsBaseControlContainer( MLogsKeyProcessor* aKeyProcessor ); + + /** + * C++ Destructor + * Needed to delete the iLongTapDetector object + */ + ~CLogsBaseControlContainer(); + + /** + * Second phase base class constructor + */ + void BaseConstructL(); + +private: + /** + * C++ Constructor + */ + CLogsBaseControlContainer(); + + + protected: // Generic operations + /** + * Make title + * @param aResourceText resource to create title + */ + void MakeTitleL( TInt aResourceText ); + + /** + * Make title + * @param aText title text + */ + void MakeTitleL( const TDesC& aText ); + + /** + * Appui's status pane getter + * @return Statuspane pointer + */ + CEikStatusPane* StatusPane(); + + /** + * Navi pane getter + * @return navipane pointer + */ + CAknNavigationControlContainer* NaviPaneL(); + + /** + * Navigation decorator tabulator getter + * + * @param aResource navigation bar resource id + * @param interface for singleton wrapper CLogsNaviDecoratorWrapper + * (passed as an interface to hide it from Logs Plugin) + * @return navigation decorator + */ + CAknNavigationDecorator* NavigationTabGroupL( TInt aResource, + MLogsNaviDecoratorWrapper* aNaviDecoratorWrapper ); + + /** + * Append a color icon to icon array. CAknIconArray owns icons so it is + * easier to it leave safely. + * + * @param aIcons Icon array + * @param aIconFile Icon file name without path + * @param aIconGraphicsIndex Picture index. + * @param aIconGraphicsMaskIndex Mask index. + */ + void AddColorIconL + ( CAknIconArray* aIcons + , const TDesC& aIconFile + , TAknsItemID aSkinnedIcon + , TInt aIconGraphicsIndex + , TInt aIconGraphicsMaskIndex + ); + + /** + * Append icon to icon array. CAknIconArray owns icons so it is + * easier to it leave safely. + * + * @param aIcons Icon array + * @param aIconFile Icon file name without path + * @param aIconGraphicsIndex Picture index. + * @param aIconGraphicsMaskIndex Mask index. + */ + void AddIconL + ( CAknIconArray* aIcons + , const TDesC& aIconFile + , TAknsItemID aSkinnedIcon + , TInt aIconGraphicsIndex + , TInt aIconGraphicsMaskIndex + ); + + /** + * Append icon to icon array. CAknIconArray owns icons so it is + * easier to it leave safely. + * + * @param aIcons Icon array + * @param aIconFile Icon file name with full path + * @param aIconGraphicsIndex Picture index. + * @param aIconGraphicsMaskIndex Mask index. + */ + void AddIconWithPathL + ( CAknIconArray* aIcons + , const TDesC& aIconFileWithPath //File name with full path + , TAknsItemID aSkinnedIcon + , TInt aIconGraphicsIndex + , TInt aIconGraphicsMaskIndex + ); + + /** + * Makes view's one line with the given information + * + * @param aItems Array where to put the line information + * @param aText Icon index and tabulator + * @param aResourceText The resource index of text to be shown + * @param aSecondLineText Second line text. Defaul is one space + */ + void MakeListBoxLineL + ( CDesCArrayFlat* aItems + , const TDesC& aText + , TInt aResourceText + , const TDesC& aSecondLineText = KSpace + ); + + /** + * Make the empty listbox text from the given resource text + * + * @param aListBox The listbox pointer on where to make the text + * @param aResourceText The resource text + */ + void MakeEmptyTextListBoxL + ( CEikListBox* aListBox + , TInt aResourceText + ); + + /** + * Contstruct a "Logging not enabled" informative text + * to be shown in an empty listbox + * + * @return The text buffer + */ + HBufC* MakeNoLogTextLC(); + + public: + /** + * Makes the scroll up/down arrows visible + * + * @param aListBox The listbox where to point + */ + void MakeScrollArrowsL( CEikListBox* aListBox ); + + /** + * From CCoeControl + */ + void HandleResourceChange( TInt aType ); + + /** + * Restore original Logs icon to Context Pane + */ + void SetContextPanePictureToDefaultL(); + + /** + * Restore original Logs title pane text according to current view + * + * @param aViewId the current logs view id + */ + void SetTitlePaneTextToDefaultL(TLogsViewIds aViewId); + + protected: // from CCoeControl + /** + * Focus update + * @param aFocus, + * @param aDrawNow, + */ + void SetFocus( TBool aFocus, TDrawNow aDrawNow = ENoDrawNow ); + + /** + * Receives keyboard events for the view. Called by the CONE subsystem. + * + * @return EKeyWasConsumed if the keyboard event was consumed. + * @return EKeyWasNotConsumed if the keyboard was not consumed. + */ + virtual TKeyResponse OfferKeyEventL + ( const TKeyEvent& aKeyEvent + , TEventCode aType + ); + + // --------- currently not needed ------------------------------ + // + /** + * Called by the framework when a (touch ui) pointer event happens + * + * @param aPointerEvent The pointer event + */ + //void HandlePointerEventL(const TPointerEvent& aPointerEvent); + + /** + * Default callback function for CAknLongTapDetector member object. + * Base class implementation does nothing + * + * @param aPenEventLocation Long tap event location relative to parent control. + * @param aPenEventScreenLocation Long tap event location relative to screen. + */ + //void HandleLongTapEventL( const TPoint& aPenEventLocation, + // const TPoint& aPenEventScreenLocation ); + // + // -------------------------------------------------------------- + + /** + * Virtual getter for the containers ListBox instance. + * Called from the HandlePointerEventL cause we need to pass the + * pointer event to the ListBox. + * + * @return Pointer to the list box + */ + virtual CEikListBox* ListBox(); + + /** + * Returns the count of child controls. + * + * @return Count of the sub controls. + */ + TInt CountComponentControls() const; + + /** + * Called from HandleResourceChange. Base class version has no + * implementation. + * + */ + virtual void AddControlContainerIconsL(); + + protected: // MCoeControlObserver + /** + * Handles event from observed control. + * + * @param aControl The control that sent the event. + * @param aEventType The event type. + */ + void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType ); + + protected: + /// Ref: keyprocessor + MLogsKeyProcessor* iKeyProcessor; + + //CAknLongTapDetector* iLongTapDetector; + }; + +#endif // __Logs_App_CLogsBaseControlContainer_H__ + + +// End of File +