FText UK2Node_InputKey::GetNodeTitle(ENodeTitleType::Type TitleType) const { if (bControl || bAlt || bShift || bCommand) { if (CachedNodeTitle.IsOutOfDate()) { FFormatNamedArguments Args; Args.Add(TEXT("ModifierKey"), GetModifierText()); Args.Add(TEXT("Key"), GetKeyText()); // FText::Format() is slow, so we cache this to save on performance CachedNodeTitle = FText::Format(NSLOCTEXT("K2Node", "InputKey_Name_WithModifiers", "{ModifierKey} {Key}"), Args); } return CachedNodeTitle; } else { return GetKeyText(); } }
/** * Returns the friendly, localized string name of this key binding * @todo Slate: Got to be a better way to do this */ FText FInputChord::GetInputText( ) const { #if PLATFORM_MAC const FText CommandText = LOCTEXT("KeyName_Control", "Ctrl"); const FText ControlText = LOCTEXT("KeyName_Command", "Cmd"); #else const FText ControlText = LOCTEXT("KeyName_Control", "Ctrl"); const FText CommandText = LOCTEXT("KeyName_Command", "Cmd"); #endif const FText AltText = LOCTEXT("KeyName_Alt", "Alt"); const FText ShiftText = LOCTEXT("KeyName_Shift", "Shift"); const FText AppenderText = LOCTEXT("ModAppender", "+"); FFormatNamedArguments Args; int32 ModCount = 0; if (bCtrl) { Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), ControlText); } if (bCmd) { Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), CommandText); } if (bAlt) { Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), AltText); } if (bShift) { Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), ShiftText); } for (int32 i = 1; i <= 4; ++i) { if (i > ModCount) { Args.Add(FString::Printf(TEXT("Mod%d"), i), FText::GetEmpty()); Args.Add(FString::Printf(TEXT("Appender%d"), i), FText::GetEmpty()); } else { Args.Add(FString::Printf(TEXT("Appender%d"), i), AppenderText); } } Args.Add(TEXT("Key"), GetKeyText()); return FText::Format(LOCTEXT("FourModifiers", "{Mod1}{Appender1}{Mod2}{Appender2}{Mod3}{Appender3}{Mod4}{Appender4}{Key}"), Args); }
FText UK2Node_InputKey::GetModifierText() const { #if PLATFORM_MAC const FText CommandText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Control", "Ctrl"); const FText ControlText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Command", "Cmd"); #else const FText ControlText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Control", "Ctrl"); const FText CommandText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Command", "Cmd"); #endif const FText AltText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Alt", "Alt"); const FText ShiftText = NSLOCTEXT("UK2Node_InputKey", "KeyName_Shift", "Shift"); const FText AppenderText = NSLOCTEXT("UK2Node_InputKey", "ModAppender", "+"); FFormatNamedArguments Args; int32 ModCount = 0; if (bControl) { Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), ControlText); } if (bCommand) { Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), CommandText); } if (bAlt) { Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), AltText); } if (bShift) { Args.Add(FString::Printf(TEXT("Mod%d"),++ModCount), ShiftText); } for (int32 i = 1; i <= 4; ++i) { if (i > ModCount) { Args.Add(FString::Printf(TEXT("Mod%d"), i), FText::GetEmpty()); } Args.Add(FString::Printf(TEXT("Appender%d"), i), (i < ModCount ? AppenderText : FText::GetEmpty())); } Args.Add(TEXT("Key"), GetKeyText()); return FText::Format(NSLOCTEXT("UK2Node_InputKey", "NodeTitle", "{Mod1}{Appender1}{Mod2}{Appender2}{Mod3}{Appender3}{Mod4}"), Args); }
FText UK2Node_InputKey::GetTooltipText() const { if (CachedTooltip.IsOutOfDate()) { FText ModifierText = GetModifierText(); FText KeyText = GetKeyText(); // FText::Format() is slow, so we cache this to save on performance if (!ModifierText.IsEmpty()) { CachedTooltip = FText::Format(NSLOCTEXT("K2Node", "InputKey_Tooltip_Modifiers", "Events for when the {0} key is pressed or released while {1} is also held."), KeyText, ModifierText); } else { CachedTooltip = FText::Format(NSLOCTEXT("K2Node", "InputKey_Tooltip", "Events for when the {0} key is pressed or released."), KeyText); } } return CachedTooltip; }
/** 更新按钮上显示的按键文字 */ static void UpdateKeyBtn(void) { ControlKey ctrlkey; wchar_t btn_text[24], buff_text[12]; GameConfig_GetKeyControl( &ctrlkey ); GetKeyText( ctrlkey.left, buff_text ); swprintf( btn_text, sizeof(btn_text), L"<size=18px>%s</size>", buff_text ); Button_TextW( btn_left, btn_text ); GetKeyText( ctrlkey.right, buff_text ); swprintf( btn_text, sizeof(btn_text), L"<size=18px>%s</size>", buff_text ); Button_TextW( btn_right, btn_text ); GetKeyText( ctrlkey.up, buff_text ); swprintf( btn_text, sizeof(btn_text), L"<size=18px>%s</size>", buff_text ); Button_TextW( btn_up, btn_text ); GetKeyText( ctrlkey.down, buff_text ); swprintf( btn_text, sizeof(btn_text), L"<size=18px>%s</size>", buff_text ); Button_TextW( btn_down, btn_text ); GetKeyText( ctrlkey.a_attack, buff_text ); swprintf( btn_text, sizeof(btn_text), L"<size=18px>%s</size>", buff_text ); Button_TextW( btn_a_atk, btn_text ); GetKeyText( ctrlkey.b_attack, buff_text ); swprintf( btn_text, sizeof(btn_text), L"<size=18px>%s</size>", buff_text ); Button_TextW( btn_b_atk, btn_text ); GetKeyText( ctrlkey.defense, buff_text ); swprintf( btn_text, sizeof(btn_text), L"<size=18px>%s</size>", buff_text ); Button_TextW( btn_defense, btn_text ); GetKeyText( ctrlkey.jump, buff_text ); swprintf( btn_text, sizeof(btn_text), L"<size=18px>%s</size>", buff_text ); Button_TextW( btn_jump, btn_text ); }
int CPROC KeyHandler( uintptr_t psv, uint32_t key ) { if( GetKeyText( key ) == '\x1b' ) g.flags.exit = 1; return 0; // nope, didn't use it. }