7
44
Fork
You've already forked nice-plug
22

Add nice-plug-slint integration crate (#39) #49

Open
aidan729 wants to merge 1 commit from aidan729/nice-plug:main into main
pull from: aidan729/nice-plug:main
merge into: RustAudio:main
RustAudio:main
RustAudio:resizing
RustAudio:dev
RustAudio:standalone_fixes
RustAudio:FoobarIT/main
RustAudio:fixes
RustAudio:egui_3rd_party
RustAudio:vizia_baseview_update
RustAudio:egui_32
RustAudio:softbuffer
RustAudio:byo_gui_examples
RustAudio:raw_graphics_examples
Contributor
Copy link

Adds nice-plug-slint, the official nice-plug Editor integration for Slint
UIs, addressing #39. Follows the same shape as nice-plug-egui /
nice-plug-iced: a thin glue crate over a generic *-baseview windowing crate
(here, the new slint-baseview — see its companion PR).

API:
SlintEditor::new(state, || MyComponent::new())
.with_setup(|handler, window| { ... })
.with_event_loop(|handler, setter, window| { ... })

SlintEditorState is persistable via #[persist] for save/restore of the
editor size; the per-frame Handler gives access to the component, the Slint
window, the GuiContext, parameter setters, and resize control.

This upstreams my third-party adapter, split so the reusable Slint<->baseview
windowing is in slint-baseview and only the nice-plug-specific glue is here.

Dependency note: nice-plug-slint depends on slint-baseview via a git
dependency until slint-baseview is published to crates.io; switch to a version
dep at that point. (A gain_slint example mirroring gain_egui is a natural
follow-up.)

Adds `nice-plug-slint`, the official nice-plug `Editor` integration for Slint UIs, addressing #39. Follows the same shape as `nice-plug-egui` / `nice-plug-iced`: a thin glue crate over a generic `*-baseview` windowing crate (here, the new `slint-baseview` — see its companion PR). API: SlintEditor::new(state, || MyComponent::new()) .with_setup(|handler, window| { ... }) .with_event_loop(|handler, setter, window| { ... }) `SlintEditorState` is persistable via `#[persist]` for save/restore of the editor size; the per-frame `Handler` gives access to the component, the Slint window, the `GuiContext`, parameter setters, and resize control. This upstreams my third-party adapter, split so the reusable Slint<->baseview windowing is in `slint-baseview` and only the nice-plug-specific glue is here. Dependency note: `nice-plug-slint` depends on `slint-baseview` via a git dependency until slint-baseview is published to crates.io; switch to a version dep at that point. (A `gain_slint` example mirroring `gain_egui` is a natural follow-up.)
Upstreams the Slint integration as an officially-supported adapter,
mirroring nice-plug-egui / nice-plug-iced. The generic Slint-on-baseview
windowing lives in the separate slint-baseview crate; this crate is the
thin nice-plug Editor glue on top of it.
Provides SlintEditor<T> (new/with_setup/with_event_loop), a persistable
SlintEditorState, and a per-frame Handler exposing the component, the
Slint window, the GuiContext, parameter setters, and resize control.
Depends on slint-baseview (git dependency until published to crates.io).
Adds the crate to the workspace members.

It would be nice to have an example plugin to see how the integration works in practice.

It would be nice to have an example plugin to see how the integration works in practice.
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u main:aidan729-main
git switch aidan729-main

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff aidan729-main
git switch aidan729-main
git rebase main
git switch main
git merge --ff-only aidan729-main
git switch aidan729-main
git rebase main
git switch main
git merge --no-ff aidan729-main
git switch main
git merge --squash aidan729-main
git switch main
git merge --ff-only aidan729-main
git switch main
git merge aidan729-main
git push origin main
Sign in to join this conversation.
No reviewers
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
RustAudio/nice-plug!49
Reference in a new issue
RustAudio/nice-plug
No description provided.
Delete branch "aidan729/nice-plug:main"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?