imageeditor/inc/ImageEditorControlBase.h
changeset 1 edfc90759b9f
child 12 18b321db4884
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imageeditor/inc/ImageEditorControlBase.h	Fri Jan 29 13:53:17 2010 +0200
@@ -0,0 +1,298 @@
+/*
+* 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: 
+* A base class for image editor controls.
+*
+*/
+
+
+#ifndef IMAGEEDITORCONTROLBASE_H
+#define IMAGEEDITORCONTROLBASE_H
+
+//  INCLUDES
+#include <coecntrl.h>
+#include "bitfield.h"
+
+//  FORWARD DECLARATIONS
+class CImageEditorUIView;
+class CUiItem;
+class CAknView;
+class CPluginInfo;
+class CEikButtonGroupContainer;
+
+/*	CLASS: CImageEditorControlBase
+*
+*	CImageEditorControlBase represents a base class for all Image Editor
+*	controls: main UI controls and plug-in controls.
+*/
+class CImageEditorControlBase   : public CCoeControl
+{
+
+public:
+
+/** @name Methods:*/
+//@{
+
+	/*	Default constructor
+	*
+	*   @param -
+	*   @return - 
+	*/
+    IMPORT_C CImageEditorControlBase ();
+
+	/*	Destructor
+	*
+	*   @param -
+	*   @return - 
+	*/
+    IMPORT_C virtual ~CImageEditorControlBase ();
+
+	/** Second phase constructor
+	*
+	*	@param aRect - control rectangle
+	*	@param aParent - pointer to window owning control
+	*	@return -
+	*/
+	IMPORT_C virtual void ConstructL (
+		const TRect &		aRect,
+		CCoeControl	*		aParent
+		);
+
+	/*	SetImageL
+	*
+	*   Setter for bitmap pointer 
+	*
+	*   @param aBitmap - pointer to bitmap image
+	*   @return - 
+	*/
+    IMPORT_C virtual void SetImageL (CFbsBitmap * aBitmap);
+    
+    /*	SetImageL
+	*
+	*   Setter for constant bitmap pointer 
+	*
+	*   @param aBitmap - const pointer to bitmap image
+	*   @return - 
+	*/
+    IMPORT_C virtual void SetImageL (const CFbsBitmap * aBitmap);
+    
+	/*	SetView
+	*
+	*   Sets reference to the parent view
+	*
+	*   @param aView - pointer to view
+	*   @return - 
+	*/
+    IMPORT_C virtual void SetView (CAknView * aView);
+
+	/*	SetSelectedUiItemL
+	*
+	*   Sets selected UI item
+	*
+	*   @param aItem - pointer to selected UI Item
+	*   @return - 
+	*/
+    IMPORT_C virtual void SetSelectedUiItemL (CPluginInfo * aItem);
+
+	/*	PrepareL
+	*
+	*	This function is called to finalize the plugin control construction.
+	*	It is called after ConstructL, SetView and SetSelectedUiItemL
+	*	have been done.
+	*	
+	*	@param -
+	*	@return -
+	*/
+    IMPORT_C virtual void PrepareL ();
+
+    /*	OfferKeyEventL
+    *
+    *   Handles key events. When a key event occurs, the control framework 
+    *   calls this function for each control on the control stack, until one 
+    *   of them can process the key event (and returns EKeyWasConsumed).
+    *
+    *   @param aKeyEvent - the key event
+    *   @param aType - type of key event
+    *   @return indicator for event to be handled
+    *   @see CCoeControl
+    */
+    IMPORT_C virtual TKeyResponse OfferKeyEventL (
+        const TKeyEvent &   aKeyEvent,
+        TEventCode          aType
+        );   
+
+	/*	CountComponentControls
+	*
+	*   Gets the number of controls in compound control.
+	*
+	*   @param -
+	*   @return number of controls
+	*	@see CoeControl
+	*/
+    IMPORT_C virtual TInt CountComponentControls() const; 
+
+	/*	ComponentControl
+	*
+	*   Gets special component control indexed with aIndex.
+	*
+	*   @param aIndex - component control index
+	*   @return pointer to component control 
+	*	@see CoeControl
+	*/
+    IMPORT_C virtual CCoeControl * ComponentControl (TInt aIndex) const;
+
+	/*	SetBusy
+	*
+	*	Sets busy, when busy UI does not handle key events.
+	*
+	*   @param -
+	*   @return - 
+	*/
+    IMPORT_C virtual void SetBusy();
+
+	/*	ResetBusy
+	*
+	*	Resets busy, when busy UI does not handle key events.
+	*
+	*   @param -
+	*   @return - 
+	*/
+    IMPORT_C virtual void ResetBusy();
+
+	/*	Busy
+	*
+	*	Returns the busy value, when busy UI does not handle key events
+	*
+	*   @param -
+	*   @return - 
+	*/
+    IMPORT_C virtual TBool Busy() const;
+
+	/*	HandlePluginCommandL
+	*
+	*	Handles plug-in command for a plug-in.
+	*
+	*   @param aCommand - command id
+	*   @return UI step index >= 0, -1 if no UI update needed
+	*/
+    IMPORT_C virtual void HandlePluginCommandL (const TInt aCommand);
+
+	/*	GetSoftkeyIndexL
+	*
+	*	Gets soft key index of a plug-in.
+	*
+	*   @param -
+	*   @return -1 if no change, index otherwise
+	*/
+    IMPORT_C virtual TInt GetSoftkeyIndexL ();
+    
+    /*	GetContextMenuResourceId
+	*
+	*	Gets context specific menu resource id of a plug-in.
+	*
+	*   @param -
+	*   @return 0 if no id, resource id otherwise
+	*/
+    IMPORT_C virtual TInt GetContextMenuResourceId ();
+    
+	/*	GetNaviPaneTextL
+	*
+	*	Gets navi pane text.
+	*	
+	*	By default a plain navi pane label is created. Scroll
+	*	indicators can be enabled by setting the boolean parateters.
+	*
+	*   @param - aLeftNaviPaneScrollButtonVisibile
+	*   @param - aRightNaviPaneScrollButtonVisible
+	*   @return - 
+	*/
+	IMPORT_C virtual TPtrC GetNaviPaneTextL (
+		TBool& aLeftNaviPaneScrollButtonVisibile, 
+		TBool& aRightNaviPaneScrollButtonVisible);
+
+	/*	GetDimmedMenuItems
+	*
+	*	Get the plugin menu item visibility information to dynamically
+	*	initialise the menu pane.
+	*
+	*   @param - 
+	*   @return - the visibility information bitfield
+	*/
+	IMPORT_C virtual TBitField GetDimmedMenuItems ();
+
+//@}
+
+protected:
+
+/** @name Methods:*/
+//@{
+
+	/*	SizeChanged
+	*
+	*   Responds to size and position changes of the control. Called every
+	*	time if one of the control size-changing methods is called.
+	*
+	*   @param -
+	*   @return -
+	*	@see CoeControl
+	*/
+	IMPORT_C virtual void SizeChanged();
+
+    /*	HandlePointerEventL
+	*
+	*   @param aPointerEvent event to handle in the function
+	*   @return -
+	*	@see CoeControl
+	*/
+	IMPORT_C virtual void HandlePointerEventL( const TPointerEvent &aPointerEvent );
+	
+//@}
+
+/** @name Members:*/
+//@{
+
+//@}
+
+private:
+
+/** @name Methods:*/
+//@{
+	/*	Draw
+	*
+	*   Draw controls, called by window server.
+	*
+	*   @param aRect - region of control in need of redrawing
+	*   @return -
+	*	@see CoeControl
+	*/
+	IMPORT_C virtual void Draw (const TRect & aRect) const;
+
+//@}
+
+/** @name Members:*/
+//@{
+    /// Busy flag
+    TBool                       iBusy;
+//@}
+
+};
+
+
+#endif
+
+// End of File
+
+
+