libx11 0.0.4 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -5
- data/.travis.yml +1 -1
- data/Rakefile +1 -9
- data/example/aliases.rb +2 -0
- data/example/create_window.rb +15 -13
- data/example/window_manager.rb +30 -22
- data/lib/libx11.rb +4 -2
- data/lib/libx11/keysymdef.rb +2272 -0
- data/lib/libx11/version.rb +1 -1
- data/lib/libx11/x.rb +148 -0
- data/lib/libx11/xlib.rb +42 -0
- data/lib/libx11/xlib/display.rb +52 -0
- data/lib/libx11/xlib/xany_event.rb +13 -0
- data/lib/libx11/xlib/xbutton_event.rb +23 -0
- data/lib/libx11/xlib/xcirculate_event.rb +15 -0
- data/lib/libx11/xlib/xcirculate_request_event.rb +15 -0
- data/lib/libx11/xlib/xclient_message_event.rb +24 -0
- data/lib/libx11/xlib/xcolormap_event.rb +16 -0
- data/lib/libx11/xlib/xconfigure_event.rb +21 -0
- data/lib/libx11/xlib/xconfigure_request_event.rb +22 -0
- data/lib/libx11/xlib/xcreate_window_event.rb +20 -0
- data/lib/libx11/xlib/xcrossing_event.rb +25 -0
- data/lib/libx11/xlib/xdestroy_window_event.rb +14 -0
- data/lib/libx11/xlib/xerror_event.rb +15 -0
- data/lib/libx11/xlib/xevent.rb +77 -0
- data/lib/libx11/xlib/xexpose_event.rb +18 -0
- data/lib/libx11/xlib/xfocus_change_event.rb +15 -0
- data/lib/libx11/xlib/xgeneric_event.rb +14 -0
- data/lib/libx11/xlib/xgeneric_event_cookie.rb +16 -0
- data/lib/libx11/xlib/xgraphics_expose_event.rb +21 -0
- data/lib/libx11/xlib/xgravity_event.rb +16 -0
- data/lib/libx11/xlib/xkey_event.rb +23 -0
- data/lib/libx11/xlib/xkeymap_event.rb +14 -0
- data/lib/libx11/xlib/xmap_event.rb +15 -0
- data/lib/libx11/xlib/xmap_request_event.rb +18 -0
- data/lib/libx11/xlib/xmapping_event.rb +16 -0
- data/lib/libx11/xlib/xmotion_event.rb +23 -0
- data/lib/libx11/xlib/xno_expose_event.rb +15 -0
- data/lib/libx11/xlib/xproperty_event.rb +16 -0
- data/lib/libx11/xlib/xreparent_event.rb +18 -0
- data/lib/libx11/xlib/xresize_request_event.rb +15 -0
- data/lib/libx11/xlib/xselection_clear_event.rb +15 -0
- data/lib/libx11/xlib/xselection_event.rb +17 -0
- data/lib/libx11/xlib/xselection_request_event.rb +18 -0
- data/lib/libx11/xlib/xunmap_event.rb +15 -0
- data/lib/libx11/xlib/xvisibility_event.rb +14 -0
- data/libx11.gemspec +1 -1
- metadata +56 -13
- data/HACKING.md +0 -14
- data/ext/libx11_ruby/constants.c +0 -182
- data/ext/libx11_ruby/display.c +0 -197
- data/ext/libx11_ruby/extconf.rb +0 -6
- data/ext/libx11_ruby/libx11_ruby.c +0 -13
- data/ext/libx11_ruby/libx11_ruby.h +0 -14
- data/ext/libx11_ruby/window.c +0 -33
- data/ext/libx11_ruby/xerror_event.c +0 -104
- data/ext/libx11_ruby/xevent.c +0 -134
@@ -0,0 +1,18 @@
|
|
1
|
+
module LibX11
|
2
|
+
module Xlib
|
3
|
+
class XSelectionRequestEvent < FFI::Struct
|
4
|
+
layout(
|
5
|
+
:type, :int,
|
6
|
+
:serial, :ulong,
|
7
|
+
:send_event, :Bool,
|
8
|
+
:display, Display.ptr,
|
9
|
+
:owner, :Window,
|
10
|
+
:requestor, :Window,
|
11
|
+
:selection, :Atom,
|
12
|
+
:target, :Atom,
|
13
|
+
:property, :Atom,
|
14
|
+
:time, :Time,
|
15
|
+
)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/libx11.gemspec
CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.bindir = 'exe'
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ['lib']
|
21
|
-
spec.extensions = ['ext/libx11_ruby/extconf.rb']
|
22
21
|
|
22
|
+
spec.add_dependency 'ffi', '~> 1.9'
|
23
23
|
spec.add_development_dependency 'bundler', '~> 1.11'
|
24
24
|
spec.add_development_dependency 'rake', '~> 10.0'
|
25
25
|
spec.add_development_dependency 'rake-compiler'
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libx11
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takashi Kokubun
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ffi
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.9'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.9'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,33 +98,62 @@ description: Ruby binding of libx11 mostly for xlib
|
|
84
98
|
email:
|
85
99
|
- takashikkbn@gmail.com
|
86
100
|
executables: []
|
87
|
-
extensions:
|
88
|
-
- ext/libx11_ruby/extconf.rb
|
101
|
+
extensions: []
|
89
102
|
extra_rdoc_files: []
|
90
103
|
files:
|
91
104
|
- ".gitignore"
|
92
105
|
- ".rspec"
|
93
106
|
- ".travis.yml"
|
94
107
|
- Gemfile
|
95
|
-
- HACKING.md
|
96
108
|
- LICENSE.txt
|
97
109
|
- README.md
|
98
110
|
- Rakefile
|
99
111
|
- bin/console
|
100
112
|
- bin/setup
|
101
113
|
- bin/window-manager
|
114
|
+
- example/aliases.rb
|
102
115
|
- example/create_window.rb
|
103
116
|
- example/window_manager.rb
|
104
|
-
- ext/libx11_ruby/constants.c
|
105
|
-
- ext/libx11_ruby/display.c
|
106
|
-
- ext/libx11_ruby/extconf.rb
|
107
|
-
- ext/libx11_ruby/libx11_ruby.c
|
108
|
-
- ext/libx11_ruby/libx11_ruby.h
|
109
|
-
- ext/libx11_ruby/window.c
|
110
|
-
- ext/libx11_ruby/xerror_event.c
|
111
|
-
- ext/libx11_ruby/xevent.c
|
112
117
|
- lib/libx11.rb
|
118
|
+
- lib/libx11/keysymdef.rb
|
113
119
|
- lib/libx11/version.rb
|
120
|
+
- lib/libx11/x.rb
|
121
|
+
- lib/libx11/xlib.rb
|
122
|
+
- lib/libx11/xlib/display.rb
|
123
|
+
- lib/libx11/xlib/xany_event.rb
|
124
|
+
- lib/libx11/xlib/xbutton_event.rb
|
125
|
+
- lib/libx11/xlib/xcirculate_event.rb
|
126
|
+
- lib/libx11/xlib/xcirculate_request_event.rb
|
127
|
+
- lib/libx11/xlib/xclient_message_event.rb
|
128
|
+
- lib/libx11/xlib/xcolormap_event.rb
|
129
|
+
- lib/libx11/xlib/xconfigure_event.rb
|
130
|
+
- lib/libx11/xlib/xconfigure_request_event.rb
|
131
|
+
- lib/libx11/xlib/xcreate_window_event.rb
|
132
|
+
- lib/libx11/xlib/xcrossing_event.rb
|
133
|
+
- lib/libx11/xlib/xdestroy_window_event.rb
|
134
|
+
- lib/libx11/xlib/xerror_event.rb
|
135
|
+
- lib/libx11/xlib/xevent.rb
|
136
|
+
- lib/libx11/xlib/xexpose_event.rb
|
137
|
+
- lib/libx11/xlib/xfocus_change_event.rb
|
138
|
+
- lib/libx11/xlib/xgeneric_event.rb
|
139
|
+
- lib/libx11/xlib/xgeneric_event_cookie.rb
|
140
|
+
- lib/libx11/xlib/xgraphics_expose_event.rb
|
141
|
+
- lib/libx11/xlib/xgravity_event.rb
|
142
|
+
- lib/libx11/xlib/xkey_event.rb
|
143
|
+
- lib/libx11/xlib/xkeymap_event.rb
|
144
|
+
- lib/libx11/xlib/xmap_event.rb
|
145
|
+
- lib/libx11/xlib/xmap_request_event.rb
|
146
|
+
- lib/libx11/xlib/xmapping_event.rb
|
147
|
+
- lib/libx11/xlib/xmotion_event.rb
|
148
|
+
- lib/libx11/xlib/xno_expose_event.rb
|
149
|
+
- lib/libx11/xlib/xproperty_event.rb
|
150
|
+
- lib/libx11/xlib/xreparent_event.rb
|
151
|
+
- lib/libx11/xlib/xresize_request_event.rb
|
152
|
+
- lib/libx11/xlib/xselection_clear_event.rb
|
153
|
+
- lib/libx11/xlib/xselection_event.rb
|
154
|
+
- lib/libx11/xlib/xselection_request_event.rb
|
155
|
+
- lib/libx11/xlib/xunmap_event.rb
|
156
|
+
- lib/libx11/xlib/xvisibility_event.rb
|
114
157
|
- libx11.gemspec
|
115
158
|
homepage: https://github.com/k0kubun/libx11-ruby
|
116
159
|
licenses:
|
data/HACKING.md
DELETED
data/ext/libx11_ruby/constants.c
DELETED
@@ -1,182 +0,0 @@
|
|
1
|
-
#include "libx11_ruby.h"
|
2
|
-
#include <X11/keysym.h>
|
3
|
-
#include <X11/Xlib.h>
|
4
|
-
|
5
|
-
void
|
6
|
-
Init_libx11_constants(void)
|
7
|
-
{
|
8
|
-
// reserved resource and constant definitions
|
9
|
-
rb_define_const(rb_mLibX11, "NONE", LONG2NUM(None));
|
10
|
-
rb_define_const(rb_mLibX11, "PARENT_RELATIVE", LONG2NUM(ParentRelative));
|
11
|
-
rb_define_const(rb_mLibX11, "COPY_FROM_PARENT", LONG2NUM(CopyFromParent));
|
12
|
-
rb_define_const(rb_mLibX11, "POINTER_WINDOW", LONG2NUM(PointerWindow));
|
13
|
-
rb_define_const(rb_mLibX11, "INPUT_FOCUS", LONG2NUM(InputFocus));
|
14
|
-
rb_define_const(rb_mLibX11, "POINTER_ROOT", LONG2NUM(PointerRoot));
|
15
|
-
rb_define_const(rb_mLibX11, "ANY_PROPERTY_TYPE", LONG2NUM(AnyPropertyType));
|
16
|
-
rb_define_const(rb_mLibX11, "ANY_KEY", LONG2NUM(AnyKey));
|
17
|
-
rb_define_const(rb_mLibX11, "ANY_BUTTON", LONG2NUM(AnyButton));
|
18
|
-
rb_define_const(rb_mLibX11, "ALL_TEMPORARY", LONG2NUM(AllTemporary));
|
19
|
-
rb_define_const(rb_mLibX11, "CURRENT_TIME", LONG2NUM(CurrentTime));
|
20
|
-
rb_define_const(rb_mLibX11, "NO_SYMBOL", LONG2NUM(NoSymbol));
|
21
|
-
|
22
|
-
// input event masks
|
23
|
-
rb_define_const(rb_mLibX11, "NO_EVENT_MASK", LONG2NUM(NoEventMask));
|
24
|
-
rb_define_const(rb_mLibX11, "KEY_PRESS_MASK", LONG2NUM(KeyPressMask));
|
25
|
-
rb_define_const(rb_mLibX11, "KEY_RELEASE_MASK", LONG2NUM(KeyReleaseMask));
|
26
|
-
rb_define_const(rb_mLibX11, "BUTTON_PRESS_MASK", LONG2NUM(ButtonPressMask));
|
27
|
-
rb_define_const(rb_mLibX11, "BUTTON_RELEASE_MASK", LONG2NUM(ButtonReleaseMask));
|
28
|
-
rb_define_const(rb_mLibX11, "ENTER_WINDOW_MASK", LONG2NUM(EnterWindowMask));
|
29
|
-
rb_define_const(rb_mLibX11, "LEAVE_WINDOW_MASK", LONG2NUM(LeaveWindowMask));
|
30
|
-
rb_define_const(rb_mLibX11, "POINTER_MOTION_MASK", LONG2NUM(PointerMotionMask));
|
31
|
-
rb_define_const(rb_mLibX11, "POINTER_MOTION_HINT_MASK", LONG2NUM(PointerMotionHintMask));
|
32
|
-
rb_define_const(rb_mLibX11, "BUTTON1_MOTION_MASK", LONG2NUM(Button1MotionMask));
|
33
|
-
rb_define_const(rb_mLibX11, "BUTTON2_MOTION_MASK", LONG2NUM(Button2MotionMask));
|
34
|
-
rb_define_const(rb_mLibX11, "BUTTON3_MOTION_MASK", LONG2NUM(Button3MotionMask));
|
35
|
-
rb_define_const(rb_mLibX11, "BUTTON4_MOTION_MASK", LONG2NUM(Button4MotionMask));
|
36
|
-
rb_define_const(rb_mLibX11, "BUTTON5_MOTION_MASK", LONG2NUM(Button5MotionMask));
|
37
|
-
rb_define_const(rb_mLibX11, "BUTTON_MOTION_MASK", LONG2NUM(ButtonMotionMask));
|
38
|
-
rb_define_const(rb_mLibX11, "KEYMAP_STATE_MASK", LONG2NUM(KeymapStateMask));
|
39
|
-
rb_define_const(rb_mLibX11, "EXPOSURE_MASK", LONG2NUM(ExposureMask));
|
40
|
-
rb_define_const(rb_mLibX11, "VISIBILITY_CHANGE_MASK", LONG2NUM(VisibilityChangeMask));
|
41
|
-
rb_define_const(rb_mLibX11, "STRUCTURE_NOTIFY_MASK", LONG2NUM(StructureNotifyMask));
|
42
|
-
rb_define_const(rb_mLibX11, "RESIZE_REDIRECT_MASK", LONG2NUM(ResizeRedirectMask));
|
43
|
-
rb_define_const(rb_mLibX11, "SUBSTRUCTURE_NOTIFY_MASK", LONG2NUM(SubstructureNotifyMask));
|
44
|
-
rb_define_const(rb_mLibX11, "SUBSTRUCTURE_REDIRECT_MASK", LONG2NUM(SubstructureRedirectMask));
|
45
|
-
rb_define_const(rb_mLibX11, "FOCUS_CHANGE_MASK", LONG2NUM(FocusChangeMask));
|
46
|
-
rb_define_const(rb_mLibX11, "PROPERTY_CHANGE_MASK", LONG2NUM(PropertyChangeMask));
|
47
|
-
rb_define_const(rb_mLibX11, "COLORMAP_CHANGE_MASK", LONG2NUM(ColormapChangeMask));
|
48
|
-
rb_define_const(rb_mLibX11, "OWNER_GRAB_BUTTON_MASK", LONG2NUM(OwnerGrabButtonMask));
|
49
|
-
|
50
|
-
// button masks
|
51
|
-
rb_define_const(rb_mLibX11, "BUTTON1_MASK", LONG2NUM(Button1Mask));
|
52
|
-
rb_define_const(rb_mLibX11, "BUTTON2_MASK", LONG2NUM(Button2Mask));
|
53
|
-
rb_define_const(rb_mLibX11, "BUTTON3_MASK", LONG2NUM(Button3Mask));
|
54
|
-
rb_define_const(rb_mLibX11, "BUTTON4_MASK", LONG2NUM(Button4Mask));
|
55
|
-
rb_define_const(rb_mLibX11, "BUTTON5_MASK", LONG2NUM(Button5Mask));
|
56
|
-
rb_define_const(rb_mLibX11, "ANY_MODIFIER", LONG2NUM(AnyModifier));
|
57
|
-
|
58
|
-
// tty functions keys
|
59
|
-
rb_define_const(rb_mLibX11, "XK_BackSpace", LONG2NUM(XK_BackSpace));
|
60
|
-
rb_define_const(rb_mLibX11, "XK_Tab", LONG2NUM(XK_Tab));
|
61
|
-
rb_define_const(rb_mLibX11, "XK_Linefeed", LONG2NUM(XK_Linefeed));
|
62
|
-
rb_define_const(rb_mLibX11, "XK_Clear", LONG2NUM(XK_Clear));
|
63
|
-
rb_define_const(rb_mLibX11, "XK_Return", LONG2NUM(XK_Return));
|
64
|
-
rb_define_const(rb_mLibX11, "XK_Pause", LONG2NUM(XK_Pause));
|
65
|
-
rb_define_const(rb_mLibX11, "XK_Scroll_Lock", LONG2NUM(XK_Scroll_Lock));
|
66
|
-
rb_define_const(rb_mLibX11, "XK_Sys_Req", LONG2NUM(XK_Sys_Req));
|
67
|
-
rb_define_const(rb_mLibX11, "XK_Escape", LONG2NUM(XK_Escape));
|
68
|
-
rb_define_const(rb_mLibX11, "XK_Delete", LONG2NUM(XK_Delete));
|
69
|
-
|
70
|
-
// latin 1
|
71
|
-
rb_define_const(rb_mLibX11, "XK_space", LONG2NUM(XK_space));
|
72
|
-
rb_define_const(rb_mLibX11, "XK_exclam", LONG2NUM(XK_exclam));
|
73
|
-
rb_define_const(rb_mLibX11, "XK_quotedbl", LONG2NUM(XK_quotedbl));
|
74
|
-
rb_define_const(rb_mLibX11, "XK_numbersign", LONG2NUM(XK_numbersign));
|
75
|
-
rb_define_const(rb_mLibX11, "XK_dollar", LONG2NUM(XK_dollar));
|
76
|
-
rb_define_const(rb_mLibX11, "XK_percent", LONG2NUM(XK_percent));
|
77
|
-
rb_define_const(rb_mLibX11, "XK_ampersand", LONG2NUM(XK_ampersand));
|
78
|
-
rb_define_const(rb_mLibX11, "XK_apostrophe", LONG2NUM(XK_apostrophe));
|
79
|
-
rb_define_const(rb_mLibX11, "XK_quoteright", LONG2NUM(XK_quoteright));
|
80
|
-
rb_define_const(rb_mLibX11, "XK_parenleft", LONG2NUM(XK_parenleft));
|
81
|
-
rb_define_const(rb_mLibX11, "XK_parenright", LONG2NUM(XK_parenright));
|
82
|
-
rb_define_const(rb_mLibX11, "XK_asterisk", LONG2NUM(XK_asterisk));
|
83
|
-
rb_define_const(rb_mLibX11, "XK_plus", LONG2NUM(XK_plus));
|
84
|
-
rb_define_const(rb_mLibX11, "XK_comma", LONG2NUM(XK_comma));
|
85
|
-
rb_define_const(rb_mLibX11, "XK_minus", LONG2NUM(XK_minus));
|
86
|
-
rb_define_const(rb_mLibX11, "XK_period", LONG2NUM(XK_period));
|
87
|
-
rb_define_const(rb_mLibX11, "XK_slash", LONG2NUM(XK_slash));
|
88
|
-
rb_define_const(rb_mLibX11, "XK_0", LONG2NUM(XK_0));
|
89
|
-
rb_define_const(rb_mLibX11, "XK_1", LONG2NUM(XK_1));
|
90
|
-
rb_define_const(rb_mLibX11, "XK_2", LONG2NUM(XK_2));
|
91
|
-
rb_define_const(rb_mLibX11, "XK_3", LONG2NUM(XK_3));
|
92
|
-
rb_define_const(rb_mLibX11, "XK_4", LONG2NUM(XK_4));
|
93
|
-
rb_define_const(rb_mLibX11, "XK_5", LONG2NUM(XK_5));
|
94
|
-
rb_define_const(rb_mLibX11, "XK_6", LONG2NUM(XK_6));
|
95
|
-
rb_define_const(rb_mLibX11, "XK_7", LONG2NUM(XK_7));
|
96
|
-
rb_define_const(rb_mLibX11, "XK_8", LONG2NUM(XK_8));
|
97
|
-
rb_define_const(rb_mLibX11, "XK_9", LONG2NUM(XK_9));
|
98
|
-
rb_define_const(rb_mLibX11, "XK_colon", LONG2NUM(XK_colon));
|
99
|
-
rb_define_const(rb_mLibX11, "XK_semicolon", LONG2NUM(XK_semicolon));
|
100
|
-
rb_define_const(rb_mLibX11, "XK_less", LONG2NUM(XK_less));
|
101
|
-
rb_define_const(rb_mLibX11, "XK_equal", LONG2NUM(XK_equal));
|
102
|
-
rb_define_const(rb_mLibX11, "XK_greater", LONG2NUM(XK_greater));
|
103
|
-
rb_define_const(rb_mLibX11, "XK_question", LONG2NUM(XK_question));
|
104
|
-
rb_define_const(rb_mLibX11, "XK_at", LONG2NUM(XK_at));
|
105
|
-
rb_define_const(rb_mLibX11, "XK_A", LONG2NUM(XK_A));
|
106
|
-
rb_define_const(rb_mLibX11, "XK_B", LONG2NUM(XK_B));
|
107
|
-
rb_define_const(rb_mLibX11, "XK_C", LONG2NUM(XK_C));
|
108
|
-
rb_define_const(rb_mLibX11, "XK_D", LONG2NUM(XK_D));
|
109
|
-
rb_define_const(rb_mLibX11, "XK_E", LONG2NUM(XK_E));
|
110
|
-
rb_define_const(rb_mLibX11, "XK_F", LONG2NUM(XK_F));
|
111
|
-
rb_define_const(rb_mLibX11, "XK_G", LONG2NUM(XK_G));
|
112
|
-
rb_define_const(rb_mLibX11, "XK_H", LONG2NUM(XK_H));
|
113
|
-
rb_define_const(rb_mLibX11, "XK_I", LONG2NUM(XK_I));
|
114
|
-
rb_define_const(rb_mLibX11, "XK_J", LONG2NUM(XK_J));
|
115
|
-
rb_define_const(rb_mLibX11, "XK_K", LONG2NUM(XK_K));
|
116
|
-
rb_define_const(rb_mLibX11, "XK_L", LONG2NUM(XK_L));
|
117
|
-
rb_define_const(rb_mLibX11, "XK_M", LONG2NUM(XK_M));
|
118
|
-
rb_define_const(rb_mLibX11, "XK_N", LONG2NUM(XK_N));
|
119
|
-
rb_define_const(rb_mLibX11, "XK_O", LONG2NUM(XK_O));
|
120
|
-
rb_define_const(rb_mLibX11, "XK_P", LONG2NUM(XK_P));
|
121
|
-
rb_define_const(rb_mLibX11, "XK_Q", LONG2NUM(XK_Q));
|
122
|
-
rb_define_const(rb_mLibX11, "XK_R", LONG2NUM(XK_R));
|
123
|
-
rb_define_const(rb_mLibX11, "XK_S", LONG2NUM(XK_S));
|
124
|
-
rb_define_const(rb_mLibX11, "XK_T", LONG2NUM(XK_T));
|
125
|
-
rb_define_const(rb_mLibX11, "XK_U", LONG2NUM(XK_U));
|
126
|
-
rb_define_const(rb_mLibX11, "XK_V", LONG2NUM(XK_V));
|
127
|
-
rb_define_const(rb_mLibX11, "XK_W", LONG2NUM(XK_W));
|
128
|
-
rb_define_const(rb_mLibX11, "XK_X", LONG2NUM(XK_X));
|
129
|
-
rb_define_const(rb_mLibX11, "XK_Y", LONG2NUM(XK_Y));
|
130
|
-
rb_define_const(rb_mLibX11, "XK_Z", LONG2NUM(XK_Z));
|
131
|
-
rb_define_const(rb_mLibX11, "XK_bracketleft", LONG2NUM(XK_bracketleft));
|
132
|
-
rb_define_const(rb_mLibX11, "XK_backslash", LONG2NUM(XK_backslash));
|
133
|
-
rb_define_const(rb_mLibX11, "XK_bracketright", LONG2NUM(XK_bracketright));
|
134
|
-
rb_define_const(rb_mLibX11, "XK_asciicircum", LONG2NUM(XK_asciicircum));
|
135
|
-
rb_define_const(rb_mLibX11, "XK_underscore", LONG2NUM(XK_underscore));
|
136
|
-
rb_define_const(rb_mLibX11, "XK_grave", LONG2NUM(XK_grave));
|
137
|
-
rb_define_const(rb_mLibX11, "XK_quoteleft", LONG2NUM(XK_quoteleft));
|
138
|
-
rb_define_const(rb_mLibX11, "XK_a", LONG2NUM(XK_a));
|
139
|
-
rb_define_const(rb_mLibX11, "XK_b", LONG2NUM(XK_b));
|
140
|
-
rb_define_const(rb_mLibX11, "XK_c", LONG2NUM(XK_c));
|
141
|
-
rb_define_const(rb_mLibX11, "XK_d", LONG2NUM(XK_d));
|
142
|
-
rb_define_const(rb_mLibX11, "XK_e", LONG2NUM(XK_e));
|
143
|
-
rb_define_const(rb_mLibX11, "XK_f", LONG2NUM(XK_f));
|
144
|
-
rb_define_const(rb_mLibX11, "XK_g", LONG2NUM(XK_g));
|
145
|
-
rb_define_const(rb_mLibX11, "XK_h", LONG2NUM(XK_h));
|
146
|
-
rb_define_const(rb_mLibX11, "XK_i", LONG2NUM(XK_i));
|
147
|
-
rb_define_const(rb_mLibX11, "XK_j", LONG2NUM(XK_j));
|
148
|
-
rb_define_const(rb_mLibX11, "XK_k", LONG2NUM(XK_k));
|
149
|
-
rb_define_const(rb_mLibX11, "XK_l", LONG2NUM(XK_l));
|
150
|
-
rb_define_const(rb_mLibX11, "XK_m", LONG2NUM(XK_m));
|
151
|
-
rb_define_const(rb_mLibX11, "XK_n", LONG2NUM(XK_n));
|
152
|
-
rb_define_const(rb_mLibX11, "XK_o", LONG2NUM(XK_o));
|
153
|
-
rb_define_const(rb_mLibX11, "XK_p", LONG2NUM(XK_p));
|
154
|
-
rb_define_const(rb_mLibX11, "XK_q", LONG2NUM(XK_q));
|
155
|
-
rb_define_const(rb_mLibX11, "XK_r", LONG2NUM(XK_r));
|
156
|
-
rb_define_const(rb_mLibX11, "XK_s", LONG2NUM(XK_s));
|
157
|
-
rb_define_const(rb_mLibX11, "XK_t", LONG2NUM(XK_t));
|
158
|
-
rb_define_const(rb_mLibX11, "XK_u", LONG2NUM(XK_u));
|
159
|
-
rb_define_const(rb_mLibX11, "XK_v", LONG2NUM(XK_v));
|
160
|
-
rb_define_const(rb_mLibX11, "XK_w", LONG2NUM(XK_w));
|
161
|
-
rb_define_const(rb_mLibX11, "XK_x", LONG2NUM(XK_x));
|
162
|
-
rb_define_const(rb_mLibX11, "XK_y", LONG2NUM(XK_y));
|
163
|
-
rb_define_const(rb_mLibX11, "XK_z", LONG2NUM(XK_z));
|
164
|
-
rb_define_const(rb_mLibX11, "XK_braceleft", LONG2NUM(XK_braceleft));
|
165
|
-
rb_define_const(rb_mLibX11, "XK_bar", LONG2NUM(XK_bar));
|
166
|
-
rb_define_const(rb_mLibX11, "XK_braceright", LONG2NUM(XK_braceright));
|
167
|
-
rb_define_const(rb_mLibX11, "XK_asciitilde", LONG2NUM(XK_asciitilde));
|
168
|
-
|
169
|
-
// GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes
|
170
|
-
rb_define_const(rb_mLibX11, "GRAB_MODE_SYNC", INT2FIX(GrabModeSync));
|
171
|
-
rb_define_const(rb_mLibX11, "GRAB_MODE_ASYNC", INT2FIX(GrabModeAsync));
|
172
|
-
|
173
|
-
// Key masks
|
174
|
-
rb_define_const(rb_mLibX11, "SHIFT_MASK", LONG2NUM(ShiftMask));
|
175
|
-
rb_define_const(rb_mLibX11, "LOCK_MASK", LONG2NUM(LockMask));
|
176
|
-
rb_define_const(rb_mLibX11, "CONTROL_MASK", LONG2NUM(ControlMask));
|
177
|
-
rb_define_const(rb_mLibX11, "MOD1_MASK", LONG2NUM(Mod1Mask));
|
178
|
-
rb_define_const(rb_mLibX11, "MOD2_MASK", LONG2NUM(Mod2Mask));
|
179
|
-
rb_define_const(rb_mLibX11, "MOD3_MASK", LONG2NUM(Mod3Mask));
|
180
|
-
rb_define_const(rb_mLibX11, "MOD4_MASK", LONG2NUM(Mod4Mask));
|
181
|
-
rb_define_const(rb_mLibX11, "MOD5_MASK", LONG2NUM(Mod5Mask));
|
182
|
-
}
|
data/ext/libx11_ruby/display.c
DELETED
@@ -1,197 +0,0 @@
|
|
1
|
-
#include "libx11_ruby.h"
|
2
|
-
#include <X11/Xlib.h>
|
3
|
-
|
4
|
-
VALUE rb_cDisplay;
|
5
|
-
|
6
|
-
static size_t
|
7
|
-
display_dsize(const void *arg)
|
8
|
-
{
|
9
|
-
const Display *display = arg;
|
10
|
-
return sizeof(display);
|
11
|
-
}
|
12
|
-
|
13
|
-
const rb_data_type_t display_type = {
|
14
|
-
.wrap_struct_name = "libx11_display",
|
15
|
-
.function = {
|
16
|
-
.dmark = NULL,
|
17
|
-
.dfree = NULL,
|
18
|
-
.dsize = display_dsize,
|
19
|
-
.reserved = { NULL, NULL },
|
20
|
-
},
|
21
|
-
.parent = NULL,
|
22
|
-
.data = NULL,
|
23
|
-
.flags = RUBY_TYPED_FREE_IMMEDIATELY,
|
24
|
-
};
|
25
|
-
|
26
|
-
Display*
|
27
|
-
get_display_struct(VALUE display_object)
|
28
|
-
{
|
29
|
-
Display *display;
|
30
|
-
TypedData_Get_Struct(display_object, Display, &display_type, display);
|
31
|
-
return display;
|
32
|
-
}
|
33
|
-
|
34
|
-
/*
|
35
|
-
* Xlib XOpenDisplay
|
36
|
-
*/
|
37
|
-
static VALUE
|
38
|
-
rb_libx11_xopen_display(int argc, VALUE *argv, RB_UNUSED_VAR(VALUE self))
|
39
|
-
{
|
40
|
-
Display *display;
|
41
|
-
|
42
|
-
if (argc == 0) {
|
43
|
-
display = XOpenDisplay(NULL);
|
44
|
-
} else {
|
45
|
-
VALUE display_name;
|
46
|
-
|
47
|
-
rb_check_arity(argc, 1, 1);
|
48
|
-
rb_scan_args(argc, argv, "10", &display_name);
|
49
|
-
Check_Type(display_name, T_STRING);
|
50
|
-
display = XOpenDisplay(RSTRING_PTR(display_name));
|
51
|
-
}
|
52
|
-
if (display == NULL) return Qnil;
|
53
|
-
return TypedData_Wrap_Struct(rb_cDisplay, &display_type, display);
|
54
|
-
}
|
55
|
-
|
56
|
-
/*
|
57
|
-
* Xlib XCloseDisplay
|
58
|
-
*/
|
59
|
-
static VALUE
|
60
|
-
rb_libx11_xclose_display(VALUE self, VALUE obj)
|
61
|
-
{
|
62
|
-
return INT2FIX(XCloseDisplay(get_display_struct(obj)));
|
63
|
-
}
|
64
|
-
|
65
|
-
/*
|
66
|
-
* Xlib DefaultScreen
|
67
|
-
*/
|
68
|
-
static VALUE
|
69
|
-
rb_display_default_screen(VALUE self)
|
70
|
-
{
|
71
|
-
return INT2NUM(DefaultScreen(get_display_struct(self)));
|
72
|
-
}
|
73
|
-
|
74
|
-
/*
|
75
|
-
* #define ConnectionNumber(dpy) (((_XPrivDisplay)dpy)->fd)
|
76
|
-
*/
|
77
|
-
static VALUE
|
78
|
-
rb_display_connection_number(VALUE self)
|
79
|
-
{
|
80
|
-
return INT2NUM(ConnectionNumber(get_display_struct(self)));
|
81
|
-
}
|
82
|
-
|
83
|
-
/*
|
84
|
-
* Xlib XDisplayString
|
85
|
-
*/
|
86
|
-
static VALUE
|
87
|
-
rb_display_xdisplay_string(VALUE self)
|
88
|
-
{
|
89
|
-
return rb_str_new_cstr(XDisplayString(get_display_struct(self)));
|
90
|
-
}
|
91
|
-
|
92
|
-
/*
|
93
|
-
* Xlib DefaultRootWindow
|
94
|
-
*/
|
95
|
-
static VALUE
|
96
|
-
rb_display_default_root_window(VALUE self)
|
97
|
-
{
|
98
|
-
return ULONG2NUM(DefaultRootWindow(get_display_struct(self)));
|
99
|
-
}
|
100
|
-
|
101
|
-
/*
|
102
|
-
* Xlib BlackPixel
|
103
|
-
*/
|
104
|
-
static VALUE
|
105
|
-
rb_display_black_pixel(VALUE self, VALUE screen_obj)
|
106
|
-
{
|
107
|
-
return ULONG2NUM(BlackPixel(get_display_struct(self), FIX2INT(screen_obj)));
|
108
|
-
}
|
109
|
-
|
110
|
-
/*
|
111
|
-
* Xlib WhitePixel
|
112
|
-
*/
|
113
|
-
static VALUE
|
114
|
-
rb_display_white_pixel(VALUE self, VALUE screen_obj)
|
115
|
-
{
|
116
|
-
return ULONG2NUM(WhitePixel(get_display_struct(self), FIX2INT(screen_obj)));
|
117
|
-
}
|
118
|
-
|
119
|
-
/*
|
120
|
-
* Xlib XSelectInput
|
121
|
-
*/
|
122
|
-
static VALUE
|
123
|
-
rb_display_xselect_input(VALUE self, VALUE window, VALUE event_mask)
|
124
|
-
{
|
125
|
-
return INT2NUM(XSelectInput(get_display_struct(self), NUM2ULONG(window), NUM2LONG(event_mask)));
|
126
|
-
}
|
127
|
-
|
128
|
-
/*
|
129
|
-
* Xlib XMapWindow
|
130
|
-
*/
|
131
|
-
static VALUE
|
132
|
-
rb_display_xmap_window(VALUE self, VALUE window)
|
133
|
-
{
|
134
|
-
return INT2NUM(XMapWindow(get_display_struct(self), NUM2ULONG(window)));
|
135
|
-
}
|
136
|
-
|
137
|
-
/*
|
138
|
-
* Xlib XSync
|
139
|
-
*/
|
140
|
-
static VALUE
|
141
|
-
rb_display_xsync(VALUE self, VALUE discard)
|
142
|
-
{
|
143
|
-
return INT2NUM(XSync(get_display_struct(self), RTEST(discard)));
|
144
|
-
}
|
145
|
-
|
146
|
-
/*
|
147
|
-
* Xlib XGrabKey
|
148
|
-
*/
|
149
|
-
static VALUE
|
150
|
-
rb_display_xgrab_key(VALUE self, VALUE keycode, VALUE modifiers, VALUE grab_window,
|
151
|
-
VALUE owner_events, VALUE pointer_mode, VALUE keyboard_mode)
|
152
|
-
{
|
153
|
-
int ret = XGrabKey(get_display_struct(self), NUM2INT(keycode), NUM2UINT(modifiers), NUM2ULONG(grab_window),
|
154
|
-
RTEST(owner_events), NUM2INT(pointer_mode), NUM2INT(keyboard_mode));
|
155
|
-
return INT2NUM(ret);
|
156
|
-
}
|
157
|
-
|
158
|
-
/*
|
159
|
-
* Xlib XUngrabKey
|
160
|
-
*/
|
161
|
-
static VALUE
|
162
|
-
rb_display_xungrab_key(VALUE self, VALUE keycode, VALUE modifiers, VALUE grab_window)
|
163
|
-
{
|
164
|
-
int ret = XUngrabKey(get_display_struct(self), NUM2INT(keycode), NUM2UINT(modifiers), NUM2ULONG(grab_window));
|
165
|
-
return INT2NUM(ret);
|
166
|
-
}
|
167
|
-
|
168
|
-
/*
|
169
|
-
* Xlib XKeysymToKeycode
|
170
|
-
*/
|
171
|
-
static VALUE
|
172
|
-
rb_display_xkeysym_to_keycode(VALUE self, VALUE keysym)
|
173
|
-
{
|
174
|
-
unsigned char keycode = XKeysymToKeycode(get_display_struct(self), NUM2ULONG(keysym));
|
175
|
-
return INT2FIX((int)keycode);
|
176
|
-
}
|
177
|
-
|
178
|
-
void
|
179
|
-
Init_libx11_display(void)
|
180
|
-
{
|
181
|
-
rb_define_singleton_method(rb_mLibX11, "xopen_display", rb_libx11_xopen_display, -1);
|
182
|
-
rb_define_singleton_method(rb_mLibX11, "xclose_display", rb_libx11_xclose_display, 1);
|
183
|
-
|
184
|
-
rb_cDisplay = rb_define_class_under(rb_mLibX11, "Display", rb_cData);
|
185
|
-
rb_define_method(rb_cDisplay, "default_root_window", rb_display_default_root_window, 0);
|
186
|
-
rb_define_method(rb_cDisplay, "default_screen", rb_display_default_screen, 0);
|
187
|
-
rb_define_method(rb_cDisplay, "connection_number", rb_display_connection_number, 0);
|
188
|
-
rb_define_method(rb_cDisplay, "xdisplay_string", rb_display_xdisplay_string, 0);
|
189
|
-
rb_define_method(rb_cDisplay, "black_pixel", rb_display_black_pixel, 1);
|
190
|
-
rb_define_method(rb_cDisplay, "white_pixel", rb_display_white_pixel, 1);
|
191
|
-
rb_define_method(rb_cDisplay, "xmap_window", rb_display_xmap_window, 1);
|
192
|
-
rb_define_method(rb_cDisplay, "xselect_input", rb_display_xselect_input, 2);
|
193
|
-
rb_define_method(rb_cDisplay, "xsync", rb_display_xsync, 1);
|
194
|
-
rb_define_method(rb_cDisplay, "xgrab_key", rb_display_xgrab_key, 6);
|
195
|
-
rb_define_method(rb_cDisplay, "xungrab_key", rb_display_xungrab_key, 3);
|
196
|
-
rb_define_method(rb_cDisplay, "xkeysym_to_keycode", rb_display_xkeysym_to_keycode, 1);
|
197
|
-
}
|