use ::lxapp::lx::{LxLogicExtension, register_logic_extension};
use rong::{JSContext, JSResult};
mod app;
mod device;
mod display;
mod env;
mod fs;
pub mod i18n;
mod input;
mod location;
mod lxapp;
mod media;
mod message_port;
mod navigator;
mod storage;
mod surface;
mod system;
mod ui;
mod update;
mod i18n_generated;
pub use self::i18n_generated::*;
pub struct LxLogicRuntime;
impl LxLogicExtension for LxLogicRuntime {
fn init(&self, ctx: &JSContext) -> JSResult<()> {
env::init(ctx)?;
app::init(ctx)?;
lxapp::init(ctx)?;
device::init(ctx)?;
display::init(ctx)?;
location::init(ctx)?;
navigator::init(ctx)?;
update::init(ctx)?;
message_port::init(ctx)?;
surface::init(ctx)?;
input::init(ctx)?;
ui::init(ctx)?;
system::init(ctx)?;
media::init(ctx)?;
fs::init(ctx)?;
storage::init(ctx)?;
Ok(())
}
}
pub fn register_logic_runtime() {
::lxapp::register_surface_close_observer(notify_surface_closed);
register_logic_extension(Box::new(LxLogicRuntime));
}
pub fn notify_surface_closed(id: &str, reason: &str) -> bool {
surface::notify_surface_closed(id, reason)
}