The Embedded Experts

Release notes for emWin Version 6.36

New Features

Version 6.36

  1. Core:
    • New SVG module added.
    • SVG module can be bound with OpenVG API and VGLite API.
    • New GUI_MATRIX module added for 2D matrix transformations.
  2. Simulation:
    • Added ShivaVG library for OpenGL accelerated rendering of SVGs.
  3. Memory devices:
    • Static memory devices added for systems with a lot of RAM in order to improve performance significantly under certain circumstances.
  4. AppWizard:
    • Details about new features can be found in the release notes of AppWizard.
  5. Tools:
    • Font Converter tool completely rewritten using Qt and FreeType.

Version 6.34f

  1. AppWizard:
    • Details about new features can be found in the release notes of AppWizard.

Version 6.34c

  1. Orientation device:
    • New function GUI_OrientationEnableTouch() added which adapts the PID coordinates automatically according to the current orientation.
  2. IMAGE widget:
    • New function IMAGE_SetBkColor() added to be able to manage background areas which are not covered by the used image file.

Version 6.34a

  1. LISTVIEW widget:
    • New function LISTVIEW_EnableCopy() added in order to reduce CPU load significantly under certain circumstances.

Version 6.34

  1. JPEG:
    • New optimized code for IDCT conversion added to be able to make use of the ARM Neon extensions and the ARM Helium technology of ARM Cortex-M85.
  2. Display drivers:
    • New driver GUIDRV_S1D13C00 with support for 1bpp and 6bpp colordepth added.

Version 6.32c

  1. KEYBOARD widget:
    • Long press of now opens a cursor management window.
    • New function KEYBOARD_SetSensy() added.
    • New function KEYBOARD_GetDefaultSensy() added.
    • New function KEYBOARD_SetDefaultSensy() added.

Version 6.32

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. Fonts (FreeType only):
    • Update to FreeType 2.12.1.
  3. SCROLLER widget:
    • New function SCROLLER_SetContentRect() added.
  4. Language support:
    • Language support: TXT files now support line feed characters (\n) in text items.
  5. Colors:
    • GUI_SetFuncMixColorsBulk() and GUI_SetFuncMixColors() can now be reset to default by passing NULL. Previously this would not work and would lead to a crash.
  6. Configuration/ Hardware acceleration:
    • Support for NXP's Pixel Pipeline (PXP) added. The configuration files are part of the RT1050, RT1060 and RT1170 AppWizard BSPs.
    • New function GUI_MEMDEV_SetBlendFunc() added.
    • New function GUI_SetFuncDrawBitmapEx() added.

Version 6.30

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. Widgets:
    • New MOVIE widget added. Displays EMF and AVI movie files and offering touch controls.
    • New function SWITCH_SetThumbSize() added.
    • KEYBOARD: Added functions for managing default values.
    • New functions WIDGET_GetMinTimePerFrame() and WIDGET_SetMinTimePerFrame() added.
  3. Movies:
    • New function GUI_MOVIE_IsPlaying() added.
    • New function GUI_MOVIE_SetSecondHandle() added.
  4. Window manager:
    • New function WM_GetChild() added.
    • New functions WM_GetScrollerV() and WM_GetScrollerH() added.
    • New function WM_GetScrollPartner() added.
  5. Colors:
    • New functions GUI_SetBlendColor(), GUI_SetBlendColorEx(), GUI_SetBlendBkColor(), GUI_SetBlendBkColorEx() added.
  6. Tools:
    • New tool MakeMovie.exe for easy conversion of movie files. Replaces the old JPEG2Movie tool and negates the need of running scripts.

Version 6.28

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. Widgets:
    • New function WIDGET_GetType() added.
    • Return value added to function prototype set with EDIT_SetpfAddKeyEx().
    • New function EDIT_SetPasswordChar() added.
    • New function EDIT_SetPasswordMode() added.
    • Prototype of function pointer being set by EDIT_SetpfAddKeyEx(). The function returns a value now.
    • New function LISTBOX_Clear() added.
    • Bubble sort algorithm of LISTVIEW replaced with much faster (and simple) combsort algorithm.
    • New function LISTVIEW_GetOverlap() added.
    • New function LISTVIEW_SetOverlap() added.
    • New function LISTBOX_GetFixedScrollPos() added.
    • WIDGET_ITEM_DRAW_TEXT, WIDGET_ITEM_DRAW_BACKGROUND and WIDGET_ITEM_DRAW_FOCUS added to LISTBOX_OwnerDraw(). The old command WIDGET_ITEM_DRAW is still supported.
    • New function KEYBOARD_GetKeyRect() added.
  3. Common:
    • New function GUI_BlendColors() added.
    • New function GUI_GCACHE_1_Create() added.
    • New function GUI_GCACHE_1_CreateEx() added.
  4. Window manager:
    • New function WM_GetCapture() added.
  5. Memory devices:
    • New function GUI_MEMDEV_CopyRect() added.
  6. Colors:
    • New function GUI_BlendColors() added.

Version 6.26d

  1. AppWizard:
    • Display rotation support added.
  2. Widgets:
    • WIDGET_ITEM_DRAW_TEXT, WIDGET_ITEM_DRAW_BACKGROUND and WIDGET_ITEM_DRAW_FOCUS added to LISTBOX_OwnerDraw(). The old command WIDGET_ITEM_DRAW is still supported in most cases. LISTBOXES in fixed scroll mode with motion support enabled that use a custom owner draw function now have to react on the three new commands instead of WIDGET_ITEM_DRAW.
    • New function LISTBOX_GetFixedScrollPos() added.
    • New function WIDGET_GetType() added.
    • New function LISTVIEW_SetOverlap() and LISTVIEW_GetOverlap() added.
    • Password mode added to EDIT: new functions EDIT_SetPasswordMode() and EDIT_SetPasswordChar().

Version 6.26

  1. Window Manager:
    • New function WM_IsUntouchable() added.
    • New function WM_GetContentRectEx() added.
    • New function WM_GetContentRect() added.
  2. Widgets:
    • New SCROLLER widget added: Provides a smartphone-like scrolling indicator and scrolling control. Can be attached to widgets that have motion support and to custom widgets.
    • New WHEEL widget added: newer and more versatile version of LISTWHEEL displaying multiple arrays of text and bitmaps.
    • Parameters of SWIPELIST_GetOverlap(), SWIPELIST_SetOverlap(), SWIPELIST_GetDefaultOverlap() and SWIPELIST_SetDefaultOverlap)() changed. Now a period for moving back and the desired positions of overlapping (top or bottom) can be specified.

Version 6.24

  1. Fonts (FreeType only):
    • Update to FreeType 2.11.
  2. Anti Aliasing:
    • New function GUI_AA_SetBufferSize() added.
  3. Core:
    • New function GUI_DrawArcHREx() added.
    • New function GUI_DrawFrame() added.
    • New function GUI_DrawFrameEx() added.
    • New function GUI_SetOnLogFunc() added.
    • New function GUI_SetOnWarnFunc() added.
    • New color conversions GUICC_666_18 and GUICC_M666_18
  4. Display driver:
    • GUIDRV_FlexColor_Func66709 now supports 9- and 18 bit interface and 18bpp.
  5. Widgets:
    • New function DROPDOWN_Clear() added.
    • New function DROPDOWN_SetText() added.
    • New function HEADER_GetBorderH() added.
    • New function HEADER_GetBorderV() added.
    • New function HEADER_SetBorderH() added.
    • New function HEADER_SetBorderV() added.
    • New function LISTVIEW_Clear() added.
    • New function LISTVIEW_GetGridColor() added.
    • New function LISTVIEW_SetGridColor() added.

Version 6.22

  1. Fonts (FreeType only):
    • New function GUI_BDF_EmboldenFont() added.
    • New function GUI_BDF_EmboldenFontEx() added.
    • New function GUI_BDF_SetLetterSpacing() added.
    • New function GUI_FT_GetMeasurementChars() added.
    • New function GUI_FT_SetMeasurementChars() added.
    • New function GUI_TTF_EmboldenFont() added.
    • New function GUI_TTF_EmboldenFontEx() added.
    • New function GUI_TTF_ObliqueFont() added.
    • New function GUI_TTF_ObliqueFontEx() added.
  2. Window manager:
    • New function WM_DeleteWindowSecure() added
  3. Widgets:
    • New function DROPDOWN_EnableMotion() added.
    • New function LISTVIEW_GetDefaultBkColor() added.
    • New function LISTVIEW_GetDefaultFont() added.
    • New function LISTVIEW_GetDefaultGridColor() added.
    • New function LISTVIEW_GetDefaultScrollStepH() added.
    • New function LISTVIEW_GetDefaultTextColor() added.
    • New function LISTVIEW_SetDefaultScrollStepH() added.
    • New function LISTVIEW_SetScrollStepH() added.
    • New function LISTVIEW_GetScrollStepH() added.
    • New function LISTVIEW_SetScrollPos() added.
    • New function MULTIEDIT_GetDefaultAlign() added.
    • New function MULTIEDIT_GetDefaultBkColor() added.
    • New function MULTIEDIT_GetDefaultCursorColor() added.
    • New function MULTIEDIT_GetDefaultFont() added.
    • New function MULTIEDIT_GetDefaultHBorder() added.
    • New function MULTIEDIT_GetDefaultTextColor() added.
    • New function MULTIEDIT_SetDefaultAlign() added.
    • New function MULTIEDIT_SetDefaultBkColor() added.
    • New function MULTIEDIT_SetDefaultCursorColor() added.
    • New function MULTIEDIT_SetDefaultFont() added.
    • New function MULTIEDIT_SetDefaultHBorder() added.
    • New function MULTIEDIT_SetDefaultTextColor() added.
    • New function SWITCH_DisableAnimation() added.
    • New DROPDOWN notifications: DROPDOWN_NOTIFICATION_EXPANDED and DROPDOWN_NOTIFICATION_COLLAPSED
    • SWIPELIST now sends notifications to its parent when overlap area has been reached or released.
  4. Tools:
    • Font Converter:
      Font Converter now allows to configure the characters for measuring the height of lower and upper case letters as well as the baseline.
    • emWinView:
      CTRL+C now copies the current layer image or selected area image to clipboard.
      Selection position and size can now be edited from a dialog.

Version 6.20

  1. Core:
    • New function GUI_GetShowMissingCharacters() added.
    • New function GUI_DrawArcHR() added.
    • New function GUI_DrawPieHR() added.
  2. Antialiasing:
    • New function GUI_AA_DrawPie() added.
  3. Widgets:
    • IMAGE:
      New function IMAGE_SetAlign() added.
      New function IMAGE_SetOffset() added.
      New function IMAGE_SetAlpha() added.
      New function IMAGE_SetAngle() added.
      New function IMAGE_SetScale() added.
      New function IMAGE_EnableLQ() added.
    • LISTBOX:
      LISTBOX now sends WM_NOTIFICATION_SCROLL_CHANGED when motion scrolling or keys are used.
    • LISTVIEW:
      New function LISTVIEW_GetScrollPos() added.
      New function LISTVIEW_GetRow() added.
      New function LISTVIEW_GetCol() added.
      LISTVIEW now sends WM_NOTIFICATION_SCROLL_CHANGED when motion scrolling or keys are used.
  4. Movies:
    • Bitmap-based emWin movie files added.
  5. Display driver:
    • GUIDRV_SLinEPD_SSD1673 now supports SSD1680.
    • GUIDRV_SLinEPD now supports UC8451.
    • GUIDRV_FlexColor now supports ST7715.
  6. VNC:
    • Multiple VNC connections via WebSocket and BSD to the same layer are now possible.
  7. Tools:
    • Bitmap Converter:
      Added function to convert animated GIFs into new bitmap-based emWin movie file format.
    • emVNC:
      Ports can now be specified.

Version 6.18b

  1. Widgets:
    • GAUGE:
      New function GAUGE_GetRange() added.

Version 6.18a

  1. Core:
    • New function GUI_PID_RegisterReadHook() added.

Version 6.18

  1. Fonts:
    • New function GUI_BDF_CreateFont() added.
    • New function GUI_BDF_DeleteFont() added.
    • New function GUI_BDF_GetFamilyName() added.
    • New function GUI_BDF_GetStyleName() added.
    • New function GUI_GetFallbackFont() added.
    • New function GUI_SetFallbackFont() added.
    • New function GUI_SetFuncGetFallbackFont() added.
  2. Display drivers:
    • GUIDRV_FlexColor:
      - Support for Sitronix ST7626 added.
  3. Simulation:
    • New function SIM_GUI_EnableModifierKey() added.
    • New function SIM_GUI_IsModifierKeyEnabled() added.
  4. Memory Devices:
    • New function GUI_MEMDEV_GetBitsPerPixel() added.
    • New function GUI_MEMDEV_GetSelMemdev() added.
  5. Core:
    • New function GUI_SetAfterExitHook() added.
  6. Animations:
    • New function GUI_ANIM_AddItemById() added.
    • New function GUI_ANIM_CreateWithId() added.
    • New function GUI_ANIM_DeleteById() added.
    • New function GUI_ANIM_Get() added.
    • New function GUI_ANIM_StartExId() added.
    • New function GUI_ANIM_StopById() added.
  7. Configuration:
    • Hardware acceleration:
      - New function GUI_SetFuncDrawCircle() added.
      - New function GUI_SetFuncDrawLine() added.
      - New function GUI_SetFuncDrawRoundedRect() added.
      - New function GUI_SetFuncFillCircle() added.
      - New function GUI_SetFuncFillRoundedRect() added.
  8. Widgets:
    • LISTBOX:
      New function LISTBOX_GetVisItemIndices() added.
      New function LISTBOX_IsItemPartiallyVisible() added.
      Added support of the following keys to LISTBOX: GUI_KEY_HOME, GUI_KEY_END, GUI_KEY_PGUP, GUI_KEY_PGDOWN.
    • KEYBOARD:
      New function KEYBOARD_SetRadius() added.
      New function KEYBOARD_SetSpace() added.
  9. emWinView:
    • The tool has been completely rewritten with a much better, more intuitive and comprehensive interface:
      - New Selection/Measurement tool.
      - Keyboard input gets send to emWin application.
      - Transparency is shown for multi-layer configurations.
      - ...and much more.

Version 6.16

  1. Widgets:
    • EDIT:
      New function EDIT_GetMinMax() added.
    • SPINBOX:
      New function SPINBOX_GetRange() added.
    • TEXT:
      New function TEXT_GetFrameColor() added.
      New function TEXT_GetDefaultFrameColor() added.
      New function TEXT_SetFrameColor() added.
      New function TEXT_SetDefaultFrameColor() added.
    • PROGBAR:
      Now sends WM_NOTIFICATION_VALUE_CHANGED to parent when its value has changed.
    • KEYBOARD:
      New keyboard layout KEYBOARD_ARA for Arabic added.
    • MULTIEDIT:
      New function MULTIEDIT_EnableMotion() added.
      New function MULTIEDIT_SetCursorColor() added.
      New function MULTIEDIT_SetInvertCursor() added.
    • HEADER:
      New function HEADER_SetColumnsResizeable() added.
    • BUTTON:
      New function BUTTON_SetToggleMode() added.
      New function BUTTON_Toggle() added.
      BUTTON_REACT_ON_LEVEL is now the default way how PID events are handled by a BUTTON.
    • SWIPELIST:
      New function SWIPELIST_GetOverlap() added.
      New function SWIPELIST_SetOverlap() added.
      New function SWIPELIST_SetDefaultOverlap() added.
      New function SWIPELIST_GetDefaultOverlap() added.
    • LISTVIEW:
      New function LISTVIEW_IsItemPartiallyVisible() added.
      New function LISTVIEW_GetVisRowIndices() added.
  2. Core:
    • New function GUI_CreateBitmapFromStreamRLE1() added.
  3. Antialiasing:
    • New function GUI_AA_DrawRoundedFrame() added.
    • New function GUI_AA_DrawRoundedFrameEx() added.
  4. Memory Devices:
    • New function GUI_MEMDEV_SerializeExBMP() added.
  5. Bitmap Converter:
    • Reading of C and DTA files added.
    • New bitmap format RLE1 (compressed 1bpp) added.
    • Added section about memory footprint.

Version 6.14g

  1. Display drivers:
    • GUIDRV_FlexColor: When drawing a single pixel a possible cache where not taken into account. Fixed.

Version 6.14f

  1. Window manager:
    • Since version V6.14e the function WM_BringToTop() does not unlock the GUI in all cases. Fixed.
  2. Widget:
    • SWITCH: If the size of the used bitmaps is larger than the widgets size ghost pixels appear surround the widget. Fixed.

Version 6.14d

  1. Widget:
    • KEYBOARD: Under certain circumstances a crash occurred when calculating the width of a long press character. Fixed.
    • ROTARY: When reacting on a key the widget did not unlock the widget handle. Fixed.

Version 6.14c

  1. Widget:
    • SPINBOX: emWin would crash when the buttons of the SPINBOX exceeded the size of the widget. Fixed.
    • HEADER: Clicks on header columns were not processed correctly in fixed mode. Fixed.
    • LISTVIEW: Sometimes wrong items would be selected when motion was enabled. Fixed.
    • LISTVIEW: Motion scrolling would not scroll to the end. Fixed.
    • LISTVIEW: LISTVIEW_SetAutoscrollH/V did not remove scrollbars when parameter was 0 (off). Fixed.
    • EDIT: Fixed a bug with Arabic and automatic text scrolling.

Version 6.14b

  1. Widget:
    • MULTIEDIT: The cursor was placed incorrectly when entering Arabic ligatures and numbers in bi-directional text mode. Fixed.
    • MULTIEDIT: Home and end keys were swapped when used with Arabic text. Fixed.
    • MULTIEDIT: When pressing the end key, the cursor jumped to the penultimate character when the line contained a null-terminator. Fixed.
    • MULTIEDIT: The cursor jumped to the beginning of the line when entering (Arabic) numbers in bi-directional text mode. Fixed.
    • MULTIEDIT: The initial cursor position was wrong with Arabic text. Fixed.
    • MULTIEDIT: The cursor vanished when scrolling down and then up by using arrow keys. Fixed.
  2. BitmapConverter:
    • The file open dialog would not be opened if the tool was newly installed. Fixed.

Version 6.14a

  1. Widget:
    • KEYBOARD: A KEYBOARD without a layout can cause a crash. Fixed.
    • EDIT: Cursor was blinking wrong when changing cursor position. Fixed
  2. AppWizard:
    • An incomplete interaction to shift a screen can cause a crash. Fixed.
    • The Gauge object doesn't react properly on messages. Fixed.

Version 6.14

  1. Core:
    • Sprites are using automatic multi buffering now if the Window Manager is available.
  2. Fonts:
    • New functions GUI_GetLeadingBlankRows() and GUI_GetTrailingBlankRows() added.
  3. Window Manager/Widget:
    • New KEYBOARD widget added.
      - Fully configurable and scalable screen keyboard for entering text or numbers.
      - Comes with predefined keyboard layouts such as QWERTY, QWERTZ, AZERTY and more.
      - Custom layouts can be created as well.
      - Allows export and import of keyboard layouts.
      - New function KEYBOARD_CreateUser() added.
      - New function KEYBOARD_CreateIndirect() added.
      - New function KEYBOARD_ExportLayout() added.
      - New function KEYBOARD_ExportPatternFile() added.
      - New function KEYBOARD_SetLayout() added.
      - New function KEYBOARD_SetStreamedLayout() added.
      - New function KEYBOARD_SetColor() added.
      - New function KEYBOARD_SetFont() added.
      - New function KEYBOARD_SetPeriod() added.
    • New function EDIT_EnableAutoScroll() added.
    • WM_GetUserData() now returns 0 if the given handle is NULL.

Version 6.12d

  1. Core:
    • Sprites are using automatic multi buffering now if the Window Manager is available.
  2. Window Manager/Widget:
    • The function WM_GetUserData() and the WIDGET specific function to retrieve user data now returning 0 in case a NULL handle has been passed.

Version 6.12a

  1. JPEG:
    • GUI_JPEG_INFO structure has an additional member 'Progessive' to indicate if the JPEG is a progressive.
  2. Anti Aliasing:
    • New function GUI_AA_FillEllipseXL() added.

Version 6.12

  1. 2-D Graphic Library:
    • New function GUI_QR_CreateFramed() added.
  2. Display Driver:
    • GUIDRV_SPage:
      - Support for ST7571 added.
  3. Fonts:
    • New function GUI_GetStringDistXEx() added.
  4. Movies:
    • New function GUI_MOVIE_GetInfoH() added.
    • New function GUI_MOVIE_GetNumFrames() added.
  5. Widgets:
    • New GAUGE widget:
      - Similar to PROGBAR widget, but the value of the widget is displayed with arcs.
    • New QRCODE widget:
      - A widget that displays a QR code.
      - Automatically draws a white frame around the QR code.
    • Widgets:
      • New function GAUGE_CreateIndirect() added.
      • New function GAUGE_CreateUser() added.
      • New function GAUGE_GetValue() added.
      • New function GAUGE_SetAlign() added.
      • New function GAUGE_SetBkColor() added.
      • New function GAUGE_SetColor() added.
      • New function GAUGE_SetOffset() added.
      • New function GAUGE_SetRadius() added.
      • New function GAUGE_SetRange() added.
      • New function GAUGE_SetRoundedEnd() added.
      • New function GAUGE_SetRoundedValue() added.
      • New function GAUGE_SetValue() added.
      • New function GAUGE_SetValueRange() added.
      • New function GAUGE_SetWidth() added.
      • New function QRCODE_CreateIndirect() added.
      • New function QRCODE_CreateUser() added.
      • New function QRCODE_SetEccLevel() added.
      • New function QRCODE_SetNumModules() added.
      • New function QRCODE_SetPixelSize() added.
      • New function QRCODE_SetText() added.

