ugfx/src/gwin/label.h

105 lines
3.3 KiB
C
Raw Normal View History

2013-07-01 17:53:58 +00:00
/*
* 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:
*
2013-07-21 20:20:37 +00:00
* http://ugfx.org/license.html
2013-07-01 17:53:58 +00:00
*/
/**
2014-03-28 19:18:03 +00:00
* @file src/gwin/label.h
2013-07-01 17:53:58 +00:00
* @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
2013-07-02 06:29:38 +00:00
* @pre The fonts you want to use must be enabled in your gfxconf.h
2013-07-01 17:53:58 +00:00
*
* @{
*/
#ifndef _GWIN_LABEL_H
#define _GWIN_LABEL_H
// This file is included within "gwin/gwin.h"
// An label window
2013-07-07 09:40:37 +00:00
typedef struct GLabelObject {
GWidgetObject w;
2014-04-28 21:20:51 +00:00
#if GWIN_LABEL_ATTRIBUTE
coord_t tab;
const char* attr;
2014-04-28 21:20:51 +00:00
#endif
2013-07-07 09:40:37 +00:00
} GLabelObject;
2013-07-01 17:53:58 +00:00
#ifdef __cplusplus
extern "C" {
#endif
2013-07-02 06:29:38 +00:00
/**
2013-10-24 02:13:07 +00:00
* @brief Create a label widget.
* @details A label widget is a simple window which has a static text.
2013-07-02 06:29:38 +00:00
*
* @param[in] g The GDisplay to display this window on
2013-07-02 06:29:38 +00:00
* @param[in] widget The label structure to initialise. If this is NULL, the structure is dynamically allocated.
2013-07-17 02:44:29 +00:00
* @param[in] pInit The initialisation parameters to use.
2013-07-02 06:29:38 +00:00
*
* @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)
2013-07-01 17:53:58 +00:00
2013-10-24 02:13:07 +00:00
/**
* @brief Border settings for the default rendering routine
*
* @param[in] gh The widget handle (must be a list handle)
* @param[in] border Shall a border be rendered?
*
* @api
*/
void gwinLabelSetBorder(GHandle gh, bool_t border);
2013-07-01 17:53:58 +00:00
2014-04-29 06:21:18 +00:00
#if GWIN_LABEL_ATTRIBUTE || defined(__DOXYGEN__)
2014-04-28 21:20:51 +00:00
/**
* @brief Add an text attribute in front of the normal label text
2014-04-29 06:21:18 +00:00
* @details Often you want to display a text like this:
2014-04-28 21:20:51 +00:00
* Current IP: 192.168.1.42
2014-04-28 21:31:33 +00:00
* In that case, the actual IP will be variable, the text in front of it
2014-04-28 21:20:51 +00:00
* always remains the same. The static text is called the attribute and can be
* set using this function.
* Furthermore, the tab can be set in order to vertically align multiple labels.
* Please check out the website for further explanation, illustraions and usage
* examples.
*
* @note The attribute text is not copied into private memory and so it
* must be a constant string, not one allocated in a stack buffer.
* @note Use of this construct is discouraged. The appropriate way is to
* create two labels - one for the static text and one for the
* dynamic text.
2014-04-28 21:20:51 +00:00
*
* @param[in] gh The widget handle (must be a label handle)
* @param[in] tab The distance of the label text from the left widget edge
* @param[in] attr The attribute to be displayed
*
* @api
*/
void gwinLabelSetAttribute(GHandle gh, coord_t tab, const char* attr);
2014-04-28 21:20:51 +00:00
#endif
2013-07-01 17:53:58 +00:00
#ifdef __cplusplus
}
#endif
#endif // _GWIN_LABEL_H
/** @} */