|
void | update_widget_anchor (uint8_t x, uint8_t y) |
| Modify the anchor of the widget on the display screen.
|
|
virtual void | draw_border (ColorIndex color=ColorIndex::WHITE) |
| draw a rectangle around the widget.
|
|
void | show () |
| A short way to call GraphicDisplayDevice::show(&canvas, anchor x, anchor y)
|
|
| 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.
|
|
| ~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 ;
|
|
| 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.
|
|
virtual void | draw ()=0 |
| a pure virtual member that is called to effectively draw the widget.
|
|
|
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
|
|
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.
|
|
The graphical version of a Widget.
void GraphicWidget::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 ;
- Parameters
-
radius | radius, in pixel, of the circle |
x_center | horizontal position of the center of the cercle |
y_center | vertical position of the center on the cercle |
fill | if true, the circle is filled with color c |
color | color of the border of the circle, default to WHITE |