Re: Adjusting the 2.4 schedule (cursors)



Am Die, 2003-06-24 um 19.29 schrieb Keith Packard:
> Around 11 o'clock on Jun 24, Owen Taylor wrote:
> 
> > - X cursor support for GTK+
> 
> I'd like to see at least a preliminary outline of a spec for a set of 
> standard cursor names and how they map to the existing core cursor 
> numbers.  Without that, we're left with the current disaster where cursor 
> themes require far too many cursors to implement reasonably.  We'll need
> rough semantic descriptions for the HIG as well.  Here's a short list, 
> perhaps we can keep it brief and reduce the number of different cursors 
> that appear on the screen for most application uses:
> 
> Pointer.	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.
> 
> Text.		Text input cursor.  Indicates the cursor is in a region which
> 		can select text and possibly edit text.
> 
> Busy.		Busy cursor.  Indicates the interface is not prepared to
> 		accept commands from the user and is blocked on some
> 		external resource.
> 
> Pointer+Busy.	Default cursor + busy cursor.  Indicates a pending activity
> 		which may asycnhronously affect the interface but which
> 		is not blocking commands from the user.
> 
> Grab.		Manipulation cursor.  Indicates the interface is engaged in
> 		direct manipulation of some visible representation of
> 		an object.
> 
> Silly.		Ridiculous cursor.  Indicates that the interface is intent
> 		on provoking the user with arbitrary and capricious responses.
> 
> A simple mapping from X cursors to these names:
> 
> 	Pointer		<->	left_ptr
> 	Text		<->	xterm
> 	Busy		<->	watch
> 	Pointer+Busy	<->	left_ptr
> 	Grab		<->	hand1
> 	Silly		<->	gumby

I compiled a little table of named cursors available on various systems
(Windows, Java, Qt, X). I've attached it instead of pasting it here
inline, since it is a little wide. There seem to be four groups: 

* The first group are those which are found on all systems. You've named
all of these except for one: "Move". 

* The second group are those which are not present in Java, but seem to
be generally useful: Help Select (arrow+?), Working in background
(arrow+busy), Unavailable (circle+diagonal), Alternate Select.

* The third group are the resize cursors. There are two clearly
different families here, "projective" systems which don't distinguish
between up and down or left and right (Windows, Qt) and the others,
which have separate resize cursors for all 8 directions (Java, X). I'd
vote for going with the "non-projective" approach, since a theme can
easily identify up and down by using the same image for both.

* Finally there are a few cursors which are only present on a single
system, and are probably too specialized for our purposes:
"Handwriting", "SplitVCursor", "SplitHCursor", "BlankCursor" (the last
one obviously shouldn't be themed at all).

Matthias
Win32                 Java      Qt                 X                   Description (visual)

Normal Select         Default   ArrowCursor        arrow               Normal arrow
Precision Select      CrossHair CrossCursor        crosshair           Crosshair
Link Select           Hand      PointingHandCursor hand1/hand2         Pointing hand
Move                  Move      SizeAllCursor      fleur               Crosshair with arrow tips 
Text Select           Text      IbeamCursor        xterm               I-beam
Busy                  Wait      WaitCursor         watch               Hourglass

Help Select                     WhatsThisCursor    question_arrow      Arrow + ?
Working in Background                                                  Arrow + hourglass
Unavailable                     ForbiddenCursor    pirate(?)           Circle + diagonal
Alternate Select                UpArrowCursor     (many arrows)        Upwards pointing arrow
Handwriting                                        pencil              Pen
                                SplitVCursor                           Split doubleheaded arrow
                                SplitHCursor                           Split doubleheaded arrow
                                BlankCursor                            Empty

Vertical Resize                 SizeVerCursor                          Doubleheaded arrow
Horizontal Resize               SizeHorCursor                          Doubleheaded arrow
Diagonal Resize 1               SizeBDiagCursor                        Doubleheaded arrow
Diagonal Resize 2               SizeFDiagCursor                        Doubleheaded arrow


                      NResize                      top_side            Arrow pointing to a bar          
                      SResize                      bottom_size         Arrow pointing to a bar
                      WResize                      left_side           Arrow pointing to a bar
                      EResize                      right_side          Arrow pointing to a bar
                      NWResize                     bottom_left_corner  Arrow pointing in a corner
                      NEResize                     bottom_right_corner Arrow pointing in a corner
                      SWResize                     top_left_corner     Arrow pointing in a corner
                      SEResize                     top_right_corner    Arrow pointing in a corner


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]