|
C++ DevKit
C++ set of OOP library
|
a dedicated class for text frame only More...
#include <widget.h>


Public Member Functions | |
| struct_ConfigTextWidget | get_text_frame_config () |
| Get the text frame config object. | |
| TextWidget (GraphicDisplayDevice *graphic_display_screen, struct_ConfigTextWidget text_cfg, CanvasFormat canvas_format, Model *displayed_object=nullptr) | |
| The max number of line with respect to frame height and font height. | |
| TextWidget (GraphicDisplayDevice *graphic_display_screen, struct_ConfigTextWidget text_cfg, CanvasFormat canvas_format, size_t frame_width, size_t frame_height, Model *displayed_object=nullptr) | |
| Construct a new Text Widget object. | |
| virtual | ~TextWidget () |
| the destructor of TextWidget | |
| void | update_text_frame_size (const unsigned char *font) |
| Compute the text size in column x line according to the size of the font and the size of the frame in pixel. Delete the previous text buffer if any and create a new buffer. | |
| void | clear_text_buffer () |
| et text buffer memory to "0" and set character current line and column to 0 | |
| void | update_canvas_buffer_size (const unsigned char *font) |
| compute canvas width and height according to the size of the text (column x line ) and the size of the bitmap font. Delete the previous pixel buffer if any and create a new buffer. | |
| void | write () |
| process characters in the internal text buffer and draw it into the pixel buffer. | |
| void | write (const char *c_str) |
| process the string c_str and then draw each character into the pixel buffer, without using the text buffer. | |
| void | process_char (char character) |
| interpret the character and draw it into the pixel buffer at the current line and column character position. | |
| void | next_line () |
| character line steps one position downward. | |
| void | next_char () |
| character column steps forward one position forward. | |
| void | draw () |
| we need draw() to be compliant with the pure virtual draw() inherited from Widget. | |
| void | draw_border (ColorIndex color=ColorIndex::WHITE) |
| draw a one-pixel width around the the frame | |
Public Member Functions inherited from GraphicWidget | |
| void | update_widget_anchor (uint8_t x, uint8_t y) |
| Modify the anchor of the widget on the display screen. | |
| void | show () |
| A short way to call GraphicDisplayDevice::show(&canvas, anchor x, anchor y) | |
| void | send_image_to_DisplayGateKeeper (QueueHandle_t display_queue, SemaphoreHandle_t sending_done) |
| used with FreeRTOS. send the widget data_to_display structure to the task in charge of the display management | |
| GraphicWidget (GraphicDisplayDevice *graphic_display_screen, struct_ConfigGraphicWidget graph_cfg, CanvasFormat canvas_format, Model *displayed_object=nullptr) | |
| Construct a new Graphic Widget object. | |
| GraphicWidget (GraphicDisplayDevice *graphic_display_screen, struct_ConfigTextWidget text_cfg, CanvasFormat canvas_format, Model *displayed_object=nullptr) | |
| Construct a new Graphic Widget object from the TextWidget Constructor. | |
| GraphicWidget (GraphicDisplayDevice *graphic_display_screen, struct_ConfigTextWidget text_cfg, CanvasFormat canvas_format, size_t frame_width, size_t frame_height, Model *displayed_object=nullptr) | |
| Construct a new Graphic Widget object from the TextWidget Constructor. | |
| virtual | ~GraphicWidget () |
| Destroy the Widget object. | |
| struct_ConfigGraphicWidget | get_graph_frame_config () |
| Get the graphic frame config object. | |
| void | hline (uint8_t x, uint8_t y, size_t w, ColorIndex color=ColorIndex::WHITE) |
| Draw a color horizontal line, starting at frame position (x,y), on w number of pixel. | |
| void | vline (uint8_t x, uint8_t y, size_t h, ColorIndex color=ColorIndex::WHITE) |
| Draw a color vertical line, starting at frame position (x,y), on w number of pixel. | |
| void | line (int x0, int y0, int x1, int y1, ColorIndex color=ColorIndex::WHITE) |
| Draw a color line, starting at frame position (x0,y0), ending at frame position (x1,y1) | |
| void | rect (uint8_t start_x, uint8_t start_y, size_t w, size_t h, bool fill=false, ColorIndex color=ColorIndex::WHITE) |
| Draw a rectangle, starting at frame position (x,y), w wide and h high. | |
| void | circle (int radius, int x_center, int y_center, bool fill=false, ColorIndex color=ColorIndex::WHITE) |
| draw a cercle of size radius, centered at (x_center, y_center) https://fr.wikipedia.org/wiki/Algorithme_de_trac%C3%A9_d%27arc_de_cercle_de_Bresenham https://en.wikipedia.org/wiki/Midpoint_circle_algorithm procédure tracerCercle (entier rayon, entier x_centre, entier y_centre) déclarer entier x, y, m ; x ← 0 ; y ← rayon ; // on se place en haut du cercle m ← 5 - 4*rayon ; // initialisation Tant que x <= y // tant qu'on est dans le second octant tracerPixel( x+x_centre, y+y_centre ) ; tracerPixel( y+x_centre, x+y_centre ) ; tracerPixel( -x+x_centre, y+y_centre ) ; tracerPixel( -y+x_centre, x+y_centre ) ; tracerPixel( x+x_centre, -y+y_centre ) ; tracerPixel( y+x_centre, -x+y_centre ) ; tracerPixel( -x+x_centre, -y+y_centre ) ; tracerPixel( -y+x_centre, -x+y_centre ) ; si m > 0 alors //choix du point F y ← y - 1 ; m ← m - 8*y ; fin si ; x ← x + 1 ; m ← m + 8*x + 4 ; fin tant que ; fin de procédure ; | |
Public Member Functions inherited from Widget | |
| Widget (Model *actual_displayed_model, DisplayDevice *graphic_display_device=nullptr) | |
| contructor for generic widget | |
| void | add_widget (Widget *_sub_widget) |
| add sub_widget to the current widget | |
| void | set_display_device (DisplayDevice *_new_display_device) |
| Set the display screen object. | |
Public Attributes | |
| uint8_t | number_of_column {0} |
| The max number of line with respect to frame height and font height. | |
| uint8_t | number_of_line {0} |
| The max number of column with respect to frame width and font width. | |
| size_t | text_buffer_size |
| size of the buffer that contains text as string of characters. | |
| char * | text_buffer = nullptr |
| the buffer where text are written | |
Public Attributes inherited from GraphicWidget | |
| Canvas * | canvas |
| the associated canvas in which the widget writes text and draws graphics | |
| uint8_t | widget_anchor_x |
| location in x of the widget within the hosting framebuffer | |
| uint8_t | widget_anchor_y |
| location in y of the widget within the hosting framebuffer | |
| struct_DataToShow | data_to_display |
| the data structure used to send the canvas to the display task when a FreeRTOS queue is used. | |
Protected Member Functions | |
| void | create_text_buffer () |
| create text buffer and delete the old one if already existing | |
Protected Member Functions inherited from GraphicWidget | |
| void | clear_widget () |
| fill the graphic pixel buffer with 0x00. | |
| virtual void | get_value_of_interest ()=0 |
| A pure virtual method that results in the transfer of the displayed values of the displayed model to the widget. | |
Additional Inherited Members | |
Protected Attributes inherited from GraphicWidget | |
| bool | widget_with_border {false} |
| if true, the widget is surrounded by a one-pixel border | |
| size_t | widget_width {128} |
| As a widget can be surrounded by a border, the actual widget width is not the associated framebuffer width. | |
| size_t | widget_height {8} |
| As a widget can be surrounded by a border, the actual widget height is not the associated framebuffer height. | |
| uint8_t | widget_start_x |
| this is the actual horizontal start of the widget drawing area, taken into account the presence of border. | |
| uint8_t | widget_start_y |
| this is the actual vertical start of the widget drawing area, taken into account the presence of border. | |
| uint8_t | widget_border_width |
| this is the border size of the widget. 0 if no border, 1 if border | |
Protected Attributes inherited from Widget | |
| DisplayDevice * | display_device {nullptr} |
| the display device where the attached to the frame buffer | |
| Model * | actual_displayed_model {nullptr} |
| a pointer to the Model actually displayed by the widget | |
| std::vector< Widget * > | widgets |
| A widget can be composed by several widgets. | |
a dedicated class for text frame only
| TextWidget::TextWidget | ( | GraphicDisplayDevice * | graphic_display_screen, |
| struct_ConfigTextWidget | text_cfg, | ||
| CanvasFormat | canvas_format, | ||
| Model * | displayed_object = nullptr ) |
The max number of line with respect to frame height and font height.
Construct a new Text Widget object
| graphic_display_screen | The display device on which the widget is drawn |
| text_cfg | the configuration data for the textual frame |
| canvas_format | the format of the associated canvas (see CanvasFormat) |
| displayed_object | the displayed model of the widget. Default to nullptr |

