From 55fa827b70f6bac8eb762872e2db55091498d46c Mon Sep 17 00:00:00 2001 From: codereader Date: Fri, 5 Feb 2021 10:26:55 +0100 Subject: [PATCH] #2132: Add tool item to camera toolbar --- install/ui/camwnd.fbp | 14 ++++++++++++++ install/ui/camwnd.xrc | 8 ++++++++ radiant/camera/CamWnd.cpp | 8 ++++++++ radiant/camera/CameraWndManager.cpp | 2 ++ 4 files changed, 32 insertions(+) diff --git a/install/ui/camwnd.fbp b/install/ui/camwnd.fbp index 29c8ad1cf8..66a89e6172 100644 --- a/install/ui/camwnd.fbp +++ b/install/ui/camwnd.fbp @@ -228,6 +228,20 @@ Clip plane out + + protected + + + Load From Art Provider; darkradiant:grid_toggle.png; wxART_TOOLBAR + 0 + wxID_ANY + wxITEM_CHECK + drawGridButton + drawGridButton + protected + + Draw 3D Grid + diff --git a/install/ui/camwnd.xrc b/install/ui/camwnd.xrc index 801313d306..d619314789 100644 --- a/install/ui/camwnd.xrc +++ b/install/ui/camwnd.xrc @@ -82,6 +82,14 @@ undefined.png + + + + Draw 3D Grid + + undefined.png + 1 + diff --git a/radiant/camera/CamWnd.cpp b/radiant/camera/CamWnd.cpp index fcc99e9d73..ad00c83ca2 100644 --- a/radiant/camera/CamWnd.cpp +++ b/radiant/camera/CamWnd.cpp @@ -137,6 +137,7 @@ void CamWnd::constructToolbar() const wxToolBarToolBase* flatShadeBtn = getToolBarToolByLabel(_camToolbar, "flatShadeBtn"); const wxToolBarToolBase* texturedBtn = getToolBarToolByLabel(_camToolbar, "texturedBtn"); const wxToolBarToolBase* lightingBtn = getToolBarToolByLabel(_camToolbar, "lightingBtn"); + const wxToolBarToolBase* gridButton = getToolBarToolByLabel(_camToolbar, "drawGridButton"); if (!GlobalRenderSystem().shaderProgramsAvailable()) { @@ -156,6 +157,9 @@ void CamWnd::constructToolbar() _mainWxWidget->GetParent()->Bind(wxEVT_COMMAND_TOOL_CLICKED,&CamWnd::onRenderModeButtonsChanged, this, flatShadeBtn->GetId()); _mainWxWidget->GetParent()->Bind(wxEVT_COMMAND_TOOL_CLICKED, &CamWnd::onRenderModeButtonsChanged, this, texturedBtn->GetId()); _mainWxWidget->GetParent()->Bind(wxEVT_COMMAND_TOOL_CLICKED, &CamWnd::onRenderModeButtonsChanged, this, lightingBtn->GetId()); + + auto toggleCameraGridEvent = GlobalEventManager().findEvent("ToggleCameraGrid"); + toggleCameraGridEvent->connectToolItem(gridButton); // Far clip buttons. _farClipInID = getToolID(_camToolbar, "clipPlaneInButton"); @@ -236,6 +240,10 @@ void CamWnd::constructGUIComponents() CamWnd::~CamWnd() { + const wxToolBarToolBase* gridButton = getToolBarToolByLabel(_camToolbar, "drawGridButton"); + auto toggleCameraGridEvent = GlobalEventManager().findEvent("ToggleCameraGrid"); + toggleCameraGridEvent->disconnectToolItem(gridButton); + // Stop the timer, it might still fire even during shutdown _timer.Stop(); diff --git a/radiant/camera/CameraWndManager.cpp b/radiant/camera/CameraWndManager.cpp index 89d1453920..440957bb61 100644 --- a/radiant/camera/CameraWndManager.cpp +++ b/radiant/camera/CameraWndManager.cpp @@ -69,6 +69,8 @@ void CameraWndManager::registerCommands() GlobalEventManager().addWidgetToggle("ToggleCamera"); GlobalEventManager().setToggled("ToggleCamera", true); + GlobalEventManager().addRegistryToggle("ToggleCameraGrid", RKEY_CAMERA_GRID_ENABLED); + GlobalEventManager().addKeyEvent("CameraMoveForward", std::bind(&CameraWndManager::onMoveForwardKey, this, std::placeholders::_1)); GlobalEventManager().addKeyEvent("CameraMoveBack", std::bind(&CameraWndManager::onMoveBackKey, this, std::placeholders::_1)); GlobalEventManager().addKeyEvent("CameraMoveLeft", std::bind(&CameraWndManager::onMoveLeftKey, this, std::placeholders::_1));