SYMBOL INDEX (524 symbols across 18 files) FILE: src/config.rs type ConfigStore (line 17) | pub struct ConfigStore { method get_config_path (line 57) | fn get_config_path() -> PathBuf { method write_config_data (line 63) | fn write_config_data(&mut self) -> Result<()> { method new (line 108) | pub fn new() -> Self { method get_hotkey (line 169) | pub fn get_hotkey(&self) -> &str { method set_hotkey (line 173) | pub fn set_hotkey(&mut self, hotkey: &str) { method get_method (line 179) | pub fn get_method(&self) -> &str { method set_method (line 183) | pub fn set_method(&mut self, method: &str) { method is_vietnamese_app (line 188) | pub fn is_vietnamese_app(&self, app_name: &str) -> bool { method is_english_app (line 192) | pub fn is_english_app(&self, app_name: &str) -> bool { method get_vn_apps (line 196) | pub fn get_vn_apps(&self) -> Vec { method get_en_apps (line 200) | pub fn get_en_apps(&self) -> Vec { method add_vietnamese_app (line 204) | pub fn add_vietnamese_app(&mut self, app_name: &str) { method add_english_app (line 214) | pub fn add_english_app(&mut self, app_name: &str) { method remove_vietnamese_app (line 224) | pub fn remove_vietnamese_app(&mut self, app_name: &str) { method remove_english_app (line 229) | pub fn remove_english_app(&mut self, app_name: &str) { method is_allowed_word (line 234) | pub fn is_allowed_word(&self, word: &str) -> bool { method is_auto_toggle_enabled (line 238) | pub fn is_auto_toggle_enabled(&self) -> bool { method set_auto_toggle_enabled (line 242) | pub fn set_auto_toggle_enabled(&mut self, flag: bool) { method is_gox_mode_enabled (line 247) | pub fn is_gox_mode_enabled(&self) -> bool { method set_gox_mode_enabled (line 251) | pub fn set_gox_mode_enabled(&mut self, flag: bool) { method is_w_literal_enabled (line 256) | pub fn is_w_literal_enabled(&self) -> bool { method set_w_literal_enabled (line 260) | pub fn set_w_literal_enabled(&mut self, flag: bool) { method get_ui_language (line 265) | pub fn get_ui_language(&self) -> &str { method set_ui_language (line 269) | pub fn set_ui_language(&mut self, lang: &str) { method is_macro_enabled (line 274) | pub fn is_macro_enabled(&self) -> bool { method set_macro_enabled (line 278) | pub fn set_macro_enabled(&mut self, flag: bool) { method is_macro_autocap_enabled (line 283) | pub fn is_macro_autocap_enabled(&self) -> bool { method set_macro_autocap_enabled (line 287) | pub fn set_macro_autocap_enabled(&mut self, flag: bool) { method get_macro_table (line 292) | pub fn get_macro_table(&self) -> &BTreeMap { method add_macro (line 296) | pub fn add_macro(&mut self, from: String, to: String) { method delete_macro (line 301) | pub fn delete_macro(&mut self, from: &String) { method save (line 307) | fn save(&mut self) { function parse_vec_string (line 32) | fn parse_vec_string(line: String) -> Vec { function parse_kv_string (line 39) | pub(crate) fn parse_kv_string(line: &str) -> Option<(String, String)> { function build_kv_string (line 48) | pub(crate) fn build_kv_string(k: &str, v: &str) -> String { constant HOTKEY_CONFIG_KEY (line 312) | const HOTKEY_CONFIG_KEY: &str = "hotkey"; constant TYPING_METHOD_CONFIG_KEY (line 313) | const TYPING_METHOD_CONFIG_KEY: &str = "method"; constant VN_APPS_CONFIG_KEY (line 314) | const VN_APPS_CONFIG_KEY: &str = "vn-apps"; constant EN_APPS_CONFIG_KEY (line 315) | const EN_APPS_CONFIG_KEY: &str = "en-apps"; constant MACRO_ENABLED_CONFIG_KEY (line 316) | const MACRO_ENABLED_CONFIG_KEY: &str = "is_macro_enabled"; constant MACRO_AUTOCAP_ENABLED_CONFIG_KEY (line 317) | const MACRO_AUTOCAP_ENABLED_CONFIG_KEY: &str = "is_macro_autocap_enabled"; constant AUTOS_TOGGLE_ENABLED_CONFIG_KEY (line 318) | const AUTOS_TOGGLE_ENABLED_CONFIG_KEY: &str = "is_auto_toggle_enabled"; constant MACROS_CONFIG_KEY (line 319) | const MACROS_CONFIG_KEY: &str = "macros"; constant GOX_MODE_CONFIG_KEY (line 320) | const GOX_MODE_CONFIG_KEY: &str = "is_gox_mode_enabled"; constant W_LITERAL_CONFIG_KEY (line 321) | const W_LITERAL_CONFIG_KEY: &str = "is_w_literal_enabled"; constant UI_LANGUAGE_CONFIG_KEY (line 322) | const UI_LANGUAGE_CONFIG_KEY: &str = "ui_language"; constant ALLOWED_WORDS_CONFIG_KEY (line 323) | const ALLOWED_WORDS_CONFIG_KEY: &str = "allowed_words"; FILE: src/hotkey.rs type Hotkey (line 8) | pub struct Hotkey { method from_str (line 14) | pub fn from_str(input: &str) -> Self { method is_match (line 36) | pub fn is_match(&self, mut modifiers: KeyModifier, keycode: Option (KeyModifier, Option) { method fmt (line 52) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function test_parse (line 78) | fn test_parse() { function test_parse_long_input (line 89) | fn test_parse_long_input() { function test_parse_with_named_keycode (line 102) | fn test_parse_with_named_keycode() { function test_can_match_with_or_without_capslock (line 113) | fn test_can_match_with_or_without_capslock() { function test_parse_with_just_modifiers (line 125) | fn test_parse_with_just_modifiers() { function test_display (line 136) | fn test_display() { FILE: src/input.rs constant MAX_POSSIBLE_WORD_LENGTH (line 20) | const MAX_POSSIBLE_WORD_LENGTH: usize = 10; constant MAX_DUPLICATE_LENGTH (line 21) | const MAX_DUPLICATE_LENGTH: usize = 4; constant TONE_DUPLICATE_PATTERNS (line 22) | const TONE_DUPLICATE_PATTERNS: [&str; 17] = [ constant PREDEFINED_CHARS (line 32) | pub const PREDEFINED_CHARS: [char; 47] = [ constant STOP_TRACKING_WORDS (line 38) | pub const STOP_TRACKING_WORDS: [&str; 4] = [";", "'", "?", "/"]; type CapPattern (line 43) | enum CapPattern { function detect_cap_pattern (line 49) | fn detect_cap_pattern(s: &str) -> CapPattern { function apply_cap_pattern (line 63) | fn apply_cap_pattern(s: &str, pattern: CapPattern) -> String { function mask_standalone_w (line 77) | fn mask_standalone_w(buffer: &str) -> String { function get_key_from_char (line 110) | pub fn get_key_from_char(c: char) -> rdev::Key { function build_keyboard_layout_map (line 166) | fn build_keyboard_layout_map(map: &mut HashMap) { function rebuild_keyboard_layout_map (line 178) | pub fn rebuild_keyboard_layout_map() { type TypingMethod (line 196) | pub enum TypingMethod { type Err (line 203) | type Err = (); method from_str (line 205) | fn from_str(s: &str) -> Result { method fmt (line 215) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function get_diff_parts (line 250) | pub fn get_diff_parts<'a>(old: &str, new: &'a str) -> (usize, &'a str) { type InputState (line 288) | pub struct InputState { method new (line 310) | pub fn new() -> Self { method update_active_app (line 334) | pub fn update_active_app(&mut self) -> Option<()> { method set_temporary_disabled (line 352) | pub fn set_temporary_disabled(&mut self) { method is_gox_mode_enabled (line 356) | pub fn is_gox_mode_enabled(&self) -> bool { method is_w_literal_enabled (line 360) | pub fn is_w_literal_enabled(&self) -> bool { method toggle_w_literal (line 364) | pub fn toggle_w_literal(&mut self) { method is_enabled (line 372) | pub fn is_enabled(&self) -> bool { method is_tracking (line 376) | pub fn is_tracking(&self) -> bool { method is_buffer_empty (line 380) | pub fn is_buffer_empty(&self) -> bool { method new_word (line 384) | pub fn new_word(&mut self) { method mark_resumable (line 397) | pub fn mark_resumable(&mut self) { method try_resume_previous_word (line 403) | pub fn try_resume_previous_word(&mut self) -> bool { method get_macro_target (line 414) | pub fn get_macro_target(&self) -> Option { method is_macro_autocap_enabled (line 433) | pub fn is_macro_autocap_enabled(&self) -> bool { method toggle_macro_autocap (line 437) | pub fn toggle_macro_autocap(&mut self) { method get_typing_buffer (line 445) | pub fn get_typing_buffer(&self) -> &str { method get_displaying_word (line 449) | pub fn get_displaying_word(&self) -> &str { method stop_tracking (line 453) | pub fn stop_tracking(&mut self) { method toggle_vietnamese (line 458) | pub fn toggle_vietnamese(&mut self) { method add_vietnamese_app (line 470) | pub fn add_vietnamese_app(&mut self, app_name: &str) { method add_english_app (line 474) | pub fn add_english_app(&mut self, app_name: &str) { method remove_vietnamese_app (line 478) | pub fn remove_vietnamese_app(&mut self, app_name: &str) { method remove_english_app (line 485) | pub fn remove_english_app(&mut self, app_name: &str) { method get_vn_apps (line 489) | pub fn get_vn_apps(&self) -> Vec { method get_en_apps (line 493) | pub fn get_en_apps(&self) -> Vec { method set_method (line 497) | pub fn set_method(&mut self, method: TypingMethod) { method get_method (line 509) | pub fn get_method(&self) -> TypingMethod { method set_hotkey (line 513) | pub fn set_hotkey(&mut self, key_sequence: &str) { method get_hotkey (line 521) | pub fn get_hotkey(&self) -> &Hotkey { method is_auto_toggle_enabled (line 525) | pub fn is_auto_toggle_enabled(&self) -> bool { method toggle_auto_toggle (line 529) | pub fn toggle_auto_toggle(&mut self) { method is_macro_enabled (line 537) | pub fn is_macro_enabled(&self) -> bool { method toggle_macro_enabled (line 541) | pub fn toggle_macro_enabled(&mut self) { method get_macro_table (line 549) | pub fn get_macro_table(&self) -> &BTreeMap { method delete_macro (line 553) | pub fn delete_macro(&mut self, from: &String) { method add_macro (line 558) | pub fn add_macro(&mut self, from: String, to: String) { method export_macros_to_file (line 566) | pub fn export_macros_to_file(&self, path: &str) -> std::io::Result<()> { method import_macros_from_file (line 577) | pub fn import_macros_from_file(&mut self, path: &str) -> std::io::Resu... method should_transform_keys (line 598) | pub fn should_transform_keys(&self, c: &char) -> bool { method transform_keys (line 602) | pub fn transform_keys(&self) -> Result<(String, TransformResult), ()> { method should_send_keyboard_event (line 660) | pub fn should_send_keyboard_event(&self, word: &str) -> bool { method should_dismiss_selection_if_needed (line 664) | pub fn should_dismiss_selection_if_needed(&self) -> bool { method get_backspace_count (line 669) | pub fn get_backspace_count(&self, is_delete: bool) -> usize { method replace (line 684) | pub fn replace(&mut self, buf: String) { method push (line 688) | pub fn push(&mut self, c: char) { method pop (line 705) | pub fn pop(&mut self) { method clear (line 713) | pub fn clear(&mut self) { method get_previous_word (line 720) | pub fn get_previous_word(&self) -> &str { method clear_previous_word (line 724) | pub fn clear_previous_word(&mut self) { method previous_word_is_stop_tracking_words (line 728) | pub fn previous_word_is_stop_tracking_words(&self) -> bool { method should_stop_tracking (line 732) | pub fn should_stop_tracking(&mut self) -> bool { method stop_tracking_if_needed (line 753) | pub fn stop_tracking_if_needed(&mut self) { method get_previous_modifiers (line 760) | pub fn get_previous_modifiers(&self) -> KeyModifier { method save_previous_modifiers (line 764) | pub fn save_previous_modifiers(&mut self, modifiers: KeyModifier) { method is_allowed_word (line 768) | pub fn is_allowed_word(&self, word: &str) -> bool { function tone_on_vowel_preserves_consonant_prefix (line 782) | fn tone_on_vowel_preserves_consonant_prefix() { function circumflex_application (line 790) | fn circumflex_application() { function multi_char_prefix_preserved (line 798) | fn multi_char_prefix_preserved() { function longer_common_prefix (line 806) | fn longer_common_prefix() { function identical_strings_no_op (line 816) | fn identical_strings_no_op() { function both_empty (line 825) | fn both_empty() { function old_empty_new_nonempty (line 832) | fn old_empty_new_nonempty() { function old_nonempty_new_empty (line 839) | fn old_nonempty_new_empty() { function new_is_prefix_of_old (line 849) | fn new_is_prefix_of_old() { function old_is_prefix_of_new (line 857) | fn old_is_prefix_of_new() { function no_common_prefix (line 866) | fn no_common_prefix() { function char_count_not_byte_count (line 877) | fn char_count_not_byte_count() { function all_multibyte_no_common_prefix (line 884) | fn all_multibyte_no_common_prefix() { function telex_moo_to_mo_hat (line 894) | fn telex_moo_to_mo_hat() { function telex_cas_to_ca_sac (line 902) | fn telex_cas_to_ca_sac() { function telex_viet_transform (line 910) | fn telex_viet_transform() { function tone_cycling_preserves_prefix (line 918) | fn tone_cycling_preserves_prefix() { function suffix_is_valid_utf8_slice_of_new (line 927) | fn suffix_is_valid_utf8_slice_of_new() { function standalone_w_is_masked (line 943) | fn standalone_w_is_masked() { function standalone_upper_w_is_masked (line 950) | fn standalone_upper_w_is_masked() { function w_after_eligible_vowel_is_not_masked (line 956) | fn w_after_eligible_vowel_is_not_masked() { function ww_after_eligible_vowel_not_masked (line 964) | fn ww_after_eligible_vowel_not_masked() { function standalone_ww_both_masked (line 973) | fn standalone_ww_both_masked() { function mixed_case_ww_after_eligible (line 980) | fn mixed_case_ww_after_eligible() { function stop_tracking_disables_tracking (line 991) | fn stop_tracking_disables_tracking() { function new_word_re_enables_tracking_after_stop (line 1001) | fn new_word_re_enables_tracking_after_stop() { function pop_to_empty_then_new_word_re_enables_tracking (line 1011) | fn pop_to_empty_then_new_word_re_enables_tracking() { function resume_previous_word_re_enables_tracking (line 1034) | fn resume_previous_word_re_enables_tracking() { FILE: src/main.rs constant APP_VERSION (line 27) | const APP_VERSION: &str = env!("CARGO_PKG_VERSION"); function apply_capslock_to_output (line 29) | fn apply_capslock_to_output(output: String, is_capslock: bool) -> String { function normalize_input_char (line 37) | fn normalize_input_char(c: char, is_shift: bool) -> char { function do_transform_keys (line 45) | fn do_transform_keys(handle: Handle, is_delete: bool, is_capslock: bool)... function do_restore_word (line 149) | fn do_restore_word(handle: Handle, is_capslock: bool) { function should_restore_transformed_word (line 162) | fn should_restore_transformed_word( function do_macro_replace (line 180) | fn do_macro_replace(handle: Handle, target: &String) { function update_systray_title_immediately (line 193) | pub unsafe fn update_systray_title_immediately() { function toggle_vietnamese (line 214) | unsafe fn toggle_vietnamese() { function auto_toggle_vietnamese (line 224) | unsafe fn auto_toggle_vietnamese() { function event_handler (line 240) | fn event_handler( function restore_when_invalid_and_not_allowed (line 429) | fn restore_when_invalid_and_not_allowed() { function no_restore_for_valid_word (line 436) | fn no_restore_for_valid_word() { function no_restore_for_allowed_word (line 443) | fn no_restore_for_allowed_word() { function no_restore_for_vni_numeric_shorthand (line 450) | fn no_restore_for_vni_numeric_shorthand() { function restore_for_vni_invalid_without_numeric_shorthand (line 457) | fn restore_for_vni_invalid_without_numeric_shorthand() { function normalize_input_char_only_depends_on_shift (line 464) | fn normalize_input_char_only_depends_on_shift() { function apply_capslock_to_transformed_output (line 470) | fn apply_capslock_to_transformed_output() { function capslock_path_keeps_telex_tone_position (line 477) | fn capslock_path_keeps_telex_tone_position() { function no_send_needed_for_plain_letter_with_capslock_only_case_change (line 485) | fn no_send_needed_for_plain_letter_with_capslock_only_case_change() { function main (line 494) | fn main() { FILE: src/platform/linux.rs constant SYMBOL_SHIFT (line 7) | pub const SYMBOL_SHIFT: &str = "⇧"; constant SYMBOL_CTRL (line 8) | pub const SYMBOL_CTRL: &str = "⌃"; constant SYMBOL_SUPER (line 9) | pub const SYMBOL_SUPER: &str = "❖"; constant SYMBOL_ALT (line 10) | pub const SYMBOL_ALT: &str = "⌥"; function get_home_dir (line 12) | pub fn get_home_dir() -> Option { function send_backspace (line 16) | pub fn send_backspace(count: usize) -> Result<(), ()> { function send_string (line 20) | pub fn send_string(string: &str) -> Result<(), ()> { function run_event_listener (line 24) | pub fn run_event_listener(callback: &CallbackFn) { function ensure_accessibility_permission (line 28) | pub fn ensure_accessibility_permission() -> bool { function is_in_text_selection (line 32) | pub fn is_in_text_selection() -> bool { function update_launch_on_login (line 36) | pub fn update_launch_on_login(is_enable: bool) { function is_launch_on_login (line 40) | pub fn is_launch_on_login() { FILE: src/platform/macos.rs constant SYMBOL_SHIFT (line 48) | pub const SYMBOL_SHIFT: &str = "⇧"; constant SYMBOL_CTRL (line 49) | pub const SYMBOL_CTRL: &str = "⌃"; constant SYMBOL_SUPER (line 50) | pub const SYMBOL_SUPER: &str = "⌘"; constant SYMBOL_ALT (line 51) | pub const SYMBOL_ALT: &str = "⌥"; method from (line 54) | fn from(value: CGEventType) -> Self { function get_current_app_path (line 78) | fn get_current_app_path() -> String { function get_home_dir (line 107) | pub fn get_home_dir() -> Option { function get_char (line 112) | fn get_char(keycode: CGKeyCode) -> Option { function is_in_text_selection (line 172) | pub fn is_in_text_selection() -> bool { function send_backspace (line 197) | pub fn send_backspace(handle: Handle, count: usize) -> Result<(), ()> { function send_arrow_left (line 214) | pub fn send_arrow_left(handle: Handle, count: usize) -> Result<(), ()> { function send_arrow_right (line 235) | pub fn send_arrow_right(handle: Handle, count: usize) -> Result<(), ()> { function send_string (line 260) | pub fn send_string(handle: Handle, string: &str) -> Result<(), ()> { function add_app_change_callback (line 274) | pub fn add_app_change_callback(cb: F) function add_appearance_change_callback (line 281) | pub fn add_appearance_change_callback(cb: F) function run_event_listener (line 288) | pub fn run_event_listener(callback: &CallbackFn) { function is_process_trusted (line 365) | pub fn is_process_trusted() -> bool { function ensure_accessibility_permission (line 369) | pub fn ensure_accessibility_permission() -> bool { function get_app_icon_rgba (line 383) | pub fn get_app_icon_rgba(app_path: &str, size: u32) -> Option<(Vec, ... function get_preferred_language (line 454) | pub fn get_preferred_language() -> String { function get_active_app_name (line 465) | pub fn get_active_app_name() -> String { function update_launch_on_login (line 475) | pub fn update_launch_on_login(is_enable: bool) -> Result<(), auto_launch... function is_launch_on_login (line 482) | pub fn is_launch_on_login() -> bool { function is_dark_mode (line 486) | pub fn is_dark_mode() -> bool { FILE: src/platform/macos_ext.rs type Wrapper (line 32) | struct Wrapper(*mut objc::runtime::Object); method same (line 34) | fn same(&self, _other: &Self) -> bool { type SystemTrayMenuItemKey (line 39) | pub enum SystemTrayMenuItemKey { type SystemTray (line 49) | pub struct SystemTray { method new (line 56) | pub fn new() -> Self { method set_title (line 83) | pub fn set_title(&mut self, title: &str, is_vietnamese: bool) { method init_menu_items (line 94) | pub fn init_menu_items(&self) { method add_menu_separator (line 107) | pub fn add_menu_separator(&self) { method add_menu_item (line 113) | pub fn add_menu_item(&self, label: &str, cb: F) method get_menu_item_index_by_key (line 131) | pub fn get_menu_item_index_by_key(&self, key: SystemTrayMenuItemKey) -... method set_menu_item_title (line 142) | pub fn set_menu_item_title(&self, key: SystemTrayMenuItemKey, label: &... method set_menu_item_callback (line 152) | pub fn set_menu_item_callback(&self, key: SystemTrayMenuItemKey, cb... function create_badge_image (line 166) | unsafe fn create_badge_image(title: &str, _is_vietnamese: bool) -> id { function dispatch_set_systray_title (line 255) | pub fn dispatch_set_systray_title(title: &str, is_vietnamese: bool) { type Handle (line 290) | pub type Handle = CGEventTapProxy; function CGEventTapPostEvent (line 294) | pub(crate) fn CGEventTapPostEvent(proxy: CGEventTapProxy, event: sys::CG... function CGEventCreateKeyboardEvent (line 295) | pub(crate) fn CGEventCreateKeyboardEvent( function CGEventKeyboardSetUnicodeString (line 300) | pub(crate) fn CGEventKeyboardSetUnicodeString( type CGEventTapCallBackInternal (line 327) | type CGEventTapCallBackInternal = unsafe extern "C" fn( function CGEventTapCreate (line 336) | fn CGEventTapCreate( function CGEventTapEnable (line 344) | fn CGEventTapEnable(tap: CFMachPortRef, enable: bool); function cg_new_tap_callback_internal (line 348) | unsafe extern "C" fn cg_new_tap_callback_internal( type CallbackType (line 373) | type CallbackType<'tap_life> = type CGEventTap (line 375) | pub struct CGEventTap<'tap_life> { function new (line 381) | pub fn new Option) -> Id { method setptr (line 442) | pub(crate) fn setptr(&mut self, uptr: usize) { type CallbackState (line 426) | pub(crate) struct CallbackState { method class (line 451) | fn class() -> &'static Class { function AXIsProcessTrustedWithOptions (line 489) | pub fn AXIsProcessTrustedWithOptions(options: CFDictionaryRef) -> bool; function dispatch_async_f (line 501) | fn dispatch_async_f( function defer_open_app_file_picker (line 510) | pub fn defer_open_app_file_picker(callback: Box Option { function open_text_file_picker (line 561) | pub fn open_text_file_picker() -> Option { function save_text_file_picker (line 585) | pub fn save_text_file_picker() -> Option { function defer_open_text_file_picker (line 608) | pub fn defer_open_text_file_picker(callback: Box(cb: F) function add_appearance_change_callback (line 656) | pub fn add_appearance_change_callback(cb: F) FILE: src/platform/mod.rs constant RAW_KEY_GLOBE (line 23) | pub const RAW_KEY_GLOBE: u16 = 0xb3; constant RAW_ARROW_DOWN (line 24) | pub const RAW_ARROW_DOWN: u16 = 0x7d; constant RAW_ARROW_UP (line 25) | pub const RAW_ARROW_UP: u16 = 0x7e; constant RAW_ARROW_LEFT (line 26) | pub const RAW_ARROW_LEFT: u16 = 0x7b; constant RAW_ARROW_RIGHT (line 27) | pub const RAW_ARROW_RIGHT: u16 = 0x7c; constant KEY_ENTER (line 28) | pub const KEY_ENTER: char = '\x13'; constant KEY_SPACE (line 29) | pub const KEY_SPACE: char = '\u{0020}'; constant KEY_TAB (line 30) | pub const KEY_TAB: char = '\x09'; constant KEY_DELETE (line 31) | pub const KEY_DELETE: char = '\x08'; constant KEY_ESCAPE (line 32) | pub const KEY_ESCAPE: char = '\x26'; method fmt (line 46) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { method new (line 67) | pub fn new() -> Self { method apply (line 71) | pub fn apply( method add_shift (line 86) | pub fn add_shift(&mut self) { method add_super (line 90) | pub fn add_super(&mut self) { method add_control (line 94) | pub fn add_control(&mut self) { method add_alt (line 98) | pub fn add_alt(&mut self) { method add_capslock (line 102) | pub fn add_capslock(&mut self) { method is_shift (line 106) | pub fn is_shift(&self) -> bool { method is_super (line 110) | pub fn is_super(&self) -> bool { method is_control (line 114) | pub fn is_control(&self) -> bool { method is_alt (line 118) | pub fn is_alt(&self) -> bool { method is_capslock (line 122) | pub fn is_capslock(&self) -> bool { type PressedKey (line 128) | pub enum PressedKey { type EventTapType (line 134) | pub enum EventTapType { type CallbackFn (line 140) | pub type CallbackFn = dyn Fn(os::Handle, EventTapType, Option Option { function send_backspace (line 21) | pub fn send_backspace(count: usize) -> Result<(), ()> { function send_string (line 25) | pub fn send_string(string: &str) -> Result<(), ()> { function run_event_listener (line 29) | pub fn run_event_listener(callback: &CallbackFn) { function ensure_accessibility_permission (line 33) | pub fn ensure_accessibility_permission() -> bool { function is_in_text_selection (line 37) | pub fn is_in_text_selection() -> bool { function update_launch_on_login (line 41) | pub fn update_launch_on_login(is_enable: bool) { function is_launch_on_login (line 45) | pub fn is_launch_on_login() { FILE: src/scripting/parser.rs type Program (line 29) | pub struct Program { type Import (line 45) | pub struct Import { type Block (line 65) | pub struct Block { type FunctionCall (line 83) | pub struct FunctionCall { function is_key_char (line 99) | fn is_key_char(c: char) -> bool { function parse_key (line 112) | fn parse_key(input: &str) -> IResult<&str, String> { function parse_key_list (line 125) | fn parse_key_list(input: &str) -> IResult<&str, Vec> { function is_identifier_char (line 143) | fn is_identifier_char(c: char) -> bool { function parse_identifier (line 156) | fn parse_identifier(input: &str) -> IResult<&str, String> { function parse_identifier_list (line 169) | fn parse_identifier_list(input: &str) -> IResult<&str, Vec> { function parse_import (line 185) | fn parse_import(input: &str) -> IResult<&str, Import> { function parse_import_list (line 208) | fn parse_import_list(input: &str) -> IResult<&str, Vec> { function parse_function_call (line 225) | fn parse_function_call(input: &str) -> IResult<&str, FunctionCall> { function parse_function_call_list (line 275) | fn parse_function_call_list(input: &str) -> IResult<&str, Vec IResult<&str, Block> { function parse_program (line 338) | pub fn parse_program(input: &str) -> IResult<&str, Program> { function test_parse_key (line 358) | fn test_parse_key() { function test_parse_key_should_parse_a_single_key (line 366) | fn test_parse_key_should_parse_a_single_key() { function test_parse_key_list (line 374) | fn test_parse_key_list() { function test_parse_identifier (line 383) | fn test_parse_identifier() { function test_parse_identifier_list (line 391) | fn test_parse_identifier_list() { function test_parse_identifier_list_single_item (line 399) | fn test_parse_identifier_list_single_item() { function test_parse_key_list_single (line 407) | fn test_parse_key_list_single() { function parse_import_fail (line 415) | fn parse_import_fail() { function parse_import_fail_not_a_function (line 422) | fn parse_import_fail_not_a_function() { function parse_import_fail_no_module (line 429) | fn parse_import_fail_no_module() { function parse_import_fail_no_module_just_space (line 436) | fn parse_import_fail_no_module_just_space() { function parse_import_success (line 443) | fn parse_import_success() { function parse_import_list_success_single (line 456) | fn parse_import_list_success_single() { function parse_import_list_success (line 469) | fn parse_import_list_success() { function parse_function_call_fail (line 487) | fn parse_function_call_fail() { function parse_function_call_space_before_parens_fail (line 494) | fn parse_function_call_space_before_parens_fail() { function parse_function_call_success_with_no_params (line 501) | fn parse_function_call_success_with_no_params() { function parse_function_call_success_with_no_params_with_space (line 516) | fn parse_function_call_success_with_no_params_with_space() { function parse_function_call_success_with_single_param (line 531) | fn parse_function_call_success_with_single_param() { function parse_function_call_success_with_multiple_param (line 546) | fn parse_function_call_success_with_multiple_param() { function parse_function_call_success_with_single_param_with_single_key (line 561) | fn parse_function_call_success_with_single_param_with_single_key() { function parse_function_call_success_with_single_param_with_multiple_key (line 576) | fn parse_function_call_success_with_single_param_with_multiple_key() { function parse_function_call_success_with_multiple_param_with_single_key (line 591) | fn parse_function_call_success_with_multiple_param_with_single_key() { function parse_function_call_success_with_multiple_param_with_multiple_key (line 610) | fn parse_function_call_success_with_multiple_param_with_multiple_key() { function parse_function_call_fail_with_multiple_param_with_no_key (line 629) | fn parse_function_call_fail_with_multiple_param_with_no_key() { function parse_function_call_fail_for_unclosed_call (line 636) | fn parse_function_call_fail_for_unclosed_call() { function parse_function_call_list_fail (line 643) | fn parse_function_call_list_fail() { function parse_function_call_list_success_with_single_call (line 650) | fn parse_function_call_list_success_with_single_call() { function parse_function_call_list_success_with_multiple_call (line 665) | fn parse_function_call_list_success_with_multiple_call() { function parse_block_fail (line 696) | fn parse_block_fail() { function parse_block_fail_no_key (line 703) | fn parse_block_fail_no_key() { function parse_block_fail_empty_block (line 710) | fn parse_block_fail_empty_block() { function parse_block_success_single_key (line 717) | fn parse_block_success_single_key() { function parse_block_success_multiple_key (line 735) | fn parse_block_success_multiple_key() { function parse_block_success_multiple_key_multiple_calls (line 753) | fn parse_block_success_multiple_key_multiple_calls() { function parse_program_single_block (line 788) | fn parse_program_single_block() { function parse_program_single_block_with_import (line 809) | fn parse_program_single_block_with_import() { function parse_program_multiple_block (line 832) | fn parse_program_multiple_block() { function parse_program_multiple_block_with_multiple_import (line 871) | fn parse_program_multiple_block_with_multiple_import() { function parse_full_program_success (line 917) | fn parse_full_program_success() { FILE: src/ui/colors.rs constant GREEN (line 4) | pub const GREEN: Color = Color::rgb8(26, 138, 110); constant GREEN_BG (line 5) | pub const GREEN_BG: Color = Color::rgba8(26, 138, 110, 20); type Theme (line 8) | pub struct Theme { function light_theme (line 41) | pub fn light_theme() -> Theme { function dark_theme (line 73) | pub fn dark_theme() -> Theme { function get_theme (line 105) | pub fn get_theme(is_dark: bool) -> Theme { function theme_from_env (line 113) | pub fn theme_from_env(env: &Env) -> Theme { constant BADGE_VI_BG (line 117) | pub const BADGE_VI_BG: Color = Color::rgba8(26, 138, 110, 20); constant BADGE_VI_BORDER (line 118) | pub const BADGE_VI_BORDER: Color = Color::rgb8(26, 138, 110); constant BADGE_EN_BG (line 119) | pub const BADGE_EN_BG: Color = Color::rgba8(58, 115, 199, 18); constant BADGE_EN_BORDER (line 120) | pub const BADGE_EN_BORDER: Color = Color::rgb8(58, 115, 199); FILE: src/ui/controllers.rs type UIController (line 24) | pub struct UIController; method event (line 27) | fn event( method update (line 227) | fn update( type LetterKeyController (line 306) | pub(super) struct LetterKeyController; method event (line 309) | fn event( FILE: src/ui/data.rs type MacroEntry (line 13) | pub(super) struct MacroEntry { type AppEntry (line 19) | pub(super) struct AppEntry { type UIDataAdapter (line 24) | pub struct UIDataAdapter { method new (line 70) | pub fn new() -> Self { method update (line 110) | pub fn update(&mut self) { method setup_system_tray_actions (line 230) | fn setup_system_tray_actions(&mut self) { method toggle_vietnamese (line 282) | pub fn toggle_vietnamese(&mut self) { FILE: src/ui/locale.rs constant LANG_VI (line 3) | const LANG_VI: u8 = 0; constant LANG_EN (line 4) | const LANG_EN: u8 = 1; type Lang (line 7) | pub enum Lang { function resolve_lang (line 15) | fn resolve_lang(config_value: &str) -> Lang { function init_lang (line 36) | pub fn init_lang(config_value: &str) { function set_lang (line 48) | pub fn set_lang(lang: Lang) { function current_lang (line 58) | pub fn current_lang() -> Lang { function t (line 66) | pub fn t(key: &'static str) -> &'static str { FILE: src/ui/mod.rs constant UPDATE_UI (line 19) | pub const UPDATE_UI: Selector = Selector::new("gox-ui.update-ui"); constant SHOW_UI (line 20) | pub const SHOW_UI: Selector = Selector::new("gox-ui.show-ui"); constant WINDOW_WIDTH (line 21) | pub const WINDOW_WIDTH: f64 = 480.0; constant WINDOW_HEIGHT (line 22) | pub const WINDOW_HEIGHT: f64 = 680.0; function format_letter_key (line 24) | pub fn format_letter_key(c: Option) -> String { function letter_key_to_char (line 35) | pub fn letter_key_to_char(input: &str) -> Option { FILE: src/ui/selectors.rs constant DELETE_MACRO (line 3) | pub(super) const DELETE_MACRO: Selector = Selector::new("gox-ui.... constant ADD_MACRO (line 4) | pub(super) const ADD_MACRO: Selector = Selector::new("gox-ui.add-macro"); constant DELETE_SELECTED_MACRO (line 5) | pub(super) const DELETE_SELECTED_MACRO: Selector = Selector::new("gox-ui... constant SET_EN_APP_FROM_PICKER (line 6) | pub(super) const SET_EN_APP_FROM_PICKER: Selector = constant DELETE_SELECTED_APP (line 8) | pub(super) const DELETE_SELECTED_APP: Selector = Selector::new("gox-ui.d... constant TOGGLE_APP_MODE (line 9) | pub(super) const TOGGLE_APP_MODE: Selector = Selector::new("gox-... constant SHOW_ADD_MACRO_DIALOG (line 10) | pub(super) const SHOW_ADD_MACRO_DIALOG: Selector = Selector::new("gox-ui... constant SHOW_EDIT_SHORTCUT_DIALOG (line 11) | pub(super) const SHOW_EDIT_SHORTCUT_DIALOG: Selector = constant SAVE_SHORTCUT (line 13) | pub(super) const SAVE_SHORTCUT: Selector<(bool, bool, bool, bool, String... constant RESET_DEFAULTS (line 15) | pub(super) const RESET_DEFAULTS: Selector = Selector::new("gox-ui.reset-... constant LOAD_MACROS_FROM_FILE (line 16) | pub(super) const LOAD_MACROS_FROM_FILE: Selector = Selector::new("gox-ui... constant EXPORT_MACROS_TO_FILE (line 17) | pub(super) const EXPORT_MACROS_TO_FILE: Selector = Selector::new("gox-ui... FILE: src/ui/views.rs function text_label (line 32) | fn text_label( function title_label (line 48) | fn title_label(key: &'static str) -> impl Widget { function subtitle_label (line 52) | fn subtitle_label(key: &'static str) -> impl Widget { function title_subtitle_column (line 56) | fn title_subtitle_column( function centered_btn (line 66) | fn centered_btn( function make_text_layout (line 87) | fn make_text_layout( function draw_centered_text (line 101) | fn draw_centered_text(ctx: &mut druid::PaintCtx, text: &str, font_size: ... function symbol_btn (line 113) | fn symbol_btn(symbol: &'static str) -> impl Widget { function remove_btn (line 121) | fn remove_btn(is_enabled_fn: fn(&UIDataAdapter) -> bool) -> impl Widget<... function toolbar_btn (line 139) | fn toolbar_btn(key: &'static str, divider: Option<&'static str>) -> impl... function h_divider (line 159) | fn h_divider() -> impl Widget { function section_label (line 169) | fn section_label(key: &'static str) -> impl Widget { function card_divider (line 181) | fn card_divider() -> impl Widget { function settings_row (line 191) | fn settings_row + 'static>( function settings_card (line 206) | fn settings_card + 'static>(inner: TW) -> impl... function tab_body (line 218) | fn tab_body() -> Flex { constant TAB_PADDING (line 222) | const TAB_PADDING: (f64, f64, f64, f64) = (24.0, 20.0, 24.0, 24.0); function option_group (line 224) | fn option_group + 'static>( function v_scroll (line 239) | fn v_scroll + 'static>(inner: W) -> Scroll impl Widget { function general_tab (line 307) | fn general_tab() -> impl Widget { function apps_tab (line 442) | fn apps_tab() -> impl Widget { function advanced_tab (line 521) | fn advanced_tab() -> impl Widget { function macro_row_item (line 583) | fn macro_row_item() -> impl Widget { function main_ui_builder (line 609) | pub fn main_ui_builder() -> impl Widget { function permission_request_ui_builder (line 643) | pub fn permission_request_ui_builder() -> impl Widget<()> { function macro_editor_ui_builder (line 688) | pub fn macro_editor_ui_builder() -> impl Widget { function center_window_position (line 725) | pub fn center_window_position() -> (f64, f64) { constant ADD_MACRO_DIALOG_WIDTH (line 732) | pub const ADD_MACRO_DIALOG_WIDTH: f64 = 340.0; constant ADD_MACRO_DIALOG_HEIGHT (line 733) | pub const ADD_MACRO_DIALOG_HEIGHT: f64 = 208.0; constant EDIT_SHORTCUT_DIALOG_WIDTH (line 735) | pub const EDIT_SHORTCUT_DIALOG_WIDTH: f64 = 340.0; constant EDIT_SHORTCUT_DIALOG_HEIGHT (line 736) | pub const EDIT_SHORTCUT_DIALOG_HEIGHT: f64 = 200.0; function styled_text_input (line 738) | fn styled_text_input(placeholder: &'static str) -> impl Widget { function add_macro_dialog_ui_builder (line 758) | pub fn add_macro_dialog_ui_builder() -> impl Widget { function edit_shortcut_dialog_ui_builder (line 809) | pub fn edit_shortcut_dialog_ui_builder() -> impl Widget { FILE: src/ui/widgets.rs type ToggleSwitch (line 20) | pub(super) struct ToggleSwitch; method event (line 23) | fn event(&mut self, ctx: &mut EventCtx, event: &Event, data: &mut bool... method lifecycle (line 40) | fn lifecycle(&mut self, _ctx: &mut LifeCycleCtx, _event: &LifeCycle, _... method update (line 43) | fn update(&mut self, ctx: &mut UpdateCtx, old_data: &bool, data: &bool... method layout (line 49) | fn layout( method paint (line 59) | fn paint(&mut self, ctx: &mut PaintCtx, data: &bool, env: &Env) { type StyledCheckbox (line 76) | pub(super) struct StyledCheckbox; method event (line 79) | fn event(&mut self, ctx: &mut EventCtx, event: &Event, data: &mut bool... method lifecycle (line 96) | fn lifecycle(&mut self, _ctx: &mut LifeCycleCtx, _event: &LifeCycle, _... method update (line 99) | fn update(&mut self, ctx: &mut UpdateCtx, old_data: &bool, data: &bool... method layout (line 105) | fn layout( method paint (line 115) | fn paint(&mut self, ctx: &mut PaintCtx, data: &bool, env: &Env) { type InfoTooltip (line 132) | pub(super) struct InfoTooltip { method new (line 138) | pub fn new(text: &'static str) -> Self { method event (line 147) | fn event(&mut self, _ctx: &mut EventCtx, _event: &Event, _data: &mut T... method lifecycle (line 149) | fn lifecycle(&mut self, ctx: &mut LifeCycleCtx, event: &LifeCycle, _da... method update (line 156) | fn update(&mut self, _ctx: &mut UpdateCtx, _old_data: &T, _data: &T, _... method layout (line 158) | fn layout(&mut self, ctx: &mut LayoutCtx, _bc: &BoxConstraints, _data:... method paint (line 163) | fn paint(&mut self, ctx: &mut PaintCtx, _data: &T, env: &Env) { type SegmentedControl (line 211) | pub(super) struct SegmentedControl { method new (line 217) | pub(super) fn new(options: Vec<(&str, TypingMethod)>) -> Self { method event (line 229) | fn event(&mut self, ctx: &mut EventCtx, event: &Event, data: &mut Typi... method lifecycle (line 241) | fn lifecycle( method update (line 250) | fn update( method layout (line 262) | fn layout( method paint (line 283) | fn paint(&mut self, ctx: &mut PaintCtx, data: &TypingMethod, env: &Env) { type U32SegmentedControl (line 329) | pub(super) struct U32SegmentedControl { method new (line 335) | pub(super) fn new(options: Vec<(&'static str, u32)>) -> Self { method event (line 344) | fn event(&mut self, ctx: &mut EventCtx, event: &Event, data: &mut u32,... method lifecycle (line 356) | fn lifecycle(&mut self, _ctx: &mut LifeCycleCtx, _event: &LifeCycle, _... method update (line 358) | fn update(&mut self, ctx: &mut UpdateCtx, old_data: &u32, data: &u32, ... method layout (line 364) | fn layout( method paint (line 385) | fn paint(&mut self, ctx: &mut PaintCtx, data: &u32, env: &Env) { type TabBar (line 431) | pub(super) struct TabBar { method new (line 436) | pub(super) fn new() -> Self { method draw_icon_general (line 442) | fn draw_icon_general(ctx: &mut PaintCtx, cx: f64, cy: f64, color: &Col... method draw_icon_apps (line 455) | fn draw_icon_apps(ctx: &mut PaintCtx, cx: f64, cy: f64, color: &Color) { method draw_icon_text_expansion (line 462) | fn draw_icon_text_expansion(ctx: &mut PaintCtx, cx: f64, cy: f64, colo... method event (line 492) | fn event(&mut self, ctx: &mut EventCtx, event: &Event, data: &mut u32,... method lifecycle (line 504) | fn lifecycle(&mut self, _ctx: &mut LifeCycleCtx, _event: &LifeCycle, _... method update (line 506) | fn update(&mut self, ctx: &mut UpdateCtx, old_data: &u32, data: &u32, ... method layout (line 512) | fn layout( method paint (line 528) | fn paint(&mut self, ctx: &mut PaintCtx, data: &u32, env: &Env) { type KeyBadge (line 572) | pub(super) struct KeyBadge { method new (line 577) | pub(super) fn new(label: impl Into) -> Self { method event (line 585) | fn event(&mut self, _ctx: &mut EventCtx, _event: &Event, _data: &mut (... method lifecycle (line 586) | fn lifecycle(&mut self, _ctx: &mut LifeCycleCtx, _event: &LifeCycle, _... method update (line 587) | fn update(&mut self, _ctx: &mut UpdateCtx, _old: &(), _data: &(), _env... method layout (line 589) | fn layout( method paint (line 600) | fn paint(&mut self, ctx: &mut PaintCtx, _data: &(), env: &Env) { type HotkeyBadgesWidget (line 620) | pub(super) struct HotkeyBadgesWidget { method new (line 628) | pub(super) fn new() -> Self { method rebuild_badges (line 637) | fn rebuild_badges(&mut self, display: &str) { method event (line 647) | fn event(&mut self, ctx: &mut EventCtx, event: &Event, data: &mut UIDa... method lifecycle (line 732) | fn lifecycle( method update (line 747) | fn update( method layout (line 764) | fn layout( method paint (line 787) | fn paint(&mut self, ctx: &mut PaintCtx, data: &UIDataAdapter, env: &En... type MacroListWidget (line 823) | pub(super) struct MacroListWidget { method new (line 831) | pub(super) fn new() -> Self { method event (line 839) | fn event(&mut self, ctx: &mut EventCtx, event: &Event, data: &mut UIDa... method lifecycle (line 851) | fn lifecycle( method update (line 860) | fn update( method layout (line 874) | fn layout( method paint (line 895) | fn paint(&mut self, ctx: &mut PaintCtx, data: &UIDataAdapter, env: &En... constant MACRO_ROW_HEIGHT (line 827) | const MACRO_ROW_HEIGHT: f64 = 44.0; constant MACRO_HEADER_HEIGHT (line 828) | const MACRO_HEADER_HEIGHT: f64 = 30.0; type CombinedAppEntry (line 1007) | pub(super) struct CombinedAppEntry { type AppsListWidget (line 1013) | pub(super) struct AppsListWidget { method new (line 1023) | pub(super) fn new() -> Self { method build_entries (line 1038) | pub(super) fn build_entries(data: &UIDataAdapter) -> Vec String { method event (line 1073) | fn event(&mut self, ctx: &mut EventCtx, event: &Event, data: &mut UIDa... method lifecycle (line 1105) | fn lifecycle( method update (line 1114) | fn update( method layout (line 1128) | fn layout( method paint (line 1166) | fn paint(&mut self, ctx: &mut PaintCtx, data: &UIDataAdapter, env: &En... constant ROW_HEIGHT (line 1020) | const ROW_HEIGHT: f64 = 52.0; type ShortcutCaptureWidget (line 1313) | pub(super) struct ShortcutCaptureWidget { method new (line 1322) | pub(super) fn new() -> Self { method event (line 1334) | fn event(&mut self, ctx: &mut EventCtx, event: &Event, data: &mut UIDa... method lifecycle (line 1412) | fn lifecycle( method update (line 1432) | fn update( method layout (line 1442) | fn layout( method paint (line 1452) | fn paint(&mut self, ctx: &mut PaintCtx, data: &UIDataAdapter, env: &En...