Version 6.10g

  1. Widgets:
    • TEXT
      - New function TEXT_GetDefaultRotation() added.
      - New function TEXT_GetRotation() added.
      - New function TEXT_SetDefaultRotation() added.
      - New function TEXT_SetRotation() added.

Version 6.10f

  1. Tools:
    • First official release of AppWizard included.
  2. Core:
    • New function GUI_BMP_EnableBE() to be able to enable BE mode for drawing 16bpp BMP files with GUICC_M565.

Version 6.10b

  1. Core:
    • New function GUI_UC_EnableThai() added to be able to support Thai scripts.

Version 6.10

  1. Tools:
    • New tool AppWizard available:
      - Creates complete and ready to use emWin applications generated as a bundle of C- and H-files.
      - Resource management completely managed by the tool. The application designer gets completely rid of resource management. No more fiddling around with text-, font- and image files.
      - In case of a small addressable ROM area all kinds of resources can be outsourced to SD card or any other kind of media.
      - The range of code points can be specified for each font individually by pattern files, custom defined ranges or by the range of characters resulting from the application.
      - Resource outsourcing can be done for each resource individually.
      - Multiple languages can be defined in the integrated multilingual text management system.
      - Interactions define the application behavior.
      - The integrated play mode could be used to test the application without compiling it.
      - Comes with a couple of predefined BSPs for the most important evaluation boards including a file system and embOS.
      - Works with any system having at least 32 KBytes of RAM and 128 KBytes of ROM.
      - Any file system and any operating system could be used.
    • emVNC:
      - Now available for MacOS and Linux, lots of new functions like manage last connections, zoom in and out, full screen and more.
  2. Widgets:
    • New ROTARY widget:
      - Similar to the KNOB widget it offers an easy to use interface for creating rotary knobs.
      - Only the marker image is moved and optionally rotated, not the background.
    • New SWITCH widget:
      - Acts as a two-state toggle switch widget that can select between two options.
      - State selection could be done by shifting the thumb or simply tapping on the widget.
      - Fading and disclosing are supported as visual effects.
    • 2-D Graphic Library:
      • New function GUI_ANIM_DeleteAll() added.
      • New function GUI_ANIM_GetData() added.
      • New function GUI_ANIM_GetFirst() added.
      • New function GUI_ANIM_GetItemData() added.
      • New function GUI_ANIM_GetNext() added.
      • New function GUI_ANIM_GetNumItems() added.
      • New function GUI_ANIM_IsRunning() added.
      • New function GUI_BARCODE_Draw() added.
      • New function GUI_BARCODE_GetXSize() added.
      • New function GUI_DrawGradientHEx() added.
      • New function GUI_DrawGradientMVEx() added.
      • New function GUI_DrawGradientVEx() added.
      • New function GUI_DrawGradientRoundedHEx() added.
      • New function GUI_DrawGradientRoundedVEx() added.
      • New function GUI_FillRoundedRectEx() added.
      • New function GUI_GetCharFromPos() added.
      • New function GUI_YUV_Create() added.
      • New function GUI_YUV_CreateEx() added.
      • New function GUI_YUV_Delete() added.
      • New function GUI_YUV_DeleteEx() added.
      • New function GUI_YUV_GetpData() added.
      • New function GUI_YUV_GetpDataEx() added.
      • New function GUI_YUV_InvalidateArea() added.
      • New function GUI_YUV_SetPeriod() added.
      • New function GUI_YUV_SetPeriodEx() added.
    • Language support:
      • New function GUI_LANG_GetTextLen() added.
      • New function GUI_LANG_GetTextLenEx() added.
    • Widgets:
      • New function EDIT_GetCharAtPixel() added.
      • New function EDIT_GetSel() added.
      • New function EDIT_GetSelText() added.
      • New function GRAPH_DATA_YT_SetColor() added.
      • New function GRAPH_DATA_XY_SetColor() added.
      • New function HEADER_GetColumnFromPos() added.
      • New function MULTIPAGE_GetTabHeight() added.
      • New function MULTIPAGE_GetTabWidth() added.
      • New function MULTIPAGE_GetNumTabs() added.
      • New function MULTIEDIT_GetTextFromLine() added.
      • New function MULTIEDIT_GetTextFromPos() added.
      • New function LISTBOX_EnableMotion() added.
      • New function LISTVIEW_EnableMotion() added.
      • New function SWIPELIST_IsSepItem() added.
      • New function MULTIEDIT_GetNumChars() added.
    • Display Driver:
      • GUIDRV_FlexColor:
        - New function GUIDRV_FlexColor_Func66725() added with support for UC1698.

Version 5.50

  1. Displaying Text:
    • New function GUI_ShowMissingCharacters() added.
  2. 2-D Graphic Library:
    • New function GUI_DrawGradientMH() added.
    • New function GUI_DrawGradientMV() added.
  3. Memory Devices:
    • New function GUI_MEMDEV_CreateCopy() added.
  4. Window Manager:
    • New function WM_SetUntouchable() added.
  5. Widgets:
    • New function GRAPH_InvertScrollBar() added.
    • New function GRAPH_DATA_YT/XY_SetColor() added.
    • New function KNOB_SetInvert() added.
    • New function KNOB_SetRotateHQ() added.
    • New function KNOB_SetRotateLQ() added.
    • New function SLIDER_EnableFocusRect() added.
    • New function SLIDER_SetInvertDir() added.
    • New function SPINBOX_SetTimerPeriod() added.
  6. Display Driver:
    • New driver GUIDRV_SLinEPD added.
    • New driver GUIDRV_SSD1322 added.
  7. Configuration:
    • New function GUI_AlphaEnableFillRectHW() added.

Version 5.48r

  1. Display drivers:
    • GUIDRV_SH_MEM:
      - Driver now also supports displays with 9 bit addresses like Sharp LS018B7DH02.

Version 5.48n

  1. Display drivers:
    • New driver GUIDRV_SLinEPD added.
  2. Core:
    • Draw line:
      - GUI_DrawLine() uses display driver cache locking mechanism if available.
  3. Widget:
    • WINDOW:
      - New function WINDOW_GetBkColor() to retrieve the currently set back ground color.

Version 5.48m

  1. Core:
    • Draw rect:
      - GUI_DrawRect() and GUI_DrawRectEx() taking pen size into account now.

