diff -r 000000000000 -r 15bf7259bb7c uiaccelerator_plat/alf_tracing_api/inc/alf/alflayoutmetrics.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiaccelerator_plat/alf_tracing_api/inc/alf/alflayoutmetrics.h Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,181 @@ +/* +* Copyright (c) 2007 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: Layout metrics +* +*/ + + + +#ifndef C_ALFLAYOUTMETRICS_H +#define C_ALFLAYOUTMETRICS_H + +#include + +class CAlfTextVisual; +class CAlfEnv; +struct TMarkedVisualEntry; + +/** + * Layout metrics utility for measuring text visuals. Measuring is + * is done based on text style or font id. Mesuring texts that has been + * defined using font specification are not yet supported. + * + * + * Example of use: + * + * void CHelloWorldAppUi::ConstructL() + * { + * iEnv = CAlfEnv::NewL(); + * #ifdef __DEBUG + * // Enable layout metrics utility visual automarking in debug builds. + * iEnv->LayoutMetricsUtility()->EnableAutoMarking(); + * #endif + * ... + * ... + * // Create some textvisuals, these will be automatically included + * // into metrics reports. + * iTextVisual = CAlfTextVisual::AddNewL(*this, iLayout); + * iTextVisual->SetText(KMyText); + * iTextVisual->SetStyle(EAlfTextStyleSmall); + * ... + * ... + * } + * + * // handle any menu commands + * void CHelloWorldAppUi::HandleCommandL(TInt aCommand) + * { + * switch(aCommand) + * { + * case EHellowWorldCmdMeasureVisuals: + * { + * // Measure currently visible text visuals + * iEnv->LayoutMetricsUtility()->MeasureVisuals(); + * // Write a metrics report into a file + * iEnv->LayoutMetricsUtility()->WriteReport(); + * break; + * } + * ... + * ... + * } + * ... + * } + * + * + * @lib alfclient.lib + * @since S60 v3.2 + */ +NONSHARABLE_CLASS( CAlfLayoutMetricsUtility ): public CBase + { +public: + + /** + * Destructor. + */ + virtual ~CAlfLayoutMetricsUtility(); + + /** + * 2-phase constructor. + */ + static CAlfLayoutMetricsUtility* NewL(CAlfEnv& aEnv); + + /** + * 2-phase constructor. + */ + static CAlfLayoutMetricsUtility* NewLC(CAlfEnv& aEnv); + + /** + * Marks visual to be included into layout metric reports. + * @param aLogicalName Logical name for the visual, e.q. "title_pane_t1" or "qtn_title_text"... + * If NULL is given, text visual text will be used as logical name + * in the reports. + * @param aVisual The visual to be included into reports. + */ + IMPORT_C void MarkVisual(TDesC* aLogicalName, CAlfTextVisual* aVisual); + + /** + * Unmarks visual, it will not be included into layout metric reports. + * @param aVisual The visual to be excluded from reports. + */ + IMPORT_C void UnmarkVisual(CAlfTextVisual* aVisual); + + /** + * Measures all currently visible visuals. + */ + IMPORT_C void MeasureVisuals(); + + /** + * Writes a layout metric report into a file, by default C: drive is used. + * Report contains metrics data for each visual at the time of last call to the + * MeasureVisuals()-method. + * + * Report is intended to be used when text strings lenghts are decided and localized to + * different language variants. + * + * Report contains data for each measured textvisual such as: + * + * - Component type ("Text" for text visual) + * - Id (Generated id number) + * - Variety (Generated variety id number) + * - Logical name (Given with MarkVisual()-method) + * - Alias (Text that the text visual shows) + * - Font type (qfn_primary, qfn_secondary...) + * - Text width (Text width in pixels) + * - Text height (Text height in pixels) + * - Visual coordinates relative to parent layout left, right, top and bottom coordinates + * - Remarks (Free text, if any) + * - Layout parent id (Generated id for parent layout) + * - Layout parent variety id (Generated variety id for parent layout) + * - Wheter text visual is a multi row or not + * - Max number of text rows + * - Font style 1 (plain, bold -attributes) + * - Font style 2 (regular, italic -attributes) + * - Font style 3 (underline, strikethrough, outline, boxed or shadow) + * - Concatenated rows or not + * + */ + IMPORT_C void WriteReport(); + + /** + * Enables (or disables) automarking of visuals. If enabled, when visuals are + * created they are automatical marked to be included into reports. + */ + IMPORT_C void EnableAutoMarking(TBool aEnabled=ETrue); + + /** + * Tells if automatic visual marking is enabled. + * @retrun ETrue if automatic visual marking is enabled, otherwise EFalse. + */ + IMPORT_C TBool AutoMarking(); + +private: + + CAlfLayoutMetricsUtility(); + + void ConstructL(CAlfEnv& aEnv); + + void MarkVisualL(TDesC* aLogicalName, CAlfTextVisual* aVisual); + + void MeasureVisualsL(); + + void PrintToFile( TDesC16& aBuf ); + + +private: + + struct TMetricsPrivateData; + TMetricsPrivateData* iMetricsData; + }; + + +#endif // C_ALFLAYOUTMETRICS_H