diff -r f1bdd6b078d1 -r 2cb9bae34d17 textinput/peninputcommonctrls/inc/peninputrangebar/peninputrangebar.h --- a/textinput/peninputcommonctrls/inc/peninputrangebar/peninputrangebar.h Tue Jul 06 14:38:41 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,616 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Control group of different input ranges -* -*/ - - -#ifndef C_CAKNFEPCTRLRANGEBAR_H -#define C_CAKNFEPCTRLRANGEBAR_H - -// system includes -#include - -// forward declarations -class CFbsBitmap; -class TResourceReader; -class CAknFepCtrlButton; -class CAknFepCtrlCommonButton; -// class declaration -/** - * This is the class definition for control group of different - * input ranges - * - * @lib fepcommonctrls.lib - * @since S60 v3.2 - */ -class CAknFepCtrlRangeBar : public CControlGroup , public MEventObserver - { -public: - - /** - * Style of range bar, can be horizontal or vertical - */ - enum TButtonGroupStyle - { - EBtnGroupHorizontal, - EBtnGroupVertical - }; - - /** - * Action style of range bar, can be hide or highlight - */ - enum TRangeBarActionStyle - { - ERangeBarActionStyleHide, // all indicators action style are unitary: hide - ERangeBarActionStyleHighLight, // all indicators action style are unitary: highlight - ERangeBarUsingIndicatorStyle // every indicator can have different action style - }; - - /** - * Action style of indicator, can be hide or visible - * for using indicaotr action style, every indicator's position is fixed - */ - enum TIndicatorActionStyle - { - EIndicatorActionStyleHide, // hide - EIndicatorActionStyleHighLight, // visible and highlight - EIndicatorActionStyleNormal // just like normal button press, highlight not latched - }; - - /** - * Two-phased constructor. - * - * @since S60 v3.2 - * @param aUiLayout An instance of CFepUiLayout - * @param aUtils An instance of the resource environment - * @param aControlId The control id of the Range Bar - * @param aStyle The style of Range Bar, can be vertical or horizontal - * @return The pointer point to CAknFepCtrlRangeBar type object - */ - IMPORT_C static CAknFepCtrlRangeBar* NewL(CFepUiLayout* aUiLayout, - TInt aControlId , - TButtonGroupStyle aStyle); - - /** - * Two-phased constructor. - * - * @since S60 v3.2 - * @param aUiLayout An instance of CFepUiLayout - * @param aUtils An instance of the resource environment - * @param aControlId A control id of the Range Bar - * @param aStyle the style of Range Bar, can be vertical or horizontal - * @return The pointer point to CAknFepCtrlRangeBar type object - */ - IMPORT_C static CAknFepCtrlRangeBar* NewLC(CFepUiLayout* aUiLayout, - TInt aControlId , - TButtonGroupStyle aStyle); - - /** - * Destructor. - * - * @since S60 v3.2 - */ - IMPORT_C virtual ~CAknFepCtrlRangeBar(); - - /** - * This function creates the Range Bar from resource type AKN_FEP_INPUTRANGE_LIST. - * The function will leave if the count of input ranges is invalid - * - * @since S60 v3.2 - * @param aReader A resource reader against AKN_FEP_INPUTMODE_LIST - * @return None - */ - IMPORT_C void ConstructFromResourceL(TResourceReader& aReader); - - /** - * Refresh the curent Mode Control aera - * - * @since S60 v3.2 - * @return None - */ - IMPORT_C void RefreshUI(); - - /** - * Handles the SizeChanged event - * - * @since S60 v3.2 - * @return None - */ - IMPORT_C void SizeChanged(const TRect aRect); - - /** - * Set active input range - * - * @since S60 v3.2 - * @param aRange A specified input range - * @return ETrue if given input range set successfully, EFalse otherwise - */ - IMPORT_C TBool SetRange(const TInt aRange); - - /** - * Set mode of given range - * - * @since S60 v3.2 - * @param aRange A specified input range - * @param aModeIndex The mode index in given range - * @return None - */ - IMPORT_C void SetCaseL(const TInt aRange, const TInt aModeIndex); - - /** - * Set permitted input ranges - * - * @since S60 v3.2 - * @param aPermitted Used to decide which input ranges permitted - * @return None - */ - IMPORT_C void SetPermittedRanges(const TInt aPermitted); - - /** - * Permit given range or not - * - * @since S60 v3.2 - * @param aRangeId The range id of given range - * @param aPermit Used to enable given range or not - * @return None - */ - IMPORT_C void SetPermittedRange(const TInt aRangeId, TBool aPermit); - - /** - * Permit given range & case or not - * - * @since S60 v3.2 - * @param aRangeId The range id of given range - * @param aRealCaseId The real case id in given range - * @param aPermit Used to enable given range & case or not - * @return None - */ - IMPORT_C void SetPermittedCase(const TInt aRangeId, - const TInt aRealCaseId, - TBool aPermit); - - /** - * Hide given range, used when whole rangebar's actions tyle is - * hide or highlight - * - * @since S60 v3.2 - * @param aRange Given input range to be hide - * @return KErrNone if the button represent given range hided successfully, - * otherwise system wide error codes - */ - IMPORT_C void HideRange(const TInt aRange); - - /** - * Hide given range, function only used when whole range bar's action - * style is using indicator style - * - * @since S60 v3.2 - * @param aRange Given input range to be hide - * @return None - */ - IMPORT_C void HideRangeUsingIndicatorStyle(const TInt aRange); - - /** - * Show given range, used when whole rangebar's action style is - * hide or highlight - * - * @since S60 v3.2 - * @param aRange Given range to be shown - * @return None - */ - IMPORT_C void ShowRange(const TInt aRange); - - /** - * Show given range, function only used when whole range bar's action - * style is using indicator style - * - * @since S60 v3.2 - * @param aRange Given range to be shown - * @return None - */ - IMPORT_C void ShowRangeUsingIndicatorStyle(const TInt aRange); - - /** - * Add new input range - * - * @since S60 v3.2 - * @param aReader Given resource reader for new input range - * @return None - */ - IMPORT_C void AddRangeL(TResourceReader& aReader); - - /** - * Get current real case of given Range - * - * @since S60 v3.2 - * @param aRange Given range - * @return Current real case of given range - */ - IMPORT_C TInt GetCase(TInt aRange) const; - - /** - * Set font of range bar, this function should be called - * by container of range bar - * - * @since S60 v3.2 - * @param aFont The font to be set for range bar - * @return None - */ - IMPORT_C void SetFont(const CFont* aFont); - - /** - * Move range bar according to offset - * - * @since S60 v3.2 - * @param aOffset The moving offset - * @return None - */ - IMPORT_C void Move(const TPoint& aOffset); - - /** - * Set event id which will be sent out when range button is click - * - * @since S60 v3.2 - * @param aEventId the event id - * @return None - */ - IMPORT_C void SetEventIdForRange(TInt aEventId); - - /** - * Set event id which will be sent out when case button is click - * - * @since S60 v3.2 - * @param aEventId the event id - * @return None - */ - IMPORT_C void SetEventIdForCase(TInt aEventId); - - /** - * Display all ranges whether it is IsHide - * - * @since S60 v3.2 - * @return None - */ - IMPORT_C void ShowAllRanges(); - - /** - * DrawRangeBar - * - * @since S60 v3.2 - * @return None - */ - IMPORT_C void Draw(); - - /** - * SetActionStyle - * - * @since S60 v3.2 - * @param aActionStyle action style - * @return None - */ - IMPORT_C void SetActionStyle(TRangeBarActionStyle aActionStyle); - - /** - * ActiveRange - * - * @since S60 v3.2 - * @param aRange range to be activated - * @return None - */ - IMPORT_C void ActiveRange(TInt aRange); - - /** - * Get the current input range - * - * @since S60 v3.2 - * @return Current Input Range - */ - inline TInt InputRange() const; - - /** - * Set display style of range bar - * - * @since S60 v3.2 - * @param aNewStyle The style of range bar, can be vertical or horizontal - * @return None - */ - inline void SetStyle(const TButtonGroupStyle aNewStyle); - - /** - * Get display style of range bar - * - * @since S60 v3.2 - * @return Current display style of range bar - */ - inline TInt Style() const; - - /** - * Set layout rect of range bar, this function should be called - * by container of range bar - * - * @since S60 v3.2 - * @param aRect The layout rect to be set for range bar - * @return None - */ - inline void SetCellRect(const TRect aRect); - - /** - * Set display cell rects - * - * @since S60 v3.2 - * @return None - */ - IMPORT_C void SetDispalyCellRectsL( const RArray& aRects, - const RArray& aInnerRects ); - - -protected: - - /** - * From MEventObserver. - * Handle event - * - * @since S60 v3.2 - * @param aEventType The event type - * @param aCtrl The pointer points to control who sends event - * @param aEventData The event data - * @return None - */ - IMPORT_C void HandleControlEvent(TInt aEventType, CFepUiBaseCtrl* aCtrl, - const TDesC& aEventData); - - /** - * C++ default constructor. - * - * @since S60 v3.2 - * @param aUiLayout An instance of CFepUiLayout - * @param aControlId The control id of the Range Bar - * @param aStyle The style of Range Bar, vertical or horizontal - */ - IMPORT_C CAknFepCtrlRangeBar(CFepUiLayout* aUiLayout, TInt aControlId, - TButtonGroupStyle aStyle); - - /** - * By default Symbian 2nd phase constructor is private. - * - * @since S60 v3.2 - * @param aUtils An instance of the resource environment - * @return None - */ - IMPORT_C void ConstructL(); - - /** - * handle pointer down event. - * - * @since S60 v3.2 - * @param aPoint - * @return control - */ - virtual CFepUiBaseCtrl* HandlePointerDownEventL(const TPoint& aPoint); -public: // data - - /** - * Position of the default indicator - */ - TRect iIndicatorRect; - -protected: // data - - /** - * This class declares the range indicator - * Purpose of this class is to save some information for each indicator - * - * @since S60 v3.2 - */ - class TAknFepRangeIndicator - { - public: // data - /** - * Control type of button - */ - TInt iCtrlType; - - /** - * Id of the input range - */ - TInt iInputRange; - - /** - * Type of input range, used to judge if it is mixed - */ - TInt iRangeType; - - /** - * control Id of button - */ - TInt iCtrlId; - - /** - * Is button that represent iInputRange hided - */ - TBool iIsHide; - - /** - * Pointer to the indicator button (Own) - */ - CAknFepCtrlCommonButton* iIndicator; - - /** - * Indicator action style, - * value from TIndicatorActionStyle - */ - TInt iActionStyle; - - /** - * Indicator position index in cellrects list - * only meaningful when whole action style is - * ERangeBarUsingIndicatorStyle - */ - TInt iPosIdx; - }; - -private: - - /** - * Set layout rect of whole range bar - * - * @since S60 v3.2 - * @return None - */ - void SetWholeRect(); - - /** - * Get number of input ranges hided - * - * @since S60 v3.2 - * @return Number of hided input ranges - */ - TInt NumOfHidedRange(); - - /** - * Judge if button in given index has mixed range - * - * @since S60 v3.2 - * @param aIndex Given index - * @return ETrue if given index has mixed range, otherwise EFalse - */ - TBool IsMixedRange(const TInt aIndex); - - /** - * Report range or mode change event to observer - * - * @since S60 v3.2 - * @param aEventId the event id - * @param aEventData the event data - * @return None - */ - void ReportEventToObserver(const TInt aEventId, const TInt aEventData); - - /** - * Set new position to sub controls - * - * @since S60 v3.2 - * @return None - */ - void SetIndicatorRect(); - - /** - * update new position to sub controls - * this function used when indicator's rect get from cell rects list - * and whole range bar's action style is highlight or hide - * - * @since S60 v3.2 - * @return None - */ - void UpdateIndicatorRect( TBool aUpdateImage ); - - /** - * update new position to sub controls - * this function only used when indicator's rect get from cell rects list, - * and whole range bar's action style is using indicator style, every - * indicator's position is fixed - * - * @since S60 v3.2 - * @return None - */ - void UpdateIndicatorRectForUsingIndicatorStyle(TBool aUpdateImage); - - /** - * Get indicator index by given range - * - * @since S60 v3.2 - * @return Indicator index - */ - TInt IndicatorIdxByRange(TInt aRange); - - /** - * this function only used when indicator's rect get from cell rects list, - * and whole range bar's action style is using indicator style, and indicator - * to be hiden is using hide action style - * - * @since S60 v3.2 - * @param aIdx Indicator index to be hiden - * @param aHide Whether hide or show indicator - * @return None - */ - void HideRangeForHidingIndicatorStyle(TInt aIdx, TBool aHide); - -private: // data - - /** - * Array of input range indicators - */ - RPointerArray iIndicators; - - /** - * Current active input range - */ - TInt iInputRange; - - /** - * A rect used to erase the screen - */ - TRect iEraseRect; - - /** - * Style of range bar - */ - TButtonGroupStyle iStyle; - - /** - * Current font of range bar - */ - const CFont* iFont; - - /** - * event id for range button click - */ - TInt iEventIdForRange; - - /** - * event id for case button click - */ - TInt iEventIdForCase; - - /** - * Whether resize images as well, - * if only the position of the button changed, - * no need to reset the images as well - */ - TBool iIsReloadImages; - - /** - * action style - */ - TRangeBarActionStyle iActionStyle; - - /** - * First time construct flag - */ - TBool iFirstTimeConstruct; - - /** - * Rangebar cell rect - */ - RArray iCellRects; - RArray iCellInnerRects; - TBool iCellChanged; - }; - -#include "peninputrangebar.inl" - -#endif // C_CAKNFEPCTRLRANGEBAR_H - -// End Of File