Difference between revisions of "Component: Display Manager (Graphical Library)"

From Flowcode Help
Jump to navigationJump to search
Line 5: Line 5:
 
|-
 
|-
 
| width="20%" style="color:gray;" | Version
 
| width="20%" style="color:gray;" | Version
| 2.0
+
| 2.1
 
|-
 
|-
 
| width="20%" style="color:gray;" | Category
 
| width="20%" style="color:gray;" | Category
Line 14: Line 14:
 
==Display Manager component==
 
==Display Manager component==
 
A component designed to simplify the process of drawing primitives and text onto a  graphical display. Keeps track of coordinates so you don't have to. Also works great as a base layer for gLCD based games as it will check for collisions and  perform movement.
 
A component designed to simplify the process of drawing primitives and text onto a  graphical display. Keeps track of coordinates so you don't have to. Also works great as a base layer for gLCD based games as it will check for collisions and  perform movement.
 +
 +
==Version information==
  
 
==Detailed description==
 
==Detailed description==
Line 59: Line 61:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForTouch'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForTouch'''
 
|-
 
|-
| colspan="2" | Uses the X and Y coordinates from a touch sensor to check for button presses. Returns 0 for no buttons pressed. Returns 1 for a valid button press. The ID of the pressed item can be found by calling GetButtonID macro. Any touched slider buttons will automatically move their thumb and value to the touch position.  
+
| colspan="2" | Uses the X and Y coordinates from a touch sensor to check for Widget presses. Returns 0 for no Widgets pressed. Returns 1 for a valid Widget press. The ID of the pressed item can be found by calling GetWidgetID macro. Any touched slider Widgets will automatically move their thumb and value to the touch position.  
 
|-
 
|-
 
|-
 
|-
Line 83: Line 85:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ClearAll'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ClearAll'''
 
|-
 
|-
| colspan="2" | Removes all objects and buttons from memory. Also clears the screen if required. 
+
| colspan="2" | Removes all objects and Widgets from memory. Also clears the screen if required. 
 
|-
 
|-
 
|-
 
|-
Line 96: Line 98:
  
  
===CreateButton===
+
===CreateObject===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CreateButton'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CreateObject'''
 
|-
 
|-
| colspan="2" | Define an interactive button or slider. Returns the Button ID. 
+
| colspan="2" | Define a none touchable graphical object. Returns the Object ID. 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | ButtonType
+
| width="90%" | ObjectType
 
|-
 
|-
| colspan="2" | 0=ButtonHidden, 1=ButtonRect, 2=ButtonRoundedRect, 3=ButtonEllipse, 4=VSlider, 5=HSlider, 6=VSliderRound, 7=HSliderRound 
+
| colspan="2" | 0=Hidden, 1=Rect, 2=Line, 3=Ellipse, 4=FilledEllipse, 5=FilledRect 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
Line 133: Line 135:
 
| width="90%" | Theme
 
| width="90%" | Theme
 
|-
 
|-
| colspan="2" | Theme index to use to draw the button 
+
| colspan="2" | Theme index to use to draw the object 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
 
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | DrawButton
+
| width="90%" | DrawObject
 
|-
 
|-
| colspan="2" | 0=Do not draw button yet, 1=Draw button now 
+
| colspan="2" | 0=Do not draw object yet, 1=Draw object now 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
Line 145: Line 147:
  
  
===CreateObject===
+
===CreateWidget===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CreateObject'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CreateWidget'''
 
|-
 
|-
| colspan="2" | Define a none touchable graphical object. Returns the Object ID. 
+
| colspan="2" | Define an interactive Widget or slider. Returns the Widget ID. 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | ObjectType
+
| width="90%" | WidgetType
 
|-
 
|-
| colspan="2" | 0=Hidden, 1=Rect, 2=Line, 3=Ellipse, 4=FilledEllipse, 5=FilledRect 
+
| colspan="2" | 0=WidgetHidden, 1=WidgetRect, 2=WidgetRoundedRect, 3=WidgetEllipse, 4=VSlider, 5=HSlider, 6=VSliderRound, 7=HSliderRound 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
Line 182: Line 184:
 
| width="90%" | Theme
 
| width="90%" | Theme
 
|-
 
|-
| colspan="2" | Theme index to use to draw the object 
+
| colspan="2" | Theme index to use to draw the Widget 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
 
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | DrawObject
+
| width="90%" | DrawWidget
 
|-
 
|-
| colspan="2" | 0=Do not draw object yet, 1=Draw object now 
+
| colspan="2" | 0=Do not draw Widget yet, 1=Draw Widget now 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
Line 200: Line 202:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DrawAll'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DrawAll'''
 
|-
 
|-
| colspan="2" | Redraws all of the defined Objects and Buttons. Doesn't draw text, this is done using the SetText macro. 
+
| colspan="2" | Redraws all of the defined Objects and Widgets. Doesn't draw text, this is done using the SetText macro. 
 
|-
 
|-
 
|-
 
|-
Line 214: Line 216:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DrawItem'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DrawItem'''
 
|-
 
|-
| colspan="2" | Draws a single object or button onto the display without clearing the display. Doesn't draw a textfield component, this is done using the SetObjectText macro. 
+
| colspan="2" | Draws a single object or Widget onto the display without clearing the display. Doesn't draw a textfield component, this is done using the SetObjectText macro. 
 
|-
 
|-
 
|-
 
|-
Line 220: Line 222:
 
| width="90%" | ID
 
| width="90%" | ID
 
|-
 
|-
| colspan="2" | Unique ID of the Object or Button 
+
| colspan="2" | Unique ID of the Object or Widget 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 233: Line 235:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetLastTouchID'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetLastTouchID'''
 
|-
 
|-
| colspan="2" | Gets the ID of the last button that returned a valid press via the CheckForTouch macro. Returns -1 for valid touch recorded. 
+
| colspan="2" | Gets the ID of the last Widget that returned a valid press via the CheckForTouch macro. Returns -1 for valid touch recorded. 
 
|-
 
|-
 
|-
 
|-
Line 251: Line 253:
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | ButtonID
+
| width="90%" | WidgetID
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
Line 266: Line 268:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 
|-
 
|-
| colspan="2" | Initialises the object and button control variables and sets up the default themes. 
+
| colspan="2" | Initialises the object and Widget control variables and sets up the default themes. 
 
|-
 
|-
 
|-
 
|-
Line 280: Line 282:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ModifyPosition'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ModifyPosition'''
 
|-
 
|-
| colspan="2" | Moves an existing object or button to absolute coordinates on the screen. 
+
| colspan="2" | Moves an existing object or Widget to absolute coordinates on the screen. 
 
|-
 
|-
 
|-
 
|-
Line 286: Line 288:
 
| width="90%" | ID
 
| width="90%" | ID
 
|-
 
|-
| colspan="2" | Unique ID of the object or button 
+
| colspan="2" | Unique ID of the object or Widget 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-s16-icon.png]] - INT
 
| width="10%" align="center" | [[File:Fc9-s16-icon.png]] - INT
Line 314: Line 316:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ModifyScale'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ModifyScale'''
 
|-
 
|-
| colspan="2" | Changes the width and height of the selected Object or Button. 
+
| colspan="2" | Changes the width and height of the selected Object or Widget. 
 
|-
 
|-
 
|-
 
|-
Line 320: Line 322:
 
| width="90%" | ID
 
| width="90%" | ID
 
|-
 
|-
| colspan="2" | Unique ID of the object or button 
+
| colspan="2" | Unique ID of the object or Widget 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
Line 343: Line 345:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ModifyTheme'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ModifyTheme'''
 
|-
 
|-
| colspan="2" | Changes the theme index of the selected Object or Button. 
+
| colspan="2" | Changes the theme index of the selected Object or Widget. 
 
|-
 
|-
 
|-
 
|-
Line 349: Line 351:
 
| width="90%" | ID
 
| width="90%" | ID
 
|-
 
|-
| colspan="2" | Unique ID of the object or button 
+
| colspan="2" | Unique ID of the object or Widget 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Theme
 
| width="90%" | Theme
 
|-
 
|-
| colspan="2" | Theme index of the button or object 
+
| colspan="2" | Theme index of the Widget or object 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 375: Line 377:
  
  
===OverrideButtonTheme===
+
===OverrideObjectTheme===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OverrideButtonTheme'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OverrideObjectTheme'''
 
|-
 
|-
| colspan="2" | Overrides the colour of a button theme, used by the draw button macro.  
+
| colspan="2" | Overrides the colour of an object theme, used by the draw object macro.  
 
|-
 
|-
 
|-
 
|-
Line 418: Line 420:
 
|-
 
|-
 
| colspan="2" | Background colour channel value 
 
| colspan="2" | Background colour channel value 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | HL_R
 
|-
 
