macros/src/ui.c
2022-12-13 01:33:56 +01:00

66 lines
1.5 KiB
C

#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
#include <imgui/cimgui.h>
#include <stdlib.h>
#include <string.h>
#include "ui.h"
ui_infos * init_ui(char *name)
{
ui_infos *ret = (ui_infos *) malloc(sizeof(ui_infos));
ret->name = (char *) malloc(strlen(name));
strcpy(ret->name, name);
ret->file = fopen(name, "w+");
ret->is_recording = 0;
}
void free_ui(ui_infos *ptr)
{
if (ptr->file != NULL) fclose(ptr->file);
if (ptr->name != NULL) free(ptr->name);
free(ptr);
}
int draw_ui(ui_infos *ptr)
{
/* en plein écran */
ImGuiViewport *vp = igGetMainViewport();
igSetNextWindowPos(vp->Pos, NULL, (ImVec2) { 0, 0 });
igSetNextWindowSize(vp->Size, NULL);
/*
* Choix du fichier
*
* Bouton enregistrement
*
* Bouton de rewind (bloqué si pas de fichiers)
*
* Liste déroulantes des fenetres pour savoir où faire les clics
*/
igText("Fichier : %s", ptr->name);
igBegin("Test", NULL, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoDecoration);
igText("Test");
if (ptr->is_recording)
{
igButton("Appuyer sur les clics droit et gauche pour arrêter d'enregistrer.", (ImVec2) { 0, 0 });
ptr->is_recording = listen(ptr->file);
if (ptr->is_recording)
{
fprintf(stderr, "listen a eu un soucis.");
return -1;
}
}
else
{
if (igButton("Lancer l'enregistrement.", (ImVec2) { 0, 0 }))
{
ptr->is_recording = 1;
}
}
igEnd();
return 0;
}