Version 5.48l

  1. Widget:
    • GRAPH:
      - New function GRAPH_DATA_YT_SetColor() added.
      - New function GRAPH_DATA_XY_SetColor() added.

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 6.36

  1. Core:
    • Renamed font formats: "Standard" formats are now called "Legacy" formats, because they are not recommended to be used anymore. "Extended" fonts are now called "Standard" fonts.
    • Renamed GUI_XBF_TYPE_PROP_... and GUI_SIF_TYPE_PROP_... defines according to the renaming of the font formats. Compatibility macros were added, old code still works.
    • Under very rare circumstances a blinking cursor could cause a memory leak with BiDi support enabled. Fixed.
  2. KEYBOARD widget:
    • Widget invalidated itself unnecessarily. Fixed.
  3. MULTIEDIT widget:
    • Long strings could cause an overflow. Fixed.
    • Scrolling with the cursor and enabled motion scrolling wasn't working correctly. Fixed.
  4. LISTVIEW widget:
    • Motion scrolling with automatic scrollbars was causing troubles. Fixed.
  5. Memory devices:
    • GUI_MEMDEV_CopyRect() failed if two devices with different color depths were used. Fixed.
  6. AppWizard:
    • Details about program corrections can be found in the release notes of AppWizard.

Version 6.34g

  1. Core:
    • The function GUI_DispStringAt() changed the test alignment without restoring the previous value. Fixed.
    • GUI_CopyRect() did not observe cursor. Fixed.
  2. LISTVIEW widget:
    • Under certain circumstances a LISTVIEW with SCROLLBARs enabled could cause an exception when deleting the widget. Fixed.
  3. MULTIEDIT, LISTVIEW & LISTBOX widget:
    • Hardware acceleration function for CopyRect operation must not be used if output in memory device is required. Fixed.

Version 6.34f

  1. AppWizard:
    • Bugs in examples fixed.
    • More details can be found in the release notes of AppWizard.

Version 6.34e

  1. Streamed bitmaps:
    • Under certain circumstances GUI_DrawStreamedBitmapExAuto() did not unlock the GUI. Fixed.
  2. Bitmaps:
    • Drawing bitmaps of format 'True color with alpha, compressed' did not work in case of using a hardware acceleration function with GUI_SetFuncAlphaBlending(). Fixed.
  3. Memory devices:
    • GUI_MEMDEV_WriteAlpha() and GUI_MEMDEV_WriteAlphaEx() did not observe the clipping rectangle. Fixed.

Version 6.34d

  1. Window Manager:
    • When sending a PID related message from WM_HandlePID() the element hWinSrc of WM_MESSAGE was not initialized under certain circumstances. Changed.
    • WM_AttachWindow() crashed in case of passing a NULL handle. Fixed.
  2. XBF fonts:
    • Under certain circumstances GUI_XBF__GetOff() calculated a wrong offset. Fixed.
  3. ROTARY widget:
    • In case of painting into a memory device the widget did not observe the state of the WM. Fixed.

Version 6.34c

  1. Orientation device:
    • Device did not work when using LISTBOX, LISTVIEW or MULTIEDIT widget. Fixed.
  2. MULTIEDIT widget:
    • Large content with bidirectional text did not work. Fixed.
    • A blinking cursor caused very high CPU load. Fixed.
  3. LISTBOX, MULTIEDIT and LISTVIEW widget:
    • Swiping content optimized significantly if a hardware function for copying rectangular areas exist.

Version 6.34b

  1. Core:
    • 16-bit BMP files were not displayed correctly for GUICC_M565 color conversion. Fixed.
    • 16-bit BMP files (BitField-encoded) were not displayed correctly. Fixed.
  2. Widget:
    • WHEEL_CreateIndirect() did not process widget flags to set the widget state to vertical. Fixed.
  3. Tools:
    • emWinView: Visible layer used wrong stride value when using virtual screens that had a virtual xSize bigger than the LCD xSize. Fixed.

Version 6.34a

  1. AppWizard:
    • BSP's reworked and CPU usage significantly reduced by using semaphores if an OS is available.
    • More details can be found in the release notes of AppWizard.
  2. General:
    • Replaced ceil(), floor() and sqrt() by their float counterparts ceilf(), floorf() and sqrtf() in order to avoid warnings.
  3. VNC:
    • If the real driver had no ReadRect function the VNC server used get-pixel-index which return wrong indices with 16bpp (16 bit indices in 32 bit wide values). Fixed.
  4. Memory Devices:
    • GUI_MEMDEV_WriteAlpha() did not work completely right under certain circumstances. Fixed.

Version 6.34

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. LISTBOX widget:
    • LISTBOX_SetText() did not clear items and did not update SCROLLERs or SCROLLBARs. Fixed.
  3. SCROLLER widget:
    • Under certain circumstances SCROLLER did not calculate correct positions and stayed invisible. Fixed.
  4. RADIO widget:
    • RADIO widget did not react on PID state changes. Fixed.

Version 6.32d

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. Tools:
    • FontConverter: Baseline calculation under certain circumstances wrong. Problem solved.

Version 6.32c

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. MULTIEDIT widget:
    • MULTIEDIT did not show last line when using vertical motion. Fixed.
  3. EDIT widget:
    • EDIT did not swallow motion messages. It now does so that the cursor can be dragged around without any screens being moved.

Version 6.32b

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. Language Support:
    • GUI_LANG_LoadTextEx() did not work with empty strings. Fixed.
    • GUI_LANG_GetTextBuffered(): If the requested string has a length of 0 the given buffer remained untouched without zero delimiter at the begin. Fixed.
  3. Fonts:
    • When using (old) monospaced fonts non existing characters were not shown after calling GUI_ShowMissingCharacters(1). Fixed.
  4. MOVIE widget:
    • ADDVALUE on movie object that is stopped did increase frame position but the widget is not redrawn. Fixed.
  5. KEYBOARD widget:
    • KEYBOARD layout export wrote strings without zero-termination characters. ENG_LP layout dollar sign removed (same change like with ENG layout). Fixed.
    • Changed longpress characters in ENG layout. Dollar sign shifted the other chars in the row. Now the longpress chars are at the same positions with or without shift.
  6. LISTBOX widget:
    • Adding new LISTBOX items did not invalidate the cached sizes of the object. As a consequence the SCROLLER had an incorrect scroll state. Fixed.
  7. LISTVIEW widget:
    • LISTVIEW set the capture on MOTION_INIT which was not necessary. When widgets were attached to the LISTVIEW they would not receive touch events. Fixed.
  8. MULTIEDIT widget:
    • Under certain circumstances the MULTIEDIT callback function did not unlock all pointers. Fixed.
  9. DROPDOWN widget:
    • The LISTBOX of a DROPDOWN was not drawn properly if background changed. Fixed.
  10. emWinSPY:
    • emWinSPY now comes as installer.

Version 6.32a

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. SWITCH widget:
    • Widget did not free its draw objects on WM_DELETE. Fixed.
  3. Core:
    • Under certain circumstances corrupted string data could cause an endless loop. Fixed.

Version 6.32

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. LISTBOX widget:
    • Listbox items were not properly initialized when added with LISTBOX_SetText(). Fixed.
  3. LISTVIEW widget:
    • In some cases LISTVIEW calculated wrong maximum horizontal motion position which would make scrolling to the end impossible. Fixed.
  4. SWITCH widget:
    • When a custom hardware function was set with GUI_SetFuncMixColorsBulk() it is was not used for blending operations. Fixed.

Version 6.30a

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. LISTVIEW widget:
    • Crash when number of fixed columns exceeds number of columns. Fixed.
  3. BitmapConverter:
    • Conversion from GIF into bitmap EMF did not work for formats above 8bpp. Fixed.
    • When creating EMFs from GIF animations the conversion dialog did not show any options for the bitmap formats M444_12, M444_12_1 and M444_16 which would lead to a crash. Fixed.

