The Embedded Experts

# Release notes for emWin Version 5.48k

- New features
- Program corrections
- Release history
- Miscellaneous

## New Features

### Version 5.48e

1. Sample:
   - New GUIDRV_Lin sample configuration for iMXRT1052 EVK/EVKB
   This sample configuration is located under \Sample\LCDConf\GUIDRV_Lin\iMXRT10520_EVK\

### Version 5.48

1. Default configuration:
   - emWin now uses the color format ARGB per default.
   Important: To be able to keep the colors of existing projects compatible to that new default value, either use the macro GUI_MAKE_COLOR() or add the following line to GUIConf.h:
   #define GUI_USE_ARGB 0
2. Core:
   - Displaying text:
     - New function GUI_SetClearTextRectMode() added.
3. Window Manager:
   - New function WM_Rect2Screen() added.
   - New function WM_Rect2Client() added.
   - New function WM_XY2Screen() added.
   - New function WM_XY2Client() added.
4. Widgets:
   - LISTBOX:
     - New function LISTBOX_SetFixedScrollMode() added.
5. Language support:
   - Encoding:
     - New function GUI_UC_SetEncodeSJIS() added.
6. Display drivers:
   - GUIDRV_FlexColor:
     - New function GUIDRV_FlexColor_SetOrientation() added.
     - Support for SSD1353 added.
   - GUIDRV_S1D13781:
     - New function GUIDRV_S1D13781_SetOrientation() added.
   - GUIDRV_S1D13L01:
     - New function GUIDRV_S1D13L01_SetOrientation() added.
   - Display driver API:
     - New fucntion LCD_Refresh() added.
     - New Function LCD_RefreshEx() added.
     - New function LCD_ROTATE_AddDriver() added.
     - New function LCD_ROTATE_AddDriverEx() added.
     - New function LCD_ROTATE_DecSel() added.
     - New function LCD_ROTATE_DecSelEx() added.
     - New function LCD_ROTATE_IncSel() added.
     - New function LCD_ROTATE_IncSelEx() added.
     - New function LCD_ROTATE_SetCallback() added.
     - New function LCD_ROTATE_SetSel() added.
     - New function LCD_ROTATE_SetSelEx() added.
7. Configuration:
   - HW support for AA functions:
     - New function GUI_AA_SetFuncFillCircle() added.
     - New function GUI_AA_SetFuncFillPolygon() added.
     - New function GUI_AA_SetFuncDrawCircle() added.
     - New function GUI_AA_SetFuncDrawLine() added.
     - New Function GUI_AA_SetFuncDrawPolyOutline() added.
     - New Function GUI_AA_SetFuncDrawArc() added.
   - Function replacement:
     - New function GUI_SetpfStrcmp() added to be able to set a custom function for strcmp.
     - New function GUI_SetpfStrlen() added to be able to set a custom function for strlen.
     - New function GUI_SetpfStrcpy() added to be able to set a custom function for strcpy.
   - Memory:
     - function GUI_ALLOC_GetMemInfo() added.

### Version 5.46

1. Core:
   - emWin now supports 64 bit architectures (LP64, LLP64).
   - Driver access:
     - New functions LCD_GetVRAMAddrEx() and LCD_GetVRAMAddr() to be able to get the VRAM address.
2. Display drivers:
   - GUIDRV_SPage:
     - New function GUIDRV_SPage_SetST75320() added.
     - New function GUIDRV_SPage_SetUC1628() added.
     - Support for Solomon SSD1309 added.
   - GUIDRV_FlexColor:
     - Support for Himax HX8367 added.
3. Window Manager:
   - Messages:
     - New message WM_SET_CALLBACK added.
4. Widgets:
   - HEADER
     - New function HEADER_GetItemText() added.
   - CHECKBOX
     - New function CHECKBOX_GetImage() added.

### Version 5.44

1. emWinSPY:
   - New function GUI_SPY_StartServerEx() added.
2. Core:
   - 2D-Graphic Library:
     - New function GUI_SPLINE_Create() added.
     - New function GUI_SPLINE_Draw() added.
     - New function GUI_SPLINE_Delete() added.
     - New function GUI_SPLINE_GetY() added.
     - New function GUI_SPLINE_GetXSize() added.
     - New function GUI_SPLINE_DrawAA() added.
   - Display bitmap files:
     - New function GUI_JPEG_SetpfDrawEx() added.
   - Movies:
     - New function GUI_MOVIE_SetpfNotify() added.
     - New functionality of displaying AVI files added.
3. Window Manager:
   - Messages:
     - New message WM_USER_DATA added.
4. Widgets:
   - EDIT:
     - New function EDIT_GetTextAlign() added to be able to get the current text alignment.
5. Antialiasing:
   - Drawing routines:
     - New function GUI_AA__DrawCircle() added.
6. Display drivers:
   - GUIDRV_FlexColor:
     - Support for ST7775 added.
   - GUIDRV_SH_MEM:
     - Support for 3bpp added.
   - GUIDRV_SPage:
     - New function GUIDRV_SPage_SetUC1610() added.
7. Configuration:
   - General:
     - New function GUI_RegisterAfterInitHook() added.
   - Memory:
     - New function GUI_ALLOC_GetMaxUsedBytes() added.
   - HW support:
     - New functionality, interface for JPEG hardware support.

### Version 5.42

1. Display Drivers:
   - GUIDRV_S1D13L01 / GUIDRV_S1D13781:
     - 16bpp mode added.
2. Core:
   - Displaying text:
     - New function GUI_DispStringInRectWrapEx() added to be able to draw rotated text by using the given wrap mode.
     - New function GUI_SetStrikeWidth() added to be able to set the pen size used for drawing text effects.
   - Helper functions:
     - New function GUI_AddRect() added to be able to enlarge/shrink the given rectangle.
   - Display driver API:
     - New functions LCD_SetBufferPtr() and LCD_SetBufferPtrEx() added to be able to use non adjacent memory for different buffers.
3. Widgets:
   - CHECKBOX
     - New function CHECKBOX_GetBkColor() added to be able to get the current background color.
     - New function CHECKBOX_GetBoxBkColor() added to be able to get the current background color of the box.
     - New function CHECKBOX_GetFocusColor() added to be able to get the current color of the focus rectangle.
     - New function CHECKBOX_GetFont() added to be able to get the current font.
     - New function CHECKBOX_GetTextAlign() added to be able to get the current text alignment.
     - New function CHECKBOX_GetTextColor() added to be able to get the current text color.
   - DROPDOWN
     - New function DROPDOWN_GetBkColor() added to be able to get the current background color.
     - New function DROPDOWN_GetColor() added to be able to get the current arrow and button color.
     - New function DROPDOWN_GetFont() added to be able to get the current font.
     - New function DROPDOWN_GetTextColor() added to be able to get the current text color.
   - GRAPH
     - New function GRAPH_GetColor() added to be able to get the current used color.
   - HEADER
     - New function HEADER_GetFont() added to be able to get the current font.
   - ICONVIEW
     - New function ICONVIEW_GetBkColor() added to be able to get the current background color.
     - New function ICONVIEW_GetFont() added to be able to get the current font.
     - New function ICONVIEW_GetTextColor() added to be able to get the current text color.
     - New function ICONVIEW_GetReleasedItem() added to be able to get the latest item which has been released by the PID.
   - LISTBOX
     - New function LISTBOX_GetBkColor() added to be able to get the current background color.
     - New function LISTBOX_GetTextColor() added to be able to get the current text color.
   - MENU
     - New function MENU_GetBkColor() added to be able to get the current background color.
     - New function MENU_GetFont() added to be able to get the current font.
     - New function MENU_GetTextColor() added to be able to get the current text color.
   - MULTIEDIT
     - New function MULTIEDIT_GetBkColor() added to be able to get the current background color.
     - New function MULTIEDIT_GetFont() added to be able to get the current font.
     - New function MULTIEDIT_GetTextColor() added to be able to get the current text color.
     - New function MULTIEDIT_ShowCursor() added to be able to set the visibility of the cursor.
   - MULTIPAGE
     - New function MULTIPAGE_GetBkColor() added to be able to get the current background color.
     - New function MULTIPAGE_GetTextColor() added to be able to get the current text color.
   - PROGBAR
     - New function PROGBAR_GetBarColor() added to be able to get the current bar color.
     - New function PROGBAR_GetFont() added to be able to get the current font.
   - RADIO
     - New function RADIO_GetBkColor() added to be able to get the current background color.
     - New function RADIO_GetFocusColor() added to be able to get the current color of the focus rectangle.
     - New function RADIO_GetFont() added to be able to get the current font.
     - New function RADIO_GetTextColor() added to be able to get the current text color.
   - SCROLLBAR
     - New function SCROLLBAR_GetColor() added to be able to get the current used colors.
   - SPINBOX
     - New function SPINBOX_GetFont() added to be able to get the current font.
     - New function SPINBOX_GetTextColor() added to be able to get the current text color.
   - TEXT
     - New function TEXT_SetDec() added to be able to display decimal values.
4. Dialogs:
   - CALENDAR
     - New function CALENDAR_AddKey() added to be able to send keyboard input for managing the selected date.

### Version 5.40m

1. Widgets:
   - MULTIEDIT
     - New function MULTIEDIT_ShowCursor() added to be able to hide or show the cursor.

### Version 5.40g

1. Display drivers:
   - New driver GUIDRV_S1D13L01 added.
   - New driver GUIDRV_S1D13L02 added.
   - New driver GUIDRV_S1D13L04 added.

### Version 5.40

1. Widgets:
   - ICONVIEW widget:
     - New function ICONVIEW_GetItemBitmap() added to be able to retrieve a pointer to the bitmap of the given item.
     - New function ICONVIEW_SetOwnerDraw() added to be able to set a custom function for drawing operations.
   - MULTIEDIT widget:
     - New function MULTIEDIT_SetCursorCharPos() added to be able to set the cursor to the desired character position.
     - New function MULTIEDIT_SetCursorPixelPos() added to be able to set the cursor to the desired pixel position.
   - Common:
     - New function WIDGET_SetFocusable() added to be able to set the focusability of the given widget.
     - New function WIDGET_EnableStreamAuto() added to be able to enable full support for streamed bitmaps.
2. Simulation:
   - New function SIM_GUI_SaveCompositeBMP() added to be able to save the content of the coposite view within the simulation.
3. BitmapConverter:
   - Bitmap converter now supports loading JPEG images.
   - New command line option 'reducecolors' added.
   - New command line option 'hide' added.
   - New command line option 'scale' added.
4. Window manager:
   - 'Overlapping' added to motion support.
   - New function WM_GetNumInvalidWindows() added to be able to retrieve the current number of invalid windows.
   - New function WM_MOTION_SetThreshold() added to be abla to set a threshold value for beginning moving operations.
5. Core:
   - Movies:
     - New function GUI_MOVIE_DrawFrame() added to be able to draw a single frame of the given movie.
   - Displaying text:
     - New function GUI_WrapSetSeparators() added to be able to set custom defined separators for wrapping operations.
     - New function GUI_WrapGetPositions() added to be able to retrieve the wrapping positions for the given text.
   - Function replacement:
     - New function GUI_SetpfMemset() added to be able to replace the default function memset() by a custom defined routine.
     - New function GUI_SetpfMemcpy() added to be able to replace the default function memcpy() by a custom defined routine.
6. Display Drivers:
   - Common:
     - New function LCD_On() and LCD_OnEx() added.
     - New function LCD_Off() and LCD_OffEx() added. li>

### Version 5.38

1. Simulation:
   - Timing Functions:
     - New function SIM_GUI_Delay() added for delaying the simulation thread.
     - New function SIM_GUI_ExecIdle() added which gets called by simulation on idle time.
     - New function SIM_GUI_GetTime() added to get the time in ms since starting the simulation.
2. Core:
   - 2-D Graphic Library:
     - New function GUI_GCACHE_4_Create() added for creating a global cache with 4bpp color depth.
     - New function GUI_GCACHE_4_CreateEx() added for creating a global cache with 4bpp color depth.
   - Fonts:
     - New function function GUI_GetDefaultFont() added for getting the current default font.
   - Animations:
     - New function GUI_ANIM_StartEx() added for starting animations automatically.
     - New function GUI_ANIM_Stop() added for stopping an animations.
   - Colors:
     - New function GUI_GetDefaultBkColor() added for getting the current default background color.
     - New function GUI_GetDefaultColor() added for getting the current default color.
     - New function GUI_SetDefaultBkColor() added setting the default background color to be used.
     - New function GUI_SetDefaultColor() added setting the default color to be used.
   - Timing- and execution related functions:
     - New function GUI_GetTimeSlice() added for getting the minimum time a GUI_Delay() will last.
     - New function GUI_SetTimeSlice() added for setting the minimum time a GUI_Delay() will last.
   - Configuration:
     - New function GUI_SetFuncDrawAlpha() added for setting a custom function to draw memory devices and bitmaps with alpha channel.
     - New function GUI_DCACHE_Clear() added for clearing the data cache.
     - New function GUI_DCACHE_SetClearCacheHook() added for a function to clear the data cache which gets called by GUI_DCACHE_Clear().
3. Memory Devices:
   - Memory device animations:
     - New function GUI_MEMDEV_MULTIBUF_Enable() added for enabling use of multiple buffers with memory device animations.
4. Pointer Input Devices:
   - Hooking function:
     - New function GUI_PID_SetHook() added for setting a hook function which allows to modifz the PID input (e.g. change layer).
5. VNC:
   - Server:
     - New function GUI_VNC_SetRetryCount() added to set the number of additional trials in case of a write error.
6. Display Drivers:
   - GUIDRV_Lin:
     - LCD_DEVFUNC_DRAWBMP_32BPP added to LCD_SetDevFunc() to set a custom function for drawing 32bpp bitmaps.
   - GUIDRV_S1D13513:
     - New driver GUIDRV_S1D13513 added.
   - GUIDRV_FlexColor:
     - 24bpp mode added to F66720.

### Version 5.36f

1. Widgets:
   - MULTIEDIT:
     - The MULTIEDIT widget reacts now on page up and down to scroll page wise.

### Version 5.36

1. Core:
   - Bidirectional text:
     - Compatibility to Unicode bidirectional algorithm V8.0.0 added.
     - New function GUI_UC_SetBaseDir() added to be able to set the basic text direction.
     - New function GUI_UC_GetBaseDir() added to be able to retrieve the currently used basic text direction.
2. Antialiasing:
   - Drawing of 4bpp fonts:
     - New function GUI_AA_EnableGammaAA4() added to be able to use gamma correction for 4bpp antialiased fonts.
     - New function GUI_AA_SetGammaAA4() added to be able to use custom gamma values for 4bpp antialiased fonts.
     - New function GUI_AA_GetGammaAA4() added to be able to retrieve the current used gamma values for 4bpp antialiased fonts.
3. Widgets:
   - SWIPELIST widget:
     - New function SWIPELIST_SetThreshold() added to be able to set a threshold value for minimum movement.
     - New function SWIPELIST_GetThreshold() added to be able to get the used threshold value.
     - New function SWIPELIST_SetDefaultThreshold() added to be able to set the threshold default value.
     - New function SWIPELIST_GetDefaultThreshold() added to be able to get the threshold default value.
   - GRAPH widget:
     - New function GRAPH_DATA_YT_GetValue() added to be able to get the dedicated value.
     - New function GRAPH_DATA_XY_GetPoint() added to be able to get the dedicated point.
4. Display drivers:
   - GUIDRV_SPage:
     - Support for Integrated Solutions Technology IST3501 added.
     - Support for Sitronix ST7570 added.
   - GUIDRV_FlexColor:
     - Support for Sitronix ST7796 added.

### Version 5.34h

1. Display drivers:
   - GUIDRV_FlexColor:
     - Support for LDT LD7138 (SP9230) added.

### Version 5.34d

1. Core:
   - Movies
     - New function GUI_MOVIE_Create() added to be able to create a movie handle for a file located within the addressable CPU memory area.

### Version 5.34a

1. Display drivers:
   - GUIDRV_SPage:
     - Support for Sitronix ST75320 added.
2. Core:
   - Support for drawing 32bpp bitmaps with ChromeART accelerator added.

### Version 5.34

1. Core:
   - Initialization:
     - New function GUI_IsInitialized() added to be able to check if emWin is already initialized.
   - QR-Codes:
     - New function GUI_QR_Create() added to be able to create a QR code bitmap.
     - New function GUI_QR_Delete() added to be able to delete a QR code bitmap.
     - New function GUI_QR_Draw() added to be able to draw a QR code bitmap.
     - New function GUI_QR_GetInfo() added to be able to get informations about the given QR code bitmap.
   - Display driver cache management:
     - New function GUI_SetControlHook() added to be able to call a custom function immediately before a driver cache operation.
   - Drawing BMP files:
     - New function GUI_BMP_EnableAlpha() added to be able to enable alpha channel for 32 bpp BMP files.
   - Pointer input devices:
     - New function GUI_PID_SetInitFunc() added to be able to set a function used to put a PID into operation.
2. VNC-Server and emVNC:
   - File transfer:
     - File transfer capabilities added to the VNC server.
3. Widgets:
   - LISTBOX widget:
     - New function LISTBOX_GetOwner() added to be able to get the 'owner' of a LISTBOX.
4. Display drivers:
   - GUIDRV_SH_MEM:
     - New driver for supporting Sharp Memory LCDs (b/w only) added.
5. Simulation:
   - New functions SIM_GUI_SaveBMP() and SIM_GUI_SaveBMPEx() added to be able to save a bitmap file with the content of the currently selected layer.

### Version 5.32

1. emWinSPY:
   - New option for connecting via RTT added.
2. Core:
   - Language support:
     - New function GUI_GetLang() added to be able to get the currently selected language index.
3. Simulation:
   - New function SIM_GUI_SetCompositeTouch() and SIM_GUI_GetCompositeTouch() added to be able to specify/get the layer to be used when touching the composite view of the simulation.
4. Widgets:
   - SWIPELIST widget:
     - New functions SWIPELIST_CreateAsChild(), SWIPELIST_CreateEx(), SWIPELIST_CreateIndirect() and SWIPELIST_CreateUser added to be able to create a SWIPELIST widget.
     - New functions added to be able to set the properties of the widget: SWIPELIST_AddItemText(), SWIPELIST_SetAttachedWindowPos(), SWIPELIST_SetBitmap(), SWIPELIST_SetBitmapSpace(), SWIPELIST_SetBkColor(), SWIPELIST_SetBorderSize(), SWIPELIST_SetFont(), SWIPELIST_SetItemSize(), SWIPELIST_SetItemUserData(), SWIPELIST_SetOwnerDraw(), SWIPELIST_SetScrollPos(), SWIPELIST_SetScrollPosItem(), SWIPELIST_SetSepColor(), SWIPELIST_SetSepSize(), SWIPELIST_SetText(), SWIPELIST_SetTextAlign(), SWIPELIST_SetTextColor(), SWIPELIST_SetUserData(), SWIPELIST_ItemAttachWindow(), SWIPELIST_ItemDetachWindow(), SWIPELIST_OwnerDraw()
     - New functions added to be able to get the properties of the widget: SWIPELIST_GetBitmap(), SWIPELIST_GetBitmapSpace(), SWIPELIST_GetBkColor(), SWIPELIST_GetBorderSize(), SWIPELIST_GetFont(), SWIPELIST_GetItemSize(), SWIPELIST_GetItemUserData(), SWIPELIST_GetNumItems(), SWIPELIST_GetNumText(), SWIPELIST_GetReleasedItem(), SWIPELIST_GetScrollPos(), SWIPELIST_GetSelItem(), SWIPELIST_GetSepColor(), SWIPELIST_GetSepSize(), SWIPELIST_GetText(), SWIPELIST_GetTextAlign(), SWIPELIST_GetTextColor(), SWIPELIST_GetUserData()
     - New functions added to be able to set the default properties to be used for new widgets: SWIPELIST_SetDefaultBitmapSpace(), SWIPELIST_SetDefaultBkColor(), SWIPELIST_SetDefaultBorderSize(), SWIPELIST_SetDefaultFont(), SWIPELIST_SetDefaultSepColor(), SWIPELIST_SetDefaultSepSize(), SWIPELIST_SetDefaultTextColor(), SWIPELIST_SetDefaultTextAlign()
     - New functions added to be able to get the default properties to be used for new widgets: SWIPELIST_GetDefaultBitmapSpace(), SWIPELIST_GetDefaultBkColor(), SWIPELIST_GetDefaultBorderSize(), SWIPELIST_GetDefaultFont(), SWIPELIST_GetDefaultSepColor(), SWIPELIST_GetDefaultSepSize(), SWIPELIST_GetDefaultTextColor(), SWIPELIST_GetDefaultTextAlign()
   - EDIT widget:
     - New function EDIT_EnableInversion() added to be able to use a cursor with dedicated text- and background color instead of inversion.
   - LISTVIEW widget:
     - New function LISTVIEW_SetSelCol() added to be able to set the selected column when using the column selection mode of the widget.
   - SLIDER widget:
     - New function SLIDER_GetRange() added to be able to get the current range of the given SLIDER widget.

### Version 5.30

1. Core:
   - Colors:
     - emWin now supports ARGB as logical color to be able to use the full performance of Chrom-ART Accelerator (DMA2D).
   - Alpha blending / Antialiasing:
     - New function GUI_PreserveTrans() added to be able to preserve alpha information after drawing operation.
   - Bitmaps:
     - New bitmap format added (M8888I) to be able to support drawing of true color bitmaps without color conversion on layeres with the same color format.
     - New function GUI_SetAlphaMask8888() added to be able to set additional masks for drawing the pixels of a true color bitmap.
2. Animations:
   - New function GUI_ANIM_AddItem() added to be able to add animation items to an existing animation.
   - New function GUI_ANIM_Create() added to be able to create an animation object.
   - New function GUI_ANIM_Delete() added to be able to delete an animation object.
   - New function GUI_ANIM_Exec() added to be able to keep an animation alive.
   - New function GUI_ANIM_Start() added to be able to start the given animation.
3. BitmapConverter:
   - Bitmap converter now supports saving PNG images.
4. FontConverter:
   - New function 'File/Load BDF file' added to be able to load fonts in Adobe Glyph Bitmap Distribution Format (BDF).
5. MemoryDevices:
   - New function GUI_MEMDEV_WriteOpaque() added to be able to write memory devices without considering the alpha values.
   - New function GUI_MEMDEV_WriteOpaqueAt() added to be able to write memory devices at the given position without considering the alpha values.
6. Widgets:
   - TEXT widget:
     - New function TEXT_GetBkColor() added returning the current background color of the given widget.
     - New function TEXT_GetFont() added returning the current used font of the given widget.
     - New function TEXT_GetTextAlign() added returning the current text alignment of the given widget.
     - New function TEXT_GetTextColor() added returning the text color of the given widget.
     - New function TEXT_GetWrapMode() added returning the current wrap mode of the given widget.
     - New function TEXT_GetDefaultTextColor() added returning the default text color used for new TEXT widgets.
     - New function TEXT_GetDefaultWrapMode() added returning the default wrap mode used for new TEXT widgets.
   - LISTWHEEL widget:
     - New function LISTWHEEL_IsMoving() added to be able to detect if the LISTWHEEL is currently moving.
   - PROGBAR widget:
     - New function PROGBAR_GetMinMax() added to be able to get the range of the given PROGBAR widget.
     - New function PROGBAR_GetValue() added to be able to query the current value.
7. Display drivers:
   - GUIDRV_SLin:
     - Support for Solomon SSD1325 added.
   - GUIDRV_FlexColor:
     - Support for Himax HX8369 added.
     - Support for Sitronix ST7715 added.

### Version 5.28

1. Tools:
   - New tool emWinSPY:
     - Live information of RAM usage.
     - Showing current state of window tree and widget information (position, size, widget type, flags, ...) at runtime.
     - Logging touch- and keyboard input at runtime.
     - Making screenshots at runtime.
   - New tool emVNC:
     - The tool is released and added to the tool library.
2. Core:
   - Softlayers:
     - New function GUI_SOFTLAYER_Enable() added for switching on softlayers.
     - New function GUI_SOFTLAYER_Refresh() added to be able to achieve a refresh of the physical display.
     - New function GUI_SOFTLAYER_SetCompositeColor() added to be able to set up the color of the underlying background.
     - New function GUI_SOFTLAYER_MULTIBUF_Enable() added for enabling multiple buffering for physical screen updates.
   - emWinSPY:
     - New function GUI_SPY_Process() added to be called within the emWinSPY thread for managing the requests of the tool.
     - New function GUI_SPY_SetMemHandler() added to be able to set a custom defined memory manager for the emWinSPY thread.
     - New function GUI_SPY_StartServer() added for starting the server thread.
     - New sample GUI_SPY_X_StartServer() added to show how to start an emWinSPY server thread.
   - Sprites:
     - Sprites now supports true color bitmaps which enables semi transparent sprites.
   - Display driver cache management:
     - New function GUI_SetRefreshHook() added to be able to consider a tearing signal before writing cache content to the frame buffer of the LCD-controller.
   - Hardware acceleration:
     - New functions for hardware acceleration added.
3. Widgets:
   - Skinning (related to BUTTON, CHECKBOX, DROPDOWN, FRAMEWIN, HEADER, MENU, MULTIPAGE, PROGBAR, RADIO, SCROLLBAR, SLIDER, SPINBOX):
     - Skinning now is enabled by default by setting the default value of the configuration macro WIDGET_USE_FLEX_SKIN to 1 (formerly 0).
     - With (WIDGET_USE_FLEX_SKIN == 1) the new default background color of dialogs (WINDOW_BKCOLOR_DEFAULT) now is 0xFFFFFF instead of 0xC0C0C0
     - With (WIDGET_USE_FLEX_SKIN == 1) the new default background color of FRAMEWIN clients (FRAMEWIN_CLIENTCOLOR_DEFAULT) now is 0xFFFFFF instead of 0xC0C0C0
     - With (WIDGET_USE_FLEX_SKIN == 1) the new default font of FRAMEWIN headers (FRAMEWIN_DEFAULT_FONT) now is GUI_FONT_13_1 instead of GUI_FONT_8_1
     - With (WIDGET_USE_FLEX_SKIN == 1) the new default text color of FRAMEWIN headers (FRAMEWIN_TEXTCOLOR0_DEFAULT and FRAMEWIN_TEXTCOLOR1_DEFAULT) now is 0x000000 instead of 0xFFFFFF
   - LISTBOX widget:
     - New function LISTBOX_EnableWrapMode() added to be able to enable wrapping which makes it possible to scroll from the end of the list immediately to the beginning.
4. Display drivers:
   - GUIDRV_7528:
     - New driver for supporting Sitronix ST7528 using 16 levels of gray added.

### Version 5.26c

1. Display drivers:
   - GUIDRV_SPage:
     - Support for Ultrachip UC1638 added.

### Version 5.26

1. Core:
   - New DIRTYDEVICE object added to be able to monitor screen changes.
2. BitmapConverter:
   - Dithering added.
3. MemoryDevices:
   - New function GUI_MEMDEV_FadeOutDevices() added to be able to smoothly fade out the given foreground device from the given background device.
   - New function GUI_MEMDEV_RotateHQAlpha() added to be able to scale and rotate the given memory device in high quality and blending it in using the given alpha value.
   - New function GUI_MEMDEV_RotateAlpha() added to be able to scale and rotate the given memory device and blending it in using the given alpha value.
   - New function GUI_MEMDEV_Dither32() added to be able to dither 32bpp memory devices at runtime.
4. WindowManager:
   - New function WM_GetScrollbarH() added to be able to get the handle of an attached horizontal scroll bar.
   - New function WM_GetScrollbarV() added to be able to get the handle of an attached vertical scroll bar.
   - New function WM_SetModalLayer() added to be able to limit touch input to only one layer.
   - New function WM_GetModalLayer() added to be able to get the current modal layer.
5. Widgets:
   - LISTVIEW widget:
     - New function LISTVIEW_EnableCellSelect() added to be able to switch from row select mode (default) to cell select mode.
     - New function LISTVIEW_GetItemRect() added to be able to get the rectangle of the given cell.
     - New function LISTVIEW_SetItemTextSorted() added to be able to set the content of a cell by addressing the row by the sorted index.
   - MULTIPAGE widget:
     - New function MULTIPAGE_EnableScrollBar() added to be able to enable/disable the automatic scrollbar.
     - New function MULTIPAGE_SetBitmapEx() added to be able to set a bitmap to be shown at the specified offset in the tab of the given page.
     - New function MULTIPAGE_SetBitmap() added to be able to set a bitmap to be shown in the tab of the given page.
     - New function MULTIPAGE_SetTabWidth() added to be able to set the tab with of the given page.
     - New function MULTIPAGE_SetTabHeight() added to be able to set the tab height of the widget.
     - New function MULTIPAGE_SetTextAlign() added to be able to set the text alignment used to show the tab text of the widget.
6. Display drivers:
   - GUIDRV_FlexColor:
     - Support for LG Electronics LGDP4525 added.
     - Support for Ilitek ILI9488 added.
     - Support for Himax HX8357 added.
     - Support for RAIO RA8875 added.
   - GUIDRV_SPage:
     - Support for OriseTech SPLC502B added.

### Version 5.24

1. MultiTouch support:
   - New function GUI_MEMDEV_BlurWinBk() added to be able to blur the background of the given window within the given period.
   - New function GUI_MTOUCH_Enable() added to be able to enable and disable multi touch support.
   - New function GUI_MTOUCH_GetEvent() added to be able to retrieve a multi touch event.
   - New function GUI_MTOUCH_GetTouchInput() added to be able to retrieve touch point information of a multi touch event.
   - New function GUI_MTOUCH_IsEmpty() added to be able to check if the multi touch buffer is empty or not.
   - New function GUI_MTOUCH_SetOrientation() added to be able to configure the orientation of the MTouch screen.
   - New function GUI_MTOUCH_StoreEvent() added to be able to put an event into the MTouch buffer of emWin.
2. Memory devices:
   - New function GUI_MEMDEV_ClearAlpha() added to be able to clear the alpha values of a 32 bpp memory device specified by a mask device for defining the area to be used.
   - New function GUI_MEMDEV_CreateFixed32() added to be able to create a 32 bpp memory device.
   - New function GUI_MEMDEV_BlendColor32() added to be able to blend a 32 bpp memory device with the given color and the given intensity.
3. Antialiasing:
   - New function GUI_AA_PreservreTrans() added to be able to preserve the transparency information when drawing into a 32 bpp memory device.
4. TTF-Font Support:
   - New function GUI_TTF_CreateFontAA() added to be able to use antialiased TTF-fonts.
5. Window manager:
   - New function WM_EnableGestures() added to be able to receive WM_GESTURE messages.
   - Support for circular motion added.
6. Widgets:
   - KNOB widget:
     - New function KNOB_AddValue() added to be able to turn the knob via application.
     - New function KNOB_GetValue() added to be able to get the current turning position.
     - New function KNOB_SetBkColor() added to be able to change the transparent background to a dedicated color.
     - New function KNOB_SetBkDevice() added to be able to set a memory device for drawing the background.
     - New function KNOB_SetDevice() added to be able to specify the appearance of the knob.
     - New function KNOB_SetKeyValue() added to be able to specify the amount of steps as keyboard reaction.
     - New function KNOB_SetOffset() added to be able to specify an offset for the drawing operation.
     - New function KNOB_SetPeriod() added to be able to set up the period used to stop the knob.
     - New function KNOB_SetPos() added to be able to set the knob to a dedicated position.
     - New function KNOB_SetRange() added to be able to specify the range for movement.
     - New function KNOB_SetSnap() added to be able to set up snapping operations.
     - New function KNOB_SetTickSize() added to be able to set up the smallest unit of movement.
   - LISTWHEEL widget:
     - New function LISTWHEEL_SetDeceleration() added to be able to set up the deceleration used to stop the motion.
   - DROPDOWN widget:
     - New function DROPDOWN_SetListHeight() added to be able to set up the height of the expanded dropdown list.
   - ICONVIEW widget:
     - New function ICONVIEW_CreateIndirect() added to be able to use the widget within dialog resource tables.
   - ICONVIEW widget:
     - New function LISTVIEW_OwnerDraw() added to be able to be able to manage the default drawing operation of a cell.
     - New function LISTVIEW_SetOwnerDraw() added to be able to set up a custom function for drawing a cell.
     - New function LISTVIEW_GetWrapMode() added to be able to return the current text wrapping mode.
   - MULTIPAGE widget:
     - New function MULTIPAGE_GetPageText() added to be able to retrieve the label of the given page.
   - SPINBOX widget:
     - New function SPINBOX_SetEditMode() added to be able to set up the desired mode ('SPINBOX_EM_STEP' or 'SPINBOX_EM_EDIT').
     - New function SPINBOX_SetStep() added to be able to set the increment used for one step.
7. Display drivers:
   - GUIDRV_FlexColor:
     - Support for Ilitek ILI9163 added.
     - Support for RAIO RA8870 added.
   - GUIDRV_SLin:
     - Support for Solomon SSD1351 added.
     - Support for RAIO RA8835 added.
   - GUIDRV_SPage:
     - Support for Samsung S6B0108 added.
     - Support for Hitachi HD61202 added.
8. Core:
   - Support for new bitmap formats with 16bpp color information and 8 bit alpha channel added.
   - Streamed bitmaps:
     - New function GUI_DrawStreamedBitmapA555Ex() added to be able to draw 16bpp bitmaps with 5 bits blue, 5 bits green and 5 bits red and 8 bit alpha channel from a non addressable area.
     - New function GUI_DrawStreamedBitmapAM555Ex() added to be able to draw 16bpp bitmaps with 5 bits red, 5 bits green and 5 bits blue and 8 bit alpha channel from a non addressable area.
     - New function GUI_DrawStreamedBitmapA565Ex() added to be able to draw 16bpp bitmaps with 5 bits blue, 6 bits green and 5 bits red and 8 bit alpha channel from a non addressable area.
     - New function GUI_DrawStreamedBitmapAM565Ex() added to be able to draw 16bpp bitmaps with 5 bits red, 6 bits green and 5 bits blue and 8 bit alpha channel from a non addressable area.
     - New functions GUI_CreateBitmapFromStreamA555(), GUI_CreateBitmapFromStreamAM555(), GUI_CreateBitmapFromStreamA565() and GUI_CreateBitmapFromStreamAM565() added to be able to create the appropriate bitmap structures.
   - New function LCD_SetChromaEx() added to be able to set the chroma value used for transparency operations by the LCD-controller.
   - New function LCD_SetChromaModeEx() added to be able to specify the chroma mode to be used.
   - New function LCD_SetAlpha() added to be able to set the alpha value for the given layer.
   - New function LCD_SetAlphaModeEx() added to be able to specify the alpha mode.
   - New function LCD_SetVisEx() added to be able to set up the visibility of the given layer.
9. Touch drivers:
   - New multi touch driver for PIXCIR Tango C32 added.

### Version 5.22g

1. Display drivers:
   - GUIDRV_FlexColor:
     - Support for Solomon SSD1351 added.

### Version 5.22

1. Core:
   - Movie support:
     - New function GUI_MOVIE_Create() added to be able to create a movie handle for a file located within the addressable CPU memory area.
     - New function GUI_MOVIE_CreateEx() added to be able to create a movie handle for a file not located within the addressable CPU memory area.
     - New function GUI_MOVIE_Delete() added to be able to delete a movie handle.
     - New function GUI_MOVIE_GetFrameIndex() added to be able to get the index of the current frame.
     - New function GUI_MOVIE_GetInfo() added to be able to fill an information structure for a file located within the addressable CPU memory area.
     - New function GUI_MOVIE_GetInfoEx() added to be able to fill an information structure for a file not located within the addressable CPU memory area.
     - New function GUI_MOVIE_GetPos() added to be able to get the position used to show the movie.
     - New function GUI_MOVIE_GotoFrame() added to be able to set the index of the frame to be shown at next.
     - New function GUI_MOVIE_Pause() added to be able to stop the movie.
     - New function GUI_MOVIE_Play() added to be able to continue playing the movie.
     - New function GUI_MOVIE_SetPeriod() added to be able to set the period used for each frame.
     - New function GUI_MOVIE_SetPos() added to be able to set the position used to show the movie.
     - New function GUI_MOVIE_Show() added to be able to start playing the given movie at the given position.
   - Timer support:
     - New function GUI_TIMER_Create() added to be able to create a timer.
     - New function GUI_TIMER_Delete() added to be able to delete a timer.
     - New function GUI_TIMER_Restart() added to be able to restart a timer.
     - New function GUI_TIMER_SetPeriod() added to be able to set the period to be used by the timer.
   - Sprites:
     - New function GUI_SPRITE_SetLoop() added to be able to set or clear the loop flag of the given sprite.
     - New function GUI_SPRITE_StartAnim() added to be able to start a sprite animation.
     - New function GUI_SPRITE_StopAnim() added to be able to stop a sprite animation.
   - Color conversion:
     - New color conversion GUICC_8 for using 256 levels of gray added.
2. Widgets:
   - Multipage widget:
     - MULTIPAGE_SKIN_FLEX added to be able to support skinning for this widget.
     - New function MULTIPAGE_GetSkinFlexProps() added to be able to get the current flex skin properties.
     - New function MULTIPAGE_SetDefaultSkin() added to be able to set the default skin to be used for new widgets.
     - New function MULTIPAGE_SetDefaultSkinClassic() added to be able to use the classic skin for new widgets.
     - New function MULTIPAGE_SetSkinClassic() added to be able to set the classic look for the given widget.
     - New function MULTIPAGE_SetSkin() added to be able to set a custom skinning function to be used for the given widget.
     - New function MULTIPAGE_SetSkinFlexProps() added to be able to set the flex skin properties.
     - New function MULTIPAGE_GetPageText() added to be able to get the label text of the given page.
   - Menu widget:
     - MENU_SKIN_FLEX added to be able to support skinning for this widget.
     - New function MENU_GetSkinFlexProps() added to be able to get the current flex skin properties.
     - New function MENU_SetDefaultSkin() added to be able to set the default skin to be used for new widgets.
     - New function MENU_SetDefaultSkinClassic() added to be able to use the classic skin for new widgets.
     - New function MENU_SetSkinClassic() added to be able to set the classic look for the given widget.
     - New function MENU_SetSkin() added to be able to set a custom skinning function to be used for the given widget.
     - New function MENU_SetSkinFlexProps() added to be able to set the flex skin properties.
   - Graph widget:
     - New function GRAPH_SetAutoScrollbar() added to be able to enable automatic use of scrollbars.
     - New function GRAPH_GetScrollValue() added to be able to get the current scroll position.
     - New function GRAPH_SetScrollValue() added to be able to set the scroll position.
   - Checkbox widget:
     - New function CHECKBOX_SetSkinFlexButtonSize() added to be able to set the size of the button used for the given widget.
   - Multiedit widget:
     - New function MULTIEDIT_SetFocussable() added to be able to set the focusability of the given widget.
   - Iconview widget:
     - New function ICONVIEW_SetIconAlign() added to be able to set the icon alignment to be used.
   - Treeview widget:
     - New function TREEVIEW_ScrollToSel() added to be able to scroll to the currently selected item.
   - Listwheel widget:
     - New function LISTWHEEL_GetItemFromPos() added to be able to return the item of the given position.
   - Image widget:
     - Widget now sends notification messages WM_NOTIFICATION_CLICKED, WM_NOTIFICATION_RELEASED and WM_NOTIFICATION_MOVED_OUT.
   - Text widget:
     - Widget now sends notification messages WM_NOTIFICATION_CLICKED, WM_NOTIFICATION_RELEASED and WM_NOTIFICATION_MOVED_OUT.
3. Memory devices:
   - New function GUI_MEMDEV_BlurWinBk() added to be able to blur the background of the given window within the given period.
   - New function GUI_MEMDEV_BlurAndBlendWinBk() added to be able to blur and blend the background of the given window with the given color within the given period
   - New function GUI_MEMDEV_BlendWinBk() added to be able to blend the background of the given window with the given color within the given period
   - New function GUI_MEMDEV_CreateBlurredDevice32HQ() added to be able to create a blurred device using the high quality algorithm.
   - New function GUI_MEMDEV_CreateBlurredDevice32LQ() added to be able to create a blurred device using the low quality algorithm.
   - New function GUI_MEMDEV_CreateBlurredDevice32() added to be able to create a blurred device.
   - New function GUI_MEMDEV_PunchOutDevice() added to be able to punch out an area of a given 32 bpp memory device defined by an 8 bit mask device.
   - New function GUI_MEMDEV_RotateHR() added to be able to scale and rotate the given memory device in low quality and position it with subpixel coordinates.
   - New function GUI_MEMDEV_RotateHQHR() added to be able to scale and rotate the given memory device in high quality and position it with subpixel coordinates.
   - New function GUI_MEMDEV_SetBlurHQ() added to be able to set the desired blurring algorithm for GUI_MEMDEV_CreateBlurredDevice32() and the window effect functions to high quality.
   - New function GUI_MEMDEV_SetBlurLQ() added to be able to set the desired blurring algorithm for GUI_MEMDEV_CreateBlurredDevice32() and the window effect functions to low quality.
4. Antialiasing:
   - New function GUI_AA_FillRoundedRect() added to be able to draw a filled rectangle with antialiased rounded corners by using the given coordinates.
   - New function GUI_AA_FillRoundedRectEx() added to be able to draw a filled rectangle with antialiased rounded corners by using the given rectangle.
   - New function GUI_AA_DrawRoundedRect() added to be able to draw a rectangle with antialiased rounded corners by using the given coordinates.
   - New function GUI_AA_DrawRoundedRectEx() added to be able to draw a rectangle with antialiased rounded corners by using the given rectangle.
5. Display drivers:
   - New driver GUIDRV_UC1698G added.
   - GUIDRV_FlexColor:
     - Support for custom defined reading functions added.
   - GUIDRV_SPage:
     - Support for Solomon SSD1306 added.

### Version 5.20

1. Core:
   - New color conversions added: GUICC_M8888I, GUICC_M1555I, GUICC_M4444I, GUICC_1616I, GUICC_88666I.
   - New function GUI_SPRITE_CreateHidden() and GUI_SPRITE_CreateHiddenEx() added to be able to create sprites in hidden state.
   - New function GUI_SetOnErrorFunc() added to be able to set up a hook function to be called on serious errors.
2. Display drivers:
   - GUIDRV_SLin:
     - Support for S1D13305 added.
   - GUIDRV_FlexColor:
     - Support for Himax HX8340 and HX8301 added.
     - Support for Hitachi HD66772 added.
     - Support for Ilitek ILI9220 and ILI9221 added.
     - Support for Samsung S6D0117 added.
     - Support for Sitronix ST7712 added.
3. Common dialogs:
   - New common dialog CALENDAR added to be able to generate a dialog for selecting a calendar date.
   - New function CALENDAR_Create() added to be able to create a CALENDAR dialog.
   - New function CALENDAR_GetDate() added to be able to get the current date.
   - New function CALENDAR_GetSel() added to be able to get the current selection.
   - New function CALENDAR_SetDate() added to be able to set the current date.
   - New function CALENDAR_SetSel() added to be able to set the current selection.
   - New function CALENDAR_SetDefaultBkColor() added to be able to set the default background colors to be used.
   - New function CALENDAR_SetDefaultColor() added to be able to set the default foreground colors to be used.
   - New function CALENDAR_SetDefaultDays() added to be able to set up the weekday abbreviations to be shown.
   - New function CALENDAR_SetDefaultFont() added to be able to set the default fonts to be used.
   - New function CALENDAR_SetDefaultMonths() added to be able to set the months names to be used.
   - New function CALENDAR_SetDefaultSize() added to be able to set up the default sizes to be used.
4. VNC-Server:
   - New function GUI_VNC_SetLockFrame() added to be able to manage locking within VNC server on systems with indirect display controller interface.

### Version 5.18

1. Core:
   - Internal global data structure 'GUI_Context' does no longer exist. Use of this structure has been replaced by using the new global pointer 'GUI_pContext'.
2. BitmapConverter:
   - Support for creating animated sprites and cursors automatically from GIF-files added under 'File/Create animated cursor/sprite from GIF'.
3. Antialiasing:
   - New function GUI_AA_SetDrawMode() added to be able to use the current background color instead of the content of the frame buffer.
4. Window manager:
   - New function WM_SetCaptureMove() added to be able to make a window moveable.
   - New functions WM_Screen2hWin() and WM_Screen2hWinEx() added to be able to get the first window handle below the given position.
5. Widgets:
   - SPINBOX widget:
     - New function SPINBOX_SetRange() added to be able to set the desired range.
   - LISTVIEW widget:
     - New function LISTVIEW_SetWrapMode() added to be able to set the desired wrap mode.
   - SPINBOX widget:
     - New function SPINBOX_SetButtonSize() added to be able to set the horizontal size of the buttons.
   - BUTTON widget:
     - New function BUTTON_SetReactOnTouch() added to be able to set the reaction mode.
   - TEXT widget:
     - New function TEXT_GetText() added to be able to get the text of the given widget.
6. Memory devices:
   - New function GUI_MEMDEV_SerializeBMP() added to be able to save the content of a memory device as a BMP file.
7. Display drivers:
   - Custom drivers:
     - Need to be reworked because of replacing 'GUI_Context' with 'GUI_pContext'.
   - GUIDRV_FlexColor:
     - GUIDRV_FlexColor_SetInterface66709_B16() replaced by GUIDRV_FlexColor_SetReadFunc66709_B16()
     - GUIDRV_FlexColor_SetInterface66712_B16() replaced by GUIDRV_FlexColor_SetReadFunc66712_B16()
     - GUIDRV_FlexColor_SetInterface66720_B16() replaced by GUIDRV_FlexColor_SetReadFunc66720_B16()
     - Support for Solomon SSD1284, SSD1289, SSD1298 added.
     - Support for Himax HX8352B added.
   - GUIDRV_S1D13781:
     - Reworked in order to support rotation.
   - GUIDRV_Lin:
     - 1bpp variant of driver now supports display sizes which are a multiples of 8.

### Version 5.16

1. New ToolTip support:
   - New function WM_TOOLTIP_AddTool() added to be able to add a tool to a ToolTip object.
   - New function WM_TOOLTIP_Create() added to be able to create a ToolTip object.
   - New function WM_TOOLTIP_Delete() added to be able to delete a ToolTip object.
   - New function WM_TOOLTIP_SetDefaultFont() added to be able to set the default font to be used to draw the ToolTip text.
   - New function WM_TOOLTIP_SetDefaultColor() added to be able to set the default colors to be used to draw the ToolTips.
   - New function WM_TOOLTIP_SetDefaultPeriod() added to be able to set up the periods to be used with the ToolTips.
2. New language support:
   - New function GUI_LANG_GetNumItems() added to be able to get the available number of languages.
   - New function GUI_LANG_GetText() added to be able to get a pointer to a text specified by the text index.
   - New function GUI_LANG_GetTextEx() added to be able to get a pointer to a text specified by text index and language index.
   - New function GUI_LANG_LoadCSV() added to be able to read a CSV file with different languages.
   - New function GUI_LANG_LoadCSVEx() added to be able to read a CSV file with different languages without having the complete file in RAM.
   - New function GUI_LANG_LoadText() added to be able to read a text resource file with only one language.
   - New function GUI_LANG_LoadTextEx() added to be able to read a text resource file with only one language without having the complete file in RAM.
   - New function GUI_LANG_SetLang() added to be able to set the current language to be used.
   - New function GUI_LANG_SetMaxNumLang() added to be able to set the maximum available number of languages.
   - New function GUI_LANG_SetSep() added to be able to set the separator to be used within CSV files.
3. New CHOOSECOLOR dialog:
   - New function CHOOSECOLOR_Create() added to be able to create a dialog for choosing a color.
   - New function CHOOSECOLOR_GetSel() added to be able to get the current selection.
   - New function CHOOSECOLOR_SetSel() added to be able to set the current selection.
   - New function CHOOSECOLOR_SetDefaultColor() added to be able to set the default colors to be used.
   - New function CHOOSECOLOR_SetDefaultSpace() added to be able to set the space between the colors.
   - New function CHOOSECOLOR_SetDefaultBorder() added to be able to set the space between dialog border and color rectangles.
   - New function CHOOSECOLOR_SetDefaultButtonSize() added to be able to set the button size to be used.
4. New CHOOSEFILE dialog:
   - New function CHOOSEFILE_Create() added to be able to create a dialog for brousing through a directory structure and to select a file.
   - New function CHOOSEFILE_EnableToolTips() added to be able to enable ToolTips within the CHOOSEFILE dialog.
   - New function CHOOSEFILE_SetButtonText() added to be able to set the button text to be used.
   - New function CHOOSEFILE_SetDefaultButtonText() added to be able to set the default button text to be used for new dialogs.
   - New function CHOOSEFILE_SetToolTips() added to be able to set the text shown within the ToolTips.
   - New function CHOOSEFILE_SetTopMode() added to be able to use the button bar at the top of the dialog.
5. Widgets:
   - ICONVIEW widget:
     - New function ICONVIEW_EnableStreamAuto() added to be able to use all kinds of streamed bitmaps with the widget.
   - DROPDOWN widget:
     - New function DROPDOWN_SetUpMode() added to be able to open the widget upwards.
   - SPINBOX widget:
     - New function SPINBOX_SetButtonSize() added to be able to set the horizontal size of the buttons.
   - BUTTON widget:
     - New function BUTTON_SetReactOnTouch() added to be able to set the reaction mode.
6. New touch driver added:
   - New touch driver GUITDRV_ADS7846 added.
7. Memory devices:
   - New function GUI_MEMDEV_RotateHQT() added to be able to improve the performance with images containing a large amount of completely transparent pixels.
8. Core:
   - New function GUI_GetKeyState() available to be able to get the current key state (pressed or unpressed).
   - New function GUI_PID_IsPressed() available to be able to check if the PID is currently in pressed state.
   - New function LCD_SetMaxNumColors() available to be able to reduce memory consumption on systems using less than 256 colors.
   - New color conversions GUICC_1_2, GUICC_1_4, GUICC_1_5, GUICC_1_8, GUICC_1_16, GUICC_1_24 added to be able to use the b/w version with drivers written for higher color depths.
9. Display drivers:
   - GUIDRV_FlexColor:
     - Support for Ilitek ILI9335, ILI9338, ILI9340, ILI9341, ILI9342 added.
     - Support for Samsung S6E63D6 added.
   - GUIDRV_SPage:
     - Support for Sitronix ST7591 added.
     - Support for Epson S1D15605, S1D15606, S1D15607, S1D15608, S1D15705, S1D15710, S1D15714 added.
     - Support for Integrated Solutions Technology IST3020 added.
     - Support for New Japan Radio Company NJU6676 added.
     - Support for Novatek NT7502, NT7534, NT7538, NT75451 added.
     - Support for Samsung S6B0719, S6B0713, S6B0724, S6B1713 added.
     - Support for Sino Wealth SH1101A added.
     - Support for Sitronix ST7522, ST7565, ST7567 added.
     - Support for Solomon SSD1805, SSD1303, SSD1815 added.
     - Support for UltraChip UC1608, UC1701, UC1601, UC1606 added.
     - Support for Sunplus SPLC501C added.
     - Support for Epson S1D15E05, S1D15E06, S1D15719, S1D15721 added.
   - GUIDRV_Lin:
     - New optimised routines for 8bpp available.
   - New driver GUIDRV_S1D13781 available.

### Version 5.14

1. Widgets:
   - SPINBOX widget:
     - New SPINBOX widget added to be able to spin values up and down.
   - IMAGE widget:
     - New IMAGE widget added to be able to add images or animations to a window.
   - DROPDOWN widget:
     - New function DROPDOWN_GetItemText() added to be able to get the text of an item.
   - EDIT widget:
     - New function EDIT_SetBkColor() added to be able to get the background color of the widget.
2. Display drivers:
   - GUIDRV_FlexColor:
     - Support for Solomon SSD1961 added.
     - Support for Renesas R61526 added.
     - Support for FocalTech FT1509 added.
     - Support for Ilitek ILI9342 added.
     - Support for Himax HX8347 and HX8352 added.
   - GUIDRV_07X1:
     - Support for Novatek NT7508 added.
   - GUIDRV_Page1bpp:
     - Support for Solomon SSD1821 added.
3. Core:
   - Streamed bitmaps:
     - New function GUI_DrawStreamedBitmap555Ex() added to be able to draw 16bpp bitmaps with 5 bits blue, 5 bits green and 5 bits red from a non addressable area.
     - New function GUI_DrawStreamedBitmapM555Ex() added to be able to draw 16bpp bitmaps with 5 bits red, 5 bits green and 5 bits blue from a non addressable area.
     - New function GUI_DrawStreamedBitmap565Ex() added to be able to draw 16bpp bitmaps with 5 bits blue, 6 bits green and 5 bits red from a non addressable area.
     - New function GUI_DrawStreamedBitmapM565Ex() added to be able to draw 16bpp bitmaps with 5 bits red, 6 bits green and 5 bits blue from a non addressable area.
     - New function GUI_DrawStreamedBitmap24Ex() added to be able to draw 16bpp bitmaps with 8 bits blue, 8 bits green and 8 bits red from a non addressable area.
     - New function GUI_DrawStreamedBitmapExAuto() added to be able to draw any kind of currently supported streamed bitmap from a non addressable area.
     - New function GUI_DrawStreamedBitmapAuto() added to be able to draw any kind of currently supported streamed bitmap.
   - New function GUI_CURSOR_SelectAnim() added to be able to set an animated cursor.
   - New function GUI_SPRITE_CreateAnim() added to be able to create animated sprites.
4. GUIBuilder:
   - Support for IMAGE widget added.
5. Window manager:
   - Motion support added (gesture support):
     - New function WM_MOTION_Enable() added to be able to enable the motion support of the window managed.
     - New function WM_MOTION_SetDeceleration() added to be able to set the deceleration of a currently moving window.
     - New function WM_MOTION_SetDefaultPeriod() added to be able to set the default period of the deceleration period after releasing the PID.
     - New function WM_MOTION_SetMotion() added to be able to start a window moving operation by defining axis, speed and deceleration.
     - New function WM_MOTION_SetMoveable() added to be able to make a window 'moveable'.
     - New function WM_MOTION_SetMovement() added to be able to start a window moving operation by defining axis, speed and distance.
     - New function WM_MOTION_SetSpeed() added to be able to start a window moving operation by defining axis and speed.
   - WM_MOVE message now sends movement information by a pointer to a WM_MOVE_INFO structure.
6. Simulation:
   - New function SIM_GUI_Enable() added.

### Version 5.12

1. Core:
   - New function GUI_CopyRect() added to be able to copy rectangular areas.
   - New function GUI_MULTIBUF_UseSingleBuffer() added to be able to use one framebuffer for multiple layers.
   - New color conversions GUICC_666_9 and GUICC_M666_9 added.
2. Display drivers:
   - New runtime configurable driver GUIDRV_FlexColor which can be used as replacement for GUIDRV_CompactColor.
   - New runtime configurable driver GUIDRV_SPage which can be used as replacement for GUIDRV_1611.
   - New runtime configurable driver GUIDRV_Dist which can be used for multiple controllers on one display.
   - GUIDRV_Lin:
     - Support for LCD_DEVFUNC_COPYRECT added.
   - GUIDRV_CompactColor_16:
     - Support for Solomon SSD1961 added.
3. Memory devices:
   - Drawing of high- and true color memory devices accelerated.
   - New function GUI_MEMDEV_ShiftWindow() added to be able to shift in the content of a new window by shifting out the old content simultaneously.
   - New function GUI_MEMDEV_MarkDirty() added to be able to invalidate a given area.
4. Widgets:
   - ICONVIEW widget:
     - New function ICONVIEW_AddStreamedBitmapItem() added to be able to use streamed bitmaps.
     - New function ICONVIEW_AddStreamedBitmapItem() added to be able to use streamed bitmaps.
     - New function ICONVIEW_GetItemUserData() added to be able to get item related user data.
     - New function ICONVIEW_GetItemText() added to be able to get the text of a given item.
     - New function ICONVIEW_GetNumItems() added to be able to get the number of items of the widget.
     - New function ICONVIEW_InsertBitmapItem() added to be able to insert a bitmap image.
     - New function ICONVIEW_InsertStreamedBitmapItem() added to be able to insert a streamed bitmap image.
     - New function ICONVIEW_SetBitmapItem() added to be able to change the desired bitmap.
     - New function ICONVIEW_SetFrame() added to be able to change the frame size.
     - New function ICONVIEW_SetItemText() added to be able to change the item text.
     - New function ICONVIEW_SetItemUserData() added to be able to set item related user data.
     - New function ICONVIEW_SetSpace() added to be able to change the space between the items.
     - New function ICONVIEW_SetStreamedBitmapItem() added to be able to change the desired streamed bitmap.
     - New function ICONVIEW_SetTextAlign() added to be able to change the text alignment of the widget.
   - LISTWHEEL widget:
     - New function LISTWHEEL_SetBkColor() added to be able to change the background color.
   - TEXT widget:
     - New function TEXT_GetNumLines() added to be able to get the number of text lines.
   - TREEVIEW widget:
     - New function TREEVIEW_SetBitmapOffset() added to be able to add an offset for drawing the plus- and minus bitmap.
     - New function TREEVIEW_SetIndent() added to be able to change the indention.
     - New function TREEVIEW_SetOwnerDraw() added to be able to add a custom drawing function.
     - New function TREEVIEW_SetTextIndent() added to be able to change the text indention.
   - BUTTON widget:
     - New function BUTTON_SetTextOffset() added to be able to add an offset for drawing the button text.
   - LISTVIEW widget:
     - New function LISTVIEW_SetHeaderHeight() added to be able to set the height of the header.

### Version 5.10

1. Widgets:
   - GUIBuilder now available.
2. Display drivers:
   - GUIDRV_CompactColor_16:
   - Support for Ilitek ILI9328 and ILI9221 added.
   - Support for Sitronix ST7715.
   - GUIDRV_Bitplains:
   - New function GUIDRV_BitPlains_Config() added to be able to mirror the pixels within a byte.
3. Memory devices:
   - New function GUI_MEMDEV_MarkDirty() added to be able to mark an area of a memory device as 'touched'.

### Version 5.08

1. Core:
   - Multiple buffering added to be able to use 'Double Buffering' or 'Tripple Buffering'.
   - New function GUI_MULTIBUF_Config() added to be able to set up multiple buffers.
   - New functions GUI_MULTIBUF_Begin() and GUI_MULTIBUF_End() added to use multiple buffers.
   - New function GUI_UC_EnableBIDI() added to be able to configure the use of bidirectional text at runtime.
   - New function GUI_CreateBitmapFromStreamRLEAlpha() added to be able to use streamed compressed alpha channel bitmaps.
   - New function GUI_CreateBitmapFromStreamRLE32() added to be able to use streamed compressed bitmaps with alpha channel.
   - New function GUI_SetSignalEventFunc() added to be able to set up a function which signals an event.
   - New function GUI_SetWaitEventFunc() added to be able to set up a function which waits for an event.
   - New function GUI_SetWaitEventTimedFunc() added to be able to set up a function which waits for an event for the given period.
   - New function LCD_SetDevFunc() added to be able to add optional display driver routines.
2. Widgets:
   - New configuration macro WIDGET_USE_FLEX_SKIN which can be used to change the default behavior of the widgets to use 'Skinning' per default.
   - New functions <WIDGET>_SetUserData() added to be able to add custom data to a widget. (This function has been added to all widgets)
   - New functions <WIDGET>_GetUserData() added to be able to retrieve custom data from a widget. (This function has been added to all widgets)
   - New functions <WIDGET>_CreateUser() added to be able to add memory for custom cata to a widget. (This function has been added to all widgets)
   - Interface of LISTWHEEL_SetUserData() and LISTWHEEL_GetUserData() changed because of the new <WIDGET>_SetUserData() functions.
   - Function LISTVIEW_SetUserData() and LISTVIEW_GetUserData() renamed to LISTVIEW_SetUserDataRow() and LISTVIEW_GetUserDataRow() because of the new <WIDGET>_SetUserData() and <WIDGET>_GetUserData() functions.
   - New function BUTTON_SetReactOnLevel() added to be able to set up the button to react on level changes only.
   - New function ICONVIEW_DeleteItem() added to be able to delete single items.
   - New function TREEVIEW_ITEM_CollapseAll() added to be able to collapse each item of the given node.
   - New function TREEVIEW_ITEM_ExpandAll() added to be able to expand each item of the given node.
   - New function SCROLLBAR_SetThumbSizeMin() added to be able to set up the minimum size of the thumb.
   - New function SCROLLBAR_GetThumbSizeMin() added to be able to get the minimum size of the thumb.
   - New function ICONVIEW_CreateIndirect() added to be able to use the widget with the dialog creation functions.
   - New function LISTWHEEL_CreateIndirect() added to be able to use the widget with the dialog creation functions.
   - New function BUTTON_GetTextAlign() added to be able to get the text alignment of the widget.
3. Memory devices:
   - New function GUI_MEMDEV_SetAnimationCallback() added to be able to set up a function which is called after each step of the animation.
   - New animation function GUI_MEMDEV_ShiftInWindow() added to be able to shift in the given window from the top, left, right or bottom edge.
   - New animation function GUI_MEMDEV_ShiftOutWindow() added to be able to shift out the given window to the top, left, right or bottom edge.
4. FontConverter:
   - New function 'File/Merge C file' added to be able to merge font files.
   - New command line option 'merge' added to be able to merge font files per command line.
5. BitmapConverter:
   - New format 'True color with alpha channel, compressed' added to be able to use compressed alpha bitmaps.
   - New format 'Alpha channel, compressed' added to be able to use only the alpha channel with the current foreground color.
   - New function 'Image/Convert Into/Best pPalette + transparency' added to be able to convert alpha bitmaps into palette based bitmaps with transparency.
6. Window manager:
   - New message WM_PRE_PAINT added which is send to a window immediately before the first WM_PAINT message is send.
   - New message WM_POST_PAINT added which is send to a window immediately after the last WM_PAINT message has been send.
   - New function WM_MULTIBUF_Enable() added to be able to let the window manager use multiple buffers automatically.
   - Automatic use of cache locking and unlocking added.

### Version 5.06

1. Skinning:
   - Skinning for the most common widgets (BUTTON, CHECKBOX, DROPDOWN, FRAMEWIN, HEADER, PROGBAR, RADIO, SCROLLBAR, SLIDER) added.
     The following functions are available:
   - <WIDGET>_GetSkinFlexProps() added to retrieve the configurable parameters of the given skin.
   - <WIDGET>_SetSkinClassic() added to (re)set the classic look and feel of the given widget.
   - <WIDGET>_SetSkin() added to be able to set the desired skin for the given widget.
   - <WIDGET>_DrawSkinFlex() added as default callback function of the 'flex'-skin.
   - <WIDGET>_SetDefaultSkin() added to be able to set a new default skin for new widgets.
   - <WIDGET>_SetSkinFlexProps() added to be able to configure the default 'flex'-skin by the given configuration structure.
   - <WIDGET>_SetDefaultSkinClassic() added to set the classic design as default for new widgets.
2. Memory devices:
   - New function GUI_MEMDEV_FadeDevices() added to be able to smoothly fade the given devices.
   - New function GUI_MEMDEV_FadeInWindow() added to be able to smoothly fade in a given window.
   - New function GUI_MEMDEV_FadeOutWindow() added to be able to smoothly fade out a given window.
   - New function GUI_MEMDEV_MoveInWindow() added to be able to 'move in and optional rotate' a window from a given coordinate.
   - New function GUI_MEMDEV_MoveOutWindow() added to be able to 'move out and optional rotate' a window from a given coordinate.
3. Core:
   - New function GUI_DrawGradientRoundedV() added to be able to draw vertical gradients with rounded corners.
   - New function GUI_DrawGradientRoundedH() added to be able to draw horizontal gradients with rounded corners.
   - New function GUI_DrawRoundedFrame() added to be able to draw rounded frames.
   - New function GUI_SetDefaultFont() added to be able to set the default font used after GUI_Init().
   - New function GUI_GetPixelIndex() added to be able to get the pixel index value of the given position.
   - New function GUI_UC_EnableBIDI() added to be able to enable bidirectional text support at runtime as required for example for Arabic and Hebrew.
4. Widgets:
   - New function BUTTON_SetReactOnLevel() added to be able to configure the behavior of BUTTON widgets.
   - New function GRAPH_DATA_XY_SetOwnerDraw() added to be able to set up a owner draw function for the GRAPH_DADA_XY object.
   - New function LISTVIEW_SetItemBitmap() added to be able to set a bitmap to be drawn in the given cell.
   - New function LISTWHEEL_SetPos() added to be able to set the current position of the LISTWHEEL without moving.
   - New function SCROLLBAR_GetNumItems() added to be able to get the appropriate value.
   - New function SCROLLBAR_GetPageSize() added to be able to get the appropriate value.
5. Multitasking:
   - New function GUITASK_SetMaxTask() added to be able to configure the maximum number of tasks.
6. Simulation:
   - New function SIM_GUI_SetCallback() added.
   - New function SIM_GUI_ShowDevice() added.
7. Display drivers:
   - New function GUI_SetOrientation() added.
   - New driver GUIDRV_S1D15G00 added.
   - New driver GUIDRV_SLin added.
   - New driver GUIDRV_S1D13748 added. (Replacement for GUIDRV_13748)
   - New driver GUIDRV_S1D13748 added.
   - GUIDRV_CompactColor_16:
   - Support for Himax HX8353 added.
   - Support for LGDP4551 added.
   - Support for Orisetech SPFD54124C added.
   - Support for Renesas R61505 added.
   - Support for Sitronix ST7735 and ST7787 added.
   - Support for Solomon SSD1284 and SSD2119 added.
   - Driver GUIDRV_07X1 added.
   - Driver GUIDRV_Fujitsu_16 added.

### Version 5.04

1. Display drivers:
   - New driver GUIDRV_BitPlains added.
   - New driver GUIDRV_SLin added.
   - New driver GUIDRV_SSD1926 added.
   - Driver GUIDRV_1611 added.
   - Driver GUIDRV_6331 added.
   - Driver GUIDRV_Page1bpp added.
   - GUIDRV_CompactColor_16:
     - Support for Himax HX8352 added.
     - Support for Solomon SSD1355 and SSD1963 added.
     - Support for Orisetech SPFD5414D added.
     - Support for Ilitek ILI9320 and ILI9326 added.
2. VNC server:
   - New function GUI_VNC_EnableKeyboardInput() added.
   - New function GUI_VNC_GetNumConnections() added.
   - New function GUI_VNC_SetPassword() added.
   - New function GUI_VNC_SetProgName() added.
   - New function GUI_VNC_SetSize() added.
   - New function GUI_VNC_RingBell() added.
3. Core:
   - New function GUI_DispStringInRectWrap() added to draw text within the given rectangle.
   - New function GUI_WrapGetNumLines() added to calculate the required number of lines for the given text.
   - New function GUI_EnableAlpha() added to enable automatic software alpha blending.
   - New function GUI_RestoreUserAlpha() added to restore the previous user alpha value.
   - New function GUI_SetUserAlpha() added to set an additional user alpha blending value.
   - New function GUI_CreateBitmapFromStream() added to create a bitmap from a stream of any format.
   - New function GUI_DrawStreamedBitmapEx() added to draw a streamed bitmap without loading it completely into RAM.
   - New function GUI_GetStreamedBitmapInfo() added to get information about a streamed bitmap.
   - New function GUI_GetStreamedBitmapInfoEx() added to get information about a streamed bitmap which is not located within the addressable CPU area.
   - New function GUI_SetStreamedBitmapHook() added to set a function which can be used to manipulate the palette of a streamed bitmap at runtime.
   - New function GUI_CreateBitmapFromStreamIDX() added to create a bitmap from a stream of an index based bitmap.
   - New function GUI_CreateBitmapFromStreamRLE4() added to create a bitmap from a stream of an RLE4 compressed bitmap.
   - New function GUI_CreateBitmapFromStreamRLE8() added to create a bitmap from a stream of an RLE8 compressed bitmap.
   - New function GUI_CreateBitmapFromStream565() added to create a bitmap from a stream of a high color bitmap.
   - New function GUI_CreateBitmapFromStreamM565() added to create a bitmap from a stream of a high color bitmap.
   - New function GUI_CreateBitmapFromStream555() added to create a bitmap from a stream of a high color bitmap.
   - New function GUI_CreateBitmapFromStreamM555() added to create a bitmap from a stream of a high color bitmap.
   - New function GUI_CreateBitmapFromStreamRLE16() added to create a bitmap from a stream of a RLE compressed high color bitmap.
   - New function GUI_CreateBitmapFromStreamRLEM16() added to create a bitmap from a stream of a RLE compressed high color bitmap.
   - New function GUI_CreateBitmapFromStream24() added to create a bitmap from a stream of a true color bitmap.
   - New function GUI_CreateBitmapFromStreamAlpha() added to create a bitmap from a stream of a true color bitmap with alpha blending.
4. Fonts:
   - Support for new font formats extended AA2 and extended AA4 added.
   - New framed font F20F_ASCII added.
   - New fonts F6x8_ASCII and F6x8_1 added.
   - New fonts F8x8_ASCII and F8x8_1 added.
   - New fonts F8x16_ASCII and F8x16_1 added.
5. Keyboard support:
   - Input buffer added.
6. Pointer input devices:
   - Input buffer added.

### Version 5.02

1. Core:
   - GUI_DrawBitmapEx(): Support for alpha bitmaps added.
2. VNC:
   - GUI_VNC_RingBell() added.
   - GUI_VNC_GetNumConnections() added.
3. Display drivers:
   - GUIDRV_CompactColor_16.c:
     - Support for Himax HX8340 added.
     - Support for Solomon SSD1298 added.
     - Support for Epson S1D19122 added.
     - Support for cache control added.
   - New driver added to support Sitronix ST7529.

## Program corrections

### Version 5.48k

1. Core:
   - Under certain circumstances GUI_EnableAlpha() with drawing text does not work right and leads into using wrong colors. Problem solved.

### Version 5.48j

1. Core:
   - Arabic text: Under certain circumstances a wrong representation form is shown. Problem solved.

### Version 5.48i

1. Widget:
   - Under certain circumstances a set user draw function does not work properly. Fixed.

### Version 5.48h

1. Widget:
   - GRAPH widget does not take width of scrollbar into account. Fixed.

### Version 5.48g

1. Widget/Window Manager:
   - Issues fixed when defining WM_SUPPORT_TRANSPARENCY to 0.
   - EDIT widget has a timer for blinking cursor only when it is focused.

### Version 5.48f

1. Core:
   - Unicode characters from a range above 0xFFFF where treated as non existing characters (e.g. Emojis). Now they will get processed but still can not be displayed.

### Version 5.48d

1. Bitmap Converter:
   - 16 bit color formats are not saved correctly. Problem solved.

### Version 5.48c

1. Simulation:
   - Copy to clipboard does not work properly if using 16bpp color conversion. Problem solved.

### Version 5.48b

1. Core:
   - GUI_DispFloatFix() displays numbers which exceed the given range. Problem solved.
2. Memory Devices:
   - Blurring takes too long. Problem solved by replacing the blurring function by a much faster version.

### Version 5.48a

1. Antialiasing:
   - GUI_AA_DrawCircle() is not displayed properly with a pen size set. Problem solved.
2. Display driver:
   - Renamed internal function, due to conflicts.

### Version 5.48

1. Core:
   - Animation:
     - Doesn't behave correctly when GUI_Exit() is called. Fixed.
   - PNG:
     - If GUI_USE_ARGB is enabled, a PNG without transparency wasn't draw. Fixed.
   - BMP:
     - BMPs with a palette are not displayed properly. Fixed.
2. Widgets:
   - TREEVIEW:
     - Widget does not send WM_NOTIFICATION_SEL_CHANGED if selection changed by mouse click. Fixed.
   - SWIPELIST:
     - SWIPELIST_GetBkColor and SWIPELIST_SetBkColor didn't unlocked emWin. Fixed.
   - TEXT:
     - TEXT_GetNumLines() returns wrong number of lines due to wrong font set. Now uses the the font set for the TEXT widget.

### Version 5.46p

1. Core:
   - Not all variants of BMP files are shown correctly. Problem solved
   - BMPs with a negative height are not displayed. Problem solved

### Version 5.46o

1. Core:
   - Joining of Arabic text was not correct in case of multiple adjacent non spacing marks between the characters. Problem solved

### Version 5.46n

1. Widgets:
   - DROPDOWN: Trigger button of DROPDOWN widget does not work right. Problem solved

### Version 5.46m

1. Widgets:
   - MENU: The submenu of submenu is not positioned correctly. Fixed.

### Version 5.46l

1. Widgets:
   - DROPDOWN: Under certain circumstances it was not possible to focus another widget when reacting on notifications from the DROPDOWN widget.

### Version 5.46k

1. Tools:
   - FontConverter: When changing the font height 'Baseline' is not updated. Problem solved.

### Version 5.46j

1. Widgets:
   - Under certain circumstances EDIT_SetFloat() does not observe a leading zero. Problem Fixed.

### Version 5.46i

1. Core:
   - Under certain circumstances JPEG module doesn't free memory properly. Problem Fixed.
2. Widgets:
   - SPINBOX generates two release events. Problem Fixed.

### Version 5.46h

1. Widgets:
   - Under certain circumstances the HEADER widget does not behave correctly. Problem Fixed.

### Version 5.46g

1. Core:
   - Under certain circumstances streamed bitmaps were not properly displayed. Problem Fixed.

### Version 5.46f

1. Core:
   - When drawing with GUI_PreserveTrans() and GUI_EnableAlpha() enabled GUI_DrawHLine() does not preserve transparency and mixes colors directly. Problem Fixed.

### Version 5.46e

1. Core:
   - BMP files with alpha channel are not drawn properly depending on color conversion. Problem Fixed.

### Version 5.46b

1. Core (Shift JIS):
   - Cursor management in widgets does not work right with Shift JIS fonts. Problem Fixed.

### Version 5.46a

1. Display drivers:
   - GUIDRV_FlexColor: Initialization function does not return error code if not enough memory is available. Problem Fixed.
2. Core:
   - Memory management does not work right under 64 bit systems. Problem Fixed.
3. General:
   - Some data type conversions on 64 bit systems not correct. Problems Fixed.
4. BitmapConverter:
   - True color bitmaps used 'unsigned long' for the pixel array. Changed to 'U32' to be able to work under LP64 systems. Problem Fixed.

### Version 5.44b

1. Core:
   - Under certain circumstances BMP files are displayed wrong. Problem Fixed.

### Version 5.44a

1. Manual:
   - Wrong table description. Fixed.
2. Widgets:
   - Drawing behavior of LISTBOX doesn't work correct if transparency flag is not set. Problem Fixed.

### Version 5.44

1. Widgets:
   - Drawing behavior of LISTBOX doesn't work correct if transparency flag is set. Problem Fixed.
   - Drawing behavior of LISTVIEW doesn't work correct if transparency flag is set. Problem Fixed.
   - Drawing behavior of SWIPELIST doesn't work correct if transparency flag is set. Problem Fixed.

### Version 5.42i

1. Memory devices:
   - When a measurement device is selected emWin tried to use hardware routines to write into it. Problem Fixed.

### Version 5.42h

1. LISTBOX widget:
   - Changed drawing behavior of the LISTBOX to make it easier to achieve a transparent LISTBOX.

### Version 5.42g

1. Window manager:
   - If a window is permanently invalidated by a timer it could occur, that GUI_Exec() does not return. Problem solved.

### Version 5.42f

1. LISTWHEEL widget:
   - LISTWHEEL does not operate correctly when working more than 24.86 days. Problem solved.

### Version 5.42e

1. CALENDAR widget:
   - Function CALENDAR_SetSel() does not work right. Problem solved.
   - New Function CALENDAR_GetDaysOfMonth() added to be able to get the number of days of the given month.
   - New Function CALENDAR_GetWeekday() added to be able to get the weekday of the given date.

### Version 5.42d

1. Simulation:
   - Option 'GUI_VNC_SUPPORT_WEBSOCKET_SERVER' disabled per default in GUI_VNC_X_StartServerWin32.c.
   - IP_FS_Win32.c moved to folder SIM_GUI.

### Version 5.42c

1. Display drivers:
   - GUIDRV_SH_MEM: 3bpp color mode added.
   - GUIDRV_S1D13L01: Configuration option 'DisableBitBLT' for disabling the BitBLT engine added to structure CONFIG_S1D13L01.

### Version 5.42b

1. Core:
   - Sprites with Alpha-Bitmaps do not work right when GUI_USE_ARGB == 0. Problem Fixed

### Version 5.42a

1. Core:
   - Joining of Arabic letters in combination with TATWEEL doesn't work. Problem Fixed
2. Display drivers:
   - GUIDRV_FlexColor: Support for Sitronix ST7775 added.

### Version 5.40l

1. Simulation:
   - XOR function of GUIDRV_WIN32 does not work right with multiple buffers. Problem solved.
2. GUIBuilder:
   - Adding large image files could cause undefined behavior. Problem solved.

### Version 5.40k

1. Bitmap Converter:
   - A non transparent image saved with alpha channel had wrong alpha values. Problem solved.

### Version 5.40j

1. Core (Streamed bitmaps):
   - The function GUI_DrawStreamedBitmapExAuto() does not support GUI_STREAM_FORMAT_M8888I. Problem solved.

### Version 5.40i

1. Core:
   - Export of BMP files does not work right. Problem solved.

### Version 5.40h

1. Display drivers:
   - GUIDRV_LIN_8: Offset calculation in _DrawBitLine1BPP() and _DrawBitLine8BPP() does not work on 16 bit CPUs. Problem solved.

### Version 5.40g

1. Core:
   - Last parameter of function replacement macros for memset() and memcpy() changed from unsigned to size_t.

### Version 5.40f

1. Widgets:
   - LISTVIEW: LISTVIEW was not drawn correctly when cell select enabled. Problem solved.
2. Tools:
   - FontConverter: Setup files were corrupted. Problem solved.

### Version 5.40e

1. Display drivers:
   - GUIDRV_SH_MEM: Cache managing does not work right with rotated displays. Problem solved.

### Version 5.40d

1. Display drivers:
   - GUIDRV_SH_MEM does not support rotation of 90- and 270 degrees. Problem solved.
2. Core:
   - GUI_BMP_Serialize() does not clip right. Problem solved.
   - Under certain circumstances GUI_TOUCH_CalibratePoint() does not work right. Problem solved.

### Version 5.40c

1. Tools:
   - Signatures added to all tools in order to avoid virus scanner problems.

### Version 5.40b

1. Display drivers:
   - GUIDRV_Lin (Multibuffering): Buffer size calculation does not consider virtual x-size. Problem solved.

### Version 5.40a

1. Core:
   - Drawing of corrupt strings could cause endless loop. Problem solved.

### Version 5.38e

1. Window manager (motion support):
   - When snapping in X and Y is required simultaneously, under certain circumstances snapping in Y does not work right. Problem solved.

### Version 5.38d

1. Window manager (motion support):
   - Windows outside an optional modal area could be moved. Problem solved.
   - Under certain circumstances a negative deceleration could occur and lead into an endless loop. Problem solved.

### Version 5.38c

1. Core:
   - GUI_SetTextStyle() does not work right with extended font types. Problem solved.

### Version 5.38b

1. Core:
   - GUI_BMP_Serialize(), performance increased.
   - Scrolling of large virtual screens do not work. Problem solved.
2. Bitmap Converter:
   - Fixed an issue with too long file names.
3. Memory devices:
   - Under certain circumstances memory devices return wrong color depth. Problem solved.

### Version 5.38a

1. emWinView:
   - Scaling of virtual screens do not work. Problem solved.
   - Scrolling of large virtual screens do not work. Problem solved.
2. Drawing JPEG files:
   - Under certain circumstances pixels are transparent. Problem solved.

### Version 5.36h

1. VNC-server:
   - With raw encoding enabled the server does not support 32bpp. Problem solved.
   - With hextile decoding enabled a connection to noVNC does not work. Problem solved.
2. Core:
   - Under cerrain circumstances GUI_CopyRect() generates memory leaks. Problem solved.

### Version 5.36g

1. Display drivers:
   - GUIDRV_SPage: 'FirstSEG' not used with ST75256 and ST75320. Problem solved.

### Version 5.36e

1. Core:
   - Under certain circumstances GUI_SetAlpha caused unpredictable behavior. Problem solved.

### Version 5.36d

1. Drawing BMP files:
   - Drawing scaled BMP images with GUI_USE_ARGB == 1 does not work. Problem solved.

### Version 5.36c

1. BitmapConverter:
   - Reading of PNG images with alpha channel does not work under certain circumstances. Problem solved.
   - 'True color with alpha' format is not available when saving images without alpha channel. Problem solved.
2. Drawing BMP files:
   - Drawing scaled BMP images: Under certain circumstances the current drawing color is not restored. Problem solved.
   - Wrong drawing of BMP images with bitfied definitions after V534d. Problem solved.
   - Drawing of BMP images with bitfied definitions do not work anymore after calling GUI_BMP_EnableAlpha. Problem solved.
3. Drawing JPEG files:
   - Performance of drawing JPEG images increased by 25-30%.
   - Bad quality when decoding progressive JPEG images. Problem solved.

### Version 5.36b

1. Sprites:
   - Fixed a problem with sprites in combination with enabled alpha channel which occured under certain conditions.

### Version 5.36a

1. VNC-server:
   - Quality setting 'Automatic' and 'Low' with realVNC under iOS does not work. Problem solved.

### Version 5.34h

1. EDIT widget:
   - Cursor inversion does not work right with alpha channel. Problem solved.
2. MULTIPAGE widget:
   - Using bitmaps could cause memory leaks. Problem solved.
3. TEXT widget:
   - TEXT_SetBkColor() does not work right under certain circumstances if GUI_USE_ARGB is set. Problem solved.
4. SWIPELIST widget:
   - Threshold integrated for selecting an item.
5. Window manager (motion support):
   - Disabled windows could be moved with motion support. Problem solved.
6. Core:
   - GUI_EnableAlpha(): Alpha value remains under certain circumstances. Problem solved.

### Version 5.34g

1. FontConverter:
   - Loading XBF fonts with glyphs having a negative x-offset does not work. Problem solved.
   - Under certain circumstances displaying command line errors does not work. Problem solved.
2. Sample configurations:
   - Sample for ChromeART accellerator (STM32F4/STM32F7) contains references to non existing functions. Problem solved.

### Version 5.34f

1. SWIPELIST widget:
   - Under certain circumstances deleting of single items does not work. Problem solved.
2. emWinSPY:
   - Screenshots do not work caused by a misconfiguration in GUI_SPY_X_StartServer.c. Problem solved.

### Version 5.34e

1. Core:
   - Drawing bitmap files with a color depth of 24bpp does not work with GUI_USE_ARGB = 1. Problem solved.
   - Drawing BMP files with a color depth of 24bpp does not work with GUI_USE_ARGB = 1. Problem solved.
   - Drawing GIF does not work with GUI_USE_ARGB = 1. Problem solved.

### Version 5.34d

1. Drawing BMP-files:
   - Drawing BMP files with bitmap information header > BITMAPINFOHEADER fails. Problem solved.

### Version 5.34c

1. Movies:
   - GUI_MOVIE_Pause() now makes sure, that at least one frame is shown.
   - Under certain circumstances a timer becomes invalid. Problem solved.
2. BitmapConverter:
   - New formats added to command line options.

### Version 5.34b

1. Simulation:
   - To be able to use (GUI_USE_ARGB == 1) in binary simulation, the library in System\Simulation\GUISim_GUI_USE_ARGB.zip should be used.
2. SWIPELIST widget:
   - Under certain circumstances SWIPELIST_DeleteItem() does not work right. Problem solved.

### Version 5.32g

1. TREEVIEW widget:
   - Under certain circumstances the function TREEVIEW_ScrollToSel() does not work right. Problem solved.

### Version 5.32f

1. LISTBOX widget:
   - Under certain circumstances the redrawing is not completely right after removing an item. Problem solved.

### Version 5.32e

1. Core:
   - Improvement of drawing 32bpp bitmaps implemented.

### Version 5.32d

1. LISTBOX widget:
   - Under certain circumstances redrawing of content is not completely right after inserting new items. Problem solved.
   - When deleting the last item in selected state the redrawing is not completely right. Problem solved.

### Version 5.32c

1. Core:
   - Function _RegisterExit() in GUI__ManageCache.c has no prototype. Problem solved.

### Version 5.32b

1. Language support:
   - When using GUI_LANG_LoadText() with text from memory the functions GUI_LANG_GetTextBuffered() and GUI_LANG_GetTextBufferedEx() do not add a zero delimiter to the given destination buffer. Problem solved.
2. JPEG decoder:
   - Under certain circumstances the IDCT calculation does not manage overflows correctly which leads into pixel errors. Problem solved.

### Version 5.32a

1. Window manager:
   - Under certain circumstances the macro WM_ASSERT_NOT_IN_PAINT() does not work right in multitasking environments. Problem solved.

### Version 5.34

1. FontConverter:
   - Fixed - Merging two fonts and reading from pattern file without saving as new file did not worked correctly.
   - Fixed - Horizontal centered strings in a rectangle were not displayed correctly.

### Version 5.30c

1. Sprites:
   - Under certain circumstances it could happen, that a sprite is overwritten on the screen. Problem solved.

### Version 5.30b

1. Sprites:
   - Deleting non visible sprites could cause undefined behavior of the application. Problem solved.

### Version 5.30a

1. CALENDAR widget:
   - Function CALENDAR_SetSel() does not work right. Problem solved.
2. emWinSPY:
   - Window properties not exactly shown. Problem solved.

### Version 5.28e

1. EDIT widget:
   - Zero without fractional digits can not be displayed using the function EDIT_SetFloatMode() and the flag combination "GUI_EDIT_SIGNED | GUI_EDIT_SUPPRESS_LEADING_ZEROES". Problem solved.
2. Font Converter 5.28a:
   - Standard fonts can not be merged. Problem solved.

### Version 5.28d

1. emWinSPY:
   - Memory leak in default memory management. Problem solved.

### Version 5.28c

1. General:
   - Some additional pointer checks added to fulfil code analysis requirements.

### Version 5.28b

1. emWinSPY:
   - Target sample GUI_SPY_X_StartServer.c does not work right. Problem solved.

### Version 5.28a

1. Widgets:
   - Under certain circumstances EDIT widgets might draw its frame on top of an overlapping window. Problem solved.

### Version 5.26d

1. Core / Memory devices:
   - When fixed color mode GUICC_M888I is used and automatic memory devices are enabled true color bitmaps are not drawn within a window. Problem solved.
2. Core:
   - Timers do not work correctly after 24.86 days. Problem solved.

### Version 5.26c

1. FontConverter:
   - Ability for suppressing message boxes in command line mode added.

### Version 5.26b

1. FontConverter:
   - Character view at the bottom is not resized automatically in Y-axis. Problem solved.
   - Moving the cursor above the uppermost row with active filter causes a crash. Problem solved.
2. BitmapConverter:
   - Command line option '-saveas' does not support saving 16bpp with transparency. Problem solved.

### Version 5.26a

1. Bitmap converter:
   - Saving streamed bitmap files with 16bpp and 8 bit alpha channel results fails with an empty DTA file. Problem solved.
2. Streamed bitmaps:
   - Drawing of streamed bitmap files with 16bpp and 8 bit alpha channel fails. Problem solved.

### Version 5.26

1. Core:
   - The function GUI_DispStringInRectWrap() does not work properly when a user defined clipping rectangle is set. Problem solved.

### Version 5.24h

1. Language support:
   - When using a single record in a CSV file, the number of languages is determined wrong. Problem solved.
2. Widgets:
   - When deleting a MENU widget it does not delete its submenus automatically. Problem solved.
   - Under certain circumstances using the function DROPDOWN_SetItemDisabled() might cause Problem solved.
3. Core, Widgets, Memory devices:
   - Some limit checks corrected when writing into arrays.
   - Some additional pointer checks added.

### Version 5.24g

1. GUIBuilder:
   - When reloading the source file previously saved with the GUIBuilder the function 'Set max length' of the EDIT widget does not work right. Problem solved.
   - SPINBOX widget has no context menu. Problem solved.
2. Widgets:
   - Under certain circumstances HEADER widgets are not shown right. Problem solved.

### Version 5.24f

1. Widgets:
   - When deleting a GRAPH widget under certain circumstances not all memory is freed. Problem solved.
   - TREEVIEW_IncSel() used with an empty widget leads in an endless loop. Problem solved.

### Version 5.24e

1. Antialiasing:
   - Rotated text not shown correct if AA4 SIF standard fonts are used. Problem solved.
   - Rotated text not shown correct if AA2 SIF standard fonts are used. Problem solved.
2. JPEG decoder:
   - Colors of decoded JPEGs not completely correct. Problem solved.
   - Decoder now ends decoding if wrong color space is detected instead of showing a wrong image. Problem solved.

### Version 5.24d

1. Widgets:
   - BUTTON_GetTextAlign() falsely invalidates the window. Problem solved.
   - Deactivating items of a DROPDOWN does not work. Problem solved.
2. TTF font support:
   - Working with antialiased fonts does not work under all circumstances. Problem solved.
3. Window manager (motion support):
   - Setting speed to 0 falsely creates a timer. Problem solved.

### Version 5.24c

1. Window manager (motion support):
   - Under certain circumstances motion support is not able to move any window. Problem solved.

### Version 5.24b

1. Core:
   - Movies don't work on big endian targets. Problem solved.

### Version 5.24a

1. Display drivers:
   - GUIDRV_Lin: Macro 'MIRROR()' does not exist if LCD_ENDIAN_BIG is defined. Problem solved.
2. Widgets:
   - MULTIPAGE widget does not compile with 'GUI_SUPPORT_ROTATION 0'. Problem solved.
3. Core:
   - If very short on memory under certain circumstances JPEG decoder could crash. Problem solved.

### Version 5.22f

1. Linker:
   - Problem with MSVC2012-linker: "error LNK2026:module unsafe for SAFESEH image". Problem solved.
2. Core:
   - GUI_DrawStreamedBitmapExAuto() does not work with alpha bitmaps. Problem solved.
   - Under certain circumstances GUI_IsInFont() does not work right with SIF-fonts. Problem solved.

### Version 5.22e

1. Core:
   - Compiling of LCD_NextPixelAPI.c does not work with TI Code Composer Studio. Problem solved.

### Version 5.22d

1. BitmapConverter:
   - Transparency is not preserved automatically when loading GIF files. Problem solved.

### Version 5.22c

1. Widgets:
   - MULTIPAGE widget does not react on touch event under certain circumstances. Problem solved.
2. Display drivers:
   - GUIDRV_SPage.c Support for Samsung S6B0108 (KS0108) added.

### Version 5.22b

1. Display drivers:
   - GUIDRV_07X1.c generates warnings caused by changing the interface. Problem solved.
   - GUIDRV_FlexColor_Func66709.c: Reading back pixel with GUIDRV_FLEXCOLOR_READ_FUNC_II and 16 bit interface does not work. Problem solved.

### Version 5.22a

1. Bitmap Converter:
   - The Bitmap Converter does not use the same color conversion routines as emWin does. Problem solved.

### Version 5.20h

1. Memory devices:
   - Automatic memory devices with a color depth of 32bpp should not create a usage object. Problem solved.
2. Antialiased text:
   - IAR ARM compiler does not translate GUIAA_Char2.c right when with optimization and CortexA5 target. Problem solved.

### Version 5.20g

1. Streamed bitmaps:
   - In certain cases streamed bitmaps could not be displayed at a position y > 0. Problem solved.

### Version 5.20f

1. Display drivers:
   - Additional syncronization macro calls included in driver GUIDRV_L5F30919.

### Version 5.20e

1. Display drivers:
   - GUIDRV_FlexColor was not able to set the desired read function. Problem solved.

### Version 5.20d

1. Display drivers and core:
   - Return value and/or parameter of cache control function not consistent. Problem solved.

### Version 5.20c

1. GUIBuilder:
   - The tool is not able to open files created by older versions. Problem solved.
2. GIF-images:
   - Under certain circumstances GUI_GIF_GetInfo() does not return the correct number of subimages. Problem solved.

### Version 5.20b

1. Widgets:
   - The ICONVIEW widget may be under certain circumstances not displayed properly. Problem solved.
2. Core:
   - GUI_Exit() does not work correct. Problem solved.
3. Tools:
   - When creating a dialog containing an IMAGE widget without image using the GUIBuilder, storing and reloading the source code was not done properly. Problem solved.
   - The "New" menu in the GUIBuilder does not contain recently added widgets. Problem solved.

### Version 5.20a

1. Handling of error-, logging- and warning messages:
   - The character arrays which store the error messages and hex values are dimensioned too small. Problem solved.
   - The function parameters which are used to store hex values are of type int. Should be I32 to make sure the size is 32 bit on every target system. Problem solved.
2. Widgets:
   - Several CHECKBOX widgets using the FlexSkin can not be of different sizes. Problem solved.
   - Using the LISTWHEEL widget without any items may lead to application crashes. Problem solved.
3. Simulation:
   - When using Multiple Buffering and Multiple Layers the composite view does not work properly. Problem solved.
4. Tools:
   - Converting files using Bin2C results in global unsized arrays. Changed to static arrays of a fixed size.
   - Parameter flags for indirect creation may be deleted when storing a file using the GUIBuilder.

### Version 5.18d

1. Display drivers:
   - Several display driver initialization functions are of type void, but should return an int value. Problem solved.

### Version 5.18c

1. EDIT widget and BiDi:
   - When EDIT widget is used in "DecMode" and BiDi support is enabled, digits are not displayed. Problem solved.
2. Language resource:
   - Using a UTF-8 encoded text file as a language resource does not work. Problem solved.
3. LISTWHEEL widget:
   - Under certain circumstances the LISTWHEEL does not stop moving after a call of LISTWHEEL_MoveToPos(). Problem solved.

### Version 5.18b

1. Memory allocation:
   - Under certain circumstances the remaining free memory returned by GUI_ALLOC_GetNumFreeBytes() can not be allocated at once. Problem solved.
2. VNC-server:
   - Using the VNC-server with display drivers having an indirect interface could fail. Problem solved by adding the function GUI_VNC_SetLockFrame().

### Version 5.18a

1. Sprites:
   - Sprites are not displayed correctly in certain cases. Problem solved.

### Version 5.18

1. Multitasking support:
   - Working with cursors and similar devices does not work right with multitasking. Problem solved.
2. BitmapConverter:
   - Animated GIFs are shown as a black square. Problem solved.

### Version 5.16d

1. GUIDRV_FlexColor:
   - Filling of driver variants with cache too slow. Problem solved.
2. GUIDRV_S1D13781:
   - Display rotation does not work properly. Problem solved.
   - Illegal pointer access during initialization. Problem solved.
3. EDIT widget:
   - Editing of values do not work right under certain circumstances. Problem solved.

### Version 5.16c

1. Window Manager:
   - If the number of invalid rectangles exceeds a certain amount the Window Manager stops working. Problem solved.
   - In certain cases the background of transparent windows is not drawn correctly. Problem solved.

### Version 5.16b

1. Memory devices:
   - Function pointer _pcbSetAlpha() in GUIDEV_Banding.c had wrong prototype. Problem solved.

### Version 5.16a

1. Core:
   - Compressed ARGB bitmaps and compressed alpha channel bitmaps don't work right if clipping is required. Problem solved.
2. Memory devices:
   - Under certain circumstances GUI_EnableAlpha() does not work right with banding memory devices. Problem solved.

### Version 5.14e

1. Core:
   - Under certain circumstances allocation of fixed blocks fail in spite of having enough memory. Problem solved.
2. Memory devices:
   - Under certain circumstances some pixels are not calculated right when using image rotation (HQ and HQT). Problem solved.

### Version 5.14d

1. Window manager:
   - Under certain circumstances automatic locking/unlocking of display driver cache (if available) not executed correctly. Problem solved.

### Version 5.14c

1. VNC-server:
   - Some color modes of RealVNC and TightVNC not supported. Problem solved.
2. Antialiasing:
   - Function GUI_AA_FillRoundedRect() do not work correctly within window callback routines. Problem solved.
3. Multitasking:
   - Under certain circumstances GUI_WaitEvent() does not work right. Problem solved.

### Version 5.14b

1. Streamed bitmaps:
   - Drawing streamed bitmaps from external memory and transparent windows may cause an error. Problem solved.
   - Under certain circumstance drawing streamed bitmaps without palette does not function properly, since buffer allocation is not done correctly. Problem solved.
2. LISTWHEEL widget:
   - Pressing the LISTWHEEL after LISTWHEEL_MoveToPos() has been used for start turning the LISTWHEEL can't be started again via PID. Problem solved.

### Version 5.14a

1. SPINBOX widget:
   - Drawing issues may occur when switching between enabled and disabled state and changing the value. Problem solved.
   - Parent window does not receive any notification in case the value is changed. Problem solved.

### Version 5.12g

1. Core:
   - When drawing rotated text with GUI_ROTATE_CW and GUI_ROTATE_CCW clipping does not work correctly. Problem solved.

### Version 5.12h

1. Window manager:
   - Under certain circumstances the handles returnd by WM_GetScrollbarH() and WM_GetScrollbarV() are wrong. Problem solved.
2. LISTBOX widget:
   - LISTBOX_InsertString() and LISTBOX_DeleteString() does not work right under certain circumstances. Problem solved.

### Version 5.12g

1. Cursor:
   - Usage of different cursors may lead to a repetitive adding of records to the registration of the _OnExit()-function. Problem solved.

### Version 5.12f

1. MENU widget:
   - Under certain circumstances submenus are not able to receive key messages. Problem solved.
2. FRAMEWIN widget:
   - FRAMEWIN widgets are not able to be created with Skinning turned on using WIDGET_USE_FLEX_SKIN. Problem solved.
3. Alpha Blending:
   - Usage of alpha blending leads to a repetitive adding of records to the registration of _OnExit()-functions. Problem solved.
4. Display Drivers:
   - In case a customer purchases emWin b/w and a display driver which does not support 1bpp mode, emWin is not able to work.
     This problem is solved by creating additional color conversion routines, which convert colors to black and white using 2bpp or 4bpp.

### Version 5.12e

1. Memory devices:
   - Writing the content of a 16-bit memory device to a 32-bit memory device does not work properly. Problem solved.
2. PID:
   - The Window manager causes the function GUI_PID_GetState() to always read the oldest PID state from the PID buffer. Problem solved.

### Version 5.12d

1. MENU widget:
   - Under certain circumstances submenus without submenu handle don't work. Problem solved.

### Version 5.12c

1. Core:
   - Superfluous copy operation of payload data of topmost free memory block. Problem solved.

### Version 5.12b

1. FRAMEWIN widget:
   - When working with FRAMEWIN_SetSkin() all skinned FRAMEWIN widgets use the same callback function. Problem solved.
2. EXT fonts:
   - When GUIPROP_EXT__ClearLine() is called with Len <= 0 drawing the background could be wrong. Problem solved.

### Version 5.12a

1. Memory devices:
   - Under certain circumstances drawing of 32bpp memory devices on systems with a color depth of 24bpp or higher could fail. Problem solved.
   - Use of automatically memory devices on systems short on memory could lead in memory consumption. Problem solved.
   - Window animation functions can fail under certain circumstances and lead in undefined behavior. Problem solved.
2. Core:
   - If memory allocation fails because of too less memory blocks, the amount of remaining memory becomes invalid. Problem solved.
3. Window manager:
   - After creating windows or memory devices when processing the WM_PRE_PAINT message, drawing of the window could be wrong. Problem solved.

### Version 5.10b

1. SIF fonts:
   - GUI_SIF__GetCharInfo_ExtFrm() does not read all required variables for GUI__GetOverlap(). Problem solved.

### Version 5.10a

1. XBF fonts:
   - Buffer in GUI_XBF__GetCharInfo() too small. Problem solved.

### Version 5.08e

1. Memory devices (1bpp):
   - Drawing of 1bpp memory devices with transparency is limited on multiples of 8 for position and size. Problem solved
   - Under certain circumstances drawing of text with GUI_TM_XOR does not work completely right with 1bpp memory devices. Problem solved
2. EDIT widget:
   - Under certain circumstances an invalid pointer is used in function _InsertChar(). Problem solved
3. LISTVIEW widget:
   - Under certain circumstances LISTVIEW_SetItemBitmap() with high color bitmaps causes a warning: 'Locked handles exist'. Problem solved

### Version 5.08d

1. Display driver cache management:
   - LCD_ControlCache() does not use GUI__ManageCacheEx(). Problem solved.
2. PROGBAR widget:
   - Skinning routine does not work right when PROGBAR_SetText() was used. Problem solved

### Version 5.08c

1. Touch Analog:
   - The function GUI_TOUCH_SetOrientationPhys() is not working correctly. Problem solved.
2. BiDi:
   - IAR ARM compiler V6.10.2 does not translate GUI__BiDi.c because of a tool internal error. emWin code changed to be able to work with compiler bug.
3. Displaying strings:
   - Trying to display a string with a not existing character at the end of a line can cause the line to be not aligned correctly. Problem solved.

### Version 5.08b

1. GUI_PID:
   - PID buffer entries are not stored correctly. Problem solved.

### Version 5.08a

1. String alignment:
   - Under certain circumstances string alignment does not work right. Problem solved.
2. Bidirectional text:
   - Mixed strings with only one single RTL character at the beginning are not shown right. Problem solved.

### Version 5.06d

1. Display drivers:
   - GUIDRV_Lin drawing of 8bpp device dependent bitmaps does not work right on 16 bit CPUs. Problem solved.
2. MENU widget:
   - Under certain circumstances submenus are not completely visible. Problem solved.

### Version 5.06c

1. Drawing BMP-files:
   - Under certain circumstances drawing of BMP files fails. Problem solved.

### Version 5.06b

1. Display drivers:
   - GUIDRV_SSD1926 and GUIDRV_Lin for 1, 2, 4 and 8bpp does not work completely right with 16 bit CPUs. Problem solved.
2. Widget library:
   - Some warnings wiht 16 bit CPUs and GUI_DEBUG_LEVEL > 1. Problem solved.
3. Color conversion:
   - GUICC_233 does not work right with 16 bit CPUs. Problem solved.

### Version 5.06a

1. Memory devices:
   - The window effect functions do not return 0 on success. Problem solved.
2. SCROLLBAR widget:
   - Scrollbar does not stop moving at the desired position when keeping pressed shaft area. Problem solved.
3. LISTBOX widget:
   - Under certain circumstances scrolling per keyboard does not work completely right. Problem solved.
4. RADIO_SKIN_FLEX:
   - Under certain circumstances the focus rectangle is not initialized right. Problem solved.
5. Core:
   - Drawing of horizontal and rounded gradients fail if both colors are the same. Problem solved.

### Version 5.04h

1. TREEVIEW widget:
   - Under certain circumstances TREEVIEW_GetItem() returns a wrong handle. Problem solved.

### Version 5.04g

1. Cache control:
   - Under certain circumstances the function LCD_ControlCache() does not work right. Problem solved.
2. LISTWHEEL widget:
   - Under certain circumstances a variable was not initialized. Problem solved.

### Version 5.04f

1. RADIO widget:
   - When using custom bitmaps under certain circumstances the button text is not aligned to the button images. Problem solved.

### Version 5.04e

1. EDIT widget:
   - Function EDIT_SetCursorAtChar() does not use ..LOCK() and ..UNLOCK(). Problem solved.

### Version 5.04d

1. XBF font format:
   - XBF fonts do not work on big endian systems. Problem solved.

### Version 5.04c

1. Bitmaps:
   - Under certain circumstances 16 bit bitmaps are not drawn on systems with a color depth of 24bpp. Problem solved.

### Version 5.04b

1. Widget library:
   - Deleting EDIT or MULTIEDIT widget with blinking cursors cause an undefined behaviour. Problem solved.
2. JPEG images:
   - Downscaling does not work correct under certain circumstances. Problem solved.

### Version 5.04a

1. Simulation:
   - Reading back pixel information fails if WM is not used. Problem solved.
2. WM:
   - Function WM__PaintWinAndOverlays() had no prototype. Problem solved.

### Version 5.02n

1. LISTVIEW widget:
   - Under certain circumstances locked handles exist when calling the parents callback function. Problem solved.

### Version 5.02m

1. Core:
   - Some drivers require the function LCD__GetColorIndex() which does not exist. Problem solved.

### Version 5.02l

1. Window manager & alpha blending:
   - Under certain circumstances the window manager does not recalculate pointers after drawing operations. Problem solved.

### Version 5.02k

1. LISTVIEW widget:
   - The header position is not updated correctly when using the thumb area of the scrollbar. Problem solved.
2. GUIDRV_LIN_xxx_24:
   - The 24 bit versions of the driver won't work right because of using a wrong address offset. Problem solved.

### Version 5.02i

1. Simulation:
   - Under certain circumstances modal dialogs do not receive the release message of a button. Problem solved.
2. DROPDOWN widget:
   - Memory locking problem under certain circumstances in DROPDOWN_Expand(). Problem solved.
3. JPEG decoding:
   - Under certain circumstances decoding of progressive JPEGS fails. Problem solved.
4. Core:
   - Under certain circumstances a pointer in the device structure was not initialized. Problem solved.

### Version 5.02h

1. ICONVIEW widget:
   - Under certain circumstances a pointer in the drawing routine became invalid. Problem solved.

### Version 5.02g

1. Display driver:
   - Driver migration GUIDRV_6331.c added.

### Version 5.02f

1. Display driver:
   - Driver migration GUIDRV_13700.c added.

### Version 5.02e

1. Streamed bitmaps:
   - Beta version of drawing streamed bitmaps from non addressable media added.

### Version 5.02d

1. TREEVIEW widget:
   - Problem with TREEVIEW_GET_LAST. Problem solved

### Version 5.02c

1. General:
   - Removed some warnings wit IAR compiler.

### Version 5.02b

1. BMP files:
   - Drawing BMP files with a negative horizontal position does not work right. Problem solved.

### Version 5.02a

1. XBF Fonts:
   - Characters with a negative cursor offset are not shown right. Problem solved.

### Version 5.02

1. VNC:
   - Connection closed when copying text into clipboard of host. Problem solved.

## Release history

Version | Release date | Availability
V5.48k | 2018-12-19 | Point release
V5.48j | 2018-11-21 | Point release
V5.48i | 2018-10-26 | Point release
V5.48h | 2018-10-25 | Point release
V5.48g | 2018-10-22 | Point release
V5.48f | 2018-10-11 | Point release
V5.48e | 2018-10-08 | Point release
V5.48d | 2018-09-13 | Point release
V5.48c | 2018-07-24 | Point release
V5.48b | 2018-06-18 | Point release
V5.48a | 2018-06-15 | Point release
V5.48 | 2018-06-06 | General release
V5.46p | 2018-06-04 | Point release
V5.46o | 2018-05-29 | Point release
V5.46n | 2018-05-28 | Point release
V5.46m | 2018-05-22 | Point release
V5.46l | 2018-05-03 | Point release
V5.46k | 2018-05-02 | Point release
V5.46j | 2018-04-19 | Point release
V5.46i | 2018-04-09 | Point release
V5.46h | 2018-03-20 | Point release
V5.46g | 2018-03-01 | Point release
V5.46f | 2018-01-26 | Point release
V5.46e | 2018-01-19 | Point release
V5.46d | 2018-01-17 | Point release
V5.46c | 2018-01-08 | Point release
V5.46b | 2017-12-20 | Point release
V5.46a | 2017-12-15 | Point release
V5.46 | 2017-12-12 | Point release
V5.44b | 2017-12-05 | Point release
V5.44a | 2017-11-15 | Point release
V5.44 | 2017-11-10 | General release
V5.42i | 2017-10-19 | Point release
V5.42h | 2017-10-09 | Point release
V5.42g | 2017-09-20 | Point release
V5.42f | 2017-09-18 | Point release
V5.42e | 2017-09-14 | Point release
V5.42d | 2017-09-13 | Point release
V5.42c | 2017-09-12 | Point release
V5.42b | 2017-09-11 | Point release
V5.42a | 2017-08-30 | Point release
V5.42 | 2017-08-02 | General release
V5.40m | 2017-07-17 | Point release
V5.40l | 2017-06-30 | Point release
V5.40k | 2017-06-09 | Point release
V5.40j | 2017-06-01 | Point release
V5.40i | 2017-05-15 | Point release
V5.40h | 2017-05-11 | Point release
V5.40g | 2017-05-08 | Point release
V5.40f | 2017-04-20 | Point release
V5.40e | 2017-04-07 | Point release
V5.40d | 2017-03-31 | Point release
V5.40c | 2017-03-28 | Point release
V5.40b | 2017-03-27 | General release
V5.40a | 2017-03-21 | Point release
V5.40 | 2017-03-20 | Point release
V5.38e | 2017-02-01 | Point release
V5.38d | 2017-01-23 | Point release
V5.38c | 2017-01-17 | Point release
V5.38b | 2016-12-15 | Point release
V5.38a | 2016-11-30 | General release
V5.38 | 2016-11-25 | General release
V5.36h | 2016-11-07 | Point release
V5.36g | 2016-11-02 | Point release
V5.36f | 2016-10-11 | Point release
V5.36e | 2016-10-07 | Point release
V5.36d | 2016-10-06 | Point release
V5.36c | 2016-09-26 | Point release
V5.36b | 2016-09-19 | Point release
V5.36a | 2016-09-13 | Point release
V5.36 | 2016-08-30 | General release
V5.34h | 2016-08-24 | Point release
V5.34g | 2016-07-22 | Point release
V5.34f | 2016-07-15 | Point release
V5.34e | 2016-07-12 | Point release
V5.34d | 2016-07-04 | Point release
V5.34c | 2016-06-24 | General release
V5.34b | 2016-06-06 | Point release
V5.34a | 2016-05-25 | Point release
V5.34 | 2016-04-29 | Point release
V5.32g | 2016-04-27 | Point release
V5.32f | 2016-04-18 | Point release
V5.32e | 2016-04-04 | Point release
V5.32d | 2016-03-31 | Point release
V5.32c | 2015-11-12 | Point release
V5.32b | 2015-11-06 | General release
V5.32a | 2015-11-04 | Point release
V5.32 | 2015-10-08 | General release
V5.30c | 2015-09-30 | Point release
V5.30b | 2015-09-15 | Point release
V5.30a | 2015-08-07 | Point release
V5.30 | 2015-07-06 | General release
V5.28e | 2015-04-14 | Point release
V5.28d | 2015-03-24 | Point release
V5.28c | 2015-02-18 | Point release
V5.28b | 2015-02-17 | General release
V5.28a | 2015-02-06 | Point release
V5.28 | 2015-01-27 | General release
V5.26d | 2015-01-15 | Point release
V5.26c | 2014-12-15 | Point release
V5.26b | 2014-09-30 | Point release
V5.26a | 2014-08-20 | Point release
V5.26 | 2014-08-06 | General release
V5.24h | 2014-06-04 | Point release
V5.24g | 2014-05-27 | Point release
V5.24f | 2014-05-14 | Point release
V5.24e | 2014-04-17 | Point release
V5.24d | 2014-03-27 | Point release
V5.24c | 2014-03-04 | Point release
V5.24b | 2014-02-18 | Point release
V5.24a | 2014-02-13 | General release
V5.24 | 2014-01-23 | General release
V5.22g | 2014-01-02 | Point release
V5.22f | 2013-11-19 | Point release
V5.22e | 2013-11-11 | Point release
V5.22d | 2013-30-10 | Point release
V5.22c | 2013-10-14 | Point release
V5.22b | 2013-09-04 | Point release
V5.22a | 2013-08-16 | Point release
V5.22 | 2013-07-02 | General release
V5.20h | 2013-06-21 | Point release
V5.20g | 2013-06-18 | Point release
V5.20f | 2013-06-13 | Point release
V5.20e | 2013-04-24 | Point release
V5.20d | 2013-04-10 | Point release
V5.20c | 2013-03-19 | General release
V5.20b | 2013-03-07 | Point release
V5.20a | 2013-03-01 | Point release
V5.20 | 2013-02-18 | Point release
V5.18d | 2012-11-29 | Point release
V5.18c | 2012-11-06 | Point release
V5.18b | 2012-10-05 | Point release
V5.18a | 2012-10-02 | Point release
V5.18 | 2012-09-17 | General release
V5.16d | 2012-09-04 | Point release
V5.16c | 2012-08-16 | Point release
V5.16b | 2012-06-25 | Point release
V5.16a | 2012-06-21 | Point release
V5.16 | 2012-06-04 | General release
V5.14e | 2012-05-02 | Point release
V5.14d | 2012-02-15 | Point release
V5.14c | 2012-02-08 | Point release
V5.14b | 2012-02-01 | General release
V5.14a | 2012-01-25 | Point release
V5.14 | 2011-01-13 | Point release
V5.12i | 2011-12-16 | Point release
V5.12h | 2011-10-27 | Point release
V5.12g | 2011-08-16 | Point release
V5.12f | 2011-08-16 | Point release
V5.12e | 2011-08-09 | Point release
V5.12d | 2011-07-27 | Point release
V5.12c | 2011-07-25 | General release
V5.12b | 2011-07-21 | Point release
V5.12a | 2011-07-18 | General release
V5.12 | 2011-06-28 | General release
V5.10b | 2011-05-30 | Point release
V5.10a | 2011-05-04 | Point release
V5.10 | 2011-03-30 | General release
V5.08e | 2011-03-09 | Point release
V5.08d | 2011-03-07 | Point release
V5.08c | 2011-02-16 | Point release
V5.08b | 2011-02-08 | Point release
V5.08a | 2011-01-25 | Point release
V5.08 | 2011-01-12 | General release
V5.06d | 2011-01-03 | Point release
V5.06c | 2010-11-30 | Point release
V5.06b | 2010-11-23 | Point release
V5.06a | 2010-10-22 | General release
V5.06 | 2010-09-09 | General release
V5.04h | 2010-06-08 | Point release
V5.04g | 2010-05-16 | Point release
V5.04f | 2010-04-14 | Point release
V5.04e | 2010-03-23 | Point release
V5.04d | 2010-03-08 | Point release
V5.04c | 2010-02-26 | Point release
V5.04b | 2010-02-03 | Point release
V5.04a | 2010-01-14 | Point release
V5.04 | 2010-01-04 | General release
V5.02n | 2009-12-15 | Point release
V5.02m | 2009-12-14 | Point release
V5.02l | 2009-12-10 | Point release
V5.02k | 2009-11-24 | Point release
V5.02i | 2009-10-29 | Point release
V5.02h | 2009-10-09 | Point release
V5.02g | 2009-10-07 | Point release
V5.02f | 2009-10-01 | Point release
V5.02e | 2009-09-24 | Point release
V5.02d | 2009-09-21 | Point release
V5.02c | 2009-07-28 | Point release
V5.02b | 2009-07-23 | Point release
V5.02a | 2009-07-02 | Point release
V5.02 | 2009-06-16 | Point release

## Miscellaneous

This document was first released with version 5.00 of the software. Software released earlier is documented internally.