#[allow(unused)]
pub(crate) const MAX_STRING_SIZE: u32 = 1024;
#[allow(unused)]
pub(crate) const SHORT_STRING_SIZE: u32 = 256;
pub(crate) type BOOL = i32;
pub(crate) type JBoolean = u8;
pub(crate) type JChar = u16;
pub(crate) type JInt = i32;
pub(crate) type JFloat = f32;
#[allow(unused)]
pub(crate) type JLong = i64;
pub(crate) type JObject = *const ();
#[cfg(target_arch = "x86")]
#[allow(unused)]
pub(crate) type JObject64 = JObject;
#[cfg(target_arch = "x86_64")]
#[allow(unused)]
pub(crate) type JObject64 = JLong;
pub(crate) type AccessibleContext = JObject64;
#[allow(unused)]
pub(crate) type AccessibleText = JObject64;
#[allow(unused)]
pub(crate) type AccessibleValue = JObject64;
#[allow(unused)]
pub(crate) type AccessibleSelection = JObject64;
#[allow(unused)]
pub(crate) type JavaObject = JObject64;
#[allow(unused)]
pub(crate) type PropertyChangeEvent = JObject64;
#[allow(unused)]
pub(crate) type FocusEvent = JObject64;
#[allow(unused)]
pub(crate) type CaretEvent = JObject64;
#[allow(unused)]
pub(crate) type MouseEvent = JObject64;
#[allow(unused)]
pub(crate) type MenuEvent = JObject64;
#[allow(unused)]
pub(crate) type AccessibleTable = JObject64;
#[allow(unused)]
pub(crate) type AccessibleHyperlink = JObject64;
#[allow(unused)]
pub(crate) type AccessibleHypertext = JObject64;
#[allow(unused)]
pub(crate) const ACCESSIBLE_ALERT: &str = "alert";
#[allow(unused)]
pub(crate) const ACCESSIBLE_COLUMN_HEADER: &str = "column header";
#[allow(unused)]
pub(crate) const ACCESSIBLE_CANVAS: &str = "canvas";
#[allow(unused)]
pub(crate) const ACCESSIBLE_COMBO_BOX: &str = "combo box";
#[allow(unused)]
pub(crate) const ACCESSIBLE_DESKTOP_ICON: &str = "desktop icon";
#[allow(unused)]
pub(crate) const ACCESSIBLE_INTERNAL_FRAME: &str = "internal frame";
#[allow(unused)]
pub(crate) const ACCESSIBLE_DESKTOP_PANE: &str = "desktop pane";
#[allow(unused)]
pub(crate) const ACCESSIBLE_OPTION_PANE: &str = "option pane";
#[allow(unused)]
pub(crate) const ACCESSIBLE_WINDOW: &str = "window";
#[allow(unused)]
pub(crate) const ACCESSIBLE_FRAME: &str = "frame";
#[allow(unused)]
pub(crate) const ACCESSIBLE_DIALOG: &str = "dialog";
#[allow(unused)]
pub(crate) const ACCESSIBLE_COLOR_CHOOSER: &str = "color chooser";
#[allow(unused)]
pub(crate) const ACCESSIBLE_DIRECTORY_PANE: &str = "directory pane";
#[allow(unused)]
pub(crate) const ACCESSIBLE_FILE_CHOOSER: &str = "file chooser";
#[allow(unused)]
pub(crate) const ACCESSIBLE_FILLER: &str = "filler";
#[allow(unused)]
pub(crate) const ACCESSIBLE_HYPERLINK: &str = "hyperlink";
#[allow(unused)]
pub(crate) const ACCESSIBLE_ICON: &str = "icon";
#[allow(unused)]
pub(crate) const ACCESSIBLE_LABEL: &str = "label";
#[allow(unused)]
pub(crate) const ACCESSIBLE_ROOT_PANE: &str = "root pane";
#[allow(unused)]
pub(crate) const ACCESSIBLE_GLASS_PANE: &str = "glass pane";
#[allow(unused)]
pub(crate) const ACCESSIBLE_LAYERED_PANE: &str = "layered pane";
#[allow(unused)]
pub(crate) const ACCESSIBLE_LIST: &str = "list";
#[allow(unused)]
pub(crate) const ACCESSIBLE_LIST_ITEM: &str = "list item";
#[allow(unused)]
pub(crate) const ACCESSIBLE_MENU_BAR: &str = "menu bar";
#[allow(unused)]
pub(crate) const ACCESSIBLE_POPUP_MENU: &str = "popup menu";
#[allow(unused)]
pub(crate) const ACCESSIBLE_MENU: &str = "menu";
#[allow(unused)]
pub(crate) const ACCESSIBLE_MENU_ITEM: &str = "menu item";
#[allow(unused)]
pub(crate) const ACCESSIBLE_SEPARATOR: &str = "separator";
#[allow(unused)]
pub(crate) const ACCESSIBLE_PAGE_TAB_LIST: &str = "page tab list";
#[allow(unused)]
pub(crate) const ACCESSIBLE_PAGE_TAB: &str = "page tab";
#[allow(unused)]
pub(crate) const ACCESSIBLE_PANEL: &str = "panel";
#[allow(unused)]
pub(crate) const ACCESSIBLE_PROGRESS_BAR: &str = "progress bar";
#[allow(unused)]
pub(crate) const ACCESSIBLE_PASSWORD_TEXT: &str = "password text";
#[allow(unused)]
pub(crate) const ACCESSIBLE_PUSH_BUTTON: &str = "push button";
#[allow(unused)]
pub(crate) const ACCESSIBLE_TOGGLE_BUTTON: &str = "toggle button";
#[allow(unused)]
pub(crate) const ACCESSIBLE_CHECK_BOX: &str = "check box";
#[allow(unused)]
pub(crate) const ACCESSIBLE_RADIO_BUTTON: &str = "radio button";
#[allow(unused)]
pub(crate) const ACCESSIBLE_ROW_HEADER: &str = "row header";
#[allow(unused)]
pub(crate) const ACCESSIBLE_SCROLL_PANE: &str = "scroll pane";
#[allow(unused)]
pub(crate) const ACCESSIBLE_SCROLL_BAR: &str = "scroll bar";
#[allow(unused)]
pub(crate) const ACCESSIBLE_VIEWPORT: &str = "viewport";
#[allow(unused)]
pub(crate) const ACCESSIBLE_SLIDER: &str = "slider";
#[allow(unused)]
pub(crate) const ACCESSIBLE_SPLIT_PANE: &str = "split pane";
#[allow(unused)]
pub(crate) const ACCESSIBLE_TABLE: &str = "table";
#[allow(unused)]
pub(crate) const ACCESSIBLE_TEXT: &str = "text";
#[allow(unused)]
pub(crate) const ACCESSIBLE_TREE: &str = "tree";
#[allow(unused)]
pub(crate) const ACCESSIBLE_TOOL_BAR: &str = "tool bar";
#[allow(unused)]
pub(crate) const ACCESSIBLE_TOOL_TIP: &str = "tool tip";
#[allow(unused)]
pub(crate) const ACCESSIBLE_AWT_COMPONENT: &str = "awt component";
#[allow(unused)]
pub(crate) const ACCESSIBLE_SWING_COMPONENT: &str = "swing component";
#[allow(unused)]
pub(crate) const ACCESSIBLE_UNKNOWN: &str = "unknown";
#[allow(unused)]
pub(crate) const ACCESSIBLE_STATUS_BAR: &str = "status bar";
#[allow(unused)]
pub(crate) const ACCESSIBLE_DATE_EDITOR: &str = "date editor";
#[allow(unused)]
pub(crate) const ACCESSIBLE_SPIN_BOX: &str = "spin box";
#[allow(unused)]
pub(crate) const ACCESSIBLE_FONT_CHOOSER: &str = "font chooser";
#[allow(unused)]
pub(crate) const ACCESSIBLE_GROUP_BOX: &str = "group box";
#[allow(unused)]
pub(crate) const ACCESSIBLE_HEADER: &str = "header";
#[allow(unused)]
pub(crate) const ACCESSIBLE_FOOTER: &str = "footer";
#[allow(unused)]
pub(crate) const ACCESSIBLE_PARAGRAPH: &str = "paragraph";
#[allow(unused)]
pub(crate) const ACCESSIBLE_RULER: &str = "ruler";
#[allow(unused)]
pub(crate) const ACCESSIBLE_EDITBAR: &str = "editbar";
#[allow(unused)]
pub(crate) const PROGRESS_MONITOR: &str = "progress monitor";
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessBridgeVersionInfo {
pub(crate) VMversion: [u16; SHORT_STRING_SIZE as usize],
pub(crate) bridgeJavaClassVersion: [u16; SHORT_STRING_SIZE as usize],
pub(crate) bridgeJavaDLLVersion: [u16; SHORT_STRING_SIZE as usize],
pub(crate) bridgeWinDLLVersion: [u16; SHORT_STRING_SIZE as usize],
}
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleContextInfo {
pub(crate) name: [u16; MAX_STRING_SIZE as usize],
pub(crate) description: [u16; MAX_STRING_SIZE as usize],
pub(crate) role: [u16; SHORT_STRING_SIZE as usize],
pub(crate) role_en_US: [u16; SHORT_STRING_SIZE as usize],
pub(crate) states: [u16; SHORT_STRING_SIZE as usize],
pub(crate) states_en_US: [u16; SHORT_STRING_SIZE as usize],
pub(crate) indexInParent: JInt,
pub(crate) childrenCount: JInt,
pub(crate) x: JInt,
pub(crate) y: JInt,
pub(crate) width: JInt,
pub(crate) height: JInt,
pub(crate) accessibleComponent: BOOL,
pub(crate) accessibleAction: BOOL,
pub(crate) accessibleSelection: BOOL,
pub(crate) accessibleText: BOOL,
pub(crate) accessibleInterfaces: BOOL,
}
pub(crate) const MAX_VISIBLE_CHILDREN: u32 = 256;
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct VisibleChildrenInfo {
pub(crate) returnedChildrenCount: i32,
pub(crate) children: [AccessibleContext; MAX_VISIBLE_CHILDREN as usize],
}
pub(crate) const MAX_ACTION_INFO: u32 = 256;
#[allow(unused)]
const MAX_ACTIONS_TO_DO: u32 = 32;
#[derive(Clone, Copy, Debug)]
#[repr(C)]
pub(crate) struct AccessibleActionInfo {
pub(crate) name: [u16; SHORT_STRING_SIZE as usize],
}
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleActions {
pub(crate) actionsCount: JInt,
pub(crate) actionInfo: [AccessibleActionInfo; MAX_ACTION_INFO as usize],
}
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleActionsToDo {
pub(crate) actionsCount: JInt,
pub(crate) actions: [AccessibleActionInfo; MAX_ACTIONS_TO_DO as usize],
}
impl AccessibleActionsToDo {
#[allow(dead_code)]
pub(crate) fn from_actions(actions: &AccessibleActions) -> AccessibleActionsToDo {
let mut to_do: AccessibleActionsToDo = unsafe { std::mem::zeroed() };
let count = std::cmp::min(MAX_ACTIONS_TO_DO, actions.actionsCount as u32) as JInt;
for i in 0..(count as usize) {
to_do.actions[i] = actions.actionInfo[i];
}
to_do.actionsCount = count;
to_do
}
}
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleTextInfo {
pub(crate) charCount: JInt,
pub(crate) caretIndex: JInt,
pub(crate) indexAtPoint: JInt,
}
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleTextItemsInfo {
pub(crate) letter: u16,
pub(crate) word: [u16; SHORT_STRING_SIZE as usize],
pub(crate) sentence: [u16; MAX_STRING_SIZE as usize],
}
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleTextSelectionInfo {
pub(crate) selectionStartIndex: JInt,
pub(crate) selectionEndIndex: JInt,
pub(crate) selectedText: [u16; MAX_STRING_SIZE as usize],
}
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleTextRectInfo {
pub(crate) x: JInt,
pub(crate) y: JInt,
pub(crate) width: JInt,
pub(crate) height: JInt,
}
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleTextAttributesInfo {
pub(crate) bold: BOOL,
pub(crate) italic: BOOL,
pub(crate) underline: BOOL,
pub(crate) strikethrough: BOOL,
pub(crate) superscript: BOOL,
pub(crate) subscript: BOOL,
pub(crate) backgroundColor: [u16; SHORT_STRING_SIZE as usize],
pub(crate) foregroundColor: [u16; SHORT_STRING_SIZE as usize],
pub(crate) fontFamily: [u16; SHORT_STRING_SIZE as usize],
pub(crate) fontSize: JInt,
pub(crate) alignment: JInt,
pub(crate) bidiLevel: JInt,
pub(crate) firstLineIndent: JFloat,
pub(crate) leftIndent: JFloat,
pub(crate) rightIndent: JFloat,
pub(crate) lineSpacing: JFloat,
pub(crate) spaceAbove: JFloat,
pub(crate) spaceBelow: JFloat,
pub(crate) fullAttributesString: [u16; MAX_STRING_SIZE as usize],
}
const MAX_RELATION_TARGETS: u32 = 25;
const MAX_RELATIONS: u32 = 5;
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleRelationInfo {
pub(crate) key: [u16; SHORT_STRING_SIZE as usize],
pub(crate) targetCount: JInt,
pub(crate) targets: [JObject64; MAX_RELATION_TARGETS as usize],
}
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleRelationSetInfo {
pub(crate) relationCount: JInt,
pub(crate) relations: [AccessibleRelationInfo; MAX_RELATIONS as usize],
}
#[allow(unused)]
const MAX_KEY_BINDINGS: u32 = 10;
#[allow(unused)]
pub(crate) const ACCESSIBLE_SHIFT_KEYSTROKE: i32 = 1;
#[allow(unused)]
pub(crate) const ACCESSIBLE_CONTROL_KEYSTROKE: i32 = 2;
#[allow(unused)]
pub(crate) const ACCESSIBLE_META_KEYSTROKE: i32 = 4;
#[allow(unused)]
pub(crate) const ACCESSIBLE_ALT_KEYSTROKE: i32 = 8;
#[allow(unused)]
pub(crate) const ACCESSIBLE_ALT_GRAPH_KEYSTROKE: i32 = 16;
#[allow(unused)]
pub(crate) const ACCESSIBLE_BUTTON1_KEYSTROKE: i32 = 32;
#[allow(unused)]
pub(crate) const ACCESSIBLE_BUTTON2_KEYSTROKE: i32 = 64;
#[allow(unused)]
pub(crate) const ACCESSIBLE_BUTTON3_KEYSTROKE: i32 = 128;
#[allow(unused)]
pub(crate) const ACCESSIBLE_FKEY_KEYSTROKE: i32 = 256;
#[allow(unused)]
pub(crate) const ACCESSIBLE_CONTROLCODE_KEYSTROKE: i32 = 512;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_BACK_SPACE: JChar = 8;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_DELETE: JChar = 127;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_DOWN: JChar = 40;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_END: JChar = 35;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_HOME: JChar = 36;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_INSERT: JChar = 155;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_KP_DOWN: JChar = 225;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_KP_LEFT: JChar = 226;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_KP_RIGHT: JChar = 227;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_KP_UP: JChar = 224;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_LEFT: JChar = 37;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_PAGE_DOWN: JChar = 34;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_PAGE_UP: JChar = 33;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_RIGHT: JChar = 39;
#[allow(unused)]
pub(crate) const ACCESSIBLE_VK_UP: JChar = 38;
#[derive(Clone, Debug)]
#[repr(C)]
pub(crate) struct AccessibleKeyBindingInfo {
pub(crate) character: JChar,
pub(crate) modifiers: JInt,
}
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleKeyBindings {
pub(crate) keyBindingsCount: i32,
pub(crate) keyBindingInfo: [AccessibleKeyBindingInfo; MAX_KEY_BINDINGS as usize],
}
const MAX_ICON_INFO: u32 = 8;
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleIconInfo {
pub(crate) description: [u16; SHORT_STRING_SIZE as usize],
pub(crate) height: JInt,
pub(crate) width: JInt,
}
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleIcons {
pub(crate) iconsCount: JInt,
pub(crate) iconInfo: [AccessibleIconInfo; MAX_ICON_INFO as usize],
}
#[allow(dead_code)]
pub(crate) const MAX_TABLE_SELECTIONS: u32 = 64;
#[allow(non_snake_case)]
#[derive(Clone, Debug)]
#[repr(C)]
pub(crate) struct AccessibleTableInfo {
pub(crate) caption: JObject64,
pub(crate) summary: JObject64,
pub(crate) rowCount: JInt,
pub(crate) columnCount: JInt,
pub(crate) accessibleContext: JObject64,
pub(crate) accessibleTable: JObject64,
}
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleTableCellInfo {
pub(crate) accessibleContext: JObject64,
pub(crate) index: JInt,
pub(crate) row: JInt,
pub(crate) column: JInt,
pub(crate) rowExtent: JInt,
pub(crate) columnExtent: JInt,
pub(crate) isSelected: JBoolean,
}
const MAX_HYPERLINKS: u32 = 64;
#[allow(non_snake_case)]
#[derive(Clone, Debug)]
#[repr(C)]
pub(crate) struct AccessibleHyperlinkInfo {
pub(crate) text: [u16; SHORT_STRING_SIZE as usize],
pub(crate) startIndex: JInt,
pub(crate) endIndex: JInt,
pub(crate) accessibleHyperlink: JObject64,
}
#[allow(non_snake_case)]
#[derive(Debug)]
#[repr(C)]
pub(crate) struct AccessibleHypertextInfo {
pub(crate) linkCount: JInt,
pub(crate) links: [AccessibleHyperlinkInfo; MAX_HYPERLINKS as usize],
pub(crate) accessibleHypertext: JObject64,
}