#![allow(non_camel_case_types, non_snake_case)]
#![allow(dead_code)]
use capi::sctypes::*;
use capi::scvalue::{VALUE};
use capi::screquest::{HREQUEST};
use capi::scdom::{HELEMENT};
use capi::scapi::ISciterAPI;
pub enum ID2D1RenderTarget {}
pub enum ID2D1Factory {}
pub enum IDWriteFactory {}
pub enum IDXGISwapChain {}
pub enum IDXGISurface {}
#[repr(C)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum LOAD_RESULT {
LOAD_DEFAULT,
LOAD_DISCARD,
LOAD_DELAYED,
LOAD_MYSELF,
}
#[repr(C)]
#[derive(Debug)]
#[allow(missing_docs)]
pub enum SCRIPT_RUNTIME_FEATURES
{
ALLOW_FILE_IO = 0x1,
ALLOW_SOCKET_IO = 0x2,
ALLOW_EVAL = 0x4,
ALLOW_SYSINFO = 0x8,
}
#[repr(C)]
#[derive(Debug)]
#[derive(Copy, Clone)]
#[allow(missing_docs)]
pub enum GFX_LAYER
{
AUTO = 0xFFFF,
CPU = 1,
#[cfg(windows)]
WARP = 2,
#[cfg(windows)]
D2D = 3,
SKIA_CPU = 4,
SKIA_OPENGL = 5,
}
#[repr(C)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum SCITER_RT_OPTIONS
{
SCITER_SMOOTH_SCROLL = 1,
SCITER_CONNECTION_TIMEOUT = 2,
SCITER_HTTPS_ERROR = 3,
SCITER_FONT_SMOOTHING = 4,
SCITER_TRANSPARENT_WINDOW = 6,
#[deprecated(since="4.0.1", note="This option isn't working since Sciter 4.0.1.1.")]
SCITER_SET_GPU_BLACKLIST = 7,
SCITER_SET_SCRIPT_RUNTIME_FEATURES = 8,
SCITER_SET_GFX_LAYER = 9,
SCITER_SET_DEBUG_MODE = 10,
SCITER_SET_UX_THEMING = 11,
SCITER_ALPHA_WINDOW = 12,
SCITER_SET_INIT_SCRIPT = 13,
SCITER_SET_MAIN_WINDOW = 14,
SCITER_SET_MAX_HTTP_DATA_LENGTH = 15,
SCITER_SET_PX_AS_DIP = 16,
}
#[repr(C)]
pub enum SCITER_CREATE_WINDOW_FLAGS {
SW_CHILD = 1,
SW_TITLEBAR = 1 << 1,
SW_RESIZEABLE = 1 << 2,
SW_TOOL = 1 << 3,
SW_CONTROLS = 1 << 4,
SW_GLASSY = 1 << 5,
SW_ALPHA = 1 << 6,
SW_MAIN = 1 << 7,
SW_POPUP = 1 << 8,
SW_ENABLE_DEBUG = 1 << 9,
SW_OWNS_VM = 1 << 10,
}
impl Default for SCITER_CREATE_WINDOW_FLAGS {
fn default() -> Self {
SCITER_CREATE_WINDOW_FLAGS::SW_CHILD
}
}
impl ::std::ops::BitOr for SCITER_CREATE_WINDOW_FLAGS {
type Output = SCITER_CREATE_WINDOW_FLAGS;
fn bitor(self, rhs: Self::Output) -> Self::Output {
let rn = (self as UINT) | (rhs as UINT);
unsafe { ::std::mem::transmute(rn) }
}
}
#[repr(C)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum SCITER_NOTIFICATION {
SC_LOAD_DATA = 1,
SC_DATA_LOADED = 2,
SC_ATTACH_BEHAVIOR = 4,
SC_ENGINE_DESTROYED = 5,
SC_POSTED_NOTIFICATION = 6,
SC_GRAPHICS_CRITICAL_FAILURE = 7,
SC_KEYBOARD_REQUEST = 8,
SC_INVALIDATE_RECT = 9,
}
#[repr(C)]
#[derive(Debug, PartialEq)]
pub enum RESOURCE_TYPE {
HTML = 0,
IMAGE = 1,
STYLE = 2,
CURSOR = 3,
SCRIPT = 4,
RAW = 5,
FONT,
SOUND,
}
pub type SCITER_RESOURCE_TYPE = RESOURCE_TYPE;
#[repr(C)]
#[derive(Debug)]
pub struct SCN_LOAD_DATA
{
pub code: UINT,
pub hwnd: HWINDOW,
pub uri: LPCWSTR,
pub outData: LPCBYTE,
pub outDataSize: UINT,
pub dataType: RESOURCE_TYPE,
pub request_id: HREQUEST,
pub principal: HELEMENT,
pub initiator: HELEMENT,
}
#[repr(C)]
#[derive(Debug)]
pub struct SCN_DATA_LOADED
{
pub code: UINT,
pub hwnd: HWINDOW,
pub uri: LPCWSTR,
pub data: LPCBYTE,
pub dataSize: UINT,
pub dataType: RESOURCE_TYPE,
pub status: UINT,
}
#[repr(C)]
pub struct SCN_ATTACH_BEHAVIOR
{
pub code: UINT,
pub hwnd: HWINDOW,
pub element: HELEMENT,
pub name: LPCSTR,
pub elementProc: ElementEventProc,
pub elementTag: LPVOID,
}
#[repr(C)]
pub struct SCN_KEYBOARD_REQUEST
{
pub code: UINT,
pub hwnd: HWINDOW,
pub keyboard_mode: UINT,
}
#[repr(C)]
pub struct SCN_INVALIDATE_RECT
{
pub code: UINT,
pub hwnd: HWINDOW,
pub invalid_rect: RECT,
}
#[repr(C)]
pub struct SCITER_CALLBACK_NOTIFICATION
{
pub code: UINT,
pub hwnd: HWINDOW,
}
pub type LPSCITER_CALLBACK_NOTIFICATION = *mut SCITER_CALLBACK_NOTIFICATION;
pub type SciterHostCallback = extern "system" fn (pns: LPSCITER_CALLBACK_NOTIFICATION, callbackParam: LPVOID) -> UINT;
pub type SciterWindowDelegate = extern "system" fn (hwnd: HWINDOW, msg: UINT, wParam: WPARAM, lParam: LPARAM, pParam: LPVOID, handled: * mut BOOL) -> LRESULT;
pub type ElementEventProc = extern "system" fn (tag: LPVOID, he: HELEMENT, evtg: UINT, prms: LPVOID) -> BOOL;
#[repr(C)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum OUTPUT_SUBSYTEMS
{
DOM = 0,
CSSS,
CSS,
TIS,
}
#[repr(C)]
#[derive(Debug, PartialOrd, PartialEq)]
#[allow(missing_docs)]
pub enum OUTPUT_SEVERITY
{
INFO,
WARNING,
ERROR,
}
pub type DEBUG_OUTPUT_PROC = extern "system" fn (param: LPVOID, subsystem: OUTPUT_SUBSYTEMS, severity: OUTPUT_SEVERITY, text: LPCWSTR, text_length: UINT);
pub type LPCWSTR_RECEIVER = extern "system" fn (szstr: LPCWSTR, str_length: UINT, param: LPVOID);
pub type LPCSTR_RECEIVER = extern "system" fn (szstr: LPCSTR, str_length: UINT, param: LPVOID);
pub type LPCBYTE_RECEIVER = extern "system" fn (szstr: LPCBYTE, str_length: UINT, param: LPVOID);
pub type ELEMENT_BITMAP_RECEIVER = extern "system" fn (rgba: LPCBYTE, x: INT, y: INT, width: UINT, height: UINT, param: LPVOID);
pub type KeyValueCallback = extern "system" fn (param: LPVOID, pkey: *const VALUE, pval: *const VALUE) -> BOOL;
pub type SciterLibraryInit = extern "system" fn (api: &'static ISciterAPI, exported: &mut VALUE) -> BOOL;