Skip to main content

Action

Trait Action 

Source
pub trait Action: Send + Sync {
    // Required methods
    fn new() -> Self
       where Self: Sized;
    fn id(&self) -> TheId;
    fn info(&self) -> String;
    fn role(&self) -> ActionRole;
    fn is_applicable(
        &self,
        map: &Map,
        ctx: &mut TheContext,
        server_ctx: &ServerContext,
    ) -> bool;
    fn params(&self) -> TheNodeUI;
    fn handle_event(
        &mut self,
        event: &TheEvent,
        project: &mut Project,
        ui: &mut TheUI,
        ctx: &mut TheContext,
        server_ctx: &mut ServerContext,
    ) -> bool;

    // Provided methods
    fn accel(&self) -> Option<TheAccelerator> { ... }
    fn load_params(&mut self, map: &Map) { ... }
    fn load_params_project(
        &mut self,
        project: &Project,
        server_ctx: &mut ServerContext,
    ) { ... }
    fn apply(
        &self,
        map: &mut Map,
        ui: &mut TheUI,
        ctx: &mut TheContext,
        server_ctx: &mut ServerContext,
    ) -> Option<ProjectUndoAtom> { ... }
    fn apply_project(
        &self,
        project: &mut Project,
        ui: &mut TheUI,
        ctx: &mut TheContext,
        server_ctx: &mut ServerContext,
    ) { ... }
}

Required Methods§

Source

fn new() -> Self
where Self: Sized,

Source

fn id(&self) -> TheId

Source

fn info(&self) -> String

Source

fn role(&self) -> ActionRole

Source

fn is_applicable( &self, map: &Map, ctx: &mut TheContext, server_ctx: &ServerContext, ) -> bool

Source

fn params(&self) -> TheNodeUI

Source

fn handle_event( &mut self, event: &TheEvent, project: &mut Project, ui: &mut TheUI, ctx: &mut TheContext, server_ctx: &mut ServerContext, ) -> bool

Provided Methods§

Source

fn accel(&self) -> Option<TheAccelerator>

Source

fn load_params(&mut self, map: &Map)

Source

fn load_params_project( &mut self, project: &Project, server_ctx: &mut ServerContext, )

Source

fn apply( &self, map: &mut Map, ui: &mut TheUI, ctx: &mut TheContext, server_ctx: &mut ServerContext, ) -> Option<ProjectUndoAtom>

Source

fn apply_project( &self, project: &mut Project, ui: &mut TheUI, ctx: &mut TheContext, server_ctx: &mut ServerContext, )

Implementors§

Source§

impl Action for AddArch

Source§

impl Action for ApplyTile

Source§

impl Action for ClearPalette

Source§

impl Action for ClearProfile

Source§

impl Action for ClearTile

Source§

impl Action for CopyTileID

Source§

impl Action for CopyVCode

Source§

impl Action for CreateCampfire

Source§

impl Action for CreateCenterVertex

Source§

impl Action for CreateFence

Source§

impl Action for CreateLinedef

Source§

impl Action for CreatePalisade

Source§

impl Action for CreateProp

Source§

impl Action for CreateRoof

Source§

impl Action for CreateSector

Source§

impl Action for CreateStairs

Source§

impl Action for Duplicate

Source§

impl Action for DuplicateTile

Source§

impl Action for EditLinedef

Source§

impl Action for EditMaximize

Source§

impl Action for EditSector

Source§

impl Action for EditTileMeta

Source§

impl Action for EditVertex

Source§

impl Action for EditingCamera

Source§

impl Action for EditingSlice

Source§

impl Action for ExportVCode

Source§

impl Action for ExtrudeLinedef

Source§

impl Action for ExtrudeSector

Source§

impl Action for FirstPCamera

Source§

impl Action for GateDoor

Source§

impl Action for ImportPalette

Source§

impl Action for ImportVCode

Source§

impl Action for IsoCamera

Source§

impl Action for Minimize

Source§

impl Action for NewTile

Source§

impl Action for OrbitCamera

Source§

impl Action for PasteVCode

Source§

impl Action for Recess

Source§

impl Action for Relief

Source§

impl Action for RemapTile

Source§

impl Action for SetEditingSurface

Source§

impl Action for SetTileMaterial

Source§

impl Action for Split

Source§

impl Action for ToggleEditingGeo

Source§

impl Action for ToggleRectGeo

Source§

impl Action for Window