1pub const EV_ACT: u32 = 1; pub const EV_COMMIT: u32 = 2; pub const EV_HOVER: u32 = 4; pub const EV_HELD: u32 = 8; pub const EV_FOCUS: u32 = 16; pub const EV_DOUBLE: u32 = 32; pub const EV_RCLICK: u32 = 64; pub const EV_OPEN: u32 = 128; pub const EV_DRAG: u32 = 256; pub const HB_FOCUS: u32 = 1; pub const HB_BLOCK: u32 = 2; pub const HB_DRAG: u32 = 4; pub const HB_TEXT: u32 = 8; pub const HB_MOVES: u32 = 16; pub const HB_DISABLED: u32 = 32; pub const HB_MIN: u32 = 64; pub const HB_MAX: u32 = 128;
28pub const HB_CLOSE: u32 = 256;
29pub const HB_NOTAB: u32 = 512;
33pub const HB_CURRENT: u32 = 1024;
34pub const HB_SPLITTER: u32 = 2048;
35pub const HB_CURSOR_SHIFT: u32 = 12; pub const HB_SPACE: u32 = 0x10000;
40pub const HB_OWNKEYS: u32 = 0x20000;
41pub const HB_GRAB_H: u32 = 0x40000;
44pub const HB_GRAB_V: u32 = 0x80000;
45
46pub const TF_V: u32 = 1;
57pub const TF_H: u32 = 2;
58pub const TF_BOTH: u32 = 3;
59pub const TF_HOLD: u32 = 4;
60pub const TF_TWO: u32 = 8;
61pub const TF_SLOP: u32 = 16;
62pub const TF_DECLINE: u32 = 32;
63pub const TF_REST: u32 = 64;
64pub const TF_HOLD_LONG: u32 = 128;
65
66pub const K_BOX: u16 = 0;
68pub const K_TEXT: u16 = 1;
69pub const K_BUTTON: u16 = 2;
70pub const K_CHECKBOX: u16 = 3;
71pub const K_RADIO: u16 = 4;
72pub const K_SWITCH: u16 = 5;
73pub const K_SLIDER: u16 = 6;
74pub const K_PROGRESS: u16 = 7;
75pub const K_TEXTBOX: u16 = 8;
76pub const K_MENU: u16 = 9;
77pub const K_MENUITEM: u16 = 10;
78pub const K_LIST: u16 = 11;
79pub const K_LISTITEM: u16 = 12;
80pub const K_TAB: u16 = 13;
81pub const K_CANVAS: u16 = 14;
82pub const K_ICON: u16 = 15;
83pub const K_IMAGE: u16 = 16;
84pub const K_COMBO: u16 = 17;
85pub const K_DIALOG: u16 = 18;
86pub const K_TITLEBAR: u16 = 19;
87pub const K_SWATCH: u16 = 20;
88pub const K_LINK: u16 = 21;
89pub const K_HEADING: u16 = 22;
91pub const K_KIND_COUNT: u16 = 23;
92pub const SS_HOVER: u16 = 1;
93pub const SS_PRESSED: u16 = 2;
94pub const SS_FOCUSED: u16 = 4;
95pub const SS_CHECKED: u16 = 8;
96pub const SS_DISABLED: u16 = 16;
97pub const SS_SELECTED: u16 = 32;
98pub const SS_OPEN: u16 = 64;
99
100pub const KIND_NAMES: [&str; 23] = [
102 "box", "text", "button", "checkbox", "radio", "switch", "slider", "progress", "textbox",
103 "menu", "menuitem", "list", "listitem", "tab", "canvas", "icon", "image", "combo", "dialog",
104 "titlebar", "swatch", "link", "heading",
105];
106pub const STATE_NAMES: [&str; 7] = ["hover", "pressed", "focused", "checked", "disabled", "selected", "open"];
108
109pub const L_BASE: u32 = 0;
111pub const L_DIALOG: u32 = 1;
112pub const L_POPUP: u32 = 2;
113pub const L_TIP: u32 = 3;
114pub const L_COUNT: usize = 4;
115
116pub const BOX_H: u32 = 0; pub const BOX_V: u32 = 1; pub const BOX_CENTER: u32 = 2; pub const BOX_END: u32 = 4; pub const BOX_XCENTER: u32 = 8; pub const BOX_XSTART: u32 = 16; pub const BOX_XEND: u32 = 32; pub const BOX_CARD: u32 = 64; pub const BOX_BG: u32 = 128; pub const BOX_CLIP: u32 = 256; pub const BOX_BLOCK: u32 = 512; pub const BOX_DISABLED: u32 = 1024; pub const BOX_LAYER: u32 = 2048; pub const BOX_WRAP: u32 = 4096; pub const BOX_FIXED: u32 = 8192; pub const GRID_H_START: u32 = 2; pub const GRID_H_CENTER: u32 = 4;
135pub const GRID_H_END: u32 = 6;
136pub const GRID_V_START: u32 = 8; pub const GRID_V_END: u32 = 16;
138pub const GRID_V_STRETCH: u32 = 24;
139pub const AL_DEFAULT: u32 = 0; pub const AL_START: u32 = 1;
142pub const AL_CENTER: u32 = 2;
143pub const AL_END: u32 = 3;
144pub const AL_STRETCH: u32 = 4;
145pub const PAD_SHIFT: u32 = 16; pub const PAD_2: u32 = 2 << 16;
147pub const PAD_4: u32 = 4 << 16;
148pub const PAD_8: u32 = 8 << 16;
149pub const PAD_12: u32 = 12 << 16;
150pub const PAD_16: u32 = 16 << 16;
151pub const PAD_20: u32 = 20 << 16;
152pub const PAD_24: u32 = 24 << 16;
153pub const PAD_32: u32 = 32 << 16;
154
155pub const fn pad(dip: u32) -> u32 {
157 dip << PAD_SHIFT
158}
159
160pub const EASE_OUT: u32 = 0; pub const EASE_LINEAR: u32 = 1;
163pub const EASE_IN: u32 = 2; pub const EASE_IN_OUT: u32 = 3; pub const EASE_OUT_CUBIC: u32 = 4; pub const EASE_OUT_BACK: u32 = 5; pub const SIZE_AUTO: i32 = 0;
170pub const SIZE_FILL: i32 = -1;
171
172pub const TS_CAPTION: u32 = 0; pub const TS_BODY: u32 = 1; pub const TS_BODY_STRONG: u32 = 2; pub const TS_SUBTITLE: u32 = 3; pub const TS_TITLE: u32 = 4; pub const TS_TITLE_LARGE: u32 = 5; pub const TS_DISPLAY: u32 = 6; pub const TS_COUNT: u32 = 7;
181pub const TX_SECONDARY: u32 = 0x100; pub const TX_TERTIARY: u32 = 0x200;
183pub const TX_ACCENT: u32 = 0x400; pub const TX_WRAP: u32 = 0x800; pub const TX_ELLIPSIS: u32 = 0x1000; pub const TX_CENTER: u32 = 0x2000; pub const TX_RIGHT: u32 = 0x4000;
188pub const TX_DISABLED: u32 = 0x8000;
189pub const TX_ON_ACCENT: u32 = 0x10000; pub const TX_HYPHENATE: u32 = 0x20000; pub const ST_DISABLED: u32 = 1;
194pub const ST_LARGE: u32 = 2; pub const ST_SUBTLE: u32 = 4; pub const ST_ACCENT: u32 = 8; pub const ST_CHECKED: u32 = 16; pub const ST_COMPACT: u32 = 32; pub const ST_NOFOCUS: u32 = 64; pub const ST_ICON_ONLY: u32 = 128; pub const ST_ALIGN_START: u32 = 256; pub const ST_ON_ACCENT: u32 = 512;
204pub const ST_MENU: u32 = 1024;
206pub const ST_ROUND: u32 = 2048;
208
209pub const UIC_CLOSE: u32 = 0x7FFF_0001; pub const UIC_THEME: u32 = 0x7FFF_0002; pub const UIC_DPI: u32 = 0x7FFF_0003; pub const UIC_ESCAPE: u32 = 0x7FFF_0004; pub const UIC_TIMER: u32 = 0x7FFF_0005; pub const UIC_WINCLOSE: u32 = 0x7FFF_0006; pub const UIC_DROP: u32 = 0x7FFF_0007; pub const UIC_JOB: u32 = 0x7FFF_0008; pub const UIC_WAKE: u32 = 0x7FFF_0009; pub const UIC_EXIT: u32 = 0x7FFF_000A; pub const UIC_OPEN: u32 = 0x7FFF_000B; pub const UIC_TRAY: u32 = 0x7FFF_000C; pub const UIC_NOTE: u32 = 0x7FFF_000D; pub const UIC_NOTE_GONE: u32 = 0x7FFF_000E; pub const UIC_ACTIVE: u32 = 0x7FFF_000F; pub const UIC_SUSPEND: u32 = 0x7FFF_0010; pub const UIC_SESSION_END: u32 = 0x7FFF_0011; pub const UIC_SETTINGS: u32 = 0x7FFF_0012; pub const UIC_DRAG_END: u32 = 0x7FFF_0013; pub const UIC_PERMISSION: u32 = 0x7FFF_0014; pub const UIC_HOTKEY: u32 = 0x7FFF_0015; pub const UIC_HOTKEY_LOST: u32 = 0x7FFF_0016; pub const UIC_PICK: u32 = 0x7FFF_0017; pub const UIC_SCREENSHOT: u32 = 0x7FFF_0018; pub const UIC_RECENT: u32 = 0x7FFF_0019; pub const UIC_SENSOR: u32 = 0x7FFF_001B; pub const UIC_LOCATION: u32 = 0x7FFF_001C; pub const TRAY_ACTIVATE: u32 = 1; pub const TRAY_SECONDARY: u32 = 2; pub const DS_START: u32 = 1; pub const DS_ACTIVE: u32 = 2; pub const DS_END: u32 = 4; pub const DS_HOVER: u32 = 8; pub const DS_DROP: u32 = 16; pub const AF_CUSTOM_TITLEBAR: u32 = 1;
254pub const AF_RESIZABLE: u32 = 2;
255pub const AF_DARK: u32 = 4; pub const AF_LIGHT: u32 = 8; pub const AF_SINGLE_INSTANCE: u32 = 16; pub const AF_LOG_FILE: u32 = 32; pub const AF_SAVE_STATE: u32 = 64; pub const T_BG: u32 = 0; pub const T_BG_ALT: u32 = 4;
265pub const T_LAYER: u32 = 8; pub const T_LAYER_STROKE: u32 = 12;
267pub const T_CARD: u32 = 16;
268pub const T_CARD_STROKE: u32 = 20;
269pub const T_CTRL: u32 = 24; pub const T_CTRL_HOVER: u32 = 28;
271pub const T_CTRL_PRESSED: u32 = 32;
272pub const T_CTRL_DISABLED: u32 = 36;
273pub const T_CTRL_STROKE: u32 = 40; pub const T_CTRL_STROKE2: u32 = 44; pub const T_STRONG_STROKE: u32 = 48; pub const T_SUBTLE: u32 = 52; pub const T_SUBTLE_HOVER: u32 = 56;
278pub const T_SUBTLE_PRESSED: u32 = 60;
279pub const T_SUBTLE_DISABLED: u32 = 64;
280pub const T_TEXT: u32 = 68; pub const T_TEXT2: u32 = 72;
282pub const T_TEXT3: u32 = 76;
283pub const T_TEXT_DISABLED: u32 = 80;
284pub const T_ACCENT: u32 = 84; pub const T_ACCENT_HOVER: u32 = 88;
286pub const T_ACCENT_PRESSED: u32 = 92;
287pub const T_ACCENT_DISABLED: u32 = 96;
288pub const T_ON_ACCENT: u32 = 100; pub const T_ON_ACCENT_DIS: u32 = 104;
290pub const T_ACCENT_TEXT: u32 = 108; pub const T_FOCUS_OUT: u32 = 112;
292pub const T_FOCUS_IN: u32 = 116;
293pub const T_FLYOUT: u32 = 120; pub const T_FLYOUT_STROKE: u32 = 124;
295pub const T_SMOKE: u32 = 128; pub const T_DIVIDER: u32 = 132;
297pub const T_INPUT_ACTIVE: u32 = 136; pub const T_CRIT: u32 = 140;
299pub const T_OK: u32 = 144;
300pub const T_WARN: u32 = 148;
301pub const T_INFO: u32 = 152;
302pub const T_CRIT_BG: u32 = 156;
303pub const T_OK_BG: u32 = 160;
304pub const T_WARN_BG: u32 = 164;
305pub const T_INFO_BG: u32 = 168;
306pub const T_CLOSE_HOVER: u32 = 172;
307pub const T_SHADOW: u32 = 176;
308pub const T_SCROLL: u32 = 180; pub const T_TRACK: u32 = 184; pub const T_KNOB: u32 = 188; pub const T_ALT_FILL: u32 = 192; pub const T_STRONG_FILL: u32 = 196; pub const T_COUNT: usize = 50;
314
315#[derive(Clone, Copy, Default, Debug)]
318pub struct Range {
319 pub min: i32,
320 pub max: i32,
321 pub step: i32,
322 pub flags: u32,
323}
324
325impl Range {
326 pub const fn new(min: i32, max: i32, step: i32, flags: u32) -> Range {
327 Range { min, max, step, flags }
328 }
329}
330
331pub const RG_VERT: u32 = 1; pub const RG_TICKS: u32 = 2;
333pub const RG_TIP: u32 = 4; pub const RG_LOG: u32 = 8;
337pub const LF_REORDER: u32 = 0x10000; pub const TK_CHECKER: u32 = 1; pub const TK_CUSTOM: u32 = 2; pub const TK_RECT: u32 = 4; pub const TK_MAXN: usize = 16;
344pub const ANG_360: u32 = 1; pub const PAN_UNIT: u32 = 1; pub const CW_HSV: u32 = 1; pub const CP_ALPHA: u32 = 1; pub const CP_FIELDS: u32 = 2; pub const CP_PIPETTE: u32 = 4; pub const PART_BASE: u32 = 0x6000_0000; #[derive(Clone, Default)]
354pub struct UiInput {
355 pub ev: u32, pub btn: u32, pub pressed: u32, pub released: u32, pub x: i32, pub y: i32,
361 pub press_x: i32, pub press_y: i32,
363 pub wheel_x: i32, pub wheel_y: i32,
365 pub mods: u32,
366 pub pts: alloc::vec::Vec<[i32; 2]>, pub rect: [i32; 4], pub dpi: i32,
369 pub key: u32, pub pressure: u32, pub ptype: u32, pub ppress: alloc::vec::Vec<u32>, pub tilt_x: i32, pub tilt_y: i32,
375}
376
377pub const UI_PRESSURE_ONE: u32 = 65535;
378
379pub const SC_V: u32 = 0x0100_0000; pub const SC_H: u32 = 0x0200_0000; pub const SC_NOBAR: u32 = 0x0400_0000; pub const SC_NOWHEEL: u32 = 0x0800_0000; pub const IB_INFO: u32 = 0;
385pub const IB_SUCCESS: u32 = 1;
386pub const IB_WARNING: u32 = 2;
387pub const IB_ERROR: u32 = 3;
388pub const DLG_NONE: u32 = 0;
389pub const DLG_PRIMARY: u32 = 1;
390pub const DLG_SECONDARY: u32 = 2;
391pub const DLG_CLOSE: u32 = 3;
392
393pub const TB_CAP_MASK: u32 = 0x007F_FFFF; pub const TB_HYPHENATE: u32 = 0x0080_0000; pub const TB_PASSWORD: u32 = 0x0100_0000; pub const TB_READONLY: u32 = 0x0200_0000; pub const TB_DIGITS: u32 = 0x0400_0000; pub const TB_MULTI: u32 = 0x0800_0000; pub const TB_SIGNED: u32 = 0x1000_0000; pub const TB_DECIMAL: u32 = 0x2000_0000; pub const TB_WRAP: u32 = 0x4000_0000; pub const TB_SPELL: u32 = 0x8000_0000; pub const UIT_CARET: u32 = 0x7FFE_0001; pub const UIT_TOOLTIP: u32 = 0x7FFE_0010; pub const FL_BELOW: u32 = 0;
409pub const FL_ABOVE: u32 = 1;
410pub const FL_RIGHT: u32 = 2;
411pub const FL_ALIGN_END: u32 = 4;
412pub const FL_MINW: u32 = 8;
413pub const FL_POINT: u32 = 16;
414pub const FL_OVER: u32 = 32;
415pub const CF_DISABLED: u32 = 1;
416pub const CF_CHECKED: u32 = 2;
417pub const CF_HIDDEN: u32 = 4;
418pub const FD_OPEN: u32 = 0;
419pub const FD_SAVE: u32 = 1;
420pub const FD_FOLDER: u32 = 2;
421pub const FD_EXT_SHIFT: u32 = 8;
422
423pub const WIN_MAX: usize = 8;
427pub const WF_TOOL: u32 = 1;
428pub const WF_DIALOG: u32 = 2;
429pub const WF_MODAL: u32 = 4;
430pub const WF_RESIZABLE: u32 = 8;
431pub const WF_NOCLOSE: u32 = 16;
432pub const WF_SYSFRAME: u32 = 32;
433pub const WF_NOACTIVATE: u32 = 64;
434pub const WF_AUTOHEIGHT: u32 = 128;
435pub const WF_KEYS: u32 = 256;
436pub const WF_TOUCH_HOLD: u32 = 512; pub const UWS_OPEN: u32 = 1;
438pub const UWS_VISIBLE: u32 = 2;
439pub const UWS_ACTIVE: u32 = 4;
440pub const UWS_MINIMIZED: u32 = 8;
441
442#[derive(Clone, Copy, Default, Debug, PartialEq, Eq)]
444pub struct WinRect {
445 pub x: i32,
446 pub y: i32,
447 pub w: i32,
448 pub h: i32,
449 pub flags: u32,
450}
451
452impl WinRect {
453 pub const fn new(x: i32, y: i32, w: i32, h: i32, flags: u32) -> WinRect {
454 WinRect { x, y, w, h, flags }
455 }
456}
457
458pub const WRF_POS: u32 = 1;
459pub const WRF_MAX: u32 = 2;
460pub const WRF_CHANGED: u32 = 4;
461pub const WRF_ABS: u32 = 8;
462
463pub const BTN_LEFT: u32 = 1;
465pub const BTN_RIGHT: u32 = 2;
466pub const BTN_MIDDLE: u32 = 3;
467pub const BTN_X1: u32 = 4;
468pub const BTN_X2: u32 = 5;
469pub const MOD_SHIFT: u32 = 1;
470pub const MOD_CTRL: u32 = 2;
471pub const MOD_ALT: u32 = 4;
472pub const MOD_SUPER: u32 = 8;
473pub const MOD_ALTGR: u32 = 16;
474pub const MOD_CAPS: u32 = 32;
475pub const MOD_NUM: u32 = 64;
476pub const PTR_MOUSE: u32 = 0;
477pub const PTR_PEN: u32 = 1;
478pub const PTR_ERASER: u32 = 2;
479pub const PTR_TOUCH: u32 = 3;
480
481pub const CUR_ARROW: u32 = 0;
483pub const CUR_IBEAM: u32 = 1;
484pub const CUR_HAND: u32 = 2;
485pub const CUR_CROSS: u32 = 3;
486pub const CUR_MOVE: u32 = 4;
487pub const CUR_WAIT: u32 = 5;
488pub const CUR_SIZE_NS: u32 = 6;
489pub const CUR_SIZE_WE: u32 = 7;
490pub const CUR_SIZE_NWSE: u32 = 8;
491pub const CUR_SIZE_NESW: u32 = 9;
492pub const CUR_NONE: u32 = 10;
493pub const CUR_COUNT: u32 = 11;
494pub const CUR_CUSTOM: u32 = 15; pub const CUR_USER_MAX: u32 = 32; pub const CUR_MAX_PX: i32 = 256;
497
498pub const FONT_REG: u32 = 0;
500pub const FONT_SEMI: u32 = 1;
501pub const FONT_BOLD: u32 = 2;
502pub const FONT_ICON: u32 = 3;
503
504pub const CLIP_TEXT: u32 = 1;
506pub const CLIP_PNG: u32 = 2;
507pub const CLIP_IMAGE: u32 = 3;
508pub const CLIP_HTML: u32 = 4;
510pub const CLIP_RTF: u32 = 5;
512pub const CLIP_DOCX: u32 = 6;
514
515pub const SM_DLG_MIN: u32 = 0;
517pub const SM_DLG_MAX: u32 = 1;
518pub const SM_DLG_MARGIN: u32 = 2;
519pub const SM_DLG_CONTENT_BOX: u32 = 3;
520pub const SM_DLG_CONTENT_GAP: u32 = 4;
521pub const SM_DLG_TITLE_TS: u32 = 5;
522pub const SM_DLG_FOOTER_BOX: u32 = 6;
523pub const SM_DLG_FOOTER_GAP: u32 = 7;
524pub const SM_SB_H: u32 = 8;
525pub const SM_SB_PAD: u32 = 9;
526pub const SM_SB_GAP: u32 = 10;
527pub const SM_TB_H: u32 = 11;
528pub const SM_TB_H_LARGE: u32 = 12;
529pub const SM_TB_PAD: u32 = 13;
530pub const SM_TB_ICON: u32 = 14;
531pub const SM_TB_TITLE_TS: u32 = 15;
532pub const SM_CAP_W: u32 = 16;
533pub const SM_CAP_W_TOOL: u32 = 17;
534pub const SM_WC_TITLE_PAD: u32 = 18;
535pub const SM_WC_TITLE_GAP: u32 = 19;
536pub const SM_GRIP: u32 = 20;
537pub const SM_GRIP_CORNER: u32 = 21;
538pub const SM_WIN_TBH_TOOL: u32 = 22;
539pub const SM_WIN_TBH_DIALOG: u32 = 23;
540pub const SM_CAP_LEFT: u32 = 24;
541pub const SM_DLG_BTN_ORDER: u32 = 25;
542pub const SM_DOCK_HDR: u32 = 26; pub const SM_DOCK_BTN: u32 = 27; pub const SM_COUNT: u32 = 28;
545pub const MIF_DISABLED: u32 = 1;
547pub const MIF_CHECKED: u32 = 2;
548pub const MIF_SUB: u32 = 4;
549pub const MIF_OPEN: u32 = 8;
550pub const MIF_SELECTED: u32 = 16;
551pub const MIF_LIST: u32 = 32;
552pub const MIF_TWOCOL: u32 = 64;
553
554pub const BADGE_NEUTRAL: u32 = 0;
557pub const BADGE_INFO: u32 = 1;
558pub const BADGE_OK: u32 = 2;
559pub const BADGE_WARN: u32 = 3;
560pub const BADGE_CRIT: u32 = 4;
561pub const BADGE_ACCENT: u32 = 5;
562pub const GC_RIGHT: u32 = 1; pub const GC_CENTER: u32 = 2;
565pub const GC_NOSORT: u32 = 4; pub const GC_FILL: u32 = 8; pub const GH_SORT_ASC: u32 = 1;
569pub const GH_SORT_DESC: u32 = 2;
570pub const GH_LAST: u32 = 4; pub const GH_RIGHT: u32 = 8; pub const GR_FOCUS: u32 = 1; pub const GR_STRIPE: u32 = 2; pub const GR_CURRENT: u32 = 4; pub const NAV_COMPACT: u32 = 1; pub const SEG_FIRST: u32 = 1; pub const SEG_LAST: u32 = 2;
580pub const WS_TODO: i32 = 0; pub const WS_CURRENT: i32 = 1;
582pub const WS_DONE: i32 = 2;
583pub const WS_ERROR: i32 = 3;
584pub const CBI_SEP: u32 = 0x1_0000; pub const CBI_END: u32 = 0x2_0000; pub const UIT_TOAST: u32 = 0x7FFE_0020; pub const UIT_SPIN: u32 = 0x7FFE_0021; pub const UIT_SPELL: u32 = 0x7FFE_0030; pub const SPELL_OFF: u32 = 0; pub const SPELL_LOADING: u32 = 1; pub const SPELL_READY: u32 = 2; pub const SPELL_NONE: u32 = 3; pub const UWS_FULLSCREEN: u32 = 16;
597pub const UIC_FULLSCREEN: u32 = 0x7FFF_001A;