X11::CursorFont (3)
Leading comments
Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) Standard preamble: ========================================================================
NAME
X11::CursorFont - cursor font glyph names and numbersSYNOPSIS
use X11::CursorFont '%CURSOR_GLYPH'; my $num = $CURSOR_GLYPH{'fleur'}; # is 52 my $name = $X11::CursorFont::CURSOR_NAME[52]; # is "fleur"
DESCRIPTION
This is the names and numbers of the glyphs in the X11 cursor font which contains various standard mouse pointer cursors.%CURSOR_GLYPH maps a glyph name to its character number in the font,
$CURSOR_GLYPH{'fleur'} # is 52
@CURSOR_NAME conversely is indexed by character number and gives the glyph name,
$CURSOR_NAME[52] # is "fleur"
Each glyph has an associated mask at character number glyph+1 which is the shape of the cursor (the displayed vs transparent pixels). So the character numbers are always even and in @CURSOR_NAME only the even character positions have names.
The cursor images can be viewed with the usual "xfd" font display program,
xfd -fn cursor
The names are per the Xlib /usr/include/X11/cursorfont.h file, without the "XC_" prefixes. The full list is
Name Number X_cursor 0 default fat X arrow 2 based_arrow_down 4 based_arrow_up 6 boat 8 bogosity 10 bottom_left_corner 12 bottom_right_corner 14 bottom_side 16 bottom_tee 18 box_spiral 20 a square spiral center_ptr 22 circle 24 clock 26 coffee_mug 28 cross 30 cross_reverse 32 crosshair 34 "+" shape diamond_cross 36 dot 38 dotbox 40 double_arrow 42 draft_large 44 draft_small 46 draped_box 48 exchange 50 fleur 52 gobbler 54 gumby 56 hand1 58 hand2 60 heart 62 icon 64 iron_cross 66 left_ptr 68 left_side 70 left_tee 72 leftbutton 74 ll_angle 76 lr_angle 78 man 80 middlebutton 82 mouse 84 pencil 86 pirate 88 skull and crossbones plus 90 question_arrow 92 right_ptr 94 right_side 96 right_tee 98 rightbutton 100 rtl_logo 102 sailboat 104 sb_down_arrow 106 sb_h_double_arrow 108 sb_left_arrow 110 sb_right_arrow 112 sb_up_arrow 114 sb_v_double_arrow 116 shuttle 118 sizing 120 spider 122 spraycan 124 star 126 target 128 tcross 130 top_left_arrow 132 top_left_corner 134 top_right_corner 136 top_side 138 top_tee 140 trek 142 ul_angle 144 umbrella 146 ur_angle 148 watch 150 a good "busy" indicator xterm 152 a vertical insertion bar
"X_cursor" is the usual default when the server first starts or when the root window is set to cursor ``None''.
VARIABLES
- %X11::CursorFont::CURSOR_GLYPH
- A mapping of glyph name to cursor font character number.
- @X11::CursorFont::CURSOR_NAME
- A table of cursor font character number to glyph name.
EXPORTS
Nothing is exported by default, but %CURSOR_GLYPH and @CURSOR_NAME can be selected in usual "Exporter" style (see Exporter),
use X11::CursorFont '%CURSOR_GLYPH', '@CURSOR_NAME';
EXAMPLE
For reference, here's how to create a cursor from a desired glyph,
my $cursor_name = 'spraycan'; my $cursor_glyph = $CURSOR_GLYPH{$cursor_name}; # number my $cursor_font = $X->new_rsrc; $X->OpenFont ($cursor_font, "cursor"); # cursor font my $cursor = $X->new_rsrc; $X->CreateGlyphCursor ($cursor, $cursor_font, # font $cursor_font, # mask font $cursor_glyph, # glyph $cursor_glyph + 1, # and its mask 0,0,0, # foreground, black 0xFFFF,0xFFFF,0xFFFF); # background, white $X->CloseFont ($cursor_font); # then use $cursor with CreateWindow or ChangeWindowAttributes # cursor => $cursor
The $cursor_font could be kept open if used repeatedly. Opening and closing isn't a round-trip, so an open when needed may be enough.
Any
All cursors in the core protocol are two-colours with pixels fully opaque or fully transparent as per this create. The
SEE ALSO
X11::Protocol, X11::KeySyms/usr/include/X11/cursorfont.h and listing in the Xlib manual appendix B ("www.x.org/docs/X11" or /usr/share/doc/libx11-dev/libX11.txt.gz).
Xlib Xmu "XmuCursorNameToIndex()" ("www.x.org/docs/Xmu" or /usr/share/doc/libxmu-headers/Xmu.txt.gz)
xfd(1) to display the cursor font.
xsetroot(1) to change the root window cursor.
HOME PAGE
<user42.tuxfamily.org/x11-protocol-other/index.html>LICENSE
Copyright 2011, 2012, 2013 Kevin RydeX11-Protocol-Other is free software; you can redistribute it and/or modify it under the terms of the
X11-Protocol-Other is distributed in the hope that it will be useful, but
You should have received a copy of the