textinput/peninputcommonctrls/inc/peninputrangebar/peninputrangebar.h
changeset 40 2cb9bae34d17
parent 31 f1bdd6b078d1
child 49 37f5d84451bd
--- 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 <peninputlayoutctrlgroup.h>
-
-// 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<TRect>& aRects,
-    						  			const RArray<TRect>& 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<TAknFepRangeIndicator> 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<TRect> iCellRects;
-    RArray<TRect> iCellInnerRects;
-    TBool iCellChanged;
-    };
-
-#include "peninputrangebar.inl"
-
-#endif // C_CAKNFEPCTRLRANGEBAR_H
-            
-// End Of File