appmenu-glib-translator 0.1.0

Rust bindings for the appmenu-glib-translator library.
# Appmenu GLib translator

[![][img_crates]][crates] [![][img_doc]][doc]

Rust bindings for the appmenu-glib-translator library.

This library makes it possible to create GLib app menus for
StatusNotifierWatcher implementations.

## Usage

This example shows how this library makes it possible to create tray menus.

```rust
use appmenu_glib_translator::{Importer, prelude::ImporterExtManual};

pub struct TrayItem {
    menu_path: String,
    bus_name: String,
    icon_name: String
}

fn append_tray_item(container: &gtk4::Box, item: TrayItem) {
    let importer = Importer::builder()
        .bus_name(item.bus_name.as_str())
        .object_path(item.menu_path.as_str())
        .build();

    let button = gtk4::MenuButton::builder()
        .icon_name(item.icon_name.as_str())
        .build();

    if let Some(ref menumodel) = importer.menu_model() {
        button.set_menu_model(Some(menumodel));
    }

    if let Some(ref action_group) = importer.action_group() {
        button.set_action_group(Some(action_group));
    }

    container.append(&button);
}
```

## Dependencies

- [glib]https://repology.org/project/glib/versions
- [appmenu-glib-translator]https://repology.org/project/appmenu-glib-translator/versions
  or
  [vala-appmenu-panel]https://repology.org/project/vala-panel-appmenu/versions

## References

- [vala-panel-project repository]https://gitlab.com/vala-panel-project/vala-panel-appmenu/
- [glib]https://docs.gtk.org/glib/

[img_crates]: https://img.shields.io/crates/v/appmenu-glib-translator.svg
[img_doc]: https://img.shields.io/badge/rust-documentation-blue.svg
[crates]: https://crates.io/crates/appmenu-glib-translator
[doc]: https://docs.rs/appmenu-glib-translator/