use crate::core::msg::{JsPurpose, RequestId};
use crate::core::state::{Permissions, TabId};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum MessageLevel {
Info,
Error,
}
#[derive(Debug, Clone, PartialEq)]
pub enum Effect {
LoadUri { tab: TabId, uri: String },
Reload { tab: TabId, bypass_cache: bool },
Stop { tab: TabId },
GoBack { tab: TabId },
GoForward { tab: TabId },
EvalJs {
id: RequestId,
tab: TabId,
script: String,
purpose: JsPurpose,
},
OpenTab {
id: TabId,
uri: String,
background: bool,
},
CloseTab { tab: TabId },
FocusTab { tab: TabId },
SetClipboard(String),
SaveQuickmarks(Vec<(String, String)>),
SaveBookmarks(Vec<(String, String)>),
QueryHistory {
query: String,
prefix: String,
generation: u64,
},
RecordHistory { uri: String, title: String },
RenderStatus,
RenderTabs,
RenderCompletion,
RenderPermissions,
ApplyTheme,
SyncPermissions(Permissions),
ResolvePermission { id: u64, allow: bool },
SetZoom { tab: TabId, level: f64 },
Find { tab: TabId, text: String },
FindNext { tab: TabId },
FindPrev { tab: TabId },
FindClear { tab: TabId },
SavePermissions(Permissions),
ReloadConfig,
SaveSession { name: String, urls: Vec<String> },
LoadSession { name: String },
FireHook { event: String, arg: String },
ReloadPlugins,
PluginEval { id: u64, tab: TabId, script: String },
ResolvePluginEval { id: u64, result: String },
ShowMessage { level: MessageLevel, text: String },
ReportMemory,
Quit,
}