From 26e92680e90874415020ba64674c11b075ada6bb Mon Sep 17 00:00:00 2001 From: Xizhi Zhu Date: Mon, 23 Jan 2012 12:05:01 +0100 Subject: Remove Symbian / S60 code from util. Change-Id: I00a151a5f23bb7258f78712cce569b324c92c7d7 Reviewed-by: Jonas Gastal Reviewed-by: Lars Knoll --- util/s60pixelmetrics/bld.inf | 45 -- util/s60pixelmetrics/pixel_metrics.cpp | 1255 -------------------------------- util/s60pixelmetrics/pixel_metrics.h | 218 ------ util/s60pixelmetrics/pm_mapper.hrh | 66 -- util/s60pixelmetrics/pm_mapper.mmp | 91 --- util/s60pixelmetrics/pm_mapper.pkg | 32 - util/s60pixelmetrics/pm_mapper.rss | 160 ---- util/s60pixelmetrics/pm_mapper_reg.rss | 57 -- util/s60pixelmetrics/pm_mapperapp.cpp | 959 ------------------------ util/s60pixelmetrics/pm_mapperapp.h | 190 ----- util/s60pixelmetrics/pm_mapperview.cpp | 375 ---------- util/s60pixelmetrics/pm_mapperview.h | 228 ------ 12 files changed, 3676 deletions(-) delete mode 100644 util/s60pixelmetrics/bld.inf delete mode 100644 util/s60pixelmetrics/pixel_metrics.cpp delete mode 100644 util/s60pixelmetrics/pixel_metrics.h delete mode 100644 util/s60pixelmetrics/pm_mapper.hrh delete mode 100644 util/s60pixelmetrics/pm_mapper.mmp delete mode 100644 util/s60pixelmetrics/pm_mapper.pkg delete mode 100644 util/s60pixelmetrics/pm_mapper.rss delete mode 100644 util/s60pixelmetrics/pm_mapper_reg.rss delete mode 100644 util/s60pixelmetrics/pm_mapperapp.cpp delete mode 100644 util/s60pixelmetrics/pm_mapperapp.h delete mode 100644 util/s60pixelmetrics/pm_mapperview.cpp delete mode 100644 util/s60pixelmetrics/pm_mapperview.h (limited to 'util/s60pixelmetrics') diff --git a/util/s60pixelmetrics/bld.inf b/util/s60pixelmetrics/bld.inf deleted file mode 100644 index d58bb48540..0000000000 --- a/util/s60pixelmetrics/bld.inf +++ /dev/null @@ -1,45 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: http://www.qt-project.org/ -** -** This file is part of the utility applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -PRJ_MMPFILES -pm_mapper.mmp - -// End of File diff --git a/util/s60pixelmetrics/pixel_metrics.cpp b/util/s60pixelmetrics/pixel_metrics.cpp deleted file mode 100644 index e72d8136af..0000000000 --- a/util/s60pixelmetrics/pixel_metrics.cpp +++ /dev/null @@ -1,1255 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: http://www.qt-project.org/ -** -** This file is part of the utility applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "pixel_metrics.h" - -#include -#include -#include -#include - -// Version number for dynamic calculations. These are to be exported to static data, -// so that we can keep dynamic and static values inline. -// Please adjust version data if correcting dynamic PM calculations. -const TInt KPMMajorVersion = 1; -const TInt KPMMinorVersion = 19; - -TPixelMetricsVersion PixelMetrics::Version() - { - TPixelMetricsVersion version; - version.majorVersion = KPMMajorVersion; - version.minorVersion = KPMMinorVersion; - return version; - } - -TInt PixelMetrics::PixelMetricValue(QStyle::PixelMetric metric) - { - TInt value = -909; - // Main pane - TRect mainPaneRect; - AknLayoutUtils::LayoutMetricsRect( - AknLayoutUtils::EMainPane, - mainPaneRect ); - // Screen - TRect screenRect; - AknLayoutUtils::LayoutMetricsRect( - AknLayoutUtils::EApplicationWindow, - screenRect ); - // Navi pane - TRect naviPaneRect; - AknLayoutUtils::LayoutMetricsRect( - AknLayoutUtils::ENaviPane, - naviPaneRect ); - - TAknLayoutRect appWindow; - appWindow.LayoutRect( screenRect, AknLayoutScalable_Avkon::application_window(0) ); - - TInt variety = 0; - TBool landscape = EFalse; - if ( screenRect.iBr.iX > screenRect.iBr.iY ) - { - // in landscape another variety is used - landscape = ETrue; - } - switch (metric) - { - case QStyle::PM_DockWidgetHandleExtent: - // what's this??? Not in S60 - break; - case QStyle::PM_CheckListControllerSize: - case QStyle::PM_CheckListButtonSize: - { - // hierarchical menu - checkbox / radiobutton - // Area (width/height) of the checkbox/radio button in a Q3CheckListItem. - TAknLayoutRect listScrollPane; - listScrollPane.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::listscroll_gen_pane(0)); - TAknLayoutRect listGenPane; - listGenPane.LayoutRect( listScrollPane.Rect(), AknLayoutScalable_Avkon::list_gen_pane(0)); - TAknLayoutRect listHierarchyPane; - listHierarchyPane.LayoutRect( listGenPane.Rect(), AknLayoutScalable_Avkon::list_single_graphic_hl_pane(0)); - - TAknLayoutRect listHierarchyControllerPane; - listHierarchyPane.LayoutRect( listHierarchyPane.Rect(), AknLayoutScalable_Avkon::list_single_graphic_hl_pane_g3(0)); - TAknLayoutRect listHierarchyPropertyPane; - listHierarchyPropertyPane.LayoutRect( listHierarchyPane.Rect(), AknLayoutScalable_Avkon::list_single_graphic_hl_pane_g2(0)); - - if (metric==QStyle::PM_CheckListControllerSize)value = Max( listHierarchyPane.Rect().Width(), listHierarchyPane.Rect().Width()); - else value = Max( listHierarchyPropertyPane.Rect().Width(), listHierarchyPropertyPane.Rect().Width()); - } - break; - case QStyle::PM_DialogButtonsSeparator: //Distance between buttons in a dialog buttons widget. - case QStyle::PM_DialogButtonsButtonWidth: // Minimum width of a button in a dialog buttons widget. - case QStyle::PM_DialogButtonsButtonHeight:// Minimum height of a button in a dialog buttons widget. - { - TAknLayoutRect appWindow; - appWindow.LayoutRect( screenRect, AknLayoutScalable_Avkon::application_window(0) ); - variety = 0; - if ( landscape ) - { - variety = 2; - } - TAknLayoutRect areaBottomRect; - areaBottomRect.LayoutRect( appWindow.Rect(), AknLayoutScalable_Avkon::area_bottom_pane(variety) ); - - TAknLayoutRect controlPaneRect; - controlPaneRect.LayoutRect( areaBottomRect.Rect(), AknLayoutScalable_Avkon::control_pane() ); - TAknLayoutText controlPaneLSKText; - TAknLayoutText controlPaneRSKText; - TAknLayoutText controlPaneMSKText; - variety = 0; - if (AknLayoutUtils::MSKEnabled()) - { - variety = 3; - controlPaneMSKText.LayoutText( controlPaneRect.Rect(), AknLayoutScalable_Avkon::control_pane_t3(variety)); //MSK text area - } - controlPaneLSKText.LayoutText( controlPaneRect.Rect(), AknLayoutScalable_Avkon::control_pane_t1(variety)); //LSK text area - controlPaneRSKText.LayoutText( controlPaneRect.Rect(), AknLayoutScalable_Avkon::control_pane_t2(variety)); //RSK text area - - /* - * - ================================================================================== - | A | LSK_rect | B | MSK_rect | C | RSK_rect | D | - ================================================================================== - where A is left padding (between control pane and LSK rect) - B is mid-left padding (between LSK and MSK rects) - C is mid-right padding (between MSK and RSK rects) - D is right padding (between RSK and control pane) - - ==> Since all these can be separate, lets take Max of {A..D} for PM value - */ - - TInt itemSpacingA = 0; - TInt itemSpacingB = 0; - TInt itemSpacingC = 0; - TInt itemSpacingMax = 0; - if ( !AknLayoutUtils::MSKEnabled() ) - { - itemSpacingA = controlPaneRect.Rect().iBr.iX - controlPaneRSKText.TextRect().iBr.iX; - itemSpacingB = controlPaneLSKText.TextRect().iTl.iX - controlPaneRect.Rect().iTl.iX; - if (!landscape) - { - // use mid-gap only in portrait - itemSpacingC = controlPaneRSKText.TextRect().iTl.iX - controlPaneLSKText.TextRect().iBr.iX; - } - itemSpacingMax = Max(itemSpacingA, Max( itemSpacingB, itemSpacingC)); - // no itemspacing4 if no MSK - } - else - { - TInt itemSpacingD = 0; - itemSpacingA = controlPaneRect.Rect().iBr.iX - controlPaneRSKText.TextRect().iBr.iX; - itemSpacingB = controlPaneLSKText.TextRect().iTl.iX - controlPaneRect.Rect().iTl.iX; - if ( !(AknLayoutUtils::PenEnabled() || landscape) ) // no MSK in touch, nor in landscape - { - itemSpacingC = controlPaneRSKText.TextRect().iTl.iX - controlPaneMSKText.TextRect().iBr.iX; - itemSpacingD = controlPaneMSKText.TextRect().iTl.iX - controlPaneLSKText.TextRect().iBr.iX; - } - itemSpacingMax = Max(itemSpacingA, Max( itemSpacingB, Max( itemSpacingC, itemSpacingD ))); - } - if (metric==QStyle::PM_DialogButtonsSeparator) value = itemSpacingMax; - else if (metric==QStyle::PM_DialogButtonsButtonWidth) - { - value = Max( controlPaneLSKText.TextRect().Width(), controlPaneRSKText.TextRect().Width()); - if (AknLayoutUtils::MSKEnabled()) - { - value = Max(value, controlPaneMSKText.TextRect().Width()); - } - } - else if (metric==QStyle::PM_DialogButtonsButtonHeight) - { - value = Max( controlPaneLSKText.TextRect().Height(), controlPaneRSKText.TextRect().Height()); - if (AknLayoutUtils::MSKEnabled()) - { - value = Max(value, controlPaneMSKText.TextRect().Height()); - } - } - } - break; - case QStyle::PM_DockWidgetTitleMargin: // not in S60, lets use the same margin as in button - case QStyle::PM_DockWidgetTitleBarButtonMargin: // not in S60, lets use the same margin as in button - case QStyle::PM_ButtonMargin: - { - TRect myRect(TSize( 80, 20)); // this arbitrary size - user can set it - button border does not seem to have any scalability in it - TAknLayoutRect buttonRect; - TAknLayoutRect buttonBordersRect; - TAknLayoutText buttonText; - - buttonRect.LayoutRect( myRect, AknLayoutScalable_Avkon::eswt_ctrl_button_pane()); - buttonBordersRect.LayoutRect( buttonRect.Rect(), AknLayoutScalable_Avkon::common_borders_pane_copy2(0)); //with text - buttonText.LayoutText( buttonRect.Rect(), AknLayoutScalable_Avkon::control_button_pane_t1() ); - - // Its better to use left-right margins, since font deployment can create funny top / bottom margins - TInt leftMargin = buttonText.TextRect().iTl.iX - buttonBordersRect.Rect().iTl.iX; - TInt rightMargin = buttonBordersRect.Rect().iBr.iX - buttonText.TextRect().iBr.iX; - value = (TInt) ((leftMargin+rightMargin)/2); - } - break; - case QStyle::PM_ButtonDefaultIndicator: - { - // no default button indicators in S60 - value = 0; - } - break; - case QStyle::PM_MdiSubWindowFrameWidth: - case QStyle::PM_ComboBoxFrameWidth: - case QStyle::PM_SpinBoxFrameWidth: - value = 0; - break; - case QStyle::PM_ToolBarFrameWidth: - case QStyle::PM_DefaultFrameWidth: - { - TAknLayoutRect highLightPaneRect; - TAknLayoutRect centerPaneRect; - TRect rectParent( mainPaneRect ); - highLightPaneRect.LayoutRect( rectParent, AknLayoutScalable_Avkon::toolbar_button_pane(0).LayoutLine()); - centerPaneRect.LayoutRect(rectParent, AknLayoutScalable_Avkon::toolbar_button_pane_g1().LayoutLine()); - - value = highLightPaneRect.Rect().iBr.iX - centerPaneRect.Rect().iBr.iX; - } - break; - case QStyle::PM_RadioButtonLabelSpacing: - { - /* - * - =================================================================================== - | A | iconLayoutRect |B| itemText | C | - =================================================================================== - mirrored: - =================================================================================== - | C | itemText |B| iconLayoutRect | A | - =================================================================================== - where A is left padding - B is gap between icon and text - C is right padding - */ - - TRect rectParent( mainPaneRect ); - TAknLayoutRect layoutRect; - layoutRect.LayoutRect( rectParent,AknLayoutScalable_Avkon::list_choice_list_pane(1).LayoutLine() ); // w/ scrollbar - TAknLayoutText itemText; - itemText.LayoutText( layoutRect.Rect(), AknLayoutScalable_Avkon::list_single_choice_list_pane_t1(1) ); - TAknLayoutRect iconLayoutRect; - iconLayoutRect.LayoutRect( layoutRect.Rect(), AknLayoutScalable_Avkon::list_single_choice_list_pane_g1().LayoutLine() ); - - if ( !AknLayoutUtils::LayoutMirrored() ) - { - value = itemText.TextRect().iTl.iX - iconLayoutRect.Rect().iBr.iX; - } - else - { - value = iconLayoutRect.Rect().iTl.iX - itemText.TextRect().iBr.iX; - } - } - - break; - case QStyle::PM_CheckBoxLabelSpacing: - { - /* - * - =================================================================================== - | A | iconLayoutRect |B| itemText | C | - =================================================================================== - mirrored: - =================================================================================== - | C | itemText |B| iconLayoutRect | A | - =================================================================================== - where A is left padding - B is gap between icon and text - C is right padding - */ - - TRect rectParent( mainPaneRect ); - TAknLayoutRect layoutRect; - layoutRect.LayoutRect( rectParent, AknLayoutScalable_Avkon::listscroll_gen_pane(0).LayoutLine() ); - - TAknLayoutRect layoutRect2; - layoutRect2.LayoutRect( layoutRect.Rect(), AknLayoutScalable_Avkon::list_gen_pane(0).LayoutLine() ); - TAknLayoutRect layoutRect3; - layoutRect3.LayoutRect( layoutRect2.Rect(), AknLayoutScalable_Avkon::list_single_graphic_pane(0).LayoutLine() ); - - TAknLayoutText itemText; - itemText.LayoutText( layoutRect3.Rect(), AknLayoutScalable_Avkon::list_single_graphic_pane_t1(0) ); - TAknLayoutRect iconLayoutRect; - iconLayoutRect.LayoutRect( layoutRect3.Rect(), AknLayoutScalable_Avkon::list_single_graphic_pane_g1(0).LayoutLine() ); - - if ( !AknLayoutUtils::LayoutMirrored() ) - { - value = itemText.TextRect().iTl.iX - iconLayoutRect.Rect().iBr.iX; - } - else - { - value = iconLayoutRect.Rect().iTl.iX - itemText.TextRect().iBr.iX; - } - } - break; - case QStyle::PM_ToolTipLabelFrameWidth: - { - /* - * - |===================================================================================| - | info popup note B | - | ============================================================================== | - | A | hintText | D| - | ============================================================================== | - | C | - |===================================================================================| - where A is left padding - B is top padding - C is bottom padding - D is right padding - we'll provide the average of top and bottom padding as PM_ToolTipLabelFrameWidth - */ - - // Set pop-up to contain only one line of text - TInt index = 0; - if ( landscape ) - { - // in landscape another variety is used - index += 5; - } - // Get parameter and table limits for popup preview text window - TAknLayoutScalableParameterLimits limits = - AknLayoutScalable_Avkon::popup_preview_text_window_ParamLimits(); - - TAknLayoutScalableTableLimits tableLimits = - AknLayoutScalable_Avkon::popup_preview_text_window_t_Limits(); - - TInt windowVariety = Min( Max( index, limits.FirstVariety() ), limits.LastVariety() ); - - TAknLayoutScalableParameterLimits tParamLimits = - AknLayoutScalable_Avkon:: popup_preview_text_window_t_ParamLimits( - tableLimits.FirstIndex() ); - - TInt lineVariety = Min( Max( index, tParamLimits.FirstVariety() ), tParamLimits.LastVariety() ); - - TAknWindowLineLayout lineLayout = AknLayoutScalable_Avkon::popup_preview_text_window(windowVariety).LayoutLine(); - - // rect for the whole info popup - TAknLayoutRect layoutRect; - layoutRect.LayoutRect(screenRect, lineLayout); - TRect rectPopupWindow = layoutRect.Rect(); - - TAknTextComponentLayout popupTextLayout = - AknLayoutScalable_Avkon::popup_preview_text_window_t( - tableLimits.FirstIndex(), lineVariety ); - - // rect for the whole the text inside the popup - TAknLayoutText layoutText; - layoutText.LayoutText( rectPopupWindow, popupTextLayout ); - - // Each margin has different value in S60 - let's take average of top & bottom - TInt topMargin = layoutText.TextRect().iTl.iY - layoutRect.Rect().iTl.iY; - TInt bottomMargin = layoutRect.Rect().iBr.iY - layoutText.TextRect().iBr.iY; - TInt averageMargin = (TInt)(topMargin+bottomMargin)/2; - value = averageMargin; - } - break; - case QStyle::PM_ListViewIconSize: - { - // todo: there are lots and lots of views with different sized icons - which one to use? - // todo: this is probably not a good default icon size, as this fetches A column icon size - // todo: preferably use settings item with graphic instead - TAknLayoutRect iconRect; - iconRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::list_double_graphic_pane_g1_cp2(0).LayoutLine()); - //icon areas are usually squares - lets take bigger of two dimensions - value = Max( iconRect.Rect().Width(), iconRect.Rect().Height() ); - } - break; - - case QStyle::PM_LargeIconSize: // lets use AS icon as a base for large icon - case QStyle::PM_IconViewIconSize: - { - // Lets assume that we'd take these from grid (3x4) layout - TAknLayoutRect appPaneRect; - TAknLayoutRect gridAppRect; - TAknLayoutRect cellAppRect; - TInt varietyGrid = 2; //Let's use the 3x4 grid as a base. - TInt varietyCell = 1; //Let's use the 3x4 grid as a base. - if ( landscape ) - { - varietyGrid = 3; - varietyCell = 2; - } - appPaneRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::listscroll_app_pane(1).LayoutLine()); //3x4 grid - gridAppRect.LayoutRect( appPaneRect.Rect(), AknLayoutScalable_Avkon::grid_app_pane(varietyGrid).LayoutLine()); - cellAppRect.LayoutRect( gridAppRect.Rect(), AknLayoutScalable_Avkon::cell_app_pane(varietyCell, 0, 0).LayoutLine()); - TAknLayoutRect cellGraphRect; - TAknWindowComponentLayout appIcon = AknLayoutScalable_Avkon::cell_app_pane_g1(0); // no mark, no highlight - cellGraphRect.LayoutRect( gridAppRect.Rect(), appIcon); - //icon areas are usually squares - if not, lets take larger - value = Max( cellGraphRect.Rect().Width(), cellGraphRect.Rect().Height()); - } - break; - case QStyle::PM_TabBarIconSize: - { - TAknLayoutRect naviNaviRect; - naviNaviRect.LayoutRect( naviPaneRect, AknLayoutScalable_Avkon::navi_navi_tabs_pane().LayoutLine()); // two tabs - TAknLayoutRect tabRect; - tabRect.LayoutRect( naviNaviRect.Rect(), AknLayoutScalable_Avkon::navi_tabs_3_pane().LayoutLine()); //active tab on left - TAknLayoutRect activeTabRect; - activeTabRect.LayoutRect( tabRect.Rect(), AknLayoutScalable_Avkon::tabs_3_active_pane(0).LayoutLine()); //active tab - TAknLayoutRect activeTabGraphicRect; - - activeTabGraphicRect.LayoutRect( activeTabRect.Rect(), AknLayoutScalable_Avkon::tabs_3_active_pane_g1().LayoutLine()); //active tab graphic - value = Min(activeTabGraphicRect.Rect().Width(), activeTabGraphicRect.Rect().Height()); - } - break; - case QStyle::PM_MessageBoxIconSize: - { - TAknLayoutRect noteRect; - noteRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::popup_note_image_window(0).LayoutLine()); //note with image - TAknLayoutRect noteImageRect; - noteImageRect.LayoutRect( noteRect.Rect(), AknLayoutScalable_Avkon::popup_note_image_window_g2(2).LayoutLine()); //note with image - value = noteImageRect.Rect().Width(); - } - break; - case QStyle::PM_TextCursorWidth: - { - TAknLayoutRect miscGraphicsRect; - miscGraphicsRect.LayoutRect( screenRect, AknLayoutScalable_Avkon::misc_graphics()); - miscGraphicsRect.LayoutRect( miscGraphicsRect.Rect(), AknLayoutScalable_Avkon::misc_graphics()); - TAknLayoutRect textsGraphicsRect; - textsGraphicsRect.LayoutRect( miscGraphicsRect.Rect(), AknLayoutScalable_Avkon::texts_graphics()); - TAknLayoutRect cursorGraphicsRect; - cursorGraphicsRect.LayoutRect( textsGraphicsRect.Rect(), AknLayoutScalable_Avkon::cursor_graphics_pane()); - TAknLayoutRect cursorPrimaryRect; - cursorPrimaryRect.LayoutRect( cursorGraphicsRect.Rect(), AknLayoutScalable_Avkon::cursor_primary_pane()); - TAknLayoutRect cursorRect; - cursorRect.LayoutRect( cursorPrimaryRect.Rect(), AknLayoutScalable_Avkon::cursor_digital_pane_g1()); - value = cursorRect.Rect().Width(); - } - break; - case QStyle::PM_SliderLength: - { - TAknLayoutRect settingRect; - settingRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::listscroll_set_pane() ); - TAknLayoutRect settingContentRect; - settingContentRect.LayoutRect( settingRect.Rect(), AknLayoutScalable_Avkon::set_content_pane() ); - TAknLayoutRect sliderRect; - sliderRect.LayoutRect( settingContentRect.Rect(), AknLayoutScalable_Avkon::setting_slider_graphic_pane() ); - TAknLayoutRect sliderSettingRect; - sliderSettingRect.LayoutRect( sliderRect.Rect(), AknLayoutScalable_Avkon::slider_set_pane_cp() ); - TAknLayoutRect sliderGraph2Rect; - sliderGraph2Rect.LayoutRect( sliderSettingRect.Rect(), AknLayoutScalable_Avkon::slider_set_pane_g6() ); - value = sliderGraph2Rect.Rect().Width(); - } - break; - case QStyle::PM_SliderThickness: - { - TAknLayoutRect settingRect; - settingRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::listscroll_set_pane() ); - TAknLayoutRect settingContentRect; - settingContentRect.LayoutRect( settingRect.Rect(), AknLayoutScalable_Avkon::set_content_pane() ); - TAknLayoutRect sliderRect; - sliderRect.LayoutRect( settingContentRect.Rect(), AknLayoutScalable_Avkon::setting_slider_graphic_pane() ); - TAknLayoutRect sliderSettingRect; - sliderSettingRect.LayoutRect( sliderRect.Rect(), AknLayoutScalable_Avkon::slider_set_pane_cp() ); - TAknLayoutRect sliderGraph2Rect; - sliderGraph2Rect.LayoutRect( sliderSettingRect.Rect(), AknLayoutScalable_Avkon::slider_set_pane_g6() ); - //todo: make a proper calculation for tick marks - value = (TInt)(sliderGraph2Rect.Rect().Height()*1.5); // add assumed tickmark height - } - break; - case QStyle::PM_SliderTickmarkOffset: - { - TAknLayoutRect settingRect; - settingRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::listscroll_set_pane() ); - TAknLayoutRect settingContentRect; - settingContentRect.LayoutRect( settingRect.Rect(), AknLayoutScalable_Avkon::set_content_pane() ); - TAknLayoutRect sliderRect; - sliderRect.LayoutRect( settingContentRect.Rect(), AknLayoutScalable_Avkon::setting_slider_graphic_pane() ); - TAknLayoutRect sliderSettingRect; - sliderSettingRect.LayoutRect( sliderRect.Rect(), AknLayoutScalable_Avkon::slider_set_pane_cp() ); - TAknLayoutRect sliderGraph2Rect; - sliderGraph2Rect.LayoutRect( sliderSettingRect.Rect(), AknLayoutScalable_Avkon::slider_set_pane_g6() ); - //todo: make a proper calculation for tick marks - value = (TInt)(sliderGraph2Rect.Rect().Height()*0.5); // no tickmarks in S60, lets assume they are half the size of slider indicator - } - break; - case QStyle::PM_SliderControlThickness: - { - TAknLayoutRect settingRect; - settingRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::listscroll_set_pane() ); - TAknLayoutRect settingContentRect; - settingContentRect.LayoutRect( settingRect.Rect(), AknLayoutScalable_Avkon::set_content_pane() ); - TAknLayoutRect sliderRect; - sliderRect.LayoutRect( settingContentRect.Rect(), AknLayoutScalable_Avkon::setting_slider_graphic_pane() ); - TAknLayoutRect sliderSettingRect; - sliderSettingRect.LayoutRect( sliderRect.Rect(), AknLayoutScalable_Avkon::slider_set_pane_cp() ); - TAknLayoutRect sliderGraph2Rect; - sliderGraph2Rect.LayoutRect( sliderSettingRect.Rect(), AknLayoutScalable_Avkon::slider_set_pane_g6() ); - value = sliderGraph2Rect.Rect().Height(); - } - break; - case QStyle::PM_SliderSpaceAvailable: - { - TAknLayoutRect settingRect; - settingRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::listscroll_set_pane() ); - TAknLayoutRect settingContentRect; - settingContentRect.LayoutRect( settingRect.Rect(), AknLayoutScalable_Avkon::set_content_pane() ); - TAknLayoutRect sliderRect; - sliderRect.LayoutRect( settingContentRect.Rect(), AknLayoutScalable_Avkon::setting_slider_graphic_pane() ); - TAknLayoutRect sliderSettingRect; - sliderSettingRect.LayoutRect( sliderRect.Rect(), AknLayoutScalable_Avkon::slider_set_pane_cp() ); - value = sliderSettingRect.Rect().Width(); - } - break; - case QStyle::PM_MenuBarItemSpacing: - { - TAknLayoutRect appWindow; - appWindow.LayoutRect( screenRect, AknLayoutScalable_Avkon::application_window(0) ); - - variety = 0; - if ( landscape ) - { - variety = 2; - } - TAknLayoutRect areaBottomRect; - areaBottomRect.LayoutRect( appWindow.Rect(), AknLayoutScalable_Avkon::area_bottom_pane(variety) ); - - TAknLayoutRect controlPaneRect; - controlPaneRect.LayoutRect( areaBottomRect.Rect(), AknLayoutScalable_Avkon::control_pane() ); - TAknLayoutText controlPaneLSKText; - TAknLayoutText controlPaneRSKText; - TAknLayoutText controlPaneMSKText; - variety = 0; - if (AknLayoutUtils::MSKEnabled()) - { - variety = 3; - controlPaneMSKText.LayoutText( controlPaneRect.Rect(), AknLayoutScalable_Avkon::control_pane_t3(variety)); //MSK text area - } - controlPaneLSKText.LayoutText( controlPaneRect.Rect(), AknLayoutScalable_Avkon::control_pane_t1(variety)); //LSK text area - controlPaneRSKText.LayoutText( controlPaneRect.Rect(), AknLayoutScalable_Avkon::control_pane_t2(variety)); //RSK text area - - /* - * - ================================================================================== - | A | LSK_rect | B | MSK_rect | C | RSK_rect | D | - ================================================================================== - where A is left padding (between control pane and LSK rect) - B is mid-left padding (between LSK and MSK rects) - C is mid-right padding (between MSK and RSK rects) - D is right padding (between RSK and control pane) - - ==> Since all these can be separate, lets take Max of {A..D} for PM value - */ - - TInt itemSpacing1 = 0; - TInt itemSpacing2 = 0; - TInt itemSpacing3 = 0; - TInt itemSpacing4 = 0; - TInt itemSpacingMax = 0; - if ( !AknLayoutUtils::MSKEnabled() ) - { - itemSpacing1 = controlPaneRect.Rect().iBr.iX - controlPaneRSKText.TextRect().iBr.iX; - itemSpacing2 = controlPaneLSKText.TextRect().iTl.iX - controlPaneRect.Rect().iTl.iX; - if ( !landscape ) - { - // use mid gap only in portrait - itemSpacing3 = controlPaneRSKText.TextRect().iTl.iX - controlPaneLSKText.TextRect().iBr.iX; - } - itemSpacingMax = Max(itemSpacing1, Max( itemSpacing2, itemSpacing3)); - // no itemspacing4 if no MSK - } - else - { - itemSpacing1 = controlPaneRect.Rect().iBr.iX - controlPaneRSKText.TextRect().iBr.iX; - itemSpacing2 = controlPaneLSKText.TextRect().iTl.iX - controlPaneRect.Rect().iTl.iX; - if ( !(AknLayoutUtils::PenEnabled() || landscape) ) // no MSK in touch, nor in landscape - { - itemSpacing3 = controlPaneRSKText.TextRect().iTl.iX - controlPaneMSKText.TextRect().iBr.iX; - itemSpacing4 = controlPaneMSKText.TextRect().iTl.iX - controlPaneLSKText.TextRect().iBr.iX; - } - itemSpacingMax = Max(itemSpacing1, Max( itemSpacing2, Max( itemSpacing3, itemSpacing4 ))); - } - value = itemSpacingMax; - } - break; - case QStyle::PM_MenuBarHMargin: - { - TAknLayoutRect appWindow; - appWindow.LayoutRect( screenRect, AknLayoutScalable_Avkon::application_window(0) ); - - variety = 0; - if ( landscape ) - { - variety = 6; - } - TAknLayoutRect areaBottomRect; - areaBottomRect.LayoutRect( appWindow.Rect(), AknLayoutScalable_Avkon::area_bottom_pane(variety) ); - - // variety 7 if thin status pane, 1 if no status pane, 3 if small status pane and with main pane, 4 otherwise (idle has bunch of own varieties) - TAknLayoutRect controlPaneRect; - controlPaneRect.LayoutRect( areaBottomRect.Rect(), AknLayoutScalable_Avkon::control_pane() ); - value = areaBottomRect.Rect().Height() - controlPaneRect.Rect().Height(); - } - break; - case QStyle::PM_MenuBarVMargin: - { - TAknLayoutRect appWindow; - appWindow.LayoutRect( screenRect, AknLayoutScalable_Avkon::application_window(0) ); - - variety = 0; - if ( landscape ) - { - variety = 6; - } - TAknLayoutText controlPaneLSKText; - TAknLayoutRect areaBottomRect; - areaBottomRect.LayoutRect( appWindow.Rect(), AknLayoutScalable_Avkon::area_bottom_pane(variety) ); - // variety 7 if thin status pane, 1 if no status pane, 3 if small status pane and with main pane, 4 otherwise (idle has bunch of own varieties) - TAknLayoutRect controlPaneRect; - controlPaneRect.LayoutRect( areaBottomRect.Rect(), AknLayoutScalable_Avkon::control_pane() ); - - variety = 0; - if (AknLayoutUtils::MSKEnabled()) - { - variety = 3; - } - controlPaneLSKText.LayoutText( controlPaneRect.Rect(), AknLayoutScalable_Avkon::control_pane_t1(variety)); //LSK text area - - value = controlPaneRect.Rect().Height() - controlPaneLSKText.TextRect().Height(); - } - break; - case QStyle::PM_ToolBarItemSpacing: - { - TAknLayoutRect popupToolBarWindow; - variety = 4; - popupToolBarWindow.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::popup_toolbar_window(variety) ); - TAknLayoutRect gridToolBarRect; - gridToolBarRect.LayoutRect( popupToolBarWindow.Rect(), AknLayoutScalable_Avkon::grid_toobar_pane() ); - TAknLayoutRect cellToolBarRect1; - TAknLayoutRect cellToolBarRect2; - cellToolBarRect1.LayoutRect( gridToolBarRect.Rect(), AknLayoutScalable_Avkon::cell_toolbar_pane(0).LayoutLine() ); //first item - cellToolBarRect2.LayoutRect( gridToolBarRect.Rect(), AknLayoutScalable_Avkon::cell_toolbar_pane(1).LayoutLine() ); //second item - value = cellToolBarRect1.Rect().iBr.iX - cellToolBarRect2.Rect().iTl.iX; - } - break; - case QStyle::PM_ToolBarItemMargin: - { - variety = 4; - TAknLayoutRect popupToolBarWindow; - popupToolBarWindow.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::popup_toolbar_window(variety) ); - TAknLayoutRect gridToolBarRect; - gridToolBarRect.LayoutRect( popupToolBarWindow.Rect(), AknLayoutScalable_Avkon::grid_toobar_pane() ); - TAknLayoutRect cellToolBarRect1; - cellToolBarRect1.LayoutRect( gridToolBarRect.Rect(), AknLayoutScalable_Avkon::cell_toolbar_pane(0).LayoutLine() ); //first item - value = gridToolBarRect.Rect().iTl.iX - cellToolBarRect1.Rect().iTl.iX; - } - break; - case QStyle::PM_LayoutLeftMargin: // there really isn't a default layoutting on s60, but lets use AppShell icon deployment as base - case QStyle::PM_LayoutRightMargin: - case QStyle::PM_LayoutTopMargin: - case QStyle::PM_LayoutBottomMargin: - case QStyle::PM_LayoutHorizontalSpacing: - case QStyle::PM_LayoutVerticalSpacing: - { - //since spacing and margins should be globally same, lets use same easy component as base - such as find popup - TAknLayoutRect popup_find_windowRect; - TAknLayoutRect bg_popup_window_pane_cp12Rect; - TAknLayoutRect find_popup_paneRect; - popup_find_windowRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::popup_find_window(0).LayoutLine()); - bg_popup_window_pane_cp12Rect.LayoutRect( popup_find_windowRect.Rect(), AknLayoutScalable_Avkon::bg_popup_window_pane_cp12().LayoutLine()); - find_popup_paneRect.LayoutRect( bg_popup_window_pane_cp12Rect.Rect(), AknLayoutScalable_Avkon::find_popup_pane().LayoutLine()); - - const TBool mirrored = AknLayoutUtils::LayoutMirrored(); - if ((metric==QStyle::PM_LayoutVerticalSpacing && !mirrored) || metric==QStyle::PM_LayoutLeftMargin) - { - if (mirrored) - { - value = find_popup_paneRect.Rect().iTl.iX - bg_popup_window_pane_cp12Rect.Rect().iTl.iX; - } - else - { - value = find_popup_paneRect.Rect().iTl.iX - bg_popup_window_pane_cp12Rect.Rect().iTl.iX; - } - } - else if (metric==QStyle::PM_LayoutRightMargin || (metric==QStyle::PM_LayoutVerticalSpacing && mirrored)) - { - if (mirrored) - { - value = bg_popup_window_pane_cp12Rect.Rect().iBr.iX - find_popup_paneRect.Rect().iBr.iX; - } - else - { - value = bg_popup_window_pane_cp12Rect.Rect().iBr.iX - find_popup_paneRect.Rect().iBr.iX; - } - } - else if (metric==QStyle::PM_LayoutTopMargin || metric==QStyle::PM_LayoutHorizontalSpacing) - { - value = find_popup_paneRect.Rect().iTl.iY - bg_popup_window_pane_cp12Rect.Rect().iTl.iY; - } - else if (metric==QStyle::PM_LayoutBottomMargin) - { - value = bg_popup_window_pane_cp12Rect.Rect().iBr.iY - find_popup_paneRect.Rect().iBr.iY; - } - } - break; - case QStyle::PM_MaximumDragDistance: - { - value = -1; //disable - not in S60 - } - break; - case QStyle::PM_SplitterWidth: - case QStyle::PM_ScrollBarExtent: - { - TAknLayoutRect miscGraphicsRect; - miscGraphicsRect.LayoutRect( screenRect, AknLayoutScalable_Avkon::misc_graphics()); - miscGraphicsRect.LayoutRect( miscGraphicsRect.Rect(), AknLayoutScalable_Avkon::misc_graphics()); - TAknLayoutRect textsGraphicsRect; - textsGraphicsRect.LayoutRect( miscGraphicsRect.Rect(), AknLayoutScalable_Avkon::texts_graphics()); - TAknLayoutRect editorScrollRect; - editorScrollRect.LayoutRect( textsGraphicsRect.Rect(), AknLayoutScalable_Avkon::editor_scroll_pane()); - TAknLayoutRect scrollPaneRect; - scrollPaneRect.LayoutRect( editorScrollRect.Rect(), AknLayoutScalable_Avkon::scroll_pane_cp13()); - value = scrollPaneRect.Rect().Width(); // width of editor's scroll bar - } - break; - case QStyle::PM_ScrollBarSliderMin: - { - TAknLayoutRect listScrollPane; - listScrollPane.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::listscroll_gen_pane(0)); - TAknLayoutRect scrollPane; - scrollPane.LayoutRect( listScrollPane.Rect(), AknLayoutScalable_Avkon::scroll_pane()); - TAknLayoutRect scrollHandlePane; - scrollHandlePane.LayoutRect( scrollPane.Rect(), AknLayoutScalable_Avkon::scroll_handle_pane()); - TAknLayoutRect aidMinSizePane; - aidMinSizePane.LayoutRect( scrollHandlePane.Rect(), AknLayoutScalable_Avkon::aid_size_min_handle()); // this gives min width size for horizontal scroll bar - same can be used for vertical height minimum - value = aidMinSizePane.Rect().Height(); - } - break; - case QStyle::PM_MenuBarPanelWidth: - { - TAknLayoutRect appWindow; - appWindow.LayoutRect( screenRect, AknLayoutScalable_Avkon::application_window(0) ); - - variety = 0; - if ( landscape ) - { - variety = 2; - } - TAknLayoutRect areaBottomRect; - areaBottomRect.LayoutRect( appWindow.Rect(), AknLayoutScalable_Avkon::area_bottom_pane(variety) ); - - // todo: prt: variety 7 if thin status pane, 1 if no status pane, 3 if small status pane and with main pane, 4 otherwise (idle has bunch of own varieties) - // todo: lsc: variety 6 if thin status pane - // todo: should stacon be considered? - TAknLayoutRect controlPaneRect; - controlPaneRect.LayoutRect( areaBottomRect.Rect(), AknLayoutScalable_Avkon::control_pane() ); - value = areaBottomRect.Rect().Height() - controlPaneRect.Rect().Height(); //usually zero - } - break; - case QStyle::PM_ProgressBarChunkWidth: - { - // This is either deduced or skinned (for Java) in S60 - // Layout data does not know it. It would require parameters from the - // actual progress dialog to be able to calc this (max. value and increment) - // So we need to set up some values - lets take one tenth of progress dialog area: - TAknLayoutRect appWindow; - appWindow.LayoutRect( screenRect, AknLayoutScalable_Avkon::application_window(variety) ); - if (landscape) - { - variety = 6; - } - TAknLayoutRect popupWaitWindowRect; - popupWaitWindowRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::popup_note_wait_window(variety) ); - TAknLayoutRect waitbarPaneRect; - waitbarPaneRect.LayoutRect( popupWaitWindowRect.Rect(), AknLayoutScalable_Avkon::wait_bar_pane(0) ); - TAknLayoutRect waitAnimRect; - waitAnimRect.LayoutRect( waitbarPaneRect.Rect(), AknLayoutScalable_Avkon::wait_anim_pane() ); - value = (TInt) (waitAnimRect.Rect().Width() / 10); - } - break; - case QStyle::PM_TabBarTabOverlap: - case QStyle::PM_TabBarTabHSpace: - case QStyle::PM_TabBarTabVSpace: - case QStyle::PM_TabBarBaseHeight: - case QStyle::PM_TabBarBaseOverlap: - case QStyle::PM_TabBarScrollButtonWidth: - case QStyle::PM_TabBarTabShiftHorizontal: - case QStyle::PM_TabBarTabShiftVertical: - value = PixelMetricTabValue(metric, appWindow.Rect(), landscape); - break; - case QStyle::PM_MenuPanelWidth: - case QStyle::PM_MenuHMargin: - case QStyle::PM_MenuVMargin: - value = PixelMetricMenuValue(metric, mainPaneRect); - break; - case QStyle::PM_ButtonIconSize: - { - //lets use voice recorder icons as a base - //Unfortunately S60 graphics don't separate button bevel graphics from the actual icon. - //Se we have no means to query the margin from bevel border to "central icon" border. - //So, we need to make a estimate... - - TAknLayoutRect vRMainRect; - vRMainRect.LayoutRect( mainPaneRect, AknLayoutScalable_Apps::main_vorec_pane() ); - - TAknLayoutRect vRButtonGridRect; - vRButtonGridRect.LayoutRect( vRMainRect.Rect(), AknLayoutScalable_Apps::grid_vorec_pane() ); - - TAknLayoutRect vRButtonCellRect; - vRButtonCellRect.LayoutRect( vRButtonGridRect.Rect(), AknLayoutScalable_Apps::cell_vorec_pane(0) ); - - TAknLayoutRect vRButtonCellGraphicsRect; - vRButtonCellGraphicsRect.LayoutRect( vRButtonCellRect.Rect(), AknLayoutScalable_Apps::cell_vorec_pane_g1() ); - - // 0.32 is the estimate how much the icon occupies of the button bevel area - value = vRButtonCellGraphicsRect.Rect().Width() * 0.32; - } - break; - case QStyle::PM_SmallIconSize: - { - // lets use AI2 icon as a base - TAknLayoutRect idlePaneRect; - idlePaneRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::main_idle_act2_pane() ); - TAknLayoutRect idleDataRect; - idleDataRect.LayoutRect( idlePaneRect.Rect(), AknLayoutScalable_Avkon::popup_ai2_data_window(1) ); - TAknLayoutRect ai2GridRect; - ai2GridRect.LayoutRect( idleDataRect.Rect(), AknLayoutScalable_Avkon::grid_ai2_button_pane() ); - TAknLayoutRect ai2MpRect; - ai2MpRect.LayoutRect( ai2GridRect.Rect(), AknLayoutScalable_Avkon::ai2_mp_button_pane() ); - TAknLayoutRect ai2CellPaneRect; - ai2CellPaneRect.LayoutRect( ai2MpRect.Rect(), AknLayoutScalable_Avkon::cell_ai2_button_pane(1).LayoutLine() ); - TAknLayoutRect ai2CellButtonRect; - ai2CellButtonRect.LayoutRect( ai2CellPaneRect.Rect(), AknLayoutScalable_Avkon::cell_ai2_button_pane_g1()); - value = Min( ai2CellButtonRect.Rect().Width(), ai2CellButtonRect.Rect().Height()); - } - break; - case QStyle::PM_FocusFrameHMargin: - case QStyle::PM_FocusFrameVMargin: - { - TAknLayoutRect listScrollPane; - listScrollPane.LayoutRect(mainPaneRect, AknLayoutScalable_Avkon::listscroll_gen_pane(0)); - TAknLayoutRect listGenPane; - listGenPane.LayoutRect(listScrollPane.Rect(), AknLayoutScalable_Avkon::list_gen_pane(0)); - TAknLayoutRect listSinglePane; - listSinglePane.LayoutRect(listGenPane.Rect(), AknLayoutScalable_Avkon::list_single_pane(0)); - TAknLayoutText listSinglePaneText; - listSinglePaneText.LayoutText(listSinglePane.Rect(), AknLayoutScalable_Avkon::list_single_pane_t1(0)); - TAknLayoutRect highlightRect; - highlightRect.LayoutRect(listSinglePane.Rect(), AknLayoutScalable_Avkon::list_highlight_pane_cp1().LayoutLine()); - - // The difference of center piece from border tell the frame width. - if ( value == QStyle::PM_FocusFrameHMargin) - { - //use topleft for horizontal as S60 uses different values for right and left borders - value = listSinglePaneText.TextRect().iTl.iX - highlightRect.Rect().iTl.iX; - } - else - { - value = highlightRect.Rect().iBr.iY - listSinglePaneText.TextRect().iBr.iY; - } - } - break; - case QStyle::PM_ToolBarIconSize: - { - TAknLayoutRect popupToolBarWindow; - variety = 4; - popupToolBarWindow.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::popup_toolbar_window(variety) ); - TAknLayoutRect gridToolBarRect; - gridToolBarRect.LayoutRect( popupToolBarWindow.Rect(), AknLayoutScalable_Avkon::grid_toobar_pane() ); - TAknLayoutRect cellToolBarRect1; - TAknLayoutRect cellToolBarRect2; - cellToolBarRect1.LayoutRect( gridToolBarRect.Rect(), AknLayoutScalable_Avkon::cell_toolbar_pane(0).LayoutLine() ); //first item - value = Min( cellToolBarRect1.Rect().Height(), cellToolBarRect1.Rect().Width() ); - } - break; - - case QStyle::PM_TitleBarHeight: // use titlepane height - { - TAknLayoutRect statusPaneRect; - TAknLayoutRect titlePane; - TAknLayoutRect areaTopRect; - if (landscape) - { - if ( AknLayoutUtils::PenEnabled() ) - { - // Top area - 0 is for classic landscape (used in touch landscape as well) - areaTopRect.LayoutRect( appWindow.Rect(), AknLayoutScalable_Avkon::area_top_pane(2) ); - // Status pane - 0 softkeys on right - statusPaneRect.LayoutRect( areaTopRect.Rect(), AknLayoutScalable_Avkon::stacon_top_pane() ); - } - else - { - // Top area - 2 is for classic landscape. - areaTopRect.LayoutRect( appWindow.Rect(), AknLayoutScalable_Avkon::area_bottom_pane(2) ); - // Stacon top pane (default ok) - statusPaneRect.LayoutRect( areaTopRect.Rect(), AknLayoutScalable_Avkon::stacon_bottom_pane() ); - } - titlePane.LayoutRect( areaTopRect.Rect(), AknLayoutScalable_Avkon::title_pane_stacon(0) ); //softkeys on right - } - else - { - // Top area - 0 is for classic portrait - areaTopRect.LayoutRect( appWindow.Rect(), AknLayoutScalable_Avkon::area_top_pane(0) ); - // Status pane - 0 is for classic portrait - statusPaneRect.LayoutRect( areaTopRect.Rect(), AknLayoutScalable_Avkon::status_pane(0) ); - titlePane.LayoutRect( statusPaneRect.Rect(), AknLayoutScalable_Avkon::title_pane(0) ); - } - value = titlePane.Rect().Height(); - } - break; - case QStyle::PM_IndicatorWidth: - case QStyle::PM_IndicatorHeight: - { - TRect rectParent( mainPaneRect ); - - TAknLayoutRect layoutRect; - layoutRect.LayoutRect( rectParent,AknLayoutScalable_Avkon::set_content_pane().LayoutLine() ); - TAknLayoutRect layoutRect2; - layoutRect2.LayoutRect( layoutRect.Rect(),AknLayoutScalable_Avkon::list_set_graphic_pane(0).LayoutLine() ); - - TAknLayoutRect iconLayoutRect; - iconLayoutRect.LayoutRect( layoutRect2.Rect(), AknLayoutScalable_Avkon::list_set_graphic_pane_g1(0).LayoutLine() ); - if (metric==QStyle::PM_IndicatorWidth) - { - value = iconLayoutRect.Rect().Width(); - } - else - { - value = iconLayoutRect.Rect().Height(); - } - } - break; - case QStyle::PM_ExclusiveIndicatorHeight: - case QStyle::PM_ExclusiveIndicatorWidth: - { - TRect rectParent( mainPaneRect ); - TAknLayoutRect layoutRect; - layoutRect.LayoutRect( rectParent,AknLayoutScalable_Avkon::list_choice_list_pane(1).LayoutLine() ); // w/ scrollbar - TAknLayoutText itemText; - itemText.LayoutText( layoutRect.Rect(), AknLayoutScalable_Avkon::list_single_choice_list_pane_t1(1) ); - TAknLayoutRect iconLayoutRect; - iconLayoutRect.LayoutRect( layoutRect.Rect(), AknLayoutScalable_Avkon::list_single_choice_list_pane_g1().LayoutLine() ); - - if (metric==QStyle::PM_ExclusiveIndicatorHeight) - { - value = iconLayoutRect.Rect().Height(); - } - else - { - value = iconLayoutRect.Rect().Width(); - } - } - break; - - // These are obsolete. - case QStyle::PM_DefaultTopLevelMargin: - case QStyle::PM_DefaultChildMargin: - case QStyle::PM_DefaultLayoutSpacing: - break; - - case QStyle::PM_Custom_FrameCornerWidth: - { - TAknLayoutRect inputFocusRect; - inputFocusRect.LayoutRect(mainPaneRect, AknLayoutScalable_Avkon::input_focus_pane(0)); - TAknLayoutRect inputFocusInnerRect; - inputFocusInnerRect.LayoutRect(mainPaneRect, AknLayoutScalable_Avkon::input_focus_pane_g1()); - - value = inputFocusRect.Rect().iBr.iX - inputFocusInnerRect.Rect().iBr.iX; - value+= 2; //visually better value for generic cases - } - break; - case QStyle::PM_Custom_FrameCornerHeight: - { - TAknLayoutRect inputFocusRect; - inputFocusRect.LayoutRect(mainPaneRect, AknLayoutScalable_Avkon::input_focus_pane(0)); - TAknLayoutRect inputFocusInnerRect; - inputFocusInnerRect.LayoutRect(mainPaneRect, AknLayoutScalable_Avkon::input_focus_pane_g1()); - value = inputFocusRect.Rect().iBr.iY - inputFocusInnerRect.Rect().iBr.iY; - value+= 2; //visually better value for generic cases - } - break; - case QStyle::PM_Custom_BoldLineWidth: - value = 3; - break; - case QStyle::PM_Custom_ThinLineWidth: - value = 1; - break; - case QStyle::PM_Custom_MessageBoxHeight: - { - TAknLayoutRect popupRect; - popupRect.LayoutRect(mainPaneRect, AknLayoutScalable_Avkon::popup_window_general(0)); - value = popupRect.Rect().Height(); - } - break; - case QStyle::PM_ButtonShiftHorizontal: - case QStyle::PM_ButtonShiftVertical: - value = 0; - break; - - case QStyle::PM_ToolBarExtensionExtent: - value = PixelMetricTabValue(QStyle::PM_TabBarScrollButtonWidth, appWindow.Rect(), landscape); - break; - - case QStyle::PM_MenuScrollerHeight: - { - TRect rectParent( mainPaneRect ); - TAknLayoutRect listWidthScrollBarsRect; - listWidthScrollBarsRect.LayoutRect( rectParent, AknLayoutScalable_Avkon::listscroll_gen_pane(0).LayoutLine() ); - - TAknLayoutRect listWidgetRect; - listWidgetRect.LayoutRect( listWidthScrollBarsRect.Rect(), AknLayoutScalable_Avkon::list_gen_pane(0).LayoutLine() ); - TAknLayoutRect singleLineListWidgetRect; - singleLineListWidgetRect.LayoutRect( listWidgetRect.Rect(), AknLayoutScalable_Avkon::list_single_pane(0).LayoutLine() ); - - TAknLayoutRect listHighlightRect; - listHighlightRect.LayoutRect( singleLineListWidgetRect.Rect(), AknLayoutScalable_Avkon::list_highlight_pane_cp1(0).LayoutLine() ); - - value = listHighlightRect.Rect().Height(); - } - break; - -// todo: re-check if these really are not available in s60 - case QStyle::PM_MenuDesktopFrameWidth: // not needed in S60 - dislocates Menu both horizontally and vertically - case QStyle::PM_HeaderMarkSize: // The size of the sort indicator in a header. Not in S60 - case QStyle::PM_SpinBoxSliderHeight: // The height of the optional spin box slider. Not in S60 - case QStyle::PM_HeaderMargin: // not in S60 - case QStyle::PM_MenuTearoffHeight: // not in S60 - case QStyle::PM_DockWidgetFrameWidth: // not in S60 - case QStyle::PM_DockWidgetSeparatorExtent: // not in S60 - case QStyle::PM_MdiSubWindowMinimizedWidth: //no such thing in S60 - case QStyle::PM_HeaderGripMargin: // not in S60 - case QStyle::PM_ToolBarSeparatorExtent: // not in S60 - case QStyle::PM_ToolBarHandleExtent: // not in s60 - case QStyle::PM_MenuButtonIndicator: // none??? - case QStyle::PM_TabBar_ScrollButtonOverlap: // not used in S60 - tab arrows are on left and right side of tab group - not together - case QStyle::PM_SizeGripSize: // use default - case QStyle::PM_TabCloseIndicatorWidth: - case QStyle::PM_TabCloseIndicatorHeight: - case QStyle::PM_ScrollView_ScrollBarSpacing: - case QStyle::PM_SubMenuOverlap: - default: - break; - } - return value; - } - -TInt PixelMetrics::PixelMetricTabValue(QStyle::PixelMetric tabMetric, TRect appWindow, TBool landscape) - { - TInt tabValue = 0; - // common ones - TAknLayoutRect mainAreaRect; - TAknLayoutRect rightIndicationRect; - TAknLayoutRect leftIndicationRect; - TAknLayoutRect activeTabRect; - TAknLayoutText activeTabTextRect; - TAknLayoutRect passiveTabRect; - TAknLayoutText passiveTabTextRect; - TAknLayoutRect tabsPaneRect; - if ( landscape ) - { - TAknLayoutRect statusPaneRect; - TAknLayoutRect areaTopRect; - if ( AknLayoutUtils::PenEnabled() ) - { - // Top area - 0 is for classic landscape (used in touch landscape as well) - areaTopRect.LayoutRect( appWindow, AknLayoutScalable_Avkon::area_top_pane(2) ); - // Status pane - 0 softkeys on right - statusPaneRect.LayoutRect( areaTopRect.Rect(), AknLayoutScalable_Avkon::stacon_top_pane() ); - } - else - { - // Top area - 2 is for classic landscape. - areaTopRect.LayoutRect( appWindow, AknLayoutScalable_Avkon::area_bottom_pane(2) ); - // Stacon top pane (default ok) - statusPaneRect.LayoutRect( areaTopRect.Rect(), AknLayoutScalable_Avkon::stacon_bottom_pane() ); - } - // main pane for landscape - mainAreaRect.LayoutRect( appWindow, AknLayoutScalable_Avkon::main_pane(4) ); - - // navi pane - TAknLayoutRect naviPaneRect; - naviPaneRect.LayoutRect( statusPaneRect.Rect(), AknLayoutScalable_Avkon::navi_pane_stacon(0) ); // softkeys on right - // navi-navi pane - tabsPaneRect.LayoutRect( naviPaneRect.Rect(), AknLayoutScalable_Avkon::navi_navi_pane_stacon(0) ); // softkeys on right - // Passive tab item - lets use layout where active is on left side of passive - passiveTabRect.LayoutRect( tabsPaneRect.Rect(), AknLayoutScalable_Avkon::tabs_3_passive_pane(0) ); - // Active tab item - activeTabRect.LayoutRect( tabsPaneRect.Rect(), AknLayoutScalable_Avkon::tabs_3_active_pane(0) ); - // Left indication - leftIndicationRect.LayoutRect( tabsPaneRect.Rect(), AknLayoutScalable_Avkon::navi_navi_pane_g1(0) ); - // Right indication - rightIndicationRect.LayoutRect( tabsPaneRect.Rect(), AknLayoutScalable_Avkon::navi_navi_pane_g2(0) ); - // active tab text rect - activeTabTextRect.LayoutText( activeTabRect.Rect(), AknLayoutScalable_Avkon::tabs_3_active_pane_t1(1) ); - // passive tab text rect - passiveTabTextRect.LayoutText( passiveTabRect.Rect(), AknLayoutScalable_Avkon::tabs_3_passive_pane_t1(1) ); - } - else - { - // main pane for portait - mainAreaRect.LayoutRect( appWindow, AknLayoutScalable_Avkon::main_pane(3) ); - // Top area - 0 is for classic portrait - TAknLayoutRect areaTopRect; - areaTopRect.LayoutRect( appWindow, AknLayoutScalable_Avkon::area_top_pane(0) ); - // Status pane - 0 is for classic portrait - TAknLayoutRect statusPaneRect; - statusPaneRect.LayoutRect( areaTopRect.Rect(), AknLayoutScalable_Avkon::status_pane(0) ); - - // Navi pane - TAknLayoutRect naviPaneRect; - naviPaneRect.LayoutRect( statusPaneRect.Rect(), AknLayoutScalable_Avkon::navi_pane(0) ); - // Navi-navi pane for tabs (0) - TAknLayoutRect navi2PaneRect; - navi2PaneRect.LayoutRect( naviPaneRect.Rect(), AknLayoutScalable_Avkon::navi_navi_pane() ); - // Short tab pane - tabsPaneRect.LayoutRect( navi2PaneRect.Rect(), AknLayoutScalable_Avkon::navi_navi_tabs_pane() ); - // Tab pane for 2 items - TAknLayoutRect tab2PaneRect; - tab2PaneRect.LayoutRect( tabsPaneRect.Rect(), AknLayoutScalable_Avkon::navi_tabs_3_pane() ); - // Passive tab item - lets use layout where active is on left side of passive - passiveTabRect.LayoutRect( tab2PaneRect.Rect(), AknLayoutScalable_Avkon::tabs_3_passive_pane(0) ); - // Active tab item - activeTabRect.LayoutRect( tab2PaneRect.Rect(), AknLayoutScalable_Avkon::tabs_3_active_pane(0) ); - // Left indication - leftIndicationRect.LayoutRect( tabsPaneRect.Rect(), AknLayoutScalable_Avkon::navi_navi_pane_g1(0) ); - // Right indication - rightIndicationRect.LayoutRect( tabsPaneRect.Rect(), AknLayoutScalable_Avkon::navi_navi_pane_g2(0) ); - // active tab text rect - activeTabTextRect.LayoutText( activeTabRect.Rect(), AknLayoutScalable_Avkon::tabs_3_active_pane_t1(0) ); - // passive tab text rect - passiveTabTextRect.LayoutText( passiveTabRect.Rect(), AknLayoutScalable_Avkon::tabs_3_passive_pane_t1(0) ); - } - - // active tab on left, passive on rightside - TInt tabOverlap = activeTabRect.Rect().iBr.iX - passiveTabRect.Rect().iTl.iX; - TInt tabHSpace = (TInt) ((activeTabTextRect.TextRect().iTl.iX - activeTabRect.Rect().iTl.iX + activeTabRect.Rect().iBr.iX - activeTabTextRect.TextRect().iBr.iX)/2); - TInt tabVSpace = (TInt) ((activeTabTextRect.TextRect().iTl.iY - activeTabRect.Rect().iTl.iY + activeTabRect.Rect().iBr.iY - activeTabTextRect.TextRect().iBr.iY)/2); - TInt tabBaseHeight = 0; - if ( landscape && !AknLayoutUtils::PenEnabled()) - { - // In landscape tab is below mainpane - tabBaseHeight = mainAreaRect.Rect().iBr.iY - tabsPaneRect.Rect().iTl.iY; - } - else - { - // In portrait (and in landscape touch) tab is above mainpane - tabBaseHeight = tabsPaneRect.Rect().iBr.iY - mainAreaRect.Rect().iTl.iY; - } - TInt tabBaseOverlap = 0; - if ( landscape && !AknLayoutUtils::PenEnabled()) - { - // In landscape tab is below mainpane - tabBaseOverlap = Max( 0, mainAreaRect.Rect().iBr.iY - tabsPaneRect.Rect().iTl.iY); - } - else - { - // In portrait tab is above mainpane - tabBaseOverlap = Max( 0, mainAreaRect.Rect().iTl.iY - tabsPaneRect.Rect().iBr.iY); - } - TInt tabButtonWidth = Max(leftIndicationRect.Rect().Width(), rightIndicationRect.Rect().Width()); - TInt tabVShift = Max( Abs(activeTabTextRect.TextRect().iBr.iY - passiveTabTextRect.TextRect().iBr.iY), Abs(activeTabTextRect.TextRect().iTl.iY - passiveTabTextRect.TextRect().iTl.iY) ); - TInt tabHShift = Max( Abs(activeTabTextRect.TextRect().iBr.iX - passiveTabTextRect.TextRect().iBr.iX), Abs(activeTabTextRect.TextRect().iTl.iX - passiveTabTextRect.TextRect().iTl.iX) ); - tabHShift -= (passiveTabRect.Rect().Width() - tabOverlap); // remove tab change and add overlapping area - - switch( tabMetric ) - { - case QStyle::PM_TabBarTabOverlap: - tabValue = tabOverlap; - break; - case QStyle::PM_TabBarTabHSpace: - tabValue = tabHSpace; - break; - case QStyle::PM_TabBarTabVSpace: - tabValue = tabVSpace; - break; - case QStyle::PM_TabBarBaseHeight: - tabValue = tabBaseHeight; - break; - case QStyle::PM_TabBarBaseOverlap: - tabValue = tabBaseOverlap; - break; - case QStyle::PM_TabBarScrollButtonWidth: - // Since in Qt the scroll indicator is shown within a button, we need to add button margins to this value - { - tabValue = tabButtonWidth + 2*PixelMetricValue(QStyle::PM_ButtonMargin); - } - break; - case QStyle::PM_TabBarTabShiftHorizontal: - tabValue = tabHShift; - break; - case QStyle::PM_TabBarTabShiftVertical: - tabValue = tabVShift; - break; - default: - break; - } - return tabValue; - } - -TInt PixelMetrics::PixelMetricMenuValue(QStyle::PixelMetric tabMetric, TRect mainPaneRect ) - { - TInt menuValue = 0; - TAknLayoutRect popupMenuRect; - popupMenuRect.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::popup_menu_window(0) ); - TAknLayoutRect listScrollPaneRect; - listScrollPaneRect.LayoutRect( popupMenuRect.Rect(), AknLayoutScalable_Avkon::listscroll_menu_pane(0) ); - TAknLayoutRect listMenuPaneRect; - listMenuPaneRect.LayoutRect( listScrollPaneRect.Rect(), AknLayoutScalable_Avkon::list_menu_pane(0) ); - TAknLayoutRect listMenuRow1Rect; - listMenuRow1Rect.LayoutRect( listScrollPaneRect.Rect(), AknLayoutScalable_Avkon::list_single_pane_cp2(0)); - - switch (tabMetric) - { - case QStyle::PM_MenuPanelWidth: - menuValue = listMenuPaneRect.Rect().iTl.iX - listScrollPaneRect.Rect().iTl.iX; - if ( AknLayoutUtils::LayoutMirrored() ) - { - menuValue = listScrollPaneRect.Rect().iBr.iX - listMenuPaneRect.Rect().iBr.iX; - } - break; - case QStyle::PM_MenuHMargin: - menuValue = listMenuRow1Rect.Rect().iTl.iX - popupMenuRect.Rect().iTl.iX; - if ( AknLayoutUtils::LayoutMirrored() ) - { - menuValue = popupMenuRect.Rect().iBr.iX - listMenuRow1Rect.Rect().iBr.iX; - } - break; - case QStyle::PM_MenuVMargin: - menuValue = listMenuRow1Rect.Rect().iTl.iY - popupMenuRect.Rect().iTl.iY; - break; - default: - break; - } - return menuValue; - } diff --git a/util/s60pixelmetrics/pixel_metrics.h b/util/s60pixelmetrics/pixel_metrics.h deleted file mode 100644 index 8b281dadbc..0000000000 --- a/util/s60pixelmetrics/pixel_metrics.h +++ /dev/null @@ -1,218 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: http://www.qt-project.org/ -** -** This file is part of the utility applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PIXELMETRICS_H -#define PIXELMETRICS_H - -#include -#define S60_Rnd_Env - -#ifdef S60_Rnd_Env -#pragma message ("Building in supported environment") - -const TInt KUnknownBase = -5000; - -NONSHARABLE_CLASS( QStyle ) - { - public: - enum PixelMetric { - PM_ButtonMargin, - PM_ButtonDefaultIndicator, - PM_MenuButtonIndicator, - PM_ButtonShiftHorizontal, - PM_ButtonShiftVertical, - - PM_DefaultFrameWidth, - PM_SpinBoxFrameWidth, - PM_ComboBoxFrameWidth, - - PM_MaximumDragDistance, - - PM_ScrollBarExtent, - PM_ScrollBarSliderMin, - - PM_SliderThickness, // total slider thickness - PM_SliderControlThickness, // thickness of the business part - PM_SliderLength, // total length of slider - PM_SliderTickmarkOffset, // - PM_SliderSpaceAvailable, // available space for slider to move - - PM_DockWidgetSeparatorExtent, - PM_DockWidgetHandleExtent, - PM_DockWidgetFrameWidth, - - PM_TabBarTabOverlap, - PM_TabBarTabHSpace, - PM_TabBarTabVSpace, - PM_TabBarBaseHeight, - PM_TabBarBaseOverlap, - - PM_ProgressBarChunkWidth, - - PM_SplitterWidth, - PM_TitleBarHeight, - - PM_MenuScrollerHeight, - PM_MenuHMargin, - PM_MenuVMargin, - PM_MenuPanelWidth, - PM_MenuTearoffHeight, - PM_MenuDesktopFrameWidth, - - PM_MenuBarPanelWidth, - PM_MenuBarItemSpacing, - PM_MenuBarVMargin, - PM_MenuBarHMargin, - - PM_IndicatorWidth, - PM_IndicatorHeight, - PM_ExclusiveIndicatorWidth, - PM_ExclusiveIndicatorHeight, - PM_CheckListButtonSize, - PM_CheckListControllerSize, - - PM_DialogButtonsSeparator, - PM_DialogButtonsButtonWidth, - PM_DialogButtonsButtonHeight, - - PM_MdiSubWindowFrameWidth, - PM_MDIFrameWidth = PM_MdiSubWindowFrameWidth, //obsolete - PM_MdiSubWindowMinimizedWidth, - PM_MDIMinimizedWidth = PM_MdiSubWindowMinimizedWidth, //obsolete - - PM_HeaderMargin, - PM_HeaderMarkSize, - PM_HeaderGripMargin, - PM_TabBarTabShiftHorizontal, - PM_TabBarTabShiftVertical, - PM_TabBarScrollButtonWidth, - - PM_ToolBarFrameWidth, - PM_ToolBarHandleExtent, - PM_ToolBarItemSpacing, - PM_ToolBarItemMargin, - PM_ToolBarSeparatorExtent, - PM_ToolBarExtensionExtent, - - PM_SpinBoxSliderHeight, - - PM_DefaultTopLevelMargin, - PM_DefaultChildMargin, - PM_DefaultLayoutSpacing, - - PM_ToolBarIconSize, - PM_ListViewIconSize, - PM_IconViewIconSize, - PM_SmallIconSize, - PM_LargeIconSize, - - PM_FocusFrameVMargin, - PM_FocusFrameHMargin, - - PM_ToolTipLabelFrameWidth, - PM_CheckBoxLabelSpacing, - PM_TabBarIconSize, - PM_SizeGripSize, - PM_DockWidgetTitleMargin, - PM_MessageBoxIconSize, - PM_ButtonIconSize, - - PM_DockWidgetTitleBarButtonMargin, - - PM_RadioButtonLabelSpacing, - PM_LayoutLeftMargin, - PM_LayoutTopMargin, - PM_LayoutRightMargin, - PM_LayoutBottomMargin, - PM_LayoutHorizontalSpacing, - PM_LayoutVerticalSpacing, - PM_TabBar_ScrollButtonOverlap, - - PM_TextCursorWidth, - - PM_TabCloseIndicatorWidth, - PM_TabCloseIndicatorHeight, - - PM_ScrollView_ScrollBarSpacing, - PM_SubMenuOverlap, - - // do not add any values below/greater than this - PM_CustomBase = 0xf0000000, - - // The following are custom values needed to draw the S60Style according scalable UIs. - // Width of 9-part frame-corner - PM_Custom_FrameCornerWidth, - // Height of 9-part frame corner - PM_Custom_FrameCornerHeight, - // Bold line width - PM_Custom_BoldLineWidth, - // Thin line width - PM_Custom_ThinLineWidth, - // Height of a popup info messagebox - PM_Custom_MessageBoxHeight - }; - - }; -#else -#pragma message ("Building in non-supported environment, this probably fails") -#endif - - -// Pixel metrics version information. -class TPixelMetricsVersion - { - public: - TInt majorVersion; - TInt minorVersion; - }; - -NONSHARABLE_CLASS(PixelMetrics) -{ - public: - static TPixelMetricsVersion Version(); - static TInt PixelMetricValue(QStyle::PixelMetric); - - private: - static TInt PixelMetricMenuValue( QStyle::PixelMetric menuValue, TRect mainPaneRect ); - static TInt PixelMetricTabValue( QStyle::PixelMetric tabValue, TRect appWindow, TBool landscape ); -}; - -#endif // PIXELMETRICS_H diff --git a/util/s60pixelmetrics/pm_mapper.hrh b/util/s60pixelmetrics/pm_mapper.hrh deleted file mode 100644 index 5238a8fa85..0000000000 --- a/util/s60pixelmetrics/pm_mapper.hrh +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: http://www.qt-project.org/ -** -** This file is part of the utility applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PMMAPPER_HRH -#define PMMAPPER_HRH - -// DATA TYPES - -// View IDs. -enum - { - EPMMapperViewId = 1 // Base view. - }; - -// Menu items (commands) -enum - { - ECmdStartCalculations = 8500, - ECmdSwitchOrientation, - ECmdStatus, - ECmdSwitchOutput, - ECmdCreateHeaderFile - }; - -#endif // PMMAPPER_HRH - - -// End of File diff --git a/util/s60pixelmetrics/pm_mapper.mmp b/util/s60pixelmetrics/pm_mapper.mmp deleted file mode 100644 index 86f5abe304..0000000000 --- a/util/s60pixelmetrics/pm_mapper.mmp +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: http://www.qt-project.org/ -** -** This file is part of the utility applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include - -TARGET pm_mapper.exe -TARGETTYPE exe -UID 0x100039CE 0x2002121F - -CAPABILITY CAP_APPLICATION -VENDORID VID_DEFAULT - -SOURCEPATH . -SOURCE pm_mapperview.cpp -SOURCE pm_mapperapp.cpp -SOURCE pixel_metrics.cpp - -START RESOURCE pm_mapper.rss -HEADER -TARGETPATH APP_RESOURCE_DIR -END - -START RESOURCE pm_mapper_reg.rss -TARGETPATH \private\10003a3f\apps -END - -APP_LAYER_SYSTEMINCLUDE -USERINCLUDE . - -LIBRARY eikcoctl.lib -LIBRARY avkon.lib -LIBRARY euser.lib -LIBRARY apparc.lib -LIBRARY cone.lib -LIBRARY eikcore.lib -LIBRARY bafl.lib -LIBRARY eikctl.lib -LIBRARY apgrfx.lib -LIBRARY aknnotify.lib -LIBRARY ws32.lib -LIBRARY commonengine.lib -LIBRARY fbscli.lib -LIBRARY eikdlg.lib -LIBRARY aknskins.lib -LIBRARY gdi.lib -LIBRARY CentralRepository.lib -LIBRARY efsrv.lib -LIBRARY cdlengine.lib -LIBRARY AknLayout2.lib -LIBRARY AknLayout2Scalable.lib - -// End of File diff --git a/util/s60pixelmetrics/pm_mapper.pkg b/util/s60pixelmetrics/pm_mapper.pkg deleted file mode 100644 index 97a689ed70..0000000000 --- a/util/s60pixelmetrics/pm_mapper.pkg +++ /dev/null @@ -1,32 +0,0 @@ -; ============================================================================== -; Name : PMMapper.pkg -; Part of : Pixel Metrics Mapper -; Description : Package file for pixel metrics mapper -; SIS creation. -; Version : -; -; Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -; This material, including documentation and any related -; computer programs, is protected by copyright controlled by -; Nokia Corporation. All rights are reserved. Copying, -; including reproducing, storing, adapting or translating, any -; or all of this material requires the prior written consent of -; Nokia Corporation. This material also contains confidential -; information which may not be disclosed to others without the -; prior written consent of Nokia Corporation. -; ============================================================================== - - -;Header -#{"PMMapper"},(0x2002121F),1,0,0 - -;Localised Vendor name -%{"Nokia Test EN"} - -;Unique Vendor name -:"Vendor" - -;Files to install -"\Epoc32\release\armv5\urel\pm_mapper.exe" -"!:\sys\bin\pm_mapper.exe" -"\epoc32\data\z\private\10003a3f\apps\pm_mapper_reg.rsc" -"!:\private\10003a3f\import\apps\pm_mapper_reg.rsc" -"\epoc32\data\Z\Resource\Apps\pm_mapper.RSC" -"!:\resource\apps\pm_mapper.rsc" diff --git a/util/s60pixelmetrics/pm_mapper.rss b/util/s60pixelmetrics/pm_mapper.rss deleted file mode 100644 index 80508f0c45..0000000000 --- a/util/s60pixelmetrics/pm_mapper.rss +++ /dev/null @@ -1,160 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: http://www.qt-project.org/ -** -** This file is part of the utility applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -// RESOURCE IDENTIFIER -NAME TATR - - -// INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "pm_mapper.hrh" - - -// RESOURCE DEFINITIONS - -// ----------------------------------------------------------------------------- -// -// RSS_SIGNATURE -// -// -// ----------------------------------------------------------------------------- -// -RESOURCE RSS_SIGNATURE { } - - -// ----------------------------------------------------------------------------- -// -// TBUF -// -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF { buf = "pm_mapper"; } - - -// ----------------------------------------------------------------------------- -// -// EIK_APP_INFO -// -// -// ----------------------------------------------------------------------------- -// -RESOURCE EIK_APP_INFO - { - } - -// ----------------------------------------------------------------------------- -// -// r_pmmapper_localisable_app_info -// Captions for this application. -// -// ----------------------------------------------------------------------------- -// -RESOURCE LOCALISABLE_APP_INFO r_pmmapper_localisable_app_info - { - short_caption = "pm_mapper"; - caption_and_icon = - CAPTION_AND_ICON_INFO - { - caption = "PixelMetricsMapper"; - }; - } - -// ----------------------------------------------------------------------------- -// -// r_pmmapper_view -// -// -// ----------------------------------------------------------------------------- -// -RESOURCE AVKON_VIEW r_pmmapper_view - { - menubar = r_pmmapper_view_menu; - cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT; - } - - -// ----------------------------------------------------------------------------- -// -// r_pmmapper_view_menu -// -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_BAR r_pmmapper_view_menu - { - titles= - { - MENU_TITLE { txt = "A"; menu_pane = r_pmmapper_system_menu; } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_pmmapper_system_menu -// -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_pmmapper_system_menu - { - items = - { - MENU_ITEM { command = ECmdStartCalculations; txt = "Start calculations"; }, - MENU_ITEM { command = ECmdSwitchOrientation; txt = "Switch orientation"; }, - MENU_ITEM { command = ECmdStatus; txt = "Status"; }, - MENU_ITEM { command = ECmdSwitchOutput; txt = "Switch output (file/screen)"; }, - MENU_ITEM { command = ECmdCreateHeaderFile; txt = "Create header file"; } - }; - } - - -// End of File diff --git a/util/s60pixelmetrics/pm_mapper_reg.rss b/util/s60pixelmetrics/pm_mapper_reg.rss deleted file mode 100644 index 8b1a8e28a8..0000000000 --- a/util/s60pixelmetrics/pm_mapper_reg.rss +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: http://www.qt-project.org/ -** -** This file is part of the utility applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include - -UID2 KUidAppRegistrationResourceFile -UID3 0x2002121F // application UID - -RESOURCE APP_REGISTRATION_INFO - { - app_file = "pm_mapper"; - localisable_resource_file = - APP_RESOURCE_DIR"\\pm_mapper"; - localisable_resource_id = R_PMMAPPER_LOCALISABLE_APP_INFO; - } - -// End of File diff --git a/util/s60pixelmetrics/pm_mapperapp.cpp b/util/s60pixelmetrics/pm_mapperapp.cpp deleted file mode 100644 index 857b65ac60..0000000000 --- a/util/s60pixelmetrics/pm_mapperapp.cpp +++ /dev/null @@ -1,959 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: http://www.qt-project.org/ -** -** This file is part of the utility applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// INCLUDE FILES - -#include -#include -#include "pm_mapper.hrh" -#include "pm_mapperapp.h" -#include "pm_mapperview.h" -#include - -#include - -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include -#include "pixel_metrics.h" - -#include - -#include -#include - -typedef TBuf<2048> TMySmallBuffer; -typedef TBuf<8192> TMyBigBuffer; - -_LIT(KLayoutSourceFileAndPath, "\\private\\2002121f\\pm_layout.cpp"); -_LIT(KPixelMetricsDataFiles, "\\private\\2002121f\\*.txt"); -_LIT(KOpenBrace, "{"); -_LIT(KComma, ","); -_LIT(KColon, ":"); -_LIT(KTab, "\t"); -_LIT(KEndBraceWithCommaAndCRLF, "},\n"); -_LIT(KCRLF, "\n"); - -// Number of header lines in layout data. -const TInt KHeaderValues = 4; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPixelMetricsMapperAppUi::CPixelMetricsMapperAppUi() : iFileOutputOn(EFalse) - { - } - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CPixelMetricsMapperAppUi::~CPixelMetricsMapperAppUi() - { - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperAppUi::ConstructL() - { - BaseConstructL(); - - CEikonEnv& eikEnv = *CEikonEnv::Static(); - - eikEnv.WsSession().ComputeMode( - RWsSession::EPriorityControlDisabled ); - RThread().SetProcessPriority( EPriorityHigh ); - - CPixelMetricsMapperView* view = new( ELeave ) CPixelMetricsMapperView; - CleanupStack::PushL( view ); - view->ConstructL(); - CleanupStack::Pop(); // view - AddViewL(view); // transfer ownership to CAknViewAppUi - iView = view; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TKeyResponse CPixelMetricsMapperAppUi::HandleKeyEventL( - const TKeyEvent& /*aKeyEvent*/, - TEventCode /*aType*/ ) - { - return EKeyWasNotConsumed; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperAppUi::HandleCommandL( TInt aCommand ) - { - switch ( aCommand ) - { - case EAknSoftkeyExit: - case EEikCmdExit: - Exit(); - break; - case ECmdSwitchOutput: - { - HBufC* buffer = HBufC::NewLC( 100 ); - TPtr bufferPtr = buffer->Des(); - TBool last = ETrue; - bufferPtr.Append(_L("Output switched to ")); - iFileOutputOn = !iFileOutputOn; - if (iFileOutputOn) - bufferPtr.Append(_L("file.")); - else - bufferPtr.Append(_L("screen.")); - ShowL( *buffer, last ); - CleanupStack::PopAndDestroy( buffer ); - } - break; - case ECmdStatus: - { - ClearL(); - - // layout - HBufC* buffer = HBufC::NewLC( 100 ); - TPtr bufferPtr = buffer->Des(); - TBool last = ETrue; - - // Orientation - bufferPtr.Append(_L("Orientation: ")); - bufferPtr.AppendNum((TInt)iAvkonAppUi->Orientation()); - ShowL( *buffer, last ); - bufferPtr.Zero(); - - // Output - bufferPtr.Append(_L("Output: ")); - if (iFileOutputOn) bufferPtr.Append(_L("File")); - else bufferPtr.Append(_L("Screen")); - ShowL( *buffer, last ); - bufferPtr.Zero(); - - CAknLayoutConfig::TScreenMode localAppScreenMode = CAknSgcClient::ScreenMode(); - TInt hashValue = localAppScreenMode.ScreenStyleHash(); - TPixelsTwipsAndRotation pixels = CAknSgcClient::PixelsAndRotation(); - TSize pixelSize = pixels.iPixelSize; - - bufferPtr.Append(_L("LayoutName: ")); - - if ( (pixelSize.iWidth == 320 || pixelSize.iWidth == 240 )&& - (pixelSize.iHeight == 320 || pixelSize.iHeight == 240 )) - { - if (hashValue==0x996F7AA7) - bufferPtr.Append(_L("QVGA2")); - else - bufferPtr.Append(_L("QVGA1")); - } - else if ((pixelSize.iWidth == 640 || pixelSize.iWidth == 360 )&& - (pixelSize.iHeight == 360 || pixelSize.iHeight == 640 )) - { - bufferPtr.Append(_L("nHD")); - } - else if ((pixelSize.iWidth == 640 || pixelSize.iWidth == 480 )&& - (pixelSize.iHeight == 480 || pixelSize.iHeight == 640 )) - { - bufferPtr.Append(_L("VGA")); - } - else if ((pixelSize.iWidth == 352 || pixelSize.iWidth == 800 )&& - (pixelSize.iHeight == 800 || pixelSize.iHeight == 352 )) - { - bufferPtr.Append(_L("E90")); - } - else if ((pixelSize.iWidth == 320 || pixelSize.iWidth == 480 || - pixelSize.iWidth == 240 || pixelSize.iWidth == 640 )&& - (pixelSize.iHeight == 320 || pixelSize.iHeight == 480 || - pixelSize.iHeight == 240 || pixelSize.iHeight == 640)) - { - bufferPtr.Append(_L("HVGA")); - } - else if ((pixelSize.iWidth == 480 || pixelSize.iWidth == 854 || - pixelSize.iWidth == 848 || pixelSize.iWidth == 800 )&& - (pixelSize.iHeight == 800 || pixelSize.iHeight == 480 || - pixelSize.iHeight == 848 || pixelSize.iHeight == 854)) - { - bufferPtr.Append(_L("WVGA")); - } - else - { - bufferPtr.Append(_L("Unknown")); - } - - ShowL( *buffer, last ); - bufferPtr.Zero(); - CleanupStack::PopAndDestroy( buffer ); - } - break; - case ECmdSwitchOrientation: - { - ClearL(); - HBufC* buffer = HBufC::NewLC( 100 ); - TPtr bufferPtr = buffer->Des(); - TBool last = ETrue; - - #ifndef __SERIES60_31__ - if (!iAvkonAppUi->OrientationCanBeChanged()) - { - bufferPtr.Append(_L("Orientation cannot be changed.")); - ShowL( *buffer, last ); - bufferPtr.Zero(); - CleanupStack::PopAndDestroy( buffer ); - break; - } - #endif //__SERIES60_31__ - - if ( iAvkonAppUi->Orientation() == CAknAppUiBase::EAppUiOrientationPortrait) - { - iAvkonAppUi->SetOrientationL(CAknAppUiBase::EAppUiOrientationLandscape); - } - else if (iAvkonAppUi->Orientation() == CAknAppUiBase::EAppUiOrientationLandscape) - { - iAvkonAppUi->SetOrientationL(CAknAppUiBase::EAppUiOrientationPortrait); - } - else - { - // unspecified - iAvkonAppUi->SetOrientationL(CAknAppUiBase::EAppUiOrientationLandscape); - } - bufferPtr.Append(_L("Orientation changed.")); - ShowL( *buffer, last ); - bufferPtr.Zero(); - CleanupStack::PopAndDestroy( buffer ); - break; - } - case ECmdStartCalculations: - { - ClearL(); - // Get known values - TInt index = 0; - TBool last = EFalse; - if (iFileOutputOn) - { - TRect screenRect; - AknLayoutUtils::LayoutMetricsRect( - AknLayoutUtils::EApplicationWindow, - screenRect ); - - // Add screen dimensions - TInt height = screenRect.Height(); - TInt width = screenRect.Width(); - TBuf16<32> tgt; - // HEIGHT - tgt.Append(_L("height: \t")); - tgt.AppendNum(height, EDecimal); // put max height into text file - ShowL( tgt, last ); - tgt.Zero(); - // WIDTH - tgt.Append(_L("width: \t")); - tgt.AppendNum(width, EDecimal); // put max width into text file - ShowL( tgt, last ); - tgt.Zero(); - // VERSION - TPixelMetricsVersion version = PixelMetrics::Version(); - tgt.Append(_L("major_version: \t")); - tgt.AppendNum(version.majorVersion, EDecimal); // put major version into text file - ShowL( tgt, last ); - tgt.Zero(); - tgt.Append(_L("minor_version: \t")); - tgt.AppendNum(version.minorVersion, EDecimal); // put minor version into text file - ShowL( tgt, last ); - tgt.Zero(); - } - - TInt myValue = KErrNotFound; - for (;;) - { - if (index==QStyle::PM_Custom_MessageBoxHeight) - { - last = ETrue; - } - myValue = PixelMetrics::PixelMetricValue(static_cast(index)); - ShowSingleValueL( index, myValue, last ); - - if (last) break; - // if last before custom values, "jump" to custom base - if (index==QStyle::PM_SubMenuOverlap) index = QStyle::PM_CustomBase; - index++; - } - } - break; - case ECmdCreateHeaderFile: - CreateHeaderFileL(); - break; - default: - break; - } - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperAppUi::ShowL( const TDesC& aText, TBool& aLast, const TBool& aFileOutput ) - { - _LIT( KTestPrefix, "\t" ); - - HBufC* buffer = HBufC::NewLC( aText.Length() + KTestPrefix().Length() ); - TPtr ptr = buffer->Des(); - ptr.Append( KTestPrefix ); - ptr.Append( aText ); - iView->ShowL( *buffer, aLast, aFileOutput ); - CleanupStack::PopAndDestroy( buffer ); - } - -void CPixelMetricsMapperAppUi::ShowSingleValueL(TInt& aPixelMetric, TInt& aValue, TBool& aLast ) - { - HBufC* buffer = HBufC::NewLC( 100 ); - TPtr bufferPtr = buffer->Des(); - - switch (aPixelMetric) - { - case QStyle::PM_DockWidgetTitleMargin: - bufferPtr.Append(_L("DockTitleMargin: ")); - break; - case QStyle::PM_DockWidgetTitleBarButtonMargin: - bufferPtr.Append(_L("DockTitleBtnMargin: ")); - break; - case QStyle::PM_ButtonMargin: - bufferPtr.Append(_L("ButtonMargin: ")); - break; - case QStyle::PM_ButtonDefaultIndicator: - bufferPtr.Append(_L("ButtonDefaultIndicator: ")); - break; - case QStyle::PM_MdiSubWindowFrameWidth: - bufferPtr.Append(_L("MdiSubWndFrameW: ")); - break; - case QStyle::PM_ComboBoxFrameWidth: - bufferPtr.Append(_L("ComboBoxFrameWidth: ")); - break; - case QStyle::PM_SpinBoxFrameWidth: - bufferPtr.Append(_L("SpinBoxFrameWidth: ")); - break; - case QStyle::PM_DefaultFrameWidth: - bufferPtr.Append(_L("DefaultFrameWidth: ")); - break; - case QStyle::PM_RadioButtonLabelSpacing: - bufferPtr.Append(_L("RadioButtonLabelSpc: ")); - break; - case QStyle::PM_CheckBoxLabelSpacing: - bufferPtr.Append(_L("CheckBoxLabelSpacing: ")); - break; - case QStyle::PM_ToolTipLabelFrameWidth: - bufferPtr.Append(_L("ToolTipLabelFrameW: ")); - break; - case QStyle::PM_ListViewIconSize: - bufferPtr.Append(_L("ListViewIconSize: ")); - break; - case QStyle::PM_LargeIconSize: - bufferPtr.Append(_L("LargeIconSize: ")); - break; - case QStyle::PM_IconViewIconSize: - bufferPtr.Append(_L("IconViewIconSize: ")); - break; - case QStyle::PM_TabBarIconSize: - bufferPtr.Append(_L("TabBarIconSize: ")); - break; - case QStyle::PM_MessageBoxIconSize: - bufferPtr.Append(_L("MessageBoxIconSize: ")); - break; - case QStyle::PM_ButtonIconSize: - bufferPtr.Append(_L("ButtonIconSize: ")); - break; - case QStyle::PM_TextCursorWidth: - bufferPtr.Append(_L("TextCursorWidth: ")); - break; - case QStyle::PM_SliderLength: - bufferPtr.Append(_L("SliderLength: ")); - break; - case QStyle::PM_SliderThickness: - bufferPtr.Append(_L("SliderThickness: ")); - break; - case QStyle::PM_SliderTickmarkOffset: - bufferPtr.Append(_L("SliderTickmarkOffset: ")); - break; - case QStyle::PM_SliderControlThickness: - bufferPtr.Append(_L("SliderCntrlThickness: ")); - break; - case QStyle::PM_SliderSpaceAvailable: - bufferPtr.Append(_L("SliderSpaceAvailable: ")); - break; - case QStyle::PM_MenuBarItemSpacing: - bufferPtr.Append(_L("MenuBarItemSpacing: ")); - break; - case QStyle::PM_MenuBarHMargin: - bufferPtr.Append(_L("MenuBarHMargin: ")); - break; - case QStyle::PM_MenuBarVMargin: - bufferPtr.Append(_L("MenuBarVMargin: ")); - break; - case QStyle::PM_ToolBarItemSpacing: - bufferPtr.Append(_L("ToolBarItemSpacing: ")); - break; - case QStyle::PM_ToolBarFrameWidth: - bufferPtr.Append(_L("ToolBarFrameWidth: ")); - break; - case QStyle::PM_ToolBarItemMargin: - bufferPtr.Append(_L("ToolBarItemMargin: ")); - break; - case QStyle::PM_LayoutLeftMargin: - bufferPtr.Append(_L("LayoutLeftMargin: ")); - break; - case QStyle::PM_LayoutRightMargin: - bufferPtr.Append(_L("LayoutRightMargin: ")); - break; - case QStyle::PM_LayoutTopMargin: - bufferPtr.Append(_L("LayoutTopMargin: ")); - break; - case QStyle::PM_LayoutBottomMargin: - bufferPtr.Append(_L("LayoutBottomMargin: ")); - break; - case QStyle::PM_LayoutHorizontalSpacing: - bufferPtr.Append(_L("LayoutHSpacing: ")); - break; - case QStyle::PM_LayoutVerticalSpacing: - bufferPtr.Append(_L("LayoutVSpacing: ")); - break; - case QStyle::PM_MaximumDragDistance: - bufferPtr.Append(_L("MaxDragDistance: ")); - break; - case QStyle::PM_ScrollBarExtent: - bufferPtr.Append(_L("ScrollBarExtent: ")); - break; - case QStyle::PM_ScrollBarSliderMin: - bufferPtr.Append(_L("ScrollBarSliderMin: ")); - break; - case QStyle::PM_MenuBarPanelWidth: - bufferPtr.Append(_L("MenuBarPanelWidth: ")); - break; - case QStyle::PM_ProgressBarChunkWidth: - bufferPtr.Append(_L("ProgBarChunkWidth: ")); - break; - case QStyle::PM_TabBarTabOverlap: - bufferPtr.Append(_L("TabBarTabOverlap: ")); - break; - case QStyle::PM_TabBarTabHSpace: - bufferPtr.Append(_L("TabBarTabHSpace: ")); - break; - case QStyle::PM_TabBarTabVSpace: - bufferPtr.Append(_L("TabBarTabVSpace: ")); - break; - case QStyle::PM_TabBarBaseHeight: - bufferPtr.Append(_L("TabBarBaseHeight: ")); - break; - case QStyle::PM_TabBarBaseOverlap: - bufferPtr.Append(_L("TabBarBaseOverlap: ")); - break; - case QStyle::PM_TabBarScrollButtonWidth: - bufferPtr.Append(_L("TabBarScrollBtnWidth: ")); - break; - case QStyle::PM_TabBarTabShiftHorizontal: - bufferPtr.Append(_L("TabBarTabShiftH: ")); - break; - case QStyle::PM_TabBarTabShiftVertical: - bufferPtr.Append(_L("TabBarTabShiftV: ")); - break; - case QStyle::PM_MenuPanelWidth: - bufferPtr.Append(_L("MenuPanelWidth: ")); - break; - case QStyle::PM_MenuHMargin: - bufferPtr.Append(_L("MenuHMargin: ")); - break; - case QStyle::PM_MenuVMargin: - bufferPtr.Append(_L("MenuVMargin: ")); - break; - case QStyle::PM_MenuDesktopFrameWidth: - bufferPtr.Append(_L("MenuFrameWidth: ")); - break; - case QStyle::PM_SmallIconSize: - bufferPtr.Append(_L("SmallIconSize: ")); - break; - case QStyle::PM_FocusFrameHMargin: - bufferPtr.Append(_L("FocusFrameHMargin: ")); - break; - case QStyle::PM_FocusFrameVMargin: - bufferPtr.Append(_L("FocusFrameVMargin: ")); - break; - case QStyle::PM_ToolBarIconSize: - bufferPtr.Append(_L("ToolBarIconSize: ")); - break; - case QStyle::PM_TitleBarHeight: // use titlepane height - bufferPtr.Append(_L("TitleBarHeight: ")); - break; - case QStyle::PM_IndicatorWidth: - bufferPtr.Append(_L("IndicatorWidth: ")); - break; - case QStyle::PM_IndicatorHeight: - bufferPtr.Append(_L("IndicatorHeight: ")); - break; - case QStyle::PM_ExclusiveIndicatorHeight: - bufferPtr.Append(_L("ExclusiveIndHeight: ")); - break; - case QStyle::PM_ExclusiveIndicatorWidth: - bufferPtr.Append(_L("ExclusiveIndWidth: ")); - break; - case QStyle::PM_HeaderMargin: // not in S60 - bufferPtr.Append(_L("HeaderMargin: ")); - break; - case QStyle::PM_MenuScrollerHeight: // not in S60 - bufferPtr.Append(_L("MenuScrollerHeight: ")); - break; - case QStyle::PM_MenuTearoffHeight: // not in S60 - bufferPtr.Append(_L("MenuTearoffHeight: ")); - break; - case QStyle::PM_DockWidgetFrameWidth: // not in S60 - bufferPtr.Append(_L("DockFrameWidth: ")); - break; - case QStyle::PM_DockWidgetSeparatorExtent: // not in S60 - bufferPtr.Append(_L("DockSepExtent: ")); - break; - case QStyle::PM_MdiSubWindowMinimizedWidth: //no such thing in S60 - bufferPtr.Append(_L("MdiSubWndMinWidth: ")); - break; - case QStyle::PM_HeaderGripMargin: // not in S60 - bufferPtr.Append(_L("HeaderGripMargin: ")); - break; - case QStyle::PM_SplitterWidth: // not in S60 - bufferPtr.Append(_L("SplitterWidth: ")); - break; - case QStyle::PM_ToolBarExtensionExtent: // not in S60 - bufferPtr.Append(_L("ToolBarExtExtent: ")); - break; - case QStyle::PM_ToolBarSeparatorExtent: // not in S60 - bufferPtr.Append(_L("ToolBarSepExtent: ")); - break; - case QStyle::PM_ToolBarHandleExtent: // not in s60 - bufferPtr.Append(_L("ToolBarHandleExtent: ")); - break; - case QStyle::PM_MenuButtonIndicator: // none??? - bufferPtr.Append(_L("MenuButtonIndicator: ")); - break; - case QStyle::PM_ButtonShiftHorizontal: //none in 3.x - bufferPtr.Append(_L("ButtonShiftHorizontal: ")); - break; - case QStyle::PM_ButtonShiftVertical: // none in 3.x - bufferPtr.Append(_L("ButtonShiftVertical: ")); - break; - case QStyle::PM_TabBar_ScrollButtonOverlap: // not used in S60 - tab arrows are on left and right side of tab group - not together - bufferPtr.Append(_L("TabScrollBtnOverlap: ")); - break; - case QStyle::PM_SizeGripSize: // use default - bufferPtr.Append(_L("SizeGripSize: ")); - break; - case QStyle::PM_DockWidgetHandleExtent: - bufferPtr.Append(_L("DockWdgtHandleExt: ")); - break; - case QStyle::PM_CheckListButtonSize: - bufferPtr.Append(_L("CheckListButtonSize: ")); - break; - case QStyle::PM_CheckListControllerSize: - bufferPtr.Append(_L("CheckListCntlerSize: ")); - break; - case QStyle::PM_DialogButtonsSeparator: - bufferPtr.Append(_L("DialogBtnSeparator: ")); - break; - case QStyle::PM_DialogButtonsButtonWidth: - bufferPtr.Append(_L("DialogBtnWidth: ")); - break; - case QStyle::PM_DialogButtonsButtonHeight: - bufferPtr.Append(_L("DialogBtnHeight: ")); - break; - case QStyle::PM_HeaderMarkSize: - bufferPtr.Append(_L("HeaderMarkSize: ")); - break; - case QStyle::PM_SpinBoxSliderHeight: - bufferPtr.Append(_L("SpinBoxSliderHeight: ")); - break; - case QStyle::PM_DefaultTopLevelMargin: - bufferPtr.Append(_L("DefaultTopLvlMrg: ")); - break; - case QStyle::PM_DefaultChildMargin: - bufferPtr.Append(_L("DefaultChildMrg: ")); - break; - case QStyle::PM_DefaultLayoutSpacing: - bufferPtr.Append(_L("DefaultlayoutSpc: ")); - break; - case QStyle::PM_TabCloseIndicatorWidth: - bufferPtr.Append(_L("TabCloseIndWidth: ")); - break; - case QStyle::PM_TabCloseIndicatorHeight: - bufferPtr.Append(_L("TabCloseIndHeight: ")); - break; - case QStyle::PM_ScrollView_ScrollBarSpacing: - bufferPtr.Append(_L("ScrollViewBarSpc: ")); - break; - case QStyle::PM_SubMenuOverlap: - bufferPtr.Append(_L("SubMenuOverlap: ")); - break; - case QStyle::PM_Custom_FrameCornerHeight: - bufferPtr.Append(_L("C_FrCornerHeight: ")); - break; - case QStyle::PM_Custom_FrameCornerWidth: - bufferPtr.Append(_L("C_FrCornerWidth: ")); - break; - case QStyle::PM_Custom_ThinLineWidth: - bufferPtr.Append(_L("C_ThinLineWidth: ")); - break; - case QStyle::PM_Custom_BoldLineWidth: - bufferPtr.Append(_L("C_BoldLineWidth: ")); - break; - case QStyle::PM_Custom_MessageBoxHeight: - bufferPtr.Append(_L("C_MsgBoxHeight: ")); - break; - default: - bufferPtr.Append(_L("Default: ")); - break; - } - - if (iFileOutputOn) - { - bufferPtr.Append('\t'); - } - bufferPtr.AppendNum(aValue); - bufferPtr.Append(_L(" ")); - ShowL( *buffer, aLast, iFileOutputOn ); - CleanupStack::PopAndDestroy( buffer ); - } - -void CPixelMetricsMapperAppUi::ClearL() - { - iView->ClearL(); - } - -void CPixelMetricsMapperAppUi::CreateHeaderFileL() const - { - // Open/create resulting file. - RFile file; - HBufC* layoutFile = HBufC::NewLC( KMaxFileName ); - *layoutFile = KLayoutSourceFileAndPath; - TFileName fileName = *layoutFile; - CleanupStack::PopAndDestroy(layoutFile); - RFs& fs = CEikonEnv::Static()->FsSession(); - TInt error = file.Open(fs,fileName, EFileWrite|EFileShareAny|EFileStreamText ); - if (error==KErrNotFound) - { - file.Create(fs,fileName, EFileWrite|EFileShareAny|EFileStreamText); - } - CleanupClosePushL( file ); - file.SetSize( 0 ); - - // Make all writes as from textfile. - TFileText textFile; - textFile.Set( file ); - textFile.Seek( ESeekStart ); - - // Take all layout files from private folder. - CDir* dirList; - User::LeaveIfError(fs.GetDir( - KPixelMetricsDataFiles, - KEntryAttMaskSupported, - ESortByName, - dirList)); - - TMySmallBuffer bufferLayoutHdr; - TMyBigBuffer bufferPMData; - TInt fileCount = dirList->Count(); - for (TInt i=0;i 0) - { - bufferLayoutHdr = bufferLayoutHdr.Left(bufferLayoutHdr.Length()-2); - bufferPMData = bufferPMData.Left(bufferPMData.Length()-2); - textFile.Write(bufferLayoutHdr); - textFile.Write(KCRLF); - textFile.Write(bufferPMData); - } - delete dirList; - - CleanupStack::PopAndDestroy(); //file - } - -TFileName CPixelMetricsMapperAppUi::CreateLayoutNameL(TFileText& aFileHandle) const -{ - aFileHandle.Seek(ESeekStart); - // Layout data is deployed like this: - // first line - height - // second line - width - TFileName lines; - TFileName layoutName; - - TInt height = -666; - TInt width = -666; - // Collect name information. - for (TInt i=0; i<6; i++) - { - User::LeaveIfError(aFileHandle.Read(lines)); - // Remove pixel metrics name and ":" - lines = lines.Mid(lines.Find(KColon)+1); - // Remove tab - lines = lines.Mid(lines.Find(KTab)+1); - TLex myLexer(lines); - TInt error = KErrNone; - if (i==0) //height is first - { - error = myLexer.Val(height); - } - if (i==1) //width is second - { - error = myLexer.Val(width); - } - User::LeaveIfError(error); - } - - // Interpret results and write name to buffer. - if ( (width == 240 && height == 320) || - (width == 320 && height == 240)) - { - layoutName.Append(_L("QVGA ")); - } - else if ( (width == 360 && height == 640) || - (width == 640 && height == 360)) - { - layoutName.Append(_L("NHD ")); - } - else if ( (width == 480 && height == 640) || - (width == 640 && height == 480)) - { - layoutName.Append(_L("VGA ")); - } - else if ( (width == 800 && height == 352) || - (width == 352 && height == 800)) - { - layoutName.Append(_L("E90 ")); - } - else if ( (width == 800 && height == 480) || - (width == 480 && height == 800) || - (width == 848 && height == 480) || - (width == 480 && height == 848) || - (width == 854 && height == 480) || - (width == 480 && height == 854)) - { - layoutName.Append(_L("WVGA ")); - } - else if ( (width == 480 && height == 320) || - (width == 320 && height == 480) || - (width == 640 && height == 240) || - (width == 240 && height == 640)) - { - layoutName.Append(_L("HVGA ")); - } - else - { - layoutName.Append(_L("Unknown ")); - layoutName.AppendNum(height); - layoutName.Append(_L("x")); - layoutName.AppendNum(width); - } - if (width > height) - { - layoutName.Append(_L("Landscape")); - } - else - { - layoutName.Append(_L("Portrait")); - } - return layoutName; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CEikAppUi* CPixelMetricsMapperDocument::CreateAppUiL() - { - return( new ( ELeave ) CPixelMetricsMapperAppUi ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperDocument::ConstructL() - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TUid CPixelMetricsMapperApplication::AppDllUid() const - { - return KUidPMMapperApplication; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CApaDocument* CPixelMetricsMapperApplication::CreateDocumentL() - { - CPixelMetricsMapperDocument* document = - new( ELeave ) CPixelMetricsMapperDocument( *this ); - CleanupStack::PushL( document ); - document->ConstructL(); - CleanupStack::Pop(); - return( document ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= -// --------------------------------------------------------- -// NewApplication implements -// -// Creates an instance of application. -// -// Returns: an instance of CVtUiApp -// --------------------------------------------------------- -// -LOCAL_C CApaApplication* NewApplication() - { - return new CPixelMetricsMapperApplication; - } - -// --------------------------------------------------------- -// E32Main implements -// -// It is called when executable is started. -// -// Returns: error code. -// --------------------------------------------------------- -// -GLDEF_C TInt E32Main() - { - return EikStart::RunApplication( NewApplication ); - } - -// End of File diff --git a/util/s60pixelmetrics/pm_mapperapp.h b/util/s60pixelmetrics/pm_mapperapp.h deleted file mode 100644 index 62c5a3addb..0000000000 --- a/util/s60pixelmetrics/pm_mapperapp.h +++ /dev/null @@ -1,190 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: http://www.qt-project.org/ -** -** This file is part of the utility applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PMMAPPERAPP_H -#define PMMAPPERAPP_H - -// INCLUDES -#include -#include -#include -#include - -// CONSTANTS -const TUid KUidPMMapperApplication = { 0x2002121F }; - - -// FORWARD DECLARATIONS -class CPixelMetricsMapperView; -class MAknsSkinInstance; - -// CLASS DECLARATION -/** -* CPixelMetricsMapperDocument -*/ -class CPixelMetricsMapperDocument : public CEikDocument - { - public: // Constructors and destructor - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - /** - * Constructor. - */ - CPixelMetricsMapperDocument( CEikApplication& aApp ) - : CEikDocument( aApp ) {} - - /** - * Destructor. - */ - ~CPixelMetricsMapperDocument(){} - - public: // Functions from base classes - - /** - * From CEikDocument. - */ - CFileStore* OpenFileL( - TBool /*aDoOpen*/, - const TDesC& /*aFilename*/, - RFs& /*aFs*/ ) - { - return NULL; - } - - private: // Functions from base classes - - /** - * From CEikDocument. - */ - CEikAppUi* CreateAppUiL(); - }; - -/** -* CPixelMetricsMapperAppUi -*/ -class CPixelMetricsMapperAppUi : public CAknViewAppUi - { - public: // Constructors and destructor - - /** - * Constructor. - */ - CPixelMetricsMapperAppUi(); - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - /** - * Destructor. - */ - ~CPixelMetricsMapperAppUi(); - - private: // Functions from base classes - - /** - * From CEikAppUi. - */ - void HandleCommandL(TInt aCommand); - - /** - * From CEikAppUi. - */ - virtual TKeyResponse HandleKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ); - - private: - - /** - * Shows text given. - */ - void ShowL( const TDesC& aText, TBool& aLast, const TBool& aFileOutput = EFalse ); - void ShowSingleValueL(TInt& aPixelMetric, TInt& aValue, TBool& aLast); - void ClearL(); - void CreateHeaderFileL() const; - - TFileName CreateLayoutNameL(TFileText& aFileHandle) const; - - private: // Data - - // Test view. - CPixelMetricsMapperView* iView; - - CEikDialog* iDialog; - - TBool iFileOutputOn; - TBool iMode; - - CFbsBitmap* icon; - CFbsBitmap* iconMask; - - }; - - -/** -* CPixelMetricsMapperApplication -*/ -class CPixelMetricsMapperApplication : public CEikApplication - { - private: // Functions from base classes - - /** - * From CApaApplication. - */ - CApaDocument* CreateDocumentL(); - - /** - * From CApaApplication. - */ - TUid AppDllUid() const; - }; - - -#endif // PMMAPPERAPP_H - - -// End of File diff --git a/util/s60pixelmetrics/pm_mapperview.cpp b/util/s60pixelmetrics/pm_mapperview.cpp deleted file mode 100644 index c1a2eb836f..0000000000 --- a/util/s60pixelmetrics/pm_mapperview.cpp +++ /dev/null @@ -1,375 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: http://www.qt-project.org/ -** -** This file is part of the utility applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// INCLUDE FILES - -#include -#include -#include -#include - -#include "pm_mapper.hrh" -#include -#include "pm_mapperView.h" -#include "pm_mapperApp.h" - -#include -#include -#include - -// ----------------------------------------------------------------------------- -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPixelMetricsMapperViewContainer::CPixelMetricsMapperViewContainer(): iCount( 1 ) - { - } - - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperViewContainer::ConstructL( const TRect& aRect ) - { - CreateWindowL(); - SetCanDrawOutsideRect(); - - iTexts = new( ELeave ) CDesCArrayFlat( 10 ); - iTexts->AppendL( _L( "\tStarted." ) ); - - iListbox = new( ELeave ) CAknSingleStyleListBox; - iListbox->SetContainerWindowL( *this ); - iListbox->ConstructL( this, EAknListBoxViewerFlags ); - - iListbox->Model()->SetItemTextArray( iTexts ); - iListbox->SetRect( TRect( aRect.Size() ) ); - - iListbox->CreateScrollBarFrameL( ETrue ); - iListbox->ScrollBarFrame()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EOn, - CEikScrollBarFrame::EOn ); - - SetRect( aRect ); - iListbox->ActivateL(); - ActivateL(); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperViewContainer::ShowL( const TDesC& aString, TBool& aLast, const TBool& aFileOutput ) - { - MDesCArray* itemList = iListbox->Model()->ItemTextArray(); - CDesCArray* itemArray = ( CDesCArray* ) itemList; - - itemArray->AppendL( aString ); - - iListbox->HandleItemAdditionL(); - iListbox->SetCurrentItemIndex( iCount ); - iCount++; - if ( aLast ) - { - if (aFileOutput) - { - RFile file; - RFs& fs = CEikonEnv::Static()->FsSession(); - TFileName fileName =_L("Layout_"); - - TRect screenRect; - AknLayoutUtils::LayoutMetricsRect( - AknLayoutUtils::EApplicationWindow, - screenRect ); - - // Add screen dimensions - TInt height = screenRect.Height(); - TInt width = screenRect.Width(); - fileName.AppendNum(height); - fileName.Append('_'); - fileName.AppendNum(width); - - fileName.Append(_L(".txt")); - - TInt err=file.Open(fs,fileName,EFileStreamText|EFileWrite|EFileShareAny); - if (err==KErrNotFound) // file does not exist - create it - err=file.Create(fs,fileName,EFileStreamText|EFileWrite|EFileShareAny); - else - file.SetSize(0); //sweep the file - TFileText textFile; - textFile.Set(file); - err = textFile.Seek(ESeekStart); - if (err) User::InfoPrint(_L("File corrupted")); - - // Finally loop through all the entries: - TInt idx = 0; - for(;idx!=itemList->MdcaCount();idx++) - { - err = textFile.Write(itemList->MdcaPoint(idx)); - if (err) User::InfoPrint(_L("File corrupted")); - } - file.Close(); - } - DrawNow(); - } - } - -void CPixelMetricsMapperViewContainer::ClearL() - { - MDesCArray* itemList = iListbox->Model()->ItemTextArray(); - CDesCArray* itemArray = ( CDesCArray* ) itemList; - - itemArray->Reset(); - - iListbox->HandleItemAdditionL(); - iCount = 0; - DrawNow(); - } - - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CPixelMetricsMapperViewContainer::~CPixelMetricsMapperViewContainer() - { - delete iListbox; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperViewContainer::SizeChanged() - { - CCoeControl::SizeChanged(); - if ( iListbox ) - { - iListbox->SetRect( Rect() ); - } - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TInt CPixelMetricsMapperViewContainer::CountComponentControls() const - { - return 1; - } - - -// ----------------------------------------------------------------------------- -// CTestAppViewContainer::ComponentControl -// -// -// ----------------------------------------------------------------------------- -// -CCoeControl* CPixelMetricsMapperViewContainer::ComponentControl( - TInt /*aIndex*/ ) const - { - return iListbox; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperViewContainer::Draw( const TRect& /*aRect*/ ) const - { - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperViewContainer::HandleControlEventL( - CCoeControl* /*aControl*/, - TCoeEvent /*aEventType*/ ) - { - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TKeyResponse CPixelMetricsMapperViewContainer::OfferKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - if (aKeyEvent.iCode == EKeyUpArrow || - aKeyEvent.iCode == EKeyDownArrow ) - { - return iListbox->OfferKeyEventL( aKeyEvent, aType ); - } - return EKeyWasNotConsumed; - } - -void CPixelMetricsMapperViewContainer::HandleResourceChange(TInt aType) - { - CCoeControl::HandleResourceChange( aType ); - if ( aType == KEikDynamicLayoutVariantSwitch ) - { - TRect mainPaneRect; - AknLayoutUtils::LayoutMetricsRect( - AknLayoutUtils::EMainPane, - mainPaneRect ); - SetRect( mainPaneRect ); - - } - if (iListbox) - iListbox->HandleResourceChange(aType); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperView::ShowL( const TDesC& aString, TBool& aLast, const TBool& aFileOutput ) - { - iView->ShowL( aString, aLast, aFileOutput ); - } - -void CPixelMetricsMapperView::ClearL() - { - iView->ClearL(); - } - - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperView::ConstructL() - { - BaseConstructL( R_PMMAPPER_VIEW ); - } - - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CPixelMetricsMapperView::~CPixelMetricsMapperView() - { - if ( iView ) - { - AppUi()->RemoveFromViewStack( *this, iView ); - } - delete iView; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TUid CPixelMetricsMapperView::Id() const - { - return TUid::Uid( EPMMapperViewId ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperView::HandleCommandL( TInt aCommand ) - { - AppUi()->HandleCommandL( aCommand ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperView::HandleStatusPaneSizeChange() - { - if ( iView ) - { - TRect cr = ClientRect(); - iView->SetRect( cr ); - } - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperView::DoActivateL( - const TVwsViewId& /*aPrevViewId*/, - TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/ ) - { - iView = new( ELeave ) CPixelMetricsMapperViewContainer; - - TRect cr = ClientRect(); - iView->ConstructL( cr ); - AppUi()->AddToViewStackL( *this, iView ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CPixelMetricsMapperView::DoDeactivate() - { - if (iView) - { - AppUi()->RemoveFromViewStack( *this, iView ); - } - delete iView; - iView = NULL; - } - - -// End of File diff --git a/util/s60pixelmetrics/pm_mapperview.h b/util/s60pixelmetrics/pm_mapperview.h deleted file mode 100644 index 58942344a7..0000000000 --- a/util/s60pixelmetrics/pm_mapperview.h +++ /dev/null @@ -1,228 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: http://www.qt-project.org/ -** -** This file is part of the utility applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PMMAPPERVIEW_H -#define PMMAPPERVIEW_H - - -// INCLUDES -#include -#include - -// CONSTANTS -// FORWARD DECLARATIONS -class CAknSingleStyleListBox; -class CAknSettingStyleListBox; - -// CLASS DECLARATION - -/** -* CPixelMetricsMapperViewContainer -* -*/ -class CPixelMetricsMapperViewContainer -: public CCoeControl, - public MCoeControlObserver - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CPixelMetricsMapperViewContainer(); - - /** - * Symbian 2nd phase constructor. - * - * @param aRect Rectangle. - */ - void ConstructL( const TRect& aRect ); - - /** - * Destructor. - */ - ~CPixelMetricsMapperViewContainer(); - - - public: // New functions - - /** - * Show the given string. - * - * @param aString The string to be shown. - */ - void ShowL( const TDesC& aString, TBool& aLast, const TBool& aFileOutput = EFalse ); - - void ClearL(); - - - public: // Functions from base classes - - /** - * From CCoeControl. - */ - TKeyResponse OfferKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ); - - - void HandleResourceChange(TInt aType); - - - private: // Functions from base classes - - /** - * From CCoeControl. - */ - void SizeChanged(); - - /** - * From CCoeControl. - */ - TInt CountComponentControls() const; - - /** - * From CCoeControl. - */ - CCoeControl* ComponentControl( TInt aIndex ) const; - - /** - * From CCoeControl. - */ - void Draw( const TRect& aRect ) const; - - - private: // Functions from base classes - - /** - * From MCoeControlObserver. - */ - void HandleControlEventL( - CCoeControl* aControl, - TCoeEvent aEventType ); - - - private: // Data - - // Texts. - CDesCArray* iTexts; - - // Count. - TInt iCount; - - // Listbox. - CAknSingleStyleListBox* iListbox; - - }; - - - -/** -* CPixelMetricsMapperView -* -* -* @since 1.0 -*/ -class CPixelMetricsMapperView : public CAknView - { - public: // Constructors and destructor - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - /** - * Destructor. - */ - ~CPixelMetricsMapperView(); - - - public: // Functions from base classes - - /** - * From CAknView. - */ - TUid Id() const; - - /** - * From CAknView. - */ - void HandleCommandL( TInt aCommand ); - - /** - * From CAknView. - */ - void HandleStatusPaneSizeChange(); - - /** - * From CAknView. - */ - void ShowL( const TDesC& aString, TBool& aLast, const TBool& aFileOutput =EFalse ); - void ClearL(); - - - private: // from CAknView - - /** - * From CAknView. - */ - void DoActivateL( - const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage ); - - /** - * From CAknView. - */ - void DoDeactivate(); - - - private: // Data - - // The view container. - CPixelMetricsMapperViewContainer* iView; - - }; - -#endif // PMMAPPERVIEW_H - -// End of File -- cgit v1.2.3