GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
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/>.

2019-06-03 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.