diff options
| author | oy <Tom_Adams@web.de> | 2011-03-12 19:08:44 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-03-12 19:08:44 +0100 |
| commit | a04eb45354cfbdc32f92438400c11071ecf1bb6c (patch) | |
| tree | 59f5270b526b93a29618e314dd092162a83b9423 /src/game/client | |
| parent | 5c723f5d2fbbf70ad69874a6ca085726151ec0ae (diff) | |
| download | zcatch-a04eb45354cfbdc32f92438400c11071ecf1bb6c.tar.gz zcatch-a04eb45354cfbdc32f92438400c11071ecf1bb6c.zip | |
added rename button to the demo browser and updated localisation entries
Diffstat (limited to 'src/game/client')
| -rw-r--r-- | src/game/client/components/menus.cpp | 55 | ||||
| -rw-r--r-- | src/game/client/components/menus.h | 2 | ||||
| -rw-r--r-- | src/game/client/components/menus_demo.cpp | 19 |
3 files changed, 74 insertions, 2 deletions
diff --git a/src/game/client/components/menus.cpp b/src/game/client/components/menus.cpp index ed49f8b1..068d7451 100644 --- a/src/game/client/components/menus.cpp +++ b/src/game/client/components/menus.cpp @@ -855,6 +855,12 @@ int CMenus::Render() pExtraText = Localize("Are you sure that you want to delete the demo?"); ExtraAlign = -1; } + else if(m_Popup == POPUP_RENAME_DEMO) + { + pTitle = Localize("Rename demo"); + pExtraText = ""; + ExtraAlign = -1; + } else if(m_Popup == POPUP_SOUNDERROR) { pTitle = Localize("Sound error"); @@ -1070,6 +1076,55 @@ int CMenus::Render() } } } + else if(m_Popup == POPUP_RENAME_DEMO) + { + CUIRect Label, TextBox, Ok, Abort; + + Box.HSplitBottom(20.f, &Box, &Part); + Box.HSplitBottom(24.f, &Box, &Part); + Part.VMargin(80.0f, &Part); + + Part.VSplitMid(&Abort, &Ok); + + Ok.VMargin(20.0f, &Ok); + Abort.VMargin(20.0f, &Abort); + + static int s_ButtonAbort = 0; + if(DoButton_Menu(&s_ButtonAbort, Localize("Abort"), 0, &Abort) || m_EscapePressed) + m_Popup = POPUP_NONE; + + static int s_ButtonOk = 0; + if(DoButton_Menu(&s_ButtonOk, Localize("Ok"), 0, &Ok) || m_EnterPressed) + { + m_Popup = POPUP_NONE; + // rename demo + if(m_DemolistSelectedIndex >= 0 && !m_DemolistSelectedIsDir) + { + char aBufOld[512]; + str_format(aBufOld, sizeof(aBufOld), "%s/%s", m_aCurrentDemoFolder, m_lDemos[m_DemolistSelectedIndex].m_aFilename); + char aBufNew[512]; + str_format(aBufNew, sizeof(aBufNew), "%s/%s", m_aCurrentDemoFolder, m_aCurrentDemoFile); + if(Storage()->RenameFile(aBufOld, aBufNew, m_lDemos[m_DemolistSelectedIndex].m_StorageType)) + { + DemolistPopulate(); + DemolistOnUpdate(false); + } + else + PopupMessage(Localize("Error"), Localize("Unable to rename the demo"), Localize("Ok")); + } + } + + Box.HSplitBottom(60.f, &Box, &Part); + Box.HSplitBottom(24.f, &Box, &Part); + + Part.VSplitLeft(60.0f, 0, &Label); + Label.VSplitLeft(120.0f, 0, &TextBox); + TextBox.VSplitLeft(20.0f, 0, &TextBox); + TextBox.VSplitRight(60.0f, &TextBox, 0); + UI()->DoLabel(&Label, Localize("New name:"), 18.0f, -1); + static float Offset = 0.0f; + DoEditBox(&Offset, &TextBox, m_aCurrentDemoFile, sizeof(m_aCurrentDemoFile), 12.0f, &Offset); + } else if(m_Popup == POPUP_FIRST_LAUNCH) { CUIRect Label, TextBox; diff --git a/src/game/client/components/menus.h b/src/game/client/components/menus.h index 8bdd75ee..1a2e5cf5 100644 --- a/src/game/client/components/menus.h +++ b/src/game/client/components/menus.h @@ -97,6 +97,7 @@ class CMenus : public CComponent POPUP_PURE, POPUP_LANGUAGE, POPUP_DELETE_DEMO, + POPUP_RENAME_DEMO, POPUP_SOUNDERROR, POPUP_PASSWORD, POPUP_QUIT, @@ -185,6 +186,7 @@ class CMenus : public CComponent sorted_array<CDemoItem> m_lDemos; char m_aCurrentDemoFolder[256]; + char m_aCurrentDemoFile[64]; int m_DemolistSelectedIndex; bool m_DemolistSelectedIsDir; int m_DemolistStorageType; diff --git a/src/game/client/components/menus_demo.cpp b/src/game/client/components/menus_demo.cpp index 068d9c32..d489b8db 100644 --- a/src/game/client/components/menus_demo.cpp +++ b/src/game/client/components/menus_demo.cpp @@ -509,13 +509,15 @@ void CMenus::RenderDemoList(CUIRect MainView) RenderTools()->DrawUIRect(&MainView, ms_ColorTabbarActive, CUI::CORNER_ALL, 10.0f); MainView.Margin(10.0f, &MainView); - CUIRect ButtonBar, RefreshRect, PlayRect, DeleteRect, FileIcon; + CUIRect ButtonBar, RefreshRect, PlayRect, DeleteRect, RenameRect, FileIcon; MainView.HSplitBottom(ms_ButtonHeight+5.0f, &MainView, &ButtonBar); ButtonBar.HSplitTop(5.0f, 0, &ButtonBar); ButtonBar.VSplitRight(130.0f, &ButtonBar, &PlayRect); ButtonBar.VSplitLeft(130.0f, &RefreshRect, &ButtonBar); - ButtonBar.VSplitLeft(10.0f, &DeleteRect, &ButtonBar); + ButtonBar.VSplitLeft(10.0f, 0, &ButtonBar); ButtonBar.VSplitLeft(120.0f, &DeleteRect, &ButtonBar); + ButtonBar.VSplitLeft(10.0f, 0, &ButtonBar); + ButtonBar.VSplitLeft(120.0f, &RenameRect, &ButtonBar); static int s_DemoListId = 0; static float s_ScrollValue = 0; @@ -586,6 +588,19 @@ void CMenus::RenderDemoList(CUIRect MainView) { UI()->SetActiveItem(0); m_Popup = POPUP_DELETE_DEMO; + return; + } + } + + static int s_RenameButton = 0; + if(DoButton_Menu(&s_RenameButton, Localize("Rename"), 0, &RenameRect)) + { + if(m_DemolistSelectedIndex >= 0) + { + UI()->SetActiveItem(0); + m_Popup = POPUP_RENAME_DEMO; + str_copy(m_aCurrentDemoFile, m_lDemos[m_DemolistSelectedIndex].m_aFilename, sizeof(m_aCurrentDemoFile)); + return; } } } |