Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Adafruit_GFX by
Revision 18:de8c0b7e17c4, committed 2017-02-24
- Comitter:
- hthoffma
- Date:
- Fri Feb 24 09:17:19 2017 +0000
- Parent:
- 17:005fab139cc2
- Commit message:
- added various scrolling options.
Changed in this revision
--- a/Adafruit_GFX.cpp Sun Jan 22 16:38:55 2017 +0000
+++ b/Adafruit_GFX.cpp Fri Feb 24 09:17:19 2017 +0000
@@ -376,14 +376,31 @@
{
drawChar(cursor_x, cursor_y, c, textcolor, textbgcolor, textsize);
cursor_x += textsize*6;
- if (wrap && (cursor_x > (_width - textsize*6)))
+ if (line_wrap != H_NO_WRAP && (cursor_x > (_width - textsize*6)))
{
cursor_x = 0;
- if (screen_wrap && (cursor_y > _height - textsize*14)) {
- scroll();
+
+ if ((cursor_y > _height - textsize*9)) {
+ switch (screen_wrap) {
+ case V_NO_WRAP:
+ cursor_y += textsize*8;
+ break;
+ case V_SCROLL:
+ scroll();
+ break;
+ case V_WRAP:
+ cursor_y = 0;
+ }
} else {
cursor_y += textsize*8;
}
+
+ if (line_wrap == H_WRAP_N_CLEAR)
+ {
+#if defined(GFX_WANT_ABSTRACTS) || defined(GFX_SIZEABLE_TEXT)
+ fillRect(0, cursor_y, _width, textsize*8, textbgcolor);
+#endif
+ }
}
}
return 1;
--- a/Adafruit_GFX.h Sun Jan 22 16:38:55 2017 +0000
+++ b/Adafruit_GFX.h Fri Feb 24 09:17:19 2017 +0000
@@ -60,7 +60,7 @@
, textbgcolor(BLACK)
, textsize(1)
, rotation(0)
- , wrap(true)
+ , line_wrap(H_NO_WRAP)
{};
virtual void scroll(void) =0;
@@ -163,10 +163,30 @@
inline void setTextColor(uint16_t c) { textcolor = c; textbgcolor = c; }
/// Set the text foreground and background colors independantly
inline void setTextColor(uint16_t c, uint16_t b) { textcolor = c; textbgcolor = b; };
+ enum hwrap_mode {
+ H_NO_WRAP,
+ H_WRAP,
+ H_WRAP_N_CLEAR
+ };
+ enum vwrap_mode {
+ V_NO_WRAP,
+ V_SCROLL,
+ V_WRAP
+ };
/// Set text wraping mode true or false
- inline void setTextWrap(bool w) { wrap = w; };
- inline void setScreenWrap(bool w) {screen_wrap = w;};
-
+ inline void setTextWrap(bool w)
+ {
+ if (w) line_wrap = H_WRAP;
+ else line_wrap = H_NO_WRAP;
+ }
+ inline void setTextWrapMode(enum hwrap_mode w) { line_wrap = w; };
+ inline void setScreenWrapMode(enum vwrap_mode w) {screen_wrap = w;};
+
+ inline void getDimentions(uint16_t *width, uint16_t *height)
+ {
+ *width = _width;
+ *height = _height;
+ }
/// Set the display rotation, 1, 2, 3, or 4
void setRotation(uint8_t r);
@@ -180,8 +200,8 @@
uint16_t textcolor, textbgcolor;
uint8_t textsize;
uint8_t rotation;
- bool wrap; // If set, 'wrap' text at right edge of display
- bool screen_wrap;
+ enum hwrap_mode line_wrap; // If set, 'wrap' text at right edge of display
+ enum vwrap_mode screen_wrap;
};
#endif
--- a/Adafruit_GFX_Config.h Sun Jan 22 16:38:55 2017 +0000 +++ b/Adafruit_GFX_Config.h Fri Feb 24 09:17:19 2017 +0000 @@ -5,10 +5,10 @@ #define NO_SPLASH_ADAFRUIT // Uncomment this to enable all functionality -//#define GFX_WANT_ABSTRACTS +#define GFX_WANT_ABSTRACTS // Uncomment this to enable only runtime font scaling, without all the rest of the Abstracts -//#define GFX_SIZEABLE_TEXT +#define GFX_SIZEABLE_TEXT #endif \ No newline at end of file
