▼Macros and data types commonly used | |
Version information | |
Basic data types | |
Endianness information | |
Simple and common types and macros | |
MiniGUI handles | |
Win32-like data types and macros | |
Data types for GDI | |
Macros for key codes and shift status | |
Error codes | |
Miscellaneous macros | |
▼Standard controls | |
►ANIMATION control and animation GIF (GIF87a/GIF89a) support | |
Styles of ANIMATION control | This control can be used to play the animation object, and you should specify the animation object when you create the control by using the dwAddData: |
Messages of ANIMATION control | |
Notification code of ANIMATION control | |
►Button control | |
Styles of button control | |
States of button control | |
Messages of button control | |
Notification codes of button control | |
►ComboBox control | |
Styles of combobox control | |
Messages of combobox control | |
Notification codes of combobox control | |
►CoolBar control | |
Styles of coolbar control | |
Messages of coolbar control | |
►Edit/MEdit control | |
Styles of edit control | |
Messages of edit control | |
Notification codes of edit control | |
►GridView control | |
Messages of grid control | |
Notification code of Grid control | |
►IconView control | |
Styles of iconview control | |
Messages of ListView control | |
Notification code of IconView control | |
►ListBox control | |
Styles of listbox control | |
Messages of listbox control | |
Notification codes of listbox control | |
►ListView control | |
Styles of listview control | |
Messages of ListView control | |
Notification code of ListView control | |
►MenuButton control | |
Styles of menubutton control | |
Messages of menubutton control | |
Notification codes of menubutton control | |
►MonthCalendar control | |
Styles of monthcalendar control | |
Messages of monthcalendar control | |
Notification codes of monthcalendar control | |
►NewToolBar control | |
Styles of NewToolBar control | |
Messages of NewToolBar control | |
►ProgressBar control | |
Styles of progressbar control | |
Messages of progressbar control | |
Notification codes of progressbar control | |
►PropertySheet control | |
Styles of propertysheet control | |
Messages of propertysheet control | |
Notification codes of propertysheet control | |
►ScrollBar control | |
Styles of scrollbar control | |
Messages of scrollbar control | |
►ScrollView control | Scrollview control is a scrollable window, which has a visible area and normally a larger content area, user can browse content area using scrollbar. Contents of the content area is totally user-defined, you can add controls in it, add customed listed items, or anything you want |
Styles of scrollview control | |
Messages of scrollview control | |
Notification codes of scrollview control | |
►SpinBox control | |
Styles of spinbox control | |
Messages of spinbox control | |
Notification codes of spinbox control | |
►Static control | |
Styles of static control | |
Messages of static control | |
Notification codes of static control | |
►TextEdit control | |
Styles of textedit control | |
Messages of textedit control | |
Notification codes of textedit control | |
►TrackBar control | |
Styles of trackbar control | |
Messages of trackbar control | |
Notification codes of trackbar control | |
state for renderer | |
►TreeView control | |
Styles of treeview control | |
Messages of treeview control | |
Notification codes of treeview control | |
▼External Stubs | The stubs (callbacks) you need to implement for external target |
External Stubs for DRI sub driver | |
External Stubs for CommLCD NEWGAL Engine | The external stubs for COMMLCD NEWGAL engine |
External Stubs for COMM IAL Engine | The external stubs for COMM IAL engine |
▼Messages | |
Mouse event messages | |
Key event messages | |
►User-machine Interaction messages | |
Notification codes of srollbar control | |
Window creation messages | |
Extra input messages | In addition to the standard keyboard and mouse messages, MiniGUI generates extra input messages for input events from other input devices, including multi-touch panel, tablet pad, joystick, and so on. We call these messages as 'extra input messages'. The messages can be classified the following types: |
Window painting messages | |
Internal desktop messages | |
Internal window management messages | |
Dialog and control messages | |
System messages | |
Internal menu messages | |
User-defined messages | |
▼Window styles | |
Styles for main window types/levels | Before 5.0.0, you can create a topmost main window with the style WS_EX_TOPMOST in order to show the main window above all normal windows, and if you use MiniGUI-Processes runtime mode, the server (mginit ) will always create global main windows |
▼Functions | |
►GDI functions | |
Region operations | A Region is simply an area, as the name implies, and is implemented as a "y-x-banded" array of rectangles. To explain: Each Region is made up of a certain number of rectangles sorted by y coordinate first, and then by x coordinate |
General DC operations | DC means Device Context, just like Graphics Context (GC) of X Lib. DC represents a rectangle area on the actual screen or a virtual screen created in memory. We call the rectangle area as "surface" of the DC |
DC attribute operations | |
Palette operations | |
►General drawing functions | |
Advanced 2-Dimension graphics functions. | |
Mapping Operations | The mapping mode defines the unit of measure used to transform page-space units into device-space units, and also defines the orientation of the device's x and y axes |
Clipping operations | |
BITMAP and blitting operations | Example: |
Icon operations | |
Rectangle operations | |
►Logical font operations | MiniGUI uses logical font to render text in a DC. You can create a logical font by using CreateLogFont and select it into a DC by using SelectFont, then you can use this logical font to render text by using TextOutLen or DrawTextEx |
Abstract Character Types | MiniGUI uses a Uint32 value to store the type information of a character |
Language Code | The language code specifies the content language |
System charset and font operations | MiniGUI creates a few system fonts to draw menu text, window caption, or other general items. MiniGUI at least creates two system fonts: one mono-space logical font for single-byte charset, and one mono-space logical font for multi-byte charset. For the multi-byte charset, the width of one multi-byte character should be equal to the width of two single-byte characters |
Text parsing functions | MiniGUI uses logical font to output text, also uses logical font to parsing the multi-byte characters and words in the text |
BIDI types | Values for BIDI types |
►Operators for Unicode character and string | |
Character Transformation Rules | The character transformation rule indicates how UStrGetBreaks transforms text for styling purposes; can be |
Word Breaking Rules | The word breaking rule indicates how UStrGetBreaks creates soft wrap opportunities between letters |
Line Breaking Policies | The line breaking policy specifies the strictness of line-breaking rules applied within an element: especially how wrapping interacts with punctuation and symbols |
The breaking opportunity code | MiniGUI uses a 16-bits word to represent the character, word, and line breaking opportunities of a character in a context |
Text output functions | |
Bitmap structure | MiniGUI uses a MYBITMAP structure to represent a device-independent bitmap, and BITMAP structure to represent a device-dependent bitmap |
Bitmap file load/save operations | Example: |
►Rendering Text in Complex/Mixed Scripts | To lay out, shape, and render a text in mixed scripts, you should call GetUCharsUntilParagraphBoundary function first to convert a multi-byte string to a Unicode string under the specified white space rule, breaking rule, and transformation rule. For example, converting a general C string in UTF-8 or GB18030 to a Uchar32 string by calling this function. You can call CreateLogFontForMChar2UChar function to create a dummy logfont object for this purpose in order to expense a minimal memory |
White Space Rules | The white space rule indicates GetUCharsUntilParagraphBoundary |
Glyph Rendering Flags | The glyph rendering flags indicate GetGlyphsExtentFromUChars and CreateLayout how to lay out the text: |
Functions for Linux DRM integration | These functions can be used to get the DRM device file descriptor and the information of the hardware surface corresponding to the DC which is created by the Linux DRM engine. By using the information, we can integrate MiniGUI with other graphics libraries, such as Cairo (vector graphics) and Mesa (3D graphics) |
►Message functions | |
Message passing functions | |
Message or event hook functions | |
Look and Feel Renderer management functions | |
Resource managment functions | |
►Windowing functions | |
Virtual Window | You know that we can post or send a message to other windows which may run in another thread under MiniGUI-Threads. The MiniGUI messaging functions such as PostMessage(), SendMessage(), SendNotifyMessage(), and the window callback procedure provide a flexible, efficient, safe, and easy-to-use data transfer and synchronization mechanism for your multithreaded applications |
Window creating/destroying | |
General window operations | |
System bitmap/icon operations | |
Scroll bar operations | |
Window class operations | |
Control creating/destroying | |
Timer operations | |
IME Window functions | |
Accelerator operations | |
Caret operations | |
Menu operations | |
Dialog operations | |
Message box operations | |
►Global/general functions | |
General read/write operations | MiniGUI's general read/write operation provides a general interface to read from and write to various data source, such as files, memory, and so on |
Endian specific read/write interfaces | The endian specific read/write functions read and write data of the specified endianness, dynamically translating to the host machine endianness |
Fixed point math functions | You know that the float point mathematics routines are very expensive. If you do not want precision mathematics result, you can use fixed point. MiniGUI uses a double word (32-bit) integer to represent a fixed point ranged from -32767.0 to 32767.0, and defines some fixed point mathematics routines for your application. Some GDI functions need fixed point math routines, like Arc |
Block data heap operations | MiniGUI maintains some private block data heaps to allocate data blocks which have fixed size, such as the clipping rectangles in a region. By using the private heap, we can avoiding calling malloc and free function frequently, so will have a slight performance enhancement |
►MiniGUI-Processes specific functions | |
Layer operations | A client in MiniGUI-Processes can create a new layer or join an existed layer |
Server-only operations | MiniGUI provides some server-only functions for you to create a customized server for MiniGUI-Processes, i.e. mginit |
Simple request/reply interfaces | You can register a customized request handler to extend your server, i.e. mginit, of MiniGUI-Processes |
General socket operations | MiniGUI-Processes uses UNIX domain socket to build the communication between the server and the clients |
Initialization and termination functions | Normally, the only entry of any MiniGUI application is MiniGUIMain. The application will terminate when you call exit(3) or just return from MiniGUIMain |
Mouse calibration. | |
About MiniGUI dialog | |
Configuration file operations | The configuration file used by MiniGUI have a similiar format as M$ Windows INI file, i.e. the file consists of sections, and the section consists of key-value pairs, like this: |
Length-Fixed string operations | MiniGUI maintains a private heap for length-fixed strings, and allocates length-fixed strings from this heap for window caption, menu item text, and so on. You can also use this private heap to allocate length-fixed strings |
Cursor operations | |
Asynchronous key status functions | |
Internationlization of system text | |
String operation helpers | |
Slice Memory Allocator | An efficient way to allocate groups of equal-sized chunks of memory |
Miscellaneous functions | |
ClipBoard Operations | |
▼Global variables | |
System colors and pixel values. | |
Global Rectangles | |
MiniGUI-Processes specific variables | |
x virtual framebuffer | |