76 lines
1.7 KiB
C
76 lines
1.7 KiB
C
#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
|
#include <imgui/cimgui.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#include "read_events.h"
|
|
#include "read_file.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;
|
|
}
|
|
|
|
if (igButton("Replay", (ImVec2) {0, 0}))
|
|
{
|
|
rewind(ptr->file);
|
|
readfile(ptr->file);
|
|
}
|
|
}
|
|
|
|
igEnd();
|
|
|
|
return 0;
|
|
}
|