|
|
|
@@ -1013,7 +1013,7 @@ void MainScreen_SetActive(void) {
|
|
|
|
s->Activated = MainScreen_Activated;
|
|
|
|
s->Activated = MainScreen_Activated;
|
|
|
|
s->LoadState = MainScreen_Load;
|
|
|
|
s->LoadState = MainScreen_Load;
|
|
|
|
s->Tick = MainScreen_Tick;
|
|
|
|
s->Tick = MainScreen_Tick;
|
|
|
|
s->title = "ClassiCube";
|
|
|
|
s->title = "ClassiCube-PPC";
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef CC_BUILD_NETWORKING
|
|
|
|
#ifdef CC_BUILD_NETWORKING
|
|
|
|
s->onEnterWidget = (struct LWidget*)&s->btnLogin;
|
|
|
|
s->onEnterWidget = (struct LWidget*)&s->btnLogin;
|
|
|
|
@@ -1448,16 +1448,6 @@ static void SettingsScreen_ShowEmpty(struct LCheckbox* w) {
|
|
|
|
Options_SetBool(LOPT_SHOW_EMPTY, w->value);
|
|
|
|
Options_SetBool(LOPT_SHOW_EMPTY, w->value);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void SettingsScreen_DPIScaling(struct LCheckbox* w) {
|
|
|
|
|
|
|
|
#if defined CC_BUILD_WIN
|
|
|
|
|
|
|
|
DisplayInfo.DPIScaling = w->value;
|
|
|
|
|
|
|
|
Options_SetBool(OPT_DPI_SCALING, w->value);
|
|
|
|
|
|
|
|
Window_ShowDialog("Restart required", "You must restart ClassiCube before display scaling takes effect");
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
Window_ShowDialog("Restart required", "Display scaling is currently only supported on Windows");
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void SettingsScreen_AddWidgets(struct SettingsScreen* s) {
|
|
|
|
static void SettingsScreen_AddWidgets(struct SettingsScreen* s) {
|
|
|
|
LLine_Add(s, &s->sep, 380, set_sep);
|
|
|
|
LLine_Add(s, &s->sep, 380, set_sep);
|
|
|
|
LButton_Add(s, &s->btnMode, 110, 35, "Mode",
|
|
|
|
LButton_Add(s, &s->btnMode, 110, 35, "Mode",
|
|
|
|
@@ -1480,8 +1470,6 @@ static void SettingsScreen_AddWidgets(struct SettingsScreen* s) {
|
|
|
|
|
|
|
|
|
|
|
|
LCheckbox_Add(s, &s->cbEmpty, "Show empty servers in list",
|
|
|
|
LCheckbox_Add(s, &s->cbEmpty, "Show empty servers in list",
|
|
|
|
SettingsScreen_ShowEmpty, set_cbEmpty);
|
|
|
|
SettingsScreen_ShowEmpty, set_cbEmpty);
|
|
|
|
LCheckbox_Add(s, &s->cbScale, "Use display scaling",
|
|
|
|
|
|
|
|
SettingsScreen_DPIScaling, set_cbScale);
|
|
|
|
|
|
|
|
LButton_Add(s, &s->btnBack, 80, 35, "Back",
|
|
|
|
LButton_Add(s, &s->btnBack, 80, 35, "Back",
|
|
|
|
SwitchToMain, set_btnBack);
|
|
|
|
SwitchToMain, set_btnBack);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -1497,7 +1485,6 @@ static void SettingsScreen_Activated(struct LScreen* s_) {
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
LCheckbox_Set(&s->cbEmpty, Launcher_ShowEmptyServers);
|
|
|
|
LCheckbox_Set(&s->cbEmpty, Launcher_ShowEmptyServers);
|
|
|
|
LCheckbox_Set(&s->cbScale, DisplayInfo.DPIScaling);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SettingsScreen_SetActive(void) {
|
|
|
|
void SettingsScreen_SetActive(void) {
|
|
|
|
@@ -1586,8 +1573,8 @@ void ThemesScreen_SetActive(void) {
|
|
|
|
static struct UpdatesScreen {
|
|
|
|
static struct UpdatesScreen {
|
|
|
|
LScreen_Layout
|
|
|
|
LScreen_Layout
|
|
|
|
struct LLine seps[2];
|
|
|
|
struct LLine seps[2];
|
|
|
|
struct LButton btnRel[2], btnDev[2], btnBack;
|
|
|
|
struct LButton btnRel[2], btnBack;
|
|
|
|
struct LLabel lblYour, lblRel, lblDev, lblInfo, lblStatus;
|
|
|
|
struct LLabel lblYour, lblRel, lblInfo, lblStatus;
|
|
|
|
int buildProgress, buildIndex;
|
|
|
|
int buildProgress, buildIndex;
|
|
|
|
cc_bool pendingFetch, release;
|
|
|
|
cc_bool pendingFetch, release;
|
|
|
|
} UpdatesScreen CC_BIG_VAR;
|
|
|
|
} UpdatesScreen CC_BIG_VAR;
|
|
|
|
@@ -1600,19 +1587,15 @@ LAYOUTS upd_seps0[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, -100 } };
|
|
|
|
LAYOUTS upd_seps1[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, -5 } };
|
|
|
|
LAYOUTS upd_seps1[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, -5 } };
|
|
|
|
|
|
|
|
|
|
|
|
LAYOUTS upd_lblRel[] = { { ANCHOR_CENTRE, -20 }, { ANCHOR_CENTRE, -75 } };
|
|
|
|
LAYOUTS upd_lblRel[] = { { ANCHOR_CENTRE, -20 }, { ANCHOR_CENTRE, -75 } };
|
|
|
|
LAYOUTS upd_lblDev[] = { { ANCHOR_CENTRE, -30 }, { ANCHOR_CENTRE, 20 } };
|
|
|
|
|
|
|
|
LAYOUTS upd_lblInfo[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, 105 } };
|
|
|
|
LAYOUTS upd_lblInfo[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, 105 } };
|
|
|
|
LAYOUTS upd_lblStatus[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, 130 } };
|
|
|
|
LAYOUTS upd_lblStatus[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, 130 } };
|
|
|
|
LAYOUTS upd_btnBack[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, 170 } };
|
|
|
|
LAYOUTS upd_btnBack[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, 170 } };
|
|
|
|
|
|
|
|
|
|
|
|
/* Update button layouts when 1 build */
|
|
|
|
/* Update button layouts when 1 build */
|
|
|
|
LAYOUTS upd_btnRel0_1[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, -40 } };
|
|
|
|
LAYOUTS upd_btnRel0_1[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, -40 } };
|
|
|
|
LAYOUTS upd_btnDev0_1[] = { { ANCHOR_CENTRE, 0 }, { ANCHOR_CENTRE, 55 } };
|
|
|
|
|
|
|
|
/* Update button layouts when 2 builds */
|
|
|
|
/* Update button layouts when 2 builds */
|
|
|
|
LAYOUTS upd_btnRel0_2[] = { { ANCHOR_CENTRE, -80 }, { ANCHOR_CENTRE, -40 } };
|
|
|
|
LAYOUTS upd_btnRel0_2[] = { { ANCHOR_CENTRE, -80 }, { ANCHOR_CENTRE, -40 } };
|
|
|
|
LAYOUTS upd_btnRel1_2[] = { { ANCHOR_CENTRE, 80 }, { ANCHOR_CENTRE, -40 } };
|
|
|
|
LAYOUTS upd_btnRel1_2[] = { { ANCHOR_CENTRE, 80 }, { ANCHOR_CENTRE, -40 } };
|
|
|
|
LAYOUTS upd_btnDev0_2[] = { { ANCHOR_CENTRE, -80 }, { ANCHOR_CENTRE, 55 } };
|
|
|
|
|
|
|
|
LAYOUTS upd_btnDev1_2[] = { { ANCHOR_CENTRE, 80 }, { ANCHOR_CENTRE, 55 } };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CC_NOINLINE static void UpdatesScreen_FormatTime(cc_string* str, int delta) {
|
|
|
|
CC_NOINLINE static void UpdatesScreen_FormatTime(cc_string* str, int delta) {
|
|
|
|
@@ -1658,14 +1641,13 @@ static void UpdatesScreen_Format(struct LLabel* lbl, const char* prefix, cc_uint
|
|
|
|
|
|
|
|
|
|
|
|
static void UpdatesScreen_FormatBoth(struct UpdatesScreen* s) {
|
|
|
|
static void UpdatesScreen_FormatBoth(struct UpdatesScreen* s) {
|
|
|
|
UpdatesScreen_Format(&s->lblRel, "Latest release: ", CheckUpdateTask.relTimestamp);
|
|
|
|
UpdatesScreen_Format(&s->lblRel, "Latest release: ", CheckUpdateTask.relTimestamp);
|
|
|
|
UpdatesScreen_Format(&s->lblDev, "Latest dev build: ", CheckUpdateTask.devTimestamp);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void UpdatesScreen_UpdateHeader(struct UpdatesScreen* s, cc_string* str) {
|
|
|
|
static void UpdatesScreen_UpdateHeader(struct UpdatesScreen* s, cc_string* str) {
|
|
|
|
const char* message = s->release ? "release " : "dev build ";
|
|
|
|
const char* message;
|
|
|
|
|
|
|
|
if ( s->release) message = "&eFetching latest release ";
|
|
|
|
|
|
|
|
|
|
|
|
String_Format2(str, "&eFetching latest %c%c",
|
|
|
|
String_Format2(str, "%c%c", message, Updater_Info.builds[s->buildIndex].name);
|
|
|
|
message, Updater_Info.builds[s->buildIndex].name);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void UpdatesScreen_DoFetch(struct UpdatesScreen* s) {
|
|
|
|
static void UpdatesScreen_DoFetch(struct UpdatesScreen* s) {
|
|
|
|
@@ -1754,7 +1736,6 @@ static void UpdatesScreen_AddWidgets(struct UpdatesScreen* s) {
|
|
|
|
LLabel_Add(s, &s->lblYour, "Your build: (unknown)", upd_lblYour);
|
|
|
|
LLabel_Add(s, &s->lblYour, "Your build: (unknown)", upd_lblYour);
|
|
|
|
|
|
|
|
|
|
|
|
LLabel_Add(s, &s->lblRel, "Latest release: Checking..", upd_lblRel);
|
|
|
|
LLabel_Add(s, &s->lblRel, "Latest release: Checking..", upd_lblRel);
|
|
|
|
LLabel_Add(s, &s->lblDev, "Latest dev build: Checking..", upd_lblDev);
|
|
|
|
|
|
|
|
LLabel_Add(s, &s->lblStatus, "", upd_lblStatus);
|
|
|
|
LLabel_Add(s, &s->lblStatus, "", upd_lblStatus);
|
|
|
|
LLabel_Add(s, &s->lblInfo, Updater_Info.info, upd_lblInfo);
|
|
|
|
LLabel_Add(s, &s->lblInfo, Updater_Info.info, upd_lblInfo);
|
|
|
|
LButton_Add(s, &s->btnBack, 80, 35, "Back",
|
|
|
|
LButton_Add(s, &s->btnBack, 80, 35, "Back",
|
|
|
|
@@ -1763,15 +1744,11 @@ static void UpdatesScreen_AddWidgets(struct UpdatesScreen* s) {
|
|
|
|
if (builds >= 1) {
|
|
|
|
if (builds >= 1) {
|
|
|
|
LButton_Add(s, &s->btnRel[0], 130, 35, Updater_Info.builds[0].name,
|
|
|
|
LButton_Add(s, &s->btnRel[0], 130, 35, Updater_Info.builds[0].name,
|
|
|
|
UpdatesScreen_Rel_0, builds == 1 ? upd_btnRel0_1 : upd_btnRel0_2);
|
|
|
|
UpdatesScreen_Rel_0, builds == 1 ? upd_btnRel0_1 : upd_btnRel0_2);
|
|
|
|
LButton_Add(s, &s->btnDev[0], 130, 35, Updater_Info.builds[0].name,
|
|
|
|
|
|
|
|
UpdatesScreen_Dev_0, builds == 1 ? upd_btnDev0_1 : upd_btnDev0_2);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (builds >= 2) {
|
|
|
|
if (builds >= 2) {
|
|
|
|
LButton_Add(s, &s->btnRel[1], 130, 35, Updater_Info.builds[1].name,
|
|
|
|
LButton_Add(s, &s->btnRel[1], 130, 35, Updater_Info.builds[1].name,
|
|
|
|
UpdatesScreen_Rel_1, upd_btnRel1_2);
|
|
|
|
UpdatesScreen_Rel_1, upd_btnRel1_2);
|
|
|
|
LButton_Add(s, &s->btnDev[1], 130, 35, Updater_Info.builds[1].name,
|
|
|
|
|
|
|
|
UpdatesScreen_Dev_1, upd_btnDev1_2);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|