sm64coopdx/src/pc/djui/djui_panel_main.c
2024-02-23 10:20:14 -05:00

59 lines
2.6 KiB
C

#include "djui.h"
#include "djui_panel.h"
#include "djui_panel_host.h"
#include "djui_panel_join.h"
#include "djui_panel_options.h"
#include "djui_panel_menu.h"
#include "djui_panel_confirm.h"
#include "src/pc/controller/controller_sdl.h"
#include "src/pc/pc_main.h"
extern ALIGNED8 u8 texture_coopdx_logo[];
bool gDjuiPanelMainCreated = false;
static void djui_panel_main_quit_yes(UNUSED struct DjuiBase* caller) {
game_exit();
}
static void djui_panel_main_quit(struct DjuiBase* caller) {
djui_panel_confirm_create(caller,
DLANG(MAIN, QUIT_TITLE),
DLANG(MAIN, QUIT_CONFIRM),
djui_panel_main_quit_yes);
}
void djui_panel_main_create(struct DjuiBase* caller) {
struct DjuiThreePanel* panel = djui_panel_menu_create("");
{
struct DjuiBase* body = djui_three_panel_get_body(panel);
{
struct DjuiImage* logo = djui_image_create(body, texture_coopdx_logo, 2048, 1024, 32);
djui_base_set_size(&logo->base, 370.0f, 185.0f);
djui_base_set_alignment(&logo->base, DJUI_HALIGN_CENTER, DJUI_VALIGN_TOP);
djui_base_set_location_type(&logo->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
djui_base_set_location(&logo->base, 0, -50.0f);
struct DjuiButton* button1 = djui_button_create(body, DLANG(MAIN, HOST), DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_create);
djui_base_set_location(&button1->base, 0, -30.0f);
djui_cursor_input_controlled_center(&button1->base);
struct DjuiButton* button2 = djui_button_create(body, DLANG(MAIN, JOIN), DJUI_BUTTON_STYLE_NORMAL, djui_panel_join_create);
djui_base_set_location(&button2->base, 0, -30.0f);
struct DjuiButton* button3 = djui_button_create(body, DLANG(MAIN, OPTIONS), DJUI_BUTTON_STYLE_NORMAL, djui_panel_options_create);
djui_base_set_location(&button3->base, 0, -30.0f);
struct DjuiButton* button4 = djui_button_create(body, DLANG(MAIN, QUIT), DJUI_BUTTON_STYLE_BACK, djui_panel_main_quit);
djui_base_set_location(&button4->base, 0, -30.0f);
}
struct DjuiText* version = djui_text_create(&panel->base, SM64COOPDX_VERSION);
djui_base_set_size_type(&version->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
djui_base_set_size(&version->base, 1.0f, 1.0f);
djui_base_set_color(&version->base, 50, 50, 50, 255);
djui_text_set_alignment(version, DJUI_HALIGN_RIGHT, DJUI_VALIGN_BOTTOM);
}
djui_panel_add(caller, panel, NULL);
gInteractableOverridePad = true;
gDjuiPanelMainCreated = true;
}