กก
RTOS-32
กก

RTPEG-32: Portable Embedded GUI

RTPEG-32 is an event-driven, object-oriented C++ GUI library for embedded systems. It supports implementing professional Windows 95 or custom look-and-feel user interfaces. Device drivers for VGA and SVGA/VESA graphics hardware are included.

  • True Windows 95 Look-and-Feel
    RTPEG-32 includes a full set of controls which look and behave the way users expect. Predefined classes include buttons, bitmaps, check boxes, scroll bars, menus, progress bars, radio buttons, prompts, combo boxes, dialog boxes, lists, tree views, etc.
  • Event Driven Programming Model
    User interface objects of an application are typically C++ classes derived from a predefined RTPEG-32 class. Such a derived class can override methods such as Draw() to implement a custom appearance or Message() to catch messages sent by a user input device, separate threads, or other GUI controls.
  • Rich Set of Drivers
    A driver for VGA, 16 color mode, is included, as well as high performance drivers for 8-bit, 16-bit, 24-bit, and 32-bit color depth with arbitrary resolution. These drivers require VGA compatible hardware or VESA BIOS support. The source code of these drivers is included, allowing easy adaptation for custom video and LCD hardware.
  • Keyboard Support
    RTPEG-32 applications can be navigated using only the keyboard, if no mouse or other pointing device is available.
  • Mouse Support (Microsoft Serial and PS/2)
    Standard mice are supported. This includes any Microsoft Mouse compatible devices such as most touch screens.
  • Multilanguage Support
    RTPEG-32 applications contain all strings (e.g. control titles, prompts, help messages) in several languages. An application can switch the current language at run-time.
  • Unicode Support
    RTPEG-32 supports 8-bit and optionally 16-bit fonts to cover Japanese and other Far East languages.
  • Never Disables Interrupts
    All RTPEG-32 operations are fully interruptable. Real-time performance is never affected.
  • Supports (but does not require) RTKernel-32
    Several threads can perform screen output simultaneously. RTPEG-32 performs all required locking. Even the simultaneous execution of several modal windows is supported (e.g., to signal error conditions while other threads continue to run).
  • GUI Design Tools
    Program WindowBuilder is a rapid prototyping and design tool used to quickly create RTPEG-32 graphical objects such as bitmaps, fonts, windows, etc. It generates C++ source code to initialize all designed windows and catch all defined messages. Additional tools are included to generate custom fonts and to convert .BMP, .GIF, and .JPEG images into C++ compilable source code constants for easy inclusion in embedded applications.
  • Windows Emulation Environment
    For prototyping or fast native software development, GUIs programmed with RTPEG-32 can be executed and tested under Windows 95/98/ME/NT/2000/XP.

กก

Screenshot from an RTPEG-32 demo program with some RTPEG-32 windows and controls.
Screenshot from an RTPEG-32 demo program with some RTPEG-32 windows and controls.

    Example

Using RTPEG-32 is very simple. Program Window Builder can be used to automatically generate source code for complex user interface objects. Using predefined or custom controls and windows is a snap, as shown by the "Hello RTPEG-32" demo program below:
#include <peg.hpp>

int main(void)
{
   PegPresentationManager * pPresent;
   PegMessageWindow * pWin;

   pPresent = PegInitialize(CreatePegScreen_VESA_8(),
                            sizeof(class PegScreen));
   pWin = new PegMessageWindow("Example Message Window",
                 "This is a message window with a raised frame.",
                 MW_OK | MW_CANCEL | MW_RETRY | FF_RAISED);
   pPresent->Center(pWin);
   pPresent->Add(pWin);
   PegExecute(pPresent);
   return 0;
}
The program displays this message box:
        Example Message Window

    Predefined Window and Control Classes

RTPEG-32 comes with many graphical user interface objects which are all easily customizable through their constructors or by using them as base classes for application specific objects. Below is a list of all available window, control, chart, dial, etc. classes. The On Time RTOS-32 Evaluation Kit contains examples using many of these classes. The included documentation contains sample illustrations of each window or control.
Window Classes
Control Classes
Charts, Dials, etc.
PegWindow
PegPresentationManager
PegAnimationWindow
PegComboBox
PegDecoratedWindow
PegDialog
PegEditBox
PegList
PegHorzList
PegVertList
PegMessageWindow
PegNotebook
PegProgressWindow
PegSpreadSheet
PegTable
PegTextBox
PegTreeNode
PegTreeView
PegProgressBar
PegBitmapButton
PegButton
PegCheckBox
PegDecoratedButton
PegGroup
PegHScroll
PegIcon
PegMenu
PegMenuBar
PegMenuButton
PegMLTextButton
PegRadioButton
PegSlider
PegSpinButton
PegStatusBar
PegTextButton
PegTitle
PegToolBar
PegToolBarPanel
PegVScroll
PegVPrompt
PegChart
PegLineChart
PegMultiLineChart
PegStripChart
PegDial
PegFiniteDial
PegFiniteBitmapDial
PegLight
PegColorLight
PegBitmapLight
PegScale
PegLinearScale
PegLinearBitmapSca

     Examples of Predefined Windows and Controls

Below are a few screen shots of some of the more complex GUI objects shipped with RTPEG-32. Most of these displays have been produced with only a few lines of code. The complete code of these examples is included in the RTPEG-32 documentation
PegNotebook Example
PegSpreadSheet Example
PegTreeView Example
PegStripChart Example
PegFiniteBitmapDial Example
PegLinearBitmapScale Example
  Home