aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Bodenmann <joel@seriouslyembedded.com>2015-11-06 22:47:42 +0100
committerJoel Bodenmann <joel@seriouslyembedded.com>2015-11-06 22:47:42 +0100
commite8a769c3823eef72a9e064d3bf992152ed261ad2 (patch)
tree4372d4c8dfee34bca27e691906a46a713479fcb3
parentc2b7e1bd4176795c83c4c6edb5ee94705ef27712 (diff)
downloaduGFX-e8a769c3823eef72a9e064d3bf992152ed261ad2.tar.gz
uGFX-e8a769c3823eef72a9e064d3bf992152ed261ad2.tar.bz2
uGFX-e8a769c3823eef72a9e064d3bf992152ed261ad2.zip
Adding justification parameter to gwinLabelCreate()
-rw-r--r--demos/applications/combo/main.c10
-rw-r--r--demos/modules/gwin/frame/main.c2
-rw-r--r--demos/modules/gwin/label/main.c4
-rw-r--r--demos/modules/gwin/list/main.c4
-rw-r--r--demos/modules/gwin/tabset/main.c6
-rw-r--r--demos/modules/gwin/widgets/main.c10
-rw-r--r--docs/releases.txt1
-rw-r--r--src/gwin/gwin_label.c17
-rw-r--r--src/gwin/gwin_label.h7
9 files changed, 34 insertions, 27 deletions
diff --git a/demos/applications/combo/main.c b/demos/applications/combo/main.c
index fba3d851..bf37d242 100644
--- a/demos/applications/combo/main.c
+++ b/demos/applications/combo/main.c
@@ -228,19 +228,19 @@ static void createWidgets(void) {
wi.g.parent = ghPgLabels;
wi.g.width = pagewidth-10; wi.g.height = LABEL_HEIGHT;
wi.g.x = wi.g.y = 5; wi.text = "N/A";
- ghLabelSlider1 = gwinLabelCreate(0, &wi);
+ ghLabelSlider1 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabelSlider1, 100, "Slider 1:");
wi.g.y += LABEL_HEIGHT + 2;
- ghLabelSlider2 = gwinLabelCreate(0, &wi);
+ ghLabelSlider2 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabelSlider2, 100, "Slider 2:");
wi.g.y += LABEL_HEIGHT + 2;
- ghLabelSlider3 = gwinLabelCreate(0, &wi);
+ ghLabelSlider3 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabelSlider3, 100, "Slider 3:");
wi.g.y += LABEL_HEIGHT + 2;
- ghLabelSlider4 = gwinLabelCreate(0, &wi);
+ ghLabelSlider4 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabelSlider4, 100, "Slider 4:");
wi.g.y += LABEL_HEIGHT + 2;
- ghLabelRadio1 = gwinLabelCreate(0, &wi);
+ ghLabelRadio1 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabelRadio1, 100, "RadioButton 1:");
diff --git a/demos/modules/gwin/frame/main.c b/demos/modules/gwin/frame/main.c
index a97525ab..9f4b2419 100644
--- a/demos/modules/gwin/frame/main.c
+++ b/demos/modules/gwin/frame/main.c
@@ -31,7 +31,7 @@ static void _createWidgets(void) {
wi.g.y = 100;
wi.g.x = 150;
wi.text = "Surprise!";
- gwinLabelCreate(0, &wi);
+ gwinLabelCreate(0, &wi, justifyCenter);
// Apply the frame parameters
wi.g.width = 300;
diff --git a/demos/modules/gwin/label/main.c b/demos/modules/gwin/label/main.c
index 425436ea..8ddce320 100644
--- a/demos/modules/gwin/label/main.c
+++ b/demos/modules/gwin/label/main.c
@@ -42,13 +42,13 @@ static void createWidgets(void) {
// Create the IP label
wi.g.width = 200; wi.g.height = 20; wi.g.x = 10, wi.g.y = 80;
wi.text = "192.168.1.42";
- ghLabel1 = gwinLabelCreate(0, &wi);
+ ghLabel1 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabel1, 100, "Current IP:");
// Create the DHCP label
wi.g.width = 200; wi.g.height = 20; wi.g.x = 10, wi.g.y = 100;
wi.text = "Off";
- ghLabel2 = gwinLabelCreate(0, &wi);
+ ghLabel2 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabel2, 100, "DHCP:");
}
diff --git a/demos/modules/gwin/list/main.c b/demos/modules/gwin/list/main.c
index 0102f276..ad999aa2 100644
--- a/demos/modules/gwin/list/main.c
+++ b/demos/modules/gwin/list/main.c
@@ -43,12 +43,12 @@ static void createWidgets(void) {
// Create the label for the first list
wi.g.width = 150; wi.g.height = 20; wi.g.x = 10, wi.g.y = 80;
wi.text = "List 1: Default";
- ghLabel1 = gwinLabelCreate(0, &wi);
+ ghLabel1 = gwinLabelCreate(0, &wi, justifyCenter);
// Create the label for the second list
wi.g.width = 150; wi.g.height = 20; wi.g.x = 165, wi.g.y = 80;
wi.text = "List 2: Smooth scrolling";
- ghLabel1 = gwinLabelCreate(0, &wi);
+ ghLabel1 = gwinLabelCreate(0, &wi, justifyCenter);
// The first list widget
wi.g.width = 150;
diff --git a/demos/modules/gwin/tabset/main.c b/demos/modules/gwin/tabset/main.c
index f70ab909..26c29ae4 100644
--- a/demos/modules/gwin/tabset/main.c
+++ b/demos/modules/gwin/tabset/main.c
@@ -52,19 +52,19 @@ static void createWidgets(void) {
wi.g.width = 120; wi.g.height = 20; wi.g.x = 10; wi.g.y = 10;
wi.g.parent = ghPage1;
wi.text = "This is page Nr. 1";
- ghLabel1 = gwinLabelCreate(0, &wi);
+ ghLabel1 = gwinLabelCreate(0, &wi, justifyLeft);
// Add some widgets to Page 2
wi.g.width = 120; wi.g.height = 20; wi.g.x = 10; wi.g.y = 50;
wi.g.parent = ghPage2;
wi.text = "This is page Nr. 2";
- ghLabel2 = gwinLabelCreate(0, &wi);
+ ghLabel2 = gwinLabelCreate(0, &wi, justifyLeft);
// Add some widgets to Page 3
wi.g.width = 120; wi.g.height = 20; wi.g.x = 10; wi.g.y = 90;
wi.g.parent = ghPage3;
wi.text = "This is page Nr. 3";
- ghLabel3 = gwinLabelCreate(0, &wi);
+ ghLabel3 = gwinLabelCreate(0, &wi, justifyLeft);
}
int main(void) {
diff --git a/demos/modules/gwin/widgets/main.c b/demos/modules/gwin/widgets/main.c
index 8f5a6329..6f871ce2 100644
--- a/demos/modules/gwin/widgets/main.c
+++ b/demos/modules/gwin/widgets/main.c
@@ -325,19 +325,19 @@ static void createWidgets(void) {
wi.g.parent = ghPgLabels;
wi.g.width = pagewidth-10; wi.g.height = LABEL_HEIGHT;
wi.g.x = wi.g.y = 5; wi.text = "N/A";
- ghLabelSlider1 = gwinLabelCreate(0, &wi);
+ ghLabelSlider1 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabelSlider1, 100, "Slider 1:");
wi.g.y += LABEL_HEIGHT + 2;
- ghLabelSlider2 = gwinLabelCreate(0, &wi);
+ ghLabelSlider2 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabelSlider2, 100, "Slider 2:");
wi.g.y += LABEL_HEIGHT + 2;
- ghLabelSlider3 = gwinLabelCreate(0, &wi);
+ ghLabelSlider3 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabelSlider3, 100, "Slider 3:");
wi.g.y += LABEL_HEIGHT + 2;
- ghLabelSlider4 = gwinLabelCreate(0, &wi);
+ ghLabelSlider4 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabelSlider4, 100, "Slider 4:");
wi.g.y += LABEL_HEIGHT + 2;
- ghLabelRadio1 = gwinLabelCreate(0, &wi);
+ ghLabelRadio1 = gwinLabelCreate(0, &wi, justifyLeft);
gwinLabelSetAttribute(ghLabelRadio1, 100, "RadioButton 1:");
diff --git a/docs/releases.txt b/docs/releases.txt
index b0d327ae..d2542b49 100644
--- a/docs/releases.txt
+++ b/docs/releases.txt
@@ -25,6 +25,7 @@ FEATURE: Added word-wrapping support for gdispDrawStringBox() and gdispFillStrin
FIX: Fixing issue in touchscreen calibration code
FEATURE: Added GFX_OS_PRE_INIT_FUNCTION for early hardware initialization
FIX: Fixing GTIMER for high clock rate devices
+FEATURE: Adding justification parameter to gwinLabelCreate()
*** Release 2.3 ***
diff --git a/src/gwin/gwin_label.c b/src/gwin/gwin_label.c
index 9b62679f..c8a9a0f0 100644
--- a/src/gwin/gwin_label.c
+++ b/src/gwin/gwin_label.c
@@ -80,7 +80,7 @@ static const gwidgetVMT labelVMT = {
#endif
};
-GHandle gwinGLabelCreate(GDisplay *g, GLabelObject *widget, GWidgetInit *pInit) {
+GHandle gwinGLabelCreate(GDisplay *g, GLabelObject *widget, GWidgetInit *pInit, justify_t justify) {
uint16_t flags = 0;
// auto assign width
@@ -89,7 +89,7 @@ GHandle gwinGLabelCreate(GDisplay *g, GLabelObject *widget, GWidgetInit *pInit)
flags |= GLABEL_FLG_WAUTO;
pInit->g.width = getwidth(pInit->text, gwinGetDefaultFont(), gdispGGetWidth(g) - pInit->g.x);
}
-
+
// auto assign height
if (pInit->g.height <= 0) {
flags |= GLABEL_FLG_HAUTO;
@@ -99,6 +99,8 @@ GHandle gwinGLabelCreate(GDisplay *g, GLabelObject *widget, GWidgetInit *pInit)
if (!(widget = (GLabelObject *)_gwidgetCreate(g, &widget->w, pInit, &labelVMT)))
return 0;
+ widget->justify = justify;
+
#if GWIN_LABEL_ATTRIBUTE
widget->tab = 0;
widget->attr = 0;
@@ -163,12 +165,13 @@ void gwinLabelDefaultDraw(GWidgetObject *gw, void *param) {
#if GWIN_LABEL_ATTRIBUTE
if (gw2obj->attr) {
- gdispGFillStringBox(gw->g.display, gw->g.x, gw->g.y, gw2obj->tab, h, gw2obj->attr, gw->g.font, c, gw->pstyle->background, justifyLeft);
- gdispGFillStringBox(gw->g.display, gw->g.x + gw2obj->tab, gw->g.y, w-gw2obj->tab, h, gw->text, gw->g.font, c, gw->pstyle->background, justifyLeft);
- } else
- gdispGFillStringBox(gw->g.display, gw->g.x, gw->g.y, w, h, gw->text, gw->g.font, c, gw->pstyle->background, justifyLeft);
+ gdispGFillStringBox(gw->g.display, gw->g.x, gw->g.y, gw2obj->tab, h, gw2obj->attr, gw->g.font, c, gw->pstyle->background, gw2obj->justify);
+ gdispGFillStringBox(gw->g.display, gw->g.x + gw2obj->tab, gw->g.y, w-gw2obj->tab, h, gw->text, gw->g.font, c, gw->pstyle->background, gw2obj->justify);
+ } else {
+ gdispGFillStringBox(gw->g.display, gw->g.x, gw->g.y, w, h, gw->text, gw->g.font, c, gw->pstyle->background, gw2obj->justify);
+ }
#else
- gdispGFillStringBox(gw->g.display, gw->g.x, gw->g.y, w, h, gw->text, gw->g.font, c, gw->pstyle->background, justifyLeft);
+ gdispGFillStringBox(gw->g.display, gw->g.x, gw->g.y, w, h, gw->text, gw->g.font, c, gw->pstyle->background, gw2obj->justify);
#endif
// render the border (if any)
diff --git a/src/gwin/gwin_label.h b/src/gwin/gwin_label.h
index 84836bf2..8c7c9fd5 100644
--- a/src/gwin/gwin_label.h
+++ b/src/gwin/gwin_label.h
@@ -38,6 +38,8 @@
typedef struct GLabelObject {
GWidgetObject w;
+ justify_t justify;
+
#if GWIN_LABEL_ATTRIBUTE
coord_t tab;
const char* attr;
@@ -55,13 +57,14 @@ extern "C" {
* @param[in] g The GDisplay to display this window on
* @param[in] widget The label structure to initialise. If this is NULL, the structure is dynamically allocated.
* @param[in] pInit The initialisation parameters to use.
+ * @param[in] justify The justification.
*
* @return NULL if there is no resultat drawing area, otherwise the widget handle.
*
* @api
*/
-GHandle gwinGLabelCreate(GDisplay *g, GLabelObject *widget, GWidgetInit *pInit);
-#define gwinLabelCreate(w, pInit) gwinGLabelCreate(GDISP, w, pInit)
+GHandle gwinGLabelCreate(GDisplay *g, GLabelObject *widget, GWidgetInit *pInit, justify_t justify);
+#define gwinLabelCreate(w, pInit, justify) gwinGLabelCreate(GDISP, w, pInit, justify)
/**
* @brief Border settings for the default rendering routine