#ffi #bindings #gtk #applications #indicator #appindicator3 #ayatana-app-indicator

sys appindicator3-sys

AppIndicator 和 AyatanaAppIndicator 库的 FFI 绑定

4 个版本

0.0.4 2023 年 8 月 29 日
0.0.3 2022 年 3 月 19 日
0.0.2 2022 年 3 月 18 日
0.0.1 2022 年 3 月 18 日

#1160 in GUI


用于 appindicator3

MIT 许可证

12KB
154 代码行

appindicator3-rs

LGPL-2.1 licensed

Rust 对 AppIndicator 和 AyatanaAppIndicator 库的绑定。

Ayatana 应用指示器库

允许应用程序将菜单导出到支持应用程序指示器的菜单栏中。基于 KSNI,它也适用于 KDE,如果上述都不可用,则回退到通用的系统托盘支持。

使用方法

将以下内容添加到您的 Cargo.toml

[dependencies]
appindicator3 = "0.2.0"

默认情况下,appindicator3-rs 链接到 libayatana-appindicator3 库。要链接到原始的 libappindicator3 库,启用原始功能

[dependencies]
appindicator3 = { version = "0.2.0", feature = ["original", "v0_5"] }

依赖关系

您需要 libayatana-appindicator3 的开发包来编译此 crate。

Debian/Ubuntu

sudo apt install libayatana-appindicator3-dev

openSUSE

sudo zypper install libayatana-appindicator3-devel
# or for feature = ["original"]
sudo zypper install libappindicator3-devel 

示例程序

use appindicator3::{prelude::*, IndicatorStatus};
use appindicator3::{Indicator, IndicatorCategory};
use gtk::prelude::*;

fn main() {
    gtk::init().unwrap();

    let m = gtk::Menu::new();
    let mi = gtk::MenuItem::with_label("Hello World");
    mi.connect_activate(|_| {
        gtk::main_quit();
    });
    m.add(&mi);
    mi.show_all();

    let _indicator = Indicator::builder("Example")
        .category(IndicatorCategory::ApplicationStatus)
        .menu(&m)
        .icon("face-smile", "icon")
        .status(IndicatorStatus::Active)
        .build();

    gtk::main();
}

更多示例可以在 这里 找到。

绑定

大部分绑定是通过 GObject Introspection 和 gir 使用 配置文件自动生成的。

有关如何使用 gir 的更多详细信息,请参阅 这里

许可证

appindicator3-rs 可在 MIT 许可证下使用。请参阅 LICENSE 文件。此项目提供了对应用程序指示器库的绑定,但未分发其任何部分。分发链接到此库的编译库和可执行文件可能受其他许可证约束。

依赖关系

~3.5MB
~70K SLoC