Design and Layout:Visual Design:Cursors

From KDE-HIG_Wiki


The pointer may adopt a variety of shapes, depending on its context of use. For example, when moved over the edges of a window, the pointer indicates that the window may be resized by showing a double-headed arrow. When located over a link, the pointer turns into a hand. When the zoom mode is active, a small magnifying glass is displayed next to the pointer.

Besides that, the pointer changes its shape to provide feedback on drag and drop operations. When dragging an object from one location to another, the pointer has to indicate that an object is dragged, in which manner it is dragged, and where it may be dropped. These issues are handled in section Pointer and Destination Feedback in chapter Drag and Drop Operations

Sometimes it is required to provide additional pointer feedback. For example, in applications that use different interaction modes, the mouse pointer should indicate the currently selected mode or tool.

Mostly, such tools change the mode of interaction permanently (e.g. the paint paint brush tool in graphics applications, or the zoom tool in image and document viewers). Sometimes, the tool is activated for one single action only. Afterwards, the interaction mode is set back to the default or previously activated mode (e.g. the pipet tool to choose colors is sometimes implemented that way).


Pointer Feedback

Guidelines

Cursor defaults

  • Make use of the standard pointers as described in the implementation suggestions.
  • Use icons for application-specific pointer feedback in consistency with other KDE applications.


Special cursors

  • Before designing a new cursor, cooperate with the developers of other KDE applications which provide similar tools and functions.
  • If you need to include your own cursors which are not in the default icon set, follow these steps:
  1. Assign descriptive names so the cursors can be reused by other applications.
  2. Open a cursor request by adding it to the Spreadsheet in SVN (playground/artwork/Oxygen/docs/cursors.ods). The artists are going to create the cursor and check it in to svn, considering your cursor name. If you already have a cursor or can't wait for the artists to create one, simply check the icon in to svn.
  • If you design your own cursor, make sure it is clearly indicated where the cursor's insertion point is. Also, provide the cursor in all sizes that can be set in the system settings.



Implementation Suggestions


Cursor Shape Description
left_ptr Image:Cursor-arrow.png Default cursor. Indicates the interface is idle and prepared to accept commands from the user. Used to manipulate basic user interface elements like buttons and scrollbars.
ibeam Image:Cursor-ibeam.png Text input cursor. Indicates that the cursor is in a region in which horizontal text can be selected and possibly edited.
pointing_hand Image:Cursor-hand.png Indicates that the object below the cursor is clickable. This cursor is typically used for links in web browsers.
It shouldn't be abused for pushbuttons and other UI elements where it's otherwise apparent by the design of the widget that it's a clickable object.
whats_this Image:Cursor-whatsthis.png Help cursor. Indicates that the system is in a context help mode, and if the user clicks an object a small window will open up to provide usage information for that object. The context help mode is typically activated by clicking a help button on the titlebar of a window that provides context help.
left_ptr_watch Image:Cursor-busy.png Default cursor + busy cursor. Indicates a pending activity which may asynchronously affect the interface but which is not blocking commands from the user.
wait Image:Cursor-wait.png Busy cursor. Indicates that the interface is not prepared to accept commands from the user and is blocked on some external resource.
!DnD copy cursor. Indicates that a copy of the dragged object will be created in the area below the cursor if dropped.
!DnD link cursor. Indicates that a link to the original location of the dragged object will be created in the area below the cursor if dropped.
!DnD no-drop cursor. Indicates that the dragged object can't be dropped in the region below the cursor.
forbidden Image:Cursor-forbidden.png Forbidden cursor. Indicates that a particular region is invalid for the current operation. Often rendered as circle with a diagonal line through it.
Scroll/move cursor. Used to indicate that moving the mouse will also move the UI element below the cursor.
split_h Image:Cursor-hsplit.png Horizontal splitter bar cursor. Indicates that the bar below the cursor can be moved up and down to resize the objects it separates. Used when it's not apparent if the object below the cursor is just a visual separator between two other UI elements, or an object that can be manipulated. U
split_v Image:Cursor-vsplit.png Vertical splitter bar cursor. Indicates that the bar below the cursor can be moved left and right to resize the objects it separates. Used when it's not apparent if the object below the cursor is just a visual separator between two other UI elements, or an object that can be manipulated.
size_all Image:Cursor-sizeall.png Indicates that the cursor is over the right edge of a window, and that the edge can be clicked and dragged in order to resize the window horizontally.
size_bdiag Image:Cursor-sizeb.png Indicates that the cursor is over the top-right edge of a window, and that the edge can be clicked and dragged in order to resize the window diagonally.
size_fdiag Image:Cursor-sizef.png Indicates that the cursor is over the top-left edge of a window, and that the edge can be clicked and dragged in order to resize the window diagonally.
size_ver Image:Cursor-sizev.png Indicates that the cursor is over the top edge of a window, and that the edge can be clicked and dragged in order to resize the window vertically.
Indicates that the cursor is over the bottom-right edge of a window, and that the edge can be clicked and dragged in order to resize the window diagonally.
Indicates that the cursor is over the bottom-left edge of a window, and that the edge can be clicked and dragged in order to resize the window diagonally.
Indicates that the cursor is over the bottom edge of a window, and that the edge can be clicked and dragged in order to resize the window vertically.
size_hor Image:Cursor-sizeh.png Indicates that the cursor is over the left edge of a window, and that the edge can be clicked and dragged in order to resize the window horizontally.
up_arrow Image:Cursor-uparrow.png Up pointing arrow cursor. This cursor is typically used to identify an insertion point.
cross Image:Cursor-cross.png Crosshair cursor. Typically used for precision drawing or manipulation of an area.


ShapeQt::CursorShapeValueCursor NameShapeQt::CursorShape ValueCursor Name
Image:Cursor-arrow.pngQt::ArrowCursorleft_ptrImage:Cursor-sizev.pngQt::SizeVerCursorsize_ver
Image:Cursor-uparrow.pngQt::UpArrowCursorup_arrowImage:Cursor-sizeh.pngQt::SizeHorCursorsize_hor
Image:Cursor-cross.pngQt::CrossCursorcrossImage:Cursor-sizeb.pngQt::SizeBDiagCursorsize_bdiag
Image:Cursor-ibeam.pngQt::IBeamCursoribeamImage:Cursor-sizef.pngQt::SizeFDiagCursorsize_fdiag
Image:Cursor-wait.pngQt::WaitCursorwaitImage:Cursor-sizeall.pngQt::SizeAllCursorsize_all
Image:Cursor-busy.pngQt::BusyCursorleft_ptr_watchImage:Cursor-vsplit.pngQt::SplitVCursorsplit_v
Image:Cursor-forbidden.pngQt::ForbiddenCursorforbiddenImage:Cursor-hsplit.pngQt::SplitHCursorsplit_h
Image:Cursor-hand.pngQt::PointingHandCursorpointing_handImage:Cursor-openhand.pngQt::OpenHandCursoropenhand
Image:Cursor-whatsthis.pngQt::WhatsThisCursorwhats_thisImage:Cursor-closedhand.pngQt::ClosedHandCursorclosedhand

Source: Qt4.2 API Reference (http://doc.trolltech.com/4.2/qcursor.html)


Accessibility Notes




See Also

Related To

Keywords