Raspberry Pi Weighting Control System
This project serves as a simple weighting control system, that was realized as a Bachelor Thesis
Public Member Functions | List of all members
gui_selectable Class Reference

This creates an ImGui::Seletable, which can serve as a label that can be navigated to. More...

#include <gui_selectable.h>

Inheritance diagram for gui_selectable:
gui_element

Public Member Functions

 gui_selectable (const char *label, int index, int *selector, void(*callback)(), int width=-1, int height=-1, ImGuiSelectableFlags flags=0)
 Construct a new gui selectable object. More...
 
void render_element ()
 
- Public Member Functions inherited from gui_element
void set_refresh_screen (bool *refresh_flag)
 

Additional Inherited Members

- Public Attributes inherited from gui_element
int index = -1
 
- Protected Attributes inherited from gui_element
int width = -1
 
int x = -1
 
int y = -1
 
bool * refresh_screen = nullptr
 

Detailed Description

This creates an ImGui::Seletable, which can serve as a label that can be navigated to.

Definition at line 12 of file gui_selectable.h.

Constructor & Destructor Documentation

◆ gui_selectable()

gui_selectable::gui_selectable ( const char *  label,
int  index,
int *  selector,
void(*)()  callback,
int  width = -1,
int  height = -1,
ImGuiSelectableFlags  flags = 0 
)

Construct a new gui selectable object.

Parameters
labelof the item
indexindex of this selectable, because it is expected that this is used on an array of values
selectorvariable that contains selected item
callbackaction that is taken when selected item is activated
widthif set to -1, isn't used
heightif set to -1, isn't used
flagsFlags modifying the element behaviour

Definition at line 4 of file gui_selectable.cpp.

6 {
7  this->label = label;
8  this->index = index;
9  this->selector = selector;
10  this->width = (width <= 0 ? 0 : width);
11  this->height = (height <= 0 ? 0 : height);
12  this->callback = callback;
13  this->flags = flags;
14  // "label##i" - is to ensure unique ImGuiID, but label should already be unique
15  this->inner_label = std::string(this->label) + "##" + std::to_string(this->index);
16 }

Member Function Documentation

◆ render_element()

void gui_selectable::render_element ( )
virtual

This function calls the element rendering. This is required to be overriden for the element to be rendered

Reimplemented from gui_element.

Definition at line 18 of file gui_selectable.cpp.

18  {
20 
21  ImVec2 size((float) width, (float) height);
22  // if (ImGui::Selectable(this->inner_label.c_str(), this->index == *(this->selector), this->flags, size)) {
23  if (ImGui::Selectable(this->inner_label.c_str(), false, this->flags, size)) { // false - not highlighting selected element
24  *(this->selector) = this->index;
25 
26  if (this->callback != nullptr)
27  this->callback();
28  }
29 }
virtual void render_element()
Definition: gui_element.cpp:9

The documentation for this class was generated from the following files: