windowing/windowserver/inc/textcursor.h
changeset 0 5d03bc08d59c
child 32 11eb4ca57dad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/inc/textcursor.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,130 @@
+// Copyright (c) 1994-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+// Description:
+// text cursor header file
+// 
+//
+
+#ifndef TEXTCURSOR_H
+#define TEXTCURSOR_H
+
+struct TTextCursor
+/** Text cursor parameter information.
+
+A text cursor is a rectangular area which can be set to flash. It is normally
+only visible when the window group which owns it has the keyboard focus. This
+structure is used to define the parameters of a text cursor, which can be
+selected for use through the window group using RWindowGroup::SetTextCursor().
+
+Custom (non-rectangular) text cursors are supported from v7.0s. They are added
+to the window server using RWsSession::SetCustomTextCursor(), after which
+they can be selected for use through the window group, in the same way as
+standard rectangular cursors. They have a unique identifier, stored in the
+iType member, which must be greater than ETypeLastBasic. Custom text cursors
+are clipped to their iHeight and iWidth values. Their iColour member is not
+used.
+
+@publishedAll
+@released */
+    {
+	// The different normal text cursors
+	// A Text cursor can either be a predefined one
+	// or a general sprite. Cursors between ETypeFirst
+	// and ETypeLastBasic are predefined ones (even though
+	// the ones above ETypeLast do not exist and are
+	// for future use)
+	/** Cursor type values.
+
+	The values between ETypeFirst and ETypeLastBasic are reserved for predefined
+	cursors. Custom text cursors must have a value greater than ETypeLastBasic.
+
+	The values not listed below are for internal use only.
+	
+    @publishedAll */
+	enum ENamedCursors
+		{
+		ETypeNone,
+		/** Standard filled rectangular cursor. */
+		ETypeRectangle,
+		/** Standard hollow rectangular cursor. */
+		ETypeHollowRectangle,
+        /** The first predefined cursor type.
+
+        Equivalent to ETypeRectangle. This can be used for iterating through the predefined
+        cursor types.
+        
+        WARNING: Enum for internal use ONLY. Compatibility is not guaranteed in future releases. */
+        ETypeFirst=ETypeRectangle,
+        /** The last predefined cursor type.
+
+        Equivalent to ETypeHollowRectangle. This can be used for iterating through
+        the predefined cursor types.
+        
+        WARNING: Enum for internal use ONLY. Compatibility is not guaranteed in future releases. */        
+        ETypeLast=ETypeHollowRectangle,
+        /** Reserved for future use.
+		
+		/** All custom text cursors must have a type value greater than this. */
+		ETypeLastBasic = 1000,	
+		};
+	/** Added for compatibility with previous releases. */
+	typedef TInt EType;
+	/** Cursor flash and clipping flags.
+
+	The flags not listed below are for internal use only. */
+	enum EFlags
+		{
+		/** The text cursor should not flash. */
+		EFlagNoFlash		= 0x00000001,
+		/** The bitmap of each sprite member is clipped left of its x-origin and right of
+		its x-origin plus iWidth.
+
+		Used for custom text cursors only. */
+		EFlagClipHorizontal	= 0x00000002,
+		/** The bitmap of each sprite member is clipped vertically.
+
+		How it is clipped depends on the text cursor's vertical alignment, see the
+		TCustomTextCursorAlignment enum in class RWsSession.
+
+		Used for custom text cursors only. */
+		EFlagClipVertical	= 0x00000004,	
+		};
+	/** The cursor type.
+
+	For possible values, see the ENamedCursors enum. */
+	TInt iType;
+	/** The height of the text cursor.
+
+	This value is also used for clipping custom text cursors, if the EFlagClipVertical
+	flag is set. */
+    TInt iHeight;
+	/** The ascent of the text cursor (the distance between the origin and the top). */
+    TInt iAscent;
+	/** The width of the text cursor.
+
+	Custom text cursors are clipped to this value, if the EFlagClipHorizontal
+	flag is set. */
+    TInt iWidth;
+	/** Cursor flash and clipping flags.
+
+	For possible values, see the EFlags enum. */
+    TUint iFlags;
+	/** The colour of the text cursor.
+
+	If the cursor is flashing, this colour is XOR'd with the screen.
+
+	This value is not used for custom text cursors. */
+	TRgb iColor;
+    };
+
+#endif // TEXTCURSOR_H