Driver for 4D Systems LCD screen with Picaso processor. Ported from 4D Systems Picaso Serial Linux Library

Dependencies:   MODSERIAL

Dependents:   uLCD_4D_24PTU Drawing Program RoommateTracker_ScreenAndPhone ece4180_roommate_tracker_final

Revision:
4:30010dda3b34
Parent:
3:be4da6cb58b1
--- a/Picaso_enums.h	Tue Mar 10 16:07:49 2015 +0000
+++ b/Picaso_enums.h	Tue Mar 10 19:01:56 2015 +0000
@@ -1,5 +1,6 @@
-/**
- * This is a class to drive 4D systems screens with Picaso graphics processors
+/** @file Picaso_enums.h
+ *
+ * This file contains various constants for use with the Picaso serial commands.
  * 
  * This is a port of the 4D systems Picaso Serial Linux Library
  * Copyright (c) 2014 4D Systems PTY Ltd, Sydney, Australia
@@ -11,13 +12,14 @@
 #ifndef PICASO_ENUMS_H
 #define PICASO_ENUMS_H
 
-//------------------------------------------------------------------//
-// CONSTANTS
-//------------------------------------------------------------------//
-
+/** @namespace Picaso
+ * Namespace to contain all of the constants that the user may need for the Picaso processor.
+ */
 namespace Picaso {
     
-    // generic constants
+    /** @enum
+     * Generic constants
+     */
     enum {
         ENABLE = 1,
         DISABLE = 0,
@@ -31,11 +33,13 @@
         ON = 1,
         OFF = 0,
         
-        ALL = 0xFFFF // argument for img_xxx functions to update all images
+        ALL = 0xFFFF /** argument for img_xxx functions to update all images */
     };
     
     
-    // Allowed serial interface baud rates.
+    /** @enum BaudRate
+     * Allowed serial interface baud rates.
+     */
     enum BaudRate {
         BAUD_110 = 0, BAUD_300, BAUD_600, BAUD_1200, BAUD_2400, BAUD_4800, BAUD_9600, BAUD_14400,
         BAUD_19200, BAUD_31250, BAUD_38400, BAUD_56000, BAUD_57600, BAUD_115200, BAUD_128000,
@@ -43,10 +47,12 @@
     };
     
     
-    /*
-    16 bit RGB (565) Colour Chart
-    Original work by 4D Forum Member: skadoo
-    */
+    /**
+     * @enum Color
+     *
+     * 16 bit RGB (565) Colour Chart
+     * Original work by 4D Forum Member: skadoo
+     */
     enum Color {
         ALICEBLUE = 0xF7DF,
         ANTIQUEWHITE = 0xFF5A,
@@ -190,9 +196,9 @@
         YELLOWGREEN = 0x9E66
     };
     
-    //------------------------------------------------------------------------------
-    // Pin related constants
-    //------------------------------------------------------------------------------
+    /** @enum Pin
+     * Constants for referencing I/O pins.
+     */
     enum Pin {
         IO1_PIN = 1, // pin 2 J1
         IO2_PIN = 2, // pin 1 J1
@@ -213,9 +219,10 @@
         BUS_7 = 15 // pin 11 of J2
     };
     
-    //------------------------------------------------------------------------------
-    //gfx_Set() related constants
-    //------------------------------------------------------------------------------
+
+    /** @enum GFXSetFunc
+     *  Constants for referencing various parameters with gfx_Set and peekW/pokeW.
+     */
     enum GFXSetFunc {
         PEN_SIZE = 16,              // not necessary to use (legacy mode)
         BACKGROUND_COLOUR = 17,
@@ -236,7 +243,9 @@
     };
     
     
-    //gfx_Get() related constants
+    /** @enum GFXGetMode
+     *  Constants to pass to gfx_Get.
+     */
     enum GFXGetMode {
         X_MAX = 0,          // current orientations screen maximum X co-ordinate
         Y_MAX = 1,          // current orientations screen maximum Y co-ordinate
@@ -249,9 +258,9 @@
     };
     
     
-    //------------------------------------------------------------------------------
-    // FILEIO Error Code Constants
-    //------------------------------------------------------------------------------
+    /** @enum FileError
+     * File I/O error codes.
+     */
     enum FileError {
         FE_OK = 0,                  // IDE function succeeded
         FE_IDE_ERROR = 1,           // IDE command execution error
@@ -279,7 +288,9 @@
         FE_SECTOR_WRITE_FAIL = 23   // sector write failed
     };
     
-    
+    /** @enum ScreenMode
+     *  Constants to pass to the gfx_ScreenMode command.
+     */
     enum ScreenMode {
         LANDSCAPE = 0, // SCREEN_MODE (north)
         LANDSCAPE_R = 1, // SCREEN_MODE (south)
@@ -287,18 +298,26 @@
         PORTRAIT_R = 3 // SCREEN_MODE (east)
     };
     
-    
+    /** @enum ButtonState
+     *  Constants to pass to gfx_Button for setting button appearance.
+     */
     enum ButtonState {
         BUTTON_DEPRESSED = 0,
         BUTTON_RAISED = 1
     };
     
+    /** @enum SliderState
+     *  Constants to pass to gfx_Slider for setting slider appearance.
+     */
     enum SliderState {
         SLIDER_SUNKEN = 0,
         SLIDER_RAISED = 1,
         SLIDER_HIDDEN = 2
     };
     
+    /** @enum PanelState
+     *  Constants to pass to gfx_Panel for setting panel appearance.
+     */
     enum PanelState {
         PANEL_SUNKEN = 0,
         PANEL_RAISED = 1,
@@ -309,56 +328,59 @@
     //------------------------------------------------------------------------------
     //txt_Set() related constants
     //------------------------------------------------------------------------------
+    /** @enum TextSetFunc
+     *  Constants for referencing text parameters for use in the txt_Set, peekW, and peekM commands.
+     */
     enum TextSetFunc {
-        TEXT_COLOUR = 0,        // text foreground colr
-        TEXT_BACKGROUND = 1,    // text background colr
-        TEXT_HIGHLIGHT = 1,     // text background colr
-        FONT_ID = 2,            // default 0, else points to data statement font
-        FONT_SIZE = 2,          // compatibility
-        TEXT_WIDTH = 3,         // text width multiplier
-        TEXT_HEIGHT = 4,        // text height multiplier
-        TEXT_XGAP = 5,          // horizontal text gap (default 1)
-        TEXT_YGAP = 6,          // vertical text gap (default 1)
-        TEXT_PRINTDELAY = 7,    // for 'teletype' like effect when printing
-        TEXT_OPACITY = 8,       // text mode flag, TRANSPARENT or OPAQUE
-        TEXT_BOLD = 9,          // embolden text (auto reset)
-        TEXT_ITALIC = 10,       // italicize text (auto reset)
-        TEXT_INVERSE = 11,      // invert text (auto reset)
-        TEXT_UNDERLINED = 12,   // underline text (auto reset)
-        TEXT_ATTRIBUTES = 13,   // controls BOLD/ITALIC/INVERSE/UNDERLINE simultaneously
-        TEXT_WRAP = 14          // Sets the pixel position where text wrap will occur at RHS
+        TEXT_COLOUR = 0,        ///< text foreground colr
+        TEXT_BACKGROUND = 1,    ///< text background colr
+        TEXT_HIGHLIGHT = 1,     ///< text background colr
+        FONT_ID = 2,            ///< default 0, else points to data statement font
+        FONT_SIZE = 2,          ///< compatibility
+        TEXT_WIDTH = 3,         ///< text width multiplier
+        TEXT_HEIGHT = 4,        ///< text height multiplier
+        TEXT_XGAP = 5,          ///< horizontal text gap (default 1)
+        TEXT_YGAP = 6,          ///< vertical text gap (default 1)
+        TEXT_PRINTDELAY = 7,    ///< for 'teletype' like effect when printing
+        TEXT_OPACITY = 8,       ///< text mode flag, TRANSPARENT or OPAQUE
+        TEXT_BOLD = 9,          ///< embolden text (auto reset)
+        TEXT_ITALIC = 10,       ///< italicize text (auto reset)
+        TEXT_INVERSE = 11,      ///< invert text (auto reset)
+        TEXT_UNDERLINED = 12,   ///< underline text (auto reset)
+        TEXT_ATTRIBUTES = 13,   ///< controls BOLD/ITALIC/INVERSE/UNDERLINE simultaneously
+        TEXT_WRAP = 14          ///< Sets the pixel position where text wrap will occur at RHS
     };
     
-    //------------------------------------------------------------------------------
-    //txt_Set() related arguments
-    // NB:- FONT4 must be inherited if required,
-    // eg #inherit "FONT4.fnt"
-    //------------------------------------------------------------------------------
+    
+    /** @enum Font
+     *  Picaso Font IDs.
+     */
     enum Font {
-        FONT1 = 0,          // (same as system font)
+        FONT1 = 0,          ///< System font
         FONT2 = 1,
-        FONT3 = 2
+        FONT3 = 2           ///< Default font
     };
     
     enum TextOpacity {
-        TRANSPARENT = 0,    // TEXT_OPACITY  transparent  text
-        OPAQUE = 1          // TEXT_OPACITY  opaque text
+        TRANSPARENT = 0,    ///< TEXT_OPACITY  transparent  text
+        OPAQUE = 1          ///< TEXT_OPACITY  opaque text
     };
     
     enum TextAttribute {
-        BOLD = 16,          // TEXT_ATTRIBUTES bold text
-        ITALIC = 32,        // TEXT_ATTRIBUTES italic text
-        INVERSE = 64,       // TEXT_ATTRIBUTES inverse text
-        UNDERLINED = 128    // TEXT_ATTRIBUTES underlined
+        BOLD = 16,          ///< TEXT_ATTRIBUTES bold text
+        ITALIC = 32,        ///< TEXT_ATTRIBUTES italic text
+        INVERSE = 64,       ///< TEXT_ATTRIBUTES inverse text
+        UNDERLINED = 128    ///< TEXT_ATTRIBUTES underlined
     };
     
+    /** @enum Touch
+     *  Constants to pass to the touch_Set and touch_Get commands.
+     */
     enum Touch {
-        //touch_Set() related constants
         TOUCH_ENABLE = 0,
         TOUCH_DISABLE = 1,
         TOUCH_REGIONDEFAULT = 2,
         
-        //touch_Get() related constants
         TOUCH_STATUS = 0,
         TOUCH_GETX = 1,
         TOUCH_GETY = 2,
@@ -368,184 +390,186 @@
         TOUCH_MOVING = 3
     };
     
-    
-    // image attribute flags
-    // for img_SetAttributes(...) and img_ClearAttributes(...)
+    /** @enum ImageAttribute
+     *  Flags for image attributes to be passed to the img_SetAttributes and img_ClearAttributes commands.
+     */
     enum ImageAttribute {
-        I_ENABLED = 0x8000,         // bit 15,  set for image enabled
-        I_DARKEN = 0x4000,          // bit 14,  display dimmed
-        I_LIGHTEN = 0x2000,         // bit 13,  display bright
-        I_TOUCHED = 0x1000,         // bit 12,  touch test result
-        I_Y_LOCK = 0x0800,          // bit 11,  stop Y movement
-        I_X_LOCK = 0x0400,          // bit 10,  stop X movement
-        I_TOPMOST = 0x0200,         // bit 9,   draw on top of other images next update (auto reset)
-        I_STAYONTOP = 0x0100,       // bit 8,   draw on top of other images always
-        I_MOVIE = 0x0080,           // bit 7,   image is a movie
-        I_NOGROUP = 0x0040,         // bit 6,   set to exclude image refresh when using img_Show(hndl, ALL);
-        I_TOUCH_DISABLE = 0x0020,   // bit 5,   set to disable touch for this image, default=1 for movie, 0 for image
-        I_COLOUR16 = 0x0010         // bit 4,   indicates 16 bit colour mode
-                                    // bits 0-3 reserved
+        I_ENABLED = 0x8000,         ///< bit 15,  set for image enabled
+        I_DARKEN = 0x4000,          ///< bit 14,  display dimmed
+        I_LIGHTEN = 0x2000,         ///< bit 13,  display bright
+        I_TOUCHED = 0x1000,         ///< bit 12,  touch test result
+        I_Y_LOCK = 0x0800,          ///< bit 11,  stop Y movement
+        I_X_LOCK = 0x0400,          ///< bit 10,  stop X movement
+        I_TOPMOST = 0x0200,         ///< bit 9,   draw on top of other images next update (auto reset)
+        I_STAYONTOP = 0x0100,       ///< bit 8,   draw on top of other images always
+        I_MOVIE = 0x0080,           ///< bit 7,   image is a movie
+        I_NOGROUP = 0x0040,         ///< bit 6,   set to exclude image refresh when using img_Show(hndl, ALL);
+        I_TOUCH_DISABLE = 0x0020,   ///< bit 5,   set to disable touch for this image, default=1 for movie, 0 for image
+        I_COLOUR16 = 0x0010         ///< bit 4,   indicates 16 bit colour mode
+                                    ///< bits 0-3 reserved
     };
     
     
     // image control entry offsets
     enum ImageControlOffset {
-        IMAGE_LOWORD = 0,       // WORD image address LO
-        IMAGE_HIWORD = 1,       // WORD image address HI
-        IMAGE_XPOS = 2,         // WORD image location X
-        IMAGE_YPOS = 3,         // WORD image location Y
-        IMAGE_WIDTH = 4,        // WORD image width
-        IMAGE_HEIGHT = 5,       // WORD image height
-        IMAGE_FLAGS = 6,        // WORD image flags
-        IMAGE_DELAY = 7,        // WORD inter frame delay
-        IMAGE_FRAMES = 8,       // WORD number of frames
-        IMAGE_INDEX = 9,        // WORD current frame
-        IMAGE_CLUSTER = 10,     // WORD image start cluster  pos (for FAT16 only)
-        IMAGE_SECTOR = 11,      // WORD image start sector in cluster pos (for FAT16 only)
-        IMAGE_TAG = 12,         // WORD user variable #1
-        IMAGE_TAG2 = 13         // WORD user variable #2
+        IMAGE_LOWORD = 0,       ///< WORD image address LO
+        IMAGE_HIWORD = 1,       ///< WORD image address HI
+        IMAGE_XPOS = 2,         ///< WORD image location X
+        IMAGE_YPOS = 3,         ///< WORD image location Y
+        IMAGE_WIDTH = 4,        ///< WORD image width
+        IMAGE_HEIGHT = 5,       ///< WORD image height
+        IMAGE_FLAGS = 6,        ///< WORD image flags
+        IMAGE_DELAY = 7,        ///< WORD inter frame delay
+        IMAGE_FRAMES = 8,       ///< WORD number of frames
+        IMAGE_INDEX = 9,        ///< WORD current frame
+        IMAGE_CLUSTER = 10,     ///< WORD image start cluster  pos (for FAT16 only)
+        IMAGE_SECTOR = 11,      ///< WORD image start sector in cluster pos (for FAT16 only)
+        IMAGE_TAG = 12,         ///< WORD user variable #1
+        IMAGE_TAG2 = 13         ///< WORD user variable #2
     };
     
     
+    /** @enum MemOffsets
+     *  Various memory offsets.
+     */
     enum MemOffsets {
         // DISK struct offsets
-        DISK_FIRST_SECT_LO     = 0, // DWORD address of the first sector of the FAT partition (LO word)
-        DISK_FIRST_SECT_HI     = 1, //       address of the first sector of the FAT partition (HI word)
-        DISK_FAT_LO            = 2, // DWORD address of FAT (LO word)
-        DISK_FAT_HI            = 3, //       address of FAT (HI word)
-        DISK_ROOT_LO           = 4, // DWORD address of root directory (LO word)
-        DISK_ROOT_HI           = 5, //       address of root directory (HI word)
-        DISK_DATA_LO           = 6, // DWORD address of data area (LO word)
-        DISK_DATA_HI           = 7, //       address of data area (HI word)
-        DISK_MAXCLUS_LO        = 8, // DWORD max number of clusters in partition (LO word)
-        DISK_MAXCLUS_HI        = 9, //       max number of clusters in partition (HI word)
-        DISK_MAXROOT           = 10, // WORD  max entries in root directory
-        DISK_FATSIZE           = 11, // WORD  number of sectors in FAT
-        DISK_FATCOPIES         = 12, // WORD  number of fat copies
-        DISK_SECT_PER_CLUS     = 13, // WORD  number of sectors per cluster
-        DISK_TYPE              = 14, // WORD  type of fat
-        DISK_BUF               = 15, // WORD  pointer to 512 byte info buffer
+        DISK_FIRST_SECT_LO     = 0, ///< DWORD address of the first sector of the FAT partition (LO word)
+        DISK_FIRST_SECT_HI     = 1, ///<       address of the first sector of the FAT partition (HI word)
+        DISK_FAT_LO            = 2, ///< DWORD address of FAT (LO word)
+        DISK_FAT_HI            = 3, ///<       address of FAT (HI word)
+        DISK_ROOT_LO           = 4, ///< DWORD address of root directory (LO word)
+        DISK_ROOT_HI           = 5, ///<       address of root directory (HI word)
+        DISK_DATA_LO           = 6, ///< DWORD address of data area (LO word)
+        DISK_DATA_HI           = 7, ///<       address of data area (HI word)
+        DISK_MAXCLUS_LO        = 8, ///< DWORD max number of clusters in partition (LO word)
+        DISK_MAXCLUS_HI        = 9, ///<       max number of clusters in partition (HI word)
+        DISK_MAXROOT           = 10, ///< WORD  max entries in root directory
+        DISK_FATSIZE           = 11, ///< WORD  number of sectors in FAT
+        DISK_FATCOPIES         = 12, ///< WORD  number of fat copies
+        DISK_SECT_PER_CLUS     = 13, ///< WORD  number of sectors per cluster
+        DISK_TYPE              = 14, ///< WORD  type of fat
+        DISK_BUF               = 15, ///< WORD  pointer to 512 byte info buffer
         
         // FILE struct offsets
-        FILE_FIRST_CLUSTER     = 0, // WORD  first cluster
-        FILE_CURR_CLUSTER      = 1, // WORD  current cluster in file
-        FILE_CURR_SECTOR       = 2, // WORD  sector in current cluster
-        FILE_CURR_SECTOR_POS   = 3, // WORD  position in current sector
-        FILE_CURR_SECTOR_TOP   = 4, // WORD  number bytes in current sector buffer
-        FILE_SEEK_POS_LO       = 5, // DWORD position in the file (LO word)
-        FILE_SEEK_POS_HI       = 6, //       position in the file (HI word)
-        FILE_SIZE_LO           = 7, // DWORD file size (LO word)
-        FILE_SIZE_HI           = 8, //       file size (HI word)
-        FILE_TIME              = 9, // WORD  last update time
-        FILE_DATE              = 10, // WORD  last update date
-        FILE_NAME              = 11, // WORD  12 byte buffer for filename
-        FILE_MODE              = 17, // WORD  file mode 'r', 'w', 'a'
-        FILE_ATTRIBUTES        = 18, // WORD  files attributes
-        FILE_PAGEFLAG          = 19, // WORD  cache check flag
-        FILE_ENTRY             = 20, // WORD  entry position in cur directory
-        FILE_DISK              = 21, // WORD* pointer to DISK mount media structure
-        FILE_BUFFER            = 22 // WORD*  sector buffer
+        FILE_FIRST_CLUSTER     = 0, ///< WORD  first cluster
+        FILE_CURR_CLUSTER      = 1, ///< WORD  current cluster in file
+        FILE_CURR_SECTOR       = 2, ///< WORD  sector in current cluster
+        FILE_CURR_SECTOR_POS   = 3, ///< WORD  position in current sector
+        FILE_CURR_SECTOR_TOP   = 4, ///< WORD  number bytes in current sector buffer
+        FILE_SEEK_POS_LO       = 5, ///< DWORD position in the file (LO word)
+        FILE_SEEK_POS_HI       = 6, ///<       position in the file (HI word)
+        FILE_SIZE_LO           = 7, ///< DWORD file size (LO word)
+        FILE_SIZE_HI           = 8, ///<       file size (HI word)
+        FILE_TIME              = 9, ///< WORD  last update time
+        FILE_DATE              = 10, ///< WORD  last update date
+        FILE_NAME              = 11, ///< WORD  12 byte buffer for filename
+        FILE_MODE              = 17, ///< WORD  file mode 'r', 'w', 'a'
+        FILE_ATTRIBUTES        = 18, ///< WORD  files attributes
+        FILE_PAGEFLAG          = 19, ///< WORD  cache check flag
+        FILE_ENTRY             = 20, ///< WORD  entry position in cur directory
+        FILE_DISK              = 21, ///< WORD* pointer to DISK mount media structure
+        FILE_BUFFER            = 22 ///< WORD*  sector buffer
     };
     
     
-    enum MemAddresses {
-        //------------------------------------------------------------------------------
-        // system WORD variables accesible with peekW and pokeW or pointer access
-        // Note that the txt_Set variables (0-15) and gfx_set variables (16-31)
-        // can also be accessed with peekW and pokeW
-        //------------------------------------------------------------------------------
-        
-        RANDOM_LO              = 32, // random number generator LO word
-        RANDOM_HI              = 33, // random number generator LO word
-        SYSTEM_TIMER_LO        = 34, // 1msec 32 bit free running timer LO word
-        SYSTEM_TIMER_HI        = 35, // 1msec 32 bit free running timer HI word
-        TMR0                   = 36, // user timer0
-        TMR1                   = 37, // user timer1
-        TMR2                   = 38, // user timer2
-        TMR3                   = 39, // user timer3 (10msec resolution)
-        TMR4                   = 40, // user timer0
-        TMR5                   = 41, // user timer1
-        TMR6                   = 42, // user timer2
-        TMR7                   = 43, // user timer3 (10msec resolution)
-        SYS_X_MAX              = 44, // display hardware X res-1
-        SYS_Y_MAX              = 45, // display hardware Y res-1
-        GFX_XMAX               = 46, // current display width-1 determined by portrait / landscape swapping
-        GFX_YMAX               = 47, // current display width-1 determined by portrait / landscape swapping
-        GFX_LEFT               = 48, // virtual left point for most recent object
-        GFX_TOP                = 49, // virtual top point for most recent object
-        GFX_RIGHT              = 50, // virtual right point for most recent object
-        GFX_BOTTOM             = 51, // virtual bottom point for most recent object
-        GFX_X1                 = 52, // clipped left point for current object
-        GFX_Y1                 = 53, // clipped top point for current object
-        GFX_X2                 = 54, // clipped right point for current object
-        GFX_Y2                 = 55, // clipped bottom point for current object
-        GFX_X_ORG              = 56, // current X origin
-        GFX_Y_ORG              = 57, // current Y origin
-        GFX_HILITE_LINE        = 58, // current multi line button hilite line
-        GFX_LINE_COUNT         = 59, // count of lines in multiline button
-        GFX_LAST_SELECTION     = 60, // last selected line
-        GFX_HILIGHT_BACKGROUND = 61, // multi button hilite background colour
-        GFX_HILIGHT_FOREGROUND = 62, // multi button hilite background colour
-        GFX_BUTTON_FOREGROUND  = 63, // store default text colour for hilite line tracker
-        GFX_BUTTON_BACKGROUND  = 64, // store default button colour for hilite line tracker
-        GFX_BUTTON_MODE        = 65, // store current buttons mode
-        GFX_TOOLBAR_HEIGHT     = 66, // height above
-        GFX_STATUSBAR_HEIGHT   = 67, // height below
-        GFX_LEFT_GUTTER_WIDTH  = 68, // width to left
-        GFX_RIGHT_GUTTER_WIDTH = 69, // width to right
-        GFX_PIXEL_SHIFT        = 70, // pixel shift for button depress illusion (default 1)
-        GFX_RECT_X1            = 71, // gp rect, used by multiline button to hilite required line
+    /** @enum MemAddresses
+     *  Various memory addresses for use with the peekM and pokeM commands.
+     *  Note that the txt_Set variables (0-15) and gfx_set variables (16-31)
+     *  can also be accessed with peekW and pokeW
+     */
+    enum MemAddresses {        
+        RANDOM_LO              = 32, ///< random number generator LO word
+        RANDOM_HI              = 33, ///< random number generator LO word
+        SYSTEM_TIMER_LO        = 34, ///< 1msec 32 bit free running timer LO word
+        SYSTEM_TIMER_HI        = 35, ///< 1msec 32 bit free running timer HI word
+        TMR0                   = 36, ///< user timer0
+        TMR1                   = 37, ///< user timer1
+        TMR2                   = 38, ///< user timer2
+        TMR3                   = 39, ///< user timer3 (10msec resolution)
+        TMR4                   = 40, ///< user timer0
+        TMR5                   = 41, ///< user timer1
+        TMR6                   = 42, ///< user timer2
+        TMR7                   = 43, ///< user timer3 (10msec resolution)
+        SYS_X_MAX              = 44, ///< display hardware X res-1
+        SYS_Y_MAX              = 45, ///< display hardware Y res-1
+        GFX_XMAX               = 46, ///< current display width-1 determined by portrait / landscape swapping
+        GFX_YMAX               = 47, ///< current display width-1 determined by portrait / landscape swapping
+        GFX_LEFT               = 48, ///< virtual left point for most recent object
+        GFX_TOP                = 49, ///< virtual top point for most recent object
+        GFX_RIGHT              = 50, ///< virtual right point for most recent object
+        GFX_BOTTOM             = 51, ///< virtual bottom point for most recent object
+        GFX_X1                 = 52, ///< clipped left point for current object
+        GFX_Y1                 = 53, ///< clipped top point for current object
+        GFX_X2                 = 54, ///< clipped right point for current object
+        GFX_Y2                 = 55, ///< clipped bottom point for current object
+        GFX_X_ORG              = 56, ///< current X origin
+        GFX_Y_ORG              = 57, ///< current Y origin
+        GFX_HILITE_LINE        = 58, ///< current multi line button hilite line
+        GFX_LINE_COUNT         = 59, ///< count of lines in multiline button
+        GFX_LAST_SELECTION     = 60, ///< last selected line
+        GFX_HILIGHT_BACKGROUND = 61, ///< multi button hilite background colour
+        GFX_HILIGHT_FOREGROUND = 62, ///< multi button hilite background colour
+        GFX_BUTTON_FOREGROUND  = 63, ///< store default text colour for hilite line tracker
+        GFX_BUTTON_BACKGROUND  = 64, ///< store default button colour for hilite line tracker
+        GFX_BUTTON_MODE        = 65, ///< store current buttons mode
+        GFX_TOOLBAR_HEIGHT     = 66, ///< height above
+        GFX_STATUSBAR_HEIGHT   = 67, ///< height below
+        GFX_LEFT_GUTTER_WIDTH  = 68, ///< width to left
+        GFX_RIGHT_GUTTER_WIDTH = 69, ///< width to right
+        GFX_PIXEL_SHIFT        = 70, ///< pixel shift for button depress illusion (default 1)
+        GFX_RECT_X1            = 71, ///< gp rect, used by multiline button to hilite required line
         GFX_RECT_Y1            = 72,
         GFX_RECT_X2            = 73,
         GFX_RECT_Y2            = 74,
-        GFX_THUMB_PERCENT      = 75, // size of slider thumb as percentage
-        GFX_THUMB_BORDER_DARK  = 76, // darker shadow of thumb
-        GFX_THUMB_BORDER_LIGHT = 77, // lighter shadow of thumb
-        TOUCH_XMINCAL          = 78, // touch calibration value
-        TOUCH_YMINCAL          = 79, // touch calibration value
-        TOUCH_XMAXCAL          = 80, // touch calibration value
-        TOUCH_YMAXCAL          = 81, // touch calibration value
-        IMG_WIDTH              = 82, // width of currently loaded image
-        IMG_HEIGHT             = 83, // height of currently loaded image
-        IMG_FRAME_DELAY        = 84, // 0 if image, else inter frame delay for movie
-        IMG_FLAGS              = 85, // bit 4 determines colour mode, other bits reserved
-        IMG_FRAME_COUNT        = 86, // count of frames in a movie
-        IMG_PIXEL_COUNT_LO     = 87, // count of pixels in the current frame
-        IMG_PIXEL_COUNT_HI     = 88, // count of pixels in the current frame
-        IMG_CURRENT_FRAME      = 89, // last frame shown
-        MEDIA_ADDRESS_LO       = 90, // uSD byte address LO
-        MEDIA_ADDRESS_HI       = 91, // uSD byte address HI
-        MEDIA_SECTOR_LO        = 92, // uSD sector address LO
-        MEDIA_SECTOR_HI        = 93, // uSD sector address HI
-        MEDIA_SECTOR_COUNT     = 94, // uSD number of bytes remaining in sector
-        TEXT_XPOS              = 95, // text current x pixel position
-        TEXT_YPOS              = 96, // text current y pixel position
-        TEXT_MARGIN            = 97, // text left pixel pos for carriage return
-        TXT_FONT_ID            = 98, // font type, 0 = system font, else pointer to user font
-        TXT_FONT_MAX           = 99, // max number of chars in font
-        TXT_FONT_OFFSET        = 100, // starting offset (normally 0x20)
-        TXT_FONT_WIDTH         = 101, // current font width
-        TXT_FONT_HEIGHT        = 102, // current font height
-        GFX_TOUCH_REGION_X1    = 103, // touch capture region
+        GFX_THUMB_PERCENT      = 75, ///< size of slider thumb as percentage
+        GFX_THUMB_BORDER_DARK  = 76, ///< darker shadow of thumb
+        GFX_THUMB_BORDER_LIGHT = 77, ///< lighter shadow of thumb
+        TOUCH_XMINCAL          = 78, ///< touch calibration value
+        TOUCH_YMINCAL          = 79, ///< touch calibration value
+        TOUCH_XMAXCAL          = 80, ///< touch calibration value
+        TOUCH_YMAXCAL          = 81, ///< touch calibration value
+        IMG_WIDTH              = 82, ///< width of currently loaded image
+        IMG_HEIGHT             = 83, ///< height of currently loaded image
+        IMG_FRAME_DELAY        = 84, ///< 0 if image, else inter frame delay for movie
+        IMG_FLAGS              = 85, ///< bit 4 determines colour mode, other bits reserved
+        IMG_FRAME_COUNT        = 86, ///< count of frames in a movie
+        IMG_PIXEL_COUNT_LO     = 87, ///< count of pixels in the current frame
+        IMG_PIXEL_COUNT_HI     = 88, ///< count of pixels in the current frame
+        IMG_CURRENT_FRAME      = 89, ///< last frame shown
+        MEDIA_ADDRESS_LO       = 90, ///< uSD byte address LO
+        MEDIA_ADDRESS_HI       = 91, ///< uSD byte address HI
+        MEDIA_SECTOR_LO        = 92, ///< uSD sector address LO
+        MEDIA_SECTOR_HI        = 93, ///< uSD sector address HI
+        MEDIA_SECTOR_COUNT     = 94, ///< uSD number of bytes remaining in sector
+        TEXT_XPOS              = 95, ///< text current x pixel position
+        TEXT_YPOS              = 96, ///< text current y pixel position
+        TEXT_MARGIN            = 97, ///< text left pixel pos for carriage return
+        TXT_FONT_ID            = 98, ///< font type, 0 = system font, else pointer to user font
+        TXT_FONT_MAX           = 99, ///< max number of chars in font
+        TXT_FONT_OFFSET        = 100, ///< starting offset (normally 0x20)
+        TXT_FONT_WIDTH         = 101, ///< current font width
+        TXT_FONT_HEIGHT        = 102, ///< current font height
+        GFX_TOUCH_REGION_X1    = 103, ///< touch capture region
         GFX_TOUCH_REGION_Y1    = 104,
         GFX_TOUCH_REGION_X2    = 105,
         GFX_TOUCH_REGION_Y2    = 106,
-        GFX_CLIP_LEFT_VAL      = 107, // left clipping point (set with gfx_ClipWindow(...)
-        GFX_CLIP_TOP_VAL       = 108, // top clipping point (set with gfx_ClipWindow(...)
-        GFX_CLIP_RIGHT_VAL     = 109, // right clipping point (set with gfx_ClipWindow(...)
-        GFX_CLIP_BOTTOM_VAL    = 110, // bottom clipping point (set with gfx_ClipWindow(...)
-        GFX_CLIP_LEFT          = 111, // current clip value (reads full size if clipping turned off)
-        GFX_CLIP_TOP           = 112, // current clip value (reads full size if clipping turned off)
-        GFX_CLIP_RIGHT         = 113, // current clip value (reads full size if clipping turned off)
-        GFX_CLIP_BOTTOM        = 114, // current clip value (reads full size if clipping turned off)
-        GRAM_PIXEL_COUNT_LO    = 115, // LO word of count of pixels in the set GRAM area
-        GRAM_PIXEL_COUNT_HI    = 116, // HI word of count of pixels in the set GRAM area
-        TOUCH_RAW_X            = 117, // 12 bit raw A2D X value from touch screen
-        TOUCH_RAW_Y            = 118, // 12 bit raw A2D Y value from touch screen
-        GFX_LAST_CHAR_WIDTH    = 119, // calculated char width from last call to charWidth function
-        GFX_LAST_CHAR_HEIGHT   = 120, // calculated height from last call to charHeight function
-        GFX_LAST_STR_WIDTH     = 121, // calculated width from last call to strWidth function
-        GFX_LAST_STR_HEIGHT    = 122 // calculated height from last call to strHeight function
+        GFX_CLIP_LEFT_VAL      = 107, ///< left clipping point (set with gfx_ClipWindow(...)
+        GFX_CLIP_TOP_VAL       = 108, ///< top clipping point (set with gfx_ClipWindow(...)
+        GFX_CLIP_RIGHT_VAL     = 109, ///< right clipping point (set with gfx_ClipWindow(...)
+        GFX_CLIP_BOTTOM_VAL    = 110, ///< bottom clipping point (set with gfx_ClipWindow(...)
+        GFX_CLIP_LEFT          = 111, ///< current clip value (reads full size if clipping turned off)
+        GFX_CLIP_TOP           = 112, ///< current clip value (reads full size if clipping turned off)
+        GFX_CLIP_RIGHT         = 113, ///< current clip value (reads full size if clipping turned off)
+        GFX_CLIP_BOTTOM        = 114, ///< current clip value (reads full size if clipping turned off)
+        GRAM_PIXEL_COUNT_LO    = 115, ///< LO word of count of pixels in the set GRAM area
+        GRAM_PIXEL_COUNT_HI    = 116, ///< HI word of count of pixels in the set GRAM area
+        TOUCH_RAW_X            = 117, ///< 12 bit raw A2D X value from touch screen
+        TOUCH_RAW_Y            = 118, ///< 12 bit raw A2D Y value from touch screen
+        GFX_LAST_CHAR_WIDTH    = 119, ///< calculated char width from last call to charWidth function
+        GFX_LAST_CHAR_HEIGHT   = 120, ///< calculated height from last call to charHeight function
+        GFX_LAST_STR_WIDTH     = 121, ///< calculated width from last call to strWidth function
+        GFX_LAST_STR_HEIGHT    = 122 ///< calculated height from last call to strHeight function
     };
 }