Add the counterpart of the samples task : the non_samples task, try out samples that might not work!
expert-othello.rb : Place GAME constant at top level.

I'm guessing this is broken because constant lookup changed somewhat between 1.8 and 1.9. With this change the game no longer errors out, but it doesn't seem to be working entirely correctly either. Although that might just be me not really understanding the game
Implement the #change method on ListBox, EditLine and EditBox.

As described in the manual, on these three elements extra event handlers can be
set by passing a block to the `change' method. This block will receive the
element instance when a change happens. This can be choosing an item in the
ListBox, or editing the text in EditLine or EditBox.

Most of the functionality is grouped in Shoes::Common::Changeable, with some
work left in the constructors to wire everything up. It is also possible to pass
a block straight to the constructor, and this was already implemented. The way
this worked though has changed.

In the past the block was passed on the GUI backend, which was responsible for
calling it when a change happens. Now the GUI backend no longer receives a block,
instead the DSL layer sets up the block as any other `change' event handler, and
the backend is only responsible for notifying the DSL layer that something has
changed.

All code has been covered by tests, and I tried out some examples. However
EditBox seems to be broken(?). ListBox and EditLine work fine.

This change is signifcant because it fixes 'browser.rb' in shoes-contrib. That
is, though the layout of browser.rb is not the same as in Red Shoes, it is
functioning and can be used to browse the Shoes examples using Shoes4.

Conflicts:
	lib/shoes/swt/edit_line.rb
Merge pull request #221 from arnebrasseur/change_events_listbox_editline

Implement the #change method on ListBox, EditLine and EditBox.
Merge pull request #216 from arnebrasseur/othello

expert-othello.rb : Place GAME constant at top level.
Implemented :secret option for ask as same as edit_line. Refer to e32239951d. Try out a test snippt.

Shoes.app do
  ask 'input password', secret: true
end
Extract packaging. Close #212.

Remove packaging files (move to furoshiki)
Add furoshiki as a dependency
Use furoshiki for packaging
Merge pull request #213 from arnebrasseur/non_samples

Add the counterpart of the samples task : the non_samples task
Renamed COPYING to LICENSE. #223
New Code Climate Badge
implement Slot#append.

Changed Time.today.to_i in good-reminder to Date.today.
Extracted code for evaluating a DSL block inside a slot.
Merge pull request #225 from tehgeekmeister/master

Implement Slot#append
Add specs for Shoes::Widget. Close #197
Refactor Shoes::Widget a bit
Document Widget
Correct Yard errors in documentation
Add hover and leave methods for Slot elements. Try out the following test snippet.

Shoes.app do
  f = flow width: 0.4 do
    background green
    para 'hello ' * 30
  end
  s = stack width: 0.6 do
    background yellow
    tagline 'shoes ' * 20
  end
  f.leave{p 'left'}
  s.hover{p 'hovered'}
end
Ported download method from Purple Shoes. Try out the following two snippets.

Shoes.app do
  stack do
    title "Searching Google", size: 16
    @status = para "One moment..."
    download "http://is.gd/bXTVY7" do |goog|
      @status.text = "Headers: #{goog.meta}"
    end
  end
end

Shoes.app do
  stack do
    title "Downloading Google image", size: 16
    @status = para "One moment..."
    download "http://is.gd/GVAGF7", :save => "nasa50th.gif" do
      @status.text = "Okay, is downloaded."
      image "nasa50th.gif", top: 100
    end
  end
end
The image method accepts a web url directly. Try out the following snippet:

Shoes.app do
  image "http://is.gd/GVAGF7"
end