Advertisement
Guest User

Slate MenuBar generator

a guest
Mar 25th, 2014
466
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.23 KB | None | 0 0
  1.  
  2. void SSearchBoxWidget::ViewEntries(FMenuBuilder& MenuBuilder)
  3. {
  4.     MenuBuilder.AddSubMenu(FText::FromString("Show/ Hide Layers"),FText::FromString(FString("Select which layers are shown")),FNewMenuDelegate::CreateRaw(this, &SSearchBoxWidget::HideEntries));
  5.     MenuBuilder.BeginSection(NAME_None,FText::FromString(FString("DRAWERS")));
  6.     MenuBuilder.AddMenuEntry(FText::FromString("Toggle drawer system"),FText::FromString("Enables or disables the drawer system"),FSlateIcon::FSlateIcon(),FUIAction(FExecuteAction::CreateSP(this,&SSearchBoxWidget::ToggleDrawerList),FCanExecuteAction(),FIsActionChecked::CreateSP(this,&SSearchBoxWidget::GetDrawerListToggle)),NAME_None,EUserInterfaceActionType::ToggleButton);
  7.     MenuBuilder.BeginSection(NAME_None,FText::FromString(FString("CONSTRUCTION")));
  8.     MenuBuilder.AddMenuEntry(FText::FromString("Begin Phasing"), FText::FromString("Animates the contruction phasing"), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("phasing"))), NAME_None);
  9.    
  10.     MenuBuilder.SetStyle(&FEditorStyle::Get(), "MyGame.MenuStyle");
  11. }
  12.  
  13. void SSearchBoxWidget::FileEntries(FMenuBuilder& MenuBuilder)
  14. {
  15.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Restart")), FText::FromString(FString("Restarts the visualisation")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("restart"))), NAME_None);
  16.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Quit")), FText::FromString(FString("Exits the visualisation")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("quit"))), NAME_None);
  17.    
  18.     MenuBuilder.SetStyle(&FEditorStyle::Get(), "MyGame.MenuStyle");
  19. }
  20.  
  21. void SSearchBoxWidget::NavigateEntries(FMenuBuilder& MenuBuilder)
  22. {
  23.     MenuBuilder.BeginSection(NAME_None,FText::FromString(FString("PATHS")));
  24.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Architectural")), FText::FromString(FString("An architecturally oriented fly-through")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("path_architectural"))), NAME_None);
  25.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Navigational")), FText::FromString(FString("A navigation themed fly-through")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("path_navigational"))), NAME_None);
  26.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Service Tracking")), FText::FromString(FString("A fly-through demonstrating building services")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("path_service"))), NAME_None);
  27.     MenuBuilder.EndSection();
  28.     MenuBuilder.BeginSection(NAME_None,FText::FromString(FString("LOCATIONS")));
  29.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Front Door")), FText::GetEmpty(), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("location_front"))), NAME_None);
  30.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Rear Service Entry")), FText::GetEmpty(), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("location_rear"))), NAME_None);
  31.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Roof-top")), FText::GetEmpty(), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("location_roof"))), NAME_None);
  32.     MenuBuilder.EndSection();
  33.  
  34.     MenuBuilder.SetStyle(&FEditorStyle::Get(), "MyGame.MenuStyle");
  35. }
  36.  
  37.  
  38. void SSearchBoxWidget::ToolsEntries(FMenuBuilder& MenuBuilder)
  39. {
  40.     TSharedRef<SWidget> SliderWidget = SNew(SSlider)
  41.         .Value(0.5)
  42.         .OnValueChanged(this,&SSearchBoxWidget::SunSliderChanged);
  43.  
  44.     MenuBuilder.BeginSection(NAME_None,FText::FromString(FString("CAPTURE")));
  45.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Regular Screenshot")), FText::FromString(FString("Captures an image of the visualisation")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("screenshot_regular"))), NAME_None);
  46.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Hi-Res Screenshot")), FText::FromString(FString("Captures a high-resolution image of the visualisation")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("screenshot_high"))), NAME_None);
  47.     MenuBuilder.BeginSection(NAME_None,FText::FromString(FString("MEASURE")));
  48.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Point to Point")), FText::FromString(FString("A tool to measure between two points")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("measure_point"))), NAME_None);
  49.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Laser")), FText::FromString(FString("A tool to measure the perpendicular distance from an object")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("measure_laser"))), NAME_None);
  50.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Clear All")), FText::FromString(FString("Clear all measurements on screen")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("measure_clear"))), NAME_None);
  51.     MenuBuilder.BeginSection(NAME_None,FText::FromString(FString("SELECT")));
  52.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Selection Mode")), FText::FromString(FString("The default mode, allows objects to be selected with the cursor")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::MenuItemClicked, FString("select_mode"))), NAME_None);
  53.     MenuBuilder.BeginSection(NAME_None,FText::FromString(FString("SUN SETTINGS")));
  54.     MenuBuilder.AddMenuEntry(FText::FromString(FString("Modify Sun Settings")), FText::FromString(FString("Opens a window to change the sun settings")), FSlateIcon(), FUIAction(FExecuteAction::CreateSP(this, &SSearchBoxWidget::SummonSunSystemSettings)), NAME_None);
  55.     MenuBuilder.SetStyle(&FEditorStyle::Get(), "MyGame.MenuStyle");
  56. }
  57.  
  58.  
  59.     TSharedRef< FUICommandList > CommandList(new FUICommandList());
  60.  
  61.     FMenuBarBuilder MenuBarBuilder( CommandList );
  62.     {
  63.         MenuBarBuilder.AddPullDownMenu(FText::FromString("FILE"),FText::GetEmpty(),FNewMenuDelegate::CreateRaw(this, &SSearchBoxWidget::FileEntries));
  64.         MenuBarBuilder.AddPullDownMenu(FText::FromString("NAVIGATE"),FText::GetEmpty(),FNewMenuDelegate::CreateRaw(this, &SSearchBoxWidget::NavigateEntries));
  65.         MenuBarBuilder.AddPullDownMenu(FText::FromString("TOOLS"),FText::GetEmpty(),FNewMenuDelegate::CreateRaw(this, &SSearchBoxWidget::ToolsEntries));
  66.         MenuBarBuilder.AddPullDownMenu(FText::FromString("VIEW"),FText::GetEmpty(),FNewMenuDelegate::CreateRaw(this, &SSearchBoxWidget::ViewEntries));
  67.         //MenuBarBuilder.AddMenuEntry(FUIAction(),matineeControlWidget);
  68.         MenuBarBuilder.SetStyle(&FEditorStyle::Get(),"MyGame.MenuStyle");
  69.     }
  70.  
  71. And then the widget definition:
  72.  
  73.     ChildSlot
  74.         .VAlign(VAlign_Fill)
  75.         .HAlign(HAlign_Fill)
  76.         [
  77.             SNew(SOverlay)
  78.             +SOverlay::Slot()
  79.             .HAlign(HAlign_Left)
  80.             .VAlign(VAlign_Top)
  81.             [
  82.                 SNew(SVerticalBox)
  83.                 +SVerticalBox::Slot()
  84.                 .AutoHeight()
  85.                 [
  86.                     SNew(SBox)
  87.                     .WidthOverride(SSearchBoxWidget::ScreenWidth()*5)
  88.                     [
  89.                         MenuBarBuilder.MakeWidget()
  90.                     ]
  91.                 ]
  92.             ]
  93.         ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement