diff --git a/src/main.c b/src/main.c index 9ce0d76..d0ca642 100644 --- a/src/main.c +++ b/src/main.c @@ -176,41 +176,67 @@ int main(void) /* Dibujando interfaz gráfica */ { + /* Mejorar el diseño del UI */ nk_glfw3_new_frame(&glfw); - if (nk_begin(context, "MANIGRAPH", nk_rect(0, 0, 500, 500), - NK_WINDOW_BORDER | NK_WINDOW_TITLE | NK_WINDOW_MINIMIZABLE | NK_WINDOW_MOVABLE | NK_WINDOW_SCALABLE)) { - - nk_label(context, "MANIGRAPH", NK_TEXT_ALIGN_CENTERED); + if (nk_begin(context, "MANIGRAPH", nk_rect(10, 10, 480, 480), + NK_WINDOW_BORDER | NK_WINDOW_TITLE | NK_WINDOW_SCALABLE | NK_WINDOW_MOVABLE | NK_WINDOW_MINIMIZABLE)) { + + /* Encabezado del UI */ 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 - nk_layout_row_static(context, 40, 200, 1); - if (nk_button_label(context, "Botón")) { - printf("Botón Azul presionado\n"); - } + /* Información sobre la gráfica */ + nk_layout_row_dynamic(context, 20, 1); + nk_label(context, "Información de la gráfica:", NK_TEXT_ALIGN_LEFT); - // Texto con colores personalizados - nk_label_colored(context, "Texto en rojo", NK_TEXT_ALIGN_LEFT, nk_rgb(255, 0, 0)); + /* Mostrar la función de la gráfica */ + 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 - nk_layout_row_dynamic(context, 120, 1); // Crear espacio para el selector de color + /* Color picker para personalización */ + nk_layout_row_dynamic(context, 120, 1); // Área para selector de color picked_color = nk_color_picker(context, picked_color, NK_RGBA); - // Aplicar el color seleccionado al gráfico - graph_color[0] = picked_color.r; // Rojo - graph_color[1] = picked_color.g; // Verde - graph_color[2] = picked_color.b; // Azul + /* Aplicar color a la gráfica */ + graph_color[0] = picked_color.r; + graph_color[1] = picked_color.g; + graph_color[2] = picked_color.b; glUseProgram(shader); 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_glfw3_render(&glfw, NK_ANTI_ALIASING_ON, MAX_VERTEX_BUFFER, MAX_ELEMENT_BUFFER); + } } mlog("[MAIN LOOP] Terminando...\n");