LCDGFX LCD display driver  1.2.0
Lightweight graphics library for SSD1306, SSD1325, SSD1327, SSD1331, SSD1351, SH1106, SH1107, IL9163, ST7735, ST7789, ILI9341, PCD8544 displays over I2C/SPI
NanoDisplayOps< O, I > Class Template Referenceabstract

NanoCanvasOps provides operations for drawing in memory buffer. More...

#include <display.h>

Inheritance diagram for NanoDisplayOps< O, I >:
Collaboration diagram for NanoDisplayOps< O, I >:

Public Types

typedef NanoDisplayOps< O, I > T
 Base type for display operations class.
 

Public Member Functions

void putPixel (const NanoPoint &p)
 Draws pixel on specified position. More...
 
void drawLine (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2)
 Draws line. More...
 
void drawLine (const NanoRect &rect)
 Draws line. More...
 
void drawRect (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2)
 Draws rectangle. More...
 
void drawRect (const NanoRect &rect)
 Draws rectangle. More...
 
void fillRect (const NanoRect &rect)
 Fills rectangle area. More...
 
void clearRect (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2)
 Clears rectangle area (fills with black/zero color). More...
 
void clearRect (const NanoRect &rect)
 Clears rectangle area (fills with black/zero color). More...
 
void drawCircle (lcdint_t xc, lcdint_t yc, lcdint_t r, uint8_t options=0x0F)
 Draws circle. More...
 
void drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 1 > &canvas) __attribute__((noinline))
 Draws 1-bit canvas on lcd display. More...
 
void drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 4 > &canvas) __attribute__((noinline))
 Draws 4-bit canvas on lcd display. More...
 
void drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 8 > &canvas) __attribute__((noinline))
 Draws 8-bit canvas on lcd display. More...
 
void drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 16 > &canvas) __attribute__((noinline))
 Draws 16-bit canvas on lcd display. More...
 
void printFixedPgm (lcdint_t xpos, lcdint_t y, const char *ch, EFontStyle style=STYLE_NORMAL) __attribute__((noinline))
 Print text at specified position to canvas. More...
 
void write (const char *str)
 Prints text at current cursor position. More...
 
void print (int number)
 Prints number at current cursor position To specify cursor position using setTextCursor() method. More...
 
void print (float number)
 Prints number at current cursor position To specify cursor position using setTextCursor() method. More...
 
void print (char c)
 Prints single character at current cursor position To specify cursor position using setTextCursor() method. More...
 
void createMenu (SAppMenu *menu, const char **items, uint8_t count, const NanoRect &rect={})
 Creates menu object with the provided list of menu items. More...
 
void showMenu (SAppMenu *menu)
 Shows menu items on the display. More...
 
void showMenuSmooth (SAppMenu *menu)
 Shows menu items on the display. More...
 
void updateMenu (SAppMenu *menu)
 Updates menu items on the display. More...
 
void updateMenuSmooth (SAppMenu *menu)
 Updates menu items on the display. More...
 
uint8_t menuSelection (const SAppMenu *menu)
 Returns currently selected menu item. More...
 
void menuDown (SAppMenu *menu)
 Moves selection pointer down by 1 item. More...
 
void menuUp (SAppMenu *menu)
 Moves selection pointer up by 1 item. More...
 
void drawProgressBar (int8_t progress)
 Displays progress bar in the middle of the display. More...
 
void drawWindow (lcdint_t x, lcdint_t y, lcduint_t width, lcduint_t height, const char *caption, bool blank)
 Displays window at specified position and of specified size. More...
 

Protected Member Functions

virtual void begin ()=0
 Initializes interface and display.
 
virtual void end ()=0
 closes interface to lcd display
 

Detailed Description

template<typename O, typename I>
class NanoDisplayOps< O, I >

NanoCanvasOps provides operations for drawing in memory buffer.

Depending on BPP argument, this class can work with 1,8,16-bit canvas areas.

Definition at line 978 of file display.h.

Member Function Documentation

◆ clearRect() [1/2]

template<class O , class I >
void NanoDisplayOps< O, I >::clearRect ( lcdint_t  x1,
lcdint_t  y1,
lcdint_t  x2,
lcdint_t  y2 
)

Clears rectangle area (fills with black/zero color).

Saves and restores the current drawing color.

Parameters
x1- position X
y1- position Y
x2- position X
y2- position Y

Definition at line 594 of file ssd1306_common.inl.

◆ clearRect() [2/2]

template<class O , class I >
void NanoDisplayOps< O, I >::clearRect ( const NanoRect rect)

Clears rectangle area (fills with black/zero color).

Saves and restores the current drawing color.

Parameters
rect- structure, describing rectangle area

Definition at line 602 of file ssd1306_common.inl.

◆ createMenu()

template<class O , class I >
void NanoDisplayOps< O, I >::createMenu ( SAppMenu menu,
const char **  items,
uint8_t  count,
const NanoRect rect = {} 
)

Creates menu object with the provided list of menu items.

List of menu items (strings) must exist all until menu object is no longer needed. Selection is set to the first item by default.

Parameters
menupointer to SAppMenu structure
itemsarray of null-termintated strings (located in SRAM)
countcount of menu items in the array
rectscreen area to use for menu

Definition at line 741 of file ssd1306_common.inl.

◆ drawCanvas() [1/4]

template<class O , class I >
void NanoDisplayOps< O, I >::drawCanvas ( lcdint_t  x,
lcdint_t  y,
NanoCanvasOps< 1 > &  canvas 
)

Draws 1-bit canvas on lcd display.

Parameters
xx position in pixels
yy position in pixels
canvas1-bit canvas to draw on the screen.

Definition at line 844 of file ssd1306_common.inl.

◆ drawCanvas() [2/4]

template<class O , class I >
void NanoDisplayOps< O, I >::drawCanvas ( lcdint_t  x,
lcdint_t  y,
NanoCanvasOps< 4 > &  canvas 
)

Draws 4-bit canvas on lcd display.

Parameters
xx position in pixels
yy position in pixels
canvas4-bit canvas to draw on the screen.

Definition at line 849 of file ssd1306_common.inl.

◆ drawCanvas() [3/4]

template<class O , class I >
void NanoDisplayOps< O, I >::drawCanvas ( lcdint_t  x,
lcdint_t  y,
NanoCanvasOps< 8 > &  canvas 
)

Draws 8-bit canvas on lcd display.

Parameters
xx position in pixels
yy position in pixels
canvas8-bit canvas to draw on the screen.

Definition at line 854 of file ssd1306_common.inl.

◆ drawCanvas() [4/4]

template<class O , class I >
void NanoDisplayOps< O, I >::drawCanvas ( lcdint_t  x,
lcdint_t  y,
NanoCanvasOps< 16 > &  canvas 
)

Draws 16-bit canvas on lcd display.

Parameters
xx position in pixels
yy position in pixels
canvas16-bit canvas to draw on the screen.

Definition at line 859 of file ssd1306_common.inl.

◆ drawCircle()

template<class O , class I >
void NanoDisplayOps< O, I >::drawCircle ( lcdint_t  xc,
lcdint_t  yc,
lcdint_t  r,
uint8_t  options = 0x0F 
)

Draws circle.

Parameters
xchorizontal position of circle center in pixels
ycvertical position of circle center in pixels
rradius of circle in pixels
optionsdraw specific sections: each bit corresponds to 90 degree section

Definition at line 607 of file ssd1306_common.inl.

◆ drawLine() [1/2]

template<class O , class I >
void NanoDisplayOps< O, I >::drawLine ( lcdint_t  x1,
lcdint_t  y1,
lcdint_t  x2,
lcdint_t  y2 
)

Draws line.

Parameters
x1- position X
y1- position Y
x2- position X
y2- position Y
Note
color can be set via setColor()

Definition at line 538 of file ssd1306_common.inl.

◆ drawLine() [2/2]

template<class O , class I >
void NanoDisplayOps< O, I >::drawLine ( const NanoRect rect)

Draws line.

Parameters
rect- structure, describing rectangle area
Note
color can be set via setColor()

Definition at line 584 of file ssd1306_common.inl.

◆ drawProgressBar()

template<class O , class I >
void NanoDisplayOps< O, I >::drawProgressBar ( int8_t  progress)

Displays progress bar in the middle of the display.

Parameters
progressprogress in range 0 - 100.

Definition at line 864 of file ssd1306_common.inl.

◆ drawRect() [1/2]

template<class O , class I >
void NanoDisplayOps< O, I >::drawRect ( lcdint_t  x1,
lcdint_t  y1,
lcdint_t  x2,
lcdint_t  y2 
)

Draws rectangle.

Parameters
x1- position X
y1- position Y
x2- position X
y2- position Y
Note
color can be set via setColor()

Definition at line 525 of file ssd1306_common.inl.

◆ drawRect() [2/2]

template<class O , class I >
void NanoDisplayOps< O, I >::drawRect ( const NanoRect rect)

Draws rectangle.

Parameters
rect- structure, describing rectangle area
Note
color can be set via setColor()

Definition at line 533 of file ssd1306_common.inl.

◆ drawWindow()

template<class O , class I >
void NanoDisplayOps< O, I >::drawWindow ( lcdint_t  x,
lcdint_t  y,
lcduint_t  width,
lcduint_t  height,
const char *  caption,
bool  blank 
)

Displays window at specified position and of specified size.

Parameters
xx position in pixels from top-lef corner
yy position in pixels from top-lef corner
widthwidth of window to draw. Can be 0.
heightheight of windows to draw. Can be 0.
captiontext to display as caption
blanktrue if content inside window should be blanked

