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