Raspberry Pi Weighting Control System
This project serves as a simple weighting control system, that was realized as a Bachelor Thesis
gui_input.h
Go to the documentation of this file.
1 #ifndef GUI_INPUT_H
2 #define GUI_INPUT_H
3 
4 #include "app_workspace.h"
5 #include "gui_element.h"
6 
11 enum input_type {
17  IN_DOUBLE
18 };
19 
24 class gui_input : public gui_element {
25  private:
28  const char *label = nullptr;
29  void *data = nullptr;
30  int data_size = 0;
31  bool has_min_max = false;
32  int i_min = INT_MIN, i_max = INT_MAX;
33  float f_min = FLT_MIN, f_max = FLT_MAX;
34  double d_min = DBL_MIN, d_max = DBL_MAX;
35  void (*callback)() = nullptr;
40  void check_input_limit();
41 
42  public:
55  gui_input(input_type type, void *data, int data_size, int x = -1, int y = -1, int width = -1,
56  const char *label = nullptr,
58 
60  void render_element();
66  void set_min_max(int min = INT_MIN, int max = INT_MAX);
68  void set_min_max(float min = FLT_MIN, float max = FLT_MAX);
70  void set_min_max(double min = DBL_MIN, double max = DBL_MAX);
72  void set_value_change_action(void (*callback)());
73 };
74 
75 #endif
Paren class for other gui elements.
Definition: gui_element.h:8
This is a wrapper for various ImGui input types.
Definition: gui_input.h:24
app_workspace_ns::kb_input_type get_in_type()
Definition: gui_input.cpp:107
input_type get_type()
Definition: gui_input.cpp:102
void set_value_change_action(void(*callback)())
Definition: gui_input.cpp:138
void render_element()
Definition: gui_input.cpp:19
gui_input(input_type type, void *data, int data_size, int x=-1, int y=-1, int width=-1, const char *label=nullptr, app_workspace_ns::font_size font_size=app_workspace_ns::font_size::NORMAL_FONT)
Construct a new gui input object.
Definition: gui_input.cpp:6
void set_min_max(int min=INT_MIN, int max=INT_MAX)
Definition: gui_input.cpp:120
input_type
Allowed input types.
Definition: gui_input.h:11
@ IN_DOUBLE
Definition: gui_input.h:17
@ IN_INT
Definition: gui_input.h:12
@ IN_PASSWORD_PLAIN
Definition: gui_input.h:16
@ IN_TEXT
Definition: gui_input.h:14
@ IN_PASSWORD
Definition: gui_input.h:15
@ IN_FLOAT
Definition: gui_input.h:13
font_size
This enum defines sizes of corresponding fonts. E.g.: SMALL_FONT is 12px.
kb_input_type
Enum holding options of keyboard INPUT mode types.
Definition: app_workspace.h:85