uh 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +30 -0
- data/ext/uh/uh.c +3 -0
- data/ext/uh/uh.h +3 -0
- data/ext/uh/window.c +31 -0
- data/lib/uh/display.rb +4 -0
- data/lib/uh/version.rb +1 -1
- data/lib/uh/window.rb +4 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb111523e35ca986f1df0008b339407efb803964
|
4
|
+
data.tar.gz: a42b77c2d47c94a889990ffaed2229afc97f26d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40d6ad54516a7c74a2310dd4efc16041d9c5c4f7a0b00673837f15d842ce27724418d79ade120f28385e7c1ddae3ed0f36132f94c5df6a20627440aafbe2dda0
|
7
|
+
data.tar.gz: 8a20c4f547461632eaf7a609e805ce43c154045c2e0dd00c535c135a17f8803629b538caadb7882cf50045f01d6d55c34edd82d2d53a00ebe9390f65b78ceed8
|
data/LICENSE
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
Copyright 2014 Thibault Jouan. All rights reserved.
|
2
|
+
|
3
|
+
Redistribution and use in source and binary forms, with or without
|
4
|
+
modification, are permitted provided that the following conditions are
|
5
|
+
met:
|
6
|
+
|
7
|
+
* Redistributions of source code must retain the above copyright
|
8
|
+
notice, this list of conditions and the following disclaimer.
|
9
|
+
|
10
|
+
* Redistributions in binary form must reproduce the above copyright
|
11
|
+
notice, this list of conditions and the following disclaimer in
|
12
|
+
the documentation and/or other materials provided with the
|
13
|
+
distribution.
|
14
|
+
|
15
|
+
* Neither the name of the software nor the names of its contributors
|
16
|
+
may be used to endorse or promote products derived from this
|
17
|
+
software without specific prior written permission.
|
18
|
+
|
19
|
+
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS "AS IS" AND
|
21
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
22
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
23
|
+
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS
|
24
|
+
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
25
|
+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
26
|
+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
27
|
+
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
28
|
+
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
29
|
+
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
30
|
+
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/ext/uh/uh.c
CHANGED
@@ -123,8 +123,10 @@ void uh_window() {
|
|
123
123
|
rb_define_method(cWindow, "focus", window_focus, 0);
|
124
124
|
rb_define_method(cWindow, "kill", window_kill, 0);
|
125
125
|
rb_define_method(cWindow, "map", window_map, 0);
|
126
|
+
rb_define_method(cWindow, "mask", window_mask, 0);
|
126
127
|
rb_define_method(cWindow, "mask=", window_mask_set, 1);
|
127
128
|
rb_define_method(cWindow, "name", window_name, 0);
|
129
|
+
rb_define_method(cWindow, "name=", window_name_set, 1);
|
128
130
|
rb_define_method(cWindow, "override_redirect?", window_override_redirect, 0);
|
129
131
|
rb_define_method(cWindow, "raise", window_raise, 0);
|
130
132
|
rb_define_method(cWindow, "unmap", window_unmap, 0);
|
@@ -134,6 +136,7 @@ void uh_window() {
|
|
134
136
|
rb_define_private_method(cWindow, "_configure", window__configure, 4);
|
135
137
|
rb_define_private_method(cWindow, "_configure_event",
|
136
138
|
window__configure_event, 4);
|
139
|
+
rb_define_private_method(cWindow, "_create", window__create, 4);
|
137
140
|
rb_define_private_method(cWindow, "_create_sub", window__create_sub, 4);
|
138
141
|
rb_define_private_method(cWindow, "_moveresize", window__moveresize, 4);
|
139
142
|
}
|
data/ext/uh/uh.h
CHANGED
@@ -85,14 +85,17 @@ VALUE window_icccm_wm_delete(VALUE self);
|
|
85
85
|
VALUE window_icccm_wm_protocols(VALUE self);
|
86
86
|
VALUE window_kill(VALUE self);
|
87
87
|
VALUE window_map(VALUE self);
|
88
|
+
VALUE window_mask(VALUE self);
|
88
89
|
VALUE window_mask_set(VALUE self, VALUE mask);
|
89
90
|
VALUE window_name(VALUE self);
|
91
|
+
VALUE window_name_set(VALUE self, VALUE name);
|
90
92
|
VALUE window_override_redirect(VALUE self);
|
91
93
|
VALUE window_raise(VALUE self);
|
92
94
|
VALUE window_unmap(VALUE self);
|
93
95
|
VALUE window_wclass(VALUE self);
|
94
96
|
VALUE window__configure(VALUE self, VALUE rx, VALUE ry, VALUE rw, VALUE rh);
|
95
97
|
VALUE window__configure_event(VALUE self, VALUE rx, VALUE ry, VALUE rw, VALUE rh);
|
98
|
+
VALUE window__create(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h);
|
96
99
|
VALUE window__create_sub(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h);
|
97
100
|
VALUE window__moveresize(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height);
|
98
101
|
int window_id(VALUE window);
|
data/ext/uh/window.c
CHANGED
@@ -68,6 +68,17 @@ VALUE window_map(VALUE self) {
|
|
68
68
|
return Qnil;
|
69
69
|
}
|
70
70
|
|
71
|
+
VALUE window_mask(VALUE self) {
|
72
|
+
XWindowAttributes wa;
|
73
|
+
SET_WINDOW(self);
|
74
|
+
|
75
|
+
if (!XGetWindowAttributes(DPY, WINDOW, &wa)) {
|
76
|
+
rb_raise(rb_eArgError, "cannot get window attributes for `0x%08lx'", WINDOW);
|
77
|
+
}
|
78
|
+
|
79
|
+
return LONG2FIX(wa.your_event_mask);
|
80
|
+
}
|
81
|
+
|
71
82
|
VALUE window_mask_set(VALUE self, VALUE mask) {
|
72
83
|
XSetWindowAttributes attrs;
|
73
84
|
SET_WINDOW(self);
|
@@ -92,6 +103,14 @@ VALUE window_name(VALUE self) {
|
|
92
103
|
return wname;
|
93
104
|
}
|
94
105
|
|
106
|
+
VALUE window_name_set(VALUE self, VALUE name) {
|
107
|
+
SET_WINDOW(self);
|
108
|
+
|
109
|
+
XStoreName(DPY, WINDOW, RSTRING_PTR(name));
|
110
|
+
|
111
|
+
return Qnil;
|
112
|
+
}
|
113
|
+
|
95
114
|
VALUE window_override_redirect(VALUE self) {
|
96
115
|
XWindowAttributes wa;
|
97
116
|
SET_WINDOW(self);
|
@@ -171,6 +190,18 @@ VALUE window__configure_event(VALUE self, VALUE rx, VALUE ry, VALUE rw, VALUE rh
|
|
171
190
|
return Qnil;
|
172
191
|
}
|
173
192
|
|
193
|
+
VALUE window__create(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h) {
|
194
|
+
Window win;
|
195
|
+
SET_WINDOW(self);
|
196
|
+
|
197
|
+
win = XCreateSimpleWindow(DPY, WINDOW,
|
198
|
+
FIX2INT(x), FIX2INT(y), FIX2INT(w), FIX2INT(h),
|
199
|
+
0, BlackPixel(DPY, SCREEN_DEFAULT), BlackPixel(DPY, SCREEN_DEFAULT)
|
200
|
+
);
|
201
|
+
|
202
|
+
return window_make(DPY, win);
|
203
|
+
}
|
204
|
+
|
174
205
|
VALUE window__create_sub(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h) {
|
175
206
|
XSetWindowAttributes wa;
|
176
207
|
Window sub_win;
|
data/lib/uh/display.rb
CHANGED
data/lib/uh/version.rb
CHANGED
data/lib/uh/window.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thibault Jouan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -77,6 +77,7 @@ files:
|
|
77
77
|
- ".travis.yml"
|
78
78
|
- Gemfile
|
79
79
|
- Guardfile
|
80
|
+
- LICENSE
|
80
81
|
- Rakefile
|
81
82
|
- ext/uh/color.c
|
82
83
|
- ext/uh/display.c
|