Skip to main content

UiRequests

Struct UiRequests 

Source
pub struct UiRequests {
    pub new_project: Option<PathBuf>,
    pub open_project: Option<PathBuf>,
    pub attach_renderable: Option<(Entity, RenderableKind, PathBuf)>,
    pub toggle_play: bool,
    pub export_project: Option<PathBuf>,
    pub switch_scene: Option<PathBuf>,
    pub close_scene_tab: Option<PathBuf>,
    pub rename_scene: Option<(PathBuf, String)>,
    pub rename_script: Option<(PathBuf, String)>,
    pub set_start_scene: Option<PathBuf>,
    pub edited: bool,
    pub save_scene: bool,
}
Expand description

Requests raised by the UI that need something draw doesn’t have access to (a live &mut Renderer for loading assets, or EditorScene’s ability to replace its whole World when a project is opened) — consumed by EditorScene::update right after draw runs, while the renderer is still in scope for that frame.

Fields§

§new_project: Option<PathBuf>§open_project: Option<PathBuf>§attach_renderable: Option<(Entity, RenderableKind, PathBuf)>§toggle_play: bool

Play/Stop was clicked — starting/stopping the [libdqg::scripting::ScriptRuntime] needs EditorScene’s help (it owns the runtime and the pre-Play transform snapshot), unlike a script attachment/removal/reorder, which ui.rs can just apply to world.scripts directly since it needs no GPU load step.

§export_project: Option<PathBuf>

“Export…” was clicked and a destination folder chosen — building the standalone game needs EditorScene’s open Project, which ui.rs doesn’t own.

§switch_scene: Option<PathBuf>

A scene tile in the Assets panel’s Scenes section was double-clicked, or a tab in the scene tab strip was clicked — EditorScene’s own switch_or_open_scene method needs to run (it owns every open tab’s World/project), same reason toggle_play/ export_project are requests instead of handled here directly.

§close_scene_tab: Option<PathBuf>

A tab’s close button was clicked — EditorScene’s own close_scene_tab needs to run (it owns the tab list and has to autosave before dropping one).

§rename_scene: Option<(PathBuf, String)>

A scene tile’s inline rename was committed ((old_path, new_stem)) — needs EditorScene’s help since renaming may also need to update ProjectManifest.start_scene and any open tab’s identity, neither of which ui.rs owns.

§rename_script: Option<(PathBuf, String)>

A script tile’s inline rename was committed ((old_path, new_stem)) — deferred to EditorScene::rename_script, which fixes up every open tab’s World and every scene file on disk that references the old path, not just whichever World happens to be active — ui.rs only ever sees one World at a time.

§set_start_scene: Option<PathBuf>

A scene tile’s “Set as Start Scene” context-menu item was clicked — needs &mut Project to persist ProjectManifest.start_scene, which ui.rs only ever sees as &Project.

§edited: bool

Something in the active tab’s World/entity-asset map was mutated this frame — set by every editing widget below (transform drag, hierarchy add/rename/duplicate/delete, camera/ renderable/script editing) so EditorScene::update can mark that tab dirty. Not raised for attach_renderable, which is itself a request EditorScene marks dirty when it applies it.

§save_scene: bool

“Save” was clicked — deferred to EditorScene (rather than saved directly here, unlike before tabs existed) because ui.rs doesn’t own the dirty flag it needs to clear on success.

Trait Implementations§

Source§

impl Default for UiRequests

Source§

fn default() -> UiRequests

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> NoneValue for T
where T: Default,

§

type NoneType = T

§

fn null_value() -> T

The none-equivalent value.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

§

fn simd_from(_simd: S, value: T) -> T

§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

§

fn simd_into(self, simd: S) -> T

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

impl<T> WasmNotSync for T
where T: Sync,

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more