v4.0.0.rc1 (83 commits) (Nov 12, 2017)
----------------------------------------------

Improvements (5)
----------------

* New logo!!! [393d0dd]
* Basic slot scrolling [7d93126]
* Hide elements outside of slot boundaries [9aeac16]
* Consider parent visibility when deciding to show elements [1158406]
* Added #focused? method [d4ee823]

Bug Fixes (1)
-------------

* Apply clipping to image painting [6ac7a11]

Contributors (5)
----------------

Jason R. Clark, Eric Boehs, Eric Stensland, Joe Martin, Tobias Pfeiffer



v4.0.0.pre12 (31 commits) (Oct 1, 2017)
---------------------------------------------

Improvements (5)
----------------

* Include samples with shoes gem [00387f3]
* Fix widgets to behave like slots, per Shoes 3 [53fe75c]
* Enable focus on elements that need it [f77885d]
* Get samples/simple_accordion.rb working again [83af4fe]
* Emit a meaningful error if JRuby executes shoes bash script [38f9cb7]

Contributors (3)
----------------

Jason R. Clark, Tobias Pfeiffer, Olle Jonsson



v4.0.0.pre11 (30 commits) (Aug 20, 2017)
----------------------------------------------

Improvements (3)
----------------

* Copy and save button for console [6c6142d]
* Packaging outputs archives instead of loose files [0cf010f]
* Warn if no format passed to package commad [3914018]

Bug Fixes (3)
-------------

* Apps packaged on Windows for Mac/Linux can't execute [6c9008b2]
* Properly use Gemfile from shoes app directory, not just current dir [1d13828]
* Properly dispose of ArrowPainter [8ed4455]

Contributors (3)
----------------

Eric Stensland, Jason R. Clark, Tobias Pfeiffer



v4.0.0.pre10 (40 commits) (Jun 3, 2017)
--------------------------------------------

Improvements (4)
----------------

* Support packaging Linux app [d22b561]
* Support packaging Windows apps [d22b561]
* Move to subcommands instead of CLI flags [370cc1b]
* Faster sample running through `rake samples` [51c6762]

Bug Fixes (3)
-------------

* Fix image loading for packaged apps [dd77724]
* Include script dir in image search paths [1d124b3]
* Include script dir in $LOAD_PATH [d21125b]

Contributors (5)
----------------

Jason R. Clark, Tobias Pfeiffer, Michael Dimmitt, Olle Jonsson, William Hatcher



v4.0.0.pre9 (61 commits) (Mar 19, 2017)
---------------------------------------------

Improvements (5)
-----------------

* Shoes Console (Alt+/) properly gathers logged messages [67a9864]
* Include gems from Gemfile during packaging [c50c457]
* Warn directly when running jar on OS X without -XstartOnFirstThread [2d27bdf]
* Support start block method in app [736702e]
* Support readonly state on appropriate elements [bda1639]

Bug Fixes (6)
-------------

* Reset alpha to avoid transparency leaks on later elements [92935e3]
* Combo default sizes increased to look right on all platforms [4e3be1f]
* Get clipboard working again on OSX [86a584b]
* Keep combo selection through list changes [168c0cf]
* Ensure visibility methods chain properly [f69ab49]
* Allow setting click through styles [d694275]

Contributors (3)
----------------

Jason R. Clark, Tobias Pfeiffer, Ishaan Malhi



v4.0.0.pre8 (99 commits) (Jan 28, 2017)
---------------------------------------------

Improvements (7)
-----------------

* Update to latest SWT version 4.6.1 [9b239e6]
* New download supporting all options from Shoes 3 [5f51959]
* Make art element parameters compatible with Shoes 3 [4f0d57f]
* Apply rotate consistently to all art elements [07cbfba]
* Better native app appearance on Mac OS X [7af177c][429c363]
* Warn on second Shoes.app invocation [fb8f44c]
* Allow chaining click and release methods [33c6695]

Bug Fixes (5)
-------------

* Make rotate direction compatible with Shoes 3 [2781622]
* Fix installation from source when missing git command [d12616a]
* Properly detect when running from packaged app [f08c5c1]
* Executable related changes to make packaging happy [d446963]

Contributors (2)
----------------

Jason R. Clark, Tobias Pfeiffer



v4.0.0.pre7 (192 commits) (Dec 10, 2016)
-------------------------------

Improvements (3)
----------------

* Implement translate method on application [1280e92]
* Implement arrow art element [b9cd00b]
* Allow attaching elements via style [9896ef2]

Bug Fixes (7)
-------------

* Fix symlink installation problem on Windows [53a28db]
* Fix manual "to html" link [shoes/shoes-manual#1]
* Redraw after displace [5f6a7db]
* Correctly redraw links with nested styles without crashing [e9d8bb7]
* Fix crash when hovering over nested links [2030af2]
* Fix overlapping fill on rounded rectangles [ab8bcc4]
* Cleanup links properly after visit calls [41a4ad9, d47cb34]

Contributors (3)
----------------

Jared Moody, Jason R. Clark, Tobias Pfeiffer



v4.0.0.pre6 (33 commits) (Nov 6, 2016)
------------------------------

Improvements (3)
----------------

* Create borderless windows [f85f8f2]
* README friendliness with screenshots [f4b1aae]
* Buttons implement .text=() method [f28e2f7]

Bug Fixes (2)
-------------

* Don't advance position for right aligned text [12fb028]
* Fix line bounds calls for JRuby 9.x [c33dcea, fd50a0b]

Breaking Changes (1)
--------------------

* Remove JRuby 1.7 support [66eeb29]

Contributors (8)
----------------

Arne Brasseur, Daniel Catalan, Jason R. Clark, Luis M. Rodriguez-R, Rafael
Fidelis, Roden Monte, Tobias Pfeiffer, Wayne Vucenic



v4.0.0.pre5 (125 commits) (Dec 13, 2015)
------------------------------

Improvements (10)
----------------

* Shoes has a Code of Conduct [43d4ec0]
* Scripts can use `require 'shoes`' without the shoes executable [00b91bb]
* Add always on top support to App configuration [d458994]
* Provide OS-specific system background color [2085c9e]
* Support hover on all elements together with hover based styling [b527f6f]
* Position element as they are added (performance ++) [2817bf7]
* Clip to containing slot for text and art elements [e22db7b]
* Flag to use installed shoes in sample tasks [37d3f96]
* Restore running guard after gem reorganization [8982848]
* Get rid of JRuby 9k deprecations [370594d]

Bug Fixes (11)
-------------

* Correctly using parents margin for background [a173f02]
* Correct slot height when margins are in play [e1cbb2f]
* Only touch contents visibility on actual state change [5bf27d0]
* Correct cursor height for empty text layouts [b74e0d9]
* Fix installation for jruby-complete [fa65ab0]
* Remove the cached app template from repo (and gem) [68bd6a8]
* Fix handling of explicitly set text widths [8ca2096]
* Don't consider backgrounds and borders in positioning [18d337b]
* Only touch contents visibility on actual state change [5bf27d0]
* Fix enabled state for edit line box [aacffc3]
* Always set up Bundler for packaging [d509141]


Contributors (5)
----------------

Jason R. Clark, Tobias Pfeiffer, Carsten Wirth, KC Erb, Jared Moody, Richard
McCormack, Rin Raeuber



4.0.0.pre4 (170 commits) (May 15, 2015)
-------------------------------

This release saw a lot of bug fixing, but no big structural changes (hurray!).

Along with the bugs, the first big performance tuning work got underway,
focused on the manual and the Game of Life sample
(samples/expert-game-of-life-adjusted.rb). Here's to faster Shoes!

Improvements (20)
-----------------

* Add fallback to retry launching app on thread access error [92257ba]
* Support click on shape [83bfd8a]
* Modify #replace to use options hash and parse fonts [cd1313f]
* Rename Shape#arc to Shape#arc_to (Compatibility) [f6adf46]
* Allow for selecting between multiple backends [ede7c19, 579e441]
* Only apply styling to TextSegmentCollection once [74d5681]
* Cache colors and reduce dimension calculations when painting [0c4be36]
* Optimize painting to only rotate art elements when necessary [c06f93b]
* Use benchmark-ips where appropriate in benchmarks [51238f3]
* Improve performance on Dimension [15121ad, 0167f41]
* Improve performance on Common::Visibility [77eeb90]
* Support the hidden style on all elements [63afeca]
* Move defaulting out of dsl.rb into DSL classes [81092b9]
* Move guard against empty text segments further up in the chain [f121cac]
* Use ProxyArray in ListBox to update appropriately when list changes [36546ab]
* Rubocop offense fixes [#1112, #1113, #1117]

Bug Fixes (14)
--------------

* Remove zombie apps when Shoes window closes [2f8fcbf]
* Call change blocks on programmatic list updates [bc5f66d]
* Default class styles do not override app styles [9915998]
* Correct Click regions for Shoes::Line [a814dd7]
* Don't Bundler.require during Picker to avoid Thread Access error [4ae3fc6]
* Do not crash when quit is called in the initial app block [6235ab5]
* Fix crash on global keypress [bfa45e7]
* Fix gradient on Star elements [507c623]
* Fix text wrapping behavior to avoid clipping and extend background [1e0d948]
* Fix gem name check on uninstall to avoid stale executables [3707655]
* Fix for hang during content alignment with text [e2a8bfd]
* Fix download crash on missing Content-Length header [81f2ebb]
* Don't choose at DSL level during initialization [acc5d41]
* Gentler, kinder error handling for downloads [e7409a7]

Contributors (12)
-----------------

Jason Clark, Tobias Pfeiffer, Jared Moody, KC Erb, seethemhigh, Eric Watson,
Thomas Graves, David English, Emily Bookstein, bx10000, matugm, Tyler Lemburg



4.0.0.pre3 (199 commits) (Jan 6, 2015)
------------------------

New features (1)
----------------

* In pre2 we updated our gem layout and found a few things we didn't like.
  pre3 is now shaped how we expect to hold through 4.0!

  * shoes -- Now a meta-gem with the default installation as dependencies. It
    contains no code of its own (any shared code goes in shoes-core).
  * shoes-core -- The DSL and supporting code to share between Shoes backends
  * shoes-swt -- The first Shoes backend, based on SWT + JRuby
  * shoes-package -- Shoes packaging logic, separated to avoid pulling
    unneeded gems along in packaged apps
  * shoes-highlighter -- Extracted syntax highlighting from Hackety-Hack
  * shoes-manual -- Extracted content and display for Shoes manual

Breaking Changes (1)
--------------------

* Star interprets left/top as upper left corner, like all elements [d2fd202]

Improvements (7)
----------------

* Tetris sample game [1ac24ac]
* Implement shape(left, top) [2e8048c]
* Handle relative and missing image paths [9502dd7]
* Better input sizing on ask dialog [3df50d5]
* Capture slot context for timer, download and animation [5f1bdc1]
* TextBlocks have #parent not #parent_text  [52fab93]
* shoes.gemspec at top of project [369f7d3]

Bug Fixes (10)
-------------

* Links with empty text crash [a8fb745]
* Fix copying to/from system clipboard [e965e59]
* Position a slot's elements correctly when the slot has a margin [d72d7ef]
* Fix overlapping text with differing text heights [4db98b0]
* Use app click listener to only send click to one element [2a7fb92]
* Limit parent-dimensioned elements to their parent's bounds [6b9d760]
* Fix for background and border placement [4ddbbda]
* Fix crash when using click on star element [cdf9dc4]
* Do not count scroll bar into app width [7736b2d]
* Fix a typo in the adjusted minesweeper sample [93f5ed3]


Contributors (8)
----------------
Jason R. Clark, Tobias Pfeiffer, Eric Watson, Teemu, Kenneth Pullen, KC Erb,
Jake Gordon, Neil Northrop



4.0.0.pre2 (438 commits) (Oct 14, 2014)
----------------

New features (1)
----------------

* Shoes 4.0.0.pre1 was a single gem. Now we ship as as three gems [e16a0c4]:

  * shoes -- Home to the shoes executable. Declares dependencies on other
    shoes gems for ease of installation.
  * shoes-dsl -- Code for the Shoes DSL. No direct UI rendering and will be
    reused with all future backends.
  * shoes-swt -- The first Shoes backend, implemented in JRuby on the SWT
    library via the swt gem.

* Full style-setting functionality (element#style, setters, hash, app level) [56d91f8]

Improvements (36)
-----------------

* Update SWT to 4.4 [536ffae]
* Update packaging dependency to 0.2.0 now supporting rubyzip > 1.0 [c3dd289]
* Update all elements to use new style methods [1b76aa3, 29498d1, d569a77, e6eec90, 54e5edf, 1238977, 2dc222f, dbeffff, 25b2ec6, cb865a6, 49fa0a1]
* Update list of app level styles and partially fix rotate angle issues [2affdbb]
* Shoes application context improved to avoid conflicts between user-defined and shoes-defined methods. [732108a]
* Builtin methods are also available from the Shoes class [de37d59]
* #gray, #rgb and #gradient builtin methods [8f7ee92]
* Removed redrawing triggers after Dimension methods  [61a55ba]
* Apply fraction from progress initialize [b241240]
* Trigger redraw on hover/leave for slot and image update [ae5dfb5]
* Nobody Knows Shoes samples added [68e84e6]
* Add sample56 snapshot [e7eb0d3]
* Add scroll* methods to slots. Scrolling functionality not implemented yet. [6fb0e79]
* Click passes element, not coordinates to most blocks [78ecb23]
* Allow button calls without a button name [a315ef4]
* Add common #to_s and #inspect methods for DSL objects [350c4dc]
* Disposal for Images and Patterns. [ddcd9fb]
* Move Swt::TextBlock related classes to subdirectory. [226e03f]
* Revise TextBlock cursor to be more like other text functionality. [f016ee7]
* Updated manual to show correct syntax for rect. [2fee530]
* App#parent method to show the parent of the slot currently evaled [48e811f]
* Add keypress to close app cleanly when running leak hunter and dispose of app-level resources. [af4d6bb]

Bug Fixes (32)
--------------

* Fix running bin/shoes.bat from source [fe47075]
* Move shoes executable from shoes-dsl to shoes [92583e6]
* Fix for crash on empty link text [3da3159]
* Hide only the elements of a slot, not its parent contents  [f2ea17c]
* Fix crash for Border when hiding [1c2ab74]
* Methods defined in widgets are available in URL instances [3a94afb]
* Make texts know their TextBlock and hence their visibility [7b4ea24]
* Non resizable apps can not be maximized (fixes resizable on mac) #872 [b08b215]
* Keypress#remove removes the keys listener and does not blow up [498588c]
* Run shape blocks with app as self [dbb0a46]
* When an element is removed or removed, cursor shouldn't change shape over that location. [918288f, 7fcd93a]
* Removing children from slot should trigger redraw [be35743]
* Fix for allowing widgets to use widget DSL methods [99d22e1]
* Fix for secret on edit lines [79c4c98]
* Fix crash computing height with hidden elements [41ebafe]
* Fix for unbounded height crash on centering [11fc3ae]
* Windows build requires shoes.bat from ext/install [232ec68]
* Reuse created fonts in the factory [7959bd8]
* Disposal of Shape SWT resources. [650365b]
* Fix for offsetting of second text segments [97fe79b]
* Consider relatively positioned elements for slot height [3e71126]
* Fix fatal exceptions in samples/simple-calc.rb [d53d588]
* Fix slot clearing [3697802]
* Don't clear top_slot when clear is called, clear current_slot [a57778c]
* Handling for text centering [87405f5]
* Fix common remove to allow removal of slots [c25df7e]
* Clear transform after painting each object, to avoid side effects on other painters [5a57ce3]
* Fix off by one error in slot positioning. [baee69a]
* Dispose of transform resources. [265600c]
* Only report start/end relative to the parent if there is one [c82e763]
* Links must be cleared on TextBlock#replace [4b90786]

Contributors (16)
-----------------

Jason R. Clark, Eric Watson, Tobias Pfeiffer, KC Erb, Charles Chamberlain,
George, Marcell Monteiro Cruz, Glenn Murray, Jason Clark, Tim Krajcar,
glenn-murray-bse, KCErb, PeterWAWood, Suirtimed, ashbb, Carlos R Tirado
