mirror of
https://github.com/Oibaf66/frodo-wii.git
synced 2024-11-22 11:29:24 +01:00
Allow saving selected theme in the prefs
This commit is contained in:
parent
86750bfb5e
commit
322faaf28b
@ -118,6 +118,8 @@ Prefs::Prefs()
|
||||
snprintf(this->NetworkServer, 64, "play.c64-network.org");
|
||||
this->NetworkPort = 46214;
|
||||
this->NetworkRegion = REGION_UNKNOWN;
|
||||
|
||||
strcpy(this->Theme, "default");
|
||||
}
|
||||
|
||||
|
||||
@ -315,6 +317,7 @@ bool Prefs::operator==(const Prefs &rhs) const
|
||||
&& this->NetworkRegion == rhs.NetworkRegion
|
||||
&& strcmp(this->NetworkServer, rhs.NetworkServer) == 0
|
||||
&& strcmp(this->NetworkName, rhs.NetworkName) == 0
|
||||
&& strcmp(this->Theme, rhs.Theme) == 0
|
||||
&& this->NetworkAvatar == rhs.NetworkAvatar
|
||||
);
|
||||
}
|
||||
@ -499,6 +502,8 @@ void Prefs::Load(const char *filename)
|
||||
NetworkRegion = atoi(value);
|
||||
else if (!strcmp(keyword, "NetworkAvatar"))
|
||||
NetworkAvatar = atoi(value);
|
||||
else if (!strcmp(keyword, "Theme"))
|
||||
strcpy(Theme, value);
|
||||
}
|
||||
}
|
||||
fclose(file);
|
||||
@ -610,6 +615,7 @@ bool Prefs::Save(const char *filename)
|
||||
maybe_write(file, strcmp(NetworkServer, TheDefaultPrefs.NetworkServer) != 0, "NetworkServer = %s\n", NetworkServer);
|
||||
maybe_write(file, NetworkPort != TheDefaultPrefs.NetworkPort, "NetworkPort = %d\n", NetworkPort);
|
||||
maybe_write(file, NetworkRegion != TheDefaultPrefs.NetworkRegion, "NetworkRegion = %d\n", NetworkRegion);
|
||||
maybe_write(file, strcmp(Theme, TheDefaultPrefs.Theme) != 0, "Theme = %s\n", Theme);
|
||||
fclose(file);
|
||||
ThePrefsOnDisk = *this;
|
||||
return true;
|
||||
|
@ -171,6 +171,7 @@ public:
|
||||
|
||||
int NetworkKey;
|
||||
uint16 NetworkAvatar;
|
||||
char Theme[128];
|
||||
};
|
||||
|
||||
|
||||
|
@ -572,7 +572,10 @@ void Gui::init()
|
||||
{
|
||||
Gui::gui = new Gui();
|
||||
|
||||
if (!Gui::gui->setTheme(ThePrefs.Theme))
|
||||
{
|
||||
/* Set the default theme */
|
||||
panic_if(!Gui::gui->setTheme("default"),
|
||||
panic_if (!Gui::gui->setTheme(ThePrefs.Theme),
|
||||
"Setting default theme failed\n");
|
||||
}
|
||||
}
|
||||
|
@ -43,11 +43,13 @@ public:
|
||||
char *p = xstrdup(msg);
|
||||
|
||||
p[strlen(p) - 1] = '\0';
|
||||
strcpy(Gui::gui->np->Theme, p + 1);
|
||||
if (!Gui::gui->setTheme(p + 1))
|
||||
{
|
||||
/* Something is wrong, reset to default */
|
||||
Gui::gui->setTheme("default");
|
||||
Gui::gui->pushDialogueBox(new DialogueBox(broken_theme_dlg));
|
||||
strcpy(Gui::gui->np->Theme, "default");
|
||||
}
|
||||
free(p);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user