diff -r 57d4cdd99204 -r edfc90759b9f imageeditor/plugins/ResizePlugin/inc/ResizeControl.h --- /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 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