mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-15 10:35:11 -04:00
Launcher: Simplify button initialisation code
This commit is contained in:
parent
656497b0ea
commit
09bfca5217
191
src/LScreens.c
191
src/LScreens.c
@ -221,41 +221,37 @@ static void UseModeEnhanced(void* w) { ChooseMode_Click(false, false); }
|
|||||||
static void UseModeClassicHax(void* w) { ChooseMode_Click(true, true); }
|
static void UseModeClassicHax(void* w) { ChooseMode_Click(true, true); }
|
||||||
static void UseModeClassic(void* w) { ChooseMode_Click(true, false); }
|
static void UseModeClassic(void* w) { ChooseMode_Click(true, false); }
|
||||||
|
|
||||||
static void ChooseModeScreen_AddWidgets(struct ChooseModeScreen* s) {
|
|
||||||
LLine_Init(s, &s->seps[0], 490, mode_seps0);
|
|
||||||
LLine_Init(s, &s->seps[1], 490, mode_seps1);
|
|
||||||
|
|
||||||
LButton_Init(s, &s->btnEnhanced, 145, 35, "Enhanced", mode_btnEnhanced);
|
|
||||||
LLabel_Init(s, &s->lblEnhanced[0], "&eEnables custom blocks, changing env", mode_lblEnhanced0);
|
|
||||||
LLabel_Init(s, &s->lblEnhanced[1], "&esettings, longer messages, and more", mode_lblEnhanced1);
|
|
||||||
|
|
||||||
LButton_Init(s, &s->btnClassicHax, 145, 35, "Classic +hax", mode_btnClassicHax);
|
|
||||||
LLabel_Init(s, &s->lblClassicHax[0], "&eSame as Classic mode, except that", mode_lblClassicHax0);
|
|
||||||
LLabel_Init(s, &s->lblClassicHax[1], "&ehacks (noclip/fly/speed) are enabled", mode_lblClassicHax1);
|
|
||||||
|
|
||||||
LButton_Init(s, &s->btnClassic, 145, 35, "Classic", mode_btnClassic);
|
|
||||||
LLabel_Init(s, &s->lblClassic[0], "&eOnly uses blocks and features from", mode_lblClassic0);
|
|
||||||
LLabel_Init(s, &s->lblClassic[1], "ðe original minecraft classic", mode_lblClassic1);
|
|
||||||
|
|
||||||
if (s->firstTime) {
|
|
||||||
LLabel_Init(s, &s->lblHelp, "&eClick &fEnhanced &eif you're not sure which mode to choose.", mode_lblHelp);
|
|
||||||
} else {
|
|
||||||
LButton_Init(s, &s->btnBack, 80, 35, "Back", mode_btnBack);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ChooseModeScreen_Show(struct LScreen* s_) {
|
static void ChooseModeScreen_Show(struct LScreen* s_) {
|
||||||
struct ChooseModeScreen* s = (struct ChooseModeScreen*)s_;
|
struct ChooseModeScreen* s = (struct ChooseModeScreen*)s_;
|
||||||
|
|
||||||
s->widgets = chooseMode_widgets;
|
s->widgets = chooseMode_widgets;
|
||||||
s->maxWidgets = Array_Elems(chooseMode_widgets);
|
s->maxWidgets = Array_Elems(chooseMode_widgets);
|
||||||
s->numWidgets = 0;
|
s->numWidgets = 0;
|
||||||
ChooseModeScreen_AddWidgets(s);
|
|
||||||
|
|
||||||
s->btnEnhanced.OnClick = UseModeEnhanced;
|
LLine_Init(s, &s->seps[0], 490, mode_seps0);
|
||||||
s->btnClassicHax.OnClick = UseModeClassicHax;
|
LLine_Init(s, &s->seps[1], 490, mode_seps1);
|
||||||
s->btnClassic.OnClick = UseModeClassic;
|
|
||||||
s->btnBack.OnClick = SwitchToSettings;
|
LButton_Init(s, &s->btnEnhanced, 145, 35, "Enhanced",
|
||||||
|
UseModeEnhanced, mode_btnEnhanced);
|
||||||
|
LLabel_Init(s, &s->lblEnhanced[0], "&eEnables custom blocks, changing env", mode_lblEnhanced0);
|
||||||
|
LLabel_Init(s, &s->lblEnhanced[1], "&esettings, longer messages, and more", mode_lblEnhanced1);
|
||||||
|
|
||||||
|
LButton_Init(s, &s->btnClassicHax, 145, 35, "Classic +hax",
|
||||||
|
UseModeClassicHax, mode_btnClassicHax);
|
||||||
|
LLabel_Init(s, &s->lblClassicHax[0], "&eSame as Classic mode, except that", mode_lblClassicHax0);
|
||||||
|
LLabel_Init(s, &s->lblClassicHax[1], "&ehacks (noclip/fly/speed) are enabled", mode_lblClassicHax1);
|
||||||
|
|
||||||
|
LButton_Init(s, &s->btnClassic, 145, 35, "Classic",
|
||||||
|
UseModeClassic, mode_btnClassic);
|
||||||
|
LLabel_Init(s, &s->lblClassic[0], "&eOnly uses blocks and features from", mode_lblClassic0);
|
||||||
|
LLabel_Init(s, &s->lblClassic[1], "ðe original minecraft classic", mode_lblClassic1);
|
||||||
|
|
||||||
|
if (s->firstTime) {
|
||||||
|
LLabel_Init(s, &s->lblHelp, "&eClick &fEnhanced &eif you're not sure which mode to choose.", mode_lblHelp);
|
||||||
|
} else {
|
||||||
|
LButton_Init(s, &s->btnBack, 80, 35, "Back",
|
||||||
|
SwitchToSettings, mode_btnBack);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChooseModeScreen_SetActive(cc_bool firstTime) {
|
void ChooseModeScreen_SetActive(cc_bool firstTime) {
|
||||||
@ -402,7 +398,8 @@ static void ColoursScreen_Init(struct LScreen* s_) {
|
|||||||
s->widgets = colours_widgets;
|
s->widgets = colours_widgets;
|
||||||
s->maxWidgets = Array_Elems(colours_widgets);
|
s->maxWidgets = Array_Elems(colours_widgets);
|
||||||
|
|
||||||
for (i = 0; i < 5 * 3; i++) {
|
for (i = 0; i < 5 * 3; i++)
|
||||||
|
{
|
||||||
s->iptColours[i].inputType = KEYBOARD_TYPE_INTEGER;
|
s->iptColours[i].inputType = KEYBOARD_TYPE_INTEGER;
|
||||||
s->iptColours[i].TextChanged = ColoursScreen_TextChanged;
|
s->iptColours[i].TextChanged = ColoursScreen_TextChanged;
|
||||||
LInput_Init(s, &s->iptColours[i], 55, NULL, clr_iptColours[i]);
|
LInput_Init(s, &s->iptColours[i], 55, NULL, clr_iptColours[i]);
|
||||||
@ -417,11 +414,11 @@ static void ColoursScreen_Init(struct LScreen* s_) {
|
|||||||
LLabel_Init(s, &s->lblRGB[0], "Red", clr_lblRGB0);
|
LLabel_Init(s, &s->lblRGB[0], "Red", clr_lblRGB0);
|
||||||
LLabel_Init(s, &s->lblRGB[1], "Green", clr_lblRGB1);
|
LLabel_Init(s, &s->lblRGB[1], "Green", clr_lblRGB1);
|
||||||
LLabel_Init(s, &s->lblRGB[2], "Blue", clr_lblRGB2);
|
LLabel_Init(s, &s->lblRGB[2], "Blue", clr_lblRGB2);
|
||||||
LButton_Init(s, &s->btnBack, 80, 35, "Back", clr_btnBack);
|
LButton_Init(s, &s->btnBack, 80, 35, "Back",
|
||||||
|
SwitchToThemes, clr_btnBack);
|
||||||
|
|
||||||
LCheckbox_Init(s, &s->cbClassic, "Classic style", clr_cbClassic);
|
LCheckbox_Init(s, &s->cbClassic, "Classic style", clr_cbClassic);
|
||||||
s->cbClassic.ValueChanged = ColoursScreen_ToggleBG;
|
s->cbClassic.ValueChanged = ColoursScreen_ToggleBG;
|
||||||
s->btnBack.OnClick = SwitchToThemes;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ColoursScreen_Show(struct LScreen* s_) {
|
static void ColoursScreen_Show(struct LScreen* s_) {
|
||||||
@ -559,16 +556,16 @@ static void DirectConnectScreen_Init(struct LScreen* s_) {
|
|||||||
LInput_Init(s, &s->iptAddress, 330, "IP address:Port number..", dc_iptAddress);
|
LInput_Init(s, &s->iptAddress, 330, "IP address:Port number..", dc_iptAddress);
|
||||||
LInput_Init(s, &s->iptMppass, 330, "Mppass..", dc_iptMppass);
|
LInput_Init(s, &s->iptMppass, 330, "Mppass..", dc_iptMppass);
|
||||||
|
|
||||||
LButton_Init(s, &s->btnConnect, 110, 35, "Connect", dc_btnConnect);
|
LButton_Init(s, &s->btnConnect, 110, 35, "Connect",
|
||||||
LButton_Init(s, &s->btnBack, 80, 35, "Back", dc_btnBack);
|
DirectConnectScreen_StartClient, dc_btnConnect);
|
||||||
|
LButton_Init(s, &s->btnBack, 80, 35, "Back",
|
||||||
|
SwitchToMain, dc_btnBack);
|
||||||
LLabel_Init(s, &s->lblStatus, "", dc_lblStatus);
|
LLabel_Init(s, &s->lblStatus, "", dc_lblStatus);
|
||||||
|
|
||||||
s->iptUsername.ClipboardFilter = DirectConnectScreen_UrlFilter;
|
s->iptUsername.ClipboardFilter = DirectConnectScreen_UrlFilter;
|
||||||
s->iptAddress.ClipboardFilter = DirectConnectScreen_UrlFilter;
|
s->iptAddress.ClipboardFilter = DirectConnectScreen_UrlFilter;
|
||||||
s->iptMppass.ClipboardFilter = DirectConnectScreen_UrlFilter;
|
s->iptMppass.ClipboardFilter = DirectConnectScreen_UrlFilter;
|
||||||
|
|
||||||
s->btnConnect.OnClick = DirectConnectScreen_StartClient;
|
|
||||||
s->btnBack.OnClick = SwitchToMain;
|
|
||||||
/* Init input text from options */
|
/* Init input text from options */
|
||||||
DirectConnectScreen_Load(s);
|
DirectConnectScreen_Load(s);
|
||||||
}
|
}
|
||||||
@ -621,11 +618,11 @@ static void MFAScreen_Init(struct LScreen* s_) {
|
|||||||
|
|
||||||
LLabel_Init(s, &s->lblTitle, "", mfa_lblTitle);
|
LLabel_Init(s, &s->lblTitle, "", mfa_lblTitle);
|
||||||
LInput_Init(s, &s->iptCode, 280, "Login code..", mfa_iptCode);
|
LInput_Init(s, &s->iptCode, 280, "Login code..", mfa_iptCode);
|
||||||
LButton_Init(s, &s->btnSignIn, 100, 35, "Sign in", mfa_btnSignIn);
|
LButton_Init(s, &s->btnSignIn, 100, 35, "Sign in",
|
||||||
LButton_Init(s, &s->btnCancel, 100, 35, "Cancel", mfa_btnCancel);
|
MFAScreen_SignIn, mfa_btnSignIn);
|
||||||
|
LButton_Init(s, &s->btnCancel, 100, 35, "Cancel",
|
||||||
|
MFAScreen_Cancel, mfa_btnCancel);
|
||||||
|
|
||||||
s->btnSignIn.OnClick = MFAScreen_SignIn;
|
|
||||||
s->btnCancel.OnClick = MFAScreen_Cancel;
|
|
||||||
s->iptCode.inputType = KEYBOARD_TYPE_INTEGER;
|
s->iptCode.inputType = KEYBOARD_TYPE_INTEGER;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -804,32 +801,31 @@ static void MainScreen_Init(struct LScreen* s_) {
|
|||||||
|
|
||||||
LInput_Init(s, &s->iptUsername, 280, "Username..", main_iptUsername);
|
LInput_Init(s, &s->iptUsername, 280, "Username..", main_iptUsername);
|
||||||
LInput_Init(s, &s->iptPassword, 280, "Password..", main_iptPassword);
|
LInput_Init(s, &s->iptPassword, 280, "Password..", main_iptPassword);
|
||||||
LButton_Init(s, &s->btnLogin, 100, 35, "Sign in", main_btnLogin);
|
LButton_Init(s, &s->btnLogin, 100, 35, "Sign in",
|
||||||
LButton_Init(s, &s->btnResume, 100, 35, "Resume", main_btnResume);
|
MainScreen_Login, main_btnLogin);
|
||||||
|
LButton_Init(s, &s->btnResume, 100, 35, "Resume",
|
||||||
|
MainScreen_Resume, main_btnResume);
|
||||||
|
|
||||||
LLabel_Init(s, &s->lblStatus, "", main_lblStatus);
|
LLabel_Init(s, &s->lblStatus, "", main_lblStatus);
|
||||||
LButton_Init(s, &s->btnDirect, 200, 35, "Direct connect", main_btnDirect);
|
LButton_Init(s, &s->btnDirect, 200, 35, "Direct connect",
|
||||||
LButton_Init(s, &s->btnSPlayer, 200, 35, "Singleplayer", main_btnSPlayer);
|
SwitchToDirectConnect, main_btnDirect);
|
||||||
|
LButton_Init(s, &s->btnSPlayer, 200, 35, "Singleplayer",
|
||||||
|
MainScreen_Singleplayer, main_btnSPlayer);
|
||||||
|
|
||||||
LLabel_Init(s, &s->lblUpdate, "&eChecking..",
|
LLabel_Init(s, &s->lblUpdate, "&eChecking..",
|
||||||
Updater_Supported ? main_lblUpdate_N : main_lblUpdate_H);
|
Updater_Supported ? main_lblUpdate_N : main_lblUpdate_H);
|
||||||
if (Process_OpenSupported) {
|
if (Process_OpenSupported) {
|
||||||
LButton_Init(s, &s->btnRegister, 100, 35, "Register", main_btnRegister);
|
LButton_Init(s, &s->btnRegister, 100, 35, "Register",
|
||||||
|
MainScreen_Register, main_btnRegister);
|
||||||
}
|
}
|
||||||
|
|
||||||
LButton_Init(s, &s->btnOptions, 100, 35, "Options", main_btnOptions);
|
LButton_Init(s, &s->btnOptions, 100, 35, "Options",
|
||||||
|
SwitchToSettings, main_btnOptions);
|
||||||
if (Updater_Supported) {
|
if (Updater_Supported) {
|
||||||
LButton_Init(s, &s->btnUpdates, 100, 35, "Updates", main_btnUpdates);
|
LButton_Init(s, &s->btnUpdates, 100, 35, "Updates",
|
||||||
|
SwitchToUpdates, main_btnUpdates);
|
||||||
}
|
}
|
||||||
|
|
||||||
s->btnLogin.OnClick = MainScreen_Login;
|
|
||||||
s->btnResume.OnClick = MainScreen_Resume;
|
|
||||||
s->btnDirect.OnClick = SwitchToDirectConnect;
|
|
||||||
s->btnSPlayer.OnClick = MainScreen_Singleplayer;
|
|
||||||
s->btnRegister.OnClick = MainScreen_Register;
|
|
||||||
s->btnOptions.OnClick = SwitchToSettings;
|
|
||||||
s->btnUpdates.OnClick = SwitchToUpdates;
|
|
||||||
|
|
||||||
s->btnResume.OnHover = MainScreen_ResumeHover;
|
s->btnResume.OnHover = MainScreen_ResumeHover;
|
||||||
s->btnResume.OnUnhover = MainScreen_ResumeUnhover;
|
s->btnResume.OnUnhover = MainScreen_ResumeUnhover;
|
||||||
|
|
||||||
@ -1015,10 +1011,10 @@ static void CheckResourcesScreen_Init(struct LScreen* s_) {
|
|||||||
LLabel_Init(s, &s->lblLine2, "Okay to download?", cres_lblLine2);
|
LLabel_Init(s, &s->lblLine2, "Okay to download?", cres_lblLine2);
|
||||||
LLabel_Init(s, &s->lblStatus, "", cres_lblStatus);
|
LLabel_Init(s, &s->lblStatus, "", cres_lblStatus);
|
||||||
|
|
||||||
LButton_Init(s, &s->btnYes, 70, 35, "Yes", cres_btnYes);
|
LButton_Init(s, &s->btnYes, 70, 35, "Yes",
|
||||||
LButton_Init(s, &s->btnNo, 70, 35, "No", cres_btnNo);
|
CheckResourcesScreen_Yes, cres_btnYes);
|
||||||
s->btnYes.OnClick = CheckResourcesScreen_Yes;
|
LButton_Init(s, &s->btnNo, 70, 35, "No",
|
||||||
s->btnNo.OnClick = CheckResourcesScreen_Next;
|
CheckResourcesScreen_Next, cres_btnNo);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CheckResourcesScreen_Show(struct LScreen* s_) {
|
static void CheckResourcesScreen_Show(struct LScreen* s_) {
|
||||||
@ -1086,10 +1082,9 @@ static void FetchResourcesScreen_Init(struct LScreen* s_) {
|
|||||||
s->lblStatus.small = true;
|
s->lblStatus.small = true;
|
||||||
|
|
||||||
LLabel_Init(s, &s->lblStatus, "", fres_lblStatus);
|
LLabel_Init(s, &s->lblStatus, "", fres_lblStatus);
|
||||||
LButton_Init(s, &s->btnCancel, 120, 35, "Cancel", fres_btnCancel);
|
LButton_Init(s, &s->btnCancel, 120, 35, "Cancel",
|
||||||
|
CheckResourcesScreen_Next, fres_btnCancel);
|
||||||
LSlider_Init(s, &s->sdrProgress, 200, 12, BitmapColor_RGB(0, 220, 0), fres_sdrProgress);
|
LSlider_Init(s, &s->sdrProgress, 200, 12, BitmapColor_RGB(0, 220, 0), fres_sdrProgress);
|
||||||
|
|
||||||
s->btnCancel.OnClick = CheckResourcesScreen_Next;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void FetchResourcesScreen_Error(struct HttpRequest* req) {
|
static void FetchResourcesScreen_Error(struct HttpRequest* req) {
|
||||||
@ -1237,7 +1232,8 @@ static void ServersScreen_ReloadServers(struct ServersScreen* s) {
|
|||||||
int i;
|
int i;
|
||||||
LTable_Sort(&s->table);
|
LTable_Sort(&s->table);
|
||||||
|
|
||||||
for (i = 0; i < FetchServersTask.numServers; i++) {
|
for (i = 0; i < FetchServersTask.numServers; i++)
|
||||||
|
{
|
||||||
FetchFlagsTask_Add(&FetchServersTask.servers[i]);
|
FetchFlagsTask_Add(&FetchServersTask.servers[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1250,13 +1246,12 @@ static void ServersScreen_Init(struct LScreen* s_) {
|
|||||||
LInput_Init(s, &s->iptSearch, 370, "Search servers..", srv_iptSearch);
|
LInput_Init(s, &s->iptSearch, 370, "Search servers..", srv_iptSearch);
|
||||||
LInput_Init(s, &s->iptHash, 475, "classicube.net/server/play/...", srv_iptHash);
|
LInput_Init(s, &s->iptHash, 475, "classicube.net/server/play/...", srv_iptHash);
|
||||||
|
|
||||||
LButton_Init(s, &s->btnBack, 110, 30, "Back", srv_btnBack);
|
LButton_Init(s, &s->btnBack, 110, 30, "Back",
|
||||||
LButton_Init(s, &s->btnConnect, 130, 30, "Connect", srv_btnConnect);
|
SwitchToMain, srv_btnBack);
|
||||||
LButton_Init(s, &s->btnRefresh, 110, 30, "Refresh", srv_btnRefresh);
|
LButton_Init(s, &s->btnConnect, 130, 30, "Connect",
|
||||||
|
ServersScreen_Connect, srv_btnConnect);
|
||||||
s->btnBack.OnClick = SwitchToMain;
|
LButton_Init(s, &s->btnRefresh, 110, 30, "Refresh",
|
||||||
s->btnConnect.OnClick = ServersScreen_Connect;
|
ServersScreen_Refresh, srv_btnRefresh);
|
||||||
s->btnRefresh.OnClick = ServersScreen_Refresh;
|
|
||||||
|
|
||||||
s->iptSearch.skipsEnter = true;
|
s->iptSearch.skipsEnter = true;
|
||||||
s->iptSearch.TextChanged = ServersScreen_SearchChanged;
|
s->iptSearch.TextChanged = ServersScreen_SearchChanged;
|
||||||
@ -1395,11 +1390,13 @@ static void SettingsScreen_DPIScaling(struct LCheckbox* w) {
|
|||||||
|
|
||||||
static void SettingsScreen_AddWidgets(struct SettingsScreen* s) {
|
static void SettingsScreen_AddWidgets(struct SettingsScreen* s) {
|
||||||
LLine_Init(s, &s->sep, 380, set_sep);
|
LLine_Init(s, &s->sep, 380, set_sep);
|
||||||
LButton_Init(s, &s->btnMode, 110, 35, "Mode", set_btnMode);
|
LButton_Init(s, &s->btnMode, 110, 35, "Mode",
|
||||||
|
SwitchToChooseMode, set_btnMode);
|
||||||
LLabel_Init(s, &s->lblMode, "&eChange the enabled features", set_lblMode);
|
LLabel_Init(s, &s->lblMode, "&eChange the enabled features", set_lblMode);
|
||||||
|
|
||||||
if (!Options_GetBool(OPT_CLASSIC_MODE, false)) {
|
if (!Options_GetBool(OPT_CLASSIC_MODE, false)) {
|
||||||
LButton_Init(s, &s->btnColours, 110, 35, "Theme", set_btnColours);
|
LButton_Init(s, &s->btnColours, 110, 35, "Theme",
|
||||||
|
SwitchToThemes, set_btnColours);
|
||||||
LLabel_Init(s, &s->lblColours, "&eChange how the launcher looks", set_lblColours);
|
LLabel_Init(s, &s->lblColours, "&eChange how the launcher looks", set_lblColours);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1411,7 +1408,8 @@ static void SettingsScreen_AddWidgets(struct SettingsScreen* s) {
|
|||||||
|
|
||||||
LCheckbox_Init(s, &s->cbEmpty, "Show empty servers in list", set_cbEmpty);
|
LCheckbox_Init(s, &s->cbEmpty, "Show empty servers in list", set_cbEmpty);
|
||||||
LCheckbox_Init(s, &s->cbScale, "Use display scaling", set_cbScale);
|
LCheckbox_Init(s, &s->cbScale, "Use display scaling", set_cbScale);
|
||||||
LButton_Init(s, &s->btnBack, 80, 35, "Back", set_btnBack);
|
LButton_Init(s, &s->btnBack, 80, 35, "Back",
|
||||||
|
SwitchToMain, set_btnBack);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SettingsScreen_Show(struct LScreen* s_) {
|
static void SettingsScreen_Show(struct LScreen* s_) {
|
||||||
@ -1422,10 +1420,6 @@ static void SettingsScreen_Show(struct LScreen* s_) {
|
|||||||
s->numWidgets = 0;
|
s->numWidgets = 0;
|
||||||
SettingsScreen_AddWidgets(s);
|
SettingsScreen_AddWidgets(s);
|
||||||
|
|
||||||
s->btnMode.OnClick = SwitchToChooseMode;
|
|
||||||
s->btnColours.OnClick = SwitchToThemes;
|
|
||||||
s->btnBack.OnClick = SwitchToMain;
|
|
||||||
|
|
||||||
#if defined CC_BUILD_MOBILE
|
#if defined CC_BUILD_MOBILE
|
||||||
s->cbExtra.ValueChanged = SettingsScreen_LockOrientation;
|
s->cbExtra.ValueChanged = SettingsScreen_LockOrientation;
|
||||||
LCheckbox_Set(&s->cbExtra, Options_GetBool(OPT_LANDSCAPE_MODE, false));
|
LCheckbox_Set(&s->cbExtra, Options_GetBool(OPT_LANDSCAPE_MODE, false));
|
||||||
@ -1489,20 +1483,21 @@ static void ThemesScreen_Nordic(void* w) {
|
|||||||
|
|
||||||
static void ThemesScreen_Show(struct LScreen* s_) {
|
static void ThemesScreen_Show(struct LScreen* s_) {
|
||||||
struct ThemesScreen* s = (struct ThemesScreen*)s_;
|
struct ThemesScreen* s = (struct ThemesScreen*)s_;
|
||||||
|
|
||||||
s->widgets = themes_widgets;
|
s->widgets = themes_widgets;
|
||||||
s->maxWidgets = Array_Elems(themes_widgets);
|
s->maxWidgets = Array_Elems(themes_widgets);
|
||||||
|
s->numWidgets = 0;
|
||||||
|
|
||||||
LButton_Init(s, &s->btnModern, 200, 35, "Modern", the_btnModern);
|
LButton_Init(s, &s->btnModern, 200, 35, "Modern",
|
||||||
LButton_Init(s, &s->btnClassic, 200, 35, "Classic", the_btnClassic);
|
ThemesScreen_Modern, the_btnModern);
|
||||||
LButton_Init(s, &s->btnNordic, 200, 35, "Nordic", the_btnNordic);
|
LButton_Init(s, &s->btnClassic, 200, 35, "Classic",
|
||||||
LButton_Init(s, &s->btnCustom, 200, 35, "Custom", the_btnCustom);
|
ThemesScreen_Classic, the_btnClassic);
|
||||||
LButton_Init(s, &s->btnBack, 80, 35, "Back", the_btnBack);
|
LButton_Init(s, &s->btnNordic, 200, 35, "Nordic",
|
||||||
|
ThemesScreen_Nordic, the_btnNordic);
|
||||||
s->btnModern.OnClick = ThemesScreen_Modern;
|
LButton_Init(s, &s->btnCustom, 200, 35, "Custom",
|
||||||
s->btnClassic.OnClick = ThemesScreen_Classic;
|
SwitchToColours, the_btnCustom);
|
||||||
s->btnNordic.OnClick = ThemesScreen_Nordic;
|
LButton_Init(s, &s->btnBack, 80, 35, "Back",
|
||||||
s->btnCustom.OnClick = SwitchToColours;
|
SwitchToSettings, the_btnBack);
|
||||||
s->btnBack.OnClick = SwitchToSettings;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThemesScreen_SetActive(void) {
|
void ThemesScreen_SetActive(void) {
|
||||||
@ -1697,25 +1692,23 @@ static void UpdatesScreen_Init(struct LScreen* s_) {
|
|||||||
LLabel_Init(s, &s->lblRel, "Latest release: Checking..", upd_lblRel);
|
LLabel_Init(s, &s->lblRel, "Latest release: Checking..", upd_lblRel);
|
||||||
LLabel_Init(s, &s->lblDev, "Latest dev build: Checking..", upd_lblDev);
|
LLabel_Init(s, &s->lblDev, "Latest dev build: Checking..", upd_lblDev);
|
||||||
LLabel_Init(s, &s->lblStatus, "", upd_lblStatus);
|
LLabel_Init(s, &s->lblStatus, "", upd_lblStatus);
|
||||||
LButton_Init(s, &s->btnBack, 80, 35, "Back", upd_btnBack);
|
|
||||||
LLabel_Init(s, &s->lblInfo, Updater_Info.info, upd_lblInfo);
|
LLabel_Init(s, &s->lblInfo, Updater_Info.info, upd_lblInfo);
|
||||||
|
LButton_Init(s, &s->btnBack, 80, 35, "Back",
|
||||||
|
SwitchToMain, upd_btnBack);
|
||||||
|
|
||||||
if (builds >= 1) {
|
if (builds >= 1) {
|
||||||
LButton_Init(s, &s->btnRel[0], 130, 35, Updater_Info.builds[0].name,
|
LButton_Init(s, &s->btnRel[0], 130, 35, Updater_Info.builds[0].name,
|
||||||
builds == 1 ? upd_btnRel0_1 : upd_btnRel0_2);
|
UpdatesScreen_Rel_0, builds == 1 ? upd_btnRel0_1 : upd_btnRel0_2);
|
||||||
LButton_Init(s, &s->btnDev[0], 130, 35, Updater_Info.builds[0].name,
|
LButton_Init(s, &s->btnDev[0], 130, 35, Updater_Info.builds[0].name,
|
||||||
builds == 1 ? upd_btnDev0_1 : upd_btnDev0_2);
|
UpdatesScreen_Dev_0, builds == 1 ? upd_btnDev0_1 : upd_btnDev0_2);
|
||||||
}
|
|
||||||
if (builds >= 2) {
|
|
||||||
LButton_Init(s, &s->btnRel[1], 130, 35, Updater_Info.builds[1].name, upd_btnRel1_2);
|
|
||||||
LButton_Init(s, &s->btnDev[1], 130, 35, Updater_Info.builds[1].name, upd_btnDev1_2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
s->btnRel[0].OnClick = UpdatesScreen_Rel_0;
|
if (builds >= 2) {
|
||||||
s->btnRel[1].OnClick = UpdatesScreen_Rel_1;
|
LButton_Init(s, &s->btnRel[1], 130, 35, Updater_Info.builds[1].name,
|
||||||
s->btnDev[0].OnClick = UpdatesScreen_Dev_0;
|
UpdatesScreen_Rel_1, upd_btnRel1_2);
|
||||||
s->btnDev[1].OnClick = UpdatesScreen_Dev_1;
|
LButton_Init(s, &s->btnDev[1], 130, 35, Updater_Info.builds[1].name,
|
||||||
s->btnBack.OnClick = SwitchToMain;
|
UpdatesScreen_Dev_1, upd_btnDev1_2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void UpdatesScreen_Show(struct LScreen* s_) {
|
static void UpdatesScreen_Show(struct LScreen* s_) {
|
||||||
|
@ -114,9 +114,10 @@ static const struct LWidgetVTABLE lbutton_VTABLE = {
|
|||||||
LButton_OnSelect, LButton_OnUnselect /* Select */
|
LButton_OnSelect, LButton_OnUnselect /* Select */
|
||||||
};
|
};
|
||||||
void LButton_Init(void* screen, struct LButton* w, int width, int height, const char* text,
|
void LButton_Init(void* screen, struct LButton* w, int width, int height, const char* text,
|
||||||
const struct LLayout* layouts) {
|
LWidgetFunc onClick, const struct LLayout* layouts) {
|
||||||
w->VTABLE = &lbutton_VTABLE;
|
w->VTABLE = &lbutton_VTABLE;
|
||||||
w->type = LWIDGET_BUTTON;
|
w->type = LWIDGET_BUTTON;
|
||||||
|
w->OnClick = onClick;
|
||||||
w->layouts = layouts;
|
w->layouts = layouts;
|
||||||
w->autoSelectable = true;
|
w->autoSelectable = true;
|
||||||
|
|
||||||
|
@ -43,6 +43,8 @@ struct LWidgetVTABLE {
|
|||||||
void (*TextChanged)(void* elem, const cc_string* str);
|
void (*TextChanged)(void* elem, const cc_string* str);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define LWidget_Layout \
|
#define LWidget_Layout \
|
||||||
const struct LWidgetVTABLE* VTABLE; /* General widget functions */ \
|
const struct LWidgetVTABLE* VTABLE; /* General widget functions */ \
|
||||||
int x, y, width, height; /* Top left corner and dimensions of this widget */ \
|
int x, y, width, height; /* Top left corner and dimensions of this widget */ \
|
||||||
@ -53,13 +55,14 @@ struct LWidgetVTABLE {
|
|||||||
cc_bool opaque; /* Whether this widget completely obscures background behind it */ \
|
cc_bool opaque; /* Whether this widget completely obscures background behind it */ \
|
||||||
cc_uint8 type; /* Type of this widget */ \
|
cc_uint8 type; /* Type of this widget */ \
|
||||||
cc_bool skipsEnter; /* Whether clicking this widget DOESN'T trigger OnEnterWidget */ \
|
cc_bool skipsEnter; /* Whether clicking this widget DOESN'T trigger OnEnterWidget */ \
|
||||||
void (*OnClick)(void* widget); /* Called when widget is clicked */ \
|
LWidgetFunc OnClick; /* Called when widget is clicked */ \
|
||||||
void (*OnHover)(void* widget); /* Called when widget is hovered over */ \
|
LWidgetFunc OnHover; /* Called when widget is hovered over */ \
|
||||||
void (*OnUnhover)(void* widget);/*Called when widget is no longer hovered over */ \
|
LWidgetFunc OnUnhover; /* Called when widget is no longer hovered over */ \
|
||||||
Rect2D last; /* Widget's last drawn area */ \
|
Rect2D last; /* Widget's last drawn area */ \
|
||||||
void* meta; /* Backend specific data */ \
|
void* meta; /* Backend specific data */ \
|
||||||
const struct LLayout* layouts;
|
const struct LLayout* layouts;
|
||||||
|
|
||||||
|
typedef void (*LWidgetFunc)(void* widget);
|
||||||
/* Represents an individual 2D gui component in the launcher. */
|
/* Represents an individual 2D gui component in the launcher. */
|
||||||
struct LWidget { LWidget_Layout };
|
struct LWidget { LWidget_Layout };
|
||||||
void LWidget_CalcOffsets(void);
|
void LWidget_CalcOffsets(void);
|
||||||
@ -70,7 +73,7 @@ struct LButton {
|
|||||||
int _textWidth, _textHeight;
|
int _textWidth, _textHeight;
|
||||||
};
|
};
|
||||||
CC_NOINLINE void LButton_Init(void* screen, struct LButton* w, int width, int height, const char* text,
|
CC_NOINLINE void LButton_Init(void* screen, struct LButton* w, int width, int height, const char* text,
|
||||||
const struct LLayout* layouts);
|
LWidgetFunc onClick, const struct LLayout* layouts);
|
||||||
CC_NOINLINE void LButton_SetConst(struct LButton* w, const char* text);
|
CC_NOINLINE void LButton_SetConst(struct LButton* w, const char* text);
|
||||||
CC_NOINLINE void LButton_DrawBackground(struct Context2D* ctx, int x, int y, int width, int height, cc_bool active);
|
CC_NOINLINE void LButton_DrawBackground(struct Context2D* ctx, int x, int y, int width, int height, cc_bool active);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user