#![allow(non_camel_case_types, non_snake_case)]
use capi::sctypes::*;
MAKE_HANDLE!(#[doc = "Element native handle."] HELEMENT, _HELEMENT);
MAKE_HANDLE!(#[doc = "Node native handle."] HNODE, _HNODE);
#[repr(C)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum SCDOM_RESULT {
OK = 0,
INVALID_HWND = 1,
INVALID_HANDLE = 2,
PASSIVE_HANDLE = 3,
INVALID_PARAMETER = 4,
OPERATION_FAILED = 5,
OK_NOT_HANDLED = -1,
}
impl std::error::Error for SCDOM_RESULT {}
impl std::fmt::Display for SCDOM_RESULT {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{:?}", self)
}
}
#[repr(C)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum SET_ELEMENT_HTML
{
SIH_REPLACE_CONTENT = 0,
SIH_INSERT_AT_START = 1,
SIH_APPEND_AFTER_LAST = 2,
SOH_REPLACE = 3,
SOH_INSERT_BEFORE = 4,
SOH_INSERT_AFTER = 5,
}
#[repr(C)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum ELEMENT_AREAS {
ROOT_RELATIVE = 0x01,
SELF_RELATIVE = 0x02,
CONTAINER_RELATIVE = 0x03,
VIEW_RELATIVE = 0x04,
CONTENT_BOX = 0x00,
PADDING_BOX = 0x10,
BORDER_BOX = 0x20,
MARGIN_BOX = 0x30,
BACK_IMAGE_AREA = 0x40,
FORE_IMAGE_AREA = 0x50,
SCROLLABLE_AREA = 0x60,
}
impl ELEMENT_AREAS {
pub fn self_content() -> u32 {
ELEMENT_AREAS::SELF_RELATIVE as u32
}
pub fn self_rect() -> u32 {
ELEMENT_AREAS::ROOT_RELATIVE as u32
}
}
#[repr(C)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum ELEMENT_STATE_BITS
{
STATE_NONE = 0x00000000,
STATE_LINK = 0x00000001,
STATE_HOVER = 0x00000002,
STATE_ACTIVE = 0x00000004,
STATE_FOCUS = 0x00000008,
STATE_VISITED = 0x00000010,
STATE_CURRENT = 0x00000020,
STATE_CHECKED = 0x00000040,
STATE_DISABLED = 0x00000080,
STATE_READONLY = 0x00000100,
STATE_EXPANDED = 0x00000200,
STATE_COLLAPSED = 0x00000400,
STATE_INCOMPLETE = 0x00000800,
STATE_ANIMATING = 0x00001000,
STATE_FOCUSABLE = 0x00002000,
STATE_ANCHOR = 0x00004000,
STATE_SYNTHETIC = 0x00008000,
STATE_OWNS_POPUP = 0x00010000,
STATE_TABFOCUS = 0x00020000,
STATE_EMPTY = 0x00040000,
STATE_BUSY = 0x00080000,
STATE_DRAG_OVER = 0x00100000,
STATE_DROP_TARGET = 0x00200000,
STATE_MOVING = 0x00400000,
STATE_COPYING = 0x00800000,
STATE_DRAG_SOURCE = 0x01000000,
STATE_DROP_MARKER = 0x02000000,
STATE_PRESSED = 0x04000000,
STATE_POPUP = 0x08000000,
STATE_IS_LTR = 0x10000000,
STATE_IS_RTL = 0x20000000,
STATE_READY = 0x40000000,
}
impl ::std::ops::BitOr for ELEMENT_STATE_BITS {
type Output = ELEMENT_STATE_BITS;
fn bitor(self, rhs: Self::Output) -> Self::Output {
let rn = (self as UINT) | (rhs as UINT);
unsafe { ::std::mem::transmute(rn) }
}
}
impl ::std::ops::BitAnd for ELEMENT_STATE_BITS {
type Output = ELEMENT_STATE_BITS;
fn bitand(self, rhs: Self::Output) -> Self::Output {
let rn = (self as UINT) & (rhs as UINT);
unsafe { ::std::mem::transmute(rn) }
}
}
pub type SciterElementCallback = extern "system" fn (he: HELEMENT, param: LPVOID) -> BOOL;
pub type ELEMENT_COMPARATOR = extern "system" fn (he1: HELEMENT, he2: HELEMENT, param: LPVOID) -> INT;