Files
armorpaint/paint/sources/ui/box_new_project.c
T
2026-06-18 19:46:50 +02:00

40 lines
1.4 KiB
C

#include "../global.h"
void project_fetch_default_meshes() {
if (project_default_mesh_list == NULL) {
gc_unroot(project_default_mesh_list);
project_default_mesh_list = file_read_directory(string("%s%smeshes", path_data(), PATH_SEP));
gc_root(project_default_mesh_list);
for (i32 i = 0; i < project_default_mesh_list->length; ++i) {
char *s = project_default_mesh_list->buffer[i];
project_default_mesh_list->buffer[i] = substring(project_default_mesh_list->buffer[i], 0, string_length(s) - 4); // Trim .arm
}
any_array_push(project_default_mesh_list, "plane");
any_array_push(project_default_mesh_list, "plane_2048");
any_array_push(project_default_mesh_list, "sphere");
any_array_push(project_default_mesh_list, "sphere_2048");
}
}
void project_new_box_draw() {
project_fetch_default_meshes();
ui_handle_t *h_project_type = ui_handle(__ID__);
h_project_type->i = g_context->project_type;
g_context->project_type = ui_combo(h_project_type, project_default_mesh_list, tr("Template"), true, UI_ALIGN_LEFT, true);
ui_end_element();
ui_row2();
if (ui_icon_button(tr("Cancel"), ICON_CLOSE, UI_ALIGN_CENTER)) {
ui_box_hide();
}
if (ui_icon_button(tr("OK"), ICON_CHECK, UI_ALIGN_CENTER) || g_ui->is_return_down) {
project_new(true);
ui_box_hide();
}
}
void project_new_box() {
ui_box_show_custom(&project_new_box_draw, 400, 200, NULL, true, tr("New Project"));
}