Version 6.30

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. Memory Devices:
    • GUI_MEMDEV_WriteAlpha() did not observe clipping rectangle. Fixed.
    • Usage of wrong conversion routine in GUI_MEMDEV_WriteAlpha(). Fixed.
    • GUI_MEMDEV_WriteAlpha() crashed if the image was bigger than the screen or was at a negative position. Fixed.
  3. Sprites/Cursors:
    • A semi-transparent 32bpp cursor drawn above a 1bpp font would lead to artefacts on the screen. Fixed.
  4. Window Manager:
    • When WM_MOTION_R was used and WM_MOTION_X or WM_MOTION_Y was used afterwards, wrong motion delta values were returned. Fixed.
  5. DROPDOWN widget:
    • Click on DROPDOWN item would send a release event to any widget that is below the DROPDOWN list. Fixed.
    • DROPDOWN attached to a SWIPELIST would cause problems when it received motion input. Fixed.
    • DROPDOWN attached to a SWIPELIST could lead to wrong touch input coordinates if it was expanded and the touch was outside of the attached LISTBOX. Fixed.
    • DROPDOWN behavior changed: The list now closes on release of an item, not on click of an item, whether or not motion support is enabled for the DROPDOWN.
  6. LISTBOX widget:
    • Hidden SCROLLERs attached to a LISTBOX received clicked events. Fixed.
  7. LISTVIEW widget:
    • LISTVIEW with SCROLLERs attached to a SWIPELIST would have often its SCROLLERs hidden which was not intended. Fixed.
    • LISTVIEW_GetItemRect() did not factor in motion offset. Fixed.
  8. SLIDER widget:
    • When motion was enabled, SLIDER widget would not swallow motion input by default but it could be moved around instead. Fixed.
  9. TREEVIEW widget:
    • TREEVIEW_SetSel(0) would lead to a crash. Fixed.
  10. Fonts (FreeType only):
    • TTF fonts with embedded bitmaps were not displayed correctly if the font was anti-aliased and in a certain size. For example: Calibri, 16px. Fixed.

Version 6.28

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. SCROLLER widget:
    • Fading did not work under certain circumstances. Fixed.
  3. MULTIEDIT widget:
    • If the number of lines was reduced to a number that the text could not be motion scrolled, motion input moved the window instead of the text. Fixed.
    • With SCROLLERs activated and a text ySize smaller than the widget had invalidation and cursor position issues. Fixed.
  4. Antialiasing:
    • GUI_AA_DrawPolyOutline() did not work in transparent windows. Fixed.
    • GUI_AA_DrawPolyOutlineEx() removed. Compatibility macro added which will call GUI_AA_DrawPolyOutline() instead.

Version 6.26d

  1. Fonts:
    • SIF fonts did not work with GUI_SetFallbackFont(). Fixed.
  2. BitmapConverter:
    • Conversion of an image without transparency into a perfect palette did not work. Fixed.
    • When an error occured while reading a C bitmap, the file was not closed afterwards. Fixed.
  3. emWinView:
    • Selection rectangle was not restored for virtual layer views and composite views if simulation was closed and reopened while emWinView was running. Fixed.
    • Grid option does not get cleared anymore when zoom level is set below 300%. Fixed.
    • Mouse movements would be sent to emWin if selection or hand tool was active. Fixed.
  4. Memory devices:
    • Under certain circumstances GUI_MEMDEV_WriteAlpha() used wrong color conversion. Fixed.
    • GUI_MEMDEV_WriteAlpha() did not observe clipping. Fixed.
  5. IMAGE widget:
    • Problems with alpha blending in combination with use of GUI_MEMDEV_WriteAlpha(). Fixed.
  6. CALENDER widget:
    • CALENDAR_GetDaysOfMonth() did not observe leap years. Fixed.
  7. SCROLLER widget:
    • Some changes to ensure correct function of SCROLLER widget.

Version 6.26c

  1. LISTVIEW widget:
    • Deleting a LISTVIEW widget with active scrollbars caused a crash. Fixed.
  2. AppWizard:
    • Some minor fixes in the editor when scaling is active. Details can be found in the release notes of AppWizard.

Version 6.26b

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.
  2. BitmapConverter:
    • Converting PNGs with transparency to 8bpp with transparency did not work. Fixed.

Version 6.26a

  1. Widgets:
    • SLIDER: When trying to move a SLIDER on a moveable screen the screen was moved instead of the SLIDER. Fixed.
  2. AppWizard:
    • Details can be found in the release notes of AppWizard.

Version 6.26

  1. Anti-aliasing:
    • GUI_AA_FillRoundedRect() did not work with high-resolution anti-aliasing. Fixed.
  2. Language Support:
    • GUI_LANG_Clear() would cause crash if during reading of a CSV file not enough memory was available. Fixed.
  3. Widgets:
    • SWIPELIST would sometimes not move back when released in overlap area. Fixed.
    • LISTVIEW: Resizing columns would also sort the column when PID was released. Fixed.
    • Widgets SWITCH, LISTBOX, LISTVIEW, MULTIEDIT, SWIPELIST did not have their own motion context. Motion swiping two widgets of the same type at the same time was not possible. Fixed.
    • SWITCH did not always send notifications to its parent when the thumb was moved with motion. Fixed.
  4. Display Driver:
    • GUIDRV_FlexColor_Func66709: GUIDRV_FLEXCOLOR_READ_FUNC_III read 7 cycles instead of 2. Fixed.
  5. Tools:
    • Bitmap Converter:
      Reading of C files improved, it is now more tolerant of the file structure.
    • emWinView:
      Semi-transparent colors were not always shown correctly. Fixed.
      Dialogs appeared in the center of the screen instead of above emWinView. Fixed.
      Opening a multi-layer application and then a single-layer application could crash the tool. Fixed.

Version 6.24a

  1. Core:
    • RLE-Alpha Bitmaps: Under very rare circumstances an endless loop could occur. Fixed.

Version 6.24

  1. Core:
    • SJIS: Characters would sometimes be skipped and strings were displayed at wrong positions. Fixed.
    • Thai script had issues when used with TTF fonts. Fixed.
    • When GUI_ShowMissingCharacters() was enabled and a font did not contain carriage return and line feed characters, displayed strings were not positioned correctly. Fixed.
  2. Widgets:
    • LISTVIEW_GetVisRowIndices() would sometimes return false index values. Fixed.
    • SWITCH would not display thumb bitmaps for disabled state. Fixed.
    • When HEADER was moved it would have parts that were not invalidated. Fixed.
    • SWITCH improved the widgets behavior and fixed minor issues.

Version 6.22

  1. Core:
    • Fixed several minor issues (compiler warnings).
  2. Memory Devices:
    • Semi-transparency would not work in GUI_MEMDEV_PunchOutDevice() with GUI_DM_TRANS and ARGB color mode. Fixed.
  3. Language Support:
    • Thai: Tone marks were not displayed correctly. Fixed.
  4. Widgets:
    • Calling TREEVIEW_GetItem(TREEVIEW_GET_FIRST_CHILD) on a node without children would cause a crash. Fixed.
  5. Anti-aliasing:
    • GUI_AA_FillRoundedRect() was missing a GUI_UNLOCK() and caused problems when negative values were passed. Fixed.
  6. Tools:
    • Font Converter:
      Monospaced BDF fonts would be loaded and saved as non-monospaced. Fixed.
    • emWinView:
      Selection rectangle would not mark the upper/left edges of a layer. Fixed.
      ESC key would be sent to emWin when using selection/hand tools. Fixed.
      Window would not be shown in maximized state when simulation was closed and reopened. Fixed.
      Selection rectangle would not be restored when closing and reopening simulation. Fixed.
      Application scalability issues fixed.

Version 6.20c

  1. Tools:
    • FontCvt would load and save monospaced BDF fonts as non-monospaced. Fixed.

Version 6.20b

  1. Widget:
    • SWITCH: Did not free it's text handles when deleting the widget. Fixed.
    • QRCODE: Did not free it's text handle when deleting the widget. Fixed.
  2. Animations:
    • GUI_ANIM_DeleteAll() did not delete all currently existing animations. Fixed.

Version 6.20a

  1. Widget:
    • LISTBOX: LISTBOX was detecting a false vertical motion and sending unnecessarily a WM_NOTIFICATION_SCROLL_CHANGED message. Fixed.

Version 6.20

  1. Core:
    • Grayscale JPEGs were not visible if drawn into a 32bpp memory device with the GUI_USE_ARGB flag set. Fixed.
  2. Memory Devices:
    • GUI_MEMDEV_WriteEx() did not restore currently set color index. Fixed.
  3. Widgets:
    • KEYBOARD:
      Touch input moved out of KEYBOARD window would not be recognized. Fixed.
    • LISTBOX:
      Motion support could cause a crash. Fixed.
    • LISTVIEW:
      It was not possible to attach a custom scrollbar if "autoscroll" was not enabled. Fixed.
    • LISTWHEEL:
      LISTWHEEL_SetSel() did not send a WM_NOTIFICATION_SEL_CHANGED to parent. Fixed.
  4. Tools:
    • Bitmap Converter:
      Palette colors from C bitmap files were not read correctly in ABGR mode. Fixed.
      It was not possible to reduce colors via the commandline. Fixed.
    • emWinView:
      Settings such as zoom, grid, etc. would be lost after closing the simulation. Fixed.
      Default background of WM_HBKWIN would be shown grey instead of black. Fixed.
  5. VNC:
    • Connection via WebSocket would result in an error. Fixed.

Version 6.18c

  1. Widget:
    • TEXT: If a string with the same length as the previous one was set to be displayed the TEXT widget was not updated. Fixed.
  2. Language Support:
    • Shift-JIS fonts: Sometimes characters from dump would be displayed at the end of a Japanese string. Fixed.

Version 6.18b

  1. Memory Devices:
    • GUI_MEMDEV_RotateHQxxx() functions showed unwanted artifacts. Fixed.
  2. Widget:
    • ROTARY: Wrong alpha values used by marker device. Fixed.
  3. AppWizard:
    • Details can be found in the release notes of AppWizard.
  4. Core:
    • Under very rare circumstances allocating a fixed block failed in spite of enough memory was available. Fixed.

Version 6.18a

  1. AppWizard:
    • Details can be found in the release notes of AppWizard.

Version 6.18

  1. Widget:
    • SPINBOX sends WM_NOTIFICATION_MOVED_OUT also if this happens on the SPINBOX buttons.

Version 6.16e

  1. Core:
    • GUI_GetBlankCols(): Did not work within windows. Problem solved.
  2. Anti Aliasing:
    • GUI_AA_DrawCircle(): Setting a HW function only for drawing and not for filling did not work. Problem solved.
  3. AppWizard:
    • Details can be found in the release notes of AppWizard.

Version 6.16d

  1. AppWizard:
    • Libraries and BSPs do not contain GUIDRV_Lin. Fixed

Version 6.16b

  1. Core:
    • Crash in QR code functions in case of too less memory. Fixed.
  2. Widget:
    • EDIT: Missing GUI_UNLOCK in EDIT_GetBorderSize() and EDIT_SetBorderSize(). Fixed.
  3. AppWizard:
    • Multiple changes/enhancements in AppWizard code. Details can be found in the release notes of AppWizard.

Version 6.16a

  1. Widget:
    • SWIPELIST: Widgets attached to items were not positioned properly. Fixed.
    • SWIPELIST: Widget with the same or greater size as an item were not alloed to be attached. Fixed

Version 6.14g

  1. Display drivers:
    • GUIDRV_FlexColor: When drawing a single pixel a possible cache where not taken into account. Fixed.

Version 6.14f

  1. Window manager:
    • Since version V6.14e the function WM_BringToTop() does not unlock the GUI in all cases. Fixed.
  2. Widget:
    • SWITCH: If the size of the used bitmaps is larger than the widgets size ghost pixels appear surround the widget. Fixed.

Version 6.14d

  1. Widget:
    • KEYBOARD: Under certain circumstances a crash occurred when calculating the width of a long press character. Fixed.
    • ROTARY: When reacting on a key the widget did not unlock the widget handle. Fixed.

Version 6.14c

  1. Widget:
    • SPINBOX: emWin would crash when the buttons of the SPINBOX exceeded the size of the widget. Fixed.
    • HEADER: Clicks on header columns were not processed correctly in fixed mode. Fixed.
    • LISTVIEW: Sometimes wrong items would be selected when motion was enabled. Fixed.
    • LISTVIEW: Motion scrolling would not scroll to the end. Fixed.
    • LISTVIEW: LISTVIEW_SetAutoscrollH/V did not remove scrollbars when parameter was 0 (off). Fixed.
    • EDIT: Fixed a bug with Arabic and automatic text scrolling.

Version 6.14b

  1. Widget:
    • MULTIEDIT: The cursor was placed incorrectly when entering Arabic ligatures and numbers in bi-directional text mode. Fixed.
    • MULTIEDIT: Home and end keys were swapped when used with Arabic text. Fixed.
    • MULTIEDIT: When pressing the end key, the cursor jumped to the penultimate character when the line contained a null-terminator. Fixed.
    • MULTIEDIT: The cursor jumped to the beginning of the line when entering (Arabic) numbers in bi-directional text mode. Fixed.
    • MULTIEDIT: The initial cursor position was wrong with Arabic text. Fixed.
    • MULTIEDIT: The cursor vanished when scrolling down and then up by using arrow keys. Fixed.
  2. BitmapConverter:
    • The file open dialog would not be opened if the tool was newly installed. Fixed.

Version 6.14a

  1. Widget:
    • KEYBOARD: A KEYBOARD without a layout can cause a crash. Fixed.
    • EDIT: Cursor was blinking wrong when changing cursor position. Fixed
  2. AppWizard:
    • An incomplete interaction to shift a screen can cause a crash. Fixed.
    • The Gauge object doesn't react properly on messages. Fixed.

Version 6.14

  1. Widget:
    • Clicks on ICONVIEW would select wrong items. Fixed. Now only clicks on the icons change the selection.
    • Automatic text scrolling in EDIT didn't work properly with right- or center-alignments and Arabic text. Fixed.
    • With Arabic ligatures, the cursor in MULTIEDIT/EDIT widgets skipped a character. Fixed.
    • Custom bitmaps were not displayed when skinning props were set for a RADIO widget. Fixed.
  2. Font Converter:
    • Installer would crash on Windows systems. Fixed.
  3. Bin2C:
    • Tool would create invalid array names (e.g. when the file name contained a minus). Fixed.