| colspan="2" | Highlight colour channel value 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | HL_G
 
|-
 
| colspan="2" | Highlight colour channel value 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | HL_B
 
|-
 
| colspan="2" | Highlight colour channel value 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | LL_R
 
|-
 
| colspan="2" | Lowlight colour channel value 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | LL_G
 
|-
 
| colspan="2" | Lowlight colour channel value 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | LL_B
 
|-
 
| colspan="2" | Lowlight colour channel value 
 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 454: Line 426:
  
  
===OverrideObjectTheme===
+
===OverrideWidgetTheme===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OverrideObjectTheme'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OverrideWidgetTheme'''
 
|-
 
|-
| colspan="2" | Overrides the colour of an object theme, used by the draw object macro.  
+
| colspan="2" | Overrides the colour of a Widget theme, used by the draw Widget macro.  
 
|-
 
|-
 
|-
 
|-
Line 497: Line 469:
 
|-
 
|-
 
| colspan="2" | Background colour channel value 
 
| colspan="2" | Background colour channel value 
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | HL_R
 +
|-
 +
| colspan="2" | Highlight colour channel value 
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | HL_G
 +
|-
 +
| colspan="2" | Highlight colour channel value 
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | HL_B
 +
|-
 +
| colspan="2" | Highlight colour channel value 
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | LL_R
 +
|-
 +
| colspan="2" | Lowlight colour channel value 
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | LL_G
 +
|-
 +
| colspan="2" | Lowlight colour channel value 
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | LL_B
 +
|-
 +
| colspan="2" | Lowlight colour channel value 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 513: Line 515:
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | ButtonID
+
| width="90%" | WidgetID
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
Line 538: Line 540:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetText'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetText'''
 
|-
 
|-
| colspan="2" | Draws a single line of text onto an object or button location. Useful for labelling buttons or having name, value statistics. Drawn using the object themes. 
+
| colspan="2" | Draws a single line of text onto an object or Widget location. Useful for labelling Widgets or having name, value statistics. Drawn using the object themes. 
 
|-
 
|-
 
|-
 
|-
Line 544: Line 546:
 
| width="90%" | ID
 
| width="90%" | ID
 
|-
 
|-
| colspan="2" | Unique identifier of object or button. 
+
| colspan="2" | Unique identifier of object or Widget. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
 
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
Line 590: Line 592:
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" | LinkTo
+
| width="90%" | Graphical Display
 
|-
 
|-
| colspan="2" |  
+
| colspan="2" | Graphical Display to draw our objects on 
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 +
| width="90%" | DM Library
 +
|-
 +
| colspan="2" | Display Manager compatible GLCD library component.  e.g. Bitmap drawer components. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
Line 647: Line 654:
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Buttons
+
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Widgets
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | Max Buttons
+
| width="90%" | Max Widgets
 
|-
 
|-
| colspan="2" | The total number of touchable interactibe objects allowed on the screen at once e.g. buttons and sliders. Sets the size of the RAM buffers used to track the various screen elements Each button requires 18 bytes of RAM to stores things like size, location, value and type. 
+
| colspan="2" | The total number of touchable interactibe objects allowed on the screen at once e.g. Widgets and sliders. Sets the size of the RAM buffers used to track the various screen elements Each Widget requires 18 bytes of RAM to stores things like size, location, value and type. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="90%" | Touch Repeat Rate
 
| width="90%" | Touch Repeat Rate
 
|-
 
|-
| colspan="2" | Sets the period for touch repeats in terms of calls of the CheckForTouch macro. Buttons will only register a repeat touch after x calls if continually held down. Sliders will always register a touch.  The touch count can be cleared using the NoTouch macro if no touch is detected. 
+
| colspan="2" | Sets the period for touch repeats in terms of calls of the CheckForTouch macro. Widgets will only register a repeat touch after x calls if continually held down. Sliders will always register a touch.  The touch count can be cleared using the NoTouch macro if no touch is detected. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
Line 671: Line 678:
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" | Button Theme Count
+
| width="90%" | Widget Theme Count
 
|-
 
|-
| colspan="2" | Sets the number of themes available for drawng buttons. Each button theme requires 12 bytes of RAM to store the colour channels. 
+
| colspan="2" | Sets the number of themes available for drawng Widgets. Each Widget theme requires 12 bytes of RAM to store the colour channels. 
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]

Revision as of 13:38, 14 June 2024

Author MatrixTSL
Version 2.1
Category Graphical Library


Display Manager component

A component designed to simplify the process of drawing primitives and text onto a graphical display. Keeps track of coordinates so you don't have to. Also works great as a base layer for gLCD based games as it will check for collisions and perform movement.

Version information

Detailed description

The component can create the following objects.

  • Object_Hidden - 0 - A hidden area with no graphics.
  • Object_Rectangle - 1 - A simple rectangular box.
  • Object_Line - 2 - A simple straight line.
  • Object_Ellipse - 3 - A simple ellipse or circle.
  • Object_EllipseFilled - 4 - A filled ellipse or circle.
  • Object_RectangeFilled - 5 - A filled rectangular box.


The component can also create the following interactive buttons and sliders.

  • Widget_Hidden - 0 - A hidden area with no graphics.
  • Widget_Rectangle - 1 - A rectangular box with a shadow.
  • Widget_RoundedRectangle - 2 - A rounded rectangular box with a shadow.
  • Widget_Ellipse - 3 - A simple ellipse or circle with a shadow.
  • Widget_VSlider - 4 - A vertical slider with a square thumb.
  • Widget_HSlider - 5 - A horizontal slider with a square thumb.
  • Widget_VSlider_Round - 6 - A vertical slider with a round thumb.
  • Widget_HSlider_Round - 7 - A horizontal slider with a round thumb.


The type can be entered by using the component's public constants. Begin with the Display Manager handle name followed by :: and the list of the public variables will be displayed.

For example... DisplayManager1::Object_Rectangle or DisplayManager1::Widget_VSlider

Examples

An example showing how to use the display manager with a GLCd and a touch interface to create a full HMI.

The example shows how to create a simple menu system as well as a toggle switch and a slider used to control a PWM output.

FC6 Icon.png Display Manager Demo

Macro reference

CheckForTouch

Fc9-comp-macro.png CheckForTouch
Uses the X and Y coordinates from a touch sensor to check for Widget presses. Returns 0 for no Widgets pressed. Returns 1 for a valid Widget press. The ID of the pressed item can be found by calling GetWidgetID macro. Any touched slider Widgets will automatically move their thumb and value to the touch position.  
Fc9-u16-icon.png - UINT X
 
Fc9-u16-icon.png - UINT Y
 
Fc9-bool-icon.png - BOOL Return


ClearAll

Fc9-comp-macro.png ClearAll
Removes all objects and Widgets from memory. Also clears the screen if required. 
Fc9-bool-icon.png - BOOL ClearScreen
0=Don't clear the screen, 1=Clear the screen 
Fc9-void-icon.png - VOID Return


CreateObject

Fc9-comp-macro.png CreateObject
Define a none touchable graphical object. Returns the Object ID. 
Fc9-u8-icon.png - BYTE ObjectType
0=Hidden, 1=Rect, 2=Line, 3=Ellipse, 4=FilledEllipse, 5=FilledRect 
Fc9-u16-icon.png - UINT X
X Pixel Coordinate 
Fc9-u16-icon.png - UINT Y
Y Pixel Coordinate 
Fc9-u16-icon.png - UINT Width
Pixel Width or X Radius 
Fc9-u16-icon.png - UINT Height
Pixel Height or Y Radius 
Fc9-u8-icon.png - BYTE Theme
Theme index to use to draw the object 
Fc9-bool-icon.png - BOOL DrawObject
0=Do not draw object yet, 1=Draw object now 
Fc9-u16-icon.png - UINT Return


CreateWidget

Fc9-comp-macro.png CreateWidget
Define an interactive Widget or slider. Returns the Widget ID. 
Fc9-u8-icon.png - BYTE WidgetType
0=WidgetHidden, 1=WidgetRect, 2=WidgetRoundedRect, 3=WidgetEllipse, 4=VSlider, 5=HSlider, 6=VSliderRound, 7=HSliderRound 
Fc9-u16-icon.png - UINT X
X Pixel Coordinate 
Fc9-u16-icon.png - UINT Y
Y Pixel Coordinate 
Fc9-u16-icon.png - UINT Width
Pixel Width or X Radius 
Fc9-u16-icon.png - UINT Height
Pixel Height or Y Radius 
Fc9-u8-icon.png - BYTE Theme
Theme index to use to draw the Widget 
Fc9-bool-icon.png - BOOL DrawWidget
0=Do not draw Widget yet, 1=Draw Widget now 
Fc9-u16-icon.png - UINT Return


DrawAll

Fc9-comp-macro.png DrawAll
Redraws all of the defined Objects and Widgets. Doesn't draw text, this is done using the SetText macro. 
Fc9-void-icon.png - VOID Return


DrawItem

Fc9-comp-macro.png DrawItem
Draws a single object or Widget onto the display without clearing the display. Doesn't draw a textfield component, this is done using the SetObjectText macro. 
Fc9-u16-icon.png - UINT ID
Unique ID of the Object or Widget 
Fc9-void-icon.png - VOID Return


GetLastTouchID

Fc9-comp-macro.png GetLastTouchID
Gets the ID of the last Widget that returned a valid press via the CheckForTouch macro. Returns -1 for valid touch recorded. 
Fc9-s16-icon.png - INT Return


GetSliderValue

Fc9-comp-macro.png GetSliderValue
Reads the value of one of the sliders ranging between 0 and 1. 
Fc9-u16-icon.png - UINT WidgetID
 
Fc9-f32-icon.png - FLOAT Return


Initialise

Fc9-comp-macro.png Initialise
Initialises the object and Widget control variables and sets up the default themes. 
Fc9-void-icon.png - VOID Return


ModifyPosition

Fc9-comp-macro.png ModifyPosition
Moves an existing object or Widget to absolute coordinates on the screen. 
Fc9-u16-icon.png - UINT ID
Unique ID of the object or Widget 
Fc9-s16-icon.png - INT X
 
Fc9-s16-icon.png - INT Y
 
Fc9-bool-icon.png - BOOL Relative
0=Absolute Positioning, 1=Relative Positioning 
Fc9-void-icon.png - VOID Return


ModifyScale

Fc9-comp-macro.png ModifyScale
Changes the width and height of the selected Object or Widget. 
Fc9-u16-icon.png - UINT ID
Unique ID of the object or Widget 
Fc9-u16-icon.png - UINT Width
 
Fc9-u16-icon.png - UINT Height
 
Fc9-void-icon.png - VOID Return


ModifyTheme

Fc9-comp-macro.png ModifyTheme
Changes the theme index of the selected Object or Widget. 
Fc9-u16-icon.png - UINT ID
Unique ID of the object or Widget 
Fc9-u8-icon.png - BYTE Theme
Theme index of the Widget or object 
Fc9-void-icon.png - VOID Return


NoTouch

Fc9-comp-macro.png NoTouch
Called when no touch is present, Allows the repeat rate counter to be cleared allowing for better responses to fast touches. 
Fc9-void-icon.png - VOID Return


OverrideObjectTheme

Fc9-comp-macro.png OverrideObjectTheme
Overrides the colour of an object theme, used by the draw object macro.  
Fc9-u8-icon.png - BYTE ThemeIndex
Index of the object colour theme 
Fc9-u8-icon.png - BYTE FG_R
Foreground colour channel value 
Fc9-u8-icon.png - BYTE FG_G
Foreground colour channel value 
Fc9-u8-icon.png - BYTE FG_B
Foreground colour channel value 
Fc9-u8-icon.png - BYTE BG_R
Background colour channel value 
Fc9-u8-icon.png - BYTE BG_G
Background colour channel value 
Fc9-u8-icon.png - BYTE BG_B
Background colour channel value 
Fc9-void-icon.png - VOID Return


OverrideWidgetTheme

Fc9-comp-macro.png OverrideWidgetTheme
Overrides the colour of a Widget theme, used by the draw Widget macro.  
Fc9-u8-icon.png - BYTE ThemeIndex
Index of the object colour theme 
Fc9-u8-icon.png - BYTE FG_R
Foreground colour channel value 
Fc9-u8-icon.png - BYTE FG_G
Foreground colour channel value 
Fc9-u8-icon.png - BYTE FG_B
Foreground colour channel value 
Fc9-u8-icon.png - BYTE BG_R
Background colour channel value 
Fc9-u8-icon.png - BYTE BG_G
Background colour channel value 
Fc9-u8-icon.png - BYTE BG_B
Background colour channel value 
Fc9-u8-icon.png - BYTE HL_R
Highlight colour channel value 
Fc9-u8-icon.png - BYTE HL_G
Highlight colour channel value 
Fc9-u8-icon.png - BYTE HL_B
Highlight colour channel value 
Fc9-u8-icon.png - BYTE LL_R
Lowlight colour channel value 
Fc9-u8-icon.png - BYTE LL_G
Lowlight colour channel value 
Fc9-u8-icon.png - BYTE LL_B
Lowlight colour channel value 
Fc9-void-icon.png - VOID Return


