diff options
Diffstat (limited to 'src/game')
| -rw-r--r-- | src/game/client/components/menus.cpp | 14 | ||||
| -rw-r--r-- | src/game/client/components/menus.h | 1 | ||||
| -rw-r--r-- | src/game/client/components/menus_demo.cpp | 19 |
3 files changed, 27 insertions, 7 deletions
diff --git a/src/game/client/components/menus.cpp b/src/game/client/components/menus.cpp index 42f68978..f1250914 100644 --- a/src/game/client/components/menus.cpp +++ b/src/game/client/components/menus.cpp @@ -91,6 +91,7 @@ CMenus::CMenus() m_EscapePressed = false; m_EnterPressed = false; + m_DeletePressed = false; m_NumInputEvents = 0; m_LastInput = time_get(); @@ -1029,9 +1030,14 @@ bool CMenus::OnInput(IInput::CEvent e) if(IsActive()) { - // special for popups - if(e.m_Flags&IInput::FLAG_PRESS && e.m_Key == KEY_RETURN) - m_EnterPressed = true; + if(e.m_Flags&IInput::FLAG_PRESS) + { + // special for popups + if(e.m_Key == KEY_RETURN) + m_EnterPressed = true; + else if(e.m_Key == KEY_DELETE) + m_DeletePressed = true; + } if(m_NumInputEvents < MAX_INPUTEVENTS) m_aInputEvents[m_NumInputEvents++] = e; @@ -1116,6 +1122,7 @@ void CMenus::OnRender() { m_EscapePressed = false; m_EnterPressed = false; + m_DeletePressed = false; m_NumInputEvents = 0; return; } @@ -1183,6 +1190,7 @@ void CMenus::OnRender() m_EscapePressed = false; m_EnterPressed = false; + m_DeletePressed = false; m_NumInputEvents = 0; } diff --git a/src/game/client/components/menus.h b/src/game/client/components/menus.h index de711a1e..ec2ff264 100644 --- a/src/game/client/components/menus.h +++ b/src/game/client/components/menus.h @@ -146,6 +146,7 @@ class CMenus : public CComponent // bool m_EscapePressed; bool m_EnterPressed; + bool m_DeletePressed; // for call vote int m_CallvoteSelectedOption; diff --git a/src/game/client/components/menus_demo.cpp b/src/game/client/components/menus_demo.cpp index ae4873c1..5321b087 100644 --- a/src/game/client/components/menus_demo.cpp +++ b/src/game/client/components/menus_demo.cpp @@ -4,6 +4,7 @@ #include <engine/demo.h> #include <engine/keys.h> #include <engine/graphics.h> +#include <engine/storage.h> #include <game/client/render.h> #include <game/client/gameclient.h> @@ -472,10 +473,11 @@ void CMenus::RenderDemoList(CUIRect MainView) bool Activated = false; s_SelectedItem = UiDoListboxEnd(&s_ScrollValue, &Activated); - CUIRect RefreshRect, PlayRect; - ButtonBar.VSplitRight(250.0f, &ButtonBar, &RefreshRect); - RefreshRect.VSplitRight(130.0f, &RefreshRect, &PlayRect); - PlayRect.VSplitRight(120.0f, 0x0, &PlayRect); + CUIRect RefreshRect, PlayRect, DeleteRect; + ButtonBar.VSplitRight(130.0f, &ButtonBar, &PlayRect); + ButtonBar.VSplitLeft(130.0f, &RefreshRect, &ButtonBar); + ButtonBar.VSplitLeft(10.0f, &DeleteRect, &ButtonBar); + ButtonBar.VSplitLeft(120.0f, &DeleteRect, &ButtonBar); bool IsDir = false; if(s_SelectedItem >= 0 && s_SelectedItem < m_lDemos.size()) @@ -524,6 +526,15 @@ void CMenus::RenderDemoList(CUIRect MainView) } } + static int s_DeleteButton = 0; + if(DoButton_Menu(&s_DeleteButton, Localize("Delete"), 0, &DeleteRect) || m_DeletePressed) + { + if(s_SelectedItem >= 0 && s_SelectedItem < m_lDemos.size() && !IsDir) + { + Storage()->RemoveFile(m_lDemos[s_SelectedItem].m_aFilename); + DemolistPopulate(); + } + } } void CMenus::DemoSetParentDirectory() |