#include #include #include #include #include "main_window.hpp" #include "xtc/xtc_version.h" #include int main(int argc, char **argv) { if (argc == 2 && !std::strcmp(argv[1], "--version")) { std::printf("%s %s\n", XTC_PROJECT_NAME, XTC_VERSION_STRING); return EXIT_SUCCESS; } if (argc == 2 && !std::strcmp(argv[1], "--help")) { std::puts( "Usage: xtc [PROJECT] or xtc [FLTK options]\n--version and --help work without a display or audio server."); return EXIT_SUCCESS; } const char *project_path = nullptr; if (argc == 2 && argv[1][0] != '-') { project_path = argv[1]; argc = 1; argv[1] = nullptr; } try { Fl::scheme("flat"); Fl::background(34, 36, 40); Fl::background2(24, 26, 30); Fl::foreground(230, 232, 236); MainWindow window; if (project_path) { xtc_result result = window.open_project(project_path); if (result != XTC_OK) { std::fprintf(stderr, "Cannot open project: %s\n", xtc_result_string(result)); return EXIT_FAILURE; } } window.show(argc, argv); return Fl::run(); } catch (const std::exception &error) { std::fprintf(stderr, "GUI startup/runtime failure: %s\n", error.what()); } catch (...) { std::fputs("Unexpected GUI startup/runtime failure.\n", stderr); } return EXIT_FAILURE; }