A basic graphics package for the LPC4088 Display Module.

Dependents:   lpc4088_displaymodule_demo_sphere sampleGUI sampleEmptyGUI lpc4088_displaymodule_fs_aid ... more

Fork of DMBasicGUI by EmbeddedArtists AB

Revision:
0:4977187e90c7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lpc_swim/lpc_swim_font.h	Thu Dec 11 11:03:57 2014 +0000
@@ -0,0 +1,231 @@
+/*
+ * @brief SWIM font management
+ *
+ * @note
+ * Copyright(C) NXP Semiconductors, 2012
+ * All rights reserved.
+ *
+ * @par
+ * Software that is described herein is for illustrative purposes only
+ * which provides customers with programming information regarding the
+ * LPC products.  This software is supplied "AS IS" without any warranties of
+ * any kind, and NXP Semiconductors and its licensor disclaim any and
+ * all warranties, express or implied, including all implied warranties of
+ * merchantability, fitness for a particular purpose and non-infringement of
+ * intellectual property rights.  NXP Semiconductors assumes no responsibility
+ * or liability for the use of the software, conveys no license or rights under any
+ * patent, copyright, mask work right, or any other intellectual property rights in
+ * or to any products. NXP Semiconductors reserves the right to make changes
+ * in the software without notification. NXP Semiconductors also makes no
+ * representation or warranty that such application will be suitable for the
+ * specified use without further testing or modification.
+ *
+ * @par
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation is hereby granted, under NXP Semiconductors' and its
+ * licensor's relevant copyrights in the software, without fee, provided that it
+ * is used in conjunction with NXP Semiconductors microcontrollers.  This
+ * copyright, permission, and disclaimer notice must appear in all copies of
+ * this code.
+ */
+
+#ifndef __LPC_SWIM_FONT_H_
+#define __LPC_SWIM_FONT_H_
+
+#include "lpc_types.h"
+#include "lpc_swim.h"
+
+#if defined(__cplusplus)
+extern "C"
+{
+#endif
+
+/** @defgroup GUI_SWIM_FONT SWIM font manager
+ * @ingroup GUI_SWIM
+ * This package provides basic SWIM font management capabilities such as
+ * font selection, text positioning, newline and window scrolling, and
+ * text display with multiple, selectable fonts.
+ * @{
+ */
+
+/**
+ * @brief	Put text at x, y (char) position on screen
+ * @param	win		: Pointer to window data structure
+ * @param	text	: Text string to output in window
+ * @param	x		: Virtual X position of start of text
+ * @param	y		: Virtual Y position of start of text
+ * @return	Nothing
+ * @note	Sets the virtual (upper left) text position in the window and
+ * render the text string at this position.
+ */
+void swim_put_text_xy(SWIM_WINDOW_T *win,
+					  const CHAR *text,
+					  int32_t x,
+					  int32_t y);
+
+/**
+ * @brief	Put text horizontally centered at y position on screen
+ * @param	win		: Pointer to window data structure
+ * @param	text	: Text string to output in window
+ * @param	x		: Virtual X position of start of text
+ * @param	y		: Virtual Y position of start of text
+ * @return	Nothing
+ * @note	Sets the virtual (upper left) text position in the window and
+ * render the text string at this position.
+ */
+void swim_put_text_centered_win(SWIM_WINDOW_T *win,
+                                const CHAR *text,
+                                int32_t y);
+
+/**
+ * @brief	Put text horizontally centered between x0 and x1 at y position on screen
+ * @param	win		: Pointer to window data structure
+ * @param	text	: Text string to output in window
+ * @param	x0		: Virtual X left position
+ * @param	x1		: Virtual X right position
+ * @param	y		: Virtual Y position of start of text
+ * @return	Nothing
+ * @note	Sets the virtual (upper left) text position in the window and
+ * render the text string at this position.
+ */
+void swim_put_text_centered(SWIM_WINDOW_T *win,
+                            const CHAR *text,
+                            int32_t x0,
+                            int32_t x1,
+                            int32_t y);
+
+/**
+ * @brief	Sets the X, Y pixel coordinates for the next text operation
+ * @param	win		: Pointer to window data structure
+ * @param	x		: Virtual X position of start of text
+ * @param	y		: Virtual Y position of start of text
+ * @return	Nothing
+ */
+void swim_set_xy(SWIM_WINDOW_T *win,
+				 int32_t x,
+				 int32_t y);
+
+/**
+ * @brief	Returns the X, Y pixel coordinates for the next text operation
+ * @param	win		: Pointer to window data structure
+ * @param	x		: Address of where to return virtual X value
+ * @param	y		: Address of where to return virtual X value
+ * @return	Nothing
+ * @note	The logical X and Y positions are computed by subtracting the
+ * physical text position values by the physical minimum window
+ * limits.
+ */
+void swim_get_xy(SWIM_WINDOW_T *win,
+				 int32_t *x,
+				 int32_t *y);
+
+/**
+ * @brief	Puts a string of text in a window
+ * @param	win		: Pointer to window data structure
+ * @param	text	: Text string to output in window
+ * @return	Nothing
+ * @note	Each character will be routed to the swim_put_char function until
+ * a string terminator is reached. For newline characters, a newline
+ * will occur instead of a character output.
+ */
+void swim_put_text(SWIM_WINDOW_T *win,
+				   const CHAR *text);
+
+/**
+ * @brief	Puts a string of text in a window with breaks
+ * @param	win		: Pointer to window data structure
+ * @param	text	: Text string to output in window
+ * @return	Nothing
+ * @note	Puts a string of text in a window, but will adjust the position of
+ * a word if the word length exceeds the edge of the display.
+ */
+void swim_put_ltext(SWIM_WINDOW_T *win,
+					const CHAR *text);
+
+/**
+ * @brief	Scrolls the window up one line
+ * @param	win		: Pointer to window data structure
+ * @param	lines	: Number of lines to scroll up
+ * @return	Nothing
+ */
+void swim_window_scroll(SWIM_WINDOW_T *win,
+						int32_t lines);
+
+/**
+ * @brief	Puts a single character in the window
+ * @param	win			: Pointer to window data structure
+ * @param	textchar	: Character to print
+ * @return	Nothing
+ * @note	The character is placed at the end of the last text operation
+ * or the current text X, Y position.
+ */
+void swim_put_char(SWIM_WINDOW_T *win,
+				   const CHAR textchar);
+
+/**
+ * @brief	Puts a newline in the window
+ * @param	win	: Pointer to window data structure
+ * @return	Nothing
+ */
+void swim_put_newline(SWIM_WINDOW_T *win);
+
+/**
+ * @brief	Sets the active font
+ * @param	win		: Pointer to window data structure
+ * @param	font	: Pointer to font data structure to use for font
+ * @return	Nothing
+ */
+void swim_set_font(SWIM_WINDOW_T *win,
+				   FONT_T *font);
+
+/**
+ * @brief	Returns the active font's height in pixels
+ * @param	win		: Pointer to window data structure
+ * @return	The height of the current font in pixels
+ */
+int16_t swim_get_font_height(SWIM_WINDOW_T *win);
+
+/**
+ * @brief	Returns the width and height of the string rendered with the active font
+ * @param	win		: Pointer to window data structure
+ * @param	text	: Text to render
+ * @param	width   : Width of text in pixels
+ * @param	height	: Height of text in pixels
+ * @return	Nothing
+ */
+void swim_get_string_bounds(SWIM_WINDOW_T *win, const CHAR * text, int* width, int* height);
+
+/**
+ * @brief	Creates a title bar for the window
+ * @param	win			: Pointer to window data structure
+ * @param	title		: Text for title bard
+ * @param	ttlbkcolor	: Totle bar backgorund color
+ * @return	Nothing
+ * @note	Creates a title bar in the window and adjusts the client
+ * area to be outside the title bar area.
+ */
+void swim_set_title(SWIM_WINDOW_T *win,
+					const CHAR *title,
+					COLOR_T ttlbkcolor);
+
+/**
+ * @brief	Enables and disables font backgrounds
+ * @param	win		: Pointer to window data structure
+ * @param	trans	: 1 for transparent backgrounds, 0 for solid color
+ * @return	Nothing
+ * @note	Enables and disables font backgrounds. When set, the font background
+ * will not be drawn in the background color (useful for painting text
+ * over pictures).
+ */
+void swim_set_font_transparency(SWIM_WINDOW_T *win, int32_t trans);
+
+#if defined(__cplusplus)
+}
+#endif
+
+/**
+ * @}
+ */
+
+#endif /* __LPC_SWIM_FONT_H_ */
+