--- /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 <eiklabel.h>
+#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<CEikImage> iBorders;
+
+ /// scrollbar graphics
+ RPointerArray<CEikImage> 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