/** \brief Header file for the IMGUI widgets * * \todo [med] Cyclying through widgets via tab and shift-tab */ #ifndef _IMGUICONTROLS_H #define _IMGUICONTROLS_H #include #include 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 CheckButton (int id, const char* caption, bool state, 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 */