diff -r 57d4cdd99204 -r edfc90759b9f imageeditor/inc/SingleParamControl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imageeditor/inc/SingleParamControl.h Fri Jan 29 13:53:17 2010 +0200 @@ -0,0 +1,238 @@ +/* +* Copyright (c) 2010 Ixonos Plc. +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the "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: +* Ixonos Plc +* +* Description: +* +*/ + + +#ifndef SINGLEPARAMCONTROL_H +#define SINGLEPARAMCONTROL_H + +// INCLUDES +#include +#include "PreviewControlBase.h" + +// FORWARD DECLARATIONS +class CCoeControl; +class CAknView; +class MSingleParControlObserver; +class CPluginInfo; +class CHorizontalSlider; + +#ifdef RD_TACTILE_FEEDBACK +class MTouchFeedback; +#endif /* RD_TACTILE_FEEDBACK */ + +/* CLASS: CSingleParamControl + * + * CSingleParamControl represents a single parameter adjustment UI control, + * that can be used by any of the plug-ins just by defining a UI type to + * resource file. + */ +class CSingleParamControl : public CPreviewControlBase + { +public: + + /** @name Methods:*/ + //@{ + + /** NewL factory method, pops cleanupstack + * + * @param aRect - control rectangle + * @param aParent - pointer to window owning control + * @param aActionOnButtonRelease - To indicate if rendering should happen only when + * the button1 is released, i.e. when dragging has stopped. Default value is false. + * @return - pointer to the newly created CSingleParamControl instance + */ + IMPORT_C static CSingleParamControl * NewL ( + const TRect & aRect, + CCoeControl * aParent, + TBool aActionOnButtonRelease = EFalse + ); + + /** Default constructor + * + * @param - + * @return - + */ + IMPORT_C CSingleParamControl (); + + /** Second phase constructor + * + * @see CImageEditorControlBase + */ + IMPORT_C virtual void ConstructL ( + const TRect & aRect, + CCoeControl * aParent, + TBool aActionOnButtonRelease + ); + + /** Destructor + * + * @param - + * @return - + */ + IMPORT_C virtual ~CSingleParamControl (); + + /* SetView + * + * @see CImageEditorControlBase + */ + IMPORT_C virtual void SetView (CAknView * aView); + + /* SetSelectedUiItemL + * + * @see CImageEditorControlBase + */ + IMPORT_C virtual void SetSelectedUiItemL (CPluginInfo * aItem); + + /* OfferKeyEventL + * + * @see CImageEditorControlBase + */ + IMPORT_C virtual TKeyResponse OfferKeyEventL ( + const TKeyEvent & aKeyEvent, + TEventCode aType + ); + + /** HandlePointerEventL + * + * @see CCoeControl + */ + IMPORT_C virtual void HandlePointerEventL( const TPointerEvent &aPointerEvent ); + + /* SetParObserver + * + * Sets the MSingleParControlObserver for the control. + * + * @param aObserver - parameter observer + * @return - + */ + IMPORT_C void SetParObserver (MSingleParControlObserver * aObserver); + + /* HandlePluginCommandL + * + * @see CImageEditorControlBase + */ + IMPORT_C virtual void HandlePluginCommandL (const TInt aCommand); + + /* GetSoftkeyIndexL + * + * @see CImageEditorControlBase + */ + IMPORT_C virtual TInt GetSoftkeyIndexL(); + + /* GetNaviPaneTextL + * + * @see CImageEditorControlBase + */ + IMPORT_C virtual TPtrC GetNaviPaneTextL ( + TBool& aLeftNaviPaneScrollButtonVisibile, + TBool& aRightNaviPaneScrollButtonVisible); + + // these functions are for adjusting the slider + IMPORT_C void SetSliderMinimumAndMaximum(TInt aMin, TInt aMax); + IMPORT_C void SetSliderPosition(TInt aPosition); + IMPORT_C void SetSliderStep(TUint aStep); + IMPORT_C void SetSliderStepAmount(TUint8 aAmount); + IMPORT_C void SetIcon(CEikImage* aIcon); + IMPORT_C void SetCaption(const TDesC& aText); + IMPORT_C TInt Position() const; + + // from CCoeControl + IMPORT_C TInt CountComponentControls() const; + IMPORT_C CCoeControl* ComponentControl(TInt aIndex) const; + IMPORT_C void SizeChanged(); + + //@} + +protected: + +private: + + /** @name Methods:*/ + //@{ + + /* Draw + * + * @see CImageEditorControlBase + */ + IMPORT_C virtual void Draw (const TRect & aRect) const; + + //@} + /// Parameter adjustment observer + MSingleParControlObserver * iParObserver; + + IMPORT_C void CountImageSizesAndPositions(); + IMPORT_C void MoveSlider(TInt aSteps); + +protected: + + /// Plug-in info + CPluginInfo* iItem; + + /// View reference + CAknView* iEditorView; + + /// drag flag + TBool iDragging; + + /// should rendering happen only when the button is released + TBool iActionOnButtonRelease; + + /// touch area + TRect iTouchRect; + + /// minimum value of the slider + TInt iMinimumValue; + + /// maximum value of the slider + TInt iMaximumValue; + + /// step value + TUint iStep; + TUint iStepInPixels; + + /// number of steps + TUint8 iNumberOfSteps; + + /// current position + TInt iPosition; + + /// popup graphics + RPointerArray iBorders; + + /// scrollbar graphics + RPointerArray iScrollBar; + + /// caption text + CEikLabel* iText; + + /// icon graphic, owned + CEikImage* iIcon; + + /// use selection graphic + TBool iMarkerPressed; + + // Feedback for screen touch: +#ifdef RD_TACTILE_FEEDBACK + MTouchFeedback* iTouchFeedBack; +#endif /* RD_TACTILE_FEEDBACK */ + + }; + +#endif + +// End of File