x11 0.0.1a2 → 0.0.1a3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
data/lib/X11/cursorfont/font.rb
CHANGED
@@ -1,26 +1,26 @@
|
|
1
1
|
#--
|
2
2
|
# Copyleft meh. [http://meh.paranoid.pk | meh@paranoici.org]
|
3
|
-
#
|
3
|
+
#
|
4
4
|
# Redistribution and use in source and binary forms, with or without modification, are
|
5
5
|
# permitted provided that the following conditions are met:
|
6
|
-
#
|
6
|
+
#
|
7
7
|
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
8
8
|
# conditions and the following disclaimer.
|
9
|
-
#
|
9
|
+
#
|
10
10
|
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
11
11
|
# of conditions and the following disclaimer in the documentation and/or other materials
|
12
12
|
# provided with the distribution.
|
13
|
-
#
|
14
|
-
# THIS SOFTWARE IS PROVIDED BY
|
13
|
+
#
|
14
|
+
# THIS SOFTWARE IS PROVIDED BY meh ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
15
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
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL meh OR
|
17
17
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
18
18
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
19
19
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
20
20
|
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
21
21
|
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
22
22
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
-
#
|
23
|
+
#
|
24
24
|
# The views and conclusions contained in the software and documentation are those of the
|
25
25
|
# authors and should not be interpreted as representing official policies, either expressed
|
26
26
|
# or implied.
|
@@ -29,119 +29,119 @@
|
|
29
29
|
module X11; module Cursor
|
30
30
|
|
31
31
|
class Font
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
32
|
+
module Shapes
|
33
|
+
@shapes = {
|
34
|
+
:num_glyphs => 154,
|
35
|
+
:X_cursor => 0,
|
36
|
+
:arrow => 2,
|
37
|
+
:based_arrow_down => 4,
|
38
|
+
:based_arrow_up => 6,
|
39
|
+
:boat => 8,
|
40
|
+
:bogosity => 10,
|
41
|
+
:bottom_left_corner => 12,
|
42
|
+
:bottom_right_corner => 14,
|
43
|
+
:bottom_side => 16,
|
44
|
+
:bottom_tee => 18,
|
45
|
+
:box_spiral => 20,
|
46
|
+
:center_ptr => 22,
|
47
|
+
:circle => 24,
|
48
|
+
:clock => 26,
|
49
|
+
:coffee_mug => 28,
|
50
|
+
:cross => 30,
|
51
|
+
:cross_reverse => 32,
|
52
|
+
:crosshair => 34,
|
53
|
+
:diamond_cross => 36,
|
54
|
+
:dot => 38,
|
55
|
+
:dotbox => 40,
|
56
|
+
:double_arrow => 42,
|
57
|
+
:draft_large => 44,
|
58
|
+
:draft_small => 46,
|
59
|
+
:draped_box => 48,
|
60
|
+
:exchange => 50,
|
61
|
+
:fleur => 52,
|
62
|
+
:gobbler => 54,
|
63
|
+
:gumby => 56,
|
64
|
+
:hand1 => 58,
|
65
|
+
:hand2 => 60,
|
66
|
+
:heart => 62,
|
67
|
+
:icon => 64,
|
68
|
+
:iron_cross => 66,
|
69
|
+
:left_ptr => 68,
|
70
|
+
:left_side => 70,
|
71
|
+
:left_tee => 72,
|
72
|
+
:leftbutton => 74,
|
73
|
+
:ll_angle => 76,
|
74
|
+
:lr_angle => 78,
|
75
|
+
:man => 80,
|
76
|
+
:middlebutton => 82,
|
77
|
+
:mouse => 84,
|
78
|
+
:pencil => 86,
|
79
|
+
:pirate => 88,
|
80
|
+
:plus => 90,
|
81
|
+
:question_arrow => 92,
|
82
|
+
:right_ptr => 94,
|
83
|
+
:right_side => 96,
|
84
|
+
:right_tee => 98,
|
85
|
+
:rightbutton => 100,
|
86
|
+
:rtl_logo => 102,
|
87
|
+
:sailboat => 104,
|
88
|
+
:sb_down_arrow => 106,
|
89
|
+
:sb_h_double_arrow => 108,
|
90
|
+
:sb_left_arrow => 110,
|
91
|
+
:sb_right_arrow => 112,
|
92
|
+
:sb_up_arrow => 114,
|
93
|
+
:sb_v_double_arrow => 116,
|
94
|
+
:shuttle => 118,
|
95
|
+
:sizing => 120,
|
96
|
+
:spider => 122,
|
97
|
+
:spraycan => 124,
|
98
|
+
:star => 126,
|
99
|
+
:target => 128,
|
100
|
+
:tcross => 130,
|
101
|
+
:top_left_arrow => 132,
|
102
|
+
:top_left_corner => 134,
|
103
|
+
:top_right_corner => 136,
|
104
|
+
:top_side => 138,
|
105
|
+
:top_tee => 140,
|
106
|
+
:trek => 142,
|
107
|
+
:ul_angle => 144,
|
108
|
+
:umbrella => 146,
|
109
|
+
:ur_angle => 148,
|
110
|
+
:watch => 150,
|
111
|
+
:xterm => 152
|
112
|
+
}
|
113
113
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
114
|
+
def self.[] (name)
|
115
|
+
if name.is_a?(Integer)
|
116
|
+
@shapes.key(name)
|
117
|
+
else
|
118
|
+
@shapes[name.to_s.to_sym]
|
119
|
+
end
|
120
|
+
end
|
121
121
|
|
122
|
-
|
123
|
-
|
124
|
-
|
122
|
+
def self.const_missing (name)
|
123
|
+
@shapes[name]
|
124
|
+
end
|
125
125
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
126
|
+
def self.method_missing (name, *)
|
127
|
+
@shapes[name]
|
128
|
+
end
|
129
|
+
end
|
130
130
|
|
131
|
-
|
131
|
+
attr_reader :display
|
132
132
|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
133
|
+
def initialize (display, shape)
|
134
|
+
@display = display
|
135
|
+
@shape = shape.is_a?(Integer) ? shape : Shapes[shape]
|
136
|
+
end
|
137
137
|
|
138
|
-
|
139
|
-
|
140
|
-
|
138
|
+
def to_s
|
139
|
+
Shapes[@shape].to_s
|
140
|
+
end
|
141
141
|
|
142
|
-
|
143
|
-
|
144
|
-
|
142
|
+
def to_ffi
|
143
|
+
C::XCreateFontCursor(display.to_ffi, @shape)
|
144
|
+
end
|
145
145
|
end
|
146
146
|
|
147
147
|
end; end
|
@@ -0,0 +1,65 @@
|
|
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
|
30
|
+
|
31
|
+
class Extension
|
32
|
+
@@extensions = []
|
33
|
+
|
34
|
+
def self.define (name, &block)
|
35
|
+
@@extensions << self.new(name, &block)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.list
|
39
|
+
@@extensions
|
40
|
+
end
|
41
|
+
|
42
|
+
attr_reader :name
|
43
|
+
|
44
|
+
def initialize (name, &block)
|
45
|
+
@name = name
|
46
|
+
@block = block
|
47
|
+
end
|
48
|
+
|
49
|
+
def apply (display)
|
50
|
+
instance_exec display, &@block
|
51
|
+
end
|
52
|
+
|
53
|
+
def new (data)
|
54
|
+
result = dup
|
55
|
+
|
56
|
+
result.instance_variable_set :@data, data
|
57
|
+
result.define_singleton_method :method_missing do |*args, &block|
|
58
|
+
@data.__send__ *args, &block
|
59
|
+
end
|
60
|
+
|
61
|
+
result
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
data/lib/X11/extensions.rb
CHANGED
@@ -1,148 +1,127 @@
|
|
1
1
|
#--
|
2
|
-
# Copyleft
|
2
|
+
# Copyleft meh. [http://meh.paranoid.pk | meh@paranoici.org]
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# Redistribution and use in source and binary forms, with or without modification, are
|
5
|
+
# permitted provided that the following conditions are met:
|
5
6
|
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
9
|
-
# (at your option) any later version.
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
8
|
+
# conditions and the following disclaimer.
|
10
9
|
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
# GNU Affero General Public License for more details.
|
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.
|
15
13
|
#
|
16
|
-
#
|
17
|
-
#
|
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.
|
18
27
|
#++
|
19
28
|
|
20
|
-
require '
|
21
|
-
require '
|
29
|
+
require 'forwardable'
|
30
|
+
require 'ostruct'
|
31
|
+
|
32
|
+
require 'require/on'
|
33
|
+
require 'ffi'
|
34
|
+
require 'ffi/extra'
|
35
|
+
require 'versionub'
|
36
|
+
require 'call-me/memoize'
|
37
|
+
require 'call-me/named'
|
22
38
|
require 'refining'
|
23
39
|
require 'retarded'
|
24
40
|
require 'bitmap'
|
25
|
-
require '
|
26
|
-
require 'ostruct'
|
41
|
+
require 'with'
|
27
42
|
|
28
43
|
module Kernel
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
else
|
48
|
-
result
|
49
|
-
end
|
50
|
-
end
|
44
|
+
def suppress_warnings
|
45
|
+
exception = nil
|
46
|
+
tmp, $VERBOSE = $VERBOSE, nil
|
47
|
+
|
48
|
+
begin
|
49
|
+
result = yield
|
50
|
+
rescue Exception => e
|
51
|
+
exception = e
|
52
|
+
end
|
53
|
+
|
54
|
+
$VERBOSE = tmp
|
55
|
+
|
56
|
+
if exception
|
57
|
+
raise exception
|
58
|
+
else
|
59
|
+
result
|
60
|
+
end
|
61
|
+
end
|
51
62
|
end
|
52
63
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
if type.is_a?(Class) && (type.ancestors.member?(FFI::Struct) && !type.is_a?(FFI::ManagedStruct)) || type.is_a?(Type::Builtin)
|
58
|
-
type.size
|
59
|
-
elsif type.respond_to? :from_native
|
60
|
-
type.native_type.size
|
61
|
-
else
|
62
|
-
raise ArgumentError, 'you have to pass a Struct, a Builtin type or a Symbol'
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
module Library
|
67
|
-
def ffi_lib_add (*names)
|
68
|
-
ffi_lib *((begin
|
69
|
-
ffi_libraries
|
70
|
-
rescue Exception
|
71
|
-
[]
|
72
|
-
end).map {|lib|
|
73
|
-
lib.name
|
74
|
-
} + names).compact.uniq.reject {|lib|
|
75
|
-
lib == '[current process]'
|
76
|
-
}
|
77
|
-
end
|
78
|
-
|
79
|
-
def has_function? (sym, libraries=nil)
|
80
|
-
libraries ||= ffi_libraries
|
81
|
-
|
82
|
-
libraries.any? {|lib|
|
83
|
-
if lib.is_a?(DynamicLibrary)
|
84
|
-
lib
|
85
|
-
else
|
86
|
-
DynamicLibrary.new(lib, 0)
|
87
|
-
end.find_function(sym.to_s) rescue nil
|
88
|
-
}
|
89
|
-
end
|
90
|
-
|
91
|
-
def attach_function! (*args, &block)
|
92
|
-
begin
|
93
|
-
attach_function(*args, &block)
|
94
|
-
rescue Exception => e
|
95
|
-
false
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
class Type::Builtin
|
101
|
-
def name
|
102
|
-
inspect[/:(\w+) /][1 .. -2]
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
class Pointer
|
107
|
-
def typecast (type)
|
108
|
-
type = FFI.find_type(type) if type.is_a?(Symbol)
|
109
|
-
|
110
|
-
if type.is_a?(Class) && type.ancestors.member?(FFI::Struct) && !type.is_a?(FFI::ManagedStruct)
|
111
|
-
type.new(self)
|
112
|
-
elsif type.is_a?(Type::Builtin)
|
113
|
-
send "read_#{type.name.downcase}"
|
114
|
-
elsif type.respond_to? :from_native
|
115
|
-
type.from_native(typecast(type.native_type), nil)
|
116
|
-
else
|
117
|
-
raise ArgumentError, 'you have to pass a Struct, a Builtin type or a Symbol'
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
def read_array_of (type, number)
|
122
|
-
type = FFI.find_type(type) if type.is_a?(Symbol)
|
123
|
-
type = type.native_type if type.respond_to? :native_type
|
124
|
-
|
125
|
-
send "read_array_of_#{type.name.downcase}", number
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
find_type(:size_t) rescue typedef(:ulong, :size_t)
|
64
|
+
class Object
|
65
|
+
def to_bool
|
66
|
+
!!self
|
67
|
+
end
|
130
68
|
end
|
131
69
|
|
132
|
-
class
|
133
|
-
|
134
|
-
self
|
135
|
-
end
|
70
|
+
class Bitmap::Value
|
71
|
+
alias to_ffi to_i
|
136
72
|
end
|
137
73
|
|
138
|
-
class
|
139
|
-
|
140
|
-
|
141
|
-
|
74
|
+
class Array
|
75
|
+
def singly
|
76
|
+
length == 1 ? first : self
|
77
|
+
end
|
142
78
|
end
|
143
79
|
|
144
|
-
|
145
|
-
|
80
|
+
module ForwardTo
|
81
|
+
def self.included (what)
|
82
|
+
what.instance_eval {
|
83
|
+
extend Forwardable
|
84
|
+
|
85
|
+
@__forward_to__ = []
|
86
|
+
|
87
|
+
def self.forward_to (*what)
|
88
|
+
return @__forward_to__ if what.empty?
|
89
|
+
|
90
|
+
@__forward_to__ << what
|
91
|
+
@__forward_to__.flatten!
|
92
|
+
@__forward_to__.compact!
|
93
|
+
@__forward_to__.uniq!
|
94
|
+
end
|
95
|
+
}
|
96
|
+
end
|
97
|
+
|
98
|
+
def method_missing (name, *args, &block)
|
99
|
+
self.class.forward_to.each {|target|
|
100
|
+
target = if target.to_s.start_with?('@')
|
101
|
+
instance_variable_get target
|
102
|
+
else
|
103
|
+
if target.is_a?(Array)
|
104
|
+
__send__ target.first, *target[1 .. -1]
|
105
|
+
else
|
106
|
+
__send__ target
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
if target.respond_to? name
|
111
|
+
return target.__send__ name, *args, &block
|
112
|
+
end
|
113
|
+
}
|
114
|
+
|
115
|
+
super
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
class Integer
|
120
|
+
alias ok? zero?
|
146
121
|
end
|
147
122
|
|
148
|
-
module X11; module C
|
123
|
+
module X11; module C
|
124
|
+
extend FFI::Library
|
125
|
+
end; end
|
126
|
+
|
127
|
+
require 'X11/extension'
|