mirror of
https://github.com/danbulant/cushy
synced 2026-07-05 11:10:34 +00:00
Improving the readmes a bit
This commit is contained in:
parent
7ae4374411
commit
01e04a4eb9
5 changed files with 120 additions and 24 deletions
|
|
@ -3,13 +3,22 @@
|
||||||
[](https://gooey.rs/main/gooey/)
|
[](https://gooey.rs/main/gooey/)
|
||||||
|
|
||||||
Gooey is an experimental Graphical User Interface (GUI) crate for the Rust
|
Gooey is an experimental Graphical User Interface (GUI) crate for the Rust
|
||||||
programming language. It is built using [`Kludgine`][kludgine], which is powered
|
programming language. It is powered by:
|
||||||
by [`winit`][winit] and [`wgpu`][wgpu]. It is incredibly early in development,
|
|
||||||
and is being developed for a game that will hopefully be developed shortly.
|
- [`Kludgine`][kludgine], a 2d graphics library powered by:
|
||||||
|
- [`winit`][winit] for windowing/input
|
||||||
|
- [`wgpu`][wgpu] for graphics
|
||||||
|
- [`cosmic_text`][cosmic_text] for text layout + rasterization
|
||||||
|
- [`palette`][palette] for OKLab-based HSL color calculations
|
||||||
|
- [`arboard`][arboard] for clipboard support
|
||||||
|
- [`figures`][figures] for integer-based 2d math
|
||||||
|
|
||||||
|
## Getting Started with Gooey
|
||||||
|
|
||||||
The [`Widget`][widget] trait is the building block of Gooey: Every user
|
The [`Widget`][widget] trait is the building block of Gooey: Every user
|
||||||
interface element implements `Widget`. A full list of built-in widgets can be
|
interface element implements `Widget`. The `Widget` trait
|
||||||
found in the [`gooey::widgets`][widgets] module.
|
[documentation][widget] has an overview of how Gooey works. A list of built-in
|
||||||
|
widgets can be found in the [`gooey::widgets`][widgets] module.
|
||||||
|
|
||||||
Gooey uses a reactive data model. To see [an example][button-example] of how
|
Gooey uses a reactive data model. To see [an example][button-example] of how
|
||||||
reactive data models work, consider this example that displays a button that
|
reactive data models work, consider this example that displays a button that
|
||||||
|
|
@ -26,18 +35,42 @@ fn main() -> gooey::Result {
|
||||||
count_label
|
count_label
|
||||||
.into_button()
|
.into_button()
|
||||||
// Set the `on_click` callback to a closure that increments the counter.
|
// Set the `on_click` callback to a closure that increments the counter.
|
||||||
.on_click(count.with_clone(|count| move |_| count.set(count.get() + 1)))
|
.on_click(move |_| count.set(count.get() + 1))
|
||||||
// Run the application
|
// Run the application
|
||||||
.run()
|
.run()
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
A great way to learn more about Gooey is to explore the [examples
|
||||||
|
directory][examples]. Nearly every feature in Gooey was initially tested by
|
||||||
|
creating an example.
|
||||||
|
|
||||||
|
## Project Status
|
||||||
|
|
||||||
|
This project is early in development, but is quickly becoming a decent
|
||||||
|
framework. It is considered experimental and unspported at this time, and the
|
||||||
|
primary focus for [@ecton][ecton] is to use this for his own projects. Feature
|
||||||
|
requests and bug fixes will be prioritized based on @ecton's own needs.
|
||||||
|
|
||||||
|
If you would like to contribute, bug fixes are always appreciated. Before
|
||||||
|
working on a new feature, please [open an issue][issues] proposing the feature
|
||||||
|
and problem it aims to solve. Doing so will help prevent friction in merging
|
||||||
|
pull requests, as it ensures changes fit the vision the maintainers have for
|
||||||
|
Gooey.
|
||||||
|
|
||||||
[widget]: crate::widget::Widget
|
[widget]: crate::widget::Widget
|
||||||
[kludgine]: https://github.com/khonsulabs/kludgine
|
[kludgine]: https://github.com/khonsulabs/kludgine
|
||||||
|
[figures]: https://github.com/khonsulabs/figures
|
||||||
[wgpu]: https://github.com/gfx-rs/wgpu
|
[wgpu]: https://github.com/gfx-rs/wgpu
|
||||||
[winit]: https://github.com/rust-windowing/winit
|
[winit]: https://github.com/rust-windowing/winit
|
||||||
[widgets]: mod@crate::widgets
|
[widgets]: mod@crate::widgets
|
||||||
[button-example]: https://github.com/khonsulabs/gooey/tree/main/examples/basic-button.rs
|
[button-example]: https://github.com/khonsulabs/gooey/tree/main/examples/basic-button.rs
|
||||||
|
[examples]: https://github.com/khonsulabs/gooey/tree/main/examples/
|
||||||
|
[cosmic_text]: https://github.com/pop-os/cosmic-text
|
||||||
|
[palette]: https://github.com/Ogeon/palette
|
||||||
|
[arboard]: https://github.com/1Password/arboard
|
||||||
|
[ecton]: https://github.com/khonsulabs/ecton
|
||||||
|
[issues]: https://github.com/khonsulabs/gooey/issues
|
||||||
|
|
||||||
## Open-source Licenses
|
## Open-source Licenses
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,17 @@ programming language. It is powered by:
|
||||||
- [`Kludgine`][kludgine], a 2d graphics library powered by:
|
- [`Kludgine`][kludgine], a 2d graphics library powered by:
|
||||||
- [`winit`][winit] for windowing/input
|
- [`winit`][winit] for windowing/input
|
||||||
- [`wgpu`][wgpu] for graphics
|
- [`wgpu`][wgpu] for graphics
|
||||||
- [`cosmic_text`][cosmic_text]
|
- [`cosmic_text`][cosmic_text] for text layout + rasterization
|
||||||
- [`palette`][palette]
|
- [`palette`][palette] for OKLab-based HSL color calculations
|
||||||
- [`arboard`][arboard]
|
- [`arboard`][arboard] for clipboard support
|
||||||
|
- [`figures`][figures] for integer-based 2d math
|
||||||
|
|
||||||
## Getting Started with Gooey
|
## Getting Started with Gooey
|
||||||
|
|
||||||
The [`Widget`][widget] trait is the building block of Gooey: Every user
|
The [`Widget`][widget] trait is the building block of Gooey: Every user
|
||||||
interface element implements `Widget`. A full list of built-in widgets can be
|
interface element implements `Widget`. The `Widget` trait
|
||||||
found in the [`gooey::widgets`][widgets] module.
|
[documentation][widget] has an overview of how Gooey works. A list of built-in
|
||||||
|
widgets can be found in the [`gooey::widgets`][widgets] module.
|
||||||
|
|
||||||
Gooey uses a reactive data model. To see [an example][button-example] of how
|
Gooey uses a reactive data model. To see [an example][button-example] of how
|
||||||
reactive data models work, consider this example that displays a button that
|
reactive data models work, consider this example that displays a button that
|
||||||
|
|
@ -37,14 +39,22 @@ framework. It is considered experimental and unspported at this time, and the
|
||||||
primary focus for [@ecton][ecton] is to use this for his own projects. Feature
|
primary focus for [@ecton][ecton] is to use this for his own projects. Feature
|
||||||
requests and bug fixes will be prioritized based on @ecton's own needs.
|
requests and bug fixes will be prioritized based on @ecton's own needs.
|
||||||
|
|
||||||
[widget]: $widget$
|
If you would like to contribute, bug fixes are always appreciated. Before
|
||||||
|
working on a new feature, please [open an issue][issues] proposing the feature
|
||||||
|
and problem it aims to solve. Doing so will help prevent friction in merging
|
||||||
|
pull requests, as it ensures changes fit the vision the maintainers have for
|
||||||
|
Gooey.
|
||||||
|
|
||||||
|
[widget]: crate::widget::Widget
|
||||||
[kludgine]: https://github.com/khonsulabs/kludgine
|
[kludgine]: https://github.com/khonsulabs/kludgine
|
||||||
|
[figures]: https://github.com/khonsulabs/figures
|
||||||
[wgpu]: https://github.com/gfx-rs/wgpu
|
[wgpu]: https://github.com/gfx-rs/wgpu
|
||||||
[winit]: https://github.com/rust-windowing/winit
|
[winit]: https://github.com/rust-windowing/winit
|
||||||
[widgets]: $widgets$
|
[widgets]: mod@crate::widgets
|
||||||
[button-example]: https://github.com/khonsulabs/gooey/tree/$ref-name$/examples/basic-button.rs
|
[button-example]: https://github.com/khonsulabs/gooey/tree/main/examples/basic-button.rs
|
||||||
[examples]: https://github.com/khonsulabs/gooey/tree/$ref-name$/examples/
|
[examples]: https://github.com/khonsulabs/gooey/tree/main/examples/
|
||||||
[cosmic_text]: https://github.com/pop-os/cosmic-text
|
[cosmic_text]: https://github.com/pop-os/cosmic-text
|
||||||
[palette]: https://github.com/Ogeon/palette
|
[palette]: https://github.com/Ogeon/palette
|
||||||
[arboard]: https://github.com/1Password/arboard
|
[arboard]: https://github.com/1Password/arboard
|
||||||
[ecton]: https://github.com/khonsulabs/ecton
|
[ecton]: https://github.com/khonsulabs/ecton
|
||||||
|
[issues]: https://github.com/khonsulabs/gooey/issues
|
||||||
|
|
|
||||||
49
README.md
49
README.md
|
|
@ -5,13 +5,22 @@
|
||||||
[](https://gooey.rs/main/gooey/)
|
[](https://gooey.rs/main/gooey/)
|
||||||
|
|
||||||
Gooey is an experimental Graphical User Interface (GUI) crate for the Rust
|
Gooey is an experimental Graphical User Interface (GUI) crate for the Rust
|
||||||
programming language. It is built using [`Kludgine`][kludgine], which is powered
|
programming language. It is powered by:
|
||||||
by [`winit`][winit] and [`wgpu`][wgpu]. It is incredibly early in development,
|
|
||||||
and is being developed for a game that will hopefully be developed shortly.
|
- [`Kludgine`][kludgine], a 2d graphics library powered by:
|
||||||
|
- [`winit`][winit] for windowing/input
|
||||||
|
- [`wgpu`][wgpu] for graphics
|
||||||
|
- [`cosmic_text`][cosmic_text] for text layout + rasterization
|
||||||
|
- [`palette`][palette] for OKLab-based HSL color calculations
|
||||||
|
- [`arboard`][arboard] for clipboard support
|
||||||
|
- [`figures`][figures] for integer-based 2d math
|
||||||
|
|
||||||
|
## Getting Started with Gooey
|
||||||
|
|
||||||
The [`Widget`][widget] trait is the building block of Gooey: Every user
|
The [`Widget`][widget] trait is the building block of Gooey: Every user
|
||||||
interface element implements `Widget`. A full list of built-in widgets can be
|
interface element implements `Widget`. The `Widget` trait
|
||||||
found in the [`gooey::widgets`][widgets] module.
|
[documentation][widget] has an overview of how Gooey works. A list of built-in
|
||||||
|
widgets can be found in the [`gooey::widgets`][widgets] module.
|
||||||
|
|
||||||
Gooey uses a reactive data model. To see [an example][button-example] of how
|
Gooey uses a reactive data model. To see [an example][button-example] of how
|
||||||
reactive data models work, consider this example that displays a button that
|
reactive data models work, consider this example that displays a button that
|
||||||
|
|
@ -28,18 +37,42 @@ fn main() -> gooey::Result {
|
||||||
count_label
|
count_label
|
||||||
.into_button()
|
.into_button()
|
||||||
// Set the `on_click` callback to a closure that increments the counter.
|
// Set the `on_click` callback to a closure that increments the counter.
|
||||||
.on_click(count.with_clone(|count| move |_| count.set(count.get() + 1)))
|
.on_click(move |_| count.set(count.get() + 1))
|
||||||
// Run the application
|
// Run the application
|
||||||
.run()
|
.run()
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
[widget]: https://gooey.rs/main/gooey/widget/trait.Widget.html
|
A great way to learn more about Gooey is to explore the [examples
|
||||||
|
directory][examples]. Nearly every feature in Gooey was initially tested by
|
||||||
|
creating an example.
|
||||||
|
|
||||||
|
## Project Status
|
||||||
|
|
||||||
|
This project is early in development, but is quickly becoming a decent
|
||||||
|
framework. It is considered experimental and unspported at this time, and the
|
||||||
|
primary focus for [@ecton][ecton] is to use this for his own projects. Feature
|
||||||
|
requests and bug fixes will be prioritized based on @ecton's own needs.
|
||||||
|
|
||||||
|
If you would like to contribute, bug fixes are always appreciated. Before
|
||||||
|
working on a new feature, please [open an issue][issues] proposing the feature
|
||||||
|
and problem it aims to solve. Doing so will help prevent friction in merging
|
||||||
|
pull requests, as it ensures changes fit the vision the maintainers have for
|
||||||
|
Gooey.
|
||||||
|
|
||||||
|
[widget]: crate::widget::Widget
|
||||||
[kludgine]: https://github.com/khonsulabs/kludgine
|
[kludgine]: https://github.com/khonsulabs/kludgine
|
||||||
|
[figures]: https://github.com/khonsulabs/figures
|
||||||
[wgpu]: https://github.com/gfx-rs/wgpu
|
[wgpu]: https://github.com/gfx-rs/wgpu
|
||||||
[winit]: https://github.com/rust-windowing/winit
|
[winit]: https://github.com/rust-windowing/winit
|
||||||
[widgets]: https://gooey.rs/main/gooey/widgets/index.html
|
[widgets]: mod@crate::widgets
|
||||||
[button-example]: https://github.com/khonsulabs/gooey/tree/main/examples/basic-button.rs
|
[button-example]: https://github.com/khonsulabs/gooey/tree/main/examples/basic-button.rs
|
||||||
|
[examples]: https://github.com/khonsulabs/gooey/tree/main/examples/
|
||||||
|
[cosmic_text]: https://github.com/pop-os/cosmic-text
|
||||||
|
[palette]: https://github.com/Ogeon/palette
|
||||||
|
[arboard]: https://github.com/1Password/arboard
|
||||||
|
[ecton]: https://github.com/khonsulabs/ecton
|
||||||
|
[issues]: https://github.com/khonsulabs/gooey/issues
|
||||||
|
|
||||||
## Open-source Licenses
|
## Open-source Licenses
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ fn main() -> gooey::Result {
|
||||||
count_label
|
count_label
|
||||||
.into_button()
|
.into_button()
|
||||||
// Set the `on_click` callback to a closure that increments the counter.
|
// Set the `on_click` callback to a closure that increments the counter.
|
||||||
.on_click(count.with_clone(|count| move |_| count.set(count.get() + 1)))
|
.on_click(move |_| count.set(count.get() + 1))
|
||||||
// Run the application
|
// Run the application
|
||||||
.run()
|
.run()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,26 @@ use crate::{ConstraintLimit, Run};
|
||||||
///
|
///
|
||||||
/// This type can go by many names in other UI frameworks: View, Component,
|
/// This type can go by many names in other UI frameworks: View, Component,
|
||||||
/// Control.
|
/// Control.
|
||||||
|
///
|
||||||
|
/// # How layout and rendering works
|
||||||
|
///
|
||||||
|
/// TODO write layout + rendering docs
|
||||||
|
///
|
||||||
|
/// # Hit Testing
|
||||||
|
///
|
||||||
|
/// TODO write hit testing docs
|
||||||
|
///
|
||||||
|
/// # Mouse Button Events
|
||||||
|
///
|
||||||
|
/// TODO write mouse button docs
|
||||||
|
///
|
||||||
|
/// # User Input Focus
|
||||||
|
///
|
||||||
|
/// TODO write focus docs
|
||||||
|
///
|
||||||
|
/// # Styling
|
||||||
|
///
|
||||||
|
/// TODO write styling docs
|
||||||
pub trait Widget: Send + UnwindSafe + Debug + 'static {
|
pub trait Widget: Send + UnwindSafe + Debug + 'static {
|
||||||
/// Redraw the contents of this widget.
|
/// Redraw the contents of this widget.
|
||||||
fn redraw(&mut self, context: &mut GraphicsContext<'_, '_, '_, '_, '_>);
|
fn redraw(&mut self, context: &mut GraphicsContext<'_, '_, '_, '_, '_>);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue