aboutsummaryrefslogtreecommitdiffstats
path: root/include/gwin/console.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/gwin/console.h')
-rw-r--r--include/gwin/console.h43
1 files changed, 15 insertions, 28 deletions
diff --git a/include/gwin/console.h b/include/gwin/console.h
index 9ea3eed6..5682113e 100644
--- a/include/gwin/console.h
+++ b/include/gwin/console.h
@@ -24,22 +24,13 @@
#ifndef _GWIN_CONSOLE_H
#define _GWIN_CONSOLE_H
-#if GWIN_NEED_CONSOLE || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-#define GW_CONSOLE 0x0001
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
+/* This file is included within "gwin/gwin.h" */
// A console window. Supports wrapped text writing and a cursor.
typedef struct GConsoleObject_t {
- GWindowObject gwin;
-
+ GWindowObject g;
+ coord_t cx, cy; // Cursor position
+
#if GFX_USE_OS_CHIBIOS && GWIN_CONSOLE_USE_BASESTREAM
struct GConsoleWindowStream_t {
const struct GConsoleWindowVMT_t *vmt;
@@ -47,15 +38,8 @@ typedef struct GConsoleObject_t {
} stream;
#endif
- coord_t cx,cy; // Cursor position
- uint8_t fy; // Current font height
- uint8_t fp; // Current font inter-character spacing
} GConsoleObject;
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
#ifdef __cplusplus
extern "C" {
#endif
@@ -67,18 +51,23 @@ extern "C" {
* @return NULL if there is no resultant drawing area, otherwise a window handle.
*
* @param[in] gc The GConsoleObject structure to initialise. If this is NULL the structure is dynamically allocated.
- * @param[in] x,y The screen co-ordinates for the bottom left corner of the window
+ * @param[in] x,y The screen co-ordinates for the top left corner of the window
* @param[in] width The width of the window
* @param[in] height The height of the window
- * @param[in] font The font to use
- * @note The console is not automatically cleared on creation. You must do that by calling gwinClear() (possibly after changing your background color)
- * @note If the dispay does not support scrolling, the window will be cleared when the bottom line is reached.
- * @note The default drawing color gets set to White and the background drawing color to Black.
+ *
+ * @note The drawing color and the background color get set to the current defaults. If you haven't called
+ * @p gwinSetDefaultColor() or @p gwinSetDefaultBgColor() then these are White and Black respectively.
+ * @note The font gets set to the current default font. If you haven't called @p gwinSetDefaultFont() then there
+ * is no default font and text drawing operations will no nothing.
* @note The dimensions and position may be changed to fit on the real screen.
+ * @note On creation the window is marked as visible but is not automatically cleared. You may do that by calling @p gwinClear()
+ * (possibly after changing your background color)
+ * @note A console does not save the drawing state. It is not automatically redrawn if the window is moved or
+ * its visibility state is changed.
*
* @api
*/
-GHandle gwinCreateConsole(GConsoleObject *gc, coord_t x, coord_t y, coord_t width, coord_t height, font_t font);
+GHandle gwinCreateConsole(GConsoleObject *gc, coord_t x, coord_t y, coord_t width, coord_t height);
#if GFX_USE_OS_CHIBIOS && GWIN_CONSOLE_USE_BASESTREAM
/**
@@ -157,7 +146,5 @@ void gwinPrintf(GHandle gh, const char *fmt, ...);
}
#endif
-#endif /* GWIN_NEED_CONSOLE */
-
#endif /* _GWIN_CONSOLE_H */
/** @} */