mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-11 08:36:38 -04:00
Port most screens to new layout system
This commit is contained in:
parent
c812e72941
commit
ab36dc1211
@ -398,8 +398,9 @@ static Rect2D caretRect, lastCaretRect;
|
||||
#define Rect2D_Equals(a, b) a.X == b.X && a.Y == b.Y && a.Width == b.Width && a.Height == b.Height
|
||||
|
||||
void LBackend_InputInit(struct LInput* w, int width) {
|
||||
w->width = Display_ScaleX(width);
|
||||
w->height = Display_ScaleY(30);
|
||||
w->width = Display_ScaleX(width);
|
||||
w->height = Display_ScaleY(30);
|
||||
w->minWidth = w->width;
|
||||
}
|
||||
|
||||
void LBackend_InputUpdate(struct LInput* w) {
|
||||
|
384
src/LScreens.c
384
src/LScreens.c
@ -233,6 +233,23 @@ static struct LWidget* chooseMode_widgets[] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
LAYOUTS mode_seps0[3] = { LLayout_X(ANCHOR_CENTRE, -5), LLayout_Y(ANCHOR_CENTRE, -85) };
|
||||
LAYOUTS mode_seps1[3] = { LLayout_X(ANCHOR_CENTRE, -5), LLayout_Y(ANCHOR_CENTRE, -15) };
|
||||
|
||||
LAYOUTS mode_btnEnhanced[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -250), LLayout_Y(ANCHOR_CENTRE, -120 ) };
|
||||
LAYOUTS mode_lblEnhanced0[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -85), LLayout_Y(ANCHOR_CENTRE, -120 - 12) };
|
||||
LAYOUTS mode_lblEnhanced1[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -85), LLayout_Y(ANCHOR_CENTRE, -120 + 12) };
|
||||
LAYOUTS mode_btnClassicHax[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -250), LLayout_Y(ANCHOR_CENTRE, -50 ) };
|
||||
LAYOUTS mode_lblClassicHax0[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -85), LLayout_Y(ANCHOR_CENTRE, -50 - 12) };
|
||||
LAYOUTS mode_lblClassicHax1[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -85), LLayout_Y(ANCHOR_CENTRE, -50 + 12) };
|
||||
LAYOUTS mode_btnClassic[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -250), LLayout_Y(ANCHOR_CENTRE, 20 ) };
|
||||
LAYOUTS mode_lblClassic0[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -85), LLayout_Y(ANCHOR_CENTRE, 20 - 12) };
|
||||
LAYOUTS mode_lblClassic1[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -85), LLayout_Y(ANCHOR_CENTRE, 20 + 12) };
|
||||
|
||||
LAYOUTS mode_lblHelp[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 160) };
|
||||
LAYOUTS mode_btnBack[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 170) };
|
||||
|
||||
|
||||
CC_NOINLINE static void ChooseMode_Click(cc_bool classic, cc_bool classicHacks) {
|
||||
Options_SetBool(OPT_CLASSIC_MODE, classic);
|
||||
if (classic) Options_SetBool(OPT_CLASSIC_HACKS, classicHacks);
|
||||
@ -258,23 +275,23 @@ static void ChooseModeScreen_Init(struct LScreen* s_) {
|
||||
s->widgets = chooseMode_widgets;
|
||||
s->numWidgets = Array_Elems(chooseMode_widgets);
|
||||
|
||||
LLine_Init( &s->seps[0], 490, NULL);
|
||||
LLine_Init( &s->seps[1], 490, NULL);
|
||||
LLine_Init( &s->seps[0], 490, mode_seps0);
|
||||
LLine_Init( &s->seps[1], 490, mode_seps1);
|
||||
|
||||
LButton_Init(&s->btnEnhanced, 145, 35, "Enhanced", NULL);
|
||||
LLabel_Init( &s->lblEnhanced[0], "&eEnables custom blocks, changing env", NULL);
|
||||
LLabel_Init( &s->lblEnhanced[1], "&esettings, longer messages, and more", NULL);
|
||||
LButton_Init(&s->btnEnhanced, 145, 35, "Enhanced", mode_btnEnhanced);
|
||||
LLabel_Init( &s->lblEnhanced[0], "&eEnables custom blocks, changing env", mode_lblEnhanced0);
|
||||
LLabel_Init( &s->lblEnhanced[1], "&esettings, longer messages, and more", mode_lblEnhanced1);
|
||||
|
||||
LButton_Init(&s->btnClassicHax, 145, 35, "Classic +hax", NULL);
|
||||
LLabel_Init( &s->lblClassicHax[0], "&eSame as Classic mode, except that", NULL);
|
||||
LLabel_Init( &s->lblClassicHax[1], "&ehacks (noclip/fly/speed) are enabled", NULL);
|
||||
LButton_Init(&s->btnClassicHax, 145, 35, "Classic +hax", mode_btnClassicHax);
|
||||
LLabel_Init( &s->lblClassicHax[0], "&eSame as Classic mode, except that", mode_lblClassicHax0);
|
||||
LLabel_Init( &s->lblClassicHax[1], "&ehacks (noclip/fly/speed) are enabled", mode_lblClassicHax1);
|
||||
|
||||
LButton_Init(&s->btnClassic, 145, 35, "Classic", NULL);
|
||||
LLabel_Init( &s->lblClassic[0], "&eOnly uses blocks and features from", NULL);
|
||||
LLabel_Init( &s->lblClassic[1], "ðe original minecraft classic", NULL);
|
||||
LButton_Init(&s->btnClassic, 145, 35, "Classic", mode_btnClassic);
|
||||
LLabel_Init( &s->lblClassic[0], "&eOnly uses blocks and features from", mode_lblClassic0);
|
||||
LLabel_Init( &s->lblClassic[1], "ðe original minecraft classic", mode_lblClassic1);
|
||||
|
||||
LLabel_Init( &s->lblHelp, "&eClick &fEnhanced &eif you're not sure which mode to choose.", NULL);
|
||||
LButton_Init(&s->btnBack, 80, 35, "Back", NULL);
|
||||
LLabel_Init( &s->lblHelp, "&eClick &fEnhanced &eif you're not sure which mode to choose.", mode_lblHelp);
|
||||
LButton_Init(&s->btnBack, 80, 35, "Back", mode_btnBack);
|
||||
|
||||
s->btnEnhanced.OnClick = UseModeEnhanced;
|
||||
s->btnClassicHax.OnClick = UseModeClassicHax;
|
||||
@ -290,33 +307,11 @@ static void ChooseModeScreen_Show(struct LScreen* s_) {
|
||||
(struct LWidget*)&ChooseModeScreen.btnBack;
|
||||
}
|
||||
|
||||
static void ChooseModeScreen_Layout(struct LScreen* s_) {
|
||||
struct ChooseModeScreen* s = (struct ChooseModeScreen*)s_;
|
||||
LWidget_SetLocation(&s->seps[0], ANCHOR_CENTRE, ANCHOR_CENTRE, -5, -85);
|
||||
LWidget_SetLocation(&s->seps[1], ANCHOR_CENTRE, ANCHOR_CENTRE, -5, -15);
|
||||
|
||||
LWidget_SetLocation(&s->btnEnhanced, ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -250, -120);
|
||||
LWidget_SetLocation(&s->lblEnhanced[0], ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -85, -120 - 12);
|
||||
LWidget_SetLocation(&s->lblEnhanced[1], ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -85, -120 + 12);
|
||||
|
||||
LWidget_SetLocation(&s->btnClassicHax, ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -250, -50);
|
||||
LWidget_SetLocation(&s->lblClassicHax[0], ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -85, -50 - 12);
|
||||
LWidget_SetLocation(&s->lblClassicHax[1], ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -85, -50 + 12);
|
||||
|
||||
LWidget_SetLocation(&s->btnClassic, ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -250, 20);
|
||||
LWidget_SetLocation(&s->lblClassic[0], ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -85, 20 - 12);
|
||||
LWidget_SetLocation(&s->lblClassic[1], ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -85, 20 + 12);
|
||||
|
||||
LWidget_SetLocation(&s->lblHelp, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 160);
|
||||
LWidget_SetLocation(&s->btnBack, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 170);
|
||||
}
|
||||
|
||||
void ChooseModeScreen_SetActive(cc_bool firstTime) {
|
||||
struct ChooseModeScreen* s = &ChooseModeScreen;
|
||||
LScreen_Reset((struct LScreen*)s);
|
||||
s->Init = ChooseModeScreen_Init;
|
||||
s->Show = ChooseModeScreen_Show;
|
||||
s->Layout = ChooseModeScreen_Layout;
|
||||
s->firstTime = firstTime;
|
||||
|
||||
s->title = "Choose mode";
|
||||
@ -350,6 +345,27 @@ static struct LWidget* colours_widgets[] = {
|
||||
(struct LWidget*)&ColoursScreen.btnBack, (struct LWidget*)&ColoursScreen.cbClassic
|
||||
};
|
||||
|
||||
#define IptColor_Layout(xx, yy) { LLayout_X(ANCHOR_CENTRE, xx), LLayout_Y(ANCHOR_CENTRE, yy) }
|
||||
LAYOUTS clr_iptColours[15][3] = {
|
||||
IptColor_Layout(30, -100), IptColor_Layout(95, -100), IptColor_Layout(160, -100),
|
||||
IptColor_Layout(30, -60), IptColor_Layout(95, -60), IptColor_Layout(160, -60),
|
||||
IptColor_Layout(30, -20), IptColor_Layout(95, -20), IptColor_Layout(160, -20),
|
||||
IptColor_Layout(30, 20), IptColor_Layout(95, 20), IptColor_Layout(160, 20),
|
||||
IptColor_Layout(30, 60), IptColor_Layout(95, 60), IptColor_Layout(160, 60),
|
||||
};
|
||||
LAYOUTS clr_lblNames0[3] = { LLayout_X(ANCHOR_CENTRE_MAX, 10), LLayout_Y(ANCHOR_CENTRE, -100) };
|
||||
LAYOUTS clr_lblNames1[3] = { LLayout_X(ANCHOR_CENTRE_MAX, 10), LLayout_Y(ANCHOR_CENTRE, -60) };
|
||||
LAYOUTS clr_lblNames2[3] = { LLayout_X(ANCHOR_CENTRE_MAX, 10), LLayout_Y(ANCHOR_CENTRE, -20) };
|
||||
LAYOUTS clr_lblNames3[3] = { LLayout_X(ANCHOR_CENTRE_MAX, 10), LLayout_Y(ANCHOR_CENTRE, 20) };
|
||||
LAYOUTS clr_lblNames4[3] = { LLayout_X(ANCHOR_CENTRE_MAX, 10), LLayout_Y(ANCHOR_CENTRE, 60) };
|
||||
|
||||
LAYOUTS clr_lblRGB0[3] = { LLayout_X(ANCHOR_CENTRE, 30), LLayout_Y(ANCHOR_CENTRE, -130) };
|
||||
LAYOUTS clr_lblRGB1[3] = { LLayout_X(ANCHOR_CENTRE, 95), LLayout_Y(ANCHOR_CENTRE, -130) };
|
||||
LAYOUTS clr_lblRGB2[3] = { LLayout_X(ANCHOR_CENTRE, 160), LLayout_Y(ANCHOR_CENTRE, -130) };
|
||||
LAYOUTS clr_cbClassic[3] = { LLayout_X(ANCHOR_CENTRE, -16), LLayout_Y(ANCHOR_CENTRE, 130) };
|
||||
LAYOUTS clr_btnBack[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 170) };
|
||||
|
||||
|
||||
CC_NOINLINE static void ColoursScreen_Set(struct LInput* w, cc_uint8 value) {
|
||||
cc_string tmp; char tmpBuffer[STRING_SIZE];
|
||||
String_InitArray(tmp, tmpBuffer);
|
||||
@ -444,25 +460,25 @@ static void ColoursScreen_Init(struct LScreen* s_) {
|
||||
int i;
|
||||
s->widgets = colours_widgets;
|
||||
s->numWidgets = Array_Elems(colours_widgets);
|
||||
|
||||
|
||||
for (i = 0; i < 5 * 3; i++) {
|
||||
s->iptColours[i].inputType = KEYBOARD_TYPE_INTEGER;
|
||||
s->iptColours[i].TextChanged = ColoursScreen_TextChanged;
|
||||
LInput_Init(&s->iptColours[i], 55, NULL, NULL);
|
||||
LInput_Init(&s->iptColours[i], 55, NULL, clr_iptColours[i]);
|
||||
}
|
||||
|
||||
LLabel_Init( &s->lblNames[0], "Background", NULL);
|
||||
LLabel_Init( &s->lblNames[1], "Button border", NULL);
|
||||
LLabel_Init( &s->lblNames[2], "Button highlight", NULL);
|
||||
LLabel_Init( &s->lblNames[3], "Button", NULL);
|
||||
LLabel_Init( &s->lblNames[4], "Active button", NULL);
|
||||
LLabel_Init( &s->lblNames[0], "Background", clr_lblNames0);
|
||||
LLabel_Init( &s->lblNames[1], "Button border", clr_lblNames1);
|
||||
LLabel_Init( &s->lblNames[2], "Button highlight", clr_lblNames2);
|
||||
LLabel_Init( &s->lblNames[3], "Button", clr_lblNames3);
|
||||
LLabel_Init( &s->lblNames[4], "Active button", clr_lblNames4);
|
||||
|
||||
LLabel_Init( &s->lblRGB[0], "Red", NULL);
|
||||
LLabel_Init( &s->lblRGB[1], "Green", NULL);
|
||||
LLabel_Init( &s->lblRGB[2], "Blue", NULL);
|
||||
LButton_Init(&s->btnBack, 80, 35, "Back", NULL);
|
||||
LLabel_Init( &s->lblRGB[0], "Red", clr_lblRGB0);
|
||||
LLabel_Init( &s->lblRGB[1], "Green", clr_lblRGB1);
|
||||
LLabel_Init( &s->lblRGB[2], "Blue", clr_lblRGB2);
|
||||
LButton_Init(&s->btnBack, 80, 35, "Back", clr_btnBack);
|
||||
|
||||
LCheckbox_Init(&s->cbClassic, "Classic style", NULL);
|
||||
LCheckbox_Init(&s->cbClassic, "Classic style", clr_cbClassic);
|
||||
s->cbClassic.ValueChanged = ColoursScreen_ToggleBG;
|
||||
s->btnBack.OnClick = SwitchToThemes;
|
||||
}
|
||||
@ -474,36 +490,11 @@ static void ColoursScreen_Show(struct LScreen* s_) {
|
||||
ColoursScreen_UpdateAll(s);
|
||||
}
|
||||
|
||||
static void ColoursScreen_Layout(struct LScreen* s_) {
|
||||
struct ColoursScreen* s = (struct ColoursScreen*)s_;
|
||||
int i, y;
|
||||
for (i = 0; i < 5; i++) {
|
||||
y = -100 + 40 * i;
|
||||
LWidget_SetLocation(&s->iptColours[i*3 + 0], ANCHOR_CENTRE, ANCHOR_CENTRE, 30, y);
|
||||
LWidget_SetLocation(&s->iptColours[i*3 + 1], ANCHOR_CENTRE, ANCHOR_CENTRE, 95, y);
|
||||
LWidget_SetLocation(&s->iptColours[i*3 + 2], ANCHOR_CENTRE, ANCHOR_CENTRE, 160, y);
|
||||
}
|
||||
|
||||
LWidget_SetLocation(&s->lblNames[0], ANCHOR_CENTRE_MAX, ANCHOR_CENTRE, 10, -100);
|
||||
LWidget_SetLocation(&s->lblNames[1], ANCHOR_CENTRE_MAX, ANCHOR_CENTRE, 10, -60);
|
||||
LWidget_SetLocation(&s->lblNames[2], ANCHOR_CENTRE_MAX, ANCHOR_CENTRE, 10, -20);
|
||||
LWidget_SetLocation(&s->lblNames[3], ANCHOR_CENTRE_MAX, ANCHOR_CENTRE, 10, 20);
|
||||
LWidget_SetLocation(&s->lblNames[4], ANCHOR_CENTRE_MAX, ANCHOR_CENTRE, 10, 60);
|
||||
|
||||
LWidget_SetLocation(&s->lblRGB[0], ANCHOR_CENTRE, ANCHOR_CENTRE, 30, -130);
|
||||
LWidget_SetLocation(&s->lblRGB[1], ANCHOR_CENTRE, ANCHOR_CENTRE, 95, -130);
|
||||
LWidget_SetLocation(&s->lblRGB[2], ANCHOR_CENTRE, ANCHOR_CENTRE, 160, -130);
|
||||
|
||||
LWidget_SetLocation(&s->cbClassic, ANCHOR_CENTRE, ANCHOR_CENTRE, -16, 130);
|
||||
LWidget_SetLocation(&s->btnBack, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 170);
|
||||
}
|
||||
|
||||
void ColoursScreen_SetActive(void) {
|
||||
struct ColoursScreen* s = &ColoursScreen;
|
||||
LScreen_Reset((struct LScreen*)s);
|
||||
s->Init = ColoursScreen_Init;
|
||||
s->Show = ColoursScreen_Show;
|
||||
s->Layout = ColoursScreen_Layout;
|
||||
s->KeyDown = ColoursScreen_KeyDown;
|
||||
s->MouseWheel = ColoursScreen_MouseWheel;
|
||||
|
||||
@ -528,6 +519,15 @@ static struct LWidget* directConnect_widgets[] = {
|
||||
(struct LWidget*)&DirectConnectScreen.btnBack, (struct LWidget*)&DirectConnectScreen.lblStatus
|
||||
};
|
||||
|
||||
LAYOUTS dc_iptUsername[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -165), LLayout_Y(ANCHOR_CENTRE, -120) };
|
||||
LAYOUTS dc_iptAddress[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -165), LLayout_Y(ANCHOR_CENTRE, -75) };
|
||||
LAYOUTS dc_iptMppass[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -165), LLayout_Y(ANCHOR_CENTRE, -30) };
|
||||
|
||||
LAYOUTS dc_btnConnect[3] = { LLayout_X(ANCHOR_CENTRE, -110), LLayout_Y(ANCHOR_CENTRE, 20) };
|
||||
LAYOUTS dc_btnBack[3] = { LLayout_X(ANCHOR_CENTRE, 125), LLayout_Y(ANCHOR_CENTRE, 20) };
|
||||
LAYOUTS dc_lblStatus[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 70) };
|
||||
|
||||
|
||||
static void DirectConnectScreen_UrlFilter(cc_string* str) {
|
||||
static const cc_string prefix = String_FromConst("mc://");
|
||||
cc_string parts[6];
|
||||
@ -614,13 +614,13 @@ static void DirectConnectScreen_Init(struct LScreen* s_) {
|
||||
s->widgets = directConnect_widgets;
|
||||
s->numWidgets = Array_Elems(directConnect_widgets);
|
||||
|
||||
LInput_Init(&s->iptUsername, 330, "Username..", NULL);
|
||||
LInput_Init(&s->iptAddress, 330, "IP address:Port number..", NULL);
|
||||
LInput_Init(&s->iptMppass, 330, "Mppass..", NULL);
|
||||
LInput_Init(&s->iptUsername, 330, "Username..", dc_iptUsername);
|
||||
LInput_Init(&s->iptAddress, 330, "IP address:Port number..", dc_iptAddress);
|
||||
LInput_Init(&s->iptMppass, 330, "Mppass..", dc_iptMppass);
|
||||
|
||||
LButton_Init(&s->btnConnect, 110, 35, "Connect", NULL);
|
||||
LButton_Init(&s->btnBack, 80, 35, "Back", NULL);
|
||||
LLabel_Init( &s->lblStatus, "", NULL);
|
||||
LButton_Init(&s->btnConnect, 110, 35, "Connect", dc_btnConnect);
|
||||
LButton_Init(&s->btnBack, 80, 35, "Back", dc_btnBack);
|
||||
LLabel_Init( &s->lblStatus, "", dc_lblStatus);
|
||||
|
||||
s->iptUsername.ClipboardFilter = DirectConnectScreen_UrlFilter;
|
||||
s->iptAddress.ClipboardFilter = DirectConnectScreen_UrlFilter;
|
||||
@ -632,22 +632,10 @@ static void DirectConnectScreen_Init(struct LScreen* s_) {
|
||||
DirectConnectScreen_Load(s);
|
||||
}
|
||||
|
||||
static void DirectConnectScreen_Layout(struct LScreen* s_) {
|
||||
struct DirectConnectScreen* s = (struct DirectConnectScreen*)s_;
|
||||
LWidget_SetLocation(&s->iptUsername, ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -165, -120);
|
||||
LWidget_SetLocation(&s->iptAddress, ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -165, -75);
|
||||
LWidget_SetLocation(&s->iptMppass, ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -165, -30);
|
||||
|
||||
LWidget_SetLocation(&s->btnConnect, ANCHOR_CENTRE, ANCHOR_CENTRE, -110, 20);
|
||||
LWidget_SetLocation(&s->btnBack, ANCHOR_CENTRE, ANCHOR_CENTRE, 125, 20);
|
||||
LWidget_SetLocation(&s->lblStatus, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 70);
|
||||
}
|
||||
|
||||
void DirectConnectScreen_SetActive(void) {
|
||||
struct DirectConnectScreen* s = &DirectConnectScreen;
|
||||
LScreen_Reset((struct LScreen*)s);
|
||||
s->Init = DirectConnectScreen_Init;
|
||||
s->Layout = DirectConnectScreen_Layout;
|
||||
s->Init = DirectConnectScreen_Init;
|
||||
|
||||
s->title = "Direct connect";
|
||||
s->onEnterWidget = (struct LWidget*)&s->btnConnect;
|
||||
@ -670,6 +658,12 @@ static struct LWidget* mfa_widgets[] = {
|
||||
(struct LWidget*)&MFAScreen.btnSignIn, (struct LWidget*)&MFAScreen.btnCancel
|
||||
};
|
||||
|
||||
LAYOUTS mfa_lblTitle[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, -115) };
|
||||
LAYOUTS mfa_iptCode[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, -75) };
|
||||
LAYOUTS mfa_btnSignIn[3] = { LLayout_X(ANCHOR_CENTRE, -90), LLayout_Y(ANCHOR_CENTRE, -25) };
|
||||
LAYOUTS mfa_btnCancel[3] = { LLayout_X(ANCHOR_CENTRE, 90), LLayout_Y(ANCHOR_CENTRE, -25) };
|
||||
|
||||
|
||||
static void MainScreen_DoLogin(void);
|
||||
static void MFAScreen_SignIn(void* w) {
|
||||
MainScreen_SetActive();
|
||||
@ -685,10 +679,10 @@ static void MFAScreen_Init(struct LScreen* s_) {
|
||||
s->widgets = mfa_widgets;
|
||||
s->numWidgets = Array_Elems(mfa_widgets);
|
||||
|
||||
LLabel_Init( &s->lblTitle, "", NULL);
|
||||
LInput_Init( &s->iptCode, 280, "Login code..", NULL);
|
||||
LButton_Init(&s->btnSignIn, 100, 35, "Sign in", NULL);
|
||||
LButton_Init(&s->btnCancel, 100, 35, "Cancel", NULL);
|
||||
LLabel_Init( &s->lblTitle, "", mfa_lblTitle);
|
||||
LInput_Init( &s->iptCode, 280, "Login code..", mfa_iptCode);
|
||||
LButton_Init(&s->btnSignIn, 100, 35, "Sign in", mfa_btnSignIn);
|
||||
LButton_Init(&s->btnCancel, 100, 35, "Cancel", mfa_btnCancel);
|
||||
|
||||
s->btnSignIn.OnClick = MFAScreen_SignIn;
|
||||
s->btnCancel.OnClick = MFAScreen_Cancel;
|
||||
@ -702,20 +696,11 @@ static void MFAScreen_Show(struct LScreen* s_) {
|
||||
"&cLogin code required (Check emails)");
|
||||
}
|
||||
|
||||
static void MFAScreen_Layout(struct LScreen* s_) {
|
||||
struct MFAScreen* s = (struct MFAScreen*)s_;
|
||||
LWidget_SetLocation(&s->lblTitle, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, -115);
|
||||
LWidget_SetLocation(&s->iptCode, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, -75);
|
||||
LWidget_SetLocation(&s->btnSignIn, ANCHOR_CENTRE, ANCHOR_CENTRE, -90, -25);
|
||||
LWidget_SetLocation(&s->btnCancel, ANCHOR_CENTRE, ANCHOR_CENTRE, 90, -25);
|
||||
}
|
||||
|
||||
void MFAScreen_SetActive(void) {
|
||||
struct MFAScreen* s = &MFAScreen;
|
||||
LScreen_Reset((struct LScreen*)s);
|
||||
s->Init = MFAScreen_Init;
|
||||
s->Show = MFAScreen_Show;
|
||||
s->Layout = MFAScreen_Layout;
|
||||
s->Init = MFAScreen_Init;
|
||||
s->Show = MFAScreen_Show;
|
||||
|
||||
s->title = "Enter login code";
|
||||
s->onEnterWidget = (struct LWidget*)&s->btnSignIn;
|
||||
@ -742,19 +727,20 @@ static struct LWidget* main_widgets[] = {
|
||||
(struct LWidget*)&MainScreen.btnRegister, (struct LWidget*)&MainScreen.btnOptions
|
||||
};
|
||||
|
||||
LAYOUTS main_iptUsername[] = { LLayout_X(ANCHOR_CENTRE_MIN, -140), LLayout_Y(ANCHOR_CENTRE, -120), LLayout_End };
|
||||
LAYOUTS main_iptPassword[] = { LLayout_X(ANCHOR_CENTRE_MIN, -140), LLayout_Y(ANCHOR_CENTRE, -75), LLayout_End };
|
||||
LAYOUTS main_iptUsername[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -140), LLayout_Y(ANCHOR_CENTRE, -120) };
|
||||
LAYOUTS main_iptPassword[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -140), LLayout_Y(ANCHOR_CENTRE, -75) };
|
||||
|
||||
LAYOUTS main_btnLogin[] = { LLayout_X(ANCHOR_CENTRE, -90), LLayout_Y(ANCHOR_CENTRE, -25), LLayout_End };
|
||||
LAYOUTS main_lblStatus[] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 20), LLayout_End };
|
||||
LAYOUTS main_btnLogin[3] = { LLayout_X(ANCHOR_CENTRE, -90), LLayout_Y(ANCHOR_CENTRE, -25) };
|
||||
LAYOUTS main_lblStatus[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 20) };
|
||||
|
||||
LAYOUTS main_btnResume[] = { LLayout_X(ANCHOR_CENTRE, 90), LLayout_Y(ANCHOR_CENTRE, -25), LLayout_End };
|
||||
LAYOUTS main_btnDirect[] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 60), LLayout_End };
|
||||
LAYOUTS main_btnSPlayer[] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 110), LLayout_End };
|
||||
LAYOUTS main_btnResume[3] = { LLayout_X(ANCHOR_CENTRE, 90), LLayout_Y(ANCHOR_CENTRE, -25) };
|
||||
LAYOUTS main_btnDirect[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 60) };
|
||||
LAYOUTS main_btnSPlayer[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 110) };
|
||||
|
||||
LAYOUTS main_lblUpdate[3] = { LLayout_X(ANCHOR_MAX, 10), LLayout_Y(ANCHOR_MAX, 45) };
|
||||
LAYOUTS main_btnOptions[3] = { LLayout_X(ANCHOR_MAX, 6), LLayout_Y(ANCHOR_MAX, 6) };
|
||||
LAYOUTS main_btnRegister[3] = { LLayout_X(ANCHOR_MIN, 6), LLayout_Y(ANCHOR_MAX, 6) };
|
||||
|
||||
LAYOUTS main_lblUpdate[] = { LLayout_X(ANCHOR_MAX, 10), LLayout_Y(ANCHOR_MAX, 45), LLayout_End };
|
||||
LAYOUTS main_btnOptions[] = { LLayout_X(ANCHOR_MAX, 6), LLayout_Y(ANCHOR_MAX, 6), LLayout_End };
|
||||
LAYOUTS main_btnRegister[] = { LLayout_X(ANCHOR_MIN, 6), LLayout_Y(ANCHOR_MAX, 6), LLayout_End };
|
||||
|
||||
struct ResumeInfo {
|
||||
cc_string user, ip, port, server, mppass;
|
||||
@ -1048,6 +1034,14 @@ static struct LWidget* checkResources_widgets[] = {
|
||||
(struct LWidget*)&CheckResourcesScreen.btnNo
|
||||
};
|
||||
|
||||
LAYOUTS cres_lblLine1[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, -50) };
|
||||
LAYOUTS cres_lblLine2[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, -30) };
|
||||
LAYOUTS cres_lblStatus[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 10) };
|
||||
|
||||
LAYOUTS cres_btnYes[3] = { LLayout_X(ANCHOR_CENTRE, -70), LLayout_Y(ANCHOR_CENTRE, 45) };
|
||||
LAYOUTS cres_btnNo[3] = { LLayout_X(ANCHOR_CENTRE, 70), LLayout_Y(ANCHOR_CENTRE, 45) };
|
||||
|
||||
|
||||
static void CheckResourcesScreen_Yes(void* w) { FetchResourcesScreen_SetActive(); }
|
||||
static void CheckResourcesScreen_Next(void* w) {
|
||||
Http_ClearPending();
|
||||
@ -1064,12 +1058,12 @@ static void CheckResourcesScreen_Init(struct LScreen* s_) {
|
||||
s->numWidgets = Array_Elems(checkResources_widgets);
|
||||
s->lblStatus.small = true;
|
||||
|
||||
LLabel_Init( &s->lblLine1, "Some required resources weren't found", NULL);
|
||||
LLabel_Init( &s->lblLine2, "Okay to download?", NULL);
|
||||
LLabel_Init( &s->lblStatus, "", NULL);
|
||||
LLabel_Init( &s->lblLine1, "Some required resources weren't found", cres_lblLine1);
|
||||
LLabel_Init( &s->lblLine2, "Okay to download?", cres_lblLine2);
|
||||
LLabel_Init( &s->lblStatus, "", cres_lblStatus);
|
||||
|
||||
LButton_Init(&s->btnYes, 70, 35, "Yes", NULL);
|
||||
LButton_Init(&s->btnNo, 70, 35, "No", NULL);
|
||||
LButton_Init(&s->btnYes, 70, 35, "Yes", cres_btnYes);
|
||||
LButton_Init(&s->btnNo, 70, 35, "No", cres_btnNo);
|
||||
s->btnYes.OnClick = CheckResourcesScreen_Yes;
|
||||
s->btnNo.OnClick = CheckResourcesScreen_Next;
|
||||
}
|
||||
@ -1084,17 +1078,6 @@ static void CheckResourcesScreen_Show(struct LScreen* s_) {
|
||||
LLabel_SetText(&s->lblStatus, &str);
|
||||
}
|
||||
|
||||
static void CheckResourcesScreen_Layout(struct LScreen* s_) {
|
||||
struct CheckResourcesScreen* s = (struct CheckResourcesScreen*)s_;
|
||||
|
||||
LWidget_SetLocation(&s->lblLine1, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, -50);
|
||||
LWidget_SetLocation(&s->lblLine2, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, -30);
|
||||
LWidget_SetLocation(&s->lblStatus, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 10);
|
||||
|
||||
LWidget_SetLocation(&s->btnYes, ANCHOR_CENTRE, ANCHOR_CENTRE, -70, 45);
|
||||
LWidget_SetLocation(&s->btnNo, ANCHOR_CENTRE, ANCHOR_CENTRE, 70, 45);
|
||||
}
|
||||
|
||||
#define RESOURCES_BACK_COLOR BitmapCol_Make( 12, 12, 12, 255)
|
||||
#define RESOURCES_FORE_COLOR BitmapCol_Make(120, 85, 151, 255)
|
||||
|
||||
@ -1118,7 +1101,6 @@ void CheckResourcesScreen_SetActive(void) {
|
||||
LScreen_Reset((struct LScreen*)s);
|
||||
s->Init = CheckResourcesScreen_Init;
|
||||
s->Show = CheckResourcesScreen_Show;
|
||||
s->Layout = CheckResourcesScreen_Layout;
|
||||
s->DrawBackground = CheckResourcesScreen_DrawBackground;
|
||||
s->ResetArea = CheckResourcesScreen_ResetArea;
|
||||
s->onEnterWidget = (struct LWidget*)&s->btnYes;
|
||||
@ -1141,27 +1123,25 @@ static struct LWidget* fetchResources_widgets[] = {
|
||||
(struct LWidget*)&FetchResourcesScreen.sdrProgress
|
||||
};
|
||||
|
||||
LAYOUTS fres_lblStatus[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, -10) };
|
||||
LAYOUTS fres_btnCancel[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 45) };
|
||||
LAYOUTS fres_sdrProgress[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 15) };
|
||||
|
||||
|
||||
static void FetchResourcesScreen_Init(struct LScreen* s_) {
|
||||
struct FetchResourcesScreen* s = (struct FetchResourcesScreen*)s_;
|
||||
s->widgets = fetchResources_widgets;
|
||||
s->numWidgets = Array_Elems(fetchResources_widgets);
|
||||
s->lblStatus.small = true;
|
||||
|
||||
LLabel_Init( &s->lblStatus, "", NULL);
|
||||
LButton_Init(&s->btnCancel, 120, 35, "Cancel", NULL);
|
||||
LSlider_Init(&s->sdrProgress, 200, 12, BitmapCol_Make(0, 220, 0, 255), NULL);
|
||||
LLabel_Init( &s->lblStatus, "", fres_lblStatus);
|
||||
LButton_Init(&s->btnCancel, 120, 35, "Cancel", fres_btnCancel);
|
||||
LSlider_Init(&s->sdrProgress, 200, 12, BitmapCol_Make(0, 220, 0, 255), fres_sdrProgress);
|
||||
|
||||
s->btnCancel.OnClick = CheckResourcesScreen_Next;
|
||||
}
|
||||
static void FetchResourcesScreen_Show(struct LScreen* s_) { Fetcher_Run(); }
|
||||
|
||||
static void FetchResourcesScreen_Layout(struct LScreen* s_) {
|
||||
struct FetchResourcesScreen* s = (struct FetchResourcesScreen*)s_;
|
||||
LWidget_SetLocation(&s->lblStatus, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, -10);
|
||||
LWidget_SetLocation(&s->btnCancel, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 45);
|
||||
LWidget_SetLocation(&s->sdrProgress, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 15);
|
||||
}
|
||||
|
||||
static void FetchResourcesScreen_UpdateStatus(struct FetchResourcesScreen* s, int reqID) {
|
||||
cc_string str; char strBuffer[STRING_SIZE];
|
||||
const char* name;
|
||||
@ -1214,10 +1194,9 @@ static void FetchResourcesScreen_Tick(struct LScreen* s_) {
|
||||
void FetchResourcesScreen_SetActive(void) {
|
||||
struct FetchResourcesScreen* s = &FetchResourcesScreen;
|
||||
LScreen_Reset((struct LScreen*)s);
|
||||
s->Init = FetchResourcesScreen_Init;
|
||||
s->Show = FetchResourcesScreen_Show;
|
||||
s->Tick = FetchResourcesScreen_Tick;
|
||||
s->Layout = FetchResourcesScreen_Layout;
|
||||
s->Init = FetchResourcesScreen_Init;
|
||||
s->Show = FetchResourcesScreen_Show;
|
||||
s->Tick = FetchResourcesScreen_Tick;
|
||||
s->DrawBackground = CheckResourcesScreen_DrawBackground;
|
||||
s->ResetArea = CheckResourcesScreen_ResetArea;
|
||||
Launcher_SetScreen((struct LScreen*)s);
|
||||
@ -1242,6 +1221,15 @@ static struct LWidget* servers_widgets[] = {
|
||||
(struct LWidget*)&ServersScreen.btnRefresh, (struct LWidget*)&ServersScreen.table
|
||||
};
|
||||
|
||||
LAYOUTS srv_iptSearch[3] = { LLayout_X(ANCHOR_MIN, 10), LLayout_Y(ANCHOR_MIN, 10) };
|
||||
LAYOUTS srv_iptHash[3] = { LLayout_X(ANCHOR_MIN, 10), LLayout_Y(ANCHOR_MAX, 10) };
|
||||
LAYOUTS srv_table[3] = { LLayout_X(ANCHOR_MIN, 10), LLayout_Y(ANCHOR_MIN, 50) };
|
||||
|
||||
LAYOUTS srv_btnBack[3] = { LLayout_X(ANCHOR_MAX, 10), LLayout_Y(ANCHOR_MIN, 10) };
|
||||
LAYOUTS srv_btnConnect[3] = { LLayout_X(ANCHOR_MAX, 10), LLayout_Y(ANCHOR_MAX, 10) };
|
||||
LAYOUTS srv_btnRefresh[3] = { LLayout_X(ANCHOR_MAX, 135), LLayout_Y(ANCHOR_MIN, 10) };
|
||||
|
||||
|
||||
static void ServersScreen_Connect(void* w) {
|
||||
struct LTable* table = &ServersScreen.table;
|
||||
cc_string* hash = &ServersScreen.iptHash.text;
|
||||
@ -1307,12 +1295,12 @@ static void ServersScreen_Init(struct LScreen* s_) {
|
||||
s->widgets = servers_widgets;
|
||||
s->numWidgets = Array_Elems(servers_widgets);
|
||||
|
||||
LInput_Init( &s->iptSearch, 370, "Search servers..", NULL);
|
||||
LInput_Init( &s->iptHash, 475, "classicube.net/server/play/...", NULL);
|
||||
LInput_Init( &s->iptSearch, 370, "Search servers..", srv_iptSearch);
|
||||
LInput_Init( &s->iptHash, 475, "classicube.net/server/play/...", srv_iptHash);
|
||||
|
||||
LButton_Init(&s->btnBack, 110, 30, "Back", NULL);
|
||||
LButton_Init(&s->btnConnect, 130, 30, "Connect", NULL);
|
||||
LButton_Init(&s->btnRefresh, 110, 30, "Refresh", NULL);
|
||||
LButton_Init(&s->btnBack, 110, 30, "Back", srv_btnBack);
|
||||
LButton_Init(&s->btnConnect, 130, 30, "Connect", srv_btnConnect);
|
||||
LButton_Init(&s->btnRefresh, 110, 30, "Refresh", srv_btnRefresh);
|
||||
|
||||
s->btnBack.OnClick = SwitchToMain;
|
||||
s->btnConnect.OnClick = ServersScreen_Connect;
|
||||
@ -1322,7 +1310,7 @@ static void ServersScreen_Init(struct LScreen* s_) {
|
||||
s->iptHash.TextChanged = ServersScreen_HashChanged;
|
||||
s->iptHash.ClipboardFilter = ServersScreen_HashFilter;
|
||||
|
||||
LTable_Init(&s->table);
|
||||
LTable_Init(&s->table, srv_table);
|
||||
s->table.filter = &s->iptSearch.text;
|
||||
s->table.selectedHash = &s->iptHash.text;
|
||||
s->table.OnSelectedChanged = ServersScreen_OnSelectedChanged;
|
||||
@ -1365,14 +1353,7 @@ static void ServersScreen_Tick(struct LScreen* s_) {
|
||||
|
||||
static void ServersScreen_Layout(struct LScreen* s_) {
|
||||
struct ServersScreen* s = (struct ServersScreen*)s_;
|
||||
LWidget_SetLocation(&s->iptSearch, ANCHOR_MIN, ANCHOR_MIN, 10, 10);
|
||||
LWidget_SetLocation(&s->iptHash, ANCHOR_MIN, ANCHOR_MAX, 10, 10);
|
||||
|
||||
LWidget_SetLocation(&s->btnBack, ANCHOR_MAX, ANCHOR_MIN, 10, 10);
|
||||
LWidget_SetLocation(&s->btnConnect, ANCHOR_MAX, ANCHOR_MAX, 10, 10);
|
||||
LWidget_SetLocation(&s->btnRefresh, ANCHOR_MAX, ANCHOR_MIN, 135, 10);
|
||||
|
||||
LWidget_SetLocation(&s->table, ANCHOR_MIN, ANCHOR_MIN, 10, 50);
|
||||
LScreen_DoLayout(s_);
|
||||
s->table.width = WindowInfo.Width - s->table.x;
|
||||
s->table.height = WindowInfo.Height - s->table.y * 2;
|
||||
s->table.height = max(1, s->table.height);
|
||||
@ -1444,6 +1425,19 @@ static struct LWidget* settings_classic[] = {
|
||||
(struct LWidget*)&SettingsScreen.btnBack
|
||||
};
|
||||
|
||||
LAYOUTS set_btnUpdates[3] = { LLayout_X(ANCHOR_CENTRE, -135), LLayout_Y(ANCHOR_CENTRE, -120) };
|
||||
LAYOUTS set_lblUpdates[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -70), LLayout_Y(ANCHOR_CENTRE, -120) };
|
||||
LAYOUTS set_btnMode[3] = { LLayout_X(ANCHOR_CENTRE, -135), LLayout_Y(ANCHOR_CENTRE, -70) };
|
||||
LAYOUTS set_lblMode[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -70), LLayout_Y(ANCHOR_CENTRE, -70) };
|
||||
LAYOUTS set_btnColours[3] = { LLayout_X(ANCHOR_CENTRE, -135), LLayout_Y(ANCHOR_CENTRE, -20) };
|
||||
LAYOUTS set_lblColours[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -70), LLayout_Y(ANCHOR_CENTRE, -20) };
|
||||
|
||||
LAYOUTS set_sep[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 15) };
|
||||
LAYOUTS set_cbExtra[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -190), LLayout_Y(ANCHOR_CENTRE, 44) };
|
||||
LAYOUTS set_cbEmpty[3] = { LLayout_X(ANCHOR_CENTRE_MIN, -190), LLayout_Y(ANCHOR_CENTRE, 84) };
|
||||
LAYOUTS set_btnBack[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 170) };
|
||||
|
||||
|
||||
#if defined CC_BUILD_MOBILE
|
||||
static void SettingsScreen_LockOrientation(struct LCheckbox* w) {
|
||||
Options_SetBool(OPT_LANDSCAPE_MODE, w->value);
|
||||
@ -1462,28 +1456,28 @@ static void SettingsScreen_ShowEmpty(struct LCheckbox* w) {
|
||||
|
||||
static void SettingsScreen_Init(struct LScreen* s_) {
|
||||
struct SettingsScreen* s = (struct SettingsScreen*)s_;
|
||||
LLine_Init( &s->sep, 380, NULL);
|
||||
LLine_Init( &s->sep, 380, set_sep);
|
||||
|
||||
LButton_Init(&s->btnUpdates, 110, 35, "Updates", NULL);
|
||||
LLabel_Init( &s->lblUpdates, "&eGet the latest stuff", NULL);
|
||||
LButton_Init(&s->btnUpdates, 110, 35, "Updates", set_btnUpdates);
|
||||
LLabel_Init( &s->lblUpdates, "&eGet the latest stuff", set_lblUpdates);
|
||||
|
||||
LButton_Init(&s->btnMode, 110, 35, "Mode", NULL);
|
||||
LLabel_Init( &s->lblMode, "&eChange the enabled features", NULL);
|
||||
LButton_Init(&s->btnMode, 110, 35, "Mode", set_btnMode);
|
||||
LLabel_Init( &s->lblMode, "&eChange the enabled features", set_lblMode);
|
||||
|
||||
LButton_Init(&s->btnColours, 110, 35, "Theme", NULL);
|
||||
LLabel_Init( &s->lblColours, "&eChange how the launcher looks", NULL);
|
||||
LButton_Init(&s->btnColours, 110, 35, "Theme", set_btnColours);
|
||||
LLabel_Init( &s->lblColours, "&eChange how the launcher looks", set_lblColours);
|
||||
|
||||
#if defined CC_BUILD_MOBILE
|
||||
LCheckbox_Init(&s->cbExtra, "Force landscape", NULL);
|
||||
LCheckbox_Init(&s->cbExtra, "Force landscape", set_cbExtra);
|
||||
s->cbExtra.ValueChanged = SettingsScreen_LockOrientation;
|
||||
#else
|
||||
LCheckbox_Init(&s->cbExtra, "Close this after game starts", NULL);
|
||||
LCheckbox_Init(&s->cbExtra, "Close this after game starts", set_cbExtra);
|
||||
s->cbExtra.ValueChanged = SettingsScreen_AutoClose;
|
||||
#endif
|
||||
|
||||
LCheckbox_Init(&s->cbEmpty, "Show empty servers in list", NULL);
|
||||
LCheckbox_Init(&s->cbEmpty, "Show empty servers in list", set_cbEmpty);
|
||||
s->cbEmpty.ValueChanged = SettingsScreen_ShowEmpty;
|
||||
LButton_Init( &s->btnBack, 80, 35, "Back", NULL);
|
||||
LButton_Init( &s->btnBack, 80, 35, "Back", set_btnBack);
|
||||
|
||||
s->btnMode.OnClick = SwitchToChooseMode;
|
||||
s->btnUpdates.OnClick = SwitchToUpdates;
|
||||
@ -1510,30 +1504,11 @@ static void SettingsScreen_Show(struct LScreen* s_) {
|
||||
s->cbEmpty.value = Launcher_ShowEmptyServers;
|
||||
}
|
||||
|
||||
static void SettingsScreen_Layout(struct LScreen* s_) {
|
||||
struct SettingsScreen* s = (struct SettingsScreen*)s_;
|
||||
LWidget_SetLocation(&s->btnUpdates, ANCHOR_CENTRE, ANCHOR_CENTRE, -135, -120);
|
||||
LWidget_SetLocation(&s->lblUpdates, ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -70, -120);
|
||||
|
||||
LWidget_SetLocation(&s->btnMode, ANCHOR_CENTRE, ANCHOR_CENTRE, -135, -70);
|
||||
LWidget_SetLocation(&s->lblMode, ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -70, -70);
|
||||
|
||||
LWidget_SetLocation(&s->btnColours, ANCHOR_CENTRE, ANCHOR_CENTRE, -135, -20);
|
||||
LWidget_SetLocation(&s->lblColours, ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -70, -20);
|
||||
|
||||
LWidget_SetLocation(&s->sep, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 15);
|
||||
LWidget_SetLocation(&s->cbExtra, ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -190, 44);
|
||||
LWidget_SetLocation(&s->cbEmpty, ANCHOR_CENTRE_MIN, ANCHOR_CENTRE, -190, 84);
|
||||
|
||||
LWidget_SetLocation(&s->btnBack, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 170);
|
||||
}
|
||||
|
||||
void SettingsScreen_SetActive(void) {
|
||||
struct SettingsScreen* s = &SettingsScreen;
|
||||
LScreen_Reset((struct LScreen*)s);
|
||||
s->Init = SettingsScreen_Init;
|
||||
s->Show = SettingsScreen_Show;
|
||||
s->Layout = SettingsScreen_Layout;
|
||||
|
||||
s->title = "Options";
|
||||
Launcher_SetScreen((struct LScreen*)s);
|
||||
@ -1555,6 +1530,13 @@ static struct LWidget* themes_widgets[] = {
|
||||
(struct LWidget*)&ThemesScreen.btnBack
|
||||
};
|
||||
|
||||
LAYOUTS the_btnModern[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, -120) };
|
||||
LAYOUTS the_btnClassic[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, -70) };
|
||||
LAYOUTS the_btnNordic[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, -20) };
|
||||
LAYOUTS the_btnCustom[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 120) };
|
||||
LAYOUTS the_btnBack[3] = { LLayout_X(ANCHOR_CENTRE, 0), LLayout_Y(ANCHOR_CENTRE, 170) };
|
||||
|
||||
|
||||
static void ThemesScreen_Set(const struct LauncherTheme* theme) {
|
||||
Launcher_Theme = *theme;
|
||||
Launcher_SaveTheme();
|
||||
@ -1576,11 +1558,11 @@ static void ThemesScreen_Init(struct LScreen* s_) {
|
||||
s->widgets = themes_widgets;
|
||||
s->numWidgets = Array_Elems(themes_widgets);
|
||||
|
||||
LButton_Init(&s->btnModern, 200, 35, "Modern", NULL);
|
||||
LButton_Init(&s->btnClassic, 200, 35, "Classic", NULL);
|
||||
LButton_Init(&s->btnNordic, 200, 35, "Nordic", NULL);
|
||||
LButton_Init(&s->btnCustom, 200, 35, "Custom", NULL);
|
||||
LButton_Init(&s->btnBack, 80, 35, "Back", NULL);
|
||||
LButton_Init(&s->btnModern, 200, 35, "Modern", the_btnModern);
|
||||
LButton_Init(&s->btnClassic, 200, 35, "Classic", the_btnClassic);
|
||||
LButton_Init(&s->btnNordic, 200, 35, "Nordic", the_btnNordic);
|
||||
LButton_Init(&s->btnCustom, 200, 35, "Custom", the_btnCustom);
|
||||
LButton_Init(&s->btnBack, 80, 35, "Back", the_btnBack);
|
||||
|
||||
s->btnModern.OnClick = ThemesScreen_Modern;
|
||||
s->btnClassic.OnClick = ThemesScreen_Classic;
|
||||
@ -1589,20 +1571,10 @@ static void ThemesScreen_Init(struct LScreen* s_) {
|
||||
s->btnBack.OnClick = SwitchToSettings;
|
||||
}
|
||||
|
||||
static void ThemesScreen_Layout(struct LScreen* s_) {
|
||||
struct ThemesScreen* s = (struct ThemesScreen*)s_;
|
||||
LWidget_SetLocation(&s->btnModern, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, -120);
|
||||
LWidget_SetLocation(&s->btnClassic, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, -70);
|
||||
LWidget_SetLocation(&s->btnNordic, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, -20);
|
||||
LWidget_SetLocation(&s->btnCustom, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 120);
|
||||
LWidget_SetLocation(&s->btnBack, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 170);
|
||||
}
|
||||
|
||||
void ThemesScreen_SetActive(void) {
|
||||
struct ThemesScreen* s = &ThemesScreen;
|
||||
LScreen_Reset((struct LScreen*)s);
|
||||
s->Init = ThemesScreen_Init;
|
||||
s->Layout = ThemesScreen_Layout;
|
||||
|
||||
s->title = "Select theme";
|
||||
Launcher_SetScreen((struct LScreen*)s);
|
||||
|
@ -361,7 +361,6 @@ void LInput_Init(struct LInput* w, int width, const char* hintText, const struct
|
||||
w->hintText = hintText;
|
||||
w->caretPos = -1;
|
||||
LBackend_InputInit(w, width);
|
||||
w->minWidth = w->width;
|
||||
}
|
||||
|
||||
void LInput_SetText(struct LInput* w, const cc_string* text) {
|
||||
@ -661,7 +660,7 @@ static const struct LWidgetVTABLE ltable_VTABLE = {
|
||||
LTable_MouseDown, LTable_MouseUp, /* Select */
|
||||
LTable_MouseWheel, /* Wheel */
|
||||
};
|
||||
void LTable_Init(struct LTable* w) {
|
||||
void LTable_Init(struct LTable* w, const struct LLayout* layouts) {
|
||||
int i;
|
||||
w->VTABLE = <able_VTABLE;
|
||||
w->type = LWIDGET_TABLE;
|
||||
@ -669,6 +668,7 @@ void LTable_Init(struct LTable* w) {
|
||||
w->numColumns = Array_Elems(tableColumns);
|
||||
w->sortingCol = -1;
|
||||
w->opaque = true;
|
||||
w->layouts = layouts;
|
||||
|
||||
for (i = 0; i < w->numColumns; i++) {
|
||||
w->columns[i].width = Display_ScaleX(w->columns[i].width);
|
||||
|
@ -13,7 +13,6 @@ enum LWIDGET_TYPE {
|
||||
|
||||
#define LLAYOUT_TYPE_X 0x0100
|
||||
#define LLAYOUT_TYPE_Y 0x0200
|
||||
#define LLayout_End { 0, 0 }
|
||||
#define LLayout_X(anchor, offset) { LLAYOUT_TYPE_X | anchor, offset }
|
||||
#define LLayout_Y(anchor, offset) { LLAYOUT_TYPE_Y | anchor, offset }
|
||||
struct LLayout { short type, offset; };
|
||||
@ -212,7 +211,7 @@ struct LTableCell { struct LTable* table; int x, y, width; };
|
||||
|
||||
/* Initialises a table. */
|
||||
/* NOTE: Must also call LTable_Reset to make a table actually useful. */
|
||||
void LTable_Init(struct LTable* table);
|
||||
void LTable_Init(struct LTable* table, const struct LLayout* layouts);
|
||||
/* Resets state of a table (reset sorter, filter, etc) */
|
||||
void LTable_Reset(struct LTable* table);
|
||||
/* Adjusts Y position of rows and number of visible rows. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user