--- /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 <coecntrl.h> // CCoeControl
+#include <aknlists.h> // iListBox's format
+
+#include "LogsConsts.h"
+#include "Logs.hrh"
+
+//#include <aknlongtapdetector.h>
+
+
+// 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
+