Skip to main content

App

Trait App 

Source
pub trait App {
Show 22 methods // Required methods fn name(&self) -> &str; fn draw( &mut self, screen: &Screen, win_x: u32, win_y: u32, win_w: u32, win_h: u32, ); fn on_mouse( &mut self, local_x: i32, local_y: i32, btn_left: bool, btn_right: bool, wheel: i32, ); fn on_key(&mut self, keycode: u8, pressed: bool, ascii: Option<char>); // Provided methods fn is_proxy(&self) -> bool { ... } fn get_shared_buffer(&self) -> Option<Arc<Mutex<Vec<u32>>>> { ... } fn instance_info(&self) -> String { ... } fn tabs(&self) -> Vec<String> { ... } fn active_tab(&self) -> usize { ... } fn switch_tab(&mut self, _idx: usize) { ... } fn add_tab(&mut self) { ... } fn close_tab(&mut self, _idx: usize) -> bool { ... } fn open_file_dialog(&mut self) { ... } fn save_file(&mut self) { ... } fn tab_thread_fn(&self) -> Option<fn()> { ... } fn get_dom_value(&self, _id: &str) -> Option<String> { ... } fn set_dom_value(&mut self, _id: &str, _val: &str) { ... } fn needs_timer_redraw(&self) -> bool { ... } fn get_buffer_updated_flag(&self) -> Option<Arc<AtomicBool>> { ... } fn get_dom_content(&self, _id: &str) -> Option<String> { ... } fn set_dom_content(&mut self, _id: &str, _val: &str) { ... } fn on_resize(&mut self, _width: u32, _height: u32) { ... }
}
Expand description

アプリケーションが実装すべきトレイト

Required Methods§

Source

fn name(&self) -> &str

Source

fn draw( &mut self, screen: &Screen, win_x: u32, win_y: u32, win_w: u32, win_h: u32, )

ウィンドウ内の描画要求

Source

fn on_mouse( &mut self, local_x: i32, local_y: i32, btn_left: bool, btn_right: bool, wheel: i32, )

マウスイベント。ローカル座標とホイール移動量が渡される。

Source

fn on_key(&mut self, keycode: u8, pressed: bool, ascii: Option<char>)

キーボードイベント

Provided Methods§

Source

fn is_proxy(&self) -> bool

ProxyApp であるかどうか

Source

fn get_shared_buffer(&self) -> Option<Arc<Mutex<Vec<u32>>>>

共有されるバックバッファを返す

Source

fn instance_info(&self) -> String

インスタンス特有の情報(ファイル名やURLなど)を返す

Source

fn tabs(&self) -> Vec<String>

タブタイトル一覧。空を返すとタブなし扱い(非推奨: 全アプリは最低1タブ持つ)

Source

fn active_tab(&self) -> usize

Source

fn switch_tab(&mut self, _idx: usize)

Source

fn add_tab(&mut self)

Source

fn close_tab(&mut self, _idx: usize) -> bool

タブを閉じる。最後のタブが閉じられウィンドウも閉じる場合は true を返す。

Source

fn open_file_dialog(&mut self)

Alt+O: ファイルオープンダイアログを開く(未実装アプリはno-op)

Source

fn save_file(&mut self)

Alt+S: ファイルを保存する(未実装アプリはno-op)

Source

fn tab_thread_fn(&self) -> Option<fn()>

このアプリの各タブ用バックグラウンドスレッド関数を返す。 Some(fn) を返したアプリはタブ追加時にスケジューラでスレッドを起動する。 スレッド関数は引数なしの fn() で、グローバル Mutex 経由でアプリ状態と通信する。

Source

fn get_dom_value(&self, _id: &str) -> Option<String>

Source

fn set_dom_value(&mut self, _id: &str, _val: &str)

Source

fn needs_timer_redraw(&self) -> bool

Source

fn get_buffer_updated_flag(&self) -> Option<Arc<AtomicBool>>

ProxyApp の shared_buffer が更新されたことを通知する AtomicBool を返す。 ProxyApp でない通常のアプリは None を返す(デフォルト実装)。 Core 0 の dirty 判定がこのフラグを読んで矩形を登録する。

Source

fn get_dom_content(&self, _id: &str) -> Option<String>

Source

fn set_dom_content(&mut self, _id: &str, _val: &str)

Source

fn on_resize(&mut self, _width: u32, _height: u32)

ウィンドウサイズ変更の通知

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§