void Construct(const FArguments& InArgs) { PoseWatch = InArgs._PoseWatch; static FColor PoseWatchColours[] = { FColor::Red, FColor::Green, FColor::Blue, FColor::Cyan, FColor::Orange, FColor::Purple, FColor::Yellow, FColor::Black }; const int32 Rows = 2; const int32 Columns = 4; TSharedPtr<SVerticalBox> Layout = SNew(SVerticalBox); for (int32 RowIndex = 0; RowIndex < Rows; ++RowIndex) { TSharedPtr<SHorizontalBox> Row = SNew(SHorizontalBox); for (int32 RowItem = 0; RowItem < Columns; ++RowItem) { int32 ColourIndex = RowItem + (RowIndex * Columns); FColor Colour = PoseWatchColours[ColourIndex]; Row->AddSlot() .Padding(5.f, 2.f) [ SNew(SButton) .HAlign(HAlign_Center) .OnClicked(this, &SPoseViewColourPickerPopup::NewPoseWatchColourPicked, Colour) .ButtonColorAndOpacity(Colour) ]; } Layout->AddSlot() [ Row.ToSharedRef() ]; } Layout->AddSlot() .AutoHeight() .Padding(5.f, 2.f) [ SNew(SButton) .Text(NSLOCTEXT("AnimationGraphNode", "RemovePoseWatch", "Remove Pose Watch")) .OnClicked(this, &SPoseViewColourPickerPopup::RemovePoseWatch) ]; this->ChildSlot [ SNew(SBorder) .BorderImage(FEditorStyle::GetBrush(TEXT("Menu.Background"))) .Padding(10) [ Layout->AsShared() ] ]; }
void SVoxOptionWidget::Construct(const FArguments& InArgs) { ImportOption = InArgs._ImportOption; Window = InArgs._Window; TSharedPtr<SBox> InspectorBox; this->ChildSlot[ SNew(SVerticalBox) + SVerticalBox::Slot().AutoHeight().Padding(2) [ SAssignNew(InspectorBox, SBox).MaxDesiredHeight(650.0f).WidthOverride(400.0f) ] + SVerticalBox::Slot().AutoHeight().HAlign(HAlign_Right).Padding(2) [ SNew(SUniformGridPanel).SlotPadding(2) + SUniformGridPanel::Slot(0, 0)[ SNew(SButton).HAlign(HAlign_Center).Text(NSLOCTEXT("VOX4U", "VoxOptionWindow_ImportAll", "Import All")) .OnClicked(this, &SVoxOptionWidget::OnImportAll) ] + SUniformGridPanel::Slot(1, 0) [ SNew(SButton).HAlign(HAlign_Center).Text(NSLOCTEXT("VOX4U", "VoxOptionWindow_Import", "Import")) .OnClicked(this, &SVoxOptionWidget::OnImport) ] + SUniformGridPanel::Slot(2, 0) [ SNew(SButton).HAlign(HAlign_Center).Text(NSLOCTEXT("VOX4U", "VoxOptionWindow_Cancel", "Cancel")) .OnClicked(this, &SVoxOptionWidget::OnCancel) ] ] ]; FPropertyEditorModule& PropertyEditorModule = FModuleManager::GetModuleChecked<FPropertyEditorModule>("PropertyEditor"); FDetailsViewArgs DetailsViewArgs; DetailsViewArgs.bAllowSearch = false; DetailsViewArgs.NameAreaSettings = FDetailsViewArgs::HideNameArea; TSharedPtr<IDetailsView> DetailsView = PropertyEditorModule.CreateDetailView(DetailsViewArgs); InspectorBox->SetContent(DetailsView->AsShared()); DetailsView->SetObject(ImportOption); }
/** * Construct this widget * * @param InArgs The declaration data for this widget */ void Construct( const FArguments& InArgs ) { FName ButtonStyle = FEditorStyle::Join(InArgs._Style.Get(), ".Button"); FName CheckboxStyle = FEditorStyle::Join(InArgs._Style.Get(), ".ToggleButton"); const FSlateIcon& Icon = InArgs._Icon.Get(); ParentToolBar = InArgs._ParentToolBar; TSharedPtr<SCheckBox> ToggleControl; { ToggleControl = SNew(SCheckBox) .Cursor( EMouseCursor::Default ) .Padding(FMargin( 4.0f )) .Style(FEditorStyle::Get(), EMultiBlockLocation::ToName(CheckboxStyle, EMultiBlockLocation::Start)) .OnCheckStateChanged(InArgs._OnCheckStateChanged) .ToolTipText(InArgs._ToggleButtonToolTip) .IsChecked(InArgs._IsChecked) .Content() [ SNew( SBox ) .WidthOverride( TransformViewportToolbarDefs::ToggleImageScale ) .HeightOverride( TransformViewportToolbarDefs::ToggleImageScale ) .HAlign(HAlign_Center) .VAlign(VAlign_Center) [ SNew(SImage) .Image(Icon.GetIcon()) ] ]; } { SAssignNew( MenuAnchor, SMenuAnchor ) .Placement( MenuPlacement_BelowAnchor ) [ SNew(SButton) .ButtonStyle( FEditorStyle::Get(), EMultiBlockLocation::ToName(ButtonStyle,EMultiBlockLocation::End) ) .ContentPadding( FMargin( 5.0f, 0.0f ) ) .ToolTipText(InArgs._MenuButtonToolTip) .OnClicked(this, &SGridSnapSetting::OnMenuClicked) [ SNew(SVerticalBox) +SVerticalBox::Slot() .AutoHeight() .HAlign(HAlign_Center) .VAlign(VAlign_Top) [ SNew(STextBlock) .Font( FEditorStyle::GetFontStyle( InArgs._Style.Get(), ".Label.Font" ) ) .Text(InArgs._Label) ] +SVerticalBox::Slot() .AutoHeight() .VAlign(VAlign_Bottom) [ SNew(SHorizontalBox) +SHorizontalBox::Slot() .FillWidth(1.0f) +SHorizontalBox::Slot() .AutoWidth() [ SNew( SBox ) .WidthOverride( TransformViewportToolbarDefs::DownArrowSize ) .HeightOverride( TransformViewportToolbarDefs::DownArrowSize ) [ SNew(SImage) .Image(FEditorStyle::GetBrush("ComboButton.Arrow")) .ColorAndOpacity(FLinearColor::Black) ] ] +SHorizontalBox::Slot() .FillWidth(1.0f) ] ] ] .OnGetMenuContent( InArgs._OnGetMenuContent ); } ChildSlot [ SNew(SHorizontalBox) //Checkbox concept +SHorizontalBox::Slot() .AutoWidth() [ ToggleControl->AsShared() ] // Black Seperator line +SHorizontalBox::Slot() .AutoWidth() [ SNew( SBox ) .WidthOverride( 1 ) [ SNew(SImage) .Image(FEditorStyle::GetBrush(EMultiBlockLocation::ToName(ButtonStyle,EMultiBlockLocation::Middle))) .ColorAndOpacity(FLinearColor::Black) ] ] // Menu dropdown concept +SHorizontalBox::Slot() .AutoWidth() [ MenuAnchor->AsShared() ] ]; }
void SViewportToolBarComboMenu::Construct( const FArguments& InArgs ) { FName ButtonStyle = FEditorStyle::Join(InArgs._Style.Get(), ".Button"); FName CheckboxStyle = FEditorStyle::Join(InArgs._Style.Get(), ".ToggleButton"); const FSlateIcon& Icon = InArgs._Icon.Get(); ParentToolBar = InArgs._ParentToolBar; TSharedPtr<SCheckBox> ToggleControl; { ToggleControl = SNew(SCheckBox) .Cursor( EMouseCursor::Default ) .Padding(FMargin( 4.0f )) .Style(FEditorStyle::Get(), EMultiBlockLocation::ToName(CheckboxStyle, InArgs._BlockLocation)) .OnCheckStateChanged(InArgs._OnCheckStateChanged) .ToolTipText(InArgs._ToggleButtonToolTip) .IsChecked(InArgs._IsChecked) .Content() [ SNew( SBox ) .WidthOverride( 16 ) .HeightOverride( 16 ) .HAlign(HAlign_Center) .VAlign(VAlign_Center) [ SNew(SImage) .Image(Icon.GetIcon()) ] ]; } { TSharedRef<SWidget> ButtonContents = SNew(SButton) .ButtonStyle( FEditorStyle::Get(), EMultiBlockLocation::ToName(ButtonStyle,EMultiBlockLocation::End) ) .ContentPadding( FMargin( 5.0f, 0.0f ) ) .ToolTipText(InArgs._MenuButtonToolTip) .OnClicked(this, &SViewportToolBarComboMenu::OnMenuClicked) [ SNew(SVerticalBox) +SVerticalBox::Slot() .AutoHeight() .HAlign(HAlign_Center) .VAlign(VAlign_Top) [ SNew(STextBlock) .TextStyle( FEditorStyle::Get(), FEditorStyle::Join( InArgs._Style.Get(), ".Label" ) ) .Text(InArgs._Label) ] +SVerticalBox::Slot() .AutoHeight() .VAlign(VAlign_Bottom) [ SNew(SHorizontalBox) +SHorizontalBox::Slot() .FillWidth(1.0f) +SHorizontalBox::Slot() .AutoWidth() [ SNew( SBox ) .WidthOverride( 4 ) .HeightOverride( 4 ) [ SNew(SImage) .Image(FEditorStyle::GetBrush("ComboButton.Arrow")) .ColorAndOpacity(FLinearColor::Black) ] ] +SHorizontalBox::Slot() .FillWidth(1.0f) ] ]; if (InArgs._MinDesiredButtonWidth > 0.0f) { ButtonContents = SNew(SBox) .MinDesiredWidth(InArgs._MinDesiredButtonWidth) [ ButtonContents ]; } MenuAnchor = SNew(SMenuAnchor) .Placement( MenuPlacement_BelowAnchor ) [ ButtonContents ] .OnGetMenuContent( InArgs._OnGetMenuContent ); } ChildSlot [ SNew(SHorizontalBox) //Checkbox concept +SHorizontalBox::Slot() .AutoWidth() [ ToggleControl->AsShared() ] // Black Separator line +SHorizontalBox::Slot() .AutoWidth() [ SNew(SBorder) .Padding(FMargin(1.0f, 0.0f, 0.0f, 0.0f)) .BorderImage(FEditorStyle::GetDefaultBrush()) .BorderBackgroundColor(FLinearColor::Black) ] // Menu dropdown concept +SHorizontalBox::Slot() .AutoWidth() [ MenuAnchor->AsShared() ] ]; }