Version 6.12d

  1. AppWizard:
    • Under certain circumstances multiple definitions can occur. Fixed.

Version 6.12c

  1. Widget:
    • SWITCH Widget doesn't unlock memory block. Fixed.
  2. AppWizard:
    • Text object doesn't free its resources. Fixed.

Version 6.12b

  1. Core:
    • Under certain circumstances the function GUI_GetLeadingBlankCols() were not working properly. Fixed.

Version 6.10h

  1. Widget:
    • ICONVIEW: Fixed a bug where transparency didn't work with icon backgrounds.

Version 6.10g

  1. AppWizard:
    • Multiple changes and bug fixes in AppWizard code.

Version 6.10f

  1. Core:
    • Accelerated drawing of 16bpp BMP files with GUICC_M565 does not work in case of frame buffer requires BE. Fixed.
  2. Widget:
    • EDIT: Uninitialized pointer in EDIT_GetCharAtPixel(). Fixed.

Version 6.10e

  1. Core:
    • Lack of performance when drawing 16bpp BMP files. Fixed.
  2. AppWizard:
    • Several corrections.

Version 6.10d

  1. Widget:
    • LISTVIEW: Scrollbars did not have the correct size after creating a LISTVIEW widget. Fixed.

Version 6.10c

  1. Widget:
    • ICONVIEW: Spacing in x direction gets not taken into account when clicking an item. Fixed.

Version 6.10b

  1. Core:
    • Some aspects of drawing Thai script not observed by emWin. New function added to support correct drawing of Thai script.

Version 6.10a

  1. Widget:
    • PROGBAR: The frame around the progbar is hard to avoid. This frame can suppressed now.

Version 5.50k

  1. Simulation:
    • Under certain circumstances setting layer properties from a second thread causes a crash. Fixed.

Version 5.50j

  1. Bitmap Converter:
    • Bitmap Converter doesn't remember the last used directory. Fixed.

Version 5.50h

  1. Widget:
    • EDIT: The blinking cursor does not make use of multibuffering. Fixed.

Version 5.50g

  1. Window manager (motion support):
    • Additional check added in _ExecMotion() avoiding an invalid pointer in list of critical handles.
  2. Display driver:
    • GUIDRV_S1D13781 changed logical AND to bitwise AND.

Version 5.50f

  1. Anti Aliasing:
    • GUI_AA_DrawLine(): Function does not use last two parameters for clipping when a hardware routine is set. Problem solved.

Version 5.50e

  1. Widget:
    • MULTIEDIT: Cursor keeps blinking even if the widget is hidden. Problem solved.

Version 5.50d

  1. Core:
    • Language Support: Empty entries in CSV files leading to a missing first item. Problem solved.
    • Default configuration: GUI_SUPPORT_BIDI is per default 1 and causes an increase in RAM usage. Set to default 0.

Version 5.50c

  1. Widget:
    • EDIT: Cursor doesn't blink. Problem solved.

Version 5.50b

  1. Window Manager:
    • WM_GetModalWindow() doesn't unlock GUI. Problem solved.

Version 5.48t

  1. Display driver:
    • GUIDRV_SPage: GUIDRV_SPage_SetST75256 does not work with a color depth of 4bpp. Problem solved.

Version 5.48s

  1. Widget:
    • Automatic scrollbars of the GRAPH widget moving GRAPH to uncommon directions. Added function to switch moving direction.

Version 5.48q

  1. Display driver:
    • GUIDRV_SLinEPD: Switching between partial- and full update does not work right. Problem solved.

Version 5.48p

  1. Core:
    • Wrapping does not work with Shift-JIS. Problem solved.

Version 5.48o

  1. Common:
    • Compiler warnings eliminated.

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.
    • GRAPH: Under certain circumstances the GRAPH gets not updated properly when adding a value. 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
V6.36 2023-12-19 General release
V6.34g 2023-11-02 General release
V6.34f 2023-10-30 Point release
V6.34e 2023-10-25 General release
V6.34d 2023-10-16 General release
V6.34c 2023-10-04 General release
V6.34b 2023-09-20 Point release
V6.34a 2023-08-08 General release
V6.34 2023-07-05 General release
V6.32d 2023-05-12 General release
V6.32c 2023-04-14 General release
V6.32b 2023-03-20 General release
V6.32a 2023-03-01 General release
V6.32 2023-02-17 General release
V6.30a 2022-12-05 General release
V6.30 2022-11-21 General release
V6.28 2022-09-09 General release
V6.26d 2022-08-05 Point release
V6.26c 2022-06-08 Point release
V6.26b 2022-06-01 Point release
V6.26a 2022-05-12 Point release
V6.26 2022-04-28 General release
V6.24a 2022-03-23 Point release
V6.24 2022-01-20 General release
V6.22a 2021-11-29 Point release
V6.22 2021-11-17 General release
V6.20c 2021-10-05 Point release
V6.20b 2021-09-30 Point release
V6.20a 2021-08-31 Point release
V6.20 2021-08-11 General release
V6.18c 2021-07-02 Point release
V6.18b 2021-06-08 Point release
V6.18a 2021-05-12 Point release
V6.18 2021-05-03 General release
V6.16e 2021-04-01 Point release
V6.16d 2021-03-24 Point release
V6.16c 2021-03-04 Point release
V6.16b 2021-01-07 Point release
V6.16a 2020-12-02 Point release
V6.16 2020-11-13 General release
V6.14g 2020-10-06 Point release
V6.14f 2020-09-01 Point release
V6.14e 2020-08-24 Point release
V6.14d 2020-08-05 Point release
V6.14c 2020-07-02 Point release
V6.14b 2020-06-15 Point release
V6.14a 2020-06-05 Point release
V6.14 2020-06-02 General release
V6.12d 2020-05-11 Point release
V6.12c 2020-05-06 Point release
V6.12b 2020-04-27 Point release
V6.12a 2020-04-17 Point release
V6.12 2020-04-08 General release
V6.10h 2020-03-16 Point release
V6.10g 2020-03-13 Point release
V6.10f 2020-02-27 General release
V6.10e 2020-02-12 Point release
V6.10d 2020-01-23 Point release
V6.10c 2020-01-14 Point release
V6.10b 2020-01-10 General release
V6.10a 2020-01-06 Point release
V6.10 2020-01-02 Point release
V5.50k 2019-12-03 Point release
V5.50j 2019-11-25 Point release
V5.50i 2019-10-15 Point release
V5.50h 2019-09-25 Point release
V5.50g 2019-09-18 Point release
V5.50f 2019-09-09 Point release
V5.50e 2019-09-05 Point release
V5.50d 2019-08-06 Point release
V5.50c 2019-08-01 Point release
V5.50b 2019-07-18 Point release
V5.50a 2019-07-08 Point release
V5.50 2019-05-31 General release
V5.48t 2019-04-29 Point release
V5.48s 2019-04-11 Point release
V5.48r 2019-03-06 Point release
V5.48q 2019-02-26 Point release
V5.48p 2019-01-30 Point release
V5.48o 2019-01-25 Point release
V5.48n 2019-01-24 Point release
V5.48m 2019-01-07 Point release
V5.48l 2018-12-20 Point release
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.