SetSliderValue

Fc9-comp-macro.png SetSliderValue
Sets the value of one of the sliders and optionally redraws the slider to reflect the value change. 
Fc9-u16-icon.png - UINT WidgetID
 
Fc9-f32-icon.png - FLOAT Value
Range: 0 to 1 
Fc9-bool-icon.png - BOOL RedrawSlider
0=Do not redraw, 1=Redraw 
Fc9-void-icon.png - VOID Return


SetText

Fc9-comp-macro.png SetText
Draws a single line of text onto an object or Widget location. Useful for labelling Widgets or having name, value statistics. Drawn using the object themes. 
Fc9-u16-icon.png - UINT ID
Unique identifier of object or Widget. 
Fc9-string-icon.png - STRING Text
 
Fc9-u8-icon.png - BYTE Font
 
Fc9-u8-icon.png - BYTE HAlignment
0=Left, 1=Center, 2=Right 
Fc9-u8-icon.png - BYTE VAlignment
0=Top, 1=Middle, 2=Bottom 
Fc9-u8-icon.png - BYTE Theme
Object theme index to control the colour of the text 
Fc9-bool-icon.png - BOOL Transparent
0=Background Colour Drawn, 1=Don't Draw Background Colour 
Fc9-void-icon.png - VOID Return


Property reference

Fc9-prop-icon.png Properties
Fc9-type-16-icon.png Graphical Display
Graphical Display to draw our objects on 
Fc9-type-16-icon.png DM Library
Display Manager compatible GLCD library component. e.g. Bitmap drawer components. 
Fc9-type-21-icon.png Ram Usage Bytes
The calculated number of bytes of RAM required by the display manager. 
Fc9-type-21-icon.png Text Align Offset
Number of pixels to move away from an edge when calling SetText 
Fc9-conn-icon.png Objects
Fc9-type-21-icon.png Max Objects
The total number of primitive objects allowed on the screen at once. Sets the size of the RAM buffers used to track the various screen elements. Each object requires 10 bytes of RAM to stores things like size, location and type. 
Fc9-type-16-icon.png Object Theme Count
Sets the number of themes available when drawing primitive objects. Each object theme requires 6 bytes of RAM to store the colour channels. 
Fc9-conn-icon.png Theme 0
Fc9-type-1-icon.png Foreground
Foreground colour of the theme 
Fc9-type-1-icon.png Background
Background colour of the theme 
Fc9-conn-icon.png Theme 1
Fc9-type-1-icon.png Foreground
Foreground colour of the theme 
Fc9-type-1-icon.png Background
Background colour of the theme 
Fc9-conn-icon.png Widgets
Fc9-type-21-icon.png Max Widgets
The total number of touchable interactibe objects allowed on the screen at once e.g. Widgets and sliders. Sets the size of the RAM buffers used to track the various screen elements Each Widget requires 18 bytes of RAM to stores things like size, location, value and type. 
Fc9-type-21-icon.png Touch Repeat Rate
Sets the period for touch repeats in terms of calls of the CheckForTouch macro. Widgets will only register a repeat touch after x calls if continually held down. Sliders will always register a touch. The touch count can be cleared using the NoTouch macro if no touch is detected. 
Fc9-type-21-icon.png Slider Thumb Width
Number of pixels wide to make a slider thumb marker, 
Fc9-type-21-icon.png Slider Center Line Thickness
Number of pixels thick to draw the slider central line 
Fc9-type-16-icon.png Widget Theme Count
Sets the number of themes available for drawng Widgets. Each Widget theme requires 12 bytes of RAM to store the colour channels. 
Fc9-conn-icon.png Theme 0
Fc9-type-1-icon.png Foreground
Foreground colour of the theme 
Fc9-type-1-icon.png Background
Background colour of the theme 
Fc9-type-1-icon.png Highlight
Highlight colour of the theme 
Fc9-type-1-icon.png Lowlight
Lowlight colour of the theme 
Fc9-conn-icon.png Theme 1
Fc9-type-1-icon.png Foreground
Foreground colour of the theme 
Fc9-type-1-icon.png Background
Background colour of the theme 
Fc9-type-1-icon.png Highlight
Highlight colour of the theme 
Fc9-type-1-icon.png Lowlight
Lowlight colour of the theme 

Component Source Code

Please click here to download the component source project: FC_Comp_Source_Lib_DisplayManager.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_Lib_DisplayManager.fcfx