mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-01 12:50:56 +00:00
Backend update from GZDoom.
Mainly remembering the game list's initial setting.
This commit is contained in:
parent
35c22c56c7
commit
673a913f92
9 changed files with 28 additions and 12 deletions
|
@ -9,6 +9,7 @@ set(ZWIDGET_SOURCES
|
|||
src/core/timer.cpp
|
||||
src/core/widget.cpp
|
||||
src/core/utf8reader.cpp
|
||||
src/core/pathfill.cpp
|
||||
src/core/schrift/schrift.cpp
|
||||
src/core/schrift/schrift.h
|
||||
src/core/picopng/picopng.cpp
|
||||
|
@ -38,6 +39,7 @@ set(ZWIDGET_INCLUDES
|
|||
include/zwidget/core/font.h
|
||||
include/zwidget/core/image.h
|
||||
include/zwidget/core/rect.h
|
||||
include/zwidget/core/pathfill.h
|
||||
include/zwidget/core/span_layout.h
|
||||
include/zwidget/core/timer.h
|
||||
include/zwidget/core/widget.h
|
||||
|
|
|
@ -14,6 +14,7 @@ public:
|
|||
|
||||
void AddItem(const std::string& text);
|
||||
int GetSelectedItem() const { return selectedItem; }
|
||||
void SetSelectedItem(int index);
|
||||
void ScrollToItem(int index);
|
||||
|
||||
void Activate();
|
||||
|
|
|
@ -22,6 +22,15 @@ void ListView::Activate()
|
|||
OnActivated();
|
||||
}
|
||||
|
||||
void ListView::SetSelectedItem(int index)
|
||||
{
|
||||
if (selectedItem != index && index >= 0 && index < items.size())
|
||||
{
|
||||
selectedItem = index;
|
||||
Update();
|
||||
}
|
||||
}
|
||||
|
||||
void ListView::ScrollToItem(int index)
|
||||
{
|
||||
double itemHeight = 20.0;
|
||||
|
@ -95,8 +104,7 @@ void ListView::OnMouseDown(const Point& pos, int key)
|
|||
int index = (int)((pos.y - 5.0 + scrollbar->GetPosition()) / 20.0);
|
||||
if (index >= 0 && (size_t)index < items.size())
|
||||
{
|
||||
selectedItem = index;
|
||||
Update();
|
||||
SetSelectedItem(index);
|
||||
ScrollToItem(selectedItem);
|
||||
}
|
||||
}
|
||||
|
@ -128,8 +136,7 @@ void ListView::OnKeyDown(EInputKey key)
|
|||
{
|
||||
if (selectedItem + 1 < (int)items.size())
|
||||
{
|
||||
selectedItem++;
|
||||
Update();
|
||||
SetSelectedItem(selectedItem + 1);
|
||||
}
|
||||
ScrollToItem(selectedItem);
|
||||
}
|
||||
|
@ -137,8 +144,7 @@ void ListView::OnKeyDown(EInputKey key)
|
|||
{
|
||||
if (selectedItem > 0)
|
||||
{
|
||||
selectedItem--;
|
||||
Update();
|
||||
SetSelectedItem(selectedItem - 1);
|
||||
}
|
||||
ScrollToItem(selectedItem);
|
||||
}
|
||||
|
|
|
@ -788,7 +788,6 @@ FShaderCollection::FShaderCollection(EPassType passType)
|
|||
{
|
||||
mEffectShaders[i] = NULL;
|
||||
}
|
||||
CompileNextShader();
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
|
|
@ -115,7 +115,7 @@ bool VkShaderManager::CompileNextShader()
|
|||
|
||||
VkShaderManager::VkShaderManager(VulkanRenderDevice* fb) : fb(fb)
|
||||
{
|
||||
CompileNextShader();
|
||||
//CompileNextShader();
|
||||
}
|
||||
|
||||
VkShaderManager::~VkShaderManager()
|
||||
|
|
|
@ -684,7 +684,7 @@ public:
|
|||
Resize(i);
|
||||
}
|
||||
|
||||
void push_back(T& elem)
|
||||
void push_back(const T& elem)
|
||||
{
|
||||
Push(elem);
|
||||
}
|
||||
|
|
|
@ -1050,6 +1050,10 @@ int RunGame()
|
|||
GetGames();
|
||||
auto usedgroups = SetupGame();
|
||||
|
||||
V_InitScreenSize();
|
||||
V_InitScreen();
|
||||
V_Init2();
|
||||
|
||||
bool colorset = false;
|
||||
for (int i = usedgroups.Size()-1; i >= 0; i--)
|
||||
{
|
||||
|
@ -1109,8 +1113,6 @@ int RunGame()
|
|||
auto ci = DumpCPUInfo(&CPU);
|
||||
Printf("%s", ci.GetChars());
|
||||
|
||||
V_InitScreenSize();
|
||||
V_InitScreen();
|
||||
StartWindow = FStartupScreen::CreateInstance(8);
|
||||
StartWindow->Progress();
|
||||
|
||||
|
@ -1173,7 +1175,6 @@ int RunGame()
|
|||
I_UpdateWindowTitle();
|
||||
DeleteStartupScreen();
|
||||
|
||||
V_Init2();
|
||||
while (!screen->CompileNextShader())
|
||||
{
|
||||
// here we can do some visual updates later
|
||||
|
|
|
@ -97,6 +97,7 @@ void ST_Clear()
|
|||
ReservedSpace GetReservedScreenSpace(int viewsize)
|
||||
{
|
||||
ReservedSpace res{};
|
||||
if (StatusBar == nullptr) return res;
|
||||
IFVIRTUALPTRNAME(StatusBar, NAME_RazeStatusBar, GetReservedScreenSpace)
|
||||
{
|
||||
VMReturn ret[2];
|
||||
|
|
|
@ -145,6 +145,12 @@ LauncherWindow::LauncherWindow(WadStuff* wads, int numwads, int defaultiwad, int
|
|||
GamesList->AddItem(work.GetChars());
|
||||
}
|
||||
|
||||
if (defaultiwad >= 0 && defaultiwad < numwads)
|
||||
{
|
||||
GamesList->SetSelectedItem(defaultiwad);
|
||||
GamesList->ScrollToItem(defaultiwad);
|
||||
}
|
||||
|
||||
Logo->SetImage(Image::LoadResource("widgets/banner.png"));
|
||||
|
||||
GamesList->SetFocus();
|
||||
|
|
Loading…
Reference in a new issue