本文整理汇总了C++中FKeyEvent::IsShiftDown方法的典型用法代码示例。如果您正苦于以下问题:C++ FKeyEvent::IsShiftDown方法的具体用法?C++ FKeyEvent::IsShiftDown怎么用?C++ FKeyEvent::IsShiftDown使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FKeyEvent
的用法示例。
在下文中一共展示了FKeyEvent::IsShiftDown方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnKeyDown
FReply SWidget::OnKeyDown( const FGeometry& MyGeometry, const FKeyEvent& InKeyEvent )
{
if (SupportsKeyboardFocus())
{
EUINavigation Direction = FSlateApplicationBase::Get().GetNavigationDirectionFromKey( InKeyEvent );
// It's the left stick return a navigation request of the correct direction
if ( Direction != EUINavigation::Invalid )
{
return FReply::Handled().SetNavigation( Direction );
}
else if ( InKeyEvent.GetKey() == EKeys::Tab )
{
//@TODO: Really these uses of input should be at a lower priority, only occurring if nothing else handled them
// For now this code prevents consuming them when some modifiers are held down, allowing some limited binding
const bool bAllowEatingKeyEvents = !InKeyEvent.IsControlDown() && !InKeyEvent.IsAltDown() && !InKeyEvent.IsCommandDown();
if (bAllowEatingKeyEvents)
{
EUINavigation MoveDirection = (InKeyEvent.IsShiftDown())
? EUINavigation::Previous
: EUINavigation::Next;
return FReply::Handled().SetNavigation(MoveDirection);
}
}
}
return FReply::Unhandled();
}
示例2:
FValorActionInputBinding UInputBlueprintLibrary::K2_GetInputAction(const FKeyEvent& KeyEvent)
{
FValorActionInputBinding Binding;
Binding.Key = KeyEvent.GetKey();
Binding.KeyAsString = Binding.Key.GetDisplayName().ToString();
Binding.bAlt = KeyEvent.IsAltDown();
Binding.bCtrl = KeyEvent.IsControlDown();
Binding.bShift = KeyEvent.IsShiftDown();
Binding.bCmd = KeyEvent.IsCommandDown();
return Binding;
}
示例3: OnKeyDown
FReply FTextEditHelper::OnKeyDown( const FKeyEvent& InKeyEvent, const TSharedRef< ITextEditorWidget >& TextEditor )
{
const FKey Key = InKeyEvent.GetKey();
if( Key == EKeys::Left )
{
return TextEditor->MoveCursor( FMoveCursor::Cardinal(
// Ctrl moves a whole word instead of one character.
InKeyEvent.IsControlDown( ) ? ECursorMoveGranularity::Word : ECursorMoveGranularity::Character,
// Move left
FIntPoint( -1, 0 ),
// Shift selects text.
InKeyEvent.IsShiftDown() ? ECursorAction::SelectText : ECursorAction::MoveCursor
));
}
else if( Key == EKeys::Right )
{
return TextEditor->MoveCursor( FMoveCursor::Cardinal(
// Ctrl moves a whole word instead of one character.
InKeyEvent.IsControlDown( ) ? ECursorMoveGranularity::Word : ECursorMoveGranularity::Character,
// Move right
FIntPoint( +1, 0 ),
// Shift selects text.
InKeyEvent.IsShiftDown() ? ECursorAction::SelectText : ECursorAction::MoveCursor
));
}
else if ( Key == EKeys::Up )
{
return TextEditor->MoveCursor( FMoveCursor::Cardinal(
InKeyEvent.IsControlDown( ) ? ECursorMoveGranularity::Word : ECursorMoveGranularity::Character,
// Move up
FIntPoint( 0, -1 ),
// Shift selects text.
InKeyEvent.IsShiftDown() ? ECursorAction::SelectText : ECursorAction::MoveCursor
));
}
else if ( Key == EKeys::Down )
{
return TextEditor->MoveCursor( FMoveCursor::Cardinal(
InKeyEvent.IsControlDown( ) ? ECursorMoveGranularity::Word : ECursorMoveGranularity::Character,
// Move down
FIntPoint( 0, +1 ),
// Shift selects text.
InKeyEvent.IsShiftDown() ? ECursorAction::SelectText : ECursorAction::MoveCursor
));
}
else if( Key == EKeys::Home )
{
// Go to the beginning of the document; select text if Shift is down.
TextEditor->JumpTo(
(InKeyEvent.IsControlDown() ) ? ETextLocation::BeginningOfDocument : ETextLocation::BeginningOfLine,
(InKeyEvent.IsShiftDown()) ? ECursorAction::SelectText : ECursorAction::MoveCursor );
return FReply::Handled();
}
else if ( Key == EKeys::End )
{
// Go to the end of the document; select text if Shift is down.
TextEditor->JumpTo(
(InKeyEvent.IsControlDown() ) ? ETextLocation::EndOfDocument : ETextLocation::EndOfLine,
(InKeyEvent.IsShiftDown()) ? ECursorAction::SelectText : ECursorAction::MoveCursor );
return FReply::Handled();
}
else if( Key == EKeys::Enter && !TextEditor->GetIsReadOnly() )
{
FScopedTextTransaction TextTransaction(TextEditor);
TextEditor->OnEnter();
return FReply::Handled();
}
else if( Key == EKeys::Delete && !TextEditor->GetIsReadOnly() )
{
// @Todo: Slate keybindings support more than one set of keys.
// Delete to next word boundary (Ctrl+Delete)
if (InKeyEvent.IsControlDown() && !InKeyEvent.IsAltDown() && !InKeyEvent.IsShiftDown())
{
TextEditor->MoveCursor( FMoveCursor::Cardinal(
ECursorMoveGranularity::Word,
// Move right
FIntPoint(+1, 0),
// selects text.
ECursorAction::SelectText
));
}
FScopedTextTransaction TextTransaction(TextEditor);
// Delete selected text
TextEditor->DeleteChar();
return FReply::Handled();
}
else if( Key == EKeys::Escape )
{
return TextEditor->OnEscape();
}
// @Todo: Slate keybindings support more than one set of keys.
//.........这里部分代码省略.........