diff -r 90fe62538f66 -r 5f281e37a2f5 systemswuis/touchscreencalib/inc/TouchScreenCalibAppUi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/systemswuis/touchscreencalib/inc/TouchScreenCalibAppUi.h Wed Sep 01 12:33:30 2010 +0100 @@ -0,0 +1,202 @@ +/* +* Copyright (c) 2006 - 2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0"" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: AppUi class of the application. +* +*/ + + +#ifndef TOUCHSCREENCALIBAPPUI_H +#define TOUCHSCREENCALIBAPPUI_H + +// SYSTEM INCLUDES +#include +#include +#include +#include +#include +#include +#include +#include + +// CONSTANTS +const TInt KConvertGetCase = 0; +const TInt KConvertSaveCase = 1; + +const TInt KUnknownOrientation = 0; +const TInt KPortraitOrientation = 1; +const TInt KLandscapeOrientation = 2; + +// FORWARD DECLARATIONS +class TTouchScreenCalibLayout + { +public: + TAknLayoutRect iAnimImageLayout1; + TAknLayoutRect iAnimImageLayout2; + TAknLayoutRect iAnimImageLayout3; + TAknLayoutRect iAnimImageLayout4; + }; + +class CTouchScreenCalibView; +class CTouchScreenCalibPubSubObserver; +/** +* 'AppUi' class. +* +*/ +class CTouchScreenCalibAppUi : public CAknAppUi, CCoeControl +{ + public: // Constructors and destructor + + /** + * C++ default constructor. + */ + CTouchScreenCalibAppUi(); + + /** + * Destructor. + */ + ~CTouchScreenCalibAppUi(); + + // from CCoeAppUiBase + void PrepareToExit(); + + /** + * Handles key events + * @param TKeyEvent key event + * @param TEventCode event code + * @since S60 3.2 + */ + void HandleKeyL( const TKeyEvent& aKeyEvent, TEventCode aType ); + + /** + * Handles pointer events + * @param TPoint co-ordinates + * @since S60 3.2 + */ + void HandlePointerL( TPoint aPos ); + + /** + * Check current point number + * @since S60 3.2 + * @return TInt, point number + */ + TInt GetCalibrationStep(); + + /** + * Get rect of current tap animation or image + * @since S60 3.2 + * @param TInt, point number + * @return TRect, animation or image rect. + */ + TRect GetAnimImageRect(TInt aPointNumber = 0); + + /** + * From CAknAppUi, called when screen layout changes + */ + void HandleScreenDeviceChangedL(); + + /** + * Check if first boot is going on + * @since S60 3.2 + * @return. ETrue if first boot, otherwise EFalse + */ + TBool FirstBoot(); + + protected: + /* + * Handles changes to the application when it + * switches to or from the foreground. + */ + virtual void HandleForegroundEventL(TBool aForeground); + + private: + /** + * EPOC default constructor. + */ + void ConstructL(); + + /** + * Update display + * @since S60 3.2 + */ + void UpdateL(); + + /** + * Checks layout orientation + * @since S60 3.2 + * @return TBool. ETrue if orientation same in driver native level and window level + */ + TBool IsCorrectOrientation(TRect aRect); + + /** + * Convert calibration or tapped points to different layout orientation + * @since S60 3.2 + * @param Points + * @param Convert case. + * @return Calibration points. KConvertGetCase or KConvertSaveCase. + */ + TDigitizerCalibration ConvertToCorrectOrientation(TDigitizerCalibration aPoints, + TInt aConvertCase); + /** + * Get calibration points + * @since S60 3.2 + * @return Calibration points + */ + TDigitizerCalibration CalibrationPoints(); + + /** + * Change to next calibration point + * @since S60 3.2 + */ + void NextCalibrationStepL(); + + /** + * Saves calibration + * @since S60 3.2 + */ + void SaveCalibration(); + + /** + * Restart calibration at first point + * @since S60 3.2 + */ + void ResetCalibrationStepsL(); + + /** + * Sets tap points to 0 values + * @since S60 3.2 + */ + void ResetTapPoints(); + + TDigitizerCalibration ChangeOrientation(TDigitizerCalibration aSourcePoints, + TPoint aDestReso); + + + void SetOrientation(); + + private: //Data + CTouchScreenCalibView* iTouchScreenCalibView; //owns + CTouchScreenCalibPubSubObserver* iTouchScreenCalibPubSubObserver; //owns + TDigitizerCalibration iCalibrationPoints; + TDigitizerCalibration iTapPoints; + TInt iCurrentCalibrationStep; + TBool iExitting; + TTouchScreenCalibLayout iTouchScreenCalibLayout; + TBool iCalibrationDone; + TInt iNativeOrientation; + TBool iCalibrationCancel; +}; + +#endif // TOUCHSCREENCALIBAPPUI_H + +// End of file