| TextWidget::TextWidget | ( | GraphicDisplayDevice * | graphic_display_screen, |
| struct_ConfigTextWidget | text_cfg, | ||
| CanvasFormat | canvas_format, | ||
| size_t | frame_width, | ||
| size_t | frame_height, | ||
| Model * | displayed_object = nullptr ) |
Construct a new Text Widget object.
| graphic_display_screen | The display device on which the widget is drawn |
| text_cfg | the configuration data for the textual frame |
| canvas_format | the format of the associated canvas (see CanvasFormat) |
| frame_width | the frame size width |
| frame_height | the frame size height |
| displayed_object | the displayed model of the widget. Default to nullptr |

|
virtual |
we need draw() to be compliant with the pure virtual draw() inherited from Widget.
Implements Widget.

|
virtual |
draw a one-pixel width around the the frame
| color |
Reimplemented from GraphicWidget.


| struct_ConfigTextWidget TextWidget::get_text_frame_config | ( | ) |
Get the text frame config object.
| void TextWidget::process_char | ( | char | character | ) |
interpret the character and draw it into the pixel buffer at the current line and column character position.
Text wrapping is done if wrap flag is true. Character position steps forward according to auto_next_char flag.
Some special characters are processed:
| character |


| void TextWidget::update_canvas_buffer_size | ( | const unsigned char * | font | ) |
compute canvas width and height according to the size of the text (column x line ) and the size of the bitmap font. Delete the previous pixel buffer if any and create a new buffer.
| font | the new font |
| void TextWidget::update_text_frame_size | ( | const unsigned char * | font | ) |
Compute the text size in column x line according to the size of the font and the size of the frame in pixel. Delete the previous text buffer if any and create a new buffer.
| font | the new font |

| void TextWidget::write | ( | ) |
process characters in the internal text buffer and draw it into the pixel buffer.


| void TextWidget::write | ( | const char * | c_str | ) |
process the string c_str and then draw each character into the pixel buffer, without using the text buffer.
| c_str | A C_style character string. |
