gtk v0.8.1 Release Notes
Release Date: 2020-02-17 // almost 5 years ago-
No data yet ๐
You can check the official repo
Previous changes from v0.0.7
-
๐ฅ Breaking changes
Object reform 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, usegtk::Button
instead). - Dialog APIs made less Rust-y for consistency with upstream.
- File name types changed from
&str
toT: AsRef<Path>
. - A few signatures and spellings corrected to match upstream.
- Constructors don't return
๐ Version features reintroduced and autodetection is no more. The fallback version is 3.4.
Select the minimal version required by your application like this:
[dependencies.gtk] features = ["v3_10"]
๐ฆ Signal handlers take the receiver by reference and support more specific receiver types.
๐ New safe event bindings are passed to signal handlers. These bindings have safe getters while the low-level event structs are still reachable via
as_ref
.๐ New safe
Error
andValue
bindings.ListStore
andTreeStore
changed accordingly, tradedset_string
for more powerfulset
.๐ In an ongoing move to reflect integer unsignedness properly
Notebook
switched fromi32
tou32
,ListStore
andTreeStore
partly switched tou32
andEntryBuffer
switched tou16
.
๐ Improvements
Object reform benefits include:
- Automatic generation of the majority of code, 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 makesBuilder
safe to use. - Each crate has a
prelude
module, which reexports all traits and some ubiquitous types (Continue
,Inhibit
).gtk
's prelude incorporatesglib
'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 ofgtk
and other crates by enabling theembed-lgpl-docs
feature.๐ Building:
- 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
skipspkg-config
altogether.
๐ [lgpl-docs]: https://github.com/gtk-rs/lgpl-docs