Definition at line 895 of file ssd1306_common.inl.

◆ fillRect()

template<class O , class I >
void NanoDisplayOps< O, I >::fillRect ( const NanoRect rect)

Fills rectangle area.

Parameters
rect- structure, describing rectangle area
Note
color can be set via setColor()

Definition at line 589 of file ssd1306_common.inl.

◆ menuDown()

template<class O , class I >
void NanoDisplayOps< O, I >::menuDown ( SAppMenu menu)

Moves selection pointer down by 1 item.

If there are no items below, it will set selection pointer to the first item. Use updateMenu() to refresh menu state on the display.

Parameters
menupointer to SAppMenu structure

Definition at line 820 of file ssd1306_common.inl.

◆ menuSelection()

template<class O , class I >
uint8_t NanoDisplayOps< O, I >::menuSelection ( const SAppMenu menu)

Returns currently selected menu item.

First item has zero-index.

Parameters
menupointer to SAppMenu structure

Definition at line 815 of file ssd1306_common.inl.

◆ menuUp()

template<class O , class I >
void NanoDisplayOps< O, I >::menuUp ( SAppMenu menu)

Moves selection pointer up by 1 item.

If selected item is the first one, then selection pointer will set to the last item in menu list. Use updateMenu() to refresh menu state on the display.

Parameters
menupointer to SAppMenu structure

Definition at line 832 of file ssd1306_common.inl.

◆ print() [1/3]

template<class O , class I >
void NanoDisplayOps< O, I >::print ( int  number)

Prints number at current cursor position To specify cursor position using setTextCursor() method.

Parameters
numberinteger number to print

Definition at line 661 of file ssd1306_common.inl.

◆ print() [2/3]

template<class O , class I >
void NanoDisplayOps< O, I >::print ( float  number)

Prints number at current cursor position To specify cursor position using setTextCursor() method.

Parameters
numberfloat number to print

Definition at line 668 of file ssd1306_common.inl.

◆ print() [3/3]

template<class O , class I >
void NanoDisplayOps< O, I >::print ( char  c)

Prints single character at current cursor position To specify cursor position using setTextCursor() method.

Parameters
ccharacter to print

Definition at line 675 of file ssd1306_common.inl.

◆ printFixedPgm()

template<class O , class I >
void NanoDisplayOps< O, I >::printFixedPgm ( lcdint_t  xpos,
lcdint_t  y,
const char *  ch,
EFontStyle  style = STYLE_NORMAL 
)

Print text at specified position to canvas.

Parameters
xposposition in pixels
yposition in pixels
chpointer to NULL-terminated string, located in flash
stylespecific font style to use
Note
Supports only STYLE_NORMAL and STYLE_BOLD

Definition at line 637 of file ssd1306_common.inl.

◆ putPixel()

template<class O , class I >
void NanoDisplayOps< O, I >::putPixel ( const NanoPoint p)

Draws pixel on specified position.

Parameters
p- NanoPoint
Note
color can be set via setColor()

Definition at line 520 of file ssd1306_common.inl.

◆ showMenu()

template<class O , class I >
void NanoDisplayOps< O, I >::showMenu ( SAppMenu menu)

Shows menu items on the display.

If menu items cannot fit the display, the function provides scrolling.

Parameters
menupointer to SAppMenu structure

Definition at line 754 of file ssd1306_common.inl.

◆ showMenuSmooth()

template<class O , class I >
void NanoDisplayOps< O, I >::showMenuSmooth ( SAppMenu menu)

Shows menu items on the display.

If menu items cannot fit the display, the function provides scrolling. Unlike showMenu() this implementation uses more graph functions and requires more flash, but result looks better.

Parameters
menupointer to SAppMenu structure

Definition at line 766 of file ssd1306_common.inl.

◆ updateMenu()

template<class O , class I >
void NanoDisplayOps< O, I >::updateMenu ( SAppMenu menu)

Updates menu items on the display.

That is if selection is changed, the function will update only those areas, affected by the change.

Parameters
menuPointer to SAppMenu structure

Definition at line 778 of file ssd1306_common.inl.

◆ updateMenuSmooth()

template<class O , class I >
void NanoDisplayOps< O, I >::updateMenuSmooth ( SAppMenu menu)

Updates menu items on the display.

That is if selection is changed, the function will update only those areas, affected by the change. Unlike showMenu() this implementation uses more graph functions and requires more flash, but result looks better.

Parameters
menuPointer to SAppMenu structure

Definition at line 797 of file ssd1306_common.inl.

◆ write()

template<class O , class I >
void NanoDisplayOps< O, I >::write ( const char *  str)

Prints text at current cursor position.

To specify cursor position using setTextCursor() method.

Parameters
strtext to print (null-terminated string)

Definition at line 652 of file ssd1306_common.inl.


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