Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Adanos020/egui_dock
Docking support for egui – an immediate-mode GUI library for Rust
https://github.com/Adanos020/egui_dock
docking egui gui immediate-mode rust rust-crate rust-library tabs
Last synced: about 2 months ago
JSON representation
Docking support for egui – an immediate-mode GUI library for Rust
- Host: GitHub
- URL: https://github.com/Adanos020/egui_dock
- Owner: Adanos020
- License: mit
- Created: 2022-07-29T08:48:02.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-02T13:09:13.000Z (3 months ago)
- Last Synced: 2024-10-02T13:19:51.810Z (3 months ago)
- Topics: docking, egui, gui, immediate-mode, rust, rust-crate, rust-library, tabs
- Language: Rust
- Homepage:
- Size: 3.16 MB
- Stars: 447
- Watchers: 5
- Forks: 73
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-egui - egui dock
README
# `egui_dock`: docking system for [egui](https://github.com/emilk/egui)
[![github](https://img.shields.io/badge/github-Adanos020/egui_dock-8da0cb?logo=github)](https://github.com/Adanos020/egui_dock)
[![Crates.io](https://img.shields.io/crates/v/egui_dock)](https://crates.io/crates/egui_dock)
[![docs.rs](https://img.shields.io/docsrs/egui_dock)](https://docs.rs/egui_dock/)
[![egui_version](https://img.shields.io/badge/egui-0.29-blue)](https://github.com/emilk/egui)Originally created by [@lain-dono](https://github.com/lain-dono), this library provides a docking system for `egui`.
## Contributing
Before contributing, please read [the contribution guide](CONTRIBUTING.md).
This library is a collaborative project developed with direct involvement of its users.
Please feel free to open new issues and pull requests, and participate in discussions!
A lot of our discussions take place on [`egui`'s official Discord server](https://discord.gg/JFcEma9bJq),
in the `#egui_dock` channel.## Features
- Opening and closing tabs.
- Moving tabs between nodes and resizing.
- Dragging tabs out into new `egui` windows.
- Highly customizable look and feel.
- High degree of control over behaviour of the whole dock area and of individual tabs.
- Manipulating tabs and dock layout from code.## Quick start
Add `egui` and `egui_dock` to your project's dependencies.
```toml
[dependencies]
egui = "0.29"
egui_dock = "0.14"
```Then proceed by setting up `egui`, following its [quick start guide](https://github.com/emilk/egui#quick-start).
Once that's done, you can start using `egui_dock` – more details on that can be found in the
[documentation](https://docs.rs/egui_dock/latest/egui_dock/).## Examples
The Git repository of this crate contains some example applications demonstrating how to achieve certain effects.
You can find all of them in the [`examples`](examples) folder.You can run them with Cargo from the crate's root directory, for example: `cargo run --example hello`.
## Demo
![demo](images/demo.gif "Demo")
## Alternatives
### [egui_tiles](https://github.com/rerun-io/egui_tiles)
It's a library aiming to achieve similar goals in addition to being more flexible and customizable.
One feature it supports that `egui_dock` does not at the moment is the ability to divide nodes into more than two
children,
enabling horizontal, vertical, and grid layouts.> [!NOTE]
> `egui_tiles` is much earlier in development than `egui_dock` and doesn't yet support a lot of features.