#![allow(non_camel_case_types, non_snake_case)]
#![allow(dead_code)]
use capi::sctypes::*;
use capi::scdom::*;
use capi::scvalue::{VALUE};
use capi::scgraphics::{HGFX};
use capi::scom::{som_asset_t, som_passport_t};
#[repr(C)]
pub struct BEHAVIOR_EVENT_PARAMS
{
pub cmd: UINT,
pub heTarget: HELEMENT,
pub he: HELEMENT,
pub reason: UINT_PTR,
pub data: VALUE,
pub name: LPCWSTR,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum INITIALIZATION_EVENTS
{
BEHAVIOR_DETACH = 0,
BEHAVIOR_ATTACH = 1,
}
#[repr(C)]
pub struct INITIALIZATION_PARAMS
{
pub cmd: INITIALIZATION_EVENTS,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum SOM_EVENTS
{
SOM_GET_PASSPORT = 0,
SOM_GET_ASSET = 1,
}
#[repr(C)]
pub union SOM_PARAMS_DATA
{
pub asset: *const som_asset_t,
pub passport: *const som_passport_t,
}
#[repr(C)]
pub struct SOM_PARAMS
{
pub cmd: SOM_EVENTS,
pub result: SOM_PARAMS_DATA,
}
#[repr(C)]
#[derive(Debug)]
pub enum BEHAVIOR_METHOD_IDENTIFIERS {
DO_CLICK = 1,
IS_EMPTY = 0xFC,
GET_VALUE = 0xFD,
SET_VALUE = 0xFE,
FIRST_APPLICATION_METHOD_ID = 0x100,
}
#[repr(C)]
pub struct METHOD_PARAMS {
pub method: UINT,
}
#[repr(C)]
pub struct IS_EMPTY_PARAMS {
pub method: UINT,
pub is_empty: UINT,
}
#[repr(C)]
pub struct VALUE_PARAMS {
pub method: UINT,
pub value: VALUE,
}
#[repr(C)]
pub struct SCRIPTING_METHOD_PARAMS
{
pub name: LPCSTR,
pub argv: *const VALUE,
pub argc: UINT,
pub result: VALUE,
}
#[repr(C)]
pub struct TIMER_PARAMS
{
pub timerId: UINT_PTR,
}
#[repr(C)]
pub struct DRAW_PARAMS {
pub layer: DRAW_EVENTS,
pub gfx: HGFX,
pub area: RECT,
pub reserved: UINT,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, PartialEq)]
pub enum DRAW_EVENTS {
DRAW_BACKGROUND = 0,
DRAW_CONTENT,
DRAW_FOREGROUND,
DRAW_OUTLINE,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum EVENT_GROUPS
{ HANDLE_INITIALIZATION = 0x0000,
HANDLE_MOUSE = 0x0001,
HANDLE_KEY = 0x0002,
HANDLE_FOCUS = 0x0004,
HANDLE_SCROLL = 0x0008,
HANDLE_TIMER = 0x0010,
HANDLE_SIZE = 0x0020,
HANDLE_DRAW = 0x0040,
HANDLE_DATA_ARRIVED = 0x080,
HANDLE_BEHAVIOR_EVENT = 0x0100,
HANDLE_METHOD_CALL = 0x0200,
HANDLE_SCRIPTING_METHOD_CALL = 0x0400,
#[deprecated(since="Sciter 4.4.3.24", note="TIScript native API is gone, use SOM instead.")]
HANDLE_TISCRIPT_METHOD_CALL = 0x0800,
HANDLE_EXCHANGE = 0x1000,
HANDLE_GESTURE = 0x2000,
HANDLE_SOM = 0x8000,
HANDLE_ALL = 0xFFFF,
SUBSCRIPTIONS_REQUEST = -1,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum PHASE_MASK
{
BUBBLING = 0,
SINKING = 0x0_8000,
BUBBLING_HANDLED= 0x1_0000,
SINKING_HANDLED = 0x1_8000,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum MOUSE_BUTTONS
{
NONE = 0,
MAIN = 1,
PROP = 2,
MIDDLE = 3,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, Default, PartialOrd, PartialEq)]
pub struct KEYBOARD_STATES(u32);
impl KEYBOARD_STATES {
pub const CONTROL_KEY_PRESSED: u32 = 0x01;
pub const SHIFT_KEY_PRESSED: u32 = 0x02;
pub const ALT_KEY_PRESSED: u32 = 0x04;
pub const RIGHT_SHIFT_KEY_PRESSED: u32 = 0x08;
pub const CMD_KEY_PRESSED: u32 = 0x10;
}
impl std::convert::From<u32> for KEYBOARD_STATES {
fn from(u: u32) -> Self {
Self(u)
}
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum KEY_EVENTS
{
KEY_DOWN = 0,
KEY_UP,
KEY_CHAR,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum MOUSE_EVENTS
{
MOUSE_ENTER = 0,
MOUSE_LEAVE,
MOUSE_MOVE,
MOUSE_UP,
MOUSE_DOWN,
MOUSE_DCLICK,
MOUSE_WHEEL,
MOUSE_TICK,
MOUSE_IDLE,
DROP = 9,
DRAG_ENTER = 0xA,
DRAG_LEAVE = 0xB,
DRAG_REQUEST = 0xC,
MOUSE_TCLICK = 0xF,
MOUSE_CLICK = 0xFF,
DRAGGING = 0x100,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, PartialOrd, PartialEq)]
#[allow(missing_docs)]
pub enum CLICK_REASON
{
BY_MOUSE_CLICK,
BY_KEY_CLICK,
SYNTHESIZED,
BY_MOUSE_ON_ICON,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum EDIT_CHANGED_REASON
{
BY_INS_CHAR,
BY_INS_CHARS,
BY_DEL_CHAR,
BY_DEL_CHARS,
BY_UNDO_REDO,
CHANGE_BY_INS_CONSECUTIVE_CHAR,
CHANGE_BY_DEL_CONSECUTIVE_CHAR,
CHANGE_BY_CODE,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug, PartialOrd, PartialEq)]
pub enum BEHAVIOR_EVENTS
{
BUTTON_CLICK = 0,
BUTTON_PRESS,
BUTTON_STATE_CHANGED,
EDIT_VALUE_CHANGING,
EDIT_VALUE_CHANGED,
SELECT_SELECTION_CHANGED,
SELECT_VALUE_CHANGED,
POPUP_REQUEST,
POPUP_READY,
POPUP_DISMISSED,
MENU_ITEM_ACTIVE,
MENU_ITEM_CLICK,
CONTEXT_MENU_REQUEST = 0x10,
VISIUAL_STATUS_CHANGED,
DISABLED_STATUS_CHANGED,
POPUP_DISMISSING,
CONTENT_CHANGED = 0x15,
CLICK = 0x16,
CHANGE = 0x17,
MEDIA_CHANGED = 0x18,
INPUT_LANGUAGE_CHANGED = 0x19,
CONTENT_MODIFIED = 0x1A,
READONLY_STATUS_CHANGED = 0x1B,
ARIA_LIVE_AREA_CHANGED = 0x1C,
HYPERLINK_CLICK = 0x80,
PASTE_TEXT = 0x8E,
PASTE_HTML = 0x8F,
ELEMENT_COLLAPSED = 0x90,
ELEMENT_EXPANDED,
ACTIVATE_CHILD,
UI_STATE_CHANGED = 0x95,
FORM_SUBMIT,
FORM_RESET,
DOCUMENT_COMPLETE,
HISTORY_PUSH,
HISTORY_DROP,
HISTORY_PRIOR,
HISTORY_NEXT,
HISTORY_STATE_CHANGED,
CLOSE_POPUP,
TOOLTIP_REQUEST,
ANIMATION = 0xA0,
DOCUMENT_CREATED = 0xC0,
DOCUMENT_CLOSE_REQUEST,
DOCUMENT_CLOSE,
DOCUMENT_READY,
DOCUMENT_PARSED = 0xC4,
VIDEO_INITIALIZED = 0xD1,
VIDEO_STARTED,
VIDEO_STOPPED,
VIDEO_BIND_RQ,
PAGINATION_STARTS = 0xE0,
PAGINATION_PAGE,
PAGINATION_ENDS,
CUSTOM = 0xF0,
MOUNT_COMPONENT = 0xF1,
FIRST_APPLICATION_EVENT_CODE = 0x100,
}
impl ::std::ops::BitOr for EVENT_GROUPS {
type Output = EVENT_GROUPS;
fn bitor(self, rhs: Self::Output) -> Self::Output {
let rn = (self as UINT) | (rhs as UINT);
unsafe { ::std::mem::transmute(rn) }
}
}