--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imageeditor/inc/DrawUtils.h Fri Jan 29 13:53:17 2010 +0200
@@ -0,0 +1,344 @@
+/*
+* 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:
+* Draw utility class header file.
+*
+*/
+
+
+#ifndef DRAWUTILS_H
+#define DRAWUTILS_H
+
+// INCLUDES
+#include <gdi.h>
+#include <e32base.h>
+#include <badesca.h>
+
+// FORWARD DECLARATIONS
+class CAknWaitDialog;
+class CAknProgressDialog;
+class MProgressDialogCallback;
+class CAknInfoPopupNoteController;
+
+/* CLASS: SDrawUtils
+*
+* SDrawUtils wraps often used UI drawing utilities into single class
+*/
+class SDrawUtils
+{
+
+public:
+
+/** @name TypeDefs:*/
+//@{
+ enum TGuideType
+ {
+ // Invalid
+ EGuideTypeMin,
+ // Guide arrow up
+ EGuideTypeUp,
+ // Guide arrow down
+ EGuideTypeDown,
+ // Guide arrow left
+ EGuideTypeLeft,
+ // Guide arrow right
+ EGuideTypeRight,
+ // Invalid
+ EGuideTypeMax
+ };
+
+//@}
+
+/** @name Methods:*/
+//@{
+
+ /** DrawGuide
+ *
+ * Draws arrow guide to CWindowGc.
+ *
+ * @param aGc - grapics context
+ * @param aRect - surrouding rectangle
+ * @param aType - guide type
+ * @param aColor - guide color
+ * @return -
+ */
+ IMPORT_C static void DrawGuide (
+ CGraphicsContext & aGc,
+ const TRect & aRect,
+ const TGuideType aType,
+ const TRgb & aColor
+ );
+
+ /** DrawBeveledRect
+ *
+ * Draws a 3D beveled rectangle.
+ *
+ * @param aGc - grapics context
+ * @param aRect - surrouding rectangle (includes the borders)
+ * @param aColor - rectangle color
+ * @param aLight - light color
+ * @param aShadow - shadow color
+ * @return -
+ */
+ IMPORT_C static void DrawBeveledRect (
+ CGraphicsContext & aGc,
+ const TRect & aRect,
+ const TRgb & aColor,
+ const TRgb & aLight,
+ const TRgb & aShadow
+ );
+
+ /** DrawFlatRect
+ *
+ * Draws a 3D flat rectangle.
+ *
+ * @param aGc - grapics context
+ * @param aRect - surrouding rectangle (includes the borders)
+ * @param aColor - rectangle color
+ * @param aLight - light color
+ * @param aShadow - shadow color
+ * @return -
+ */
+ IMPORT_C static void DrawFlatRect (
+ CGraphicsContext & aGc,
+ const TRect & aRect,
+ const TRgb & aColor,
+ const TRgb & aLight,
+ const TRgb & aShadow
+ );
+
+ /** LaunchQueryDialogL
+ *
+ * Launches a confirmation query dialog.
+ *
+ * @param aPrompt - dialog prompt descriptor
+ * @return -
+ */
+ IMPORT_C static TInt LaunchQueryDialogL (const TDesC & aPrompt);
+
+ /** LaunchQueryDialogOkOnlyL
+ *
+ * Launches a confirmation query dialog with only OK softkey
+ * available.
+ *
+ * @param aPrompt - dialog prompt descriptor
+ * @return -
+ */
+ IMPORT_C static TInt LaunchQueryDialogOkOnlyL (const TDesC & aPrompt);
+
+ /** LaunchTextQueryDialogL
+ *
+ * Launches a text query dialog and returns the queried descriptor.
+ * aData includes the data shown in the edit window and on return,
+ * includes the edited text data.
+ *
+ * @param aData - data descriptor
+ * @param aPrompt - dialog prompt descriptor
+ * @return -
+ */
+ IMPORT_C static TInt LaunchTextQueryDialogL (
+ TDes & aData,
+ const TDesC & aPrompt
+ );
+
+ /** LaunchMultiLineTextQueryDialogL
+ *
+ * Launches a multiline text query dialog and returns the queried descriptor.
+ * aData includes the data shown in the edit window and on return,
+ * includes the edited text data.
+ *
+ * @param aData - data descriptor
+ * @param aPrompt - dialog prompt descriptor
+ * @return -
+ */
+ IMPORT_C static TInt LaunchMultiLineTextQueryDialogL (
+ TDes & aData,
+ const TDesC & aPrompt
+ );
+
+ /** LaunchListQueryDialogL
+ *
+ * Launches a list query dialog and returns the selected index.
+ * aData includes the descriptor array of selection items.
+ *
+ * @param aTextItems - text item descriptor array
+ * @param aPrompt - dialog prompt descriptor
+ * @return -
+ */
+ IMPORT_C static TInt LaunchListQueryDialogL (
+ MDesCArray * aTextItems,
+ const TDesC & aPrompt
+ );
+
+ /** LaunchWaitNoteL
+ *
+ * Creates and launches a wait note dialog and returns a pointer to
+ * it.
+ * @param - aSelfPtr
+ * The wait dialog is allocated at this pointer.
+ * The pointer needs to be valid when the dialog
+ * is dismissed and must be a class member.
+ * @param aResourceID - resource ID for prompt
+ * @param aPrompt - wait dialog prompt
+ * @param aCallback
+ * The wait dialog callback.
+ * Pass NULL if no callback is needed.
+ * @return - pointer to wait dialog
+ */
+ IMPORT_C static void LaunchWaitNoteL (
+ CAknWaitDialog** aSelfPtr,
+ TInt aResourceID,
+ const TDesC & aPrompt,
+ MProgressDialogCallback* aCallback = NULL
+ );
+
+ /** LaunchProgressNoteL
+ *
+ * Creates and launches a wait note dialog and returns a pointer to
+ * it.
+ * @param - aSelfPtr
+ * The wait dialog is allocated at this pointer.
+ * The pointer needs to be valid when the dialog
+ * is dismissed and must be a class member.
+ * @param aResourceID - resource ID for prompt
+ * @param aPrompt - wait dialog prompt
+ * @param aFinalValue Final value for the process
+ * @param aCallback
+ * The wait dialog callback.
+ * Pass NULL if no callback is needed.
+ * @return - pointer to wait dialog
+ */
+ IMPORT_C static void LaunchProgressNoteL (
+ CAknProgressDialog** aSelfPtr,
+ TInt aResourceID,
+ const TDesC & aPrompt,
+ TInt aFinalValue = 0,
+ MProgressDialogCallback* aCallback = NULL
+ );
+
+ /** LaunchColorSelectionGridL
+ *
+ * Launches a color selection grid inside a pop-up list. Returns
+ * KErrNone if color was selected.
+ *
+ * @param aColor - includes the selected color on return
+ * @return - KErrNone if color selected
+ */
+ IMPORT_C static TInt LaunchColorSelectionGridL (TRgb & aColor);
+
+ /** LaunchColorSelectionPopupL
+ *
+ * Launches a semi-transparent 35 color selection popup component.
+ * Color grid is launched via a dialog.
+ *
+ * @param aPreview - a constant pointer to a bitmap image that should be
+ * drawn to background
+ * @param aRect - rectangle of calling control (use main pane rect)
+ * @param aColor - includes the selected color on return
+ * @return - KErrNone if color selected
+ */
+ IMPORT_C static TInt LaunchColorSelectionPopupL (const CFbsBitmap* aPreview,
+ TRect aRect,
+ TRgb & aColor);
+
+
+ /** GetIndicatorBitmapL
+ *
+ * Load the indicator cursor bitmap and mask.
+ *
+ * @param aChBitmap - reference to cursor bitmap pointer
+ * @param aChMask - reference to cursor mask pointer
+ * @param aBmpIndex - bitmap MBM index
+ * @param aMaskIndex - mask MBM index
+ * @return - KErrNone if successful
+ */
+ IMPORT_C static TInt GetIndicatorBitmapL (
+ CFbsBitmap *& aChBitmap,
+ CFbsBitmap *& aChMask,
+ TInt aBmpIndex,
+ TInt aMaskIndex
+ );
+
+ /** ShowToolTip
+ *
+ * Show a tooltip note on the screen. This function calculates the
+ * relative position on the screen for the tooltip.
+ *
+ * @param aPopupController - pointer to popup note controller
+ * @param aCallingControl - pointer to a calling control
+ * @param aPositionRect - position rect where the tooltip should be shown
+ * @param aText - text to be shown
+ * @return -
+ */
+ IMPORT_C static void ShowToolTip (
+ CAknInfoPopupNoteController* aPopupController,
+ CCoeControl* aCallingControl,
+ TRect aPositionRect,
+ const TDesC& aText
+ );
+
+ /** ShowToolTip
+ *
+ * Show a tooltip note on the screen. This function calculates the
+ * relative position on the screen for the tooltip.
+ *
+ * @param aPopupController - pointer to popup note controller
+ * @param aCallingControl - pointer to a calling control
+ * @param aPosition - position where the tooltip should be shown
+ * @param aAlignment - GUI alignment to use
+ * @param aText - text to be shown
+ * @return -
+ */
+ IMPORT_C static void ShowToolTip (
+ CAknInfoPopupNoteController* aPopupController,
+ CCoeControl* aCallingControl,
+ TPoint aPosition,
+ TGulAlignmentValue aAlignment,
+ const TDesC& aText
+ );
+
+//@}
+
+protected:
+
+/** @name Methods:*/
+//@{
+
+//@}
+
+/** @name Members:*/
+//@{
+ ///
+//@}
+
+private:
+
+/** @name Methods:*/
+//@{
+
+//@}
+
+/** @name Members:*/
+//@{
+
+//@}
+
+};
+
+
+#endif
+
+// End of File
+