ui better

This commit is contained in:
Crisel
2024-12-10 00:06:17 -06:00
parent 81eb79662e
commit bc537cf9f2

View File

@@ -176,41 +176,67 @@ int main(void)
/* Dibujando interfaz gráfica */ /* Dibujando interfaz gráfica */
{ {
/* Mejorar el diseño del UI */
nk_glfw3_new_frame(&glfw); nk_glfw3_new_frame(&glfw);
if (nk_begin(context, "MANIGRAPH", nk_rect(0, 0, 500, 500), if (nk_begin(context, "MANIGRAPH", nk_rect(10, 10, 480, 480),
NK_WINDOW_BORDER | NK_WINDOW_TITLE | NK_WINDOW_MINIMIZABLE | NK_WINDOW_MOVABLE | NK_WINDOW_SCALABLE)) { NK_WINDOW_BORDER | NK_WINDOW_TITLE | NK_WINDOW_SCALABLE | NK_WINDOW_MOVABLE | NK_WINDOW_MINIMIZABLE)) {
nk_label(context, "MANIGRAPH", NK_TEXT_ALIGN_CENTERED); /* Encabezado del UI */
nk_layout_row_dynamic(context, 30, 1); nk_layout_row_dynamic(context, 30, 1);
nk_label(context, "No sé que poner aki", NK_TEXT_ALIGN_LEFT); nk_label_colored(context, "MANIGRAPH", NK_TEXT_ALIGN_CENTERED, nk_rgb(255, 255, 0)); // Título en amarillo
// Botón estilizado /* Información sobre la gráfica */
nk_layout_row_static(context, 40, 200, 1); nk_layout_row_dynamic(context, 20, 1);
if (nk_button_label(context, "Botón")) { nk_label(context, "Información de la gráfica:", NK_TEXT_ALIGN_LEFT);
printf("Botón Azul presionado\n");
}
// Texto con colores personalizados /* Mostrar la función de la gráfica */
nk_label_colored(context, "Texto en rojo", NK_TEXT_ALIGN_LEFT, nk_rgb(255, 0, 0)); nk_label_colored(context, "Función actual: z = x^2 + y^2", NK_TEXT_ALIGN_LEFT, nk_rgb(0, 255, 0)); // Texto verde
// Color Picker /* Color picker para personalización */
nk_layout_row_dynamic(context, 120, 1); // Crear espacio para el selector de color nk_layout_row_dynamic(context, 120, 1); // Área para selector de color
picked_color = nk_color_picker(context, picked_color, NK_RGBA); picked_color = nk_color_picker(context, picked_color, NK_RGBA);
// Aplicar el color seleccionado al gráfico /* Aplicar color a la gráfica */
graph_color[0] = picked_color.r; // Rojo graph_color[0] = picked_color.r;
graph_color[1] = picked_color.g; // Verde graph_color[1] = picked_color.g;
graph_color[2] = picked_color.b; // Azul graph_color[2] = picked_color.b;
glUseProgram(shader); glUseProgram(shader);
glUniform3fv(glGetUniformLocation(shader, "uColor"), 1, graph_color); glUniform3fv(glGetUniformLocation(shader, "uColor"), 1, graph_color);
/* Opciones de configuración */
nk_layout_row_dynamic(context, 30, 2); // Filas divididas en dos columnas
if (nk_button_label(context, "Restablecer")) {
printf("Color restablecido\n");
picked_color.r = 1.0f;
picked_color.g = 1.0f;
picked_color.b = 1.0f;
}
if (nk_button_label(context, "Exportar")) {
printf("Exportar gráfica\n");
// Lógica de exportación aquí
}
/* Sección de ayuda */
nk_layout_row_dynamic(context, 20, 1);
nk_label_colored(context, "Atajos de teclado:", NK_TEXT_ALIGN_LEFT, nk_rgb(255, 255, 255)); // Encabezado
nk_label(context, " - W/S: Rotar eje X", NK_TEXT_ALIGN_LEFT);
nk_label(context, " - A/D: Rotar eje Y", NK_TEXT_ALIGN_LEFT);
nk_label(context, " - Z/X: Rotar eje Z", NK_TEXT_ALIGN_LEFT);
/* Espacio para interacción adicional */
nk_layout_row_dynamic(context, 30, 1);
if (nk_button_label(context, "Salir")) {
printf("Cerrando aplicación\n");
break; // Salir del bucle principal
}
} }
nk_end(context); nk_end(context);
nk_glfw3_render(&glfw, NK_ANTI_ALIASING_ON, MAX_VERTEX_BUFFER, MAX_ELEMENT_BUFFER); nk_glfw3_render(&glfw, NK_ANTI_ALIASING_ON, MAX_VERTEX_BUFFER, MAX_ELEMENT_BUFFER);
} }
} }
mlog("[MAIN LOOP] Terminando...\n"); mlog("[MAIN LOOP] Terminando...\n");