x11 0.0.1a2 → 0.0.1a3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/X11/X.rb +14 -9
- data/lib/X11/X/c.rb +21 -20
- data/lib/X11/XKBlib.rb +29 -0
- data/lib/X11/Xatom.rb +152 -136
- data/lib/X11/Xatom/c.rb +15 -15
- data/lib/X11/Xdefs.rb +7 -7
- data/lib/X11/Xdefs/c.rb +20 -20
- data/lib/X11/Xlib.rb +19 -7
- data/lib/X11/Xlib/c.rb +21 -8
- data/lib/X11/Xlib/c/functions.rb +373 -27
- data/lib/X11/Xlib/c/type/any_event.rb +13 -13
- data/lib/X11/Xlib/c/type/button_event.rb +23 -23
- data/lib/X11/Xlib/c/type/circulate_event.rb +15 -15
- data/lib/X11/Xlib/c/type/circulate_request_event.rb +15 -15
- data/lib/X11/Xlib/c/type/client_message_event.rb +22 -22
- data/lib/X11/Xlib/c/type/colormap_event.rb +16 -16
- data/lib/X11/Xlib/c/type/configure_event.rb +21 -21
- data/lib/X11/Xlib/c/type/configure_request_event.rb +22 -22
- data/lib/X11/Xlib/c/type/create_window_event.rb +20 -20
- data/lib/X11/Xlib/c/type/crossing_event.rb +25 -25
- data/lib/X11/Xlib/c/type/destroy_window_event.rb +14 -14
- data/lib/X11/Xlib/c/type/display.rb +52 -52
- data/lib/X11/Xlib/c/type/error_event.rb +15 -15
- data/lib/X11/Xlib/c/type/event.rb +43 -43
- data/lib/X11/Xlib/c/type/expose_event.rb +18 -18
- data/lib/X11/Xlib/c/type/focus_change_event.rb +15 -15
- data/lib/X11/Xlib/c/type/gc.rb +10 -10
- data/lib/X11/Xlib/c/type/gc_values.rb +54 -0
- data/lib/X11/Xlib/c/type/generic_event.rb +14 -14
- data/lib/X11/Xlib/c/type/generic_event_cookie.rb +16 -16
- data/lib/X11/Xlib/c/type/graphics_expose_event.rb +21 -21
- data/lib/X11/Xlib/c/type/gravity_event.rb +16 -16
- data/lib/X11/Xlib/c/type/image.rb +56 -0
- data/lib/X11/Xlib/c/type/key_event.rb +23 -23
- data/lib/X11/Xlib/c/type/key_sym.rb +15 -15
- data/lib/X11/Xlib/c/type/keymap_event.rb +14 -14
- data/lib/X11/Xlib/c/type/map_event.rb +15 -15
- data/lib/X11/Xlib/c/type/map_request_event.rb +18 -18
- data/lib/X11/Xlib/c/type/mapping_event.rb +16 -16
- data/lib/X11/Xlib/c/type/motion_event.rb +23 -23
- data/lib/X11/Xlib/c/type/no_expose_event.rb +15 -15
- data/lib/X11/Xlib/c/type/point.rb +33 -0
- data/lib/X11/Xlib/c/type/property_event.rb +16 -16
- data/lib/X11/Xlib/c/type/reparent_event.rb +18 -18
- data/lib/X11/Xlib/c/type/resize_request_event.rb +15 -15
- data/lib/X11/Xlib/c/type/screen.rb +27 -27
- data/lib/X11/Xlib/c/type/selection_clear_event.rb +15 -15
- data/lib/X11/Xlib/c/type/selection_event.rb +17 -17
- data/lib/X11/Xlib/c/type/selection_request_event.rb +18 -18
- data/lib/X11/Xlib/c/type/status.rb +15 -15
- data/lib/X11/Xlib/c/type/unmap_event.rb +15 -15
- data/lib/X11/Xlib/c/type/visibility_event.rb +14 -14
- data/lib/X11/Xlib/c/type/visual.rb +16 -16
- data/lib/X11/Xlib/c/type/window_attributes.rb +31 -31
- data/lib/X11/Xlib/c/types.rb +9 -7
- data/lib/X11/Xlib/display.rb +257 -174
- data/lib/X11/Xlib/display/extensions.rb +56 -0
- data/lib/X11/Xlib/drawable.rb +48 -0
- data/lib/X11/Xlib/error.rb +100 -0
- data/lib/X11/Xlib/event.rb +66 -37
- data/lib/X11/Xlib/event/any.rb +8 -10
- data/lib/X11/Xlib/event/button_press.rb +9 -20
- data/lib/X11/Xlib/event/button_release.rb +9 -20
- data/lib/X11/Xlib/event/circulate_notify.rb +11 -12
- data/lib/X11/Xlib/event/circulate_request.rb +11 -12
- data/lib/X11/Xlib/event/client_message.rb +11 -13
- data/lib/X11/Xlib/event/colormap_notify.rb +12 -13
- data/lib/X11/Xlib/event/configure_notify.rb +17 -18
- data/lib/X11/Xlib/event/configure_request.rb +18 -19
- data/lib/X11/Xlib/event/create_notify.rb +16 -17
- data/lib/X11/Xlib/event/destroy_notify.rb +10 -11
- data/lib/X11/Xlib/event/enter_notify.rb +10 -8
- data/lib/X11/Xlib/event/expose.rb +15 -16
- data/lib/X11/Xlib/event/focus_in.rb +9 -12
- data/lib/X11/Xlib/event/focus_out.rb +9 -12
- data/lib/X11/Xlib/event/generic.rb +35 -0
- data/lib/X11/Xlib/event/generic/button.rb +46 -0
- data/lib/X11/Xlib/event/generic/crossing.rb +48 -0
- data/lib/X11/Xlib/{window/properties/property/class.rb → event/generic/focus_change.rb} +16 -14
- data/lib/X11/Xlib/event/generic/key.rb +46 -0
- data/lib/X11/Xlib/event/generic/motion.rb +46 -0
- data/lib/X11/Xlib/event/generic_event.rb +12 -14
- data/lib/X11/Xlib/event/graphics_expose.rb +15 -14
- data/lib/X11/Xlib/event/gravity_notify.rb +12 -13
- data/lib/X11/Xlib/event/helper.rb +123 -91
- data/lib/X11/Xlib/event/key_press.rb +9 -20
- data/lib/X11/Xlib/event/key_release.rb +9 -20
- data/lib/X11/Xlib/event/keymap_notify.rb +13 -14
- data/lib/X11/Xlib/event/leave_notify.rb +10 -20
- data/lib/X11/Xlib/event/map_notify.rb +11 -12
- data/lib/X11/Xlib/event/map_request.rb +10 -11
- data/lib/X11/Xlib/event/mapping_notify.rb +11 -13
- data/lib/X11/Xlib/event/motion_notify.rb +10 -20
- data/lib/X11/Xlib/event/no_expose.rb +8 -9
- data/lib/X11/Xlib/event/property_notify.rb +12 -13
- data/lib/X11/Xlib/event/reparent_notify.rb +14 -15
- data/lib/X11/Xlib/event/resize_request.rb +11 -12
- data/lib/X11/Xlib/event/selection_clear.rb +10 -12
- data/lib/X11/Xlib/event/selection_notify.rb +13 -15
- data/lib/X11/Xlib/event/selection_request.rb +14 -16
- data/lib/X11/Xlib/event/unmap_notify.rb +11 -12
- data/lib/X11/Xlib/event/visibility_notify.rb +10 -11
- data/lib/X11/Xlib/events.rb +11 -7
- data/lib/X11/Xlib/exceptions.rb +10 -10
- data/lib/X11/Xlib/graphic_context.rb +69 -0
- data/lib/X11/Xlib/graphic_context/functions.rb +50 -0
- data/lib/X11/Xlib/{window/properties/property/command.rb → graphic_context/values.rb} +17 -13
- data/lib/X11/Xlib/hints.rb +19 -18
- data/lib/X11/Xlib/hints/flags.rb +15 -15
- data/lib/X11/Xlib/hints/icon.rb +14 -16
- data/lib/X11/Xlib/id.rb +75 -0
- data/lib/X11/Xlib/image.rb +64 -0
- data/lib/X11/Xlib/keysym.rb +53 -26
- data/lib/X11/Xlib/mask.rb +81 -55
- data/lib/X11/Xlib/pixmap.rb +60 -0
- data/lib/X11/Xlib/planes.rb +50 -0
- data/lib/X11/Xlib/revert_to.rb +10 -10
- data/lib/X11/Xlib/screen.rb +48 -31
- data/lib/X11/Xlib/status.rb +56 -56
- data/lib/X11/Xlib/transform.rb +25 -25
- data/lib/X11/Xlib/visual.rb +19 -19
- data/lib/X11/Xlib/window.rb +399 -188
- data/lib/X11/Xlib/window/attributes.rb +74 -41
- data/lib/X11/Xlib/window/properties.rb +57 -38
- data/lib/X11/Xlib/window/properties/property.rb +135 -70
- data/lib/X11/Xlib/window/properties/property/net_virtual_root.rb +13 -13
- data/lib/X11/Xlib/window/properties/property/parser.rb +45 -35
- data/lib/X11/Xlib/window/properties/property/parser/arc.rb +18 -16
- data/lib/X11/Xlib/window/properties/property/parser/atom.rb +14 -10
- data/lib/X11/Xlib/window/properties/property/parser/cardinal.rb +14 -9
- data/lib/X11/Xlib/window/properties/property/parser/hints.rb +17 -16
- data/lib/X11/Xlib/window/properties/property/parser/integer.rb +39 -0
- data/lib/X11/Xlib/window/properties/property/parser/state.rb +39 -0
- data/lib/X11/Xlib/window/properties/property/parser/string.rb +59 -0
- data/lib/X11/Xlib/window/properties/property/parser/window.rb +39 -0
- data/lib/X11/Xmd.rb +7 -7
- data/lib/X11/Xmd/c.rb +19 -19
- data/lib/X11/Xregion.rb +32 -0
- data/lib/X11/Xregion/c.rb +29 -0
- data/lib/X11/Xregion/c/type/box.rb +35 -0
- data/lib/X11/Xregion/c/type/point_block.rb +33 -0
- data/lib/X11/Xregion/c/type/rectangle.rb +35 -0
- data/lib/X11/Xregion/c/type/region.rb +35 -0
- data/lib/X11/Xregion/c/types.rb +32 -0
- data/lib/X11/Xutil.rb +12 -17
- data/lib/X11/Xutil/c.rb +7 -10
- data/lib/X11/Xutil/c/functions.rb +7 -7
- data/lib/X11/Xutil/c/type/class_hint.rb +10 -10
- data/lib/X11/Xutil/c/type/region.rb +31 -0
- data/lib/X11/Xutil/c/type/text_property.rb +12 -12
- data/lib/X11/Xutil/c/types.rb +8 -7
- data/lib/X11/Xutil/state.rb +43 -0
- data/lib/X11/Xutil/window.rb +28 -28
- data/lib/X11/cursorfont.rb +7 -7
- data/lib/X11/cursorfont/c.rb +8 -8
- data/lib/X11/cursorfont/font.rb +113 -113
- data/lib/X11/extension.rb +65 -0
- data/lib/X11/extensions.rb +105 -126
- data/lib/X11/extensions/Xrandr.rb +49 -0
- data/lib/X11/extensions/Xrandr/c.rb +30 -0
- data/lib/X11/extensions/Xrandr/c/functions.rb +106 -0
- data/lib/X11/extensions/Xrandr/c/type/crtc_gamma.rb +35 -0
- data/lib/X11/extensions/Xrandr/c/type/crtc_info.rb +43 -0
- data/lib/X11/extensions/Xrandr/c/type/crtc_transform_attributes.rb +39 -0
- data/lib/X11/extensions/Xrandr/c/type/mode_info.rb +45 -0
- data/lib/X11/extensions/Xrandr/c/type/output_info.rb +46 -0
- data/lib/X11/extensions/Xrandr/c/type/panning.rb +44 -0
- data/lib/X11/extensions/Xrandr/c/type/property_info.rb +36 -0
- data/lib/X11/extensions/Xrandr/c/type/screen_resources.rb +39 -0
- data/lib/X11/extensions/Xrandr/c/type/screen_size.rb +35 -0
- data/lib/X11/extensions/Xrandr/c/types.rb +48 -0
- data/lib/X11/extensions/Xrandr/crtc.rb +70 -0
- data/lib/X11/extensions/Xrandr/crtc/gamma.rb +100 -0
- data/lib/X11/extensions/Xrandr/crtc/info.rb +62 -0
- data/lib/X11/extensions/Xrandr/crtc/panning.rb +74 -0
- data/lib/X11/extensions/Xrandr/event.rb +29 -0
- data/lib/X11/extensions/Xrandr/output.rb +59 -0
- data/lib/X11/extensions/Xrandr/output/info.rb +105 -0
- data/lib/X11/extensions/Xrandr/output/properties.rb +78 -0
- data/lib/X11/extensions/Xrandr/output/properties/property.rb +161 -0
- data/lib/X11/extensions/Xrandr/output/properties/property/info.rb +73 -0
- data/lib/X11/extensions/Xrandr/output/properties/property/parser.rb +73 -0
- data/lib/X11/extensions/Xrandr/output/properties/property/parser/atom.rb +39 -0
- data/lib/X11/extensions/Xrandr/output/properties/property/parser/integer.rb +43 -0
- data/lib/X11/extensions/Xrandr/screen.rb +49 -0
- data/lib/X11/extensions/Xrandr/screen/backlight.rb +76 -0
- data/lib/X11/extensions/Xrandr/screen_resources.rb +81 -0
- data/lib/X11/extensions/Xrandr/window.rb +41 -0
- data/lib/X11/extensions/Xrender.rb +34 -0
- data/lib/X11/extensions/Xrender/c.rb +30 -0
- data/lib/X11/extensions/Xrender/c/functions.rb +50 -0
- data/lib/X11/extensions/Xrender/c/type/anim_cursor.rb +33 -0
- data/lib/X11/extensions/Xrender/c/type/circle.rb +34 -0
- data/lib/X11/extensions/Xrender/c/type/conical_gradient.rb +33 -0
- data/lib/X11/extensions/Xrender/c/type/filters.rb +35 -0
- data/lib/X11/extensions/Xrender/c/type/glyph_elt16.rb +36 -0
- data/lib/X11/extensions/Xrender/c/type/glyph_elt32.rb +36 -0
- data/lib/X11/extensions/Xrender/c/type/glyph_elt8.rb +36 -0
- data/lib/X11/extensions/Xrender/c/type/glyph_info.rb +37 -0
- data/lib/X11/extensions/Xrender/c/type/index_value.rb +36 -0
- data/lib/X11/extensions/Xrender/c/type/line_fixed.rb +33 -0
- data/lib/X11/extensions/Xrender/c/type/linear_gradient.rb +33 -0
- data/lib/X11/extensions/Xrender/c/type/point_double.rb +33 -0
- data/lib/X11/extensions/Xrender/c/type/point_fixed.rb +33 -0
- data/lib/X11/extensions/Xrender/c/type/radial_gradient.rb +33 -0
- data/lib/X11/extensions/Xrender/c/type/render_color.rb +35 -0
- data/lib/X11/extensions/Xrender/c/type/render_direct_format.rb +39 -0
- data/lib/X11/extensions/Xrender/c/type/render_pict_format.rb +36 -0
- data/lib/X11/extensions/Xrender/c/type/render_picture_attributes.rb +44 -0
- data/lib/X11/extensions/Xrender/c/type/span_fix.rb +34 -0
- data/lib/X11/extensions/Xrender/c/type/transform.rb +32 -0
- data/lib/X11/extensions/Xrender/c/type/trap.rb +33 -0
- data/lib/X11/extensions/Xrender/c/type/trapezoid.rb +35 -0
- data/lib/X11/extensions/Xrender/c/type/triangle.rb +34 -0
- data/lib/X11/extensions/Xrender/c/types.rb +56 -0
- data/lib/X11/extensions/Xrender/mask.rb +48 -0
- data/lib/X11/extensions/randr.rb +29 -0
- data/lib/X11/extensions/randr/c.rb +38 -0
- data/lib/X11/extensions/render.rb +29 -0
- data/lib/X11/extensions/render/c.rb +34 -0
- data/lib/X11/extensions/xf86vmode.rb +42 -0
- data/lib/X11/extensions/xf86vmode/c.rb +30 -0
- data/lib/X11/extensions/xf86vmode/c/functions.rb +59 -0
- data/lib/X11/extensions/xf86vmode/c/type/gamma.rb +34 -0
- data/lib/X11/extensions/xf86vmode/c/type/mode_info.rb +44 -0
- data/lib/X11/extensions/xf86vmode/c/type/mode_line.rb +43 -0
- data/lib/X11/extensions/xf86vmode/c/type/monitor.rb +38 -0
- data/lib/X11/extensions/xf86vmode/c/type/sync_range.rb +33 -0
- data/lib/X11/extensions/xf86vmode/c/types.rb +36 -0
- data/lib/X11/extensions/xf86vmode/screen.rb +53 -0
- data/lib/X11/extensions/xf86vmode/screen/gamma.rb +79 -0
- data/lib/X11/extensions/xf86vmode/screen/gamma/ramp.rb +86 -0
- data/lib/X11/keysym.rb +7 -25
- data/lib/X11/misc/temperature.rb +458 -0
- data/lib/X11/simple.rb +8 -7
- data/lib/X11/simple/display.rb +35 -37
- data/lib/X11/simple/window.rb +39 -19
- data/lib/X11/window_manager.rb +32 -0
- data/lib/X11/window_manager/desktops.rb +82 -0
- data/lib/X11/window_manager/desktops/desktop.rb +78 -0
- data/lib/X11/window_manager/supports.rb +56 -0
- data/lib/X11/window_manager/supports/feature.rb +46 -0
- data/lib/X11/window_manager/window.rb +102 -0
- data/lib/X11/window_manager/window_manager.rb +73 -0
- metadata +216 -66
@@ -0,0 +1,36 @@
|
|
1
|
+
#--
|
2
|
+
# Copyleft meh. [http://meh.paranoid.pk | meh@paranoici.org]
|
3
|
+
#
|
4
|
+
# Redistribution and use in source and binary forms, with or without modification, are
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
8
|
+
# conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
11
|
+
# of conditions and the following disclaimer in the documentation and/or other materials
|
12
|
+
# provided with the distribution.
|
13
|
+
#
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY meh ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
15
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL meh OR
|
17
|
+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
18
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
19
|
+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
20
|
+
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
21
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
22
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
#
|
24
|
+
# The views and conclusions contained in the software and documentation are those of the
|
25
|
+
# authors and should not be interpreted as representing official policies, either expressed
|
26
|
+
# or implied.
|
27
|
+
#++
|
28
|
+
|
29
|
+
class X11::C::XRRPropertyInfo < FFI::Struct
|
30
|
+
layout \
|
31
|
+
:pending, :Bool,
|
32
|
+
:range, :Bool,
|
33
|
+
:immutable, :Bool,
|
34
|
+
:num_values, :int,
|
35
|
+
:values, :pointer
|
36
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
#--
|
2
|
+
# Copyleft meh. [http://meh.paranoid.pk | meh@paranoici.org]
|
3
|
+
#
|
4
|
+
# Redistribution and use in source and binary forms, with or without modification, are
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
8
|
+
# conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
11
|
+
# of conditions and the following disclaimer in the documentation and/or other materials
|
12
|
+
# provided with the distribution.
|
13
|
+
#
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY meh ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
15
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL meh OR
|
17
|
+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
18
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
19
|
+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
20
|
+
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
21
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
22
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
#
|
24
|
+
# The views and conclusions contained in the software and documentation are those of the
|
25
|
+
# authors and should not be interpreted as representing official policies, either expressed
|
26
|
+
# or implied.
|
27
|
+
#++
|
28
|
+
|
29
|
+
class X11::C::XRRScreenResources < FFI::Struct
|
30
|
+
layout \
|
31
|
+
:timestamp, :Time,
|
32
|
+
:configTimestamp, :Time,
|
33
|
+
:ncrtc, :int,
|
34
|
+
:crtcs, :pointer,
|
35
|
+
:noutput, :int,
|
36
|
+
:outputs, :pointer,
|
37
|
+
:nmode, :int,
|
38
|
+
:modes, :pointer
|
39
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#--
|
2
|
+
# Copyleft meh. [http://meh.paranoid.pk | meh@paranoici.org]
|
3
|
+
#
|
4
|
+
# Redistribution and use in source and binary forms, with or without modification, are
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
8
|
+
# conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
11
|
+
# of conditions and the following disclaimer in the documentation and/or other materials
|
12
|
+
# provided with the distribution.
|
13
|
+
#
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY meh ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
15
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL meh OR
|
17
|
+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
18
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
19
|
+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
20
|
+
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
21
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
22
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
#
|
24
|
+
# The views and conclusions contained in the software and documentation are those of the
|
25
|
+
# authors and should not be interpreted as representing official policies, either expressed
|
26
|
+
# or implied.
|
27
|
+
#++
|
28
|
+
|
29
|
+
class X11::C::XRRScreenSize < FFI::Struct
|
30
|
+
layout \
|
31
|
+
:width, :int,
|
32
|
+
:height, :int,
|
33
|
+
:mwidth, :int,
|
34
|
+
:mheight, :int
|
35
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#--
|
2
|
+
# Copyleft meh. [http://meh.paranoid.pk | meh@paranoici.org]
|
3
|
+
#
|
4
|
+
# Redistribution and use in source and binary forms, with or without modification, are
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
8
|
+
# conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
11
|
+
# of conditions and the following disclaimer in the documentation and/or other materials
|
12
|
+
# provided with the distribution.
|
13
|
+
#
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY meh ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
15
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL meh OR
|
17
|
+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
18
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
19
|
+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
20
|
+
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
21
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
22
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
#
|
24
|
+
# The views and conclusions contained in the software and documentation are those of the
|
25
|
+
# authors and should not be interpreted as representing official policies, either expressed
|
26
|
+
# or implied.
|
27
|
+
#++
|
28
|
+
|
29
|
+
require 'X11/X'
|
30
|
+
require 'X11/Xdefs'
|
31
|
+
|
32
|
+
module FFI
|
33
|
+
typedef :XID, :RROutput
|
34
|
+
typedef :XID, :RRCrtc
|
35
|
+
typedef :XID, :RRMode
|
36
|
+
|
37
|
+
typedef :ulong, :XRRModeFlags
|
38
|
+
end
|
39
|
+
|
40
|
+
require 'X11/extensions/Xrandr/c/type/screen_size'
|
41
|
+
require 'X11/extensions/Xrandr/c/type/mode_info'
|
42
|
+
require 'X11/extensions/Xrandr/c/type/screen_resources'
|
43
|
+
require 'X11/extensions/Xrandr/c/type/output_info'
|
44
|
+
require 'X11/extensions/Xrandr/c/type/property_info'
|
45
|
+
require 'X11/extensions/Xrandr/c/type/crtc_info'
|
46
|
+
require 'X11/extensions/Xrandr/c/type/crtc_gamma'
|
47
|
+
require 'X11/extensions/Xrandr/c/type/crtc_transform_attributes'
|
48
|
+
require 'X11/extensions/Xrandr/c/type/panning'
|
@@ -0,0 +1,70 @@
|
|
1
|
+
#--
|
2
|
+
# Copyleft meh. [http://meh.paranoid.pk | meh@paranoici.org]
|
3
|
+
#
|
4
|
+
# Redistribution and use in source and binary forms, with or without modification, are
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
8
|
+
# conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
11
|
+
# of conditions and the following disclaimer in the documentation and/or other materials
|
12
|
+
# provided with the distribution.
|
13
|
+
#
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY meh ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
15
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL meh OR
|
17
|
+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
18
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
19
|
+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
20
|
+
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
21
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
22
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
#
|
24
|
+
# The views and conclusions contained in the software and documentation are those of the
|
25
|
+
# authors and should not be interpreted as representing official policies, either expressed
|
26
|
+
# or implied.
|
27
|
+
#++
|
28
|
+
|
29
|
+
require 'X11/misc/temperature'
|
30
|
+
|
31
|
+
require 'X11/extensions/Xrandr/crtc/info'
|
32
|
+
require 'X11/extensions/Xrandr/crtc/gamma'
|
33
|
+
require 'X11/extensions/Xrandr/crtc/panning'
|
34
|
+
|
35
|
+
module X11; module Xrandr
|
36
|
+
|
37
|
+
class Crtc < ID
|
38
|
+
extend Forwardable
|
39
|
+
|
40
|
+
attr_reader :resources
|
41
|
+
def_delegators :@resources, :screen
|
42
|
+
|
43
|
+
def initialize (resources, id)
|
44
|
+
super(resources.screen.display, id)
|
45
|
+
|
46
|
+
@resources = resources
|
47
|
+
end
|
48
|
+
|
49
|
+
def info
|
50
|
+
Crtc::Info.get(self)
|
51
|
+
end
|
52
|
+
|
53
|
+
def gamma
|
54
|
+
Crtc::Gamma.get(self)
|
55
|
+
end
|
56
|
+
|
57
|
+
named :value, :brightness, :correction, :optional => 1 .. -1
|
58
|
+
def temperature (value, brightness=1.0, correction=nil)
|
59
|
+
Temperature.gamma(value, gamma.size, brightness, correction).tap {|ramps|
|
60
|
+
gamma.set(:red => ramps.red, :green => ramps.green, :blue => ramps.blue)
|
61
|
+
display.flush
|
62
|
+
}
|
63
|
+
end
|
64
|
+
|
65
|
+
def panning
|
66
|
+
Crtc::Panning.get(self)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end; end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
#--
|
2
|
+
# Copyleft meh. [http://meh.paranoid.pk | meh@paranoici.org]
|
3
|
+
#
|
4
|
+
# Redistribution and use in source and binary forms, with or without modification, are
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
8
|
+
# conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
11
|
+
# of conditions and the following disclaimer in the documentation and/or other materials
|
12
|
+
# provided with the distribution.
|
13
|
+
#
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY meh ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
15
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL meh OR
|
17
|
+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
18
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
19
|
+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
20
|
+
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
21
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
22
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
#
|
24
|
+
# The views and conclusions contained in the software and documentation are those of the
|
25
|
+
# authors and should not be interpreted as representing official policies, either expressed
|
26
|
+
# or implied.
|
27
|
+
#++
|
28
|
+
|
29
|
+
module X11; module Xrandr; class Crtc < ID
|
30
|
+
|
31
|
+
class Gamma
|
32
|
+
def self.finalizer (pointer)
|
33
|
+
proc {
|
34
|
+
C::XRRFreeCrtcGamma(pointer)
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.get (crtc)
|
39
|
+
new(crtc, C::XRRGetCrtcGamma(crtc.display.to_ffi, crtc.to_ffi)).tap {|gamma|
|
40
|
+
ObjectSpace.define_finalizer gamma, finalizer(gamma.to_ffi)
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.create (crtc)
|
45
|
+
new(crtc, C::XRRAllocGamma(C::XRRGetCrtcGammaSize(crtc.display.to_ffi, crtc.to_ffi))).tap {|gamma|
|
46
|
+
ObjectSpace.define_finalizer gamma, finalizer(gamma.to_ffi)
|
47
|
+
}
|
48
|
+
end
|
49
|
+
|
50
|
+
attr_reader :crtc
|
51
|
+
|
52
|
+
def initialize (crtc, pointer)
|
53
|
+
@crtc = crtc
|
54
|
+
@internal = pointer.is_a?(C::XRRCrtcGamma) ? pointer : C::XRRCrtcGamma.new(pointer)
|
55
|
+
end
|
56
|
+
|
57
|
+
def size
|
58
|
+
@internal[:size]
|
59
|
+
end
|
60
|
+
|
61
|
+
[:red, :green, :blue].each {|name|
|
62
|
+
define_method name do
|
63
|
+
@internal[name].read_array_of(:ushort, size)
|
64
|
+
end
|
65
|
+
|
66
|
+
define_method "#{name}=" do |value|
|
67
|
+
@internal[name].write_array_of(:ushort, value)
|
68
|
+
end
|
69
|
+
|
70
|
+
define_method "#{name}!" do |value|
|
71
|
+
__send__ "#{name}=", value
|
72
|
+
save!
|
73
|
+
end
|
74
|
+
}
|
75
|
+
|
76
|
+
def get
|
77
|
+
Struct.new(:red, :green, :blue).new(red, green, blue)
|
78
|
+
end
|
79
|
+
|
80
|
+
named :red, :green, :blue, :optional => 0 .. -1
|
81
|
+
def set (red=nil, green=nil, blue=nil)
|
82
|
+
self.red = red if red
|
83
|
+
self.green = green if green
|
84
|
+
self.blue = blue if blue
|
85
|
+
|
86
|
+
save!
|
87
|
+
end
|
88
|
+
|
89
|
+
def save!
|
90
|
+
C::XRRSetCrtcGamma(crtc.display.to_ffi, crtc.to_ffi, to_ffi)
|
91
|
+
crtc.display.flush
|
92
|
+
self
|
93
|
+
end
|
94
|
+
|
95
|
+
def to_ffi
|
96
|
+
@internal.pointer
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
end; end; end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
#--
|
2
|
+
# Copyleft meh. [http://meh.paranoid.pk | meh@paranoici.org]
|
3
|
+
#
|
4
|
+
# Redistribution and use in source and binary forms, with or without modification, are
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
8
|
+
# conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
11
|
+
# of conditions and the following disclaimer in the documentation and/or other materials
|
12
|
+
# provided with the distribution.
|
13
|
+
#
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY meh ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
15
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL meh OR
|
17
|
+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
18
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
19
|
+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
20
|
+
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
21
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
22
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
#
|
24
|
+
# The views and conclusions contained in the software and documentation are those of the
|
25
|
+
# authors and should not be interpreted as representing official policies, either expressed
|
26
|
+
# or implied.
|
27
|
+
#++
|
28
|
+
|
29
|
+
module X11; module Xrandr; class Crtc < ID
|
30
|
+
|
31
|
+
class Info
|
32
|
+
def self.finalizer (pointer)
|
33
|
+
proc {
|
34
|
+
C::XRRFreeCrtcInfo(pointer)
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.get (crtc)
|
39
|
+
new(crtc, C::XRRGetCrtcInfo(crtc.display.to_ffi, crtc.resources.to_ffi, crtc.to_ffi)).tap {|info|
|
40
|
+
ObjectSpace.define_finalizer info, finalizer(info.to_ffi)
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
attr_reader :crtc
|
45
|
+
|
46
|
+
def initialize (crtc, pointer)
|
47
|
+
@crtc = crtc
|
48
|
+
@internal = pointer.is_a?(C::XRRCrtcInfo) ? pointer : C::XRRCrtcInfo.new(pointer)
|
49
|
+
end
|
50
|
+
|
51
|
+
C::XRRCrtcInfo.layout.members.each {|name|
|
52
|
+
define_method name do
|
53
|
+
@internal[name]
|
54
|
+
end
|
55
|
+
}
|
56
|
+
|
57
|
+
def to_ffi
|
58
|
+
@internal.pointer
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
end; end; end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
#--
|
2
|
+
# Copyleft meh. [http://meh.paranoid.pk | meh@paranoici.org]
|
3
|
+
#
|
4
|
+
# Redistribution and use in source and binary forms, with or without modification, are
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
8
|
+
# conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
11
|
+
# of conditions and the following disclaimer in the documentation and/or other materials
|
12
|
+
# provided with the distribution.
|
13
|
+
#
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY meh ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
15
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL meh OR
|
17
|
+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
18
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
19
|
+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
20
|
+
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
21
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
22
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
#
|
24
|
+
# The views and conclusions contained in the software and documentation are those of the
|
25
|
+
# authors and should not be interpreted as representing official policies, either expressed
|
26
|
+
# or implied.
|
27
|
+
#++
|
28
|
+
|
29
|
+
module X11; module Xrandr; class Crtc < ID
|
30
|
+
|
31
|
+
class Panning
|
32
|
+
def self.finalizer (pointer)
|
33
|
+
proc {
|
34
|
+
C::XRRFreePanning(pointer)
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.get (crtc)
|
39
|
+
new(crtc, C::XRRGetPanning(crtc.display.to_ffi, crtc.resources.to_ffi, crtc.to_ffi)).tap {|panning|
|
40
|
+
ObjectSpace.define_finalizer panning, finalizer(panning.to_ffi)
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
attr_reader :crtc
|
45
|
+
|
46
|
+
def initialize (crtc, pointer)
|
47
|
+
@crtc = crtc
|
48
|
+
@internal = pointer.is_a?(C::XRRPanning) ? pointer : C::XRRPanning.new(pointer)
|
49
|
+
end
|
50
|
+
|
51
|
+
C::XRRPanning.layout.members.each {|name|
|
52
|
+
define_method name do
|
53
|
+
@internal[name]
|
54
|
+
end
|
55
|
+
}
|
56
|
+
|
57
|
+
def track
|
58
|
+
Struct.new(:left, :top, :width, :height).new(track_left, track_top, track_width, track_height)
|
59
|
+
end
|
60
|
+
|
61
|
+
def border
|
62
|
+
Struct.new(:left, :top, :right, :bottom).new(border_left, border_top, border_right, border_bottom)
|
63
|
+
end
|
64
|
+
|
65
|
+
def save!
|
66
|
+
C::XRRSetPanning(crtc.display.to_ffi, crtc.resources.to_ffi, crtc.to_ffi, to_ffi)
|
67
|
+
end
|
68
|
+
|
69
|
+
def to_ffi
|
70
|
+
@internal.pointer
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
end; end; end
|