imageeditor/plugins/ResizePlugin/inc/ResizeControl.h
changeset 1 edfc90759b9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imageeditor/plugins/ResizePlugin/inc/ResizeControl.h	Fri Jan 29 13:53:17 2010 +0200
@@ -0,0 +1,289 @@
+/*
+* 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:  
+*
+*/
+
+
+/*
+*   File:       ResizeControl.h
+*   Created:    22-10-2004
+*   Author:     Wellu Mäkinen
+*/
+
+#ifndef RESIZECONTROL_H
+#define RESIZECONTROL_H
+
+//  INCLUDES
+#include "PreviewControlBase.h"
+#include "ImageEditorPluginBaseDefs.h"
+#include "SingleParamControlObserver.h"
+
+//  FORWARD DECLARATIONS
+class CCoeControl;
+class CAknView;
+class CPluginInfo;
+class CSystemParameters;
+class CImageEditorResizePlugin;
+
+/*	CLASS: CResizeControl
+*
+*   CResizeControl 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 CResizeControl : public CPreviewControlBase,
+                       public MSingleParControlObserver
+{
+
+public:
+
+/** @name Methods:*/
+//@{
+	/** NewL factory method, pops cleanupstack
+	*
+	*   @param aRect - control rectangle
+	*	@param aParent - pointer to window owning control
+	*   @return - pointer to the newly created CResizeControl instance
+	*/
+	static CResizeControl * NewL (
+		const TRect &		aRect,
+		CCoeControl	*		aParent
+		);
+
+	/*	ConstructL
+	*
+	*   @see CImageEditorControlBase
+	*/
+    virtual void ConstructL (
+        const TRect &   aRect,	
+        CCoeControl *   aParent
+        );
+
+    /** Destructor
+	*
+	*	@param -
+	*	@return -
+	*/
+	virtual ~CResizeControl ();
+
+	/*	SetView
+	*
+	*	@see CImageEditorControlBase
+	*/
+    virtual void SetView (CAknView * aView);
+
+	/*	SetSelectedUiItemL
+	*
+	*	@see CImageEditorControlBase
+	*/
+    virtual void SetSelectedUiItemL (CPluginInfo * aItem);
+
+	/** PrepareL
+	*
+	*	@see CImageEditorControlBase
+	*
+    */
+	virtual void PrepareL ();
+
+	/*	OfferKeyEventL
+	*
+	*	@see CImageEditorControlBase
+	*/
+    virtual TKeyResponse OfferKeyEventL (
+        const TKeyEvent &   aKeyEvent, 
+        TEventCode          aType
+        );
+
+    /**	HandlePointerEventL	
+	*
+	*	@see CCoeControl
+	*/
+    virtual void HandlePointerEventL( const TPointerEvent &aPointerEvent );
+
+	/*	CountComponentControls
+	*
+	*	@see CImageEditorControlBase
+	*/
+    virtual TInt CountComponentControls() const;
+
+	/*	ComponentControl
+	*
+	*	@see CImageEditorControlBase
+	*/
+    virtual CCoeControl * ComponentControl (TInt aIndex) const;
+
+	/*	HandlePluginCommandL
+	*
+	*	@see CImageEditorControlBase
+	*/
+	virtual void HandlePluginCommandL (const TInt aCommand);
+
+	/*	GetSoftkeyIndexL
+	*
+	*	@see CImageEditorControlBase
+	*/
+    virtual TInt GetSoftkeyIndexL ();
+
+	/*	GetNaviPaneTextL
+	*
+	*	@see CImageEditorControlBase
+	*/
+//	virtual TPtrC GetNaviPaneTextL (
+//		TBool& aLeftNaviPaneScrollButtonVisibile, 
+//		TBool& aRightNaviPaneScrollButtonVisible);
+
+	/*	GetDimmedMenuItems
+	*
+	*	@see CImageEditorControlBase
+	*/
+	virtual TBitField GetDimmedMenuItems ();
+
+	/*	SetSysteParameters
+	*
+	*	Sets reference to system parameters to plug-in.
+	*
+	*	@param aWidth - image width
+	*	@return - 
+	*/
+    void SetSystemParameters (CSystemParameters * aSysPars, CImageEditorResizePlugin* aParent);
+
+	/** ParamOperation 
+    *
+    *   @see MSingleParControlObserver
+	*/
+	virtual void ParamOperation (const TParamOperation aOperation);
+
+	/*	ShowPopupNote
+	*
+	*	@see CImageEditorPluginBase
+	*/
+	virtual void ShowPopupNote ();
+
+//@}
+
+
+protected:
+
+/** @name Methods:*/
+//@{
+
+//@}
+
+/** @name Members:*/
+//@{
+
+//@}
+
+private:
+
+/** @name Methods:*/
+//@{
+    /** Default constructor
+	*
+	*	@param -
+	*	@return -
+	*/
+	CResizeControl ();
+
+    /*	SizeChanged
+	*
+	*   @see CImageEditorControlBase
+	*/
+	virtual void SizeChanged();
+
+	/*	Draw
+	*
+	*   @see CImageEditorControlBase
+	*/
+	virtual void Draw (const TRect & aRect) const;
+
+	/*	ComputeAndSetSliderParameters 
+	*
+	*   Computers and sets parameters for slider.
+	*
+	*	@param -
+	*	@return -
+	*/
+	void ComputeAndSetSliderParameters (CImageEditorResizePlugin* aParent);
+
+	/*	ComputeSizeAndScale 
+	*
+	*   Computers current image size and scale.
+	*
+	*	@param -
+	*	@return -
+	*/
+	void ComputeSizeAndScale();
+
+	/*	ComputeImageSizes 
+	*
+	*   Computers available target sizes.
+	*
+	*	@param -
+	*	@return -
+	*/
+	void ComputeImageSizes();
+
+	/*	PopulateParamArray 
+	*
+	*   Add target size to param array if appropriate.
+	*
+	*	@param -
+	*	@return -
+	*/
+	void PopulateParamArray(const TSize& aTargetSize);
+
+	/** GetParam
+    *
+    *   @see MSingleParControlObserver
+	*/
+	virtual TReal GetParam() const;
+
+//@}
+
+/** @name Members:*/
+//@{
+
+    /// Plug-in UI control
+    CCoeControl *       iControl;
+    /// Reference to view
+//    CAknView *          iEditorView;
+	/// Plug-in info
+	CPluginInfo *       iPluginInfo;
+    /// Reference to system parameters
+	CSystemParameters * iSysPars;
+	/// Navi pane text
+//	TBuf<64>            iNaviPaneText;
+	/// Array of allowed heights / widths
+	RArray<TInt>		iParamArray;
+	/// Original input image size
+	TSize				iOrigSize;
+	/// Current image size
+	TSize				iSize;
+	//	Initial position
+	TInt				iInitPosition;
+	// Array for storing parameter strings (from rss file)
+	CDesCArray *        iParameters;
+	//	Preview buffer
+	CFbsBitmap *        iBufBitmap;
+	
+//@}
+
+};
+
+
+
+#endif