oekaki 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README +13 -1
- data/lib/oekaki.rb +19 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8bb8651b65f22522f8e0ae781362a842be83c3fe
|
4
|
+
data.tar.gz: 5b2618380ae75526a375a29104b9bd506dc7da96
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd60b1fdb992d66a759eab9bc8d324b3f4ee1a3a616b64495e6ac57b9e3199b548d64760373104702c9357aeb7bf33eb030863ad868de9652eae5b79c599b7f9
|
7
|
+
data.tar.gz: 785d66f52b20bf89d3b6550038d536d76f972b2987557e61e622fa8e58306decaccb98b1728a20cfc3af361eb823513c1ee8a75aec464a2871956646d20c2caf
|
data/README
CHANGED
@@ -92,8 +92,20 @@
|
|
92
92
|
rectangle(true, 0, 0, L, L)
|
93
93
|
end
|
94
94
|
|
95
|
+
quit_window = proc do
|
96
|
+
make_window do
|
97
|
+
title = ""
|
98
|
+
b = button do
|
99
|
+
set_size_request(120, 40)
|
100
|
+
add(Gtk::Label.new.set_markup('<span size="x-large">Quit!</span>'))
|
101
|
+
signal_connect("clicked") {Gtk.main_quit}
|
102
|
+
end
|
103
|
+
add(b)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
95
107
|
mouse_button do |w, e|
|
96
|
-
|
108
|
+
quit_window.call if e.button != 1
|
97
109
|
color(rand(65536), rand(65536), rand(65536))
|
98
110
|
arc(true, e.x - R, e.y - R, R * 2, R * 2, 0, 64 * 360)
|
99
111
|
end
|
data/lib/oekaki.rb
CHANGED
@@ -4,12 +4,14 @@ module Oekaki
|
|
4
4
|
W = Gtk::Window.new
|
5
5
|
class Tool
|
6
6
|
def initialize
|
7
|
+
@window = W
|
7
8
|
@drawable = W.window
|
8
9
|
@gc = Gdk::GC.new(@drawable)
|
9
10
|
@colormap = Gdk::Colormap.system
|
10
11
|
@color = Gdk::Color.new(0, 0, 0)
|
11
12
|
@fontdesc = Pango::FontDescription.new
|
12
13
|
end
|
14
|
+
attr_reader :window
|
13
15
|
|
14
16
|
def color(r, g, b)
|
15
17
|
@color = Gdk::Color.new(r, g, b)
|
@@ -60,6 +62,7 @@ module Oekaki
|
|
60
62
|
@color = color if color
|
61
63
|
@gc.set_foreground(@color)
|
62
64
|
end
|
65
|
+
private :set_color
|
63
66
|
|
64
67
|
def load_pic(filename)
|
65
68
|
GdkPixbuf::Pixbuf.new(file: filename)
|
@@ -99,6 +102,13 @@ module Oekaki
|
|
99
102
|
W.add_events(Gdk::Event::BUTTON_PRESS_MASK)
|
100
103
|
W.signal_connect("button_press_event", &bk)
|
101
104
|
end
|
105
|
+
|
106
|
+
def make_window(&bk)
|
107
|
+
w = Gtk::Window.new
|
108
|
+
w.instance_eval(&bk)
|
109
|
+
w.show_all
|
110
|
+
w
|
111
|
+
end
|
102
112
|
end
|
103
113
|
|
104
114
|
def self.app(width: 300, height: 300, title: "oekaki", &bk)
|
@@ -109,7 +119,16 @@ module Oekaki
|
|
109
119
|
|
110
120
|
Event.new.instance_eval(&bk)
|
111
121
|
|
122
|
+
W.signal_connect("destroy") {Gtk.main_quit}
|
112
123
|
W.show
|
113
124
|
Gtk.main
|
114
125
|
end
|
115
126
|
end
|
127
|
+
|
128
|
+
class Gtk::Window
|
129
|
+
def button(&bk)
|
130
|
+
b = Gtk::Button.new
|
131
|
+
b.instance_eval(&bk)
|
132
|
+
b
|
133
|
+
end
|
134
|
+
end
|