Microchip Technology Graphics Quick Reference Guide

Quick Reference Guide
Graphics Quick Reference Guide
September 2011
www.microchip.com/graphics
Display Controller Solutions
Graphical Displays
Microchip offers varying levels of solutions to drive everything from simple monochrome LCDs to full color WVGA user interfaces.
Graphics support includes the following approaches:
PIC24F DA integrated graphics controller
PIC32 controllerless graphics
Support for PIC MCU with external graphics controllers
The silicon offering is complemented with powerful, free and easy to use graphics library, display designer GUI and hardware development kits with flexible interface to various glass sizes.
Supported Screen Sizes and Colors
Microchip graphics solutions support various screen sizes and colors ranging from small monochrome OLED displays up to WVGA displays with vivid color. The table below shows the bits per pixel required to represent color.
Display
Representation
Mono Black and White 1
Grayscale
Color
Color Examples
4 shades
16 shades 256 colors
65K colors
16 million colors
As the color depth and display resolution increase, the frame buffer grows. Depending on the size, the frame buffer can be stored in the microcontroller RAM, in external SRAM or integrated into an external graphics controller.
Color Depth
(bits per pixel)
2 4
8 16 24
The table below shows examples of the frame buffer sizes required for some popular resolution and color depths.
PIC32 MCUs support up to 128 KB on chip
External SRAM can be used for larger frame buffers
For advanced graphics, external graphics controllers have
additional frame buffer storage
Display Resolution
Typical Sizes
WVGA 800x480 48,000 96,000 384,000 768,000
VGA 640x480 5.7˝ 38,400 76,800 307,200 614,400
WQVGA 480x272 4.3˝ 16,320 32,640 130,560 261,120
QVGA 320x240 3.2˝ 9,600 19,200 76,800 153,600
Common for OLED
Internal SRAM on PIC24DA or PIC32 MCU External SRAM
128x64 1˝-2.7˝ 1,024 2,048 8,192 16,384
Memory Requirement in (bytes)
1 bpp
(Mono)
Color Depth/
2 bpp
(4 shades)
8 bpp
(256 colors)
16 bpp
(65K colors)
Target Applications
Applications that benefit from attractive and easy to use graphical displays include:
Consumer: Thermostats, Cordless Phones, Remote Controls Home Appliance: Coffee Makers, Washing Machines, Ovens Industrial: Digital Instrument Gauges, Storage Controls,
Remote Terminals Portable Medical: Glucometers, Blood-Pressure Monitors,
Portable ECGs
PIC24 DA Integrated
Graphics Controller
Display* WQVGA 480x272 WQVGA 480x272 WQVGA 480x272 WVGA 800x480
Graphics
Frame Buffer
Core MIPS 16 80
Power Better Good Good Good
Cost $ $ $$ $$$
*Max size at 16 bpp, 60 Hz
HW Acceleration: Rectangles,
Characters, Images
Color Lookup Table +
96 KB on MCU + Ext SRAM
Controllerless Graphics
DMA on PIC32 + <5 MIPS
PIC32
128 KB on MCU +
Ext SRAM
External Solomon Systech
Graphics Controller SSD1926
HW Acceleration, SD card, I/F,
JPEG engine
256 KB on Solomon Systech
Controller
Graphics Controller S1D13517
External Epson
SDRAM, I/F, Alpha-blending,
Picture-in-picture
Ext SDRAM
2 Graphics Quick Reference Guide
Graphical Display Configurations
PIC24F with Integrated Graphics Controller: Low Cost, Easy to Use
The PIC24F DA family makes it easy and cost-effective to add advanced graphics to your application by eliminating the need for external frame buffers or display controllers.
Dedicated graphics clock for a continuous, clean display
On-chip display controller provides direct interface to TFT,
STN and OLED displays
Easy to use Graphics Processing Units for hardware
acceleration
– Move and copy rectangles with smooth, fast memory
transfers – Decompress images without CPU intervention – Render text without CPU intervention
Color look-up table and 96 KB frame buffer to support
multiple colors – Supports QVGA 8 bpp with internal frame buffer – Supports WQVGA 16 bpp with external frame buffer
using PMP (Parallel Master Port)
With the hardware acceleration, this family is able to process and render graphics without using any MCU MIPS. The dedicated graphics engine is able to continuously drive a display without being shared with any other function.
PIC32 Low Cost Controllerless Graphics: 32-bit Performance, Flexibility, Integration
Core
128 KB RAM Frame Buffer
Microchip’s PIC32 line of 32-bit microcontrollers offers 80MIPS and high performance DMA to render graphics directly to displays. This enables PIC32 devices to drive a display without an external graphics controller.
Uses <5 MIPS and DMA to render graphics
– Direct interface to STN, TFT displays
Integrated 128 KB frame buffer – Supports QVGA 8 bpp with internal frame buffer – Supports WQVGA 16 bpp with external frame buffer
using PMP (Parallel Master Port)
Works with any PIC32 80 MIPS 32-bit microcontroller
With devices offering up to 512 KB Flash and 128 KBRAM, developers have plenty of space for application code, communications stacks and data buffering. In addition to the graphics capabilities, PIC32 MCUs also have integrated peripherals for USB, CAN, Ethernet and capacitive touch sensing.
DMA
External Graphics Controller: PIC24 or PIC32 with Parallel Master Port (PMP)
PIC24 and PIC32 MCUs can also work with an external graphics controller to support larger screen sizes or more advanced graphical features.
The Solomon Systech SSD1926 Graphics Controller has hardware graphics acceleration to free up the MIPS of the PIC MCU. This controller includes a SD Card interface and JPEG decode engine as well as 256 KB RAM. The Graphics PICtail™ Plus SSD1926 Board (AC164127-5) includes serial Flash for data storage and interfaces to either Explorer 16 or PIC32 Starter Kits.
The Epson S1D13517 Graphics Controller includes alpha blending, picture-in-picture and supports up to WVGA (800x480) at 24 bpp. This controller has an SDRAM interface for connection to low cost external memory. The Graphics Controller PICtail Plus Epson S1D13517 Board (AC164127-7) includes 128 Mb SDRAM frame buffer and 16Mb serial Flash and interfaces to either Explorer 16 or PIC32 Starter Kits.
Graphics Quick Reference Guide 3
Graphics Librar y, Designer and App Notes
FREE Microchip Graphics Library
The Microchip Graphics Library is highly modular and is optimized for Microchip’s 16- and 32-bit microcontrollers. It is easy to use and has an open documented interface for driver or controller support. The library supports the following features:
Pre-made graphics objects
Multiple fonts and languages
User interface for mTouch™ sensing
Includes buttons, charts, check boxes, scroll bars, list
boxes, images and basic animation
FREE Microchip Graphics Display Designer
The Microchip Graphics Display Designer (GDD) is a visual design tool that provides customers with a quick and easy way of creating Graphical User Interface (GUI) screens for graphical interface applications on Microchip MCUs.
It provides the following advantages to the developers:
Simplifies coding for the GUI screens with an ability to
draw, resize and delete screen objects
Eliminates the need to manually calculate the X/Y
coordinates for on-screen object placements
Generates output source files
Ability to import various graphical resources, including
custom fonts and bitmap images
Application Notes for Graphical Displays
How to Use Widgets in Microchip Graphics Library, AN1136
Fonts in the Microchip Graphics Library, AN1182
How to Create Widgets in Microchip Graphics Library, AN1246
Using a Keyboard with the Microchip Graphics Library,
AN1227
Developing Graphics Applications using MCU with
Integrated Controller, AN1368
Using PIC32 MCUs to Develop Low-Cost Controllers (LCC)
Graphics Solutions, AN1387
Development Tools for Graphical Display Controllers
Display Boards Supported
Family
PIC24 DA Family PIC24FJ256DA210 Board (DM240312) + Display Board 8 bpp or 30 Hz Yes
PIC32 LCC Graphics
PIC24 + Solomon Systech SSD1926
PIC32 + Solomon Systech SSD1926
PIC32 + Solomon Systech SSD1926
PIC24 + Epson S1D13517 Explorer 16 (DM240001) + Epson GFX Board (AC164127-7) + Display Board Yes
PIC32 + Epson S1D13517
Note: Recommendations based on 16 bpp, 60 Hz performance on PIC MCU LCD Controller.
QVGA 3.2 Graphics
Display Truly 240x320
Board (AC164127-4)
PIC32 Starter Kit (DM320001 or DM320003-2) + LCC Graphics Board (AC164144) + Display Board
Explorer 16 (DM240001) + Solomon Systech GF X Board (AC164127-5) + Display Board
PIC32 Starter Kit (DM320001 or DM320003-2) + Multimedia Expansion Board (DM320005) with Integrated Display
PIC32 Starter Kit (DM320001 or DM320003-2) + Solomon Systech GFX Board (AC164127-5) + Display Board
PIC32 Starter Kit (DM320001 or DM320003-2 or DM320004) + Epson GFX Board (AC164127-7) + Display Board
WQVGA 4.3 Graphics
Display Powertip 480x272
Board (AC164127-6)
VGA 5.7 Graphics
Display Truly 640x480
Board (AC164127-8)
8 bpp or 30 Hz Yes
WVGA 7 Graphics
Display Truly 800x480
Board (AC164127-9)
Prototype Boards
Connect Your Glass
(AC164139)
Yes
No
Yes
Yes
4 Graphics Quick Reference Guide
Tools for Designing Graphical Displays
Microchip Graphics Solutions
This table shows the out-of-the-box support for the following development boards and kits. With proper software and hardware configuration compatibility of certain hardware combinations and other PIC devices can be achieved.
PIC32
Ethernet
Starter Kit
(DM320004)
PIC32 Starter Kit Based
Graphics LCD Controller PICtail™ Plus SSD1926 Board (AC164127-5)
Graphics Controller PICtail™ Plus Epson S1D13517 Board (AC164127-7)
Low-Cost Controllerless (LCC) Graphics PICtail™ Plus Daughter Board (AC164144)
Multi Media Expansion Board (DM320005)
Development Boards
PIC24FJ256DA210 Development Board (DM240312)
Graphics LCD Controller PICtail™ Plus SSD1926 Board (AC164127-5)
Graphics Controller PICtail™ Plus Epson S1D13517 Board (AC164127-7)
Low-Cost Controllerless (LCC) Graphics PICtail™ Plus Daughter Board (AC164144)
Stand Alone Development Boards
MPLAB® Star ter Kit for PIC24H MCUs (DM240021)
MPLAB® Star ter Kit for PIC24F MCUs (DM240011)
PIC24F PIMs
PIC32MX PIMs
PIC24EP & dsPIC33EP PIMs
PIC24H & dsPIC33F PIMs
PIC32
Starter Kit
(DM320001)
PIC32 USB
Starter Kit II
(DM320003-2)
  + +
+ +
Explorer 16 Development
Board (DM240001) +
Plug-In Modules (PIMs)
PIC24F PIMs
PIC32MX PIMs
PIC24EP & dsPIC33EP PIMs
PIC24H & dsPIC33F PIMs
PIC24F PIMs
PIC32MX PIMs
PIC24EP & dsPIC33EP PIMs
PIC24H & dsPIC33F PIMs
PIC24F PIMs
PIC32MX PIMs
PIC24EP & dsPIC33EP PIMs
PIC24H & dsPIC33F PIMs
Stand Alone Development Board with a built-in display.
Stand Alone Development Board with a built-in display.
PIC24FJ128GA010 PIM (MA240011) PIC24FJ256GA110 PIM (MA240015) PIC24FJ256GB110 PIM (MA240014) PIC24FJ256GB210 PIM (MA240021)
PIC32MX360F512L PIM (MA320001) PIC32MX460F512L PIM (MA320002) PIC32MX795F512L PIM (MA320003)
dsPIC33EP512MU810 PIM (MA330025-1) PIC24EP512GU810 (MA240025-1)
PIC24HJ128GP504 PIM (MA240016-2) dsPIC33FJ128GP804 PIM (MA330019-2)
= Compatible (out of the box)+ = Compatible (will need firmware modification)
= Incompatible
Notes:
1. SSD1926 suppor ts up to WQVGA (480x272) displays.
2. Manually assemble chosen display panel to the protoyping board.
3. Run at 8 bpp with external memory.
4. 8 bpp or less using internal memory, 8 bpp or 16 bpp using external memory.
5. 8 bpp or 16 bpp with external memory.
PIC24E USB
Starter Kit
(DM240012)
dsPIC33E
USB
Starter Kit
(DM330012)
Graphics
Display Truly
240x320
3.2 Board
(AC164127-4)
+ +
Graphics
Display Truly
3.2 240x320 Board
(AC164127-4)
(4)
 
+
 
 +  + + + + +
+ + +
Graphics
Display
Powertip 4.3
480x272
Board
(AC164127-6)
Graphics
Display
Powertip 4.3
480x272
Board
(AC164127-6)
(5)
Graphics
Display Truly
640x480
5.7 Board
(AC164127-8)
Graphics
Display Truly
640x480
5.7 Board
(AC164127-8)
– – – – – –
+
(1)
(3)
(3)
(3)
(3)
Graphics
Display Truly
800x480
7
Board
(AC164127-9)
(1)
Graphics
Display Truly
800x480
7
Board
(AC164127-9)
– – –
Graphics
Display
Prototype
Board
(AC164139)
(2)
(2)
(2)
Graphics
Display
Prototype
Board
(AC164139)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
+
Graphics Quick Reference Guide 5
Tools for Designing Graphical Displays
Development Tool
PIC24FJ256DA210 Development Board
Explorer 16 Development Board
Multi Media Expansion Board
Graphics LCD Controller PICtail™ Plus SSD1926 Board
Graphics Controller PICtail™ Plus Epson S1D13517 Board
Part
Number
DM240312
DM240001
DM320005
AC164127-5
AC164127-7
Tool Image
Development Tool
PIC32 Starter Kit DM320001
PIC32 USB Starter Kit II
PIC32 Ethernet Starter Kit
PIC24E USB Starter Kit
dsPIC33E USB Starter Kit
Part
Number
DM320003-2
DM320004
DM240012
DM330012
Tool Image
Low-Cost Controllerless (LCC) Graphics PICtail™ Plus Daughter Board
Graphics Display Truly 3.2 240x320 Board
Graphics Display Powertip 4.3 480x272 Board
Graphics Display Truly 5.7 640x480 Board
Graphics Display Truly 7 800x480 Board
AC164144
AC164127-4
AC164127-6
AC164127-8
AC164127-9
Graphics Display Prototype Board
Prototype PICtail™ Plus Daughter Board
MPLAB® Starter Kit for PIC24H MCUs
MPLAB® Starter Kit for PIC24F
AC164139
AC164126
DM240021
DM240011
6 Graphics Quick Reference Guide
Microchip Graphics Library Quick Reference Guide
Microchip Graphics Library Quick Reference Guide
August 22, 2011 – based on Graphics Library Version 3.01 This card contains brief API description. For complete API description, see Graphics Library Help File.
Predened Types
GFX_COLOR
XCHAR
Device Driver Layer
Device Driver Layer Description
void ResetDevice()
void PutPixel(SHORT x, SHORT y)
GFX_COLOR GetPixel( SHORT x, SHORT y)
void DisplayBrightness(WORD level)
WORD IsDeviceBusy()
WORD GetMaxX()
WORD GetMaxY()
void SetClip(BYTE control)
void SetClipRgn( SHORT left, SHORT top, SHORT right, SHORT bottom)
WORD GetClipLeft()
WORD GetClipRight()
WORD GetClipTop()
WORD GetClipBottom()
void SetColor(GFX_COLOR color)
GFX_COLOR GetColor()
void TransparentColorEnable( GFX_COLOR color)
void TransparentColorDisable()
WORD GetTransparentColorStatus()
GFX_COLOR GetTransparentColor()
void SetActivePage(WORD page)
Notes:
1. The API is enabled only if the display controller supports multiple display buffers (or pages).
2. This is an optional feature and is implemented only if the display controller supports addressing of a block of pixel data.
Data type for color data. Dependent on the COLOR_DEPTH setting. COLOR_DEPTH Data Type 8 typedef BYTE GFX_COLOR; 16 typedef WORD GFX_COLOR; 24 typedef DWORD GFX_COLOR;
Data type for characters. Set by macros in GraphicsCong.h macro XCHAR Data Type #dene USE_MULTIBYTECHAR signed int #dene USE_UNSIGNED_XCHAR unsigned char non-of the above signed char
Initialize the display interface and resets the display.
Renders the pixel located on the given x,y position with the current set color.
Returns the pixel color located on the given x,y position.
Sets the brightness of the display (level: 0-100).
Returns a non-zero if display controller is busy with the previous rendering operation. Zero if idle.
Returns the maximum horizontal coordinate.
Returns the maximum vertical coordinate.
Enables/disables clipping. control denition CLIP_DISABLE Disable clipping CLIP_ENABLE Enable clipping
Sets the clipping region with the given coordinates.
Returns left clipping border.
Returns right clipping border.
Returns top clipping border.
Returns bottom clipping border.
Sets the current drawing color.
Returns the current drawing color.
Set the transparent color and enable the transparent color feature for PutImage(). Graphics Cong: USE_TRANSPARENT_COLOR
Disable the transparent color feature for PutImage(). Graphics Cong: USE_TRANSPARENT_COLOR
Returns the current status of the transparent color feature of PutImage(). return value denition TRANSPARENT_COLOR_DISABLE feature is disabled TRANSPARENT_COLOR_ENABLE feature is enabled Graphics Cong: USE_TRANSPARENT_COLOR
Returns the current transparent color set by TransparentColorEnable().
Set the active page. Active page is the buffer used for
(1)
rendering.
Device Driver Layer Description
void SetVisualPage(WORD page)
WORD CopyWindow( DWORD srcAddr, DWORD dstAddr, WORD srcX, WORD srcY, WORD dstX, WORD dstY, WORD width, WORD height)
WORD CopyPageWindow( BYTE srcPage, BYTE dstPage, WORD srcX, WORD srcY, WORD dstX, WORD dstY, WORD width, WORD height);
WORD CopyBlock( DWORD srcAddr, DWORD dstAddr, DWORD srcOffset, DWORD dstOffset, WORD width, WORD height);
void SwitchOnDoubleBuffering()
void SwitchOffDoubleBuffering()
BYTE IsDisplayUpdatePending()
void RequestDisplayUpdate(void)
void InvalidateAll()
void InvalidateRectangle( WORD left, WORD top, WORD right, WORD bottom);
void UpdateDisplayNow()
Set the visible page. Visual page (display buffer ) is the page shown on the display.
Copies the contents of a window located in the address dened by srcAddr and the pixel offset set by srcX and srcY to an address location dened by dstAddr and the pixel offset set by dstX and dstY. Size of the copied window is set by the given width and height.
Copies the contents of a window located in the page dened by srcPage and the pixel offset set by srcX and srcY to another page dened by dstPage and the pixel offset set by dstX and dstY. Size of the copied window is set by the given width and height.
Copies a block of pixels from the given source address srcAddr with an offset srcOffset to a destination address given by dstAddr with a given offset dstOffset. Size of the copied block is set by the given width and height.
Turn on the automatic management of double buffering. All rendering will be performed on the currently set draw buffer. Graphics Cong: USE_DOUBLE_BUFFERING
Turn off the automatic management of double buffering. All rendering will be performed on the currently set display buffer. Graphics Cong: USE_DOUBLE_BUFFERING
Returns the status of the display update set by RequestDisplayUpdate(). Graphics Cong: USE_DOUBLE_BUFFERING
Schedule synchronization of the contents of the draw buffer and the display buffer at the next vertical blanking. Graphics Cong: USE_DOUBLE_BUFFERING
Marks the whole screen area as invalidated. Graphics Cong: USE_DOUBLE_BUFFERING
Invalidates the dened rectangular area in the display buffer. On the next synchronization of the draw and display buffer, the invalidated rectangle will be refreshed with the data in the draw buffer. Graphics Cong: USE_DOUBLE_BUFFERING
Synchronizes the draw and display buffer immediately. Graphics Cong: USE_DOUBLE_BUFFERING
(1)
(2)
(1, 2)
(2)
Graphics Quick Reference Guide 7
Microchip Graphics Library Quick Reference Guide
Primitive Layer
Primitive Layer Description
void InitGraph()
void ClearDevice()
SHORT GetX()
SHORT GetY()
void Mo veTo( SHORT x, SHORT y)
void MovetoRel(SHORT x, SHORT y)
void SetFont(void *pFont)
void SetFontOrientation(WORD orient)
BYTE GetFontOrientation()
WORD OutChar(XCHAR ch)
WORD OutText(XCHAR *pString)
WORD OutTextXY( SHORT x, SHORT y, XCHAR *pString)
SHORT GetTextHeight(void *pFont)
SHORT GetTextWidth( XCHAR pString, void *pFont)
void SetLineType(WORD lnType)
void SetLineThickness(WORD lnThickness)
WORD Line( SHORT x1, SHORT y1, SHORT x2, SHORT y2)
WORD LineRel( SHORT x, SHORT y)
WORD LineTo( SHORT x, SHORT y)
Note:
1. This is an optional feature and is implemented only if the display controller supports alpha blending.
Initialize the display controller, sets the screen to BLACK, sets current color to WHITE, sets the cursor at (0,0), sets the line type to SOLID_LINE and sets the active page and visual page to 0.
Clears the screen with the current color and sets the cursor at (0,0).
Returns the graphic cursor x coordinates.
Returns the graphic cursor y coordinates.
Moves the graphic cursor to the new x,y location.
Moves the graphic cursor relative to the current location.
Sets the current font to be used when rendering characters.
Sets the font orientation to vertical or horizontal orientation. orient denition ORIENT_HOR horizontal ORIENT_VER vertical
Returns the current font orientation (vertical or horizontal). See SetFontOrientation().
Renders the character represented by the character ID ch on the current graphic cursor position using the current set font and color.
Renders a string of characters pointed to by pString on the current graphic cursor location using the current set font and color.
Renders the specied string pointed to by pString on the location specied by x,y using the current set font and color.
Returns the height of the specied font.
Returns the width of the specied string for the specied font.
Sets the line type to render. lnType denition SOLID_LINE Solid line DASHED_LINE Dashed line
Sets the line thickness to render. lnThickness denition NORMAL_LINE 1 pixel thick THICK_LINE 3 pixel thick
Renders a line using the current set line type, line thickness and color from x1,y1 to x2,y2.
Renders a line using the current set line type, line thickness and color from the current graphic cursor position to the relative position specied by the given x and y displacement.
Renders a line using the current set line type, line thickness and color from the current graphic cursor position to the given x,y position.
Primitive Layer Description
WORD Circle( SHORT x, SHORT y, SHORT r)
WORD FillCircle( SHORT x, SHORT y, SHORT r)
WORD DrawPoly( SHORT numPoints, SHORT *polyPoints)
WORD Arc( SHORT xL, SHORT yR, SHORT xR, SHORT yB, SHORT r1, SHORT r2, BYTE octant)
WORD PutImage( SHORT left, SHORT top, void *pBitmap, BYTE stretch)
SHORT GetImageHeight( void *pBitmap)
SHORT GetImageWidth( void *pBitmap)
SHORT GetSineCosine( SHORT v, WORD type)
SHORT Sine( SHORT v)
SHORT Cosine( SHORT v)
WORD AlphaBlendWindow( DWORD foregroundWindowAddr, DWORD backgroundWindowAddr, DWORD destinationWindowAddr, WORD width, WORD height, BYTE alphaPercentage)
DWORD GFXGetPageXYAddress( SHORT pageNumber, WORD x, WORD y)
DWORD GFXGetPageOriginAddress( SHORT pageNumber)
WORD ExternalMemoryCallback( GFX_EXTDATA *memory, LONG offset, WORD nCount, void *buffer)
Renders a circle using the current set line type, line size and color located at center on x,y with a radius r.
Renders a lled circle using the current set color located at center on x,y with a radius r.
Renders a polygon with the current line type, line size and color where the number of points is given by numPoints and the polygon points is given by the array pointed to by polyPoints. PolyPoints[n] = x0,y0,x1,y1,…xn,yn; n = numPoints
Draws the octant arc of the beveled gure with the given centers, radii and octant mask.
Renders the image pointed to by pBitmap starting from left, top position.
Returns the image height.
Returns the image width.
Returns the sine or cosine (type = GETSINE or GETCOSINE) values of the given angle v. Return values are normalized to 256.
Returns the sine value of the given angle v. Return values are normalized to 256.
Returns the sine value of the given angle v. Return values are normalized to 256.
Alpha blends the foreground and the background images with the dimension specied by width and height and writes the result to the destination. Graphics Cong: USE_ALPHA_BLEND
Calculates the address of the pixel located in x,y position inside the buffer specied by pageNumber. Graphics Cong: USE_ALPHA_BLEND
Calculates the address of the buffer specied by pageNumber. Graphics Cong: USE_ALPHA_BLEND
When using external memory, this function must be implemented in the application code and will contain code to access external memory with the appropriate external memory drivers. Graphics Cong: USE_FONT_EXTERNAL or USE_BITMAP_EXTERNAL
(1)
(1)
(1)
8 Graphics Quick Reference Guide
Microchip Graphics Library Quick Reference Guide
GOL Layer
GOL Layer Description
void GOLInit()
WORD GOLDraw()
WORD GOLDrawCallback()
void GOLRedraw(OBJ_HEADER pObj)
void GOLRedrawRec( SHORT left, SHORT top, SHORT right, SHORT bottom)
WORD IsObjUpdated(OBJ_HEADER pObj)
void GOLDrawComplete(OBJ_HEADER pObj)
void GOLAddObject(OBJ_HEADER pObj)
void GOLFree()
OBJ_HEADER *GOLFindObject(WORD ID)
BOOL GOLDeleteObject(OBJ_HEADER pObj)
BOOL GOLDeleteObjectByID(WORD ID)
GOL_OBJ_TYPE GetObjType(OBJ_HEADER pObj)
WORD GetObjID(OBJ_HEADER pObj)
OBJ_HEADER *GetObjNext(OBJ_HEADER pObj)
void GOLNewList()
OBJ_HEADER *GOLGetList()
void GOLSetList(OBJ_HEADER pObjList)
void GOLSetFocus(OBJ_HEADER pObj)
OBJ_HEADER *GOLGetFocus()
WORD GOLCanBeFocused(OBJ_HEADER pObj)
OBJ_HEADER *GOLGetFocusNext()
OBJ_HEADER *GOLGetFocusPrev()
This function initializes the object layer, primitive layer and display driver layer. Creates a default style scheme with default settings.
Renders all widgets that needs to be rendered on the active list.
Function implemented in the application. Function called by GOLDraw() to allow application dened rendering.
Sets the drawing states of the widget to be redrawn on the next GOLDraw().
Marks all widgets in the active list intersected by the given rectangular area.
Tests if the widget is pending to be redrawn. Returns a non zero if pending and zero if not.
Resets the drawing states of the widget.
Adds the widget to the end of the active list.
Frees up the memory used by the current active list. Active list becomes empty.
Returns the pointer to the widget in the active list with the given ID.
Deletes a widget from the current active list.
Deletes a widget from the current active list.
Returns the widget type of the specied widget.
Returns the object ID of the specied widget.
Returns the pointer to the next widget right after the specied widget in the active list.
Starts a new but empty list of widgets. Use GOLAddObjects() to populate the list.
Returns the pointer to the current active list.
Sets the active list to the pointer specied by pObjList.
Sets the widget pObj to be focused.
Returns the pointer to the currently focused widget in the active list.
Returns a non-zero if the widget can be focused.
Returns the pointer of the next widget that can be focused in the active list.
Returns the pointer of the previous widget that can be focused in the active list.
GOL Layer Description
GOLPanelDraw( SHORT left, SHORT top, SHORT right, SHORT bottom, SHORT radius, GFX_COLOR faceClr, GFX_COLOR embossLtClr, GFX_COLOR embossDkClr, void *pBitmap, WORD embossSize)
WORD GOLPanelDrawTsk()
WORD GOLTwoTonePanelDrawTsk()
WORD GetState( OBJ_HEADER *pObj, WORD stateBits)
void SetState( OBJ_HEADER *pObj, WORD stateBits)
void ClrState( OBJ_HEADER *pObj, WORD stateBits)
void GOLMsg(GOL_MSG *pMsg)
WORD GOLMsgCallback( WORD objMsg, OBJ_HEADER * pObj, GOL_MSG * pMsg)
GOL_SCHEME * GOLCreateScheme()
void GOLSetScheme( OBJ_HEADER *pObj, GOL_SCHEME *pScheme)
GOL_SCHEME *GOLSetScheme( OBJ_HEADER *pObj)
GOL_SCHEME *GOLGetSchemeDefault()
GFX_COLOR RGBConvert( WORD red, WORD green, WORD blue)
Sets up the parameters to draw a panel. Use this API to set up GOLPanelDrawTsk() and GOLTwoTonePanelDrawTask().
Renders a panel with the parameters set by GOLPanelDraw().
Renders a two tone panel with the parameters set by GOLPanelDraw().
Returns the current value of the state bits of the widget.
Sets the state bit(s) of the widget.
Clears the state bit(s) of the widget.
Process the GOL_MSG and checks which widget is affected by the message. For each affected widget, GOLMsgCallback() is called for the application to have an opportunity to customize the reaction to the message and cancel or call the default reaction to the message.
Function implemented in the application. Function called by GOLMsg() to allow application to implement its own interpretation of messages and customize widget behavior.
Creates a style scheme object with application dened styles or using graphics library assigned default styles.
Sets the GOL_SCHEME to be used for the widget.
Gets the GOL_SCHEME used by the widget.
Returns the pointer to the default scheme created when GOLInit() is called.
Converts 8-8-8 RGB color data to color format set by COLOR_DEPTH.
Graphics Quick Reference Guide 9
Microchip Graphics Library Quick Reference Guide
Widget API
AnalogClock Button Chart Chart2 Chart3
Graphics Cong: USE_ANALOGCLOCK Graphics Cong:
ANALOGCLOCK * AcCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, SHORT hour, SHORT minute, SHORT radius, BOOL sechand, WORD state, void * pBitmap, GOL_SCHEME * pScheme)
WORD AcDraw(void * pObj) WORD BtnDraw(void * pObj) WORD ChDraw(void * pObj) WORD ChGetShowSeriesStatus(CHART * pObj) WORD ChGetSampleEnd(
WORD AcHandsDraw( ANALOGCLOCK * pObj, SHORT hand, SHORT thickness, WORD color, void * pBitmap)
void AcSetHour( ANALOGCLOCK * pObj, SHORT hour)
void AcSetMinute( ANALOGCLOCK * pObj, SHORT minute)
void AcSetSecond( ANALOGCLOCK * pObj, SHORT second)
typedef struct { OBJ_HEADER hdr; SHORT radius; SHORT centerx; SHORT centery; SHORT valueS; SHORT prev_valueS; SHORT valueM; SHORT prev_valueM; SHORT valueH; SHORT prev_valueH; void * pBitmap; } ANALOGCLOCK;
USE_BUTTON USE_BUTTON_MULTI_LINE
BUTTON * BtnCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, SHORT radius, WORD state, void * pBitmap, XCHAR * pText, GOL_SCHEME * pScheme)
XCHAR *BtnGetText(BUTTON *pObj) XCHAR *ChGetTitle(CHART *pObj) void ChSetValueLabel(
void BtnSetText( BUTTON *pObj, XCHAR *pString)
void *BtnGetBitmap(BUTTON *pObj) void ChSetTitleFont(
void BtnSetBitmap( BUTTON *pObj, void *pBitmap)
void BtnMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)
WORD BtnTranslateMsg( void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; SHORT radius; SHORT textWidth; SHORT textHeight; XCHAR * pText; void * pBitmap; } BUTTON;
Graphics Cong: USE_CHART void ChHideSeries(
CHART * ChCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, DATASERIES * pData, CHARTPARAM * pParam, GOL_SCHEME * pScheme)
void ChSetTitle( CHART *pObj, XCHAR *pTitle)
CHART *pObj, void *pFont)
XCHAR *ChGetTitleFont(CHART *pObj) WORD ChGetValueMin(CHART *pObj) WORD ChGetSampleRange(CHART *pObj)
DATASERIES *ChAddDataSeries( CHART *pObj, WORD nSamples, WORD *pData XCHAR *pNames)
void ChRemoveDataSeries( CHART * pObj, WORD number)
void ChShowSeries( CHART *pCh, WORD seriesNum)
CHART *pObj, WORD seriesNum)
void ChGetShowSeriesCount(CHART * pObj) WORD ChGetSampleStart(
CHART* pObj, XCHAR* pValueLabel)
XCHAR *ChGetValueLabel( CHART* pObj)
WORD ChGetValueMax(CHART *pObj) void ChSetSampleRange(
void ChSetValueRange( CHART * pObj, WORD min, WORD max)
WORD ChGetValueRange(CHART* pObj) WORD ChGetPercentMin(CHART *pObj)
void ChSetSampleLabel( CHART *pObj, XCHAR *pXLabel)
XCHAR *ChGetSampleLabel( CHART *pObj)
CHART *pObj)
CHART *pObj)
void ChSetPercentRange( CHART * pObj, WORD min, WORD max)
WORD ChGetPercentRange(CHART *pObj)
CHART * pObj, WORD start, WORD end)
WORD ChGetPercentMax(CHART *pObj)
void ChSetColorTable( CHART* pObj, GFX_COLOR *pColorArray)
10 Graphics Quick Reference Guide
Microchip Graphics Library Quick Reference Guide
Widget API (Continued)
Chart4 Round Dial Check Box Digital Meter Edit Box
GFX_COLOR *ChGetColorTable( CHART* pObj)
void *ChGetAxisLabelFont(CHART *pObj) ROUNDDIAL * RdiaCreate(
void ChSetAxisLabelFont( CHART *pObj, void* pFont)
void *ChGetGridLabelFont(CHART *pObj) void RdiaIncVal(ROUNDDIAL *pObj) XCHAR *CbGetText(CHECKBOX pObj) WORD DmGetValue(DIGITALMETER *pObj) XCHAR *EbGetText(EDITBOX pObj)
void ChSetGridLabelFont( CHART *pObj, void* pFont)
void ChFreeDataSeries( void * pObj)
WORD ChTranslateMsg( void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; CHARTPARAM prm; DATASERIES * pChData; } CHART;
typedef struct { XCHAR * pSData; WORD samples; BYTE show; WORD * pData; void * pNextData; } DATASERIES;
typedef struct { XCHAR * pTitle; XCHAR * pSmplLabel; XCHAR * pValLabel; SHORT seriesCount; WORD smplStart; WORD smplEnd; WORD valMax; WORD valMin; WORD perMax; WORD perMin; WORD * pColor; void * pTitleFont; void * pAxisLabelsFont; void * pGridLabelsFont; } CHARTPARAM;
Graphics Cong: USE_ROUNDDIAL Graphics Cong: USE_CHECKBOX Graphics Cong: USE_DIGITALMETER Graphics Cong: USE_EDITBOX
WORD ID, SHORT x, SHORT y, SHORT radius, WORD state, SHORT res, SHORT value, SHORT max, GOL_SCHEME * pScheme)
WORD RdiaDraw(void * pObj) WORD CbDraw(void * pObj) WORD DmDraw(void * pObj) WORD EbDraw(void * pObj)
void RdiaDecVal(ROUNDDIAL *pObj) void CbSetText(
WORD RdiaGetVal(ROUNDDIAL *pObj) void CbMsgDefault(
void RdiaSetVal(ROUNDDIAL *pObj, WORD value) WORD CbTranslateMsg(
void RdiaMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)
WORD RdiaTranslateMsg( void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; SHORT xCenter; SHORT yCenter; SHORT radius; SHORT value; WORD max; WORD res; SHORT curr_xPos; SHORT curr_yPos; SHORT new_xPos; SHORT new_yPos; SHORT vAngle; } ROUNDDIAL;
CHECKBOX * CbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, GOL_SCHEME * pScheme)
CHECKBOX pObj, XCHAR *pText)
WORD translatedMsg, void * pObj, GOL_MSG * pMsg)
void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; SHORT textHeight; XCHAR * pText; } CHECKBOX;
DIGITALMETER * DmCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, DWORD Value, BYTE NoOfDigits, BYTE DotPos, GOL_SCHEME * pScheme)
void DmSetValue( DIGITALMETER *pObj, WORD value)
void DmIncVal( DIGITALMETER *pObj, WORD deltaValue)
void DmDecVal( DIGITALMETER *pObj, WORD deltaValue)
WORD DmTranslateMsg( void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; SHORT textHeight; DWORD Cvalue; DWORD Pvalue; BYTE NoOfDigits; BYTE DotPos; } DIGITALMETER;
EDITBOX * EbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, WORD charMax, GOL_SCHEME * pScheme)
void EbSetText( EDITBOX pObj, XCHAR *pText)
void EbAddChar( EDITBOX * pObj, XCHAR ch)
void EbDeleteChar(EDITBOX * pObj)
void EbMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg )
WORD EbTranslateMsg( void * pObj, GOL_MSG * pMsg )
typedef struct { OBJ_HEADER hdr; SHORT textHeight; XCHAR * pBuffer; WORD charMax; WORD length; } EDITBOX;
Graphics Quick Reference Guide 11
Microchip Graphics Library Quick Reference Guide
Widget API (Continued)
Graphics Cong: USE_GRID void GridSetFocus(
GRID * GridCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, SHORT numColumns, SHORT numRows, SHORT cellWidth, SHORT cellHeight, GOL_SCHEME * pScheme)
WORD GridDraw(void * pObj) WORD GridTranslateMsg(
void GridClearCellState( GRID * pObj, SHORT column, SHORT row, WORD state)
WORD GridGetFocusX(GRID *pObj) typedef struct {
WORD GridGetFocusY(GRID *pObj) WORD GbTranslateMsg(
void GridFreeItems(void * pObj) typedef struct {
void * GridGetCell( GRID * pObj, SHORT column, SHORT row, WORD * cellType)
WORD GridSetCell( GRID * pObj, SHORT column, SHORT row, WORD state, void * data)
void GridSetCellState( GRID * pObj, SHORT column, SHORT row, WORD state)
Grid Grid2 Group Box List Box List Box2
GRID * pObj, SHORT column, SHORT row)
void GridMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)
void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; SHORT numColumns; SHORT numRows; SHORT cellHeight; SHORT cellWidth; SHORT focusX; SHORT focusY; GRIDITEM * gridObjects; } GRID;
void * data; WORD status; } GRIDITEM;
Graphics Cong: USE_GROUPBOX Graphics Cong: USE_LISTBOX WORD LbGetVisibleCount(LISTBOX *pObj)
GROUPBOX * GbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, GOL_SCHEME * pScheme)
WORD GbDraw(void * pObj) WORD LbDraw(void * pObj) void LbSetBitmap(
XCHAR *GbGetText(GROUPBOX *pObj) LISTITEM *LbGetItemList(LISTBOX *pObj) void *LbGetBitmap(LISTITEM *pItem)
void GbSetText( GROUPBOX *pObj, XCHAR * pText)
void * pObj, GOL_MSG * pMsg)
OBJ_HEADER hdr; SHORT textWidth; SHORT textHeight; XCHAR * pText; } GROUPBOX;
LISTBOX * LbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, GOL_SCHEME * pScheme)
LISTITEM * LbAddItem( LISTBOX * pObj, LISTITEM * pPrevItem, XCHAR * pText, void * pBitmap, WORD status, WORD data)
void LbDelItem( LISTBOX * pObj, LISTITEM * pItem)
void LbChangeSel( LISTBOX * pObj, LISTITEM * pItem )
void LbSetSel( LISTBOX *pObj, LISTITEM *pItem)
LISTITEM * LbGetSel( LISTBOX * pObj, LISTITEM * pFromItem)
SHORT LbGetFocusedItem(LISTBOX * pObj)
void LbSetFocusedItem( LISTBOX * pObj, SHORT index)
WORD LbGetCount(LISTBOX pObj)
void LbClrtSel(LISTBOX pObj, LISTITEM *pItem)
LISTITEM *pItem, void *pBtmap)
void LbDelItemsList(void * pObj)
void LbMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)
WORD LbTranslateMsg( void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; LISTITEM * pItemList; LISTITEM * pFocusItem; WORD itemsNumber; SHORT scrollY; SHORT textHeight; } LISTBOX;
typedef struct { void * pPrevItem; void * pNextItem; WORD status; XCHAR * pText; void * pBitmap; WORD data; } LISTITEM;
12 Graphics Quick Reference Guide
Microchip Graphics Library Quick Reference Guide
Widget API (Continued)
Meter Picture Control Progress Bar Radio Button
Graphics Cong: USE_METER Graphics Cong: USE_PICTURE Graphics Cong: USE_PROGRESSBAR Graphics Cong: USE_RADIOBUTTON
METER * MtrCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, SHORT value, SHORT minValue, SHORT maxValue, void * pTitleFont, void * pValueFont, XCHAR * pText, GOL_SCHEME * pScheme)
WORD MtrDraw(void * pObj) WORD PictDraw(void * pObj) WORD PbDraw(void * pObj) WORD RbDraw(void * pObj)
void MtrSetVal( METER * pObj, SHORT newVal)
WORD MtrGetVal(METER *pObj) void *PictSetBitmap(PICTURE *pObj) WORD PbGetRange(
void MtrDecVal( METER *pObj, WORD deltaValue)
void MtrIncVal( METER *pObj, WORD deltaValue)
void MtrSetScaleColors( METER *pObj, WORD arc1, WORD arc2, WORD arc3, WORD arc4, WORD arc5, WORD arc6)
void MtrSetTitleFont( METER *pMtr, void *pFont)
void MtrSetValueFont( METER *pMtr, void *pFont)
void MtrMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)
WORD MtrTranslateMsg( void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; XCHAR * pText; SHORT value; SHORT minValue; SHORT maxValue; SHORT xCenter; SHORT yCenter; SHORT radius; SHORT xPos; SHORT yPos; WORD arcColor6; WORD arcColor5; WORD arcColor4; WORD arcColor3; WORD arcColor2; WORD arcColor1; void * pTitleFont; void * pValueFont; } METER;
PICTURE * PictCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, char scale, void * pBitmap, GOL_SCHEME * pScheme)
void PictSetBitmap( PICTURE *pObj, void *pBtmap)
WORD PictGetScale(PICTURE *pObj) void PbSetPos(
void PictSetScale( PICTURE *pObj, WORD scale)
WORD PictTranslateMsg( void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; char scale; void * pBitmap; } PICTURE;
PROGRESSBAR * PbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, WORD pos, WORD range, GOL_SCHEME * pScheme)
void PbSetRange( PROGRESSBAR * pObj, WORD range)
PROGRESSBAR * pObj)
PROGRESSBAR * pObj, WORD position)
WORD PbGetPos( PROGRESSBAR * pObj)
WORD PbTranslateMsg( PROGRESSBAR * pObj, GOL_MSG * pMsg )
typedef struct { OBJ_HEADER hdr; WORD pos; WORD prevPos; WORD range; } PROGRESSBAR;
RADIOBUTTON * RbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, GOL_SCHEME * pScheme)
WORD RbGetCheck(RADIOBUTTON * pObj)
void RbSetCheck( RADIOBUTTON * pObj, WORD ID)
XCHAR *RbGetText(RADIOBUTTON * pObj)
void RbSetText( RADIOBUTTON * pObj XCHAR *pText)
void RbMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg )
WORD RbTranslateMsg( void * pObj, GOL_MSG * pMsg )
typedef struct { OBJ_HEADER hdr; OBJ_HEADER * pHead; OBJ_HEADER * pNext; SHORT textHeight; XCHAR * pText; } RADIOBUTTON;
Graphics Quick Reference Guide 13
Microchip Graphics Library Quick Reference Guide
Widget API (Continued)
Slider/Scroll Bar Static Text Text Entry Text Entry2 Window
Graphics Cong: USE_SLIDER Graphics Cong: USE_STATICTEXT Graphics Cong: USE_TEXTENTRY void TeDelKeyMembers(void * pObj) Graphics Cong: USE_WINDOW SLIDER * SldCreate(
WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, WORD range, WORD page, WORD pos, GOL_SCHEME * pScheme)
WORD SldDraw(void * pObj) WORD StDraw(void * pObj) WORD TeDraw(void * pObj) void TeMsgDefault(
void SldSetPage( SLIDER * pObj, WORD page)
WORD SldGetPage(SLIDER * pObj) void StGetText(
void SldSetPos( SLIDER * pObj, WORD position)
WORD SldGetPos(SLIDER * pObj) typedef struct {
void SldSetRange( SLIDER * pObj, WORD range)
WORD SldGetRange(SLIDER * pObj) KEYMEMBER * TeCreateKeyMembers(
void SldIncPos(SLIDER * pObj) void TeAddChar(TEXTENTRY * pObj) void SldDeccPos(SLIDER * pObj) BOOL TeIsKeyPressed(
void SldMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)
WORD SldTranslateMsg( void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; WORD currPos; WORD prevPos; WORD range; WORD pos; WORD page; WORD thWidth; WORD thHeight; } SLIDER;
void SldMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; WORD currPos; WORD prevPos; WORD range; WORD pos; WORD page; WORD thWidth; WORD thHeight; } SLIDER;
STATICTEXT * StCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, GOL_SCHEME * pScheme)
XCHAR *StGetText(STATICTEXT* pObj) XCHAR * TeGetBuffer(TEXTENTRY *pObj) WORD TeTranslateMsg(
STATICTEXT* pObj XCHAR * pText)
WORD StTranslateMsg( void * pObj, GOL_MSG * pMsg)
OBJ_HEADER hdr; SHORT textHeight; XCHAR * pText; } STATICTEXT;
TEXTENTRY * TeCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, SHORT horizontalKeys, SHORT verticalKeys, XCHAR * pText[], void * pBuffer, WORD bufferLength, void * pDisplayFont, GOL_SCHEME * pScheme)
void TeSetBuffer( TEXTENTRY *pObj XCHAR * pText)
void TeClearBuffer(TEXTENTRY *pOb) typedef struct {
WORD TeGetKeyCommand( TEXTENTRY * pObj, WORD index)
BOOL TeSetKeyCommand( TEXTENTRY * pObj, WORD index WORD command)
TEXTENTRY * pObj, XCHAR * pText[])
TEXTENTRY * pObj, WORD index)
void TeSpaceChar(TEXTENTRY * pObj)
void TeSpaceChar(TEXTENTRY * pObj)
BOOL TeSetKeyText( TEXTENTRY * pObj, WORD index, XCHAR * pText)
WORD translatedMsg, void * pObj, GOL_MSG * pMsg)
void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; SHORT horizontalKeys; SHORT verticalKeys; XCHAR * pTeOutput; WORD CurrentLength; WORD outputLenMax; KEYMEMBER * pActiveKey; KEYMEMBER * pHeadOfList; void * pDisplayFont; } TEXTENTRY;
SHORT left; SHORT top; SHORT right; SHORT bottom; SHORT index; WORD state; BOOL update; WORD command; XCHAR * pKeyName; SHORT textWidth; SHORT textHeight; void * pNextKey; } KEYMEMBER;
WINDOW * WndCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, void * pBitmap, XCHAR * pText, GOL_SCHEME * pScheme)
WORD WndDraw(void * pObj)
XCHAR *WndGetText(WINDOW* pObj)
void *WndSetText( WINDOW* pObj XCHAR * pText)
WORD WndTranslateMsg( void * pObj, GOL_MSG * pMsg)
typedef struct { OBJ_HEADER hdr; SHORT textHeight; XCHAR * pText; void * pBitmap; } WINDOW;
14 Graphics Quick Reference Guide
Notes
Graphics Quick Reference Guide 15
Support
Microchip is committed to supporting its customers in developing products faster and more efficiently. We maintain a worldwide network of field applications engineers and technical support ready to provide product and system assistance. In addition, the following service areas are available at www.microchip.com:
Support link provides a way to get questions
answered fast: http://support.microchip.com
Sample link offers evaluation samples of any
Microchip device: http://sample.microchip.com
Forum link provides access to knowledge base and
peer help: http://forum.microchip.com
Buy link provides locations of Microchip Sales Channel
Partners: www.microchip.com/sales
Sales Office Listing
AMERICAS
Atlanta
Tel: 678-957-9614
Boston
Tel: 774-760-0087
Chicago
Tel: 630-285-0071
Cleveland
Tel: 216-447-0464
Dallas
Tel: 972-818-7423
Detroit
Tel: 248-538-2250
Indianapolis
Tel: 317-773-8323
Los Angeles
Tel: 949-462-9523
Santa Clara
Tel: 408-961-6444
Toronto
Mississauga, Ontario Tel: 905-673-0699
EUROPE
Austria - Wels
Tel: 43-7242-2244-39
Denmark - Copenhagen
Tel: 45-4450-2828
France - Paris
Tel: 33-1-69-53-63-20
Germany - Munich
Tel: 49-89-627-144-0
Italy - Milan
Tel: 39-0331-742611
Netherlands - Drunen
Tel: 31-416-690399
Spain - Madrid
Tel: 34-91-708-08-90
UK - Wokingham
Tel: 44-118-921-5869
Training
If additional training interests you, then Microchip can help. We continue to expand our technical training options, offering a growing list of courses and in-depth curriculum locally, as well as significant online resources – whenever you want to use them.
Technical Training Centers: www.microchip.com/training
MASTERs Conferences: www.microchip.com/masters
Worldwide Seminars: www.microchip.com/seminars
eLearning: www.microchip.com/webseminars
Resources from our Distribution and Third Party Partners
www.microchip.com/training
ASIA/PACIFIC
Australia - Sydney
Tel: 61-2-9868-6733
China - Beijing
Tel: 86-10-8569-7000
China - Chengdu
Tel: 86-28-8665-5511
China - Chongqing
Tel: 86-23-8980-9588
China - Hangzhou
Tel: 86-571-2819-3187
China - Hong Kong SAR
Tel: 852-2401-1200
China - Nanjing
Tel: 86-25-8473-2460
China - Qingdao
Tel: 86-532-8502-7355
China - Shanghai
Tel: 86-21-5407-5533
China - Shenyang
Tel: 86-24-2334-2829
China - Shenzhen
Tel: 86-755-8203-2660
China - Wuhan
Tel: 86-27-5980-5300
China - Xiamen
Tel: 86-592-2388138
China - Xian
Tel: 86-29-8833-7252
China - Zhuhai
Tel: 86-756-3210040
ASIA/PACIFIC
India - Bangalore
Tel: 91-80-3090-4444
India - New Delhi
Tel: 91-11-4160-8631
India - Pune
Tel: 91-20-2566-1512
Japan - Yokohama
Tel: 81-45-471- 6166
Korea - Daegu
Tel: 82-53-744-4301
Korea - Seoul
Tel: 82-2-554-7200
Malaysia - Kuala Lumpur
Tel: 60-3-6201-9857
Malaysia - Penang
Tel: 60-4-227-8870
Philippines - Manila
Tel: 63-2-634-9065
Singapore
Tel: 65-6334-8870
Taiwan - Hsin Chu
Tel: 886-3-5778-366
Taiwan - Kaohsiung
Tel: 886-7-536-4818
Taiwan - Taipei
Tel: 886-2-2500-6610
Thailand - Bangkok
Tel: 66-2-694-1351
8/2/11
Information subject to change. The Microchip name and logo, the Microchip logo, dsPIC, MPLAB and PIC are registered trademarks and PICDEM, PICtail and mTouch are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. All other trademarks mentioned herein are property of their respective companies. © 2011, Microchip Technology Incorporated. All Rights Reserved. Printed in the U.S.A. 9/11
DS01394A
*DS01394A*
www.microchip.com
Microchip Technology Inc.
2355 W. Chandler Blvd.
Chandler, AZ 85224-6199
Loading...