green_shoes 0.243.0 → 0.255.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -35,7 +35,7 @@ Since Green Shoes is a Ruby Gem, all you need to install are:
35
35
 
36
36
  1. [Ruby](http://ruby-lang.org) 1.9 or above
37
37
  2. [Gems](http://rubygems.org) 1.5 or above
38
- 3. [Ruby-GNOME2](http://ruby-gnome2.sourceforge.jp/) 0.90.7 or above
38
+ 3. [ruby-gtk2 package](http://ruby-gnome2.sourceforge.jp/) 0.90.7 or above
39
39
 
40
40
  Once you have all three requirements, you can simply install with this command:
41
41
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.243.0
1
+ 0.255.0
data/lib/green_shoes.rb CHANGED
@@ -25,6 +25,10 @@ module Shoes
25
25
  parenleft parenright minus asciicircum backslash equal asciitilde bar grave at braceleft
26
26
  bracketleft braceright bracketright plus asterisk semicolon colon less greater question
27
27
  comma period slash backslash space]
28
+ LINECAP = {curve: Cairo::LineCap::ROUND, rect: Cairo::LineCap::BUTT, project: Cairo::LineCap::SQUARE}
29
+ SPAN_FORM = {emphasis: :style, family: :font_family, weight: :weight, rise: :rise,
30
+ strikethrough: :strikethrough, strikecolor: :strikethrough_color, underline: :underline, undercolor: :underline_color}
31
+ WRAP = {word: Pango::WRAP_WORD, char: Pango::WRAP_CHAR, trim: Pango::ELLIPSIZE_END}
28
32
  end
29
33
 
30
34
  class Object
data/lib/shoes/app.rb CHANGED
@@ -29,9 +29,9 @@ class Shoes
29
29
  end
30
30
 
31
31
  attr_accessor :cslot, :cmask, :top_slot, :contents, :canvas, :app, :mccs, :mrcs, :mmcs,
32
- :mhcs, :mlcs, :shcs, :mcs, :win, :swin, :width_pre, :height_pre, :order, :dics, :fronts, :backs
32
+ :mhcs, :mlcs, :shcs, :mcs, :win, :swin, :width_pre, :height_pre, :order, :dics, :fronts, :backs, :focusables, :focus_ele
33
33
  attr_writer :mouse_button, :mouse_pos
34
- attr_reader :link_style, :linkhover_style, :animates, :owner, :textcursors, :textmarkers
34
+ attr_reader :link_style, :linkhover_style, :animates, :owner, :textcursors, :textmarkers, :location
35
35
 
36
36
  def visit url
37
37
  if url =~ /^(http|https):\/\//
@@ -45,7 +45,7 @@ class Shoes
45
45
  end
46
46
  else
47
47
  timer 0.001 do
48
- $urls.each{|k, v| clear{init_app_vars; v.call self, $1} if k =~ url}
48
+ $urls.each{|k, v| clear{init_app_vars; @location = url; v.call self, $1} if k =~ url}
49
49
  end
50
50
  end
51
51
  end
@@ -55,7 +55,8 @@ class Shoes
55
55
  slot_with_scrollbar Stack, args, &blk
56
56
  else
57
57
  args[:app] = self
58
- Stack.new slot_attributes(args), &blk
58
+ (click_proc = args[:click]; args.delete :click) if args[:click]
59
+ Stack.new(slot_attributes(args), &blk).tap{|s| s.click &click_proc if click_proc}
59
60
  end
60
61
  end
61
62
 
@@ -64,7 +65,8 @@ class Shoes
64
65
  slot_with_scrollbar Flow, args, &blk
65
66
  else
66
67
  args[:app] = self
67
- Flow.new slot_attributes(args), &blk
68
+ (click_proc = args[:click]; args.delete :click) if args[:click]
69
+ Flow.new(slot_attributes(args), &blk).tap{|s| s.click &click_proc if click_proc}
68
70
  end
69
71
  end
70
72
 
@@ -114,6 +116,10 @@ class Shoes
114
116
  args[:markup] = msg.map(&:to_s).join
115
117
  args[:markup] = fg(args[:markup], tr_color(args[:stroke])) if args[:stroke]
116
118
  args[:markup] = bg(args[:markup], tr_color(args[:fill])) if args[:fill]
119
+ form = {}
120
+ args.each{|k, v| form.merge!({k => v}) if SPAN_FORM[k]}
121
+ args[:markup] = span(args[:markup], form) unless form.empty?
122
+ SPAN_FORM.keys.+([:stroke, :fill]).each{|k| args.delete k}
117
123
  text, attr_list = make_pango_attr args[:markup]
118
124
  args[:size] ||= font_size
119
125
  args[:font] ||= (@font_family or 'sans')
@@ -132,7 +138,7 @@ class Shoes
132
138
  if args[:create_real] or !layout_control
133
139
  args[:width] = 1 if args[:width] <= 0
134
140
  layout, context, surface =
135
- make_pango_layout args[:size], args[:width], args[:height], args[:align], args[:font], text, attr_list
141
+ make_pango_layout args[:size], args[:width], args[:height], args[:align], args[:font], args[:justify], args[:leading], args[:wrap], text, attr_list
136
142
  context.show_pango_layout layout
137
143
  context.show_page
138
144
 
@@ -163,6 +169,7 @@ class Shoes
163
169
  def image name, args={}
164
170
  args = basic_attributes args
165
171
  args[:full_width] = args[:full_height] = 0
172
+ (click_proc = args[:click]; args.delete :click) if args[:click]
166
173
  if name =~ /^(http|https):\/\//
167
174
  tmpname = File.join(Dir.tmpdir, "__green_shoes_#{Time.now.to_f}.png")
168
175
  d = download name, save: tmpname
@@ -183,7 +190,10 @@ class Shoes
183
190
  img.show_now
184
191
  @canvas.remove img if args[:hidden]
185
192
  args[:real], args[:app] = img, self
186
- Image.new(args).tap{|s| @dics.push([s, d, tmpname]) if downloading}
193
+ Image.new(args).tap do |s|
194
+ @dics.push([s, d, tmpname]) if downloading
195
+ s.click &click_proc if click_proc
196
+ end
187
197
  end
188
198
 
189
199
  def imagesize name
@@ -192,6 +202,7 @@ class Shoes
192
202
 
193
203
  def button name, args={}
194
204
  args = basic_attributes args
205
+ (click_proc = args[:click]; args.delete :click) if args[:click]
195
206
  b = Gtk::Button.new name
196
207
  b.set_size_request args[:width], args[:height] if args[:width] > 0 and args[:height] > 0
197
208
  b.signal_connect "clicked" do
@@ -200,11 +211,12 @@ class Shoes
200
211
  @canvas.put b, args[:left], args[:top]
201
212
  b.show_now
202
213
  args[:real], args[:text], args[:app] = b, name, self
203
- @_b = Button.new args
214
+ @_b = Button.new(args).tap{|s| s.click &click_proc if click_proc}
204
215
  end
205
216
 
206
217
  def check args={}
207
218
  args = basic_attributes args
219
+ (click_proc = args[:click]; args.delete :click) if args[:click]
208
220
  cb = Gtk::CheckButton.new
209
221
  cb.active = true if args[:checked]
210
222
  cb.signal_connect "clicked" do
@@ -213,7 +225,7 @@ class Shoes
213
225
  @canvas.put cb, args[:left], args[:top]
214
226
  cb.show_now
215
227
  args[:real], args[:app] = cb, self
216
- @_cb = Check.new args
228
+ @_cb = Check.new(args).tap{|s| s.click &click_proc if click_proc}
217
229
  end
218
230
 
219
231
  def radio *attrs
@@ -221,6 +233,7 @@ class Shoes
221
233
  group = attrs.first unless attrs.empty?
222
234
  group = group ? (@radio_groups[group] ||= Gtk::RadioButton.new) : cslot.radio_group
223
235
  args = basic_attributes args
236
+ (click_proc = args[:click]; args.delete :click) if args[:click]
224
237
  rb = Gtk::RadioButton.new group
225
238
  rb.active = true if args[:checked]
226
239
  rb.signal_connect "clicked" do
@@ -229,14 +242,16 @@ class Shoes
229
242
  @canvas.put rb, args[:left], args[:top]
230
243
  rb.show_now
231
244
  args[:real], args[:app] = rb, self
232
- @_rb = Radio.new args
245
+ @_rb = Radio.new(args).tap{|s| s.click &click_proc if click_proc}
233
246
  end
234
247
 
235
248
  def edit_line args={}
236
249
  args = basic_attributes args
237
250
  args[:width] = 200 if args[:width].zero?
238
251
  args[:height] = 28 if args[:height].zero?
252
+ (change_proc = args[:change]; args.delete :change) if args[:change]
239
253
  el = Gtk::Entry.new
254
+ el.visibility = false if args[:secret]
240
255
  el.text = args[:text].to_s
241
256
  el.set_size_request args[:width], args[:height]
242
257
  el.signal_connect "changed" do
@@ -245,13 +260,14 @@ class Shoes
245
260
  @canvas.put el, args[:left], args[:top]
246
261
  el.show_now
247
262
  args[:real], args[:app] = el, self
248
- @_el = EditLine.new args
263
+ @_el = EditLine.new(args).tap{|s| s.change &change_proc}
249
264
  end
250
265
 
251
266
  def edit_box args={}
252
267
  args = basic_attributes args
253
268
  args[:width] = 200 if args[:width].zero?
254
269
  args[:height] = 108 if args[:height].zero?
270
+ (change_proc = args[:change]; args.delete :change) if args[:change]
255
271
  tv = Gtk::TextView.new
256
272
  tv.wrap_mode = Gtk::TextTag::WRAP_WORD
257
273
  tv.buffer.text = args[:text].to_s
@@ -269,13 +285,14 @@ class Shoes
269
285
  @canvas.put eb, args[:left], args[:top]
270
286
  eb.show_all
271
287
  args[:real], args[:app], args[:textview] = eb, self, tv
272
- @_eb = EditBox.new args
288
+ @_eb = EditBox.new(args).tap{|s| s.change &change_proc}
273
289
  end
274
290
 
275
291
  def list_box args={}
276
292
  args = basic_attributes args
277
293
  args[:width] = 200 if args[:width].zero?
278
294
  args[:height] = 28 if args[:height].zero?
295
+ (change_proc = args[:change]; args.delete :change) if args[:change]
279
296
  cb = Gtk::ComboBox.new
280
297
  args[:items] ||= []
281
298
  args[:items].each{|item| cb.append_text item.to_s}
@@ -287,7 +304,7 @@ class Shoes
287
304
  @canvas.put cb, args[:left], args[:top]
288
305
  cb.show_now
289
306
  args[:real], args[:app] = cb, self
290
- @_lb = ListBox.new args
307
+ @_lb = ListBox.new(args).tap{|s| s.change &change_proc}
291
308
  end
292
309
 
293
310
  def animate n=10, repaint=true, &blk
@@ -347,6 +364,7 @@ class Shoes
347
364
  else args[:left], args[:top], args[:width], args[:height] = attrs
348
365
  end
349
366
  args = basic_attributes args
367
+ (click_proc = args[:click]; args.delete :click) if args[:click]
350
368
  args[:width].zero? ? (args[:width] = args[:radius] * 2) : (args[:radius] = args[:width]/2.0)
351
369
  args[:height] = args[:width] if args[:height].zero?
352
370
  args[:strokewidth] = ( args[:strokewidth] or strokewidth or 1 )
@@ -373,7 +391,7 @@ class Shoes
373
391
  context.set_source gp
374
392
  context.set_line_width args[:strokewidth]
375
393
  context.arc args[:radius]+mx, args[:radius]-my, args[:radius]-args[:strokewidth]/2.0, args[:angle1], args[:angle2]
376
- context.set_line_cap cap
394
+ context.set_line_cap(LINECAP[args[:cap]] || cap)
377
395
  context.stroke
378
396
 
379
397
  img = create_tmp_png surface
@@ -382,11 +400,12 @@ class Shoes
382
400
  img.show_now
383
401
  @canvas.remove img if args[:hidden]
384
402
  args[:real], args[:app] = img, self
385
- Oval.new args
403
+ Oval.new(args).tap{|s| s.click &click_proc if click_proc}
386
404
  end
387
405
 
388
- def arc l, t, w, h, a1, a2
389
- oval l, t, w, h, angle1: a1, angle2: a2
406
+ def arc l, t, w, h, a1, a2, args={}
407
+ args.merge!({angle1: a1, angle2: a2})
408
+ oval l, t, w, h, args
390
409
  end
391
410
 
392
411
  def rect *attrs
@@ -403,6 +422,7 @@ class Shoes
403
422
  w, h, mx, my = set_rotate_angle(args)
404
423
 
405
424
  args = basic_attributes args
425
+ (click_proc = args[:click]; args.delete :click) if args[:click]
406
426
  surface = Cairo::ImageSurface.new Cairo::FORMAT_ARGB32, w, h
407
427
  context = Cairo::Context.new surface
408
428
 
@@ -428,7 +448,7 @@ class Shoes
428
448
  img.show_now
429
449
  @canvas.remove img if args[:hidden]
430
450
  args[:real], args[:app] = img, self
431
- Rect.new args
451
+ Rect.new(args).tap{|s| s.click &click_proc if click_proc}
432
452
  end
433
453
 
434
454
  def line *attrs
@@ -446,6 +466,7 @@ class Shoes
446
466
  args[:height] += cw
447
467
 
448
468
  args = basic_attributes args
469
+ (click_proc = args[:click]; args.delete :click) if args[:click]
449
470
  surface = Cairo::ImageSurface.new Cairo::FORMAT_ARGB32, args[:width]+sw, args[:height]+sw
450
471
  context = Cairo::Context.new surface
451
472
 
@@ -481,14 +502,14 @@ class Shoes
481
502
  args[:top] = sy
482
503
  end
483
504
 
484
- context.set_line_cap cap
505
+ context.set_line_cap(LINECAP[args[:cap]] || cap)
485
506
  context.stroke
486
507
  img = create_tmp_png surface
487
508
  @canvas.put img, (args[:left]-=cw), (args[:top]-=cw)
488
509
  img.show_now
489
510
  @canvas.remove img if args[:hidden]
490
511
  args[:real], args[:app] = img, self
491
- Line.new args
512
+ Line.new(args).tap{|s| s.click &click_proc if click_proc}
492
513
  end
493
514
 
494
515
  def shapebase klass, args
@@ -499,10 +520,12 @@ class Shoes
499
520
  w, h, mx, my = set_rotate_angle(args)
500
521
 
501
522
  args = basic_attributes args
523
+ (click_proc = args[:click]; args.delete :click) if args[:click]
502
524
  surface = Cairo::ImageSurface.new Cairo::FORMAT_ARGB32, w, h
503
525
  context = Cairo::Context.new surface
504
526
  args[:strokewidth] = ( args[:strokewidth] or strokewidth or 1 )
505
527
  context.set_line_width args[:strokewidth]
528
+ context.set_line_cap(LINECAP[args[:cap]] || cap)
506
529
 
507
530
  context.rotate @context_angle
508
531
 
@@ -527,7 +550,7 @@ class Shoes
527
550
  img.show_now
528
551
  @canvas.remove img if args[:hidden]
529
552
  args[:real], args[:app] = img, self
530
- klass.new args
553
+ klass.new(args).tap{|s| s.click &click_proc if click_proc}
531
554
  end
532
555
 
533
556
  def shape args={}, &blk
@@ -753,14 +776,10 @@ class Shoes
753
776
 
754
777
  def cap *line_cap
755
778
  @line_cap = case line_cap.first
756
- when :curve
757
- Cairo::LineCap::ROUND
758
- when :rect
759
- Cairo::LineCap::BUTT
760
- when :project
761
- Cairo::LineCap::SQUARE
779
+ when :curve, :rect, :project
780
+ LINECAP[line_cap.first]
762
781
  else
763
- @line_cap ||= Cairo::LineCap::BUTT
782
+ @line_cap ||= LINECAP[:rect]
764
783
  end
765
784
  end
766
785
  end
data/lib/shoes/basic.rb CHANGED
@@ -10,6 +10,7 @@ class Shoes
10
10
  (@app.order << self) unless @noorder or self.is_a?(EditBox) or self.is_a?(EditLine)
11
11
  (@app.cslot.contents << self) unless @nocontrol or @app.cmask
12
12
  (@app.cmask.contents << self) if @app.cmask
13
+ (@app.focusables << self) if self.is_a? Native
13
14
  @parent = @app.cslot
14
15
 
15
16
  Basic.class_eval do
@@ -247,6 +248,10 @@ class Shoes
247
248
  def change obj, &blk
248
249
  obj.signal_connect "changed", &proc{parent.append{blk[self]}} if blk
249
250
  end
251
+
252
+ def focus
253
+ @app.focus_ele = self
254
+ end
250
255
  end
251
256
  class Button < Native
252
257
  def click &blk
@@ -263,7 +268,12 @@ class Shoes
263
268
  end
264
269
  end
265
270
  class Check < ToggleButton; end
266
- class Radio < ToggleButton; end
271
+ class Radio < ToggleButton
272
+ def focus
273
+ self.checked = true
274
+ super
275
+ end
276
+ end
267
277
 
268
278
  class EditLine < Native
269
279
  def text
@@ -330,5 +340,7 @@ class Shoes
330
340
  def fraction= n
331
341
  real.fraction = n
332
342
  end
343
+
344
+ undef_method :focus
333
345
  end
334
346
  end
@@ -36,9 +36,9 @@ class Shoes
36
36
 
37
37
  module Mod2
38
38
  def init_app_vars
39
- @contents, @mccs, @mrcs, @mmcs, @mhcs, @mlcs, @shcs, @mcs, @order, @dics, @animates, @radio_groups, @textcursors, @textmarkers, @fronts, @backs =
40
- [], [], [], [], [], [], [], [], [], [], [], {}, {}, {}, [], []
41
- @cmask = nil
39
+ @contents, @mccs, @mrcs, @mmcs, @mhcs, @mlcs, @shcs, @mcs, @order, @dics, @animates, @radio_groups, @textcursors, @textmarkers, @fronts, @backs, @focusables =
40
+ [], [], [], [], [], [], [], [], [], [], [], {}, {}, {}, [], [], []
41
+ @cmask, @focus_ele, @location = nil, nil, '/'
42
42
  @mouse_button, @mouse_pos = 0, [0, 0]
43
43
  @fill, @stroke = black, black
44
44
  end
@@ -107,10 +107,10 @@ class Shoes
107
107
  end
108
108
 
109
109
  def make_textcursor_layout tb
110
- markup, size, width, height, align, font =
111
- %w[@markup @size @width @height @align @font].map{|v| tb.instance_variable_get v}
110
+ markup, size, width, height, align, font, justify, leading, wrap =
111
+ %w[@markup @size @width @height @align @font @justify @leading @wrap].map{|v| tb.instance_variable_get v}
112
112
  text, attr_list = make_pango_attr markup
113
- make_pango_layout(size, width, height, align, font, text, attr_list)[0]
113
+ make_pango_layout(size, width, height, align, font, justify, leading, wrap, text, attr_list)[0]
114
114
  end
115
115
 
116
116
  def make_pango_attr markup
@@ -120,14 +120,19 @@ class Shoes
120
120
  return text, attr_list
121
121
  end
122
122
 
123
- def make_pango_layout size, width, height, align, font, text, attr_list
123
+ def make_pango_layout size, width, height, align, font, justify, leading, wrap, text, attr_list
124
+ leading ||= 4
125
+ wrap ||= 'word'
126
+ wrap == 'trim' ? (wrap, ellipsize = nil, WRAP[wrap.to_sym]) : (wrap, ellipsize = WRAP[wrap.to_sym], nil)
124
127
  surface = Cairo::ImageSurface.new Cairo::FORMAT_ARGB32, width, height
125
128
  context = Cairo::Context.new surface
126
129
  layout = context.create_pango_layout
127
130
  layout.width = width * Pango::SCALE
128
- layout.wrap = Pango::WRAP_WORD
129
- layout.spacing = 5 * Pango::SCALE
131
+ layout.wrap = wrap if wrap
132
+ layout.ellipsize = ellipsize if ellipsize
133
+ layout.spacing = leading * Pango::SCALE
130
134
  layout.text = text
135
+ layout.justify = justify
131
136
  layout.alignment = eval "Pango::ALIGN_#{align.upcase}"
132
137
  fd = Pango::FontDescription.new
133
138
  fd.family = font
@@ -204,6 +209,8 @@ class Shoes
204
209
  repaint_all_by_order app
205
210
  repaint_textcursors app
206
211
  app.canvas.set_size 0, scrollable_height unless(app.prjct or app.trvw)
212
+ n = app.focusables.index app.focus_ele
213
+ app.canvas.focus_chain = (app.focusables[n..-1] + app.focusables[0...n]).map(&:real) if n
207
214
  true
208
215
  end
209
216
 
data/lib/shoes/ruby.rb CHANGED
@@ -13,7 +13,7 @@ class Object
13
13
  Gtk::Dialog::MODAL,
14
14
  Gtk::MessageDialog::INFO,
15
15
  Gtk::MessageDialog::BUTTONS_OK,
16
- msg
16
+ msg.to_s
17
17
  )
18
18
  dialog.title = "Green Shoes says:"
19
19
  dialog.run
@@ -36,7 +36,7 @@ class Object
36
36
  ret
37
37
  end
38
38
 
39
- def ask msg
39
+ def ask msg, args={}
40
40
  dialog = Gtk::Dialog.new(
41
41
  "Green Shoes asks:",
42
42
  get_win,
@@ -46,6 +46,7 @@ class Object
46
46
  )
47
47
  dialog.vbox.add Gtk::Label.new msg
48
48
  dialog.vbox.add(el = Gtk::Entry.new)
49
+ el.visibility = false if args[:secret]
49
50
  dialog.set_size_request 300, 100
50
51
  dialog.show_all
51
52
  ret = dialog.run == Gtk::Dialog::RESPONSE_ACCEPT ? el.text : nil
data/lib/shoes/text.rb CHANGED
@@ -22,6 +22,21 @@ class Shoes
22
22
  def font name
23
23
  @font_family = name
24
24
  end
25
+
26
+ def span str, args={}
27
+ tmp = args.map do |k, v|
28
+ v *= 1000 if v.is_a?(Integer) && k != :weight
29
+ (v = v == 'single' ? 'yes' : 'no') if k == :strikethrough
30
+ k = SPAN_FORM[k] if SPAN_FORM[k]
31
+ if k.to_s.index('_color') and v.is_a?(Array)
32
+ v = v.map{|x| (x * 255).to_i} if v[0].is_a?(Float)
33
+ v = ("#%2s%2s%2s" % v.map{|x| x.to_s 16}).gsub(' ', '0')
34
+ end
35
+ [k, v]
36
+ end
37
+ form = tmp.map{|k, v| "#{k}='#{v}'"}.join(' ')
38
+ "<span #{form}>#{str}</span>"
39
+ end
25
40
  end
26
41
 
27
42
  class Text
data/samples/sample15.rb CHANGED
@@ -3,15 +3,18 @@ require '../lib/green_shoes'
3
3
  TEXT =<<EOS
4
4
  Lorem ipsum dolor sit amet, consectetur adipisicing elit, \
5
5
  sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
6
-
7
6
  Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris \
8
7
  nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in \
9
8
  reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
10
-
11
9
  Excepteur sint occaecat cupidatat non proident, sunt in \
12
10
  culpa qui officia deserunt mollit anim id est laborum.
13
11
  EOS
14
12
 
13
+ NL = "\n"
14
+
15
15
  Shoes.app do
16
- para TEXT
16
+ lines = TEXT.split("\n")
17
+ para lines[0], NL
18
+ para lines[1], NL, justify: true
19
+ para lines[2], NL, leading: -5
17
20
  end
data/samples/sample35.rb CHANGED
@@ -17,6 +17,7 @@ class PhotoFrame < Shoes
17
17
  para fg(strong('She is Loogink.'), white),
18
18
  '->', link(strong('Cy')){visit '/cy'},
19
19
  margin: 10
20
+ p app.location
20
21
  end
21
22
 
22
23
  def cy
@@ -25,6 +26,7 @@ class PhotoFrame < Shoes
25
26
  para fg(strong('He is Cy.'), gray), ' ->',
26
27
  link(strong('loogink')){visit '/loogink'},
27
28
  margin: 10
29
+ p app.location
28
30
  end
29
31
  end
30
32
 
Binary file
data/static/manual-en.txt CHANGED
@@ -576,8 +576,6 @@ This section covers:
576
576
  If you find yourself paging around a lot and not finding something, give the
577
577
  [[Search]] page a try. It's the quickest way to get around.
578
578
 
579
- '''Note:''' Green Shoes doesn't support Search page so far.
580
-
581
579
  After this general reference, there are two other more specific sections:
582
580
 
583
581
  * [[Slots]] - covering [[Element.stack]] and [[Element.flow]], the two types of slots.
@@ -1028,8 +1026,6 @@ library for parsing HTML.
1028
1026
 
1029
1027
  Gets a string containing the URL of the current app.
1030
1028
 
1031
- '''Note:''' Green Shoes doesn't support location method so far.
1032
-
1033
1029
  === mouse() » an array of numbers: button, left, top ===
1034
1030
 
1035
1031
  Identifies the mouse cursor's location, along with which button is being
@@ -1052,8 +1048,6 @@ Gets the app which launched this app. In most cases, this will be `nil`. But
1052
1048
  if this app was launched using the [[Element.window]] method, the owner will be
1053
1049
  the app which called `window`.
1054
1050
 
1055
- '''Note:''' Green Shoes doesn't support owner method so far.
1056
-
1057
1051
  === started?() » true or false ===
1058
1052
 
1059
1053
  Has the window been fully constructed and displayed? This is useful for
@@ -1194,13 +1188,11 @@ element so that its bottom edge and the bottom edge of its slot touch.
1194
1188
 
1195
1189
  === :cap » :curve or :rect or :project ===
1196
1190
 
1197
- For: ''arc, arrow, border, flow, image, mask, rect, star, shape, stack''.
1191
+ For: ''arc, line, shape''.
1198
1192
 
1199
1193
  Sets the shape of the line endpoint, whether curved or square. See the
1200
1194
  [[Art.cap]] method for more explanation.
1201
1195
 
1202
- '''Note:''' Green Shoes doesn't support `:cap` style.
1203
-
1204
1196
  === :center » true or false ===
1205
1197
 
1206
1198
  For: ''arc, image, oval, rect, shape''.
@@ -1218,8 +1210,6 @@ For: ''edit_box, edit_line, list_box''.
1218
1210
  The `change` event handler is stored in this style. See the [[EditBox.change]]
1219
1211
  method for the edit_box, as an example.
1220
1212
 
1221
- '''Note:''' Green Shoes doesn't support `:change` style.
1222
-
1223
1213
  === :checked » true or false ===
1224
1214
 
1225
1215
  For: ''check, radio''.
@@ -1236,15 +1226,12 @@ Sets the currently chosen item in the list. More information at
1236
1226
 
1237
1227
  === :click » a proc ===
1238
1228
 
1239
- For: ''arc, arrow, banner, button, caption, check, flow, image, inscription,
1240
- line, link, mask, oval, para, radio, rect, shape, stack, star, subtitle,
1241
- tagline, title''.
1229
+ For: ''arc, arrow, button, check, flow, image,
1230
+ line, link, oval, radio, rect, shape, stack, star''.
1242
1231
 
1243
1232
  The `click` event handler is stored in this style. See the [[Events.click]]
1244
1233
  method for a description.
1245
1234
 
1246
- '''Note:''' Green Shoes doesn't support `:click` style.
1247
-
1248
1235
  === :curve » a number ===
1249
1236
 
1250
1237
  For: ''background, border, rect''.
@@ -1279,8 +1266,7 @@ be a bit surprising.
1279
1266
 
1280
1267
  === :emphasis » a string ===
1281
1268
 
1282
- For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
1283
- strong, sub, sup, subtitle, tagline, title''.
1269
+ For: ''banner, caption, inscription, para, span, subtitle, tagline, title''.
1284
1270
 
1285
1271
  Styles the text with an emphasis (commonly italicized.)
1286
1272
 
@@ -1290,18 +1276,13 @@ This style recognizes three possible settings:
1290
1276
  * "oblique" - the font is slanted, but in a roman style.
1291
1277
  * "italic" - the font is slanted in an italic style.
1292
1278
 
1293
- '''Note:''' Green Shoes doesn't support `:emphasis` style.
1294
-
1295
1279
  === :family » a string ===
1296
1280
 
1297
- For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
1298
- strong, sub, sup, subtitle, tagline, title''.
1281
+ For: ''banner, caption, inscription, para, span, subtitle, tagline, title''.
1299
1282
 
1300
1283
  Styles the text with a given font family. The string should contain the family
1301
1284
  name or a comma-separated list of families.
1302
1285
 
1303
- '''Note:''' Green Shoes doesn't support `:family` style.
1304
-
1305
1286
  === :fill » a hex code, a rgb array or a range of either ===
1306
1287
 
1307
1288
  For: ''background, banner, border, caption, inscription, para, line, oval,
@@ -1393,13 +1374,10 @@ for an example.
1393
1374
 
1394
1375
  === :justify » true or false ===
1395
1376
 
1396
- For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
1397
- strong, sub, sup, subtitle, tagline, title''
1377
+ For: ''banner, caption, inscription, para, subtitle, tagline, title''.
1398
1378
 
1399
1379
  Evenly spaces the text horizontally.
1400
1380
 
1401
- '''Note:''' Green Shoes doesn't support `:justify` style.
1402
-
1403
1381
  === :kerning » a number ===
1404
1382
 
1405
1383
  For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
@@ -1415,8 +1393,6 @@ For: ''banner, caption, inscription, para, subtitle, tagline, title''.
1415
1393
 
1416
1394
  Sets the spacing between lines in a text block. Defaults to 4 pixels.
1417
1395
 
1418
- '''Note:''' Green Shoes doesn't support `:leading` style.
1419
-
1420
1396
  === :left » a number ===
1421
1397
 
1422
1398
  For: ''all slots and elements''.
@@ -1498,15 +1474,12 @@ left of its slot's right edge by twenty pixels.
1498
1474
 
1499
1475
  === :rise » a number ===
1500
1476
 
1501
- For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
1502
- strong, sub, sup, subtitle, tagline, title''.
1477
+ For: ''banner, caption, inscription, para, span, subtitle, tagline, title''.
1503
1478
 
1504
1479
  Lifts or plunges the font baseline for some text. For example, a
1505
1480
  [[Element.sup]] has a `:rise` of 10 pixels. Conversely, the [[Element.sub]]
1506
1481
  element has a `:rise` of -10 pixels.
1507
1482
 
1508
- '''Note:''' Green Shoes doesn't support `:rise` style.
1509
-
1510
1483
  === :scroll » true or false ===
1511
1484
 
1512
1485
  For: ''flow, stack''.
@@ -1543,8 +1516,6 @@ Used for password fields, this setting keeps any characters typed in from
1543
1516
  becoming visible on the screen. Instead, a replacement character (such as an
1544
1517
  asterisk) is show for each letter typed.
1545
1518
 
1546
- '''Note:''' Green Shoes doesn't support `:secret` style.
1547
-
1548
1519
  === :size » a number ===
1549
1520
 
1550
1521
  For: ''banner, caption, inscription, para, subtitle, tagline, title''.
@@ -1595,25 +1566,19 @@ Possible settings are:
1595
1566
 
1596
1567
  === :strikecolor » a Shoes::Color ===
1597
1568
 
1598
- For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
1599
- strong, sub, sup, subtitle, tagline, title''.
1569
+ For: ''banner, caption, inscription, para, span, subtitle, tagline, title''.
1600
1570
 
1601
1571
  The color used to paint any lines stricken through this text.
1602
1572
 
1603
- '''Note:''' Green Shoes doesn't support `:strikecolor` style.
1604
-
1605
1573
  === :strikethrough » a string ===
1606
1574
 
1607
- For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
1608
- strong, sub, sup, subtitle, tagline, title''.
1575
+ For: ''banner, caption, inscription, para, span, subtitle, tagline, title''.
1609
1576
 
1610
1577
  Is this text stricken through? Two options here:
1611
1578
 
1612
1579
  * "none" - no strikethrough
1613
1580
  * "single" - a single-line strikethrough.
1614
1581
 
1615
- '''Note:''' Green Shoes doesn't support `:strikethrough` style.
1616
-
1617
1582
  === :stroke » a hex code, a rgb array or a range of either ===
1618
1583
 
1619
1584
  For: ''background, banner, border, caption, inscription, para, line, oval,
@@ -1647,17 +1612,13 @@ of the slot it contains.
1647
1612
 
1648
1613
  === :undercolor » a Shoes::Color ===
1649
1614
 
1650
- For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
1651
- strong, sub, sup, subtitle, tagline, title''.
1615
+ For: ''banner, caption, inscription, para, span, subtitle, tagline, title''.
1652
1616
 
1653
1617
  The color used to underline text.
1654
1618
 
1655
- '''Note:''' Green Shoes doesn't support `:undercolor` style.
1656
-
1657
1619
  === :underline » a string ===
1658
1620
 
1659
- For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
1660
- strong, sub, sup, subtitle, tagline, title''.
1621
+ For: ''banner, caption, inscription, para, span, subtitle, tagline, title''.
1661
1622
 
1662
1623
  Dictates the style of underline used in the text.
1663
1624
 
@@ -1669,8 +1630,6 @@ The choices for this setting are:
1669
1630
  * "low" - a lower underline, beneath the font baseline. (This is generally recommended only for single characters, particularly when showing keyboard accelerators.)
1670
1631
  * "error" - a wavy underline, usually found indicating a misspelling.
1671
1632
 
1672
- '''Note:''' Green Shoes doesn't support `:underline` style.
1673
-
1674
1633
  === :variant » a string ===
1675
1634
 
1676
1635
  For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
@@ -1685,8 +1644,7 @@ Vary the font for a group of text. Two choices:
1685
1644
 
1686
1645
  === :weight » a string ===
1687
1646
 
1688
- For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
1689
- strong, sub, sup, subtitle, tagline, title''.
1647
+ For: ''banner, caption, inscription, para, span, subtitle, tagline, title''.
1690
1648
 
1691
1649
  Set the boldness of the text. Commonly, this style is set to one of the
1692
1650
  following strings:
@@ -1701,8 +1659,6 @@ following strings:
1701
1659
 
1702
1660
  However, you may also pass in the numerical weight directly.
1703
1661
 
1704
- '''Note:''' Green Shoes doesn't support `:weight` style.
1705
-
1706
1662
  === :width » a number ===
1707
1663
 
1708
1664
  For: ''all slots and elements''.
@@ -1713,8 +1669,7 @@ converted to a percentage (with 0.0 being 0% and 1.0 being 100%.) A width of
1713
1669
 
1714
1670
  === :wrap » a string ===
1715
1671
 
1716
- For: ''banner, caption, code, del, em, ins, inscription, link, para, span,
1717
- strong, sub, sup, subtitle, tagline, title''
1672
+ For: ''banner, caption, inscription, para, span, subtitle, tagline, title''.
1718
1673
 
1719
1674
  How should the text wrap when it fills its width? Possible options are:
1720
1675
 
@@ -1722,8 +1677,6 @@ How should the text wrap when it fills its width? Possible options are:
1722
1677
  * "char" - Break lines between characters, thus breaking some words.
1723
1678
  * "trim" - Cut the line off with an ellipsis if it goes too long.
1724
1679
 
1725
- '''Note:''' Green Shoes doesn't support `:wrap` style.
1726
-
1727
1680
  == Classes List ==
1728
1681
 
1729
1682
  There is a complete list of all the classes introduced by Green Shoes.
@@ -2304,7 +2257,12 @@ any other radio buttons in the same slot.)
2304
2257
 
2305
2258
  Creates a Span text fragment, unstyled by default.
2306
2259
 
2307
- '''Note:''' Green Shoes doesn't support `span` method.
2260
+ {{{
2261
+ Shoes.app do
2262
+ tagline "\n", 'hello ' * 5,
2263
+ span(em('Green Shoes'), size: 8, rise: 15)
2264
+ end
2265
+ }}}
2308
2266
 
2309
2267
  === stack(styles) { ... } » Shoes::Stack ===
2310
2268
 
@@ -3196,8 +3154,6 @@ When a button is clicked, its `click` block is called. The block is handed
3196
3154
  Moves focus to the button. The button will be highlighted and, if the user
3197
3155
  hits Enter, the button will be clicked.
3198
3156
 
3199
- '''Note:''' Green Shoes doesn't support `focus` method.
3200
-
3201
3157
  == Check ==
3202
3158
 
3203
3159
  Check boxes are clickable square boxes than can be either checked or unchecked.
@@ -3278,8 +3234,6 @@ Clicks are sent for both checking and unchecking the box.
3278
3234
  Moves focus to the check. The check will be highlighted and, if the user hits
3279
3235
  Enter, the check will be toggled between its checked and unchecked states.
3280
3236
 
3281
- '''Note:''' Green Shoes doesn't support `focus` method.
3282
-
3283
3237
  == EditBox ==
3284
3238
 
3285
3239
  Edit boxes are wide, rectangular boxes for entering text. On the web, they
@@ -3329,8 +3283,6 @@ has changed.
3329
3283
  Moves focus to the edit box. The edit box will be highlighted and the user will
3330
3284
  be able to type into the edit box.
3331
3285
 
3332
- '''Note:''' Green Shoes doesn't support `focus` method.
3333
-
3334
3286
  === text() » self ===
3335
3287
 
3336
3288
  Return a string of characters which have been typed into the box.
@@ -3379,8 +3331,6 @@ has changed.
3379
3331
  Moves focus to the edit line. The edit line will be highlighted and the user
3380
3332
  will be able to type into the edit line.
3381
3333
 
3382
- '''Note:''' Green Shoes doesn't support `focus` method.
3383
-
3384
3334
  === text() » self ===
3385
3335
 
3386
3336
  Return a string of characters which have been typed into the box.
@@ -3517,8 +3467,6 @@ Selects the option in the list box that matches the string given by `item`.
3517
3467
  Moves focus to the list box. The list box will be highlighted and, if the user
3518
3468
  hits the up and down arrow keys, other options in the list will be selected.
3519
3469
 
3520
- '''Note:''' Green Shoes doesn't support `focus` method.
3521
-
3522
3470
  === items() » an array of strings ===
3523
3471
 
3524
3472
  Returns the complete list of strings that the list box presently shows as its options.
@@ -3674,10 +3622,7 @@ Clicks are sent for both marking and unmarking the radio.
3674
3622
 
3675
3623
  === focus() » self ===
3676
3624
 
3677
- Moves focus to the radio. The radio will be highlighted and, if the user hits
3678
- Enter, the radio will be toggled between its marked and unmarked states.
3679
-
3680
- '''Note:''' Green Shoes doesn't support `focus` method.
3625
+ Moves focus to the radio. The radio will be highlighted.
3681
3626
 
3682
3627
  == Shape ==
3683
3628
 
metadata CHANGED
@@ -1,45 +1,35 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: green_shoes
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 243
8
- - 0
9
- version: 0.243.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.255.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - ashbb
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-07-03 00:00:00 +09:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2011-07-23 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: gtk2
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &14643048 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
31
22
  type: :runtime
32
- version_requirements: *id001
23
+ prerelease: false
24
+ version_requirements: *14643048
33
25
  description: Green Shoes is one of colorful Shoes, written in pure Ruby with Ruby/GTK2.
34
26
  email: ashbbb@gmail.com
35
27
  executables: []
36
-
37
28
  extensions: []
38
-
39
- extra_rdoc_files:
29
+ extra_rdoc_files:
40
30
  - LICENSE
41
31
  - README.md
42
- files:
32
+ files:
43
33
  - VERSION
44
34
  - lib/ext/bloops.rb
45
35
  - lib/ext/bloops/bloops.so
@@ -309,37 +299,28 @@ files:
309
299
  - static/shoes-manual-apps.png
310
300
  - LICENSE
311
301
  - README.md
312
- has_rdoc: true
313
302
  homepage: http://github.com/ashbb/green_shoes
314
303
  licenses: []
315
-
316
304
  post_install_message:
317
305
  rdoc_options: []
318
-
319
- require_paths:
306
+ require_paths:
320
307
  - lib
321
- required_ruby_version: !ruby/object:Gem::Requirement
308
+ required_ruby_version: !ruby/object:Gem::Requirement
322
309
  none: false
323
- requirements:
324
- - - ">="
325
- - !ruby/object:Gem::Version
326
- segments:
327
- - 0
328
- version: "0"
329
- required_rubygems_version: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - ! '>='
312
+ - !ruby/object:Gem::Version
313
+ version: '0'
314
+ required_rubygems_version: !ruby/object:Gem::Requirement
330
315
  none: false
331
- requirements:
332
- - - ">="
333
- - !ruby/object:Gem::Version
334
- segments:
335
- - 0
336
- version: "0"
316
+ requirements:
317
+ - - ! '>='
318
+ - !ruby/object:Gem::Version
319
+ version: '0'
337
320
  requirements: []
338
-
339
321
  rubyforge_project:
340
- rubygems_version: 1.3.7
322
+ rubygems_version: 1.7.2
341
323
  signing_key:
342
324
  specification_version: 3
343
325
  summary: Green Shoes
344
326
  test_files: []
345
-