use crate::event::event_data::CommandEventData;
use crate::event::{Event, EventType};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum WebViewEvent {
Created,
Navigating,
Navigated,
Loaded,
Error,
NewWindow,
NewWindowFeatures,
TitleChanged,
FullscreenChanged,
ScriptMessageReceived,
ScriptResult,
WindowCloseRequested,
BrowsingDataCleared,
}
#[derive(Debug)]
pub struct WebViewEventData {
pub event: CommandEventData,
}
impl WebViewEventData {
pub fn new(event: Event) -> Self {
Self {
event: CommandEventData::new(event),
}
}
pub fn get_id(&self) -> i32 {
self.event.get_id()
}
pub fn get_string(&self) -> Option<String> {
self.event.get_string()
}
pub fn get_int(&self) -> Option<i32> {
self.event.get_int()
}
}
#[cfg(feature = "webview")]
crate::implement_category_event_handlers!(WebViewEvents, WebViewEvent, WebViewEventData,
Created => created, EventType::WEBVIEW_CREATED,
Navigating => navigating, EventType::WEBVIEW_NAVIGATING,
Navigated => navigated, EventType::WEBVIEW_NAVIGATED,
Loaded => loaded, EventType::WEBVIEW_LOADED,
Error => error, EventType::WEBVIEW_ERROR,
NewWindow => new_window, EventType::WEBVIEW_NEWWINDOW,
NewWindowFeatures => new_window_features, EventType::WEBVIEW_NEWWINDOW_FEATURES,
TitleChanged => title_changed, EventType::WEBVIEW_TITLE_CHANGED,
FullscreenChanged => fullscreen_changed, EventType::WEBVIEW_FULLSCREEN_CHANGED,
ScriptMessageReceived => script_message_received, EventType::WEBVIEW_SCRIPT_MESSAGE_RECEIVED,
ScriptResult => script_result, EventType::WEBVIEW_SCRIPT_RESULT,
WindowCloseRequested => window_close_requested, EventType::WEBVIEW_WINDOW_CLOSE_REQUESTED,
BrowsingDataCleared => browsing_data_cleared, EventType::WEBVIEW_BROWSING_DATA_CLEARED
);