293 个版本 (120 个稳定版)

1.4.33 2024年7月30日
1.4.30 2024年5月8日
1.4.27 2024年3月31日
1.4.21 2023年12月30日
0.1.22 2020年3月31日

1299GUI

Download history 789/week @ 2024-05-04 686/week @ 2024-05-11 840/week @ 2024-05-18 747/week @ 2024-05-25 1107/week @ 2024-06-01 709/week @ 2024-06-08 1002/week @ 2024-06-15 834/week @ 2024-06-22 417/week @ 2024-06-29 391/week @ 2024-07-06 535/week @ 2024-07-13 923/week @ 2024-07-20 1116/week @ 2024-07-27 499/week @ 2024-08-03 634/week @ 2024-08-10 417/week @ 2024-08-17

每月 2,827 次下载
用于 54 个库 (2 个直接使用)

MIT 许可证

11MB
256K SLoC

C++ 145K SLoC // 0.2% comments C 62K SLoC // 0.2% comments Rust 42K SLoC // 0.0% comments Objective-C++ 6K SLoC // 0.1% comments Shell 339 SLoC // 0.2% comments Objective-C 33 SLoC

包含 (晦涩的 autoconf 代码, 63KB) cfltk/fltk/configure.ac

fltk-sys

FLTK 的原始绑定。这些是通过在 cfltk 头文件上运行 bindgen 生成的。

用法

[dependencies]
fltk-sys = "1.4"

示例代码

use fltk_sys::*;
use std::os::raw::*;

unsafe extern "C" fn cb(_wid: *mut button::Fl_Widget, data: *mut c_void) {
    let frame = data as *mut frame::Fl_Box;
    frame::Fl_Box_set_label(frame, "Hello World\0".as_ptr() as *const _);
}

fn main() {
    unsafe {
        fl::Fl_init_all();
        image::Fl_register_images();
        fl::Fl_lock();
        let win = window::Fl_Window_new(100, 100, 400, 300, "Window\0".as_ptr() as *const _);
        let frame = frame::Fl_Box_new(0, 0, 400, 200, std::ptr::null());
        let but = button::Fl_Button_new(160, 220, 80, 40, "Click\0".as_ptr() as *const _);
        window::Fl_Window_end(win);
        window::Fl_Window_show(win);

        button::Fl_Button_set_callback(but, Some(cb), frame as *mut _);

        fl::Fl_run();
    }
}

依赖关系

CMake > 3.14, git 和一个 C++17 编译器。开发依赖项基本上与 fltk-rs 相同。

为什么你可能想直接使用 fltk-sys

  • 如果你需要一个稳定的 cdylib,你可以调用它(例如作为插件系统)。
  • 如果你不需要整个 fltk crate,你可以创建某些元素的包装器。
  • fltk-sys,虽然内存和线程不安全,但具有 panic 安全性。
  • 如果你需要一个无-std GUI 库,在这种情况下,你可以通过 bindgen 将 std:: 前缀替换为 libc(需要将 libc 添加为依赖项)。
  • 包装第三方小部件,如 fltk-flow

依赖关系