1## 0.0.8 (master) 2 3## 0.0.7 (16-Mar-2016) 4 5### Breaking changes 6 7- [Object reform][gtk221] introduced autogenerated high-level bindings and 8 broke some conventions. 9 10 - Constructors don't return `Option`, they never fail. 11 12 - Companion traits renamed e.g. `ButtonTrait` -> `ButtonExt`. 13 14 - Modules are private now, all items are exported at the crate level (e.g. 15 `gtk::button::Button` is no longer visible, use `gtk::Button` instead). 16 17 - Dialog APIs made less Rust-y for consistency with upstream. 18 19 - File name types [changed][gtk236] from `&str` to `T: AsRef<Path>`. 20 21 - A few signatures and spellings corrected to match upstream. 22 23- Version features [reintroduced][gtk248] and autodetection is no more. The 24 fallback version is 3.4. 25 26 Select the minimal version required by your application like this: 27 ```toml 28 [dependencies.gtk] 29 features = ["v3_10"] 30 ``` 31 32- Signal handlers [take the receiver by reference][gtk226-1] and support [more 33 specific receiver types][gtk226-2]. 34 35- New [safe event bindings][gdk95] are [passed to signal handlers][gtk244]. 36 These bindings have [safe getters][gdk107] while the low-level event structs are 37 still reachable [via `as_ref`][examples68]. 38 39- New safe [`Error`][glib86-error] and [`Value`][glib95] bindings. `ListStore` and 40 `TreeStore` [changed accordingly][gtk238], traded `set_string` for more 41 powerful [`set`][gtk241]. 42 43- In an ongoing move to [reflect integer unsignedness properly][gtk246] 44 `Notebook` switched from `i32` to `u32`, `ListStore` and `TreeStore` partly 45 switched to `u32` and `EntryBuffer` switched to `u16`. 46 47### Improvements 48 49- [Object reform][gtk221] benefits include: 50 51 - Automatic generation of [the majority of code][auto-dir], expanding the 52 number of implemented classes, eliminating typos and making maintenance 53 easier. 54 55 - Unified upcasting and downcasting via the `Cast` trait, proper interface 56 support. In particular this makes `Builder` safe to use. 57 58 - Each crate has a `prelude` module, which reexports all traits and some 59 ubiquitous types (`Continue`, `Inhibit`). `gtk`'s prelude incorporates 60 `glib`'s one. 61 62 - Removal of the C glue layer and gcc dependency. 63 64- The upstream documentation excised from all crates earlier lives in the 65 [`lgpl-docs`][lgpl-docs] crate now. It can be embedded into your local copy of 66 `gtk` and other crates by enabling the [`embed-lgpl-docs` feature][gtk245]. 67 68- [Building][sys21]: 69 70 - Windows users no longer need to delete Rust's bundled gcc. 71 72 - In the absence of `pkg-config` we try to link anyway assuming the libraries 73 can be found in the default search path. There are no version checks in this 74 case. 75 76 - Setting `GTK_LIB_DIR` skips `pkg-config` altogether. 77 78[auto-dir]: https://github.com/gtk-rs/gtk/tree/master/src/auto 79[examples68]: https://github.com/gtk-rs/examples/pull/68 80[gdk95]: https://github.com/gtk-rs/gdk/pull/95 81[gdk107]: https://github.com/gtk-rs/gdk/pull/107 82[glib86-error]: https://github.com/gtk-rs/glib/commit/c1a30e97 83[glib95]: https://github.com/gtk-rs/glib/pull/95 84[gtk221]: https://github.com/gtk-rs/gtk/pull/221 85[gtk226-1]: https://github.com/gkoz/gtk-rs-gtk/commit/edfafb8f 86[gtk226-2]: https://github.com/gkoz/gtk-rs-gtk/commit/dda2a242 87[gtk236]: https://github.com/gtk-rs/gtk/pull/236 88[gtk238]: https://github.com/gtk-rs/gtk/pull/238 89[gtk241]: https://github.com/gtk-rs/gtk/pull/241 90[gtk244]: https://github.com/gtk-rs/gtk/pull/244 91[gtk245]: https://github.com/gtk-rs/gtk/pull/245 92[gtk246]: https://github.com/gtk-rs/gtk/issues/246 93[gtk248]: https://github.com/gtk-rs/gtk/pull/248 94[lgpl-docs]: https://github.com/gtk-rs/lgpl-docs 95[prelude]: https://github.com/gtk-rs/gtk/blob/master/src/prelude.rs 96[sys21]: https://github.com/gtk-rs/sys/pull/21 97 98## v0.0.6 (28-Nov-2015) 99 100- TBD 101