[][src]Trait meli::components::Component

pub trait Component: Display + Debug + Send + Sync {
    fn draw(&mut self, grid: &mut CellBuffer, area: Area, context: &mut Context);
fn process_event(
        &mut self,
        event: &mut UIEvent,
        context: &mut Context
    ) -> bool;
fn is_dirty(&self) -> bool;
fn set_dirty(&mut self, value: bool);
fn id(&self) -> ComponentId; fn is_visible(&self) -> bool { ... }
fn can_quit_cleanly(&mut self, _context: &Context) -> bool { ... }
fn kill(&mut self, _id: ComponentId, _context: &mut Context) { ... }
fn set_id(&mut self, _id: ComponentId) { ... }
fn get_shortcuts(&self, _context: &Context) -> ShortcutMaps { ... }
fn get_status(&self, _context: &Context) -> String { ... } }

Types implementing this Trait can draw on the terminal and receive events. If a type wants to skip drawing if it has not changed anything, it can hold some flag in its fields (eg self.dirty = false) and act upon that in their draw implementation.

Required methods

fn draw(&mut self, grid: &mut CellBuffer, area: Area, context: &mut Context)

fn process_event(&mut self, event: &mut UIEvent, context: &mut Context) -> bool

fn is_dirty(&self) -> bool

fn set_dirty(&mut self, value: bool)

fn id(&self) -> ComponentId

Loading content...

Provided methods

fn is_visible(&self) -> bool

fn can_quit_cleanly(&mut self, _context: &Context) -> bool

fn kill(&mut self, _id: ComponentId, _context: &mut Context)

fn set_id(&mut self, _id: ComponentId)

fn get_shortcuts(&self, _context: &Context) -> ShortcutMaps

fn get_status(&self, _context: &Context) -> String

Loading content...

Implementors

impl Component for KeySelection[src]

impl Component for Field[src]

impl Component for ContactList[src]

impl Component for ContactManager[src]

impl Component for CompactListing[src]

impl Component for ConversationsListing[src]

impl Component for Listing[src]

impl Component for OfflineListing[src]

impl Component for PlainListing[src]

impl Component for ThreadListing[src]

impl Component for AccountStatus[src]

impl Component for Composer[src]

impl Component for EnvelopeView[src]

impl Component for HtmlView[src]

impl Component for MailView[src]

impl Component for ThreadView[src]

impl Component for DbusNotifications[src]

impl Component for NotificationCommand[src]

impl Component for SVGScreenshotFilter[src]

impl Component for AutoComplete[src]

impl Component for HSplit[src]

impl Component for Pager[src]

impl Component for ProgressSpinner[src]

impl Component for RawBuffer[src]

impl Component for StatusBar[src]

impl Component for Tabbed[src]

impl Component for VSplit[src]

impl Component for UIConfirmationDialog[src]

impl<'_, '_> Component for EditAttachmentsRefMut<'_, '_>[src]

impl<T> Component for ButtonWidget<T> where
    T: 'static + Debug + Copy + Default + Send + Sync
[src]

impl<T: 'static + PartialEq + Debug + Clone + Sync + Send> Component for UIDialog<T>[src]

impl<T: 'static + Debug + Copy + Default + Send + Sync> Component for FormWidget<T>[src]

Loading content...