rgpui 0.2.1

GUI UI framework
Documentation
# rgpui

rgpui 是 [rgpui](https://github.com/launcher-rs/rgpui) 项目的核心 crate,是一个混合即时/保留模式、GPU 加速的 Rust UI 框架。

> 关于项目背景、重命名原因和整体架构,请参见[项目根目录 README]../../README.md
## 主要特性

- **混合即时/保留模式**:结合即时模式的高性能与保留模式的状态管理优势
- **基于 Entity 的状态管理**:通过智能指针安全地在应用各部分之间共享和通信状态
- **声明式视图(View)**:实现 `Render` trait 即可构建声明式 UI,每帧自动刷新
- **命令式元素(Element)**:底层构建块,提供对渲染和布局的完全控制
- **GPU 加速渲染**:利用 Metal/Vulkan 进行高性能图形渲染
- **Taffy 布局引擎**:支持 Flexbox 和 Grid 布局
- **丰富的文本系统**:支持字体渲染、文本布局和高亮
- **输入处理与快捷键**:完整的键盘/鼠标事件处理和可配置的键位映射
- **动画系统**:内置动画支持
- **跨平台**:支持 macOS、Linux 和 Windows
- **Tailwind 风格 API**:通过 `div` 元素提供熟悉的样式链式调用
- **系统托盘**:完整托盘图标、右键菜单及窗口隐藏/恢复功能
- **增强透明窗口**:支持半透明、毛玻璃等视觉效果

## 快速开始

### 添加依赖

在 `Cargo.toml` 中添加:

```toml
[dependencies]
rgpui = "0.1"
rgpui_platform = "0.1"
```

### 最小示例

```rust
use rgpui::*;
use rgpui_platform::application;

struct HelloWorld;

impl Render for HelloWorld {
    fn render(&mut self, _window: &mut Window, _cx: &mut Context<Self>) -> impl IntoElement {
        div()
            .flex()
            .items_center()
            .justify_center()
            .size_full()
            .child("Hello, RGPUI!")
    }
}

fn main() {
    application().run(|cx: &mut App| {
        let bounds = Bounds::centered(None, size(px(500.), px(500.0)), cx);
        cx.open_window(
            WindowOptions {
                window_bounds: Some(WindowBounds::Windowed(bounds)),
                titlebar: Some(TitlebarOptions {
                    title: Some("Hello你好".into()),
                    ..Default::default()
                }),
                ..Default::default()
            },
            |_window, cx| cx.new(|_cx| HelloWorld),
        )
            .unwrap();
    });
}
```

## 许可证

Apache-2.0