MiniGUI API Reference (MiniGUI-Threads)
v5.0.6
A mature and proven cross-platform GUI system for embedded and smart IoT devices
|
This file includes macro definitions and typedefs that commonly used by MiniGUI. More...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <stdarg.h>
#include <errno.h>
#include <assert.h>
#include <pthread.h>
#include <semaphore.h>
Go to the source code of this file.
Data Structures | |
struct | _RECT |
struct | _POINT |
struct | _SIZE |
struct | _RGB |
struct | _GAL_Color |
struct | _GAL_Palette |
struct | _GAL_Rect |
Macros | |
#define | _VERSION_CODE(major, minor, micro) (((major)<<16) | ((minor)<<8) | (micro)) |
A macro that returns the version code from major, minor and micro version number. More... | |
#define | _MINIGUI_VERSION_CODE |
Version code of MiniGUI. More... | |
#define | MGUI_LIL_ENDIAN 1234 |
Little endianness. More... | |
#define | MGUI_BIG_ENDIAN 4321 |
Big endianness. More... | |
#define | MGUI_BYTEORDER MGUI_LIL_ENDIAN |
The byte order (endianness) of the target system. More... | |
#define | FALSE 0 |
FALSE value, defined as 0 by MiniGUI. More... | |
#define | TRUE 1 |
TRUE value, defined as 1 by MiniGUI. More... | |
#define | NULL ((void *)0) |
A value indicates null pointer. More... | |
#define | INV_PTR ((void *)-1) |
A value indicates an invalid non-null pointer. More... | |
#define | SIZEOF_PTR 4 |
The size of a pointer. 4 for 32-bit and 8 for 64-bit. More... | |
#define | SIZEOF_HPTR 2 |
The size of a half or pointer. 2 for 32-bit and 4 for 64-bit. More... | |
#define | LOBYTE(w) ((BYTE)(w)) |
Returns the low byte of the word w. More... | |
#define | HIBYTE(w) ((BYTE)(((WORD)(w) >> NR_BITS_BYTE) & BITMASK_BYTE)) |
Returns the high byte of the word w. More... | |
#define | MAKEWORD(low, high) ((WORD)(((BYTE)(low)) | (((WORD)((BYTE)(high))) << NR_BITS_BYTE))) |
Makes a word from low byte and high byte. More... | |
#define | MAKEWORD16(low, high) ((WORD16)(((BYTE)(low)) | (((WORD16)((BYTE)(high))) << 8))) |
Makes a 16-bit word from low byte and high byte. More... | |
#define | MAKEDWORD32(first, second, third, fourth) |
Makes a WORD32 value with four bytes. More... | |
#define | MAKEWPARAM(first, second, third, fourth) |
Makes a WPARAM value with four bytes. More... | |
#define | FIRSTBYTE(w) ((BYTE)(w)) |
Returns the first byte of the WPARAM w. More... | |
#define | SECONDBYTE(w) ((BYTE)(((DWORD32)(w)) >> 8)) |
Returns the second byte of the WPARAM w. More... | |
#define | THIRDBYTE(w) ((BYTE)(((DWORD32)(w)) >> 16)) |
Returns the third byte of the WPARAM w. More... | |
#define | FOURTHBYTE(w) ((BYTE)(((DWORD32)(w)) >> 24)) |
Returns the fourth byte of the WPARAM w. More... | |
#define | LOWORD(l) ((WORD)(DWORD)(l)) |
Returns the low word of the double word l. More... | |
#define | HIWORD(l) ((WORD)((((DWORD)(l)) >> NR_BITS_WORD) & BITMASK_WORD)) |
Returns the high word of the double word l. More... | |
#define | LOSWORD(l) ((SWORD)(DWORD)(l)) |
Returns the low signed word of the double word l. More... | |
#define | HISWORD(l) ((SWORD)((((DWORD)(l)) >> NR_BITS_WORD) & BITMASK_WORD)) |
Returns the high signed word of the double word l. More... | |
#define | MAKELONG32(low, high) ((DWORD32)(((WORD16)(low)) | (((DWORD32)((WORD16)(high))) << 16))) |
Makes a 32-bit double word from low word and high word which are both in 16-bit. More... | |
#define | MAKELONG(low, high) ((DWORD)(((WORD)(low)) | (((DWORD)((WORD)(high))) << NR_BITS_WORD))) |
Makes a double word with pointer precision from low word and high word. More... | |
#define | GetRValue(rgba) ((BYTE)(rgba)) |
Get the red component from a RGBA quadruple value rgba. More... | |
#define | GetGValue(rgba) ((BYTE)(((DWORD32)(rgba)) >> 8)) |
Get the green component from a RGBA quadruple value rgba. More... | |
#define | GetBValue(rgba) ((BYTE)((DWORD32)(rgba) >> 16)) |
Get the blue component from a RGBA quadruple value rgba. More... | |
#define | GetAValue(rgba) ((BYTE)((DWORD32)(rgba) >> 24)) |
Get the alpha component from a RGBA quadruple value rgba. More... | |
#define | MakeRGBA(r, g, b, a) |
Makes a RGBA quadruple value from red r, green g, blue b and alpha components. More... | |
#define | MakeRGB(r, g, b) MakeRGBA((r), (g), (b), 255) |
Makes a RGB triple value from red r, green g, and blue b components. More... | |
#define | MGUI_NR_KEYS 255 |
Number of MiniGUI keys. More... | |
#define | NR_KEYS 250 |
The number of keys defined by Linux operating system. More... | |
#define | SCANCODE_USER (NR_KEYS + 1) |
The first key scan code different from OS defined ones. More... | |
#define | KS_LEFTMETA 0x00002000 |
This status indicate that left-Meta key was pressed when the key or mouse message posted to the window. More... | |
#define | KS_RIGHTMETA 0x00001000 |
This status indicate that right-Meta key was pressed when the key or mouse message posted to the window. More... | |
#define | KS_META 0x00003000 |
This status indicate that either the left-Meta key or the right-Meta key was pressed when the key or mouse message posted to the window. More... | |
#define | KS_REPEATED 0x00000800 |
This status indicate that the key down message is an auto-repeated one. More... | |
#define | KS_CAPTURED 0x00000400 |
This status indicate that the mouse is captured by a window when the mouse message posted. More... | |
#define | KS_IMEPOST 0x00000200 |
This status indicate that the key message is posted by the IME window. More... | |
#define | KS_CAPSLOCK 0x00000100 |
This status indicate that the CapsLock key was locked when the key or mouse message posted to the window. More... | |
#define | KS_NUMLOCK 0x00000080 |
This status indicate that the NumLock key was locked when the key or mouse message posted to the window. More... | |
#define | KS_SCROLLLOCK 0x00000040 |
This status indicate that the ScrollLock key was locked when the key or mouse message posted to the window. More... | |
#define | KS_LEFTCTRL 0x00000020 |
This status indicate that the left-Ctrl key was pressed when the key or mouse message posted to the window. More... | |
#define | KS_RIGHTCTRL 0x00000010 |
This status indicate that the right-Ctrl key was pressed when the key or mouse message posted to the window. More... | |
#define | KS_CTRL 0x00000030 |
This status indicate that either the left-Ctrl key or the right-Ctrl key was pressed when the key or mouse message posted to the window. More... | |
#define | KS_LEFTALT 0x00000008 |
This status indicate that left-Alt key was pressed when the key or mouse message posted to the window. More... | |
#define | KS_RIGHTALT 0x00000004 |
This status indicate that right-Alt key was pressed when the key or mouse message posted to the window. More... | |
#define | KS_ALT 0x0000000C |
This status indicate that either the left-Alt key or the right-Alt key was pressed when the key or mouse message posted to the window. More... | |
#define | KS_LEFTSHIFT 0x00000002 |
This status indicate that left-Shift key was pressed when the key or mouse message posted to the window. More... | |
#define | KS_RIGHTSHIFT 0x00000001 |
This status indicate that right-Shift key was pressed when the key or mouse message posted to the window. More... | |
#define | KS_SHIFT 0x00000003 |
This status indicate that either the left-Shift key or the right-Shift key was pressed when the key or mouse message posted to the window. More... | |
#define | MASK_KS_SHIFTKEYS 0x0000FFFF |
The mask of key status. More... | |
#define | KS_LEFTBUTTON 0x00010000 |
This status indicate that left button was pressed when the key or mouse message posted to the window. More... | |
#define | KS_RIGHTBUTTON 0x00020000 |
This status indicate that right button was pressed when the key or mouse message posted to the window. More... | |
#define | KS_MIDDLEBUTTON 0x00040000 |
This status indicate that middle button was pressed when the key or mouse message posted to the window. More... | |
#define | MASK_KS_BUTTONS 0x000F0000 |
The mask of mouse button status. More... | |
#define | ERR_OK 0 |
Return value error ok. More... | |
#define | ERR_QUEUE_FULL -1 |
Return value queue is full error. More... | |
#define | ERR_INVALID_HANDLE -2 |
Return value invalid handle error. More... | |
#define | ERR_INV_HWND ERR_INVALID_HANDLE |
Return value invalid window handle error. More... | |
#define | ERR_INVALID_HMENU ERR_INVALID_HANDLE |
Invalid menu handle. More... | |
#define | ERR_MSG_CANCELED -3 |
The message handling was canceled. More... | |
#define | ERR_INVALID_POS -5 |
Invalid postion. More... | |
#define | ERR_INVALID_ID -6 |
Invalid identifier. More... | |
#define | ERR_RES_ALLOCATION -7 |
Failed to allocate memory. More... | |
#define | ERR_CTRLCLASS_INVNAME -8 |
Return value invalid name of control class error. More... | |
#define | ERR_CTRLCLASS_INVLEN -9 |
Return value control class invalid length. More... | |
#define | ERR_CTRLCLASS_MEM -10 |
Return value control class memory error. More... | |
#define | ERR_CTRLCLASS_INUSE -11 |
Return value inuse control class error. More... | |
#define | ERR_ALREADY_EXIST -12 |
Return value already exit error. More... | |
#define | ERR_NO_MATCH -13 |
Return no match error. More... | |
#define | ERR_BAD_OWNER -14 |
Return bad owner error. More... | |
#define | ERR_IME_TOOMUCHIMEWND -15 |
Return value too much IME window error. More... | |
#define | ERR_IME_NOSUCHIMEWND -16 |
Return value no such IME wondow error. More... | |
#define | ERR_IME_NOIMEWND -17 |
Return value no IME wondow error. More... | |
#define | ERR_CONFIG_FILE -18 |
Return value configure file error. More... | |
#define | ERR_FILE_IO -19 |
Return value file I/O error. More... | |
#define | ERR_GFX_ENGINE -20 |
Return value GFX engine error. More... | |
#define | ERR_INPUT_ENGINE -21 |
Return value input engine error. More... | |
#define | ERR_NO_ENGINE -22 |
Return value no engine error. More... | |
#define | ERR_INVALID_ARGS -23 |
Return value invalid arguments. More... | |
#define | TABLESIZE(table) (sizeof(table)/sizeof(table[0])) |
A macro returns the number of elements in a table. More... | |
#define | MAX(x, y) (((x) > (y))?(x):(y)) |
A macro returns the maximum of x and y. More... | |
#define | MIN(x, y) (((x) < (y))?(x):(y)) |
A macro returns the minimum of x and y. More... | |
#define | ABS(x) (((x)<0) ? -(x) : (x)) |
A macro returns the absolute value of x. More... | |
#define | MAX_PATH PATH_MAX |
The possible maximal length of a path name. More... | |
#define | MAX_NAME NAME_MAX |
The possible maximal length of a file name. More... | |
Typedefs | |
typedef unsigned char | Uint8 |
A type definition for an 8-bit unsigned character. More... | |
typedef signed char | Sint8 |
A type definition for an 8-bit signed character. More... | |
typedef unsigned short | Uint16 |
A type definition for a 16-bit unsigned integer. More... | |
typedef signed short | Sint16 |
A type definition for a 16-bit signed integer. More... | |
typedef unsigned int | Uint32 |
A type definition for a 32-bit unsigned integer. More... | |
typedef signed int | Sint32 |
A type definition for a 32-bit signed integer. More... | |
typedef unsigned long long | Uint64 |
A type definition for a 64-bit unsigned integer. More... | |
typedef signed long long | Sint64 |
A type definition for a 64-bit signed integer. More... | |
typedef void * | PVOID |
A type definition for a pointer to any type. More... | |
typedef int | BOOL |
A type definition for boolean value. More... | |
typedef PVOID | GHANDLE |
General handle. More... | |
typedef GHANDLE | HWND |
Handle to main window or control. More... | |
typedef GHANDLE | HDC |
Handle to device context. More... | |
typedef GHANDLE | HPALETTE |
Handle to a logical palette. More... | |
typedef GHANDLE | HCURSOR |
Handle to cursor. More... | |
typedef GHANDLE | HICON |
Handle to icon. More... | |
typedef GHANDLE | HMENU |
Handle to menu. More... | |
typedef GHANDLE | HACCEL |
Handle to accelarator. More... | |
typedef GHANDLE | HDLG |
Handle to dialog box, same as HWND. More... | |
typedef GHANDLE | HHOOK |
Handle to keyboard or mouse event hook. More... | |
typedef unsigned char | BYTE |
A type definition for an 8-bit unsigned character (byte). More... | |
typedef signed char | SBYTE |
A type definition for an 8-bit signed character. More... | |
typedef unsigned short | WORD_HPTR |
An unsigned int (word) type in half pointer precision. More... | |
typedef signed short | SWORD_HPTR |
An signed int type in half pointer precision. More... | |
typedef WORD_HPTR | WORD |
A type definition for an unsigned integer (word). More... | |
typedef SWORD_HPTR | SWORD |
A type definition for a signed integer. More... | |
typedef unsigned short | WORD16 |
A type definition for a 16-bit unsigned integer (word). More... | |
typedef signed short | SWORD16 |
A type definition for a 16-bit signed integer. More... | |
typedef long | LONG_PTR |
A signed long type for pointer precision. More... | |
typedef LONG_PTR | LINT |
Signed integer which has pointer precision. More... | |
typedef LONG_PTR | LRESULT |
Signed result of message processing. More... | |
typedef unsigned long | DWORD_PTR |
An unsigned long type for pointer precision. More... | |
typedef DWORD_PTR | DWORD |
A unsigned long type definition for pointer precision. More... | |
typedef unsigned int | DWORD32 |
A type definition for a 32-bit unsigned integer. More... | |
typedef signed long | SDWORD_PTR |
A signed long type for pointer precision. More... | |
typedef SDWORD_PTR | SDWORD |
A signed long type definition for pointer precision. More... | |
typedef signed int | SDWORD32 |
A type definition for a 32-bit signed integer. More... | |
typedef unsigned int | UINT |
A type definition for unsigned integer. More... | |
typedef int | INT_PTR |
A signed integer type for pointer precision. More... | |
typedef unsigned long | UINT_PTR |
A unsigned integer type for pointer precision. More... | |
typedef long | LONG |
A type definition for long integer. More... | |
typedef unsigned long | ULONG |
A type definition for unsigned long integer. More... | |
typedef UINT_PTR | WPARAM |
A type definition for the first message paramter. More... | |
typedef UINT_PTR | LPARAM |
A type definition for the second message paramter. More... | |
typedef DWORD32 | RGBCOLOR |
A type definition for a RGB color value. More... | |
typedef struct _RECT | RECT |
typedef RECT * | PRECT |
Data type of the pointer to a RECT. More... | |
typedef struct _POINT | POINT |
typedef POINT * | PPOINT |
Data type of the pointer to a POINT. More... | |
typedef struct _SIZE | SIZE |
typedef SIZE * | PSIZE |
Data type of the pointer to a SIZE. More... | |
typedef struct _RGB | RGB |
typedef RGB * | PRGB |
Data type of the pointer to a RGB. More... | |
typedef Sint8 | gal_sint8 |
Data type of 8-bit signed integer. More... | |
typedef Uint8 | gal_uint8 |
Data type of 8-bit unsigned integer. More... | |
typedef Sint16 | gal_sint16 |
Data type of 16-bit signed integer. More... | |
typedef Uint16 | gal_uint16 |
Data type of 16-bit unsigned integer. More... | |
typedef Sint32 | gal_sint32 |
Data type of 32-bit signed integer. More... | |
typedef Uint32 | gal_uint32 |
Data type of 32-bit unsigned integer. More... | |
typedef signed int | gal_sint |
Data type of signed integer. More... | |
typedef unsigned int | gal_uint |
Data type of unsigned integer. More... | |
typedef Uint32 | gal_pixel |
Data type of pixel value. More... | |
typedef Uint32 | gal_attr |
Data type of attribute value. More... | |
typedef long | fixed |
Data type of fixed point. More... | |
typedef struct _GAL_Color | GAL_Color |
typedef struct _GAL_Palette | GAL_Palette |
typedef struct _GAL_Rect | GAL_Rect |
This file includes macro definitions and typedefs that commonly used by MiniGUI.
This file is part of MiniGUI, a mature cross-platform windowing and Graphics User Interface (GUI) support system for embedded systems and smart IoT devices. Copyright (C) 2002~2020, Beijing FMSoft Technologies Co., Ltd. Copyright (C) 1998~2002, WEI Yongming This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. Or, As this program is a library, any link to this program must follow GNU General Public License version 3 (GPLv3). If you cannot accept GPLv3, you need to be licensed from FMSoft. If you have got a commercial license of this program, please use it under the terms and conditions of the commercial license. For more information about the commercial license, please refer to <http://www.minigui.com/blog/minigui-licensing-policy/>.
Definition in file common.h.