https://github.com/iamnbutler/gpuitunes
Let's explore gpui by recreating a classic – iTunes 5.0
https://github.com/iamnbutler/gpuitunes
gpui rust
Last synced: about 1 year ago
JSON representation
Let's explore gpui by recreating a classic – iTunes 5.0
- Host: GitHub
- URL: https://github.com/iamnbutler/gpuitunes
- Owner: iamnbutler
- Created: 2024-12-21T15:19:20.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-25T18:37:54.000Z (over 1 year ago)
- Last Synced: 2025-01-03T08:34:31.490Z (over 1 year ago)
- Topics: gpui, rust
- Language: Rust
- Homepage:
- Size: 26.4 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# gpuitunes
Created with [create-gpui-app](https://crates.io/crates/create-gpui-app).
- [`gpui`](https://www.gpui.rs/)
- [GPUI documentation](https://github.com/zed-industries/zed/tree/main/crates/gpui/docs)
- [GPUI examples](https://github.com/zed-industries/zed/tree/main/crates/gpui/examples)
Important note: `gpui` is still currently a part of [Zed](https://github.com/zed-industries/zed). It's unlikely it can be used in any sort of production application at this time.
## Usage
- Ensure Rust is installed - [Rustup](https://rustup.rs/)
- Run your app with `cargo run`
---
## gpui TODOs:
- [ ] Add radial gradient to gpui
- [ ] Add multi-stop gradients (see if linear_gradient can just take a vec of ColorStop?)
- [x] BoxShadow can't have a blur radius of 0 - (Merged! - [PR](https://github.com/zed-industries/zed/pull/22441))
- [ ] We don't seem to render divs with no children
- [ ] No text centering makes things difficult
- [ ] Need to be able to rotate elements to reduce amount of svgs required
## Maybe useful to share?
### Create an app without a titlebar
You can create an app without a titlebar by setting the `titlebar` option to `None` in the `WindowOptions` struct.
```rust
/// Minimal Example
fn main() {
App::new().run(|cx: &mut AppContext| {
cx.open_window(
WindowOptions {
titlebar: None,
..Default::default()
},
|cx| {
cx.new_view(|_cx| SomeView {
text: "World".into(),
})
},
)
.unwrap();
cx.activate(true);
});
}
```