docs.rs failed to build woab-0.9.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
woab-0.8.0
WoAB
WoAB (Widgets on Actors Bridge) is a GUI microframework for combining the widgets toolkit GTK with the actors framework Actix. It helps with:
- Running the actors inside the GTK thread, allowing message handlers to interact with the widgets directly.
- Routing GTK signals through the asynchronous runtime, so that the code handling them can proceed naturally to interact with the actors.
- Mapping widgets and signals from Cambalache emitted XML files to user types.
Refer to the docs for more explanation on how to use WoAB, and to the examples for a short demonstration.
use *;
use *;
// Use this derive to automatically populate a struct with GTK objects from a builder using their
// object IDs.
// WoAB converts GTK signals (defined) to Actix messages, which the user defined actors need handle.
Pitfalls
- When starting Actix actors from outside Tokio/Actix,
woab::block_on
must be used. This is a limitation of Actix that needs to be respected. - If an actor is created inside a
gtk::Application::connect_activate
, itsstarted
method will run after theactivate
signal is done. This can be a problem for methods likeset_application
that can segfault if they are called outside theactivate
signal. A solution could be to either do the startup insideconnect_activate
or usewoab::route_signal
to route the application'sactivate
signal to the actor and do the startup in the actor's signal handler. woab::close_actix_runtime
must be called aftergtk::main()
, or else Tokio will panic when GTK quits. If anyone knows how to automate it I'm open to suggestions.
License
Licensed under MIT license (LICENSE or http://opensource.org/licenses/MIT))