fysxasteroids/engine/IMGUIControls.h

59 lines
1.6 KiB
C++

/** \brief Header file for the IMGUI widgets
*
* \todo [med] Cyclying through widgets via tab and shift-tab
*/
#ifndef _IMGUICONTROLS_H
#define _IMGUICONTROLS_H
#include <SDL/SDL.h>
#include <string>
namespace Engine {
/** \brief IMGUI widgets and functions
*/
namespace GUI {
/** \brief Checks whether the mouse is in the given rectangle */
bool regionhit (int x, int y, int w, int h);
void DrawRoundedBlock (int x, int y, int w, int h);
/** \brief Draws a label at the given position with vertical center at y */
void Label (int id, const char* caption, int x, int y);
/** \brief Draws a label centered at the given position with vertical center at y */
void LabelCentered (int id, const char* caption, int x, int y);
/** \brief Draws a button at the given position
*
* The caption will be centered in the middle of the clickable area.
*
* \returns true if it was clicked
*
*/
bool Button (int id, const char* caption, int x, int y, int w, int h);
bool LineEdit (int id, int x, int y, std::string &text_value, const int &maxlength);
float VerticalSlider (int id, int x, int y, int w, int h, float min_value, float max_value, float &value);
/** \brief Checks whether a given key is currently pressed
*
* This function can be used to check whether a single key (e.g. ESC) is currently
* pressed. This is useful when one wants to abort an action or quit from the
* main screen by pressing a single key.
*/
bool CheckKeyPress (int keycode);
/** \brief Checks whether a key press was completed for a given key
*
*/
bool CheckKeyPressed (int keycode);
};
};
#endif /* _IMGUICONTROLS_H */