|
|
| |
X11::Protocol::Other(3) |
User Contributed Perl Documentation |
X11::Protocol::Other(3) |
X11::Protocol::Other -- miscellaneous X11::Protocol helpers
use X11::Protocol::Other;
This is some helper functions for
"X11::Protocol".
Nothing is exported by default, but the functions can be requested in usual
"Exporter" style,
use X11::Protocol::Other 'visual_is_dynamic';
if (visual_is_dynamic ($X, $visual_id)) {
...
}
Or just called with full package name
use X11::Protocol::Other;
if (X11::Protocol::Other::visual_is_dynamic ($X, $visual_id)) {
...
}
There's no ":all" tag since this
module is meant as a grab-bag of functions and to import as-yet unknown
things would be asking for name clashes.
- "$number = root_to_screen ($X, $root)"
- "$hashref = root_to_screen_info ($X, $root)"
- Return the screen number or screen info hash for a given root window.
$root can be any XID integer on
$X. If it's not one of the root windows then the
return is "undef".
- "$number = default_colormap_to_screen ($X, $colormap)"
- "$hashref = default_colormap_to_screen_info ($X,
$colormap)"
- Return the screen number or screen info hash for a given default colormap.
$colormap can be any XID integer on
$X. If it's not one of the screen default
colormaps then the return is
"undef".
- "$bool = visual_is_dynamic ($X, $visual_id)"
- "$bool = visual_class_is_dynamic ($X, $visual_class)"
- Return true if the given visual is dynamic, meaning colormap entries on it
can be changed to change the colour of a given pixel value.
$visual_id is one of the visual ID
numbers, ie. one of the keys in
"$X->{'visuals'}". Or
$visual_class is a VisualClass string like
"PseudoColor" or corresponding integer such as 3.
- "($width, $height) = window_size ($X, $window)"
- "$visual_id = window_visual ($X, $window)"
- Return the size or visual ID of a given window.
$window is an integer XID on
$X. If it's one of the root windows then the
return values are from the screen info hash in
$X, otherwise the server is queried with
"GetGeometry()" (for the size) or
"GetWindowAttributes()" (for the
visual).
These functions are handy when there's a good chance
$window might be a root window and therefore not
need a server round trip.
- "@atoms = get_property_atoms($X, $window, $property)"
- Get from $window (integer XID) a list-of-atoms
property $property (atom integer). The return is a
list of atom integers, possibly an empty list. If
$property doesn't exist or is not atoms then
return an empty list.
- "set_property_atoms($X, $window, $property, @atoms)"
- Set on $window (integer XID) a list-of-atoms
property $property (atom integer) as the given
list of @atoms (possibly empty).
- "($red16, $green16, $blue16) = hexstr_to_rgb($str)"
- Parse a given RGB colour string like "#FF00FF" into 16-bit red,
green, blue components. The return values are always in the range 0 to
65535. The strings recognised are 1, 2, 3 or 4 digit hex.
#RGB
#RRGGBB
#RRRGGGBBB
#RRRRGGGGBBBB
If $str is unrecognised then the
return is an empty list, so for instance
my @rgb = hexstr_to_rgb($str)
or die "Unrecognised colour: $str";
The digits of the 1, 2 and 3 forms are replicated as necessary
to give a 16-bit range. For example 3-digit style "#321FFF000"
gives return values 0x3213, 0xFFFF, 0. Or 1-digit "#F0F" is
0xFFFF, 0, 0xFFFF. Notice "F" expands to 0xFFFF so an
"F", "FF" or "FFF" all mean full
saturation the same as a 4-digit "FFFF".
Would it be worth recognising the Xcms style
"rgb:RR/GG/BB"? Perhaps that's best left to full Xcms, or
general colour conversion modules. The X11R6 X(7) man page describes the
"rgb:" form, but just "#" is much more common.
X11::Protocol, X11::Protocol::GrabServer
Color::Library (many named colours), Convert::Color,
Graphics::Color (Moose based) for more colour parsing
X11::AtomConstants, X11::CursorFont
<http://user42.tuxfamily.org/x11-protocol-other/index.html>
Copyright 2010, 2011, 2012, 2013, 2014, 2017, 2019 Kevin Ryde
X11-Protocol-Other is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3, or (at your
option) any later version.
X11-Protocol-Other is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License
along with X11-Protocol-Other. If not, see
<http://www.gnu.org/licenses/>.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |