From 931c46526521c5fd36856b1fc1990136d5f7f255 Mon Sep 17 00:00:00 2001 From: Joel Bodenmann Date: Mon, 1 Jul 2013 19:53:58 +0200 Subject: [PATCH] GLabel work in progress --- include/gwin/gwin.h | 4 +++ include/gwin/label.h | 55 ++++++++++++++++++++++++++++++++++++ src/gwin/gwin.mk | 3 +- src/gwin/label.c | 67 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 include/gwin/label.h create mode 100644 src/gwin/label.c diff --git a/include/gwin/gwin.h b/include/gwin/gwin.h index 832dea96..10aabf6f 100644 --- a/include/gwin/gwin.h +++ b/include/gwin/gwin.h @@ -724,6 +724,10 @@ extern "C" { #include "gwin/image.h" #endif + #if GWIN_NEED_LABEL || defined(__DOXYGEN__) + #include "gwin/label.h" + #endif + #endif /* GFX_USE_GWIN */ #endif /* _GWIN_H */ diff --git a/include/gwin/label.h b/include/gwin/label.h new file mode 100644 index 00000000..3874026c --- /dev/null +++ b/include/gwin/label.h @@ -0,0 +1,55 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://chibios-gfx.com/license.html + */ + +/** + * @file include/gwin/label.h + * @brief GWIN label widget header file. + * + * @defgroup Label Label + * @ingroup GWIN + * + * @details GWIN allos it to create an label widget. The widget + * takes no user input. + * + * @pre GFX_USE_GDISP must be set to TRUE in your gfxconf.h + * @pre GFX_USE_GWIN must be set to TRUE in your gfxconf.h + * @pre GDISP_NEED_TEXT must be set to TRUE in your gfxconf.h + * @pre GWIN_NEED_LABEL must be set to TRUE in your gfxconf.h + * @pre The font you want to use must be enabled in your gfxconf.h + * + * @{ + */ + +#ifndef _GWIN_LABEL_H +#define _GWIN_LABEL_H + +// This file is included within "gwin/gwin.h" + +// An label window +typedef struct GLabelWidget_t { + GWindowObject g; + + char* text; +} GLabelWidget; + +#ifdef __cplusplus +extern "C" { +#endif + +GHandle gwinLabelCreate(GLabelWidget *widget, GWindowInit *pInit); +void gwinLabelSetColor(GHandle gh, color_t color); +void gwinLabelSetBgColor(GHandle gh, color_t bgColor); +void gwinLabelSetText(GHandle gh, char* text); +void gwinLabelDraw(GHandle gh); + +#ifdef __cplusplus +} +#endif + +#endif // _GWIN_LABEL_H +/** @} */ + diff --git a/src/gwin/gwin.mk b/src/gwin/gwin.mk index 9c114b3b..9a81728e 100644 --- a/src/gwin/gwin.mk +++ b/src/gwin/gwin.mk @@ -7,4 +7,5 @@ GFXSRC += $(GFXLIB)/src/gwin/gwin.c \ $(GFXLIB)/src/gwin/slider.c \ $(GFXLIB)/src/gwin/checkbox.c \ $(GFXLIB)/src/gwin/image.c \ - + $(GFXLIB)/src/gwin/label.c \ + diff --git a/src/gwin/label.c b/src/gwin/label.c new file mode 100644 index 00000000..e31a3de6 --- /dev/null +++ b/src/gwin/label.c @@ -0,0 +1,67 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://chibios-gfx.com/license.html + */ + +/** + * @file include/gwin/label.h + * @brief GWIN label widget header file. + * + * @defgroup Label Label + * @ingroup GWIN + * + * @{ + */ + +#include "gfx.h" + +#if GFX_USE_GWIN && GWIN_NEED_LABEL + +#include "gwin/class_gwin.h" + +#define widget(gh) ((GLabelWidget*)gh) + +static void _destroy(GWindowObject *gh) { + (void)gh; + + return; +} + +static void _redraw(GWindowObject *gh) { + (void)gh; + + return; +} + +static void _afterClear(GWindowObject *gh) { + (void)gh; + + return; +} + +GHandle gwinLabelCreate(GLabelWidget *widget, GWindowInit *pInit) { + +} + +void gwinLabelSetColor(GHandle gh, color_t color) { + widget(gh)->g.color = color; +} + +void gwinLabelSetBgColor(GHandle gh, color_t bgColor) { + widget(gh)->g.bgcolor = bgColor; +} + +void gwinLabelSetText(GHandle gh, char* text) { + widget(gh)->text = text; + + gwinLabelDraw(gh); +} + +void gwinLabelDraw(GHandle gh) { + +} + +#endif // GFX_USE_GWIN && GFX_NEED_LABEL +