Embedded GUI Application Design

GUIX STUDIO Screen Design Tool

GUIX STUDIO provides a complete embedded GUI application design environment, facilitating the creation and maintenance of all graphical elements in the application’s GUI. GUIX STUDIO automatically generates C code compatible with the GUIX library, ready to be compiled and run on the target.

This is a representative screen shot of the running GUIX STUDIO application:
Embedded GUI Application Design Environment

The Studio application is composed of four main views into the application being designed. Additional properties and configuration dialogs are also invoked for less commonly used design elements. The four main views are the Project view in the upper left, the Properties view in the lower left, the Resource view on the right, and the central Target view.

These views within the Studio application allow the user to observe and modify the overall structure of the GUIX application, edit the detailed properties of particular widgets, and add and modify the resources utilized in the project.

Create Elegant User Interfaces

GUIX and GUIX Studio provide all the features necessary to create the most elegant user interfaces. The standard GUIX package includes various sample user interfaces, including a medical device reference, a smart watch reference, a home automation reference, an industrial control reference, an automotive reference, and various sprite and animation examples. Please click on the reference examples shown below.
Home Automation
White Goods
With each GUIX reference, there is also a corresponding GUIX Studio project that defines all the graphical elements of the reference design. Changing a reference design is easy. Simply open the corresponding GUIX project, make the desired changes, save the project, and then select Project Generate All Output Files to generate the C code for GUIX. Then simply rebuild the target application and run to observe the modified reference design.

GUIX STUDIO highlights

GUIX STUDIO highlights include:
  • Windows-based prototyping and development of embedded GUIs
  • WYSIWYG intuitive design functionality
  • Automatic code generation ready for use in target project, or as stand-alone Windows executable
  • Object creation, editing, cut, copy, and paste operations
  • Fully supports multi-lingual applications
  • Flexible color palette selection and extension
  • Management of all UI resources the application will use for colors, fonts, pixelmaps and strings
  • Support for up to four displays per project. Multiple displays can be of different resolution, color depth, and orientation
  • Support for designs with virtually unlimited widgets. This enables the creation of GUIs that range from very simple to extremely complex, to meet a variety of application needs
  • Supports a virtually unlimited number of distinct resources, e.g., colors, fonts, pixelmaps, strings, etc., giving the designer a vast set of tools with which to craft the most effective and user-friendly interface possible
  • Ability to import screens and resources from one project to another, which facilities the merging of work products produced in parallel by multiple developers
  • Supports generation of resource data in C source code form or binary format. The source code format is compiled and linked with a monolithic application, and the optional binary format allows runtime installation and binding of resource data

GUIX STUDIO generated code

GUIX STUDIO produces ANSI C source files for use in an embedded project.

These files contain the application resources and data structures for your designed screens. GUIX STUDIO also generates the functions that utilize the generated data structures to dynamically create your application GUI. The user’s embedded application code makes references to the code generated by GUIX STUDIO. The GUIX STUDIO generated code enables custom widget drawing, event handling, and memory allocation functions to be defined in the user’s embedded application code.

The Project View

The project view is a high level view of each screen designed in your Studio project. This allows you to easily navigate

across a large application, and drill down to the child widgets that may be members of each screen. The Properties view also provides context-sensitive drop-down menus for executing important Studio commands such as generating ANSI C source files, copying and pasting elements between projects, and configuring the physical displays that are supported by the target.

The Target View

The central view within the GUIX STUDIO application is a WYSIWYG view of the target display(s).

Up to four physical displays can be supported within one Studio project. GUIX STUDIO allows the user to zoom in on the target view, which is very useful when working with small displays.

Any of the widget types included within the GUIX library can be inserted, visually located, and edited using the mouse and keyboard within the Target view. Easy to use toolbar buttons are also provided for common operations such as alignment, z-ordering, sizing, and space-equally type of operations.

The Resource View

Resources include fonts, color, images, and strings required by your application. The Resource View within the Studio environment

gives you quick visual access to these elements and allows you to add, edit, and modify each resource individually.

Developers can produce pre-rendered fonts for use within an application using the integrated GUIX STUDIO font generation tool. Fonts can be generated in monochrome or anti-aliased formats, and can be compressed to save space on the target. Fonts can include any set of characters, including multi-byte Unicode characters for multi-lingual applications. GUIX STUDIO allows the user to finely tune the glyph set included within each font, and can automatically produce font(s) which include all of the glyphs required to render the statically defined application strings. GUIX STUDIO always displays the complete ROM or FLASH memory storage requirements for each font included within a project. Finally, GUIX and GUIX STUDIO support industry standard UTF8 string encoding.

GUIX STUDIO facilitates the import of graphics from PNG or JPG files with conversion to compressed GUIX pixelmaps for use on the target system. The developer has control over the generated output format, allowing images to be saved in lower color depth format and used with a higher color depth display, thereby reducing ROM storage size. Images can also be saved as alpha-maps, allowing the image color to be assigned at runtime. GUIX STUDIO displays a thumbnail view of each imported image, and displays the non-volatile storage requirements for each imported image as well. This allows the developer to monitor the ROM or FLASH memory requirements of application resources.

Generation and maintenance of application strings for any set of languages is another built-in facility of GUIX STUDIO. This enables developers to design an application using one language today, and quickly and easily add support for additional languages after the product is released.

GUIX and GUIX STUDIO support multiple resource themes, allowing an application to be easily reskinned at run-time. Fonts, colors, and pixelmaps can be changed at run-time with one simple API.

The Properties View

The Properties View allows the user to define colors, images, text, and drawing styles among other properties for each widget used in a design.

Many of the GUIX widget types are designed to incorporate user graphics for a custom look and feel. In addition, GUIX STUDIO allows customization of the default colors and drawing styles used by the GUIX widgets, allowing developers to tune the appearance of GUIX very easily. If additional customization is required, the developer can provide an original custom drawing function for any widget, simply by specifying the drawing function name within the widget properties.

GUIX STUDIO further allows the user to define complex combination widgets using the STUDIO template feature. Any collection of windows, screens, and widgets can be defined as a template within the STUDIO environment. Template widgets can be used just like intrinsic widgets, meaning you can re-use them, modify them, and add to them just like any other widget type. Templates also have the advantage of reducing the size of the C source files generated by STUDIO for applications that utilize many similar screens.

** Please note that all timing and size figures listed are estimates and may be different on your development platform

Subscribe to our news