camerauis/activepalette/Inc/ActivePalette2HUI.h
changeset 19 d9aefe59d544
parent 3 8b2d6d0384b0
child 21 fa6d9f75d6a6
child 28 3075d9b614e6
--- a/camerauis/activepalette/Inc/ActivePalette2HUI.h	Tue Feb 02 00:01:39 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,390 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  AP implementation using HUITK*
-*/
-
-
-/**
- * @file ActivePalette2HUI.h
- * AP implementation using HUITK
- */
- 
-
-#ifndef _ACTIVE_PALETTE_2_HUI_H
-#define _ACTIVE_PALETTE_2_HUI_H
-
-#include <e32std.h>
-#include <uiacceltk/HuiControl.h>
-#include <activepalette2ui.h>
-#include <activepalette2itemvisible.h>
-#include <activepalette2navigationkeys.h>
-
-#include "ActivePalette2ModelObserver.h"
-
-class CHuiEnv;
-class CHuiLayout;
-class CHuiImageVisual;
-class CHuiMeshVisual;
-class CHuiTextVisual;
-class CHuiTexture;
-class TActivePalette2EventData;
-class MActivePalette2Observer;
-class CActivePalette2Item;
-class CActivePalette2Model;
-
-/**
- * 3D renderer for Active Palette 2.
- */
-class CActivePalette2HUI : public CHuiControl, 
-                              public MActivePalette2UI,
-                              public MActivePalette2ModelObserver,
-                              public MActivePalette2TooltipDescriptiveObserver,
-                              public MActivePalette2FocusDescriptiveObserver,
-                              public MActivePalette2ItemScrollDescriptiveObserver,
-                              public MActivePalette2AppearanceDescriptiveObserver
-    {
-public:  
-/// @name Object creation & deletion
-//@{
-
-    /**
-     * 2-stage construction
-     * @param aEnv The Hui environment the control should be created in
-     * @return The newly-created object
-     */
-    static CActivePalette2HUI* NewL(CHuiEnv& aEnv);
-    
-    /**
-     * Destructor
-     */
-    ~CActivePalette2HUI();
-//@}
-
-private:
-/// @name Object creation helpers
-//@{
-    /**
-     * Constructor
-     * @param aEnv The Hui environment the control should be created in
-     */
-    CActivePalette2HUI(CHuiEnv& aEnv);
-
-    /**
-     * Second-stage construction
-     */
-    void ConstructL();
-
-//@}
-
-public:  
-/// @name From CHuiControl
-//@{
-    virtual TBool OfferEventL(const THuiEvent& aEvent);
-    virtual void VisualLayoutUpdated(CHuiVisual &aVisual);
-//@}
-
-public:  
-/// @name From MActivePalette2UI
-//@{
-	virtual TInt InstallItemL(const TActivePalette2ItemVisible& aItemVisible, 
-						const TUid& aPluginUid, 
-						const TDesC8& aCustomDataDes);
-	virtual TInt InstallItemL(const TActivePalette2ItemVisible& aItemVisible,
-						const TUid& aPluginUid, 
-						TInt aCustomDataInt = 0);
-	virtual TInt InstallItemL(const TActivePalette2ItemVisible& aItemVisible,
-						const TUid& aPluginUid, 
-						TInt aCustomDataInt, 
-						const TDesC8& aCustomDataDes);
-	virtual TInt RemoveItem(TInt aItemId);
-	virtual TInt SetItemVisibility(TInt aItemId, TBool aIsVisible);
-	virtual TInt GetItemVisibility(TInt aItemId, TBool &aIsVisible) const;
-    virtual TInt GetItemList(RArray<TActivePalette2ItemVisible>& aItemVisibleList) const;
-    virtual TInt SetItemList(const RArray<TActivePalette2ItemVisible>& aItemVisibleList);
-	virtual TInt SendMessage(TInt aItemId, TInt aMessageId, const TDesC8& aDataDes);
-	virtual TInt SendMessage(TInt aItemId, TInt aMessageId, TInt aDataInt);
-	virtual TInt GetCurrentItem(TInt& aItemId) const;
-	virtual TInt SetCurrentItem(TInt aItemId);
-    virtual TInt SetPaletteVisibility(TBool aVisible, TBool aAnimated, TInt aDelayedStartMilliseconds = 0);
-    virtual TInt SetPaletteVisibilityAnimationDuration(TInt aTimeInMilliseconds);
-    virtual TInt GetPaletteVisibilityAnimationDuration(TInt& aTimeInMilliseconds) const;
-	virtual void LocateTo(const TPoint& aTopLeft);
-	virtual TPoint Location() const;
-    virtual CCoeControl* CoeControl();
-    virtual CHuiControl* HuiControl();
-    virtual void SetGc(CBitmapContext* aGc = NULL);
-    virtual void RenderActivePalette(const TRect& aRect) const;
-    virtual void SetObserver(MActivePalette2Observer* aObserver);
-    virtual TInt GetAvailablePlugins(RArray<TUid>& aPluginList) const;
-    virtual void SetNavigationKeys(const TActivePalette2NavigationKeys& aNavigationKeys);
-//@}    
-
-public: 
-/// @name From MActivePalette2ModelObserver
-//@{
-    virtual TInt TooltipUpdated();
-    virtual void ItemsUpdated();
-    virtual void ItemAnimated(TInt aScreenPos, CActivePalette2Item* aItem, TInt aAnimFrame);
-    virtual void ItemAnimationComplete(TInt aScreenPos, CActivePalette2Item* aItem);
-    virtual void PaletteAppearingUpdated();
-	virtual MActivePalette2Observer* APObserver() const;
-    virtual void ShowTooltipUpdated();
-//@}    
-
-public: 
-/// @name From MActivePalette2TooltipDescriptiveObserver
-//@{
-    virtual void AnimateTooltip(TBool aToShow, TInt aTimeInMilliseconds);
-//@}
-
-public: 
-/// @name From MActivePalette2FocusDescriptiveObserver
-//@{
-    virtual void AnimateFocus(TInt aCurrentPos, TInt aTargetPos, TInt aTimeInMilliseconds);
-//@}
-
-public: 
-/// @name From MActivePalette2ItemScrollDescriptiveObserver
-//@{
-    virtual void AnimateItemScroll(TInt aDirection, TInt aTimeInMilliseconds);
-//@}
-    
-public: 
-/// @name From MActivePalette2AppearanceDescriptiveObserver
-//@{
-    virtual void AnimateAppearance(TBool aVisible, TInt aTimeInMilliseconds);
-    virtual TInt GuessCurrentAppearanceFrame();
-//@}
-
-private: 
-/// @name New functions
-//@{
-    /**
-     * Renders the main section of the palette. It repositions all objects within it's layout,
-     * and updates all textures.
-     */
-    void Render();
-
-    /**
-     * Returns the current screen position of the AP.
-     * @return The screen position of the AP
-     */                      
-    TPoint PalettePosition() const;
-
-    /**
-     * Updates state when a focus-change animation is completed
-     * @return 0 to signal that further callbacks are unnecessary, 1 otherwise
-     */
-    TInt AnimateFocusTimerComplete();
-
-    /**
-     * Updates state when a palette-appearance animation is completed
-     * @return 0 to signal that further callbacks are unnecessary, 1 otherwise
-     */
-    TInt AnimateAppearanceTimerComplete();
-
-    /**
-     * Updates state when a item-scroll animation is completed
-     * @return 0 to signal that further callbacks are unnecessary, 1 otherwise
-     */
-    TInt AnimateItemScrollTimerComplete();
-
-    /**
-     * Updates state when a tooltip animation is completed
-     * @return 0 to signal that further callbacks are unnecessary, 1 otherwise
-     */
-    TInt AnimateTooltipTimerComplete();
-
-    /**
-     * Returns the palette offset for an item at the given screen position
-     * @param aScreenPos The screen postion
-     * @return The item offset
-     */
-    TPoint ItemPosition(TInt aScreenPos) const;
-    
-    /**
-     * The offset for the area of the palette that contains the top scroll arrow
-     * @return The offset
-     */
-    TPoint TopScrollPanePosition() const;
-    
-    /**
-     * The offset for the area of the palette that contains the bottom scroll arrow
-     * @return The offset
-     */
-    TPoint BottomScrollPanePosition() const;
-    
-    /**
-     * The overall size of the palette
-     * @return The size
-     */
-    TSize PaletteSize() const;
-    
-    /**
-     * Returns the current offset to be applied to all items due to item-scrolling
-     * @return The item scroll offset
-     */
-    TPoint CurrentScrollOffset() const;
-
-    /**
-     * Set the correct opacities for the top & bottom items during an item-scroll animation
-     */
-    void ItemsScrolledSetItemOpacities();
-    
-    /**
-     * Updates the position and opacity of the focus ring, with immediate effect
-     */
-    void UpdateFocus();
-
-    /**
-     * Updates iScreenSize, iTopLeftCorner based on current screen size 
-     */
-    void UpdateTopLeftCornerWithScreenSize();
-//@}
-
-/// @name New functions
-//@{
-    /**
-     * Timer callback for focus-change animation
-     * @param aPtr Pointer to object that started the timer
-     * @return 0 to signal that further callbacks are unnecessary, 1 otherwise
-     */
-    static TInt AnimateFocusTimerCallback(TAny* aPtr);
-
-    /**
-     * Timer callback for palette-appearance animation
-     * @param aPtr Pointer to object that started the timer
-     * @return 0 to signal that further callbacks are unnecessary, 1 otherwise
-     */
-    static TInt AnimateAppearanceTimerCallback(TAny* aPtr);
-
-    /**
-     * Timer callback for item-scroll animation
-     * @param aPtr Pointer to object that started the timer
-     * @return 0 to signal that further callbacks are unnecessary, 1 otherwise
-     */
-    static TInt AnimateItemScrollTimerCallback(TAny* aPtr);
-    
-    /**
-     * Timer callback for tooltip animation
-     * @param aPtr Pointer to object that started the timer
-     * @return 0 to signal that further callbacks are unnecessary, 1 otherwise
-     */
-    static TInt AnimateTooltipTimerCallback(TAny* aPtr);
-
-//@}
-
-private: // data
-    /// The model used
-    CActivePalette2Model* iModel;
-    
-    /// The observer to use for callbacks
-    MActivePalette2Observer* iObserver;
-
-    /// The keys to respond to in OfferEventL
-    TActivePalette2NavigationKeys iNavigationKeys;
-
-    /// Where the AP should be when fully shown
-    TPoint iTopLeftCorner;    
-    
-
-    /// The full-screen layout - to get VisualLayoutUpdated on 
-    /// screen orientation change
-    CHuiLayout*      iFullScreenLayout;
-    
-    /// The palette layout
-    CHuiLayout*      iPaletteLayout;
-
-    /// The top section background layout
-    CHuiLayout*      iBackgroundTopSectionLayout;
-    /// The top section background visual
-    CHuiImageVisual* iBackgroundTopSectionVisual;
-    /// The top section background texture
-    CHuiTexture*     iBackgroundTopSectionTexture;
-
-    /// The mid section background layout
-    CHuiLayout*      iBackgroundMidSectionLayout;
-    /// The mid section background visual
-    CHuiImageVisual* iBackgroundMidSectionVisual;
-    /// The mid section background texture
-    CHuiTexture*     iBackgroundMidSectionTexture;
-
-    /// The bottom section background layout
-    CHuiLayout*      iBackgroundBottomSectionLayout;
-    /// The bottom section background visual
-    CHuiImageVisual* iBackgroundBottomSectionVisual;
-    /// The bottom section background texture
-    CHuiTexture*     iBackgroundBottomSectionTexture;
-
-    /// The top-arrow layout
-    CHuiLayout*      iTopScrollLayout;
-    /// The top-arrow visual
-    CHuiImageVisual* iTopScrollVisual;
-    /// The top-arrow texture
-    CHuiTexture*     iTopScrollTexture;
-
-    /// The bottom-arrow layout    
-    CHuiLayout*      iBottomScrollLayout;
-    /// The bottom-arrow visual
-    CHuiImageVisual* iBottomScrollVisual;
-    /// The bottom-arrow texture
-    CHuiTexture*     iBottomScrollTexture;
-
-    /// The focus ring layout
-    CHuiLayout*      iFocusRingLayout;
-    /// The focus ring texture
-    CHuiTexture*     iFocusRingTexture;
-    /// The focus ring visual
-    CHuiImageVisual* iFocusRingVisual;
-
-    /// The layouts for the items
-    RPointerArray<CHuiLayout>      iItemLayout;
-    /// The visuals for the items
-    RPointerArray<CHuiImageVisual> iItemVisual;
-    /// The textures for the items
-    RPointerArray<CHuiTexture>     iItemTexture;
-
-    /// The tooltip layout
-    CHuiLayout*      iTooltipLayout;
-    
-    /// The tooltip text layout
-    CHuiLayout*      iTooltipTextLayout;
-    /// The tooltip text visual
-    CHuiTextVisual*  iTooltipTextVisual;
-
-    /// The nose section tooltip background layout
-    CHuiLayout*      iTooltipBackgroundNoseLayout;
-    /// The nose section tooltip background visual
-    CHuiImageVisual* iTooltipBackgroundNoseVisual;
-    /// The nose section tooltip background texture
-    CHuiTexture*     iTooltipBackgroundNoseTexture;
-
-    /// The body section tooltip background layout
-    CHuiLayout*      iTooltipBackgroundBodyLayout;
-    /// The body section tooltip background visual
-    CHuiImageVisual* iTooltipBackgroundBodyVisual;
-    /// The body section tooltip background texture
-    CHuiTexture*     iTooltipBackgroundBodyTexture;
-
-
-    /// A general purpose timer. Used for synchronizing with animations.
-    CPeriodic* iGeneralTimer;
-    
-    /// Stores the current screen size.
-	TSize iScreenSize;
-    };
-
-
-#endif // _ACTIVE_PALETTE_2_HUI_H
-