LO27/LibGui/gui.h

78 lines
1.5 KiB
C

#ifndef PIXEL_H_INCLUDED
#define PIXEL_H_INCLUDED
#include <SDL2/SDL.h>
#include <CellElement.h>
#include <matrix.h>
typedef struct {
SDL_Window * window;
SDL_Renderer * renderer;
int WIDTH;
int HEIGHT;
SDL_Event event;
} SCREEN;
/**
* Set a pixel on a given screen
* @param screen the screen to display the pixel
* @param x x position
* @param y y position
* @param value display white if true and black if false
* @return
*/
void SetPixel(SDL_Renderer *renderer, int x, int y, bool value);
/**
* Display an entire matrix on a given screen
* @param screen the screen where the matrix should be displayed
* @param m a Matrix
* @return
*/
void DisplayMatrixSDL(SCREEN *screen, Matrix m);
/**
* Wait until the user press the enter key
* @param screen the screen where the renderer is
* @return
*/
void WaitUntilEnter(SCREEN * screen);
/**
* Print a matrix in a new SDL window
* @param Matrix the matrix to display
* @return int error code
*/
int NewWindowFromMatrix(Matrix m);
/**
* Display a message and ask for yes or no to the user
* @param message the message to display
* @return bool the answer
*/
bool YesOrNo(char message[]);
/**
* Display matrix choosing the right function
* @param m a Matrix
* @param useSDL a bool
* @return
*/
void DisplayMatrixGUI(Matrix m, bool useSDL);
/**
* Get a number from the user safely
* @param min the minimal authorized number
* @param max the maximal authorized number
* @return int the input number
*/
int SafeNumberInput(int min, int max);
/**
* Clears the buffer of stdin
* @return
*/
void ClearBuffer();
#endif