pub mod category {
pub const TREE: u8 = 0x01;
pub const PARAMETER: u8 = 0x02;
pub const EVENT: u8 = 0x03;
pub const META: u8 = 0x04;
}
pub mod tree {
pub const CREATE_NODE: u8 = 0x01;
pub const DELETE_NODE: u8 = 0x02;
pub const INSERT_CHILD: u8 = 0x03;
pub const REMOVE_CHILD: u8 = 0x04;
pub const MOVE_CHILD: u8 = 0x05;
}
pub mod parameter {
pub const SET_PROPERTY: u8 = 0x01;
pub const SET_DESIGN_TOKEN: u8 = 0x02;
pub const SET_TEXT: u8 = 0x03;
pub const SET_DATE: u8 = 0x04;
}
pub mod event {
pub const POINTER_DOWN: u8 = 0x01;
pub const POINTER_MOVE: u8 = 0x02;
pub const POINTER_UP: u8 = 0x03;
pub const KEY_DOWN: u8 = 0x04;
pub const KEY_UP: u8 = 0x05;
pub const VALUE_CHANGED: u8 = 0x06;
pub const TEXT_CHANGED: u8 = 0x07;
pub const FOCUS_CHANGED: u8 = 0x08;
pub const EDITING_CHANGED: u8 = 0x09;
pub const SUBMIT: u8 = 0x0A;
pub const SCROLL: u8 = 0x0B;
pub const WHEEL: u8 = 0x0C;
pub const DATE_CHANGED: u8 = 0x0D;
pub const NAVIGATE: u8 = 0x0E;
pub const MEDIA_PLAY_STATE_CHANGED: u8 = 0x0F;
pub const MEDIA_TIME_UPDATED: u8 = 0x10;
pub const MEDIA_ENDED: u8 = 0x11;
pub const MEDIA_VOLUME_CHANGED: u8 = 0x12;
pub const FIT_CHANGED: u8 = 0x13;
}
pub mod meta {
pub const RESET: u8 = 0x01;
pub const ENVIRONMENT: u8 = 0x02;
pub const RESYNC: u8 = 0x03;
pub const PING: u8 = 0x04;
pub const PONG: u8 = 0x05;
}
pub mod environment {
pub const VIEWPORT_WIDTH: u16 = 0x0001;
pub const VIEWPORT_HEIGHT: u16 = 0x0002;
pub const ROUTE: u16 = 0x0003;
}
pub mod flag {
pub const POINTER_SECONDARY: u16 = 0x0001;
pub const HOVER_ENTER: u16 = 0x0001;
pub const HOVER_LEAVE: u16 = 0x0002;
pub const KEY_REPEAT: u16 = 0x0002;
pub const NAVIGATE_URL: u16 = 0x0001;
}
pub mod listener {
pub const POINTER_DOWN: u32 = 1 << 0;
pub const POINTER_MOVE: u32 = 1 << 1;
pub const POINTER_UP: u32 = 1 << 2;
pub const KEY_DOWN: u32 = 1 << 3;
pub const KEY_UP: u32 = 1 << 4;
pub const FOCUS: u32 = 1 << 5;
pub const EDITING: u32 = 1 << 6;
pub const SUBMIT: u32 = 1 << 7;
pub const SCROLL: u32 = 1 << 8;
pub const WHEEL: u32 = 1 << 9;
pub const POINTER: u32 = POINTER_DOWN | POINTER_MOVE | POINTER_UP;
}
pub mod border_edges {
pub const TOP: u32 = 1 << 0;
pub const LEADING: u32 = 1 << 1;
pub const BOTTOM: u32 = 1 << 2;
pub const TRAILING: u32 = 1 << 3;
pub const ALL: u32 = TOP | LEADING | BOTTOM | TRAILING;
}
pub mod value_type {
pub const U8: u8 = 0x01;
pub const U32: u8 = 0x02;
pub const I32: u8 = 0x03;
pub const F32: u8 = 0x04;
pub const STRING: u8 = 0x05;
pub const ENUM: u8 = 0x06;
pub const COLOR: u8 = 0x07;
pub const DESIGN_TOKEN: u8 = 0x08;
pub const LIST: u8 = 0x09;
}
pub mod component_type {
pub const TEXT: u16 = 0x01;
pub const IMAGE: u16 = 0x02;
pub const COLOR: u16 = 0x03;
pub const SHAPE: u16 = 0x04;
pub const DIVIDER: u16 = 0x05;
pub const SPACER: u16 = 0x06;
pub const PROGRESS_VIEW: u16 = 0x07;
pub const GAUGE: u16 = 0x08;
pub const AUDIO: u16 = 0x09;
pub const VIDEO: u16 = 0x0A;
pub const ICON: u16 = 0x0B;
pub const VSTACK: u16 = 0x10;
pub const HSTACK: u16 = 0x11;
pub const ZSTACK: u16 = 0x12;
pub const GRID: u16 = 0x13;
pub const SCROLLVIEW: u16 = 0x14;
pub const LAZY_VGRID: u16 = 0x15;
pub const LAZY_HGRID: u16 = 0x16;
pub const SIZE_THAT_FITS: u16 = 0x17;
pub const LAZY_VSTACK: u16 = 0x1B;
pub const LAZY_HSTACK: u16 = 0x1C;
pub const GRID_ROW: u16 = 0x1D;
pub const BUTTON: u16 = 0x20;
pub const TEXT_FIELD: u16 = 0x21;
pub const TEXT_EDITOR: u16 = 0x22;
pub const TOGGLE: u16 = 0x24;
pub const SLIDER: u16 = 0x25;
pub const STEPPER: u16 = 0x26;
pub const DATE_PICKER: u16 = 0x27;
pub const PICKER: u16 = 0x28;
pub const MENU: u16 = 0x29;
pub const COLOR_PICKER: u16 = 0x2A;
pub const COMMENT: u16 = 0x7F;
}
pub mod property_id {
pub const SPACING: u16 = 0x0001;
pub const ALIGNMENT: u16 = 0x0002;
pub const CONTENT_MARGINS: u16 = 0x0005;
pub const TEXT: u16 = 0x000A;
pub const LINE_LIMIT: u16 = 0x000B;
pub const TEXT_ALIGNMENT: u16 = 0x000C;
pub const TRUNCATION_MODE: u16 = 0x000D;
pub const SHAPE_KIND: u16 = 0x0006;
pub const OFFSET_X: u16 = 0x000E;
pub const OFFSET_Y: u16 = 0x000F;
pub const POSITION_X: u16 = 0x0010;
pub const POSITION_Y: u16 = 0x0011;
pub const MIN_WIDTH: u16 = 0x0012;
pub const IDEAL_WIDTH: u16 = 0x0013;
pub const MAX_WIDTH: u16 = 0x0014;
pub const MIN_HEIGHT: u16 = 0x0015;
pub const IDEAL_HEIGHT: u16 = 0x0016;
pub const MAX_HEIGHT: u16 = 0x0017;
pub const FIXED_SIZE_HORIZONTAL: u16 = 0x0018;
pub const FIXED_SIZE_VERTICAL: u16 = 0x0019;
pub const LAYOUT_PRIORITY: u16 = 0x001A;
pub const ASPECT_RATIO: u16 = 0x001B;
pub const CONTENT_MODE: u16 = 0x001C;
pub const MINIMUM_SCALE_FACTOR: u16 = 0x001D;
pub const GRID_COLUMNS: u16 = 0x001E;
pub const GRID_ROWS: u16 = 0x001F;
pub const GRID_TRACKS: u16 = 0x0020;
pub const BACKGROUND_COLOR: u16 = 0x1001;
pub const IMAGE_SOURCE: u16 = 0x1002;
pub const AUDIO_SOURCE: u16 = 0x1033;
pub const VIDEO_SOURCE: u16 = 0x1034;
pub const PLAYBACK_STATE: u16 = 0x1035;
pub const MEDIA_POSITION: u16 = 0x1036;
pub const MEDIA_VOLUME: u16 = 0x1037;
pub const ICON_NAME: u16 = 0x1038;
pub const BORDER_WIDTH: u16 = 0x1003;
pub const BORDER_COLOR: u16 = 0x1004;
pub const BORDER_RADIUS: u16 = 0x1005;
pub const PADDING_STYLE: u16 = 0x1006;
pub const FONT_SIZE: u16 = 0x1007;
pub const FONT_WEIGHT: u16 = 0x1008;
pub const FONT_FAMILY: u16 = 0x1009;
pub const COLOR: u16 = 0x100A;
pub const WIDTH: u16 = 0x100B;
pub const HEIGHT: u16 = 0x100C;
pub const OPACITY: u16 = 0x100D;
pub const VISIBLE: u16 = 0x100E;
pub const Z_INDEX: u16 = 0x100F;
pub const CLIPS_TO_BOUNDS: u16 = 0x1010;
pub const PADDING: u16 = 0x1011;
pub const PADDING_TOP: u16 = 0x1012;
pub const PADDING_RIGHT: u16 = 0x1013;
pub const PADDING_BOTTOM: u16 = 0x1014;
pub const PADDING_LEFT: u16 = 0x1015;
pub const BORDER_EDGES: u16 = 0x1016;
pub const FONT_STYLE: u16 = 0x1017;
pub const FONT_DESIGN: u16 = 0x1018;
pub const FONT_WIDTH: u16 = 0x1019;
pub const KERNING: u16 = 0x101A;
pub const TRACKING: u16 = 0x101B;
pub const BASELINE_OFFSET: u16 = 0x101C;
pub const LINE_SPACING: u16 = 0x101D;
pub const TEXT_CASE: u16 = 0x101E;
pub const UNDERLINE: u16 = 0x101F;
pub const STRIKETHROUGH: u16 = 0x1020;
pub const SHADOW_COLOR: u16 = 0x1021;
pub const SHADOW_RADIUS: u16 = 0x1022;
pub const SHADOW_X: u16 = 0x1023;
pub const SHADOW_Y: u16 = 0x1024;
pub const BLUR_RADIUS: u16 = 0x1025;
pub const SATURATION: u16 = 0x1026;
pub const CONTRAST: u16 = 0x1027;
pub const BRIGHTNESS: u16 = 0x1028;
pub const GRAYSCALE: u16 = 0x1029;
pub const HUE_ROTATION: u16 = 0x102A;
pub const COLOR_MULTIPLY: u16 = 0x102B;
pub const COLOR_INVERT: u16 = 0x102C;
pub const ROTATION_DEGREES: u16 = 0x102D;
pub const SCALE: u16 = 0x102E;
pub const ALLOWS_HIT_TESTING: u16 = 0x102F;
pub const TINT: u16 = 0x1030;
pub const TRANSITION: u16 = 0x1031;
pub const FIT_QUERY: u16 = 0x1039;
pub const TEXT_STYLE: u16 = 0x1032;
pub const ROLE: u16 = 0x2001;
pub const STATE: u16 = 0x2002;
pub const ENABLED: u16 = 0x2003;
pub const SELECTED: u16 = 0x2004;
pub const EVENT_LISTENERS: u16 = 0x2005;
pub const VALUE: u16 = 0x2006;
pub const MIN_VALUE: u16 = 0x2007;
pub const MAX_VALUE: u16 = 0x2008;
pub const LABEL: u16 = 0x200A;
pub const PROMPT: u16 = 0x200B;
pub const STEP_VALUE: u16 = 0x2009;
pub const CONTROL_SIZE: u16 = 0x200C;
pub const IS_SECURE: u16 = 0x200D;
pub const PROGRESS: u16 = 0x200E;
pub const IS_INDETERMINATE: u16 = 0x200F;
pub const SELECTION: u16 = 0x2010;
pub const COLOR_VALUE: u16 = 0x2012;
pub const DATE_PICKER_MODE: u16 = 0x2013;
pub const PICKER_STYLE: u16 = 0x2014;
pub const ACTION_ID: u16 = 0x2016;
pub const BINDING_ID: u16 = 0x2017;
pub const TOGGLE_STYLE: u16 = 0x2018;
pub const ROUTE: u16 = 0x2019;
pub const NAV_DEPTH: u16 = 0x201A;
pub const NAV_CHROME: u16 = 0x201B;
}
pub fn value_type_for(prop: u16) -> u8 {
match prop {
property_id::COLOR
| property_id::BACKGROUND_COLOR
| property_id::BORDER_COLOR
| property_id::COLOR_VALUE
| property_id::COLOR_MULTIPLY
| property_id::SHADOW_COLOR
| property_id::TINT => value_type::COLOR,
property_id::EVENT_LISTENERS | property_id::BORDER_EDGES => value_type::U32,
property_id::SELECTED
| property_id::IS_SECURE
| property_id::IS_INDETERMINATE
| property_id::VISIBLE
| property_id::ENABLED
| property_id::CLIPS_TO_BOUNDS
| property_id::UNDERLINE
| property_id::STRIKETHROUGH
| property_id::COLOR_INVERT
| property_id::ALLOWS_HIT_TESTING
| property_id::FIXED_SIZE_HORIZONTAL
| property_id::FIXED_SIZE_VERTICAL => value_type::U8,
property_id::LABEL
| property_id::PROMPT
| property_id::FONT_FAMILY
| property_id::IMAGE_SOURCE
| property_id::AUDIO_SOURCE
| property_id::VIDEO_SOURCE
| property_id::ICON_NAME
| property_id::ROUTE => value_type::STRING,
property_id::LINE_LIMIT
| property_id::SELECTION
| property_id::ACTION_ID
| property_id::BINDING_ID
| property_id::NAV_DEPTH => value_type::U32,
_ => value_type::F32,
}
}
pub mod size {
pub const FILL: f32 = -1.0;
pub const HUG_CONTENT: f32 = -2.0;
}
pub mod role {
pub const NONE: u8 = 0;
pub const HEADER: u8 = 1;
pub const PARAGRAPH: u8 = 2;
pub const LIST: u8 = 3;
pub const LIST_ITEM: u8 = 4;
pub const SUMMARY: u8 = 5;
pub const BANNER: u8 = 6;
pub const NAVIGATION: u8 = 7;
pub const MAIN: u8 = 8;
pub const CONTENT_INFO: u8 = 9;
pub const COMPLEMENTARY: u8 = 10;
pub const ARTICLE: u8 = 11;
pub const SECTION: u8 = 12;
pub const SEARCH: u8 = 13;
}
pub mod text_style {
pub const LARGE_TITLE: u8 = 0;
pub const TITLE: u8 = 1;
pub const TITLE2: u8 = 2;
pub const TITLE3: u8 = 3;
pub const HEADLINE: u8 = 4;
pub const SUBHEADLINE: u8 = 5;
pub const BODY: u8 = 6;
pub const CALLOUT: u8 = 7;
pub const FOOTNOTE: u8 = 8;
pub const CAPTION: u8 = 9;
pub const CAPTION2: u8 = 10;
}
pub mod icon {
pub const HOME: &str = "home";
pub const SETTINGS: &str = "settings";
pub const SEARCH: &str = "search";
pub const MENU: &str = "menu";
pub const CLOSE: &str = "close";
pub const CLOUD: &str = "cloud";
pub const CHEVRON_LEFT: &str = "chevron-left";
pub const CHEVRON_RIGHT: &str = "chevron-right";
pub const CHEVRON_UP: &str = "chevron-up";
pub const CHEVRON_DOWN: &str = "chevron-down";
pub const ARROW_LEFT: &str = "arrow-left";
pub const ARROW_RIGHT: &str = "arrow-right";
pub const ADD: &str = "add";
pub const REMOVE: &str = "remove";
pub const CHECK: &str = "check";
pub const EDIT: &str = "edit";
pub const DELETE: &str = "delete";
pub const SAVE: &str = "save";
pub const SHARE: &str = "share";
pub const DOWNLOAD: &str = "download";
pub const UPLOAD: &str = "upload";
pub const REFRESH: &str = "refresh";
pub const PLAY: &str = "play";
pub const PAUSE: &str = "pause";
pub const STOP: &str = "stop";
pub const SKIP_BACK: &str = "skip-back";
pub const SKIP_FORWARD: &str = "skip-forward";
pub const VOLUME: &str = "volume";
pub const VOLUME_MUTE: &str = "volume-mute";
pub const SHUFFLE: &str = "shuffle";
pub const REPEAT: &str = "repeat";
pub const INFO: &str = "info";
pub const WARNING: &str = "warning";
pub const ERROR: &str = "error";
pub const SUCCESS: &str = "success";
pub const HEART: &str = "heart";
pub const STAR: &str = "star";
pub const USER: &str = "user";
pub const USERS: &str = "users";
pub const LOCK: &str = "lock";
pub const LOGOUT: &str = "logout";
pub const BELL: &str = "bell";
pub const FOLDER: &str = "folder";
pub const FILE: &str = "file";
pub const IMAGE: &str = "image";
pub const MUSIC: &str = "music";
pub const GRID: &str = "grid";
pub const LIST: &str = "list";
pub const FILTER: &str = "filter";
pub const NAMES: &[&str] = &[
HOME, SETTINGS, SEARCH, MENU, CLOSE, CLOUD, CHEVRON_LEFT, CHEVRON_RIGHT,
CHEVRON_UP, CHEVRON_DOWN, ARROW_LEFT, ARROW_RIGHT, ADD, REMOVE, CHECK,
EDIT, DELETE, SAVE, SHARE, DOWNLOAD, UPLOAD, REFRESH, PLAY, PAUSE, STOP,
SKIP_BACK, SKIP_FORWARD, VOLUME, VOLUME_MUTE, SHUFFLE, REPEAT, INFO,
WARNING, ERROR, SUCCESS, HEART, STAR, USER, USERS, LOCK, LOGOUT, BELL,
FOLDER, FILE, IMAGE, MUSIC, GRID, LIST, FILTER,
];
pub fn is_canonical(name: &str) -> bool {
NAMES.contains(&name)
}
}
pub const APPEND: u32 = u32::MAX;