You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1052 lines
45 KiB
C
1052 lines
45 KiB
C
3 weeks ago
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- µGUI - Generic GUI module (C)Achim Döbler, 2015 -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
// µGUI is a generic GUI module for embedded systems.
|
||
|
// This is a free software that is open for education, research and commercial
|
||
|
// developments under license policy of following terms.
|
||
|
//
|
||
|
// Copyright (C) 2015, Achim Döbler, all rights reserved.
|
||
|
// URL: http://www.embeddedlightning.com/
|
||
|
//
|
||
|
// * The µGUI module is a free software and there is NO WARRANTY.
|
||
|
// * No restriction on use. You can use, modify and redistribute it for
|
||
|
// personal, non-profit or commercial products UNDER YOUR RESPONSIBILITY.
|
||
|
// * Redistributions of source code must retain the above copyright notice.
|
||
|
//
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
#ifndef __UGUI_H
|
||
|
#define __UGUI_H
|
||
|
|
||
|
#include "ugui_config.h"
|
||
|
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- µGUI FONTS -- */
|
||
|
/* -- Source: http://www.mikrocontroller.net/user/show/benedikt -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
typedef enum
|
||
|
{
|
||
|
FONT_TYPE_1BPP,
|
||
|
FONT_TYPE_8BPP
|
||
|
} FONT_TYPE;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
unsigned char* p;
|
||
|
FONT_TYPE font_type;
|
||
|
UG_S16 char_width;
|
||
|
UG_S16 char_height;
|
||
|
UG_U16 start_char;
|
||
|
UG_U16 end_char;
|
||
|
UG_U8 *widths;
|
||
|
} UG_FONT;
|
||
|
|
||
|
#ifdef USE_FONT_4X6
|
||
|
extern const UG_FONT FONT_4X6;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_5X8
|
||
|
extern const UG_FONT FONT_5X8;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_5X12
|
||
|
extern const UG_FONT FONT_5X12;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_6X8
|
||
|
extern const UG_FONT FONT_6X8;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_6X10
|
||
|
extern const UG_FONT FONT_6X10;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_7X12
|
||
|
extern const UG_FONT FONT_7X12;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_8X8
|
||
|
extern const UG_FONT FONT_8X8;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_8X12
|
||
|
extern const UG_FONT FONT_8X12;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_8X12_CYRILLIC
|
||
|
extern const UG_FONT FONT_8X12;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_8X14
|
||
|
extern const UG_FONT FONT_8X14;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_10X16
|
||
|
extern const UG_FONT FONT_10X16;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_12X16
|
||
|
extern const UG_FONT FONT_12X16;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_12X20
|
||
|
extern const UG_FONT FONT_12X20;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_16X26
|
||
|
extern const UG_FONT FONT_16X26;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_22X36
|
||
|
extern const UG_FONT FONT_22X36;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_24X40
|
||
|
extern const UG_FONT FONT_24X40;
|
||
|
#endif
|
||
|
#ifdef USE_FONT_32X53
|
||
|
extern const UG_FONT FONT_32X53;
|
||
|
#endif
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- TYPEDEFS -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
typedef struct S_OBJECT UG_OBJECT;
|
||
|
typedef struct S_WINDOW UG_WINDOW;
|
||
|
typedef UG_S8 UG_RESULT;
|
||
|
#ifdef USE_COLOR_RGB888
|
||
|
typedef UG_U32 UG_COLOR;
|
||
|
#endif
|
||
|
#ifdef USE_COLOR_RGB565
|
||
|
typedef UG_U16 UG_COLOR;
|
||
|
#endif
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- DEFINES -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
#ifndef NULL
|
||
|
#define NULL ((void*) 0)
|
||
|
#endif
|
||
|
|
||
|
/* Alignments */
|
||
|
#define ALIGN_H_LEFT (1<<0)
|
||
|
#define ALIGN_H_CENTER (1<<1)
|
||
|
#define ALIGN_H_RIGHT (1<<2)
|
||
|
#define ALIGN_V_TOP (1<<3)
|
||
|
#define ALIGN_V_CENTER (1<<4)
|
||
|
#define ALIGN_V_BOTTOM (1<<5)
|
||
|
#define ALIGN_BOTTOM_RIGHT (ALIGN_V_BOTTOM|ALIGN_H_RIGHT)
|
||
|
#define ALIGN_BOTTOM_CENTER (ALIGN_V_BOTTOM|ALIGN_H_CENTER)
|
||
|
#define ALIGN_BOTTOM_LEFT (ALIGN_V_BOTTOM|ALIGN_H_LEFT)
|
||
|
#define ALIGN_CENTER_RIGHT (ALIGN_V_CENTER|ALIGN_H_RIGHT)
|
||
|
#define ALIGN_CENTER (ALIGN_V_CENTER|ALIGN_H_CENTER)
|
||
|
#define ALIGN_CENTER_LEFT (ALIGN_V_CENTER|ALIGN_H_LEFT)
|
||
|
#define ALIGN_TOP_RIGHT (ALIGN_V_TOP|ALIGN_H_RIGHT)
|
||
|
#define ALIGN_TOP_CENTER (ALIGN_V_TOP|ALIGN_H_CENTER)
|
||
|
#define ALIGN_TOP_LEFT (ALIGN_V_TOP|ALIGN_H_LEFT)
|
||
|
|
||
|
/* Default IDs */
|
||
|
#define OBJ_ID_0 0
|
||
|
#define OBJ_ID_1 1
|
||
|
#define OBJ_ID_2 2
|
||
|
#define OBJ_ID_3 3
|
||
|
#define OBJ_ID_4 4
|
||
|
#define OBJ_ID_5 5
|
||
|
#define OBJ_ID_6 6
|
||
|
#define OBJ_ID_7 7
|
||
|
#define OBJ_ID_8 8
|
||
|
#define OBJ_ID_9 9
|
||
|
#define OBJ_ID_10 10
|
||
|
#define OBJ_ID_11 11
|
||
|
#define OBJ_ID_12 12
|
||
|
#define OBJ_ID_13 13
|
||
|
#define OBJ_ID_14 14
|
||
|
#define OBJ_ID_15 15
|
||
|
#define OBJ_ID_16 16
|
||
|
#define OBJ_ID_17 17
|
||
|
#define OBJ_ID_18 18
|
||
|
#define OBJ_ID_19 19
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- FUNCTION RESULTS -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
#define UG_RESULT_FAIL -1
|
||
|
#define UG_RESULT_OK 0
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- UNIVERSAL STRUCTURES -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* Area structure */
|
||
|
typedef struct
|
||
|
{
|
||
|
UG_S16 xs;
|
||
|
UG_S16 ys;
|
||
|
UG_S16 xe;
|
||
|
UG_S16 ye;
|
||
|
} UG_AREA;
|
||
|
|
||
|
/* Text structure */
|
||
|
typedef struct
|
||
|
{
|
||
|
char* str;
|
||
|
const UG_FONT* font;
|
||
|
UG_AREA a;
|
||
|
UG_COLOR fc;
|
||
|
UG_COLOR bc;
|
||
|
UG_U8 align;
|
||
|
UG_S16 h_space;
|
||
|
UG_S16 v_space;
|
||
|
} UG_TEXT;
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- BITMAP -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
typedef struct
|
||
|
{
|
||
|
void* p;
|
||
|
UG_U16 width;
|
||
|
UG_U16 height;
|
||
|
UG_U8 bpp;
|
||
|
UG_U8 colors;
|
||
|
} UG_BMP;
|
||
|
|
||
|
#define BMP_BPP_1 (1<<0)
|
||
|
#define BMP_BPP_2 (1<<1)
|
||
|
#define BMP_BPP_4 (1<<2)
|
||
|
#define BMP_BPP_8 (1<<3)
|
||
|
#define BMP_BPP_16 (1<<4)
|
||
|
#define BMP_BPP_32 (1<<5)
|
||
|
#define BMP_RGB888 (1<<0)
|
||
|
#define BMP_RGB565 (1<<1)
|
||
|
#define BMP_RGB555 (1<<2)
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- MESSAGE -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* Message structure */
|
||
|
typedef struct
|
||
|
{
|
||
|
UG_U8 type;
|
||
|
UG_U8 id;
|
||
|
UG_U8 sub_id;
|
||
|
UG_U8 event;
|
||
|
void* src;
|
||
|
} UG_MESSAGE;
|
||
|
|
||
|
/* Message types */
|
||
|
#define MSG_TYPE_NONE 0
|
||
|
#define MSG_TYPE_WINDOW 1
|
||
|
#define MSG_TYPE_OBJECT 2
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- TOUCH -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* Touch structure */
|
||
|
typedef struct
|
||
|
{
|
||
|
UG_U8 state;
|
||
|
UG_S16 xp;
|
||
|
UG_S16 yp;
|
||
|
} UG_TOUCH;
|
||
|
|
||
|
|
||
|
#define TOUCH_STATE_PRESSED 1
|
||
|
#define TOUCH_STATE_RELEASED 0
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- OBJECTS -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* Object structure */
|
||
|
struct S_OBJECT
|
||
|
{
|
||
|
UG_U8 state; /* object state */
|
||
|
UG_U8 touch_state; /* object touch state */
|
||
|
void (*update) (UG_WINDOW*,UG_OBJECT*); /* pointer to object-specific update function */
|
||
|
UG_AREA a_abs; /* absolute area of the object */
|
||
|
UG_AREA a_rel; /* relative area of the object */
|
||
|
UG_U8 type; /* object type */
|
||
|
UG_U8 id; /* object ID */
|
||
|
UG_U8 event; /* object-specific events */
|
||
|
void* data; /* pointer to object-specific data */
|
||
|
};
|
||
|
|
||
|
/* Currently supported objects */
|
||
|
#define OBJ_TYPE_NONE 0
|
||
|
#define OBJ_TYPE_BUTTON 1
|
||
|
#define OBJ_TYPE_TEXTBOX 2
|
||
|
#define OBJ_TYPE_IMAGE 3
|
||
|
#define OBJ_TYPE_CHECKBOX 4
|
||
|
|
||
|
/* Standard object events */
|
||
|
#define OBJ_EVENT_NONE 0
|
||
|
#define OBJ_EVENT_CLICKED 1
|
||
|
#ifdef USE_PRERENDER_EVENT
|
||
|
#define OBJ_EVENT_PRERENDER 2
|
||
|
#endif
|
||
|
#ifdef USE_POSTRENDER_EVENT
|
||
|
#define OBJ_EVENT_POSTRENDER 3
|
||
|
#endif
|
||
|
#define OBJ_EVENT_PRESSED 4
|
||
|
#define OBJ_EVENT_RELEASED 5
|
||
|
|
||
|
|
||
|
/* Object states */
|
||
|
#define OBJ_STATE_FREE (1<<0)
|
||
|
#define OBJ_STATE_VALID (1<<1)
|
||
|
#define OBJ_STATE_BUSY (1<<2)
|
||
|
#define OBJ_STATE_VISIBLE (1<<3)
|
||
|
#define OBJ_STATE_ENABLE (1<<4)
|
||
|
#define OBJ_STATE_UPDATE (1<<5)
|
||
|
#define OBJ_STATE_REDRAW (1<<6)
|
||
|
#define OBJ_STATE_TOUCH_ENABLE (1<<7)
|
||
|
#define OBJ_STATE_INIT (OBJ_STATE_FREE | OBJ_STATE_VALID)
|
||
|
|
||
|
/* Object touch states */
|
||
|
#define OBJ_TOUCH_STATE_CHANGED (1<<0)
|
||
|
#define OBJ_TOUCH_STATE_PRESSED_ON_OBJECT (1<<1)
|
||
|
#define OBJ_TOUCH_STATE_PRESSED_OUTSIDE_OBJECT (1<<2)
|
||
|
#define OBJ_TOUCH_STATE_RELEASED_ON_OBJECT (1<<3)
|
||
|
#define OBJ_TOUCH_STATE_RELEASED_OUTSIDE_OBJECT (1<<4)
|
||
|
#define OBJ_TOUCH_STATE_IS_PRESSED_ON_OBJECT (1<<5)
|
||
|
#define OBJ_TOUCH_STATE_IS_PRESSED (1<<6)
|
||
|
#define OBJ_TOUCH_STATE_CLICK_ON_OBJECT (1<<7)
|
||
|
#define OBJ_TOUCH_STATE_INIT 0
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- WINDOW -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* Title structure */
|
||
|
typedef struct
|
||
|
{
|
||
|
char* str;
|
||
|
const UG_FONT* font;
|
||
|
UG_S8 h_space;
|
||
|
UG_S8 v_space;
|
||
|
UG_U8 align;
|
||
|
UG_COLOR fc;
|
||
|
UG_COLOR bc;
|
||
|
UG_COLOR ifc;
|
||
|
UG_COLOR ibc;
|
||
|
UG_U8 height;
|
||
|
} UG_TITLE;
|
||
|
|
||
|
/* Window structure */
|
||
|
struct S_WINDOW
|
||
|
{
|
||
|
UG_U8 objcnt;
|
||
|
UG_OBJECT* objlst;
|
||
|
UG_U8 state;
|
||
|
UG_COLOR fc;
|
||
|
UG_COLOR bc;
|
||
|
UG_S16 xs;
|
||
|
UG_S16 ys;
|
||
|
UG_S16 xe;
|
||
|
UG_S16 ye;
|
||
|
UG_U8 style;
|
||
|
UG_TITLE title;
|
||
|
void (*cb)( UG_MESSAGE* );
|
||
|
};
|
||
|
|
||
|
/* Window states */
|
||
|
#define WND_STATE_FREE (1<<0)
|
||
|
#define WND_STATE_VALID (1<<1)
|
||
|
#define WND_STATE_BUSY (1<<2)
|
||
|
#define WND_STATE_VISIBLE (1<<3)
|
||
|
#define WND_STATE_ENABLE (1<<4)
|
||
|
#define WND_STATE_UPDATE (1<<5)
|
||
|
#define WND_STATE_REDRAW_TITLE (1<<6)
|
||
|
|
||
|
/* Window styles */
|
||
|
#define WND_STYLE_2D (0<<0)
|
||
|
#define WND_STYLE_3D (1<<0)
|
||
|
#define WND_STYLE_HIDE_TITLE (0<<1)
|
||
|
#define WND_STYLE_SHOW_TITLE (1<<1)
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- BUTTON OBJECT -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* Button structure */
|
||
|
typedef struct
|
||
|
{
|
||
|
UG_U8 state;
|
||
|
UG_U8 style;
|
||
|
UG_COLOR fc;
|
||
|
UG_COLOR bc;
|
||
|
UG_COLOR afc;
|
||
|
UG_COLOR abc;
|
||
|
const UG_FONT* font;
|
||
|
UG_U8 align;
|
||
|
UG_S8 h_space;
|
||
|
UG_S8 v_space;
|
||
|
char* str;
|
||
|
}UG_BUTTON;
|
||
|
|
||
|
/* Default button IDs */
|
||
|
#define BTN_ID_0 OBJ_ID_0
|
||
|
#define BTN_ID_1 OBJ_ID_1
|
||
|
#define BTN_ID_2 OBJ_ID_2
|
||
|
#define BTN_ID_3 OBJ_ID_3
|
||
|
#define BTN_ID_4 OBJ_ID_4
|
||
|
#define BTN_ID_5 OBJ_ID_5
|
||
|
#define BTN_ID_6 OBJ_ID_6
|
||
|
#define BTN_ID_7 OBJ_ID_7
|
||
|
#define BTN_ID_8 OBJ_ID_8
|
||
|
#define BTN_ID_9 OBJ_ID_9
|
||
|
#define BTN_ID_10 OBJ_ID_10
|
||
|
#define BTN_ID_11 OBJ_ID_11
|
||
|
#define BTN_ID_12 OBJ_ID_12
|
||
|
#define BTN_ID_13 OBJ_ID_13
|
||
|
#define BTN_ID_14 OBJ_ID_14
|
||
|
#define BTN_ID_15 OBJ_ID_15
|
||
|
#define BTN_ID_16 OBJ_ID_16
|
||
|
#define BTN_ID_17 OBJ_ID_17
|
||
|
#define BTN_ID_18 OBJ_ID_18
|
||
|
#define BTN_ID_19 OBJ_ID_19
|
||
|
|
||
|
/* Button states */
|
||
|
#define BTN_STATE_RELEASED (0<<0)
|
||
|
#define BTN_STATE_PRESSED (1<<0)
|
||
|
#define BTN_STATE_ALWAYS_REDRAW (1<<1)
|
||
|
|
||
|
/* Button style */
|
||
|
#define BTN_STYLE_2D (0<<0)
|
||
|
#define BTN_STYLE_3D (1<<0)
|
||
|
#define BTN_STYLE_TOGGLE_COLORS (1<<1)
|
||
|
#define BTN_STYLE_USE_ALTERNATE_COLORS (1<<2)
|
||
|
#define BTN_STYLE_NO_BORDERS (1<<3)
|
||
|
#define BTN_STYLE_NO_FILL (1<<4)
|
||
|
|
||
|
/* Button events */
|
||
|
#define BTN_EVENT_CLICKED OBJ_EVENT_CLICKED
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- CHECKBOX OBJECT -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* Checkbox structure */
|
||
|
typedef struct
|
||
|
{
|
||
|
UG_U8 state;
|
||
|
UG_U8 style;
|
||
|
UG_COLOR fc;
|
||
|
UG_COLOR bc;
|
||
|
UG_COLOR afc;
|
||
|
UG_COLOR abc;
|
||
|
const UG_FONT* font;
|
||
|
UG_U8 align;
|
||
|
UG_S8 h_space;
|
||
|
UG_S8 v_space;
|
||
|
char* str;
|
||
|
UG_U8 checked;
|
||
|
}UG_CHECKBOX;
|
||
|
|
||
|
/* Default checkbox IDs */
|
||
|
#define CHB_ID_0 OBJ_ID_0
|
||
|
#define CHB_ID_1 OBJ_ID_1
|
||
|
#define CHB_ID_2 OBJ_ID_2
|
||
|
#define CHB_ID_3 OBJ_ID_3
|
||
|
#define CHB_ID_4 OBJ_ID_4
|
||
|
#define CHB_ID_5 OBJ_ID_5
|
||
|
#define CHB_ID_6 OBJ_ID_6
|
||
|
#define CHB_ID_7 OBJ_ID_7
|
||
|
#define CHB_ID_8 OBJ_ID_8
|
||
|
#define CHB_ID_9 OBJ_ID_9
|
||
|
#define CHB_ID_10 OBJ_ID_10
|
||
|
#define CHB_ID_11 OBJ_ID_11
|
||
|
#define CHB_ID_12 OBJ_ID_12
|
||
|
#define CHB_ID_13 OBJ_ID_13
|
||
|
#define CHB_ID_14 OBJ_ID_14
|
||
|
#define CHB_ID_15 OBJ_ID_15
|
||
|
#define CHB_ID_16 OBJ_ID_16
|
||
|
#define CHB_ID_17 OBJ_ID_17
|
||
|
#define CHB_ID_18 OBJ_ID_18
|
||
|
#define CHB_ID_19 OBJ_ID_19
|
||
|
|
||
|
/* Checkbox states */
|
||
|
#define CHB_STATE_RELEASED (0<<0)
|
||
|
#define CHB_STATE_PRESSED (1<<0)
|
||
|
#define CHB_STATE_ALWAYS_REDRAW (1<<1)
|
||
|
|
||
|
/* Checkbox style */
|
||
|
#define CHB_STYLE_2D (0<<0)
|
||
|
#define CHB_STYLE_3D (1<<0)
|
||
|
#define CHB_STYLE_TOGGLE_COLORS (1<<1)
|
||
|
#define CHB_STYLE_USE_ALTERNATE_COLORS (1<<2)
|
||
|
#define CHB_STYLE_NO_BORDERS (1<<3)
|
||
|
#define CHB_STYLE_NO_FILL (1<<4)
|
||
|
|
||
|
/* Checkbox events */
|
||
|
#define CHB_EVENT_CLICKED OBJ_EVENT_CLICKED
|
||
|
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- TEXTBOX OBJECT -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* Textbox structure */
|
||
|
typedef struct
|
||
|
{
|
||
|
char* str;
|
||
|
const UG_FONT* font;
|
||
|
UG_U8 style;
|
||
|
UG_COLOR fc;
|
||
|
UG_COLOR bc;
|
||
|
UG_U8 align;
|
||
|
UG_S8 h_space;
|
||
|
UG_S8 v_space;
|
||
|
} UG_TEXTBOX;
|
||
|
|
||
|
/* Default textbox IDs */
|
||
|
#define TXB_ID_0 OBJ_ID_0
|
||
|
#define TXB_ID_1 OBJ_ID_1
|
||
|
#define TXB_ID_2 OBJ_ID_2
|
||
|
#define TXB_ID_3 OBJ_ID_3
|
||
|
#define TXB_ID_4 OBJ_ID_4
|
||
|
#define TXB_ID_5 OBJ_ID_5
|
||
|
#define TXB_ID_6 OBJ_ID_6
|
||
|
#define TXB_ID_7 OBJ_ID_7
|
||
|
#define TXB_ID_8 OBJ_ID_8
|
||
|
#define TXB_ID_9 OBJ_ID_9
|
||
|
#define TXB_ID_10 OBJ_ID_10
|
||
|
#define TXB_ID_11 OBJ_ID_11
|
||
|
#define TXB_ID_12 OBJ_ID_12
|
||
|
#define TXB_ID_13 OBJ_ID_13
|
||
|
#define TXB_ID_14 OBJ_ID_14
|
||
|
#define TXB_ID_15 OBJ_ID_15
|
||
|
#define TXB_ID_16 OBJ_ID_16
|
||
|
#define TXB_ID_17 OBJ_ID_17
|
||
|
#define TXB_ID_18 OBJ_ID_18
|
||
|
#define TXB_ID_19 OBJ_ID_19
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- IMAGE OBJECT -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* Image structure */
|
||
|
typedef struct
|
||
|
{
|
||
|
void* img;
|
||
|
UG_U8 type;
|
||
|
} UG_IMAGE;
|
||
|
|
||
|
/* Default image IDs */
|
||
|
#define IMG_ID_0 OBJ_ID_0
|
||
|
#define IMG_ID_1 OBJ_ID_1
|
||
|
#define IMG_ID_2 OBJ_ID_2
|
||
|
#define IMG_ID_3 OBJ_ID_3
|
||
|
#define IMG_ID_4 OBJ_ID_4
|
||
|
#define IMG_ID_5 OBJ_ID_5
|
||
|
#define IMG_ID_6 OBJ_ID_6
|
||
|
#define IMG_ID_7 OBJ_ID_7
|
||
|
#define IMG_ID_8 OBJ_ID_8
|
||
|
#define IMG_ID_9 OBJ_ID_9
|
||
|
#define IMG_ID_10 OBJ_ID_10
|
||
|
#define IMG_ID_11 OBJ_ID_11
|
||
|
#define IMG_ID_12 OBJ_ID_12
|
||
|
#define IMG_ID_13 OBJ_ID_13
|
||
|
#define IMG_ID_14 OBJ_ID_14
|
||
|
#define IMG_ID_15 OBJ_ID_15
|
||
|
#define IMG_ID_16 OBJ_ID_16
|
||
|
#define IMG_ID_17 OBJ_ID_17
|
||
|
#define IMG_ID_18 OBJ_ID_18
|
||
|
#define IMG_ID_19 OBJ_ID_19
|
||
|
|
||
|
/* Image types */
|
||
|
#define IMG_TYPE_BMP (1<<0)
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- µGUI DRIVER -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
typedef struct
|
||
|
{
|
||
|
void* driver;
|
||
|
UG_U8 state;
|
||
|
} UG_DRIVER;
|
||
|
|
||
|
#define DRIVER_REGISTERED (1<<0)
|
||
|
#define DRIVER_ENABLED (1<<1)
|
||
|
|
||
|
/* Supported drivers */
|
||
|
#define NUMBER_OF_DRIVERS 3
|
||
|
#define DRIVER_DRAW_LINE 0
|
||
|
#define DRIVER_FILL_FRAME 1
|
||
|
#define DRIVER_FILL_AREA 2
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- µGUI CORE STRUCTURE -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
typedef struct
|
||
|
{
|
||
|
void (*pset)(UG_S16,UG_S16,UG_COLOR);
|
||
|
UG_S16 x_dim;
|
||
|
UG_S16 y_dim;
|
||
|
UG_TOUCH touch;
|
||
|
UG_WINDOW* next_window;
|
||
|
UG_WINDOW* active_window;
|
||
|
UG_WINDOW* last_window;
|
||
|
struct
|
||
|
{
|
||
|
UG_S16 x_pos;
|
||
|
UG_S16 y_pos;
|
||
|
UG_S16 x_start;
|
||
|
UG_S16 y_start;
|
||
|
UG_S16 x_end;
|
||
|
UG_S16 y_end;
|
||
|
UG_COLOR fore_color;
|
||
|
UG_COLOR back_color;
|
||
|
} console;
|
||
|
UG_FONT font;
|
||
|
UG_S8 char_h_space;
|
||
|
UG_S8 char_v_space;
|
||
|
UG_COLOR fore_color;
|
||
|
UG_COLOR back_color;
|
||
|
UG_COLOR desktop_color;
|
||
|
UG_U8 state;
|
||
|
UG_DRIVER driver[NUMBER_OF_DRIVERS];
|
||
|
} UG_GUI;
|
||
|
|
||
|
#define UG_SATUS_WAIT_FOR_UPDATE (1<<0)
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- µGUI COLORS -- */
|
||
|
/* -- Source: http://www.rapidtables.com/web/color/RGB_Color.htm -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
#ifdef USE_COLOR_RGB565
|
||
|
#define C_MAROON 0x8000
|
||
|
#define C_DARK_RED 0x8800
|
||
|
#define C_BROWN 0xA145
|
||
|
#define C_FIREBRICK 0xB104
|
||
|
#define C_CRIMSON 0xD8A7
|
||
|
#define C_RED 0xF800
|
||
|
#define C_TOMATO 0xFB09
|
||
|
#define C_CORAL 0xFBEA
|
||
|
#define C_INDIAN_RED 0xCAEB
|
||
|
#define C_LIGHT_CORAL 0xEC10
|
||
|
#define C_DARK_SALMON 0xE4AF
|
||
|
#define C_SALMON 0xF40E
|
||
|
#define C_LIGHT_SALMON 0xFD0F
|
||
|
#define C_ORANGE_RED 0xFA20
|
||
|
#define C_DARK_ORANGE 0xFC60
|
||
|
#define C_ORANGE 0xFD20
|
||
|
#define C_GOLD 0xFEA0
|
||
|
#define C_DARK_GOLDEN_ROD 0xB421
|
||
|
#define C_GOLDEN_ROD 0xDD24
|
||
|
#define C_PALE_GOLDEN_ROD 0xEF35
|
||
|
#define C_DARK_KHAKI 0xBDAD
|
||
|
#define C_KHAKI 0xEF31
|
||
|
#define C_OLIVE 0x8400
|
||
|
#define C_YELLOW 0xFFE0
|
||
|
#define C_YELLOW_GREEN 0x9E66
|
||
|
#define C_DARK_OLIVE_GREEN 0x5346
|
||
|
#define C_OLIVE_DRAB 0x6C64
|
||
|
#define C_LAWN_GREEN 0x7FC0
|
||
|
#define C_CHART_REUSE 0x7FE0
|
||
|
#define C_GREEN_YELLOW 0xAFE6
|
||
|
#define C_DARK_GREEN 0x0320
|
||
|
#define C_GREEN 0x07E0
|
||
|
#define C_FOREST_GREEN 0x2444
|
||
|
#define C_LIME 0x07E0
|
||
|
#define C_LIME_GREEN 0x3666
|
||
|
#define C_LIGHT_GREEN 0x9772
|
||
|
#define C_PALE_GREEN 0x97D2
|
||
|
#define C_DARK_SEA_GREEN 0x8DD1
|
||
|
#define C_MEDIUM_SPRING_GREEN 0x07D3
|
||
|
#define C_SPRING_GREEN 0x07EF
|
||
|
#define C_SEA_GREEN 0x344B
|
||
|
#define C_MEDIUM_AQUA_MARINE 0x6675
|
||
|
#define C_MEDIUM_SEA_GREEN 0x3D8E
|
||
|
#define C_LIGHT_SEA_GREEN 0x2595
|
||
|
#define C_DARK_SLATE_GRAY 0x328A
|
||
|
#define C_TEAL 0x0410
|
||
|
#define C_DARK_CYAN 0x0451
|
||
|
#define C_AQUA 0x07FF
|
||
|
#define C_CYAN 0x07FF
|
||
|
#define C_LIGHT_CYAN 0xDFFF
|
||
|
#define C_DARK_TURQUOISE 0x0679
|
||
|
#define C_TURQUOISE 0x46F9
|
||
|
#define C_MEDIUM_TURQUOISE 0x4E99
|
||
|
#define C_PALE_TURQUOISE 0xAF7D
|
||
|
#define C_AQUA_MARINE 0x7FFA
|
||
|
#define C_POWDER_BLUE 0xAEFC
|
||
|
#define C_CADET_BLUE 0x64F3
|
||
|
#define C_STEEL_BLUE 0x4C16
|
||
|
#define C_CORN_FLOWER_BLUE 0x64BD
|
||
|
#define C_DEEP_SKY_BLUE 0x05FF
|
||
|
#define C_DODGER_BLUE 0x249F
|
||
|
#define C_LIGHT_BLUE 0xAEBC
|
||
|
#define C_SKY_BLUE 0x867D
|
||
|
#define C_LIGHT_SKY_BLUE 0x867E
|
||
|
#define C_MIDNIGHT_BLUE 0x18CE
|
||
|
#define C_NAVY 0x0010
|
||
|
#define C_DARK_BLUE 0x0011
|
||
|
#define C_MEDIUM_BLUE 0x0019
|
||
|
#define C_BLUE 0x001F
|
||
|
#define C_ROYAL_BLUE 0x435B
|
||
|
#define C_BLUE_VIOLET 0x897B
|
||
|
#define C_INDIGO 0x4810
|
||
|
#define C_DARK_SLATE_BLUE 0x49F1
|
||
|
#define C_SLATE_BLUE 0x6AD9
|
||
|
#define C_MEDIUM_SLATE_BLUE 0x7B5D
|
||
|
#define C_MEDIUM_PURPLE 0x939B
|
||
|
#define C_DARK_MAGENTA 0x8811
|
||
|
#define C_DARK_VIOLET 0x901A
|
||
|
#define C_DARK_ORCHID 0x9999
|
||
|
#define C_MEDIUM_ORCHID 0xBABA
|
||
|
#define C_PURPLE 0x8010
|
||
|
#define C_THISTLE 0xD5FA
|
||
|
#define C_PLUM 0xDD1B
|
||
|
#define C_VIOLET 0xEC1D
|
||
|
#define C_MAGENTA 0xF81F
|
||
|
#define C_ORCHID 0xDB9A
|
||
|
#define C_MEDIUM_VIOLET_RED 0xC0B0
|
||
|
#define C_PALE_VIOLET_RED 0xDB92
|
||
|
#define C_DEEP_PINK 0xF8B2
|
||
|
#define C_HOT_PINK 0xFB56
|
||
|
#define C_LIGHT_PINK 0xFDB7
|
||
|
#define C_PINK 0xFDF9
|
||
|
#define C_ANTIQUE_WHITE 0xF75A
|
||
|
#define C_BEIGE 0xF7BB
|
||
|
#define C_BISQUE 0xFF18
|
||
|
#define C_BLANCHED_ALMOND 0xFF59
|
||
|
#define C_WHEAT 0xF6F6
|
||
|
#define C_CORN_SILK 0xFFBB
|
||
|
#define C_LEMON_CHIFFON 0xFFD9
|
||
|
#define C_LIGHT_GOLDEN_ROD_YELLOW 0xF7DA
|
||
|
#define C_LIGHT_YELLOW 0xFFFB
|
||
|
#define C_SADDLE_BROWN 0x8A22
|
||
|
#define C_SIENNA 0x9A85
|
||
|
#define C_CHOCOLATE 0xD344
|
||
|
#define C_PERU 0xCC28
|
||
|
#define C_SANDY_BROWN 0xF52C
|
||
|
#define C_BURLY_WOOD 0xDDB0
|
||
|
#define C_TAN 0xD591
|
||
|
#define C_ROSY_BROWN 0xBC71
|
||
|
#define C_MOCCASIN 0xFF16
|
||
|
#define C_NAVAJO_WHITE 0xFEF5
|
||
|
#define C_PEACH_PUFF 0xFED6
|
||
|
#define C_MISTY_ROSE 0xFF1B
|
||
|
#define C_LAVENDER_BLUSH 0xFF7E
|
||
|
#define C_LINEN 0xF77C
|
||
|
#define C_OLD_LACE 0xFFBC
|
||
|
#define C_PAPAYA_WHIP 0xFF7A
|
||
|
#define C_SEA_SHELL 0xFFBD
|
||
|
#define C_MINT_CREAM 0xF7FE
|
||
|
#define C_SLATE_GRAY 0x7412
|
||
|
#define C_LIGHT_SLATE_GRAY 0x7453
|
||
|
#define C_LIGHT_STEEL_BLUE 0xAE1B
|
||
|
#define C_LAVENDER 0xE73E
|
||
|
#define C_FLORAL_WHITE 0xFFDD
|
||
|
#define C_ALICE_BLUE 0xEFBF
|
||
|
#define C_GHOST_WHITE 0xF7BF
|
||
|
#define C_HONEYDEW 0xEFFD
|
||
|
#define C_IVORY 0xFFFD
|
||
|
#define C_AZURE 0xEFFF
|
||
|
#define C_SNOW 0xFFDE
|
||
|
#define C_BLACK 0x0000
|
||
|
#define C_DIM_GRAY 0x6B4D
|
||
|
#define C_GRAY 0x8410
|
||
|
#define C_DARK_GRAY 0xAD55
|
||
|
#define C_SILVER 0xBDF7
|
||
|
#define C_LIGHT_GRAY 0xD69A
|
||
|
#define C_GAINSBORO 0xDEDB
|
||
|
#define C_WHITE_SMOKE 0xF7BE
|
||
|
#define C_WHITE 0xFFFF
|
||
|
#endif
|
||
|
|
||
|
#ifdef USE_COLOR_RGB888
|
||
|
#define C_MAROON 0x800000
|
||
|
#define C_DARK_RED 0x8B0000
|
||
|
#define C_BROWN 0xA52A2A
|
||
|
#define C_FIREBRICK 0xB22222
|
||
|
#define C_CRIMSON 0xDC143C
|
||
|
#define C_RED 0xFF0000
|
||
|
#define C_TOMATO 0xFF6347
|
||
|
#define C_CORAL 0xFF7F50
|
||
|
#define C_INDIAN_RED 0xCD5C5C
|
||
|
#define C_LIGHT_CORAL 0xF08080
|
||
|
#define C_DARK_SALMON 0xE9967A
|
||
|
#define C_SALMON 0xFA8072
|
||
|
#define C_LIGHT_SALMON 0xFFA07A
|
||
|
#define C_ORANGE_RED 0xFF4500
|
||
|
#define C_DARK_ORANGE 0xFF8C00
|
||
|
#define C_ORANGE 0xFFA500
|
||
|
#define C_GOLD 0xFFD700
|
||
|
#define C_DARK_GOLDEN_ROD 0xB8860B
|
||
|
#define C_GOLDEN_ROD 0xDAA520
|
||
|
#define C_PALE_GOLDEN_ROD 0xEEE8AA
|
||
|
#define C_DARK_KHAKI 0xBDB76B
|
||
|
#define C_KHAKI 0xF0E68C
|
||
|
#define C_OLIVE 0x808000
|
||
|
#define C_YELLOW 0xFFFF00
|
||
|
#define C_YELLOW_GREEN 0x9ACD32
|
||
|
#define C_DARK_OLIVE_GREEN 0x556B2F
|
||
|
#define C_OLIVE_DRAB 0x6B8E23
|
||
|
#define C_LAWN_GREEN 0x7CFC00
|
||
|
#define C_CHART_REUSE 0x7FFF00
|
||
|
#define C_GREEN_YELLOW 0xADFF2F
|
||
|
#define C_DARK_GREEN 0x006400
|
||
|
#define C_GREEN 0x00FF00
|
||
|
#define C_FOREST_GREEN 0x228B22
|
||
|
#define C_LIME 0x00FF00
|
||
|
#define C_LIME_GREEN 0x32CD32
|
||
|
#define C_LIGHT_GREEN 0x90EE90
|
||
|
#define C_PALE_GREEN 0x98FB98
|
||
|
#define C_DARK_SEA_GREEN 0x8FBC8F
|
||
|
#define C_MEDIUM_SPRING_GREEN 0x00FA9A
|
||
|
#define C_SPRING_GREEN 0x00FF7F
|
||
|
#define C_SEA_GREEN 0x2E8B57
|
||
|
#define C_MEDIUM_AQUA_MARINE 0x66CDAA
|
||
|
#define C_MEDIUM_SEA_GREEN 0x3CB371
|
||
|
#define C_LIGHT_SEA_GREEN 0x20B2AA
|
||
|
#define C_DARK_SLATE_GRAY 0x2F4F4F
|
||
|
#define C_TEAL 0x008080
|
||
|
#define C_DARK_CYAN 0x008B8B
|
||
|
#define C_AQUA 0x00FFFF
|
||
|
#define C_CYAN 0x00FFFF
|
||
|
#define C_LIGHT_CYAN 0xE0FFFF
|
||
|
#define C_DARK_TURQUOISE 0x00CED1
|
||
|
#define C_TURQUOISE 0x40E0D0
|
||
|
#define C_MEDIUM_TURQUOISE 0x48D1CC
|
||
|
#define C_PALE_TURQUOISE 0xAFEEEE
|
||
|
#define C_AQUA_MARINE 0x7FFFD4
|
||
|
#define C_POWDER_BLUE 0xB0E0E6
|
||
|
#define C_CADET_BLUE 0x5F9EA0
|
||
|
#define C_STEEL_BLUE 0x4682B4
|
||
|
#define C_CORN_FLOWER_BLUE 0x6495ED
|
||
|
#define C_DEEP_SKY_BLUE 0x00BFFF
|
||
|
#define C_DODGER_BLUE 0x1E90FF
|
||
|
#define C_LIGHT_BLUE 0xADD8E6
|
||
|
#define C_SKY_BLUE 0x87CEEB
|
||
|
#define C_LIGHT_SKY_BLUE 0x87CEFA
|
||
|
#define C_MIDNIGHT_BLUE 0x191970
|
||
|
#define C_NAVY 0x000080
|
||
|
#define C_DARK_BLUE 0x00008B
|
||
|
#define C_MEDIUM_BLUE 0x0000CD
|
||
|
#define C_BLUE 0x0000FF
|
||
|
#define C_ROYAL_BLUE 0x4169E1
|
||
|
#define C_BLUE_VIOLET 0x8A2BE2
|
||
|
#define C_INDIGO 0x4B0082
|
||
|
#define C_DARK_SLATE_BLUE 0x483D8B
|
||
|
#define C_SLATE_BLUE 0x6A5ACD
|
||
|
#define C_MEDIUM_SLATE_BLUE 0x7B68EE
|
||
|
#define C_MEDIUM_PURPLE 0x9370DB
|
||
|
#define C_DARK_MAGENTA 0x8B008B
|
||
|
#define C_DARK_VIOLET 0x9400D3
|
||
|
#define C_DARK_ORCHID 0x9932CC
|
||
|
#define C_MEDIUM_ORCHID 0xBA55D3
|
||
|
#define C_PURPLE 0x800080
|
||
|
#define C_THISTLE 0xD8BFD8
|
||
|
#define C_PLUM 0xDDA0DD
|
||
|
#define C_VIOLET 0xEE82EE
|
||
|
#define C_MAGENTA 0xFF00FF
|
||
|
#define C_ORCHID 0xDA70D6
|
||
|
#define C_MEDIUM_VIOLET_RED 0xC71585
|
||
|
#define C_PALE_VIOLET_RED 0xDB7093
|
||
|
#define C_DEEP_PINK 0xFF1493
|
||
|
#define C_HOT_PINK 0xFF69B4
|
||
|
#define C_LIGHT_PINK 0xFFB6C1
|
||
|
#define C_PINK 0xFFC0CB
|
||
|
#define C_ANTIQUE_WHITE 0xFAEBD7
|
||
|
#define C_BEIGE 0xF5F5DC
|
||
|
#define C_BISQUE 0xFFE4C4
|
||
|
#define C_BLANCHED_ALMOND 0xFFEBCD
|
||
|
#define C_WHEAT 0xF5DEB3
|
||
|
#define C_CORN_SILK 0xFFF8DC
|
||
|
#define C_LEMON_CHIFFON 0xFFFACD
|
||
|
#define C_LIGHT_GOLDEN_ROD_YELLOW 0xFAFAD2
|
||
|
#define C_LIGHT_YELLOW 0xFFFFE0
|
||
|
#define C_SADDLE_BROWN 0x8B4513
|
||
|
#define C_SIENNA 0xA0522D
|
||
|
#define C_CHOCOLATE 0xD2691E
|
||
|
#define C_PERU 0xCD853F
|
||
|
#define C_SANDY_BROWN 0xF4A460
|
||
|
#define C_BURLY_WOOD 0xDEB887
|
||
|
#define C_TAN 0xD2B48C
|
||
|
#define C_ROSY_BROWN 0xBC8F8F
|
||
|
#define C_MOCCASIN 0xFFE4B5
|
||
|
#define C_NAVAJO_WHITE 0xFFDEAD
|
||
|
#define C_PEACH_PUFF 0xFFDAB9
|
||
|
#define C_MISTY_ROSE 0xFFE4E1
|
||
|
#define C_LAVENDER_BLUSH 0xFFF0F5
|
||
|
#define C_LINEN 0xFAF0E6
|
||
|
#define C_OLD_LACE 0xFDF5E6
|
||
|
#define C_PAPAYA_WHIP 0xFFEFD5
|
||
|
#define C_SEA_SHELL 0xFFF5EE
|
||
|
#define C_MINT_CREAM 0xF5FFFA
|
||
|
#define C_SLATE_GRAY 0x708090
|
||
|
#define C_LIGHT_SLATE_GRAY 0x778899
|
||
|
#define C_LIGHT_STEEL_BLUE 0xB0C4DE
|
||
|
#define C_LAVENDER 0xE6E6FA
|
||
|
#define C_FLORAL_WHITE 0xFFFAF0
|
||
|
#define C_ALICE_BLUE 0xF0F8FF
|
||
|
#define C_GHOST_WHITE 0xF8F8FF
|
||
|
#define C_HONEYDEW 0xF0FFF0
|
||
|
#define C_IVORY 0xFFFFF0
|
||
|
#define C_AZURE 0xF0FFFF
|
||
|
#define C_SNOW 0xFFFAFA
|
||
|
#define C_BLACK 0x000000
|
||
|
#define C_DIM_GRAY 0x696969
|
||
|
#define C_GRAY 0x808080
|
||
|
#define C_DARK_GRAY 0xA9A9A9
|
||
|
#define C_SILVER 0xC0C0C0
|
||
|
#define C_LIGHT_GRAY 0xD3D3D3
|
||
|
#define C_GAINSBORO 0xDCDCDC
|
||
|
#define C_WHITE_SMOKE 0xF5F5F5
|
||
|
#define C_WHITE 0xFFFFFF
|
||
|
#endif
|
||
|
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* -- PROTOTYPES -- */
|
||
|
/* -------------------------------------------------------------------------------- */
|
||
|
/* Classic functions */
|
||
|
UG_S16 UG_Init( UG_GUI* g, void (*p)(UG_S16,UG_S16,UG_COLOR), UG_S16 x, UG_S16 y );
|
||
|
UG_S16 UG_SelectGUI( UG_GUI* g );
|
||
|
void UG_FontSelect( const UG_FONT* font );
|
||
|
void UG_FillScreen( UG_COLOR c );
|
||
|
void UG_FillFrame( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c );
|
||
|
void UG_FillRoundFrame( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_S16 r, UG_COLOR c );
|
||
|
void UG_DrawMesh( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c );
|
||
|
void UG_DrawFrame( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c );
|
||
|
void UG_DrawRoundFrame( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_S16 r, UG_COLOR c );
|
||
|
void UG_DrawPixel( UG_S16 x0, UG_S16 y0, UG_COLOR c );
|
||
|
void UG_DrawCircle( UG_S16 x0, UG_S16 y0, UG_S16 r, UG_COLOR c );
|
||
|
void UG_FillCircle( UG_S16 x0, UG_S16 y0, UG_S16 r, UG_COLOR c );
|
||
|
void UG_DrawArc( UG_S16 x0, UG_S16 y0, UG_S16 r, UG_U8 s, UG_COLOR c );
|
||
|
void UG_DrawLine( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c );
|
||
|
void UG_PutString( UG_S16 x, UG_S16 y, char* str );
|
||
|
void UG_PutChar( char chr, UG_S16 x, UG_S16 y, UG_COLOR fc, UG_COLOR bc );
|
||
|
void UG_ConsolePutString( char* str );
|
||
|
void UG_ConsoleSetArea( UG_S16 xs, UG_S16 ys, UG_S16 xe, UG_S16 ye );
|
||
|
void UG_ConsoleSetForecolor( UG_COLOR c );
|
||
|
void UG_ConsoleSetBackcolor( UG_COLOR c );
|
||
|
void UG_SetForecolor( UG_COLOR c );
|
||
|
void UG_SetBackcolor( UG_COLOR c );
|
||
|
UG_S16 UG_GetXDim( void );
|
||
|
UG_S16 UG_GetYDim( void );
|
||
|
void UG_FontSetHSpace( UG_U16 s );
|
||
|
void UG_FontSetVSpace( UG_U16 s );
|
||
|
|
||
|
/* Miscellaneous functions */
|
||
|
void UG_WaitForUpdate( void );
|
||
|
void UG_Update( void );
|
||
|
void UG_DrawBMP( UG_S16 xp, UG_S16 yp, UG_BMP* bmp );
|
||
|
void UG_TouchUpdate( UG_S16 xp, UG_S16 yp, UG_U8 state );
|
||
|
|
||
|
/* Driver functions */
|
||
|
void UG_DriverRegister( UG_U8 type, void* driver );
|
||
|
void UG_DriverEnable( UG_U8 type );
|
||
|
void UG_DriverDisable( UG_U8 type );
|
||
|
|
||
|
/* Window functions */
|
||
|
UG_RESULT UG_WindowCreate( UG_WINDOW* wnd, UG_OBJECT* objlst, UG_U8 objcnt, void (*cb)( UG_MESSAGE* ) );
|
||
|
UG_RESULT UG_WindowDelete( UG_WINDOW* wnd );
|
||
|
UG_RESULT UG_WindowShow( UG_WINDOW* wnd );
|
||
|
UG_RESULT UG_WindowHide( UG_WINDOW* wnd );
|
||
|
UG_RESULT UG_WindowResize( UG_WINDOW* wnd, UG_S16 xs, UG_S16 ys, UG_S16 xe, UG_S16 ye );
|
||
|
UG_RESULT UG_WindowAlert( UG_WINDOW* wnd );
|
||
|
UG_RESULT UG_WindowSetForeColor( UG_WINDOW* wnd, UG_COLOR fc );
|
||
|
UG_RESULT UG_WindowSetBackColor( UG_WINDOW* wnd, UG_COLOR bc );
|
||
|
UG_RESULT UG_WindowSetTitleTextColor( UG_WINDOW* wnd, UG_COLOR c );
|
||
|
UG_RESULT UG_WindowSetTitleColor( UG_WINDOW* wnd, UG_COLOR c );
|
||
|
UG_RESULT UG_WindowSetTitleInactiveTextColor( UG_WINDOW* wnd, UG_COLOR c );
|
||
|
UG_RESULT UG_WindowSetTitleInactiveColor( UG_WINDOW* wnd, UG_COLOR c );
|
||
|
UG_RESULT UG_WindowSetTitleText( UG_WINDOW* wnd, char* str );
|
||
|
UG_RESULT UG_WindowSetTitleTextFont( UG_WINDOW* wnd, const UG_FONT* font );
|
||
|
UG_RESULT UG_WindowSetTitleTextHSpace( UG_WINDOW* wnd, UG_S8 hs );
|
||
|
UG_RESULT UG_WindowSetTitleTextVSpace( UG_WINDOW* wnd, UG_S8 vs );
|
||
|
UG_RESULT UG_WindowSetTitleTextAlignment( UG_WINDOW* wnd, UG_U8 align );
|
||
|
UG_RESULT UG_WindowSetTitleHeight( UG_WINDOW* wnd, UG_U8 height );
|
||
|
UG_RESULT UG_WindowSetXStart( UG_WINDOW* wnd, UG_S16 xs );
|
||
|
UG_RESULT UG_WindowSetYStart( UG_WINDOW* wnd, UG_S16 ys );
|
||
|
UG_RESULT UG_WindowSetXEnd( UG_WINDOW* wnd, UG_S16 xe );
|
||
|
UG_RESULT UG_WindowSetYEnd( UG_WINDOW* wnd, UG_S16 ye );
|
||
|
UG_RESULT UG_WindowSetStyle( UG_WINDOW* wnd, UG_U8 style );
|
||
|
UG_COLOR UG_WindowGetForeColor( UG_WINDOW* wnd );
|
||
|
UG_COLOR UG_WindowGetBackColor( UG_WINDOW* wnd );
|
||
|
UG_COLOR UG_WindowGetTitleTextColor( UG_WINDOW* wnd );
|
||
|
UG_COLOR UG_WindowGetTitleColor( UG_WINDOW* wnd );
|
||
|
UG_COLOR UG_WindowGetTitleInactiveTextColor( UG_WINDOW* wnd );
|
||
|
UG_COLOR UG_WindowGetTitleInactiveColor( UG_WINDOW* wnd );
|
||
|
char* UG_WindowGetTitleText( UG_WINDOW* wnd );
|
||
|
UG_FONT* UG_WindowGetTitleTextFont( UG_WINDOW* wnd );
|
||
|
UG_S8 UG_WindowGetTitleTextHSpace( UG_WINDOW* wnd );
|
||
|
UG_S8 UG_WindowGetTitleTextVSpace( UG_WINDOW* wnd );
|
||
|
UG_U8 UG_WindowGetTitleTextAlignment( UG_WINDOW* wnd );
|
||
|
UG_U8 UG_WindowGetTitleHeight( UG_WINDOW* wnd );
|
||
|
UG_S16 UG_WindowGetXStart( UG_WINDOW* wnd );
|
||
|
UG_S16 UG_WindowGetYStart( UG_WINDOW* wnd );
|
||
|
UG_S16 UG_WindowGetXEnd( UG_WINDOW* wnd );
|
||
|
UG_S16 UG_WindowGetYEnd( UG_WINDOW* wnd );
|
||
|
UG_U8 UG_WindowGetStyle( UG_WINDOW* wnd );
|
||
|
UG_RESULT UG_WindowGetArea( UG_WINDOW* wnd, UG_AREA* a );
|
||
|
UG_S16 UG_WindowGetInnerWidth( UG_WINDOW* wnd );
|
||
|
UG_S16 UG_WindowGetOuterWidth( UG_WINDOW* wnd );
|
||
|
UG_S16 UG_WindowGetInnerHeight( UG_WINDOW* wnd );
|
||
|
UG_S16 UG_WindowGetOuterHeight( UG_WINDOW* wnd );
|
||
|
|
||
|
/* Button functions */
|
||
|
UG_RESULT UG_ButtonCreate( UG_WINDOW* wnd, UG_BUTTON* btn, UG_U8 id, UG_S16 xs, UG_S16 ys, UG_S16 xe, UG_S16 ye );
|
||
|
UG_RESULT UG_ButtonDelete( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_ButtonShow( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_ButtonHide( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_ButtonSetForeColor( UG_WINDOW* wnd, UG_U8 id, UG_COLOR fc );
|
||
|
UG_RESULT UG_ButtonSetBackColor( UG_WINDOW* wnd, UG_U8 id, UG_COLOR bc );
|
||
|
UG_RESULT UG_ButtonSetAlternateForeColor( UG_WINDOW* wnd, UG_U8 id, UG_COLOR afc );
|
||
|
UG_RESULT UG_ButtonSetAlternateBackColor( UG_WINDOW* wnd, UG_U8 id, UG_COLOR abc );
|
||
|
UG_RESULT UG_ButtonSetText( UG_WINDOW* wnd, UG_U8 id, char* str );
|
||
|
UG_RESULT UG_ButtonSetFont( UG_WINDOW* wnd, UG_U8 id, const UG_FONT* font );
|
||
|
UG_RESULT UG_ButtonSetStyle( UG_WINDOW* wnd, UG_U8 id, UG_U8 style );
|
||
|
UG_RESULT UG_ButtonSetHSpace( UG_WINDOW* wnd, UG_U8 id, UG_S8 hs );
|
||
|
UG_RESULT UG_ButtonSetVSpace( UG_WINDOW* wnd, UG_U8 id, UG_S8 vs );
|
||
|
UG_RESULT UG_ButtonSetAlignment( UG_WINDOW* wnd, UG_U8 id, UG_U8 align );
|
||
|
UG_COLOR UG_ButtonGetForeColor( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_COLOR UG_ButtonGetBackColor( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_COLOR UG_ButtonGetAlternateForeColor( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_COLOR UG_ButtonGetAlternateBackColor( UG_WINDOW* wnd, UG_U8 id );
|
||
|
char* UG_ButtonGetText( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_FONT* UG_ButtonGetFont( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_U8 UG_ButtonGetStyle( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_S8 UG_ButtonGetHSpace( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_S8 UG_ButtonGetVSpace( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_U8 UG_ButtonGetAlignment( UG_WINDOW* wnd, UG_U8 id );
|
||
|
|
||
|
/* Checkbox functions */
|
||
|
UG_RESULT UG_CheckboxCreate( UG_WINDOW* wnd, UG_CHECKBOX* btn, UG_U8 id, UG_S16 xs, UG_S16 ys, UG_S16 xe, UG_S16 ye );
|
||
|
UG_RESULT UG_CheckboxDelete( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_CheckboxShow( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_CheckboxHide( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_CheckboxSetCheched( UG_WINDOW* wnd, UG_U8 id, UG_U8 ch );
|
||
|
UG_RESULT UG_CheckboxSetForeColor( UG_WINDOW* wnd, UG_U8 id, UG_COLOR fc );
|
||
|
UG_RESULT UG_CheckboxSetBackColor( UG_WINDOW* wnd, UG_U8 id, UG_COLOR bc );
|
||
|
UG_RESULT UG_CheckboxSetAlternateForeColor( UG_WINDOW* wnd, UG_U8 id, UG_COLOR afc );
|
||
|
UG_RESULT UG_CheckboxSetAlternateBackColor( UG_WINDOW* wnd, UG_U8 id, UG_COLOR abc );
|
||
|
UG_RESULT UG_CheckboxSetText( UG_WINDOW* wnd, UG_U8 id, char* str );
|
||
|
UG_RESULT UG_CheckboxSetFont( UG_WINDOW* wnd, UG_U8 id, const UG_FONT* font );
|
||
|
UG_RESULT UG_CheckboxSetStyle( UG_WINDOW* wnd, UG_U8 id, UG_U8 style );
|
||
|
UG_RESULT UG_CheckboxSetHSpace( UG_WINDOW* wnd, UG_U8 id, UG_S8 hs );
|
||
|
UG_RESULT UG_CheckboxSetVSpace( UG_WINDOW* wnd, UG_U8 id, UG_S8 vs );
|
||
|
UG_RESULT UG_CheckboxSetAlignment( UG_WINDOW* wnd, UG_U8 id, UG_U8 align );
|
||
|
UG_U8 UG_CheckboxGetChecked( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_COLOR UG_CheckboxGetForeColor( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_COLOR UG_CheckboxGetBackColor( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_COLOR UG_CheckboxGetAlternateForeColor( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_COLOR UG_CheckboxGetAlternateBackColor( UG_WINDOW* wnd, UG_U8 id );
|
||
|
char* UG_CheckboxGetText( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_FONT* UG_CheckboxGetFont( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_U8 UG_CheckboxGetStyle( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_S8 UG_CheckboxGetHSpace( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_S8 UG_CheckboxGetVSpace( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_U8 UG_CheckboxGetAlignment( UG_WINDOW* wnd, UG_U8 id );
|
||
|
|
||
|
/* Textbox functions */
|
||
|
UG_RESULT UG_TextboxCreate( UG_WINDOW* wnd, UG_TEXTBOX* txb, UG_U8 id, UG_S16 xs, UG_S16 ys, UG_S16 xe, UG_S16 ye );
|
||
|
UG_RESULT UG_TextboxDelete( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_TextboxShow( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_TextboxHide( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_TextboxSetForeColor( UG_WINDOW* wnd, UG_U8 id, UG_COLOR fc );
|
||
|
UG_RESULT UG_TextboxSetBackColor( UG_WINDOW* wnd, UG_U8 id, UG_COLOR bc );
|
||
|
UG_RESULT UG_TextboxSetText( UG_WINDOW* wnd, UG_U8 id, char* str );
|
||
|
UG_RESULT UG_TextboxSetFont( UG_WINDOW* wnd, UG_U8 id, const UG_FONT* font );
|
||
|
UG_RESULT UG_TextboxSetHSpace( UG_WINDOW* wnd, UG_U8 id, UG_S8 hs );
|
||
|
UG_RESULT UG_TextboxSetVSpace( UG_WINDOW* wnd, UG_U8 id, UG_S8 vs );
|
||
|
UG_RESULT UG_TextboxSetAlignment( UG_WINDOW* wnd, UG_U8 id, UG_U8 align );
|
||
|
UG_COLOR UG_TextboxGetForeColor( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_COLOR UG_TextboxGetBackColor( UG_WINDOW* wnd, UG_U8 id );
|
||
|
char* UG_TextboxGetText( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_FONT* UG_TextboxGetFont( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_S8 UG_TextboxGetHSpace( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_S8 UG_TextboxGetVSpace( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_U8 UG_TextboxGetAlignment( UG_WINDOW* wnd, UG_U8 id );
|
||
|
|
||
|
/* Image functions */
|
||
|
UG_RESULT UG_ImageCreate( UG_WINDOW* wnd, UG_IMAGE* img, UG_U8 id, UG_S16 xs, UG_S16 ys, UG_S16 xe, UG_S16 ye );
|
||
|
UG_RESULT UG_ImageDelete( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_ImageShow( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_ImageHide( UG_WINDOW* wnd, UG_U8 id );
|
||
|
UG_RESULT UG_ImageSetBMP( UG_WINDOW* wnd, UG_U8 id, const UG_BMP* bmp );
|
||
|
|
||
|
|
||
|
|
||
|
#endif
|