Single Photo displayed on LPC4088
Dependencies: DMBasicGUI DMSupport
Diff: easyGUIFixed/GuiLib.h
- Revision:
- 0:9140ec6aa604
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/easyGUIFixed/GuiLib.h Fri Jul 28 14:19:12 2017 +0000 @@ -0,0 +1,3742 @@ +/* ************************************************************************ */ +/* */ +/* (C)2004-2015 IBIS Solutions ApS */ +/* sales@easyGUI.com */ +/* www.easyGUI.com */ +/* */ +/* v6.0.9.005 */ +/* */ +/* ************************************************************************ */ + + +// ============================================================================= +#ifndef __GUILIB_H +#define __GUILIB_H +#include "GuiConst.h" +#include "GuiVar.h" +#include "GuiDisplay.h" + + +#ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ +extern "C" { +#endif + +// ============================================================================= +#ifdef GuiConst_CODEVISION_COMPILER +// Remove warnings about unused functions +#pragma used+ +#endif + + +// ============================================================================= +#ifdef GuiConst_COLOR_DEPTH_5 + #define GuiLib_COLOR_UNIT_8 + #define GuiLib_LAYERS_SUPPORTED +#endif +#ifdef GuiConst_COLOR_DEPTH_8 + #define GuiLib_COLOR_UNIT_8 + #define GuiLib_LAYERS_SUPPORTED +#endif +#ifdef GuiConst_COLOR_DEPTH_12 + #define GuiLib_COLOR_UNIT_16 + #define GuiLib_LAYERS_SUPPORTED +#endif +#ifdef GuiConst_COLOR_DEPTH_15 + #define GuiLib_COLOR_UNIT_16 + #define GuiLib_LAYERS_SUPPORTED +#endif +#ifdef GuiConst_COLOR_DEPTH_16 + #define GuiLib_COLOR_UNIT_16 + #define GuiLib_LAYERS_SUPPORTED +#endif +#ifdef GuiConst_COLOR_DEPTH_18 + #define GuiLib_COLOR_UNIT_24 + #define GuiLib_LAYERS_SUPPORTED +#endif +#ifdef GuiConst_COLOR_DEPTH_24 + #define GuiLib_COLOR_UNIT_24 + #define GuiLib_LAYERS_SUPPORTED +#endif +#ifdef GuiConst_COLOR_DEPTH_32 + #define GuiLib_COLOR_UNIT_32 + #define GuiLib_LAYERS_SUPPORTED +#endif + + +// ============================================================================= +#ifdef GuiConst_AVR_COMPILER_FLASH_RAM + #define PrefixRom __flash + #define PrefixGeneric __generic + #define PrefixReentrant + #define PrefixLocate +#else +#ifdef GuiConst_PICC_COMPILER_ROM + #define PrefixRom rom + #define PrefixGeneric + #define PrefixReentrant + #define PrefixLocate +#else +#ifdef GuiConst_KEIL_COMPILER_REENTRANT + #define PrefixRom + #define PrefixGeneric + #define PrefixReentrant reentrant + #define PrefixLocate +#else +#ifdef GuiConst_ICC_COMPILER + #define PrefixRom const + #define PrefixGeneric + #define PrefixReentrant + #define PrefixLocate +#else +#ifdef GuiConst_CODEVISION_COMPILER + #define PrefixRom flash + #define PrefixGeneric + #define PrefixReentrant + #define PrefixLocate +#else +#ifdef GuiConst_RENESAS_COMPILER_FAR + #define PrefixRom _far + #define PrefixGeneric _far + #define PrefixReentrant + #define PrefixLocate _far +#else + #define PrefixRom + #define PrefixGeneric + #define PrefixReentrant + #define PrefixLocate +#endif +#endif +#endif +#endif +#endif +#endif + + +// ============================================================================= +#ifdef GuiConst_COLOR_DEPTH_1 + #define GuiLib_COLOR_BYTESIZE_1 +#endif +#ifdef GuiConst_COLOR_DEPTH_2 + #define GuiLib_COLOR_BYTESIZE_1 +#endif +#ifdef GuiConst_COLOR_DEPTH_4 + #define GuiLib_COLOR_BYTESIZE_1 +#endif +#ifdef GuiConst_COLOR_DEPTH_5 + #define GuiLib_COLOR_BYTESIZE_1 +#endif +#ifdef GuiConst_COLOR_DEPTH_8 + #define GuiLib_COLOR_BYTESIZE_1 +#endif +#ifdef GuiConst_COLOR_DEPTH_12 + #define GuiLib_COLOR_BYTESIZE_2 +#endif +#ifdef GuiConst_COLOR_DEPTH_15 + #define GuiLib_COLOR_BYTESIZE_2 +#endif +#ifdef GuiConst_COLOR_DEPTH_16 + #define GuiLib_COLOR_BYTESIZE_2 +#endif +#ifdef GuiConst_COLOR_DEPTH_18 + #define GuiLib_COLOR_BYTESIZE_3 +#endif +#ifdef GuiConst_COLOR_DEPTH_24 + #define GuiLib_COLOR_BYTESIZE_3 +#endif +#ifdef GuiConst_COLOR_DEPTH_32 + #define GuiLib_COLOR_BYTESIZE_3 +#endif + +#define GuiLib_NO_CURSOR -1 + +#define GuiLib_NO_RESET_AUTO_REDRAW 0 +#define GuiLib_RESET_AUTO_REDRAW 1 + +#define GuiLib_ALIGN_NOCHANGE 0 +#define GuiLib_ALIGN_LEFT 1 +#define GuiLib_ALIGN_CENTER 2 +#define GuiLib_ALIGN_RIGHT 3 + +#define GuiLib_PS_NOCHANGE 0 +#define GuiLib_PS_OFF 1 +#define GuiLib_PS_ON 2 +#define GuiLib_PS_NUM 3 + +#define GuiLib_TRANSPARENT_OFF 0 +#define GuiLib_TRANSPARENT_ON 1 + +#define GuiLib_UNDERLINE_OFF 0 +#define GuiLib_UNDERLINE_ON 1 + +#define GuiLib_BBP_NONE 0 +#define GuiLib_BBP_LEFT 1 +#define GuiLib_BBP_RIGHT 2 +#define GuiLib_BBP_TOP 4 +#define GuiLib_BBP_BOTTOM 8 + +#define GuiLib_VAR_BOOL 0 +#define GuiLib_VAR_UNSIGNED_CHAR 1 +#define GuiLib_VAR_SIGNED_CHAR 2 +#define GuiLib_VAR_UNSIGNED_INT 3 +#define GuiLib_VAR_SIGNED_INT 4 +#define GuiLib_VAR_UNSIGNED_LONG 5 +#define GuiLib_VAR_SIGNED_LONG 6 +#define GuiLib_VAR_FLOAT 7 +#define GuiLib_VAR_DOUBLE 8 +#define GuiLib_VAR_STRING 9 +#define GuiLib_VAR_COLOR 10 +#define GuiLib_VAR_NONE 255 + +#define GuiLib_FORMAT_DEC 0 +#define GuiLib_FORMAT_EXP 1 +#define GuiLib_FORMAT_HEX_POSTFIX_H 2 +#define GuiLib_FORMAT_TIME_MMSS 3 +#define GuiLib_FORMAT_TIME_HHMM_24 4 +#define GuiLib_FORMAT_TIME_HHMMSS_24 5 +#define GuiLib_FORMAT_TIME_HHMM_12_ampm 6 +#define GuiLib_FORMAT_TIME_HHMMSS_12_ampm 7 +#define GuiLib_FORMAT_TIME_HHMM_12_AMPM 8 +#define GuiLib_FORMAT_TIME_HHMMSS_12_AMPM 9 +#define GuiLib_FORMAT_HEX_PREFIX_0X 10 +#define GuiLib_FORMAT_HEX_CLEAN 11 + +#define GuiLib_FORMAT_ALIGNMENT_LEFT 0 +#define GuiLib_FORMAT_ALIGNMENT_CENTER 1 +#define GuiLib_FORMAT_ALIGNMENT_RIGHT 2 + +#define GuiLib_DECIMAL_PERIOD 0 +#define GuiLib_DECIMAL_COMMA 1 + +#define GuiLib_LANGUAGE_TEXTDIR_LEFTTORIGHT 0 +#define GuiLib_LANGUAGE_TEXTDIR_RIGHTTOLEFT 1 + +#define GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX 0 +#define GuiLib_TEXTBOX_SCROLL_INSIDE_BLOCK 1 +#define GuiLib_TEXTBOX_SCROLL_AT_HOME 2 +#define GuiLib_TEXTBOX_SCROLL_AT_END 3 +#define GuiLib_TEXTBOX_SCROLL_ABOVE_HOME 4 +#define GuiLib_TEXTBOX_SCROLL_BELOW_END 5 + +#define GuiLib_BUTTON_STATE_UP 0 +#define GuiLib_BUTTON_STATE_DOWN 1 +#define GuiLib_BUTTON_STATE_DISABLED 2 + +#define GuiLib_CHECKBOX_OFF 0 +#define GuiLib_CHECKBOX_ON 1 + +#define GuiLib_RADIOBUTTON_OFF -1 + + +#define GuiLib_NO_COLOR 0x10000000 + + +// ============================================================================= +typedef struct +{ + GuiConst_INT16S ByteBegin; + GuiConst_INT16S ByteEnd; +} +GuiLib_DisplayLineRec; + +#ifdef GuiConst_CODEVISION_COMPILER +typedef flash struct +#else +typedef struct +#endif +{ +#ifdef GuiConst_CHARMODE_ANSI + GuiConst_INT8U FirstChar; + GuiConst_INT8U LastChar; + GuiConst_INT16U FirstCharNdx; + GuiConst_INT16U IllegalCharNdx; +#else + GuiConst_INT16U CharCount; + GuiConst_INT32U FirstCharNdx; +#endif + GuiConst_INT8U XSize, YSize; +#ifdef GuiConst_ADV_FONTS_ON + GuiConst_INT8U ColorDepth; +#endif + GuiConst_INT8U TopLine, MidLine, BaseLine; + GuiConst_INT8U Cursor1, Cursor2; + GuiConst_INT8U Underline1, Underline2; + GuiConst_INT8U BoxWidth; + GuiConst_INT8U PsNumWidth; + GuiConst_INT8U PsSpace; + GuiConst_INT8U LineSize; +} +GuiLib_FontRec; + +#ifdef GuiConst_ICC_COMPILER +typedef GuiLib_FontRec PrefixRom *GuiLib_FontRecPtr; +typedef const GuiLib_FontRec * GuiLib_FontRecConstPtr; +#else +#ifdef GuiConst_CODEVISION_COMPILER +typedef flash GuiLib_FontRec *GuiLib_FontRecPtr; +typedef flash GuiLib_FontRec *GuiLib_FontRecConstPtr; +#else +typedef GuiLib_FontRec PrefixRom *GuiLib_FontRecPtr; +typedef const GuiLib_FontRec PrefixRom *GuiLib_FontRecConstPtr; +#endif +#endif + +#ifdef GuiConst_ITEM_GRAPH_INUSE +typedef struct +{ + GuiConst_INT32S X; + GuiConst_INT32S Y; +} GuiLib_GraphDataPoint; +#endif + +// ============================================================================= +#ifdef GuiConst_DISPLAY_BUFFER_EASYGUI +#ifdef GuiConst_COLOR_DEPTH_1 +extern GuiConst_INT8U + GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; +#endif +#ifdef GuiConst_COLOR_DEPTH_2 +#ifdef GuiConst_COLOR_PLANES_2 +extern GuiConst_INT8U + GuiLib_DisplayBuf[2][GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; +#else +extern GuiConst_INT8U + GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; +#endif +#endif +#ifdef GuiConst_COLOR_DEPTH_4 +#ifdef GuiConst_COLOR_PLANES_4 +extern GuiConst_INT8U + GuiLib_DisplayBuf[4][GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; +#else +extern GuiConst_INT8U + GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; +#endif +#endif +#ifdef GuiConst_COLOR_DEPTH_5 +extern GuiConst_INT8U + GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; +#endif +#ifdef GuiConst_COLOR_DEPTH_8 +extern GuiConst_INT8U + GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; +#endif +#ifdef GuiConst_COLOR_DEPTH_12 +typedef union +{ + GuiConst_INT8U Bytes[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; + GuiConst_INT16U Words[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE / 2]; +} DisplayBufUnion; +extern DisplayBufUnion GuiLib_DisplayBuf; +#endif +#ifdef GuiConst_COLOR_DEPTH_15 +typedef union +{ + GuiConst_INT8U Bytes[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; + GuiConst_INT16U Words[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE / 2]; +} DisplayBufUnion; +extern DisplayBufUnion GuiLib_DisplayBuf; +#endif +#ifdef GuiConst_COLOR_DEPTH_16 +typedef union +{ + GuiConst_INT8U Bytes[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; + GuiConst_INT16U Words[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE / 2]; +} DisplayBufUnion; +extern DisplayBufUnion GuiLib_DisplayBuf; +#endif +#ifdef GuiConst_COLOR_DEPTH_18 +extern GuiConst_INT8U + GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; +#endif +#ifdef GuiConst_COLOR_DEPTH_24 +extern GuiConst_INT8U + GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; +#endif +#ifdef GuiConst_COLOR_DEPTH_32 +extern GuiConst_INT8U + GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE]; +#endif +#endif + +extern GuiLib_DisplayLineRec GuiLib_DisplayRepaint[GuiConst_BYTE_LINES]; +#ifdef GuiConst_VNC_REMOTE_SUPPORT_ON +extern GuiLib_DisplayLineRec GuiLib_VncRepaint[GuiConst_BYTE_LINES]; +#endif // GuiConst_VNC_REMOTE_SUPPORT_ON +#ifdef GuiConst_CURSOR_SUPPORT_ON +extern GuiConst_INT16S GuiLib_ActiveCursorFieldNo; +#endif +extern GuiConst_INT16S GuiLib_LanguageIndex; +extern GuiConst_INT16S GuiLib_CurStructureNdx; +#ifdef GuiConst_ALLOW_UPSIDEDOWN_AT_RUNTIME +extern GuiConst_INT8U GuiLib_DisplayUpsideDown; +#endif + +#ifdef GuiConst_REMOTE_DATA +extern void (*GuiLib_RemoteDataReadBlock) ( + GuiConst_INT32U SourceOffset, + GuiConst_INT32U SourceSize, + GuiConst_INT8U * TargetAddr); +#ifdef GuiConst_REMOTE_TEXT_DATA +extern void (*GuiLib_RemoteTextReadBlock) ( + GuiConst_INT32U SourceOffset, + GuiConst_INT32U SourceSize, + void * TargetAddr); +#endif +#endif + + +// ============================================================================= +#include "GuiFont.h" +#include "GuiStruct.h" +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_DegToRad +// =============== +// +// Converts angle from degrees to radians. +// +// Input: +// ------ +// Angle in degrees * 10 (1° = 10) +// +// Output: +// ------- +// Angle in radians * 4096 (1 rad = 4096) +// +extern GuiConst_INT32S GuiLib_DegToRad( + GuiConst_INT32S Angle); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_RadToDeg +// =============== +// +// Converts angle from radians to degrees. +// +// Input: +// ------ +// Angle in radians * 4096 (1 rad = 4096) +// +// Output: +// ------- +// Angle in degrees * 10 (1° = 10) +// +extern GuiConst_INT32S GuiLib_RadToDeg( + GuiConst_INT32S Angle); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_SinRad +// ============= +// +// Calculates Sin(angle), where angle is in radians (factored). +// +// Input: +// ------ +// Angle in radians * 4096 (1 rad = 4096) +// +// Output: +// ------- +// Sine of angle in 1/4096 units +// +extern GuiConst_INT32S GuiLib_SinRad( + GuiConst_INT32S Angle); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_SinDeg +// ============= +// +// Calculates Sin(angle), where angle is in degrees (factored). +// +// Input: +// ------ +// Angle in degrees * 10 (1° = 10) +// +// Output: +// ------- +// Sine of angle in 1/4096 units +// +extern GuiConst_INT32S GuiLib_SinDeg( + GuiConst_INT32S Angle); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_CosRad +// ============= +// +// Calculates Cos(angle), where angle is in radians (factored). +// +// Input: +// ------ +// Angle in radians * 4096 (1 rad = 4096) +// +// Output: +// ------- +// Cosine of angle in 1/4096 units +// +extern GuiConst_INT32S GuiLib_CosRad( + GuiConst_INT32S Angle); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_CosDeg +// ============= +// +// Calculates Cos(angle), where angle is in degrees (factored). +// +// Input: +// ------ +// Angle in degrees * 10 (1° = 10) +// +// Output: +// ------- +// Cosine of angle in 1/4096 units +// +extern GuiConst_INT32S GuiLib_CosDeg( + GuiConst_INT32S Angle); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Sqrt +// =========== +// +// Returns Square root of argument. +// +// Input: +// ------ +// Argument +// +// Output: +// ------- +// Square root of argument +// +extern GuiConst_INT32U GuiLib_Sqrt( + GuiConst_INT32U X); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_GetRedRgbColor +// ===================== +// +// Extracts red component from RGB color. +// +// Input: +// ------ +// 24 bit RGB color +// +// Output: +// ------- +// 8 bit red color component +// +extern GuiConst_INT8U GuiLib_GetRedRgbColor( + GuiConst_INT32U RgbColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_SetRedRgbColor +// ===================== +// +// Sets red component from RGB color. +// +// Input: +// ------ +// 24 bit RGB color +// 8 bit red color component +// +// Output: +// ------- +// 24 bit RGB color +// +extern GuiConst_INT32U GuiLib_SetRedRgbColor( + GuiConst_INT32U RgbColor, + GuiConst_INT8U RedColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_GetGreenRgbColor +// ======================= +// +// Extracts green component from RGB color. +// +// Input: +// ------ +// 24 bit RGB color +// +// Output: +// ------- +// 8 bit green color component +// +extern GuiConst_INT8U GuiLib_GetGreenRgbColor( + GuiConst_INT32U RgbColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_SetGreenRgbColor +// ======================= +// +// Sets green component from RGB color. +// +// Input: +// ------ +// 24 bit RGB color +// 8 bit green color component +// +// Output: +// ------- +// 24 bit RGB color +// +extern GuiConst_INT32U GuiLib_SetGreenRgbColor( + GuiConst_INT32U RgbColor, + GuiConst_INT8U GreenColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_GetBlueRgbColor +// ====================== +// +// Extracts blue component from RGB color. +// +// Input: +// ------ +// 24 bit RGB color +// +// Output: +// ------- +// 8 bit blue color component +// +extern GuiConst_INT8U GuiLib_GetBlueRgbColor( + GuiConst_INT32U RgbColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_SetBlueRgbColor +// ====================== +// +// Sets blue component from RGB color. +// +// Input: +// ------ +// 24 bit RGB color +// 8 bit blue color component +// +// Output: +// ------- +// 24 bit RGB color +// +extern GuiConst_INT32U GuiLib_SetBlueRgbColor( + GuiConst_INT32U RgbColor, + GuiConst_INT8U BlueColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_RgbToPixelColor +// ====================== +// +// Translates from RGB color to proper pixel value for display controller +// color setup. +// +// Input: +// ------ +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// +// Output: +// ------- +// Encoded pixel color value +// +extern GuiConst_INTCOLOR GuiLib_RgbToPixelColor( + GuiConst_INT32U RgbColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Rgb888ToPixelColor +// ========================= +// +// Translates from RGB color components to proper pixel value for display +// controller color setup. +// +// Input: +// ------ +// Red color value +// Green color value +// Blue color value +// +// Output: +// ------- +// Encoded pixel color value +// +GuiConst_INTCOLOR GuiLib_Rgb888ToPixelColor( + GuiConst_INT8U Red, GuiConst_INT8U Green, GuiConst_INT8U Blue); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_PixelToRgbColor +// ====================== +// +// Translates from pixel value for display controller color setup to RGB color. +// +// Input: +// ------ +// Encoded pixel color value +// +// Output: +// ------- +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// +extern GuiConst_INT32U GuiLib_PixelToRgbColor( + GuiConst_INTCOLOR PixelColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_RgbColorToGrayScale +// ========================== +// +// Translates from RGB color to 0~255 gray scale value. +// +// Input: +// ------ +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// +// Output: +// ------- +// Gray scale value, 0~255 +// +extern GuiConst_INT8U GuiLib_RgbColorToGrayScale( + GuiConst_INT32U RgbColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Rgb888ColorToGrayScale +// ============================= +// +// Translates from RGB color components to a 0~255 grayscale value. +// +// Input: +// ------ +// Red color value +// Green color value +// Blue color value +// +// Output: +// ------- +// Gray scale value, 0~255 +// +GuiConst_INT8U GuiLib_Rgb888ColorToGrayScale( + GuiConst_INT8U Red, GuiConst_INT8U Green, GuiConst_INT8U Blue); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_GrayScaleToRgbColor +// ========================== +// +// Translates from 0~255 gray scale value to RGB color. +// +// Input: +// ------ +// Gray scale value, 0~255 +// +// Output: +// ------- +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// +extern GuiConst_INT32U GuiLib_GrayScaleToRgbColor( + GuiConst_INT8U GrayValue); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_PixelColorToGrayScale +// ============================ +// +// Translates from pixel value for display controller color setup to 0~255 gray +// scale value. +// +// Input: +// ------ +// Encoded pixel color value +// +// Output: +// ------- +// Gray scale value, 0~255 +// +extern GuiConst_INT8U GuiLib_PixelColorToGrayScale( + GuiConst_INTCOLOR PixelColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_GrayScaleToPixelColor +// ============================ +// +// Translates from gray scale value to display controller color setup. +// +// Input: +// ------ +// Gray scale value, 0~255 +// +// Output: +// ------- +// Encoded pixel color value +// +extern GuiConst_INTCOLOR GuiLib_GrayScaleToPixelColor( + GuiConst_INT8U GrayValue); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_BrightenRgbColor +// ======================= +// +// Brightens RGB color 0~1000‰, 1000‰ results in pure white. +// +// Input: +// ------ +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// Brighten value, 0 ~ 1000‰ +// +// Output: +// ------- +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// +extern GuiConst_INT32U GuiLib_BrightenRgbColor( + GuiConst_INT32U RgbColor, + GuiConst_INT16U Amount); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_BrightenPixelColor +// ========================= +// +// Brightens color in display controller color setup 0~1000‰, 1000‰ results in +// pure white. +// +// Input: +// ------ +// Encoded pixel color value +// Brighten value, 0 ~ 1000‰ +// +// Output: +// ------- +// Encoded pixel color value +// +extern GuiConst_INTCOLOR GuiLib_BrightenPixelColor( + GuiConst_INTCOLOR PixelColor, + GuiConst_INT16U Amount); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_DarkenRgbColor +// ===================== +// +// Darkens RGB color 0~1000‰, 1000‰ results in pure black. +// +// Input: +// ------ +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// Darken value, 0 ~ 1000‰ +// +// Output: +// ------- +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// +extern GuiConst_INT32U GuiLib_DarkenRgbColor( + GuiConst_INT32U RgbColor, + GuiConst_INT16U Amount); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_DarkenPixelColor +// ======================= +// +// Darkens color in display controller color setup 0~1000‰, 1000‰ results in +// pure black. +// +// Input: +// ------ +// Encoded pixel color value +// Darken value, 0 ~ 1000‰ +// +// Output: +// ------- +// Encoded pixel color value +// +extern GuiConst_INTCOLOR GuiLib_DarkenPixelColor( + GuiConst_INTCOLOR PixelColor, + GuiConst_INT16U Amount); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_MiddleRgbColor +// ===================== +// +// Gives middle color, between color 1 and color 2. +// Ratio in 0~1000‰, 0‰ gives color 1, 1000‰ gives color 2. +// +// Input: +// ------ +// RGB color 1 value +// RGB color 2 value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// Color ratio, 0 ~ 1000‰ +// +// Output: +// ------- +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// +extern GuiConst_INT32U GuiLib_MiddleRgbColor( + GuiConst_INT32U RgbColor1, + GuiConst_INT32U RgbColor2, + GuiConst_INT16U Amount); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_MiddlePixelColor +// ======================= +// +// Gives middle color in display controller color setup, +// between color 1 and color 2. +// Ratio in 0~1000‰, 0‰ gives color 1, 1000‰ gives color 2. +// +// Input: +// ------ +// Encoded pixel color 1 value +// Encoded pixel color 2 value +// Color ratio, 0 ~ 1000‰ +// +// Output: +// ------- +// Encoded pixel color value +// +extern GuiConst_INTCOLOR GuiLib_MiddlePixelColor( + GuiConst_INTCOLOR PixelColor1, + GuiConst_INTCOLOR PixelColor2, + GuiConst_INT16U Amount); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_DesaturateRgbColor +// ========================= +// +// Removes saturation from color, turning it towards gray color. +// Ratio in 0~1000‰, 0‰ gives color 1, 1000‰ gives gray. +// +// Input: +// ------ +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// Desaturation ratio, 0 ~ 1000‰ +// +// Output: +// ------- +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// +extern GuiConst_INT32U GuiLib_DesaturateRgbColor( + GuiConst_INT32U RgbColor, + GuiConst_INT16U Amount); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_DesaturatePixelColor +// =========================== +// +// Removes saturation from color, turning it towards gray color. +// Ratio in 0~1000‰, 0‰ gives color 1, 1000‰ gives gray. +// +// Input: +// ------ +// Encoded pixel color value +// Color ratio, 0 ~ 1000‰ +// +// Output: +// ------- +// Encoded pixel color value +// +extern GuiConst_INTCOLOR GuiLib_DesaturatePixelColor( + GuiConst_INTCOLOR PixelColor, + GuiConst_INT16U Amount); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_AccentuateRgbColor +// ========================= +// +// Accentuates RGB color. Colors with less than 50% mean gray are made darker, +// otherwise brighter. Amount in ‰, 0‰ gives no change, 1000‰ gives pure black +// or white. +// +// Input: +// ------ +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// Accentuate value, 0 ~ 1000‰ +// +// Output: +// ------- +// RGB color value +// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue) +// +extern GuiConst_INT32U GuiLib_AccentuateRgbColor( + GuiConst_INT32U RgbColor, + GuiConst_INT16U Amount); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_AccentuatePixelColor +// =========================== +// +// Accentuates color in display controller color setup. Colors with less than +// 50% mean gray are made darker, otherwise brighter. Amount in ‰, 0‰ gives no +// change, 1000‰ gives pure black or white. +// +// Input: +// ------ +// Encoded pixel color value +// Accentuate value, 0 ~ 1000‰ +// +// Output: +// ------- +// Encoded pixel color value +// +extern GuiConst_INTCOLOR GuiLib_AccentuatePixelColor( + GuiConst_INTCOLOR PixelColor, + GuiConst_INT16U Amount); +// ----------------------------------------------------------------------------- + +// ============================================================================= +// GuiLib_SetButtonDisabledColor +// ============================= +// +// Override automatic generation of button disabled color with the specified +// pixel color value. +// +// Input: +// ------ +// Encoded pixel color value +// +// Output: +// ------- +// Encoded pixel color value +// +GuiConst_INTCOLOR GuiLib_SetButtonDisabledColor(GuiConst_INTCOLOR PixelColor); +// ----------------------------------------------------------------------------- + +#ifdef GuiConst_CLIPPING_SUPPORT_ON + +// ============================================================================= +// GuiLib_ResetClipping +// ==================== +// +// Resets clipping. +// Drawing can be limited to a rectangular portion of the screen, +// this routine resets the clipping limits to the entire screen. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_ResetClipping(void); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_SetClipping +// ================== +// +// Sets clipping. +// Drawing can be limited to a rectangular portion of the screen, +// this routine sets the clipping limits expressed as two opposite +// corner coordinates. +// +// Input: +// ------ +// Rectangle coordinates +// +// Output: +// ------- +// None +// +extern void GuiLib_SetClipping( + GuiConst_INT16S X1, + GuiConst_INT16S Y1, + GuiConst_INT16S X2, + GuiConst_INT16S Y2); +// ----------------------------------------------------------------------------- + +#endif + + +// ============================================================================= +// GuiLib_ResetDisplayRepaint +// ========================== +// +// Resets all repainting scan line markers. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_ResetDisplayRepaint(void); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_MarkDisplayBoxRepaint +// ============================ +// +// Sets the repainting scan line markers, indicating that all pixels inside the +// specified rectangle must be repainted. +// +// Input: +// ------ +// Rectangle coordinates +// +// Output: +// ------- +// None +// +extern void GuiLib_MarkDisplayBoxRepaint( + GuiConst_INT16S X1, + GuiConst_INT16S Y1, + GuiConst_INT16S X2, + GuiConst_INT16S Y2); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ClearDisplay +// =================== +// +// Clears the screen. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_ClearDisplay(void); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Dot +// ========== +// +// Draws a single pixel. +// +// Input: +// ------ +// Coordinates +// Color +// +// Output: +// ------- +// None +// +extern void GuiLib_Dot( + GuiConst_INT16S X, + GuiConst_INT16S Y, + GuiConst_INTCOLOR Color); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_GetDot +// ============= +// +// Returns the color of a single pixel. +// +// Input: +// ------ +// Coordinates +// +// Output: +// ------- +// Color +// +extern GuiConst_INTCOLOR GuiLib_GetDot( + GuiConst_INT16S X, + GuiConst_INT16S Y); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Line +// =========== +// +// Draws a line. +// +// Input: +// ------ +// Coordinates +// Color +// +// Output: +// ------- +// None +// +extern void GuiLib_Line( + GuiConst_INT16S X1, + GuiConst_INT16S Y1, + GuiConst_INT16S X2, + GuiConst_INT16S Y2, + GuiConst_INTCOLOR Color); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_LinePattern +// ================== +// +// Draws a patterned line. +// +// Input: +// ------ +// Coordinates +// Line pattern (8 pixel pattern) +// Color +// +// Output: +// ------- +// None +// +extern void GuiLib_LinePattern( + GuiConst_INT16S X1, + GuiConst_INT16S Y1, + GuiConst_INT16S X2, + GuiConst_INT16S Y2, + GuiConst_INT8U LinePattern, + GuiConst_INTCOLOR Color); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_HLine +// ============ +// +// Draws a horizontal line. +// +// Input: +// ------ +// Coordinates +// Color +// +// Output: +// ------- +// None +// +extern void GuiLib_HLine( + GuiConst_INT16S X1, + GuiConst_INT16S X2, + GuiConst_INT16S Y, + GuiConst_INTCOLOR Color); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_VLine +// ============ +// +// Draws a vertical line. +// +// Input: +// ------ +// Coordinates +// Color +// +// Output: +// ------- +// None +// +extern void GuiLib_VLine( + GuiConst_INT16S X, + GuiConst_INT16S Y1, + GuiConst_INT16S Y2, + GuiConst_INTCOLOR Color); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Box +// ========== +// +// Draws a single pixel wide rectangle. +// +// Input: +// ------ +// Coordinates +// Color +// +// Output: +// ------- +// None +// +extern void GuiLib_Box( + GuiConst_INT16S X1, + GuiConst_INT16S Y1, + GuiConst_INT16S X2, + GuiConst_INT16S Y2, + GuiConst_INTCOLOR Color); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_FillBox +// ============== +// +// Draws a filled rectangle. +// +// Input: +// ------ +// Coordinates +// Color +// +// Output: +// ------- +// None +// +extern void GuiLib_FillBox( + GuiConst_INT16S X1, + GuiConst_INT16S Y1, + GuiConst_INT16S X2, + GuiConst_INT16S Y2, + GuiConst_INTCOLOR Color); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_BorderBox +// ================ +// +// Draws a filled rectangle with single pixel border. +// +// Input: +// ------ +// Coordinates +// Border and fill colors +// +// Output: +// ------- +// None +// +extern void GuiLib_BorderBox( + GuiConst_INT16S X1, + GuiConst_INT16S Y1, + GuiConst_INT16S X2, + GuiConst_INT16S Y2, + GuiConst_INTCOLOR BorderColor, + GuiConst_INTCOLOR FillColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_InvertBox +// ================ +// +// Inverts a block. +// +// Input: +// ------ +// Coordinates +// +// Output: +// ------- +// None +// +extern void GuiLib_InvertBox( + GuiConst_INT16S X1, + GuiConst_INT16S Y1, + GuiConst_INT16S X2, + GuiConst_INT16S Y2); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Circle +// ============= +// +// Draws a filled or framed circle with single pixel width border. +// +// Input: +// ------ +// Center coordinate +// Radius +// Border color, GuiLib_NO_COLOR means same color as fill color +// Fill color, GuiLib_NO_COLOR means no filling +// +// Output: +// ------- +// None +// +extern void GuiLib_Circle( + GuiConst_INT16S X, + GuiConst_INT16S Y, + GuiConst_INT16U Radius, + GuiConst_INT32S BorderColor, + GuiConst_INT32S FillColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Ellipse +// ============== +// +// Draws a filled or framed ellipse with single pixel width border. +// +// Input: +// ------ +// Center coordinate +// Horizontal and vertical radii +// Border color, GuiLib_NO_COLOR means same color as fill color +// Fill color, GuiLib_NO_COLOR means no filling +// +// Output: +// ------- +// None +// +extern void GuiLib_Ellipse( + GuiConst_INT16S X, + GuiConst_INT16S Y, + GuiConst_INT16U Radius1, + GuiConst_INT16U Radius2, + GuiConst_INT32S BorderColor, + GuiConst_INT32S FillColor); +// ----------------------------------------------------------------------------- + + +#ifdef GuiConst_BITMAP_SUPPORT_ON + +// ============================================================================= +// GuiLib_ShowBitmap +// ================= +// +// Displays a stored bitmap. +// +// Input: +// ------ +// Bitmap index in GuiStruct_BitmapPtrList +// Coordinates for upper left corner +// Transparent background color, -1 means no transparency +// +// Output: +// ------- +// None +// +extern void GuiLib_ShowBitmap( + GuiConst_INT16U BitmapIndex, + GuiConst_INT16S X, + GuiConst_INT16S Y, + GuiConst_INT32S TranspColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ShowBitmapAt +// =================== +// +// Displays a bitmap at a specific address. +// The data in the memory area must conform to the format explained in the +// easyGUI user manual. +// +// Input: +// ------ +// Pointer to memory area +// Coordinates for upper left corner +// Transparent background color, -1 means no transparency +// +// Output: +// ------- +// None +// +extern void GuiLib_ShowBitmapAt( + GuiConst_INT8U * BitmapPtr, + GuiConst_INT16S X, + GuiConst_INT16S Y, + GuiConst_INT32S TranspColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================ +// GuiLib_ShowBitmapArea +// ===================== +// +// Displays part of a stored bitmap. +// +// Input: +// ------ +// Bitmap index in GuiStruct_BitmapPtrList +// Starting coordinates for upper left corner of bitmap +// Absolute coordinates for upper left and lower right corner of displayed area +// Transparent background color, -1 means no transparency +// +// Output: +// ------- +// None +// +extern void GuiLib_ShowBitmapArea( + GuiConst_INT16U BitmapIndex, + GuiConst_INT16S X, + GuiConst_INT16S Y, + GuiConst_INT16S AX1, + GuiConst_INT16S AY1, + GuiConst_INT16S AX2, + GuiConst_INT16S AY2, + GuiConst_INT32S TranspColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================ +// GuiLib_ShowBitmapAreaAt +// ======================= +// +// Displays part of a bitmap at a specific address. +// The data in the memory area must conform to the format explained in the +// easyGUI user manual. +// +// Input: +// ------ +// Pointer to memory area +// Starting coordinates for upper left corner of bitmap +// Absolute coordinates for upper left and lower right corner of displayed area +// Transparent background color, -1 means no transparency +// +// Output: +// ------- +// None +// +extern void GuiLib_ShowBitmapAreaAt( + GuiConst_INT8U * BitmapPtr, + GuiConst_INT16S X, + GuiConst_INT16S Y, + GuiConst_INT16S AX1, + GuiConst_INT16S AY1, + GuiConst_INT16S AX2, + GuiConst_INT16S AY2, + GuiConst_INT32S TranspColor); +// ----------------------------------------------------------------------------- + +#endif + + +// ============================================================================= +// GuiLib_DrawChar +// =============== +// +// Draws a single character on the display. +// +// Input: +// ------ +// Coordinates +// Font index +// Character +// Color +// +// Output: +// ------- +// None +// +extern void GuiLib_DrawChar( + GuiConst_INT16S X, + GuiConst_INT16S Y, + GuiConst_INT16U FontNo, + GuiConst_TEXT Character, + GuiConst_INTCOLOR Color); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_DrawStr +// ============== +// +// Draws a text string on the display. +// +// Input: +// ------ +// Coordinates +// Font index +// Text string +// Alignment +// Ps mode +// Transparent +// Underlining +// Back box size X (0 = none) +// Back box size Y1 (height above base line, 0 = default font box) +// Back box size Y2 (height below base line, 0 = default font box) +// Extra back box pixels +// Text color +// Background box color +// +// Output: +// ------- +// None +// +extern void GuiLib_DrawStr( + GuiConst_INT16S X, + GuiConst_INT16S Y, + GuiConst_INT16U FontNo, + GuiConst_TEXT PrefixLocate *String, + GuiConst_INT8U Alignment, + GuiConst_INT8U PsWriting, + GuiConst_INT8U Transparent, + GuiConst_INT8U Underlining, + GuiConst_INT16S BackBoxSizeX, + GuiConst_INT16S BackBoxSizeY1, + GuiConst_INT16S BackBoxSizeY2, + GuiConst_INT8U BackBorderPixels, + GuiConst_INTCOLOR ForeColor, + GuiConst_INTCOLOR BackColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_DrawVar +// ============== +// +// Draws a variable on the display. +// +// Input: +// ------ +// Coordinates +// Font index +// Variable pointer reference +// Variable type - can be: +// GuiLib_VAR_BOOL +// GuiLib_VAR_UNSIGNED_CHAR +// GuiLib_VAR_SIGNED_CHAR +// GuiLib_VAR_UNSIGNED_INT +// GuiLib_VAR_SIGNED_INT +// GuiLib_VAR_UNSIGNED_LONG +// GuiLib_VAR_SIGNED_LONG +// GuiLib_VAR_FLOAT +// GuiLib_VAR_DOUBLE +// GuiLib_VAR_STRING +// Variable format - can be: +// GuiLib_FORMAT_DEC +// GuiLib_FORMAT_EXP +// GuiLib_FORMAT_HEX +// GuiLib_FORMAT_TIME_MMSS +// GuiLib_FORMAT_TIME_HHMM_24 +// GuiLib_FORMAT_TIME_HHMMSS_24 +// GuiLib_FORMAT_TIME_HHMM_12_ampm +// GuiLib_FORMAT_TIME_HHMMSS_12_ampm +// GuiLib_FORMAT_TIME_HHMM_12_AMPM +// GuiLib_FORMAT_TIME_HHMMSS_12_AMPM +// Variable format field width +// Variable format alignment - can be: +// GuiLib_FORMAT_ALIGNMENT_LEFT +// GuiLib_FORMAT_ALIGNMENT_CENTER +// GuiLib_FORMAT_ALIGNMENT_RIGHT +// Variable format decimals +// Variable format show sign (true or false) +// Variable format zero padding (true or false) +// Variable format trailing zeros (true or false) +// Variable format thousands separator (true or false) +// Alignment +// Ps mode +// Transparent +// Underlining +// Back box size X (0 = none) +// Back box size Y1 (height above base line, 0 = default font box) +// Back box size Y2 (height below base line, 0 = default font box) +// Extra back box pixels +// Text color +// Background box color +// +// Output: +// ------- +// None +// +extern void GuiLib_DrawVar( + GuiConst_INT16S X, + GuiConst_INT16S Y, + GuiConst_INT16U FontNo, + void PrefixLocate *VarPtr, + GuiConst_INT8U VarType, + GuiConst_INT8U FormatterFormat, + GuiConst_INT8U FormatterFieldWidth, + GuiConst_INT8U FormatterAlignment, + GuiConst_INT8U FormatterDecimals, + GuiConst_INT8U FormatterShowSign, + GuiConst_INT8U FormatterZeroPadding, + GuiConst_INT8U FormatterTrailingZeros, + GuiConst_INT8U FormatterThousandsSeparator, + GuiConst_INT8U Alignment, + GuiConst_INT8U PsWriting, + GuiConst_INT8U Transparent, + GuiConst_INT8U Underlining, + GuiConst_INT16S BackBoxSizeX, + GuiConst_INT16S BackBoxSizeY1, + GuiConst_INT16S BackBoxSizeY2, + GuiConst_INT8U BackBorderPixels, + GuiConst_INTCOLOR ForeColor, + GuiConst_INTCOLOR BackColor); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Init +// =========== +// +// Initialises the easyGUI library module. +// MUST be called at application startup, before using the easyGUI library. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_Init(void); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Clear +// ============ +// +// Clears the screen, and resets the easyGUI system. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_Clear(void); +// ----------------------------------------------------------------------------- + + +#ifdef GuiConst_CHARMODE_UNICODE + +// ============================================================================= +// GuiLib_UnicodeStrLen +// ==================== +// +// Calculates length of Unicode string. +// This function is equivalent to the ANSI character mode strlen function. +// +// Input: +// ------ +// Unicode string reference +// +// Output: +// ------- +// Length in characters, excluding zero termination +// +extern GuiConst_INT16U GuiLib_UnicodeStrLen( + GuiConst_TEXT PrefixLocate *S); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_StrAnsiToUnicode +// ======================= +// +// Converts ANSI string to Unicode string. +// +// Input: +// ------ +// ANSI and Unicode string references +// Unicode string must have sufficient space +// +// Output: +// ------- +// None +// +extern void GuiLib_StrAnsiToUnicode( + GuiConst_TEXT PrefixLocate *S2, + GuiConst_CHAR PrefixLocate *S1); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_UnicodeStrCmp +// ==================== +// +// Compares two Unicode strings. +// This function is equivalent to the ANSI character mode strcmp function. +// +// Input: +// ------ +// Unicode string references +// +// Output: +// ------- +// <0: S1 is less than S2 +// =0: S1 and S2 are equal +// >0: S1 is greater than S2 +// +GuiConst_INT16S GuiLib_UnicodeStrCmp( + GuiConst_TEXT PrefixLocate *S1, + GuiConst_TEXT PrefixLocate *S2); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_UnicodeStrNCmp +// ===================== +// +// Compares two Unicode strings, until the N'th character. +// This function is equivalent to the ANSI character mode strncmp function. +// +// Input: +// ------ +// Unicode string references +// Character count to compare +// +// Output: +// ------- +// <0: S1 is less than S2 inside the N characters +// =0: S1 and S2 are equal inside the N characters +// >0: S1 is greater than S2 inside the N characters +// +GuiConst_INT16S GuiLib_UnicodeStrNCmp( + GuiConst_TEXT PrefixLocate *S1, + GuiConst_TEXT PrefixLocate *S2, + GuiConst_INT16U StrLen); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_UnicodeStrCpy +// ==================== +// +// Copy from one Unicode string to another. +// This function is equivalent to the ANSI character mode strcpy function +// +// Input: +// ------ +// S1: Unicode source string reference +// S2: Unicode destination string reference +// Unicode destination string must have sufficient space +// +// Output: +// ------- +// None +// +void GuiLib_UnicodeStrCpy( + GuiConst_TEXT PrefixLocate *S2, + GuiConst_TEXT PrefixLocate *S1); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_UnicodeStrNCpy +// ===================== +// +// Copy from one Unicode string to another. No more than source StrLen bytes are +// copied. +// Bytes following a source null byte are not copied. +// If needed target is padded with null bytes until reaching StrLen. +// This function is equivalent to the ANSI character mode strncpy function. +// +// Input: +// ------ +// S1: Unicode source string reference +// S2: Unicode destination string reference +// StrLen: Number of characters to copy +// Unicode destination string must have sufficient space +// +// Output: +// ------- +// None +// +void GuiLib_UnicodeStrNCpy( + GuiConst_TEXT PrefixLocate *S2, + GuiConst_TEXT PrefixLocate *S1, + GuiConst_INT16U StrLen); +// ----------------------------------------------------------------------------- + +#endif + + +// ============================================================================= +// GuiLib_ShowScreen +// ================= +// +// Instructs structure drawing task to draw a complete structure. +// +// Input: +// ------ +// Structure ID +// Active cursor field No. - +// use GuiLib_NO_CURSOR if there is no cursor to show +// Maintain or erase old AutoReadraw fields - +// use GuiLib_NO_RESET_AUTO_REDRAW or GuiLib_RESET_AUTO_REDRAW +// +// Output: +// ------- +// None +// +extern void GuiLib_ShowScreen( + const GuiConst_INT16U StructureNdx, + GuiConst_INT16S CursorFieldToShow, + GuiConst_INT8U ResetAutoRedraw); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_GetTextLanguagePtr +// ========================= +// +// Returns pointer to text in structure +// Language of selected text can be freely selected, no matter what language +// is active +// +// Input: +// ------ +// Structure ID +// Text No. - index 0 is first text in structure, Item types other than Texts +// and Paragraph are ignored +// +// Output: +// ------- +// Pointer to text based on structure, text No. and current language +// Returns Nil if no text was found +// +extern GuiConst_TEXT PrefixLocate *GuiLib_GetTextLanguagePtr( + const GuiConst_INT16U StructureNdx, + GuiConst_INT16U TextNo, + GuiConst_INT16S LanguageIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_GetTextPtr +// ================= +// +// Returns pointer to text in structure +// +// Input: +// ------ +// Structure ID +// Text No. - index 0 is first text in the structure, item types other than +// Text and Paragraph are ignored +// +// Output: +// ------- +// Pointer to text based on structure, text No. and current language +// Returns Nil if no text was found +// +extern GuiConst_TEXT PrefixLocate *GuiLib_GetTextPtr( + const GuiConst_INT16U StructureNdx, + GuiConst_INT16U TextNo); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_GetTextWidth +// =================== +// +// Returns width of text in pixels +// +// Input: +// ------ +// Pointer to text string +// Pointer to font +// PS writing mode - can be: +// GuiLib_PS_OFF No proportional writing +// GuiLib_PS_ON Normal proportional writing +// GuiLib_PS_NUM Numerical proportional writing +// +// Output: +// ------- +// Width of text in pixels, returns zero if an error is encountered +// +extern GuiConst_INT16U GuiLib_GetTextWidth( + GuiConst_TEXT PrefixLocate *String, + GuiLib_FontRecConstPtr Font, + GuiConst_INT8U PsWriting); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_GetCharCode +// ================== +// +// Returns ANSI or Unicode code of specific character in string +// +// Input: +// ------ +// Structure ID +// Text No. - index 0 is first text in the structure, item types other than +// Text and Paragraph are ignored +// Character position +// Omit control codes, Control codes are soft and hard line breaks +// 0 - count all charactes +// 1 - omit control codes during counting +// +// Output: +// ------- +// ANSI or Unicode code of character, returns zero if an error is encountered +// +extern GuiConst_TEXT GuiLib_GetCharCode( + const GuiConst_INT16U StructureNdx, + GuiConst_INT16U TextNo, + GuiConst_INT16U CharNo, + GuiConst_INT16U OmitCtrlCode); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_GuiLib_ClearPositionCallbacks +// ==================================== +// +// Resets all position callback function references - no callbacks will then +// happen, until GuiLib_SetPositionCallbackFunc has been called +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_ClearPositionCallbacks(void); + + +// ============================================================================= +// GuiLib_SetPositionCallbackFunc +// ============================== +// +// Defines a callback function for a specific position callback item +// The callback function will be called each time a structure containing a +// position callback item with the same index number. The callback will contain +// the index number and the current X,Y display coordinates. +// +// Input: +// ------ +// Position callback index No. +// Position callback function - function style is F(IndexNo, X, Y) +// +// Output: +// ------- +// None +// +extern void GuiLib_SetPositionCallbackFunc( + GuiConst_INT16U IndexNo, + void (*PosCallbackFunc) (GuiConst_INT16U IndexNo, + GuiConst_INT16S X, + GuiConst_INT16S Y)); + + +#ifdef GuiConst_BLINK_SUPPORT_ON + +// ============================================================================= +// GuiLib_GetBlinkingCharCode +// ========================== +// +// Returns ANSI or Unicode code of character in string marked as blinking field +// +// Input: +// ------ +// Blinking item No. +// Character position +// Omit control codes, Control codes are soft and hard line breaks +// 0 - count all charactes +// 1 - omit control codes during counting +// +// Output: +// ------- +// ANSI or Unicode code of character, returns zero if an error is encountered +// +extern GuiConst_TEXT GuiLib_GetBlinkingCharCode( + GuiConst_INT16U BlinkFieldNo, + GuiConst_INT16U CharNo, + GuiConst_INT16U OmitCtrlCode); +// ----------------------------------------------------------------------------- + +#endif + + +// ============================================================================= +// GuiLib_SetLanguage +// ================== +// +// Selects current language. Index zero is the reference language. +// +// Input: +// ------ +// Language index +// +// Output: +// ------- +// None +// +extern void GuiLib_SetLanguage( + GuiConst_INT16S NewLanguage); +// ----------------------------------------------------------------------------- + + +#ifdef GuiConst_CURSOR_SUPPORT_ON + +// ============================================================================= +// GuiLib_Cursor_Hide +// ================== +// +// Hides cursor field. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_Cursor_Hide(void); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_IsCursorFieldInUse +// ========================= +// +// Reports if a cursor field is active. +// +// Input: +// ------ +// Query cursor field No. +// +// Output: +// ------- +// 0 = Cursor field not active +// 1 = Cursor field active +// +extern GuiConst_INT8U GuiLib_IsCursorFieldInUse( + GuiConst_INT16S AskCursorFieldNo); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Cursor_Select +// ==================== +// +// Makes requested cursor field active, redrawing both current and new cursor +// field. +// +// Input: +// ------ +// New cursor field No. +// -1 hides cursor. +// +// Output: +// ------- +// 0 = No change, requested cursor field is invalid +// 1 = Cursor moved // extern GuiConst_INT8U GuiLib_Cursor_Select( +// GuiConst_INT16S NewCursorFieldNo); +// +extern GuiConst_INT8U GuiLib_Cursor_Select( + GuiConst_INT16S NewCursorFieldNo); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Cursor_Down +// ================== +// +// Makes next cursor field active, redrawing both current and new cursor field. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// 0 = Cursor at end of range +// 1 = Cursor moved +// +extern GuiConst_INT8U GuiLib_Cursor_Down(void); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Cursor_Up +// ================ +// +// Makes previous cursor field active, redrawing both current and new cursor +// field. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// 0 = Cursor at end of range +// 1 = Cursor moved +// +extern GuiConst_INT8U GuiLib_Cursor_Up(void); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Cursor_Home +// ================== +// +// Makes first cursor field active, redrawing both current and new cursor +// field. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// 0 = No change, first cursor field already active +// 1 = Cursor moved +// +extern GuiConst_INT8U GuiLib_Cursor_Home(void); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_Cursor_End +// ================= +// +// Makes last cursor field active, redrawing both current and new cursor +// field. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// 0 = No change, last cursor field already active +// 1 = Cursor moved +// +extern GuiConst_INT8U GuiLib_Cursor_End(void); +// ----------------------------------------------------------------------------- + +#endif + + +#ifdef GuiConst_BLINK_SUPPORT_ON + +// ============================================================================= +// GuiLib_BlinkBoxStart +// ==================== +// +// Sets parameters for blinking box function +// +// Input: +// ------ +// X1, Y1, X2, Y2: Blinking rectangle +// Rate: Blinking rate, in multiples of refresh rate, valid range 0-255 +// Rate = 255 disables blinking, but makes an initial inverting of the +// rectangle +// +// Output: +// ------- +// None +// +extern void GuiLib_BlinkBoxStart( + GuiConst_INT16S X1, + GuiConst_INT16S Y1, + GuiConst_INT16S X2, + GuiConst_INT16S Y2, + GuiConst_INT16S Rate); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_BlinkBoxStop +// =================== +// +// Stops blinking box function +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_BlinkBoxStop(void); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_BlinkBoxMarkedItem +// ========================= +// +// Sets parameters for blinking box function based on marked blink text field +// +// Input: +// ------ +// BlinkFieldNo: Index No. to marked blink text field in structure +// CharNo: Character number in text, first character is No. 1 +// CharNo = 0 means entire text +// Rate: Blinking rate, in multiples of refresh rate, valid range 0-255 +// Rate = 255 disables blinking, but makes an initial marking of the +// character/text +// +// Output: +// ------- +// None +// +extern void GuiLib_BlinkBoxMarkedItem( + GuiConst_INT16U BlinkFieldNo, + GuiConst_INT16U CharNo, + GuiConst_INT16S Rate); +// ----------------------------------------------------------------------------- + +// ============================================================================= +// GuiLib_BlinkBoxMarkedItemStop +// ============================= +// +// Stops blinking box function based on marked blink text field +// +// Input: +// ------ +// BlinkFieldNo: Index No. to marked blink text field in structure +// +// Output: +// ------- +// None +// +extern void GuiLib_BlinkBoxMarkedItemStop( + GuiConst_INT16U BlinkFieldNo); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_BlinkBoxMarkedItemUpdate +// =============================== +// +// Update parameters for blinking box function based on marked blink text field +// +// Input: +// ------ +// BlinkFieldNo: Index No. to marked blink text field in structure +// +// Output: +// ------- +// None +// +extern void GuiLib_BlinkBoxMarkedItemUpdate( + GuiConst_INT16U BlinkFieldNo); + +//------------------------------------------------------------------------------ + +#endif + + +// ============================================================================= +// GuiLib_InvertBoxStart +// ===================== +// +// Sets parameters for inverted box function +// +// Input: +// ------ +// X1, Y1, X2, Y2: Inverted box rectangle +// +// Output: +// ------- +// None +// +extern void GuiLib_InvertBoxStart( + GuiConst_INT16S X1, + GuiConst_INT16S Y1, + GuiConst_INT16S X2, + GuiConst_INT16S Y2); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_InvertBoxStop +// ==================== +// +// Stops inverted box function +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_InvertBoxStop(void); +// ----------------------------------------------------------------------------- + + +#ifdef GuiConst_ITEM_TOUCHAREA_INUSE + +// ============================================================================= +// GuiLib_TouchCheck +// ================= +// +// Returns touch area No. corresponding to the supplied coordinates. +// If no touch area is found at coordinates -1 is returned. +// Touch coordinates are converted to display coordinates, if conversion +// parameters have been set with the GuiLib_TouchAdjustSet function. +// +// Input: +// ------ +// X, Y: Touch position in touch interface coordinates +// +// Output: +// ------- +// -1 = No touch area found +// >=0 = Touch area No. +// +// +extern GuiConst_INT32S GuiLib_TouchCheck( + GuiConst_INT16S X, + GuiConst_INT16S Y); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TouchGet +// =============== +// +// Performs the same action as GuiLib_TouchCheck, and additionally returns +// touch coordinates in display coordinates: +// Returns touch area No. corresponding to the supplied coordinates. +// If no touch area is found at coordinates -1 is returned. +// Touch coordinates are converted to display coordinates, if conversion +// parameters have been set with the GuiLib_TouchAdjustSet function. +// OBS: If no conversion parameters have been set with the GuiLib_TouchAdjustSet +// function the calculated touch coordinates in display coordinates will be +// TouchX = X, and TouchY = Y. +// +// Input: +// ------ +// X, Y: Touch position in touch interface coordinates +// TouchX, TouchY: Addresses of the variables where touch coordinates +// converted to display coordinates will be stored +// +// Output: +// ------- +// -1 = No touch area found +// >=0 = Touch area No. +// +// +extern GuiConst_INT32S GuiLib_TouchGet( + GuiConst_INT16S X, + GuiConst_INT16S Y, + GuiConst_INT16S* TouchX, + GuiConst_INT16S* TouchY); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TouchAdjustReset +// ======================= +// +// Resets touch coordinate conversion. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_TouchAdjustReset(void); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TouchAdjustSet +// ===================== +// +// Sets one coordinate pair for touch coordinate conversion. +// Must be called two times, once for each of two diagonally opposed corners, +// or four times, once for each of the corners. +// The corner positions should be as close as possible to the physical display +// corners, as precision is lowered when going towards the display center. +// +// Input: +// ------ +// XTrue, YTrue : Position represented in display coordinates +// XMeasured, YMeasured: Position represented in touch interface coordinates +// +// Output: +// ------- +// None +// +extern void GuiLib_TouchAdjustSet( + GuiConst_INT16S XTrue, + GuiConst_INT16S YTrue, + GuiConst_INT16S XMeasured, + GuiConst_INT16S YMeasured); +// ----------------------------------------------------------------------------- + +#endif + + +// ============================================================================= +// GuiLib_Refresh +// ============== +// +// Refreshes variables and updates display. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_Refresh(void); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TestPattern +// ================== +// +// Makes test pattern for display control error diagnosis. See user manual for +// further info. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// None +// +extern void GuiLib_TestPattern(void); +// ----------------------------------------------------------------------------- + + +#ifdef GuiConst_ITEM_SCROLLBOX_INUSE + +// ============================================================================= +// GuiLib_ScrollBox_Init +// ===================== +// +// Initializes a scroll box (new item type style). +// +// Input: +// ------ +// Scroll box index +// DataFuncPtr: Address of scroll line call-back function of type +// "void F(GuiConst_INT16S LineIndex)" +// NoOfLines: Total No. of lines in scroll box +// ActiveLine: Active scroll line, -1 means no active scroll line +// +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_ScrollBox_Init( + GuiConst_INT8U ScrollBoxIndex, + void (*DataFuncPtr) (GuiConst_INT16S LineIndex), + GuiConst_INT16S NoOfLines, + GuiConst_INT16S ActiveLine); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_Redraw +// ======================= +// +// Redraws dynamic parts of scroll box (new item type style). +// For complete redraw use GuiLib_ScrollBox_Init. +// +// Input: +// ------ +// Scroll box index +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_ScrollBox_Redraw( + GuiConst_INT8U ScrollBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_RedrawLine +// =========================== +// +// Redraws single line of scroll box (new item type style). +// If line is not visible no action is performed. +// +// Input: +// ------ +// Scroll box index +// Scroll line to redraw, index zero is first line in scroll box list +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_ScrollBox_RedrawLine( + GuiConst_INT8U ScrollBoxIndex, + GuiConst_INT16U ScrollLine); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_Close +// ====================== +// +// Closes a scroll box (new item type style). +// +// Input: +// ------ +// Scroll box index +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_ScrollBox_Close( + GuiConst_INT8U ScrollBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_Down +// ===================== +// +// Makes next scroll line active, and scrolls list if needed (new item type +// style). +// +// Input: +// ------ +// Scroll box index +// +// Output: +// ------- +// 0 = No change, list already at bottom +// 1 = Active scroll line changed +// +extern GuiConst_INT8U GuiLib_ScrollBox_Down( + GuiConst_INT8U ScrollBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_Up +// =================== +// +// Makes previous scroll line active, and scrolls list if needed (new item type +// style). +// +// Input: +// ------ +// Scroll box index +// +// Output: +// ------- +// 0 = No change, list already at top +// 1 = Active scroll line changed +// +extern GuiConst_INT8U GuiLib_ScrollBox_Up( + GuiConst_INT8U ScrollBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_Home +// ===================== +// +// Makes first scroll line active, and scrolls list if needed (new item type +// style). +// +// Input: +// ------ +// Scroll box index +// +// Output: +// ------- +// 0 = No change, list already at top +// 1 = Active scroll line changed +// +extern GuiConst_INT8U GuiLib_ScrollBox_Home( + GuiConst_INT8U ScrollBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_End +// ==================== +// +// Makes last scroll line active, and scrolls list if needed (new item type +// style). +// +// Input: +// ------ +// Scroll box index +// +// Output: +// ------- +// 0 = No change, list already at bottom +// 1 = Active scroll line changed +// +extern GuiConst_INT8U GuiLib_ScrollBox_End( + GuiConst_INT8U ScrollBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_To_Line +// ======================== +// +// Makes specified scroll line active, and scrolls list if needed (new item type +// style). +// +// Input: +// ------ +// Scroll box index +// New scroll line, -1 means no active scroll line +// +// Output: +// ------- +// 0 = No change, list already at specified line +// 1 = Active scroll line changed +// +extern GuiConst_INT8U GuiLib_ScrollBox_To_Line( + GuiConst_INT8U ScrollBoxIndex, + GuiConst_INT16S NewLine); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_SetLineMarker +// ============================== +// +// Sets scroll marker position and line count. +// Scroll marker index 0 (active scroll line) can only cover 1 scroll line. +// Display only changes after subsequent GuiLib_ScrollBox_Redraw call. +// +// Input: +// ------ +// Scroll box index +// Scroll marker index +// Marker start line, -1 means no marker +// Marker line count (clipped to a maximum of 1 for marker index 0) +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_ScrollBox_SetLineMarker( + GuiConst_INT8U ScrollBoxIndex, + GuiConst_INT16U ScrollLineMarkerIndex, + GuiConst_INT16S StartLine, + GuiConst_INT16U Size); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_GetActiveLine +// ============================== +// +// Returns topmost scroll marker line of selected scroll box / marker. +// +// Input: +// ------ +// Scroll box index +// Scroll marker index (0 = active scroll line, >0 = secondary line markers) +// +// Output: +// ------- +// Index of topmost scroll marker line +// -1 = Error in parameters +// +extern GuiConst_INT16S GuiLib_ScrollBox_GetActiveLine( + GuiConst_INT8U ScrollBoxIndex, + GuiConst_INT16U ScrollLineMarkerIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_GetActiveLineCount +// =================================== +// +// Returns number of marked lines in selected scroll box / marker. +// +// Input: +// ------ +// Scroll box index +// Scroll marker index (0 = active scroll line, >0 = secondary line markers) +// +// Output: +// ------- +// Count of marked scroll lines +// -1 = Error in parameters +// Active scroll line (scroll marker index = 0) will always return 1 +// +extern GuiConst_INT16S GuiLib_ScrollBox_GetActiveLineCount( + GuiConst_INT8U ScrollBoxIndex, + GuiConst_INT16U ScrollLineMarkerIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_SetIndicator +// ============================= +// +// Sets scroll indicator position. +// Display only changes after subsequent GuiLib_ScrollBox_Redraw call. +// +// Input: +// ------ +// Scroll box index +// Indicator line, -1 means no indicator +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_ScrollBox_SetIndicator( + GuiConst_INT8U ScrollBoxIndex, + GuiConst_INT16S StartLine); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_SetTopLine +// =========================== +// +// Sets topmost visible scroll line of selected scroll box. +// Display only changes after subsequent GuiLib_ScrollBox_Redraw call. +// If simultaneously setting line marker position make sure top line setting is +// last action before GuiLib_ScrollBox_Redraw call. +// +// Input: +// ------ +// Scroll box index +// Index of topmost visible scroll line +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_ScrollBox_SetTopLine( + GuiConst_INT8U ScrollBoxIndex, + GuiConst_INT16S TopLine); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_ScrollBox_GetTopLine +// =========================== +// +// Returns topmost visible scroll line of selected scroll box. +// +// Input: +// ------ +// Scroll box index +// +// Output: +// ------- +// Index of topmost visible scroll line +// -1 = Error in parameters +// +extern GuiConst_INT16S GuiLib_ScrollBox_GetTopLine( + GuiConst_INT8U ScrollBoxIndex); +// ----------------------------------------------------------------------------- + +#endif + + +#ifdef GuiConst_ITEM_GRAPH_INUSE + +// ============================================================================= +// GuiLib_Graph_Close +// ================== +// +// Closes a graph, so that no futher actions can be accomplished with it. +// Memory assigned to datasets must be freed independently. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +GuiConst_INT8U GuiLib_Graph_Close( + GuiConst_INT8U GraphIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_AddDataSet +// ======================= +// +// Adds a data set to a graph. The data set must be created in the structure, +// but is not shown before this function is called. +// Memory must be assigned independently for the data set. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// DataSetIndex: Index of data set in the graph (index is zero based). +// XAxisIndex: Index of X-axis to use. +// YAxisIndex: Index of Y-axis to use. +// DataPtr: Pointer to an array of data points, where each data point is a 32 +// bit signed X,Y entity of type GuiLib_GraphDataPoint. +// DataSize: Maximum number of data points possible in the data set. +// DataCount: Number of active data points in the data set. +// DataFirst: Index of first active data point (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_AddDataSet( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U DataSetIndex, + GuiConst_INT8U XAxisIndex, + GuiConst_INT8U YAxisIndex, + GuiLib_GraphDataPoint *DataPtr, + GuiConst_INT16U DataSize, + GuiConst_INT16U DataCount, + GuiConst_INT16U DataFirst); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_RemoveDataSet +// ========================== +// +// Removes a data set from a graph. +// Memory must be released independently for the data set. +// Nothing is drawn in this function. +// +//------------------------------------------------------------------------------ +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// DataSetIndex: Index of data set in the graph (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_RemoveDataSet( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U DataSetIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_AddDataPoint +// ========================= +// +// Adds a data point to a data set. The data set must have sufficient space for +// the new data point. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// DataSetIndex: Index of data set in the graph (index is zero based). +// DataPointX, DataPointY: The data point. +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_AddDataPoint( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U DataSetIndex, + GuiConst_INT32S DataPointX, + GuiConst_INT32S DataPointY); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_ShowDataSet +// ======================== +// +// Marks a data set as visible. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// DataSetIndex: Index of data set in the graph (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_ShowDataSet( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U DataSetIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_HideDataSet +// ======================== +// +// Marks a data set as invisible. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// DataSetIndex: Index of data set in the graph (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_HideDataSet( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U DataSetIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_ShowXAxis +// ====================== +// +// Marks an X-axis as visible. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// AxisIndex: Index of X axis in the graph (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_ShowXAxis( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U AxisIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_HideXAxis +// ====================== +// +// Marks an X-axis as invisible. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// AxisIndex: Index of X axis in the graph (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_HideXAxis( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U AxisIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_ShowYAxis +// ====================== +// +// Marks an Y-axis as visible. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// AxisIndex: Index of Y axis in the graph (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_ShowYAxis( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U AxisIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_HideYAxis +// ====================== +// +// Marks an Y-axis as invisible. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// AxisIndex: Index of Y axis in the graph (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_HideYAxis( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U AxisIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_SetXAxisRange +// ========================== +// +// Changes an X-axis range. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// AxisIndex: Index of X axis in the graph (index is zero based). +// MinValue, MaxValue: Limits of the X axis range. +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_SetXAxisRange( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U AxisIndex, + GuiConst_INT32S MinValue, + GuiConst_INT32S MaxValue); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_SetYAxisRange +// ========================== +// +// Changes an Y-axis range. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// AxisIndex: Index of Y axis in the graph (index is zero based). +// MinValue, MaxValue: Limits of the Y axis range. +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_SetYAxisRange( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U AxisIndex, + GuiConst_INT32S MinValue, + GuiConst_INT32S MaxValue); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_ResetXAxisOrigin +// ============================= +// +// Resets the X-axis origin to the original origin. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// AxisIndex: Index of X axis in the graph (index is zero based). Index -1 will +// reset all defined X axes. +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_ResetXAxisOrigin( + GuiConst_INT8U GraphIndex, + GuiConst_INT8S AxisIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_OffsetXAxisOrigin +// ============================== +// +// Adjusts the X-axis origin. Useful for dynamic graphs with moving X-axis. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// AxisIndex: Index of X axis in the graph (index is zero based). Index -1 will +// offset all defined X axes. This only makes sense if all X axes +// have identical scaling. +// Offset: Amount of movement of the X axis origin. +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_OffsetXAxisOrigin( + GuiConst_INT8U GraphIndex, + GuiConst_INT8S AxisIndex, + GuiConst_INT32S Offset); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_ResetYAxisOrigin +// ============================= +// +// Resets the Y-axis origin to the original origin. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// AxisIndex: Index of Y axis in the graph (index is zero based). Index -1 will +// reset all defined Y axes. +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_ResetYAxisOrigin( + GuiConst_INT8U GraphIndex, + GuiConst_INT8S AxisIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_OffsetYAxisOrigin +// ============================== +// +// Adjusts the Y-axis origin. Useful for dynamic graphs with moving Y-axis. +// Nothing is drawn in this function. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// AxisIndex: Index of Y axis in the graph (index is zero based). Index -1 will +// offset all defined Y axes. This only makes sense if all Y axes +// have identical scaling. +// Offset: Amount of movement of the Y axis origin. +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_OffsetYAxisOrigin( + GuiConst_INT8U GraphIndex, + GuiConst_INT8S AxisIndex, + GuiConst_INT32S Offset); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_Redraw +// =================== +// +// Redraws the complete graph, including background, axes, and data sets. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_Redraw( + GuiConst_INT8U GraphIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_DrawAxes +// ===================== +// +// Redraws the graph, including background and axes, but excluding data sets. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_DrawAxes( + GuiConst_INT8U GraphIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_DrawDataSet +// ======================== +// +// Redraws a data set. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// DataSetIndex: Index of data set in the graph (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_DrawDataSet( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U DataSetIndex); +//------------------------------------------------------------------------------ + + +// ============================================================================= +// GuiLib_Graph_DrawDataPoint +// ========================== +// +// Draws a single data point in a data set. +// +// Input: +// ------ +// GraphIndex: Index of graph (index is zero based). +// DataSetIndex: Index of data set in the graph (index is zero based). +// DataIndex: Index of point in the data set (index is zero based). +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_Graph_DrawDataPoint( + GuiConst_INT8U GraphIndex, + GuiConst_INT8U DataSetIndex, + GuiConst_INT16U DataIndex); +// ----------------------------------------------------------------------------- + +#endif + + +#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE + +// ============================================================================= +// GuiLib_GraphicsFilter_Init +// ========================== +// +// Initializes a graphics filter call-back function. +// +// Input: +// ------ +// GraphicsFilterIndex: Index of graphics filter (index is zero based). +// FilterFuncPtr: Pointer to user-defined call-back filter function. +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +//------------------------------------------------------------------------------ +extern GuiConst_INT8U GuiLib_GraphicsFilter_Init( + GuiConst_INT8U GraphicsFilterIndex, + void (*FilterFuncPtr) + (GuiConst_INT8U *DestAddress, + GuiConst_INT16U DestLineSize, + GuiConst_INT8U *SourceAddress, + GuiConst_INT16U SourceLineSize, + GuiConst_INT16U Width, + GuiConst_INT16U Height, + GuiConst_INT32S FilterPars[10])); +#endif + + +// ============================================================================= +// GuiLib_TextBox_Scroll_Up +// ======================== +// +// Scrolls text box contents one text line up. +// +// Input: +// ------ +// Text box index +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_Up( + GuiConst_INT8U TextBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_Down +// ========================== +// +// Scrolls text box contents one text line down. +// +// Input: +// ------ +// Text box index +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_Down( + GuiConst_INT8U TextBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_Home +// ========================== +// +// Scrolls text box contents to the top. +// +// Input: +// ------ +// Text box index +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_Home( + GuiConst_INT8U TextBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_End +// ========================= +// +// Scrolls text box contents to the bottom. +// +// Input: +// ------ +// Text box index +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_End( + GuiConst_INT8U TextBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_To_Line +// ============================= +// +// Scrolls text box contents to a specific text line. +// +// Input: +// ------ +// Text box index +// Text line +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_To_Line( + GuiConst_INT8U TextBoxIndex, + GuiConst_INT16S NewLine); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_Up_Pixel +// ============================== +// +// Scrolls text box contents one pixel position up. +// +// Input: +// ------ +// Text box index +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_Up_Pixel( + GuiConst_INT8U TextBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_Down_Pixel +// ================================ +// +// Scrolls text box contents one pixel position down. +// +// Input: +// ------ +// Text box index +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_Down_Pixel( + GuiConst_INT8U TextBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_Home_Pixel +// ================================ +// +// Scrolls text box contents to the top. +// +// Input: +// ------ +// Text box index +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_Home_Pixel( + GuiConst_INT8U TextBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_End_Pixel +// =============================== +// +// Scrolls text box contents to the bottom. +// +// Input: +// ------ +// Text box index +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_End_Pixel( + GuiConst_INT8U TextBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_To_PixelLine +// ================================== +// +// Scrolls text box contents to a specific pixel position. +// +// Input: +// ------ +// Text box index +// Pixel line +// +// Output: +// ------- +// 0 = Error in parameters +// 1 = Ok +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_To_PixelLine( + GuiConst_INT8U TextBoxIndex, + GuiConst_INT16S NewPixelLine); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_Get_Pos +// ============================= +// +// Returns status of topmost visible text line of text box. +// +// Input: +// ------ +// Text box index +// +// Output: +// ------- +// GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX Illegal text box index +// GuiLib_TEXTBOX_SCROLL_INSIDE_BLOCK Text box scrolled mid way +// GuiLib_TEXTBOX_SCROLL_AT_HOME Text box scrolled to the top +// GuiLib_TEXTBOX_SCROLL_AT_END Text box scrolled to the bottom +// GuiLib_TEXTBOX_SCROLL_ABOVE_HOME Text box scrolled above the top +// GuiLib_TEXTBOX_SCROLL_BELOW_END Text box scrolled below the bottom +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_Get_Pos( + GuiConst_INT8U TextBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_Get_Pos_Pixel +// =================================== +// +// Returns status of topmost visible pixel position of text box. +// +// Input: +// ------ +// Text box index +// +// Output: +// ------- +// GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX Illegal text box index +// GuiLib_TEXTBOX_SCROLL_INSIDE_BLOCK Text box scrolled mid way +// GuiLib_TEXTBOX_SCROLL_AT_HOME Text box scrolled to the top +// GuiLib_TEXTBOX_SCROLL_AT_END Text box scrolled to the bottom +// GuiLib_TEXTBOX_SCROLL_ABOVE_HOME Text box scrolled above the top +// GuiLib_TEXTBOX_SCROLL_BELOW_END Text box scrolled below the bottom +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_Get_Pos_Pixel( + GuiConst_INT8U TextBoxIndex); +// ----------------------------------------------------------------------------- + + +// ============================================================================= +// GuiLib_TextBox_Scroll_FitsInside +// ================================ +// +// Determines if a text fits completely inside a text box without scrolling. +// +// Input: +// ------ +// Text box index +// +// Output: +// ------- +// 0 = No +// 1 = Yes +// +extern GuiConst_INT8U GuiLib_TextBox_Scroll_FitsInside( + GuiConst_INT8U TextBoxIndex); +// ----------------------------------------------------------------------------- + + +#ifdef GuiConst_REMOTE_DATA +// ============================================================================= +// GuiLib_RemoteCheck +// ================== +// +// Checks if binary remote data file has correct ID. +// +// Input: +// ------ +// None +// +// Output: +// ------- +// 0 = Illegal ID +// 1 = ID accepted +// +extern GuiConst_INT8U GuiLib_RemoteCheck(void); +// ----------------------------------------------------------------------------- +#endif + + + +#ifdef GuiConst_CODEVISION_COMPILER +#pragma used- +#endif +// ----------------------------------------------------------------------------- + + +#ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ +} + +#endif + +#endif +