NXWidgets: NXWidgets::CWidgetControl Class Reference

NXWidgets 1.19

Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
NXWidgets::CWidgetControl Class Reference

`#include <cwidgetcontrol.hxx>`

Inheritance diagram for NXWidgets::CWidgetControl:

## Classes
struct | SXYInput

## Public Member Functions
| CWidgetControl (FAR const CWidgetStyle *style=(const CWidgetStyle *) NULL)
virtual | ~CWidgetControl (void)
void | waitForWindowEvent (void)
const bool | isWaiting (void) const
bool | pollEvents (CNxWidget *widget=(CNxWidget *) NULL)
bool | swapWidgetDepth (CNxWidget *widget)
void | addControlledWidget (CNxWidget *widget)
void | removeControlledWidget (CNxWidget *widget)
const int | getControlledWidgetCount (void) const
void | addToDeleteQueue (CNxWidget *widget)
void | setClickedWidget (CNxWidget *widget)
CNxWidget * | getClickedWidget (void)
void | setFocusedWidget (CNxWidget *widget)
void | clearFocusedWidget (CNxWidget *widget)
CNxWidget * | getFocusedWidget (void)
bool | doubleClick (void)
void | getWidgetStyle (CWidgetStyle *style)
void | setWidgetStyle (const CWidgetStyle *style)
void | geometryEvent (NXHANDLE hWindow, const struct nxgl_size_s *size, const struct nxgl_point_s *pos, const struct nxgl_rect_s *bounds)
void | redrawEvent (FAR const struct nxgl_rect_s *nxRect, bool more)
void | newMouseEvent (FAR const struct nxgl_point_s *pos, uint8_t buttons)
void | newKeyboardEvent (uint8_t nCh, FAR const uint8_t *pStr)
void | windowBlocked (FAR void *arg)
void | newCursorControlEvent (ECursorControl cursorControl)
NXHANDLE | getWindowHandle (void)
CRect | getWindowBoundingBox (void)
void | getWindowBoundingBox (FAR struct nxgl_rect_s *bounds)
bool | getWindowPosition (FAR struct nxgl_point_s *pos)
bool | getWindowSize (FAR struct nxgl_size_s *size)
nxgl_coord_t | getWindowWidth (void)
nxgl_coord_t | getWindowHeight (void)
bool | createGraphicsPort (INxWindow *window)
CGraphicsPort * | getGraphicsPort (void)
void | addWindowEventHandler (CWindowEventHandler *eventHandler)
void | removeWindowEventHandler (CWindowEventHandler *eventHandler)

## Protected Member Functions
void | copyWidgetStyle (CWidgetStyle *dest, const CWidgetStyle *src)
uint32_t | elapsedTime (FAR const struct timespec *startTime)
void | handleLeftClick (nxgl_coord_t x, nxgl_coord_t y, CNxWidget *widget)
const int | getWidgetIndex (const CNxWidget *widget) const
void | processDeleteQueue (void)
bool | pollMouseEvents (CNxWidget *widget)
bool | pollKeyboardEvents (void)
bool | pollCursorControlEvents (void)
void | postWindowEvent (void)
void | takeGeoSem (void)
void | giveGeoSem (void)
void | waitGeoData (void)
void | takeBoundsSem (void)
void | giveBoundsSem (void)
void | waitBoundsData (void)
void | clearMouseEvents (void)

## Protected Attributes
CGraphicsPort * | m_port
TNxArray< CNxWidget * > | m_deleteQueue
TNxArray< CNxWidget * > | m_widgets
bool | m_haveGeometry
bool | m_waiting
sem_t | m_waitSem
struct SXYInput | m_xyinput
CNxWidget * | m_clickedWidget
CNxWidget * | m_focusedWidget
uint8_t | m_kbdbuf [CONFIG_NXWIDGETS_KBDBUFFER_SIZE]
uint8_t | m_nCh
uint8_t | m_controls [CONFIG_NXWIDGETS_CURSORCONTROL_SIZE]
uint8_t | m_nCc
NXHANDLE | m_hWindow
struct nxgl_size_s | m_size
struct nxgl_point_s | m_pos
struct nxgl_rect_s | m_bounds
sem_t | m_geoSem
sem_t | m_boundsSem
CWindowEventHandlerList | m_eventHandlers
CWidgetStyle | m_style

## Detailed Description

Class providing a top-level widget and an interface to the CWidgetControl widget hierarchy.

There are three instances that represent an NX window from the perspective of NXWidgets.

- There is one widget control instance per NX window,
- One CCallback instance per window,
- One window instance.

There a various kinds of of window instances, but each inherits (1) CCallback and dispatches the Windows callbacks and (2) INxWindow that describes the common window behavior.

Definition at line 95 of file cwidgetcontrol.hxx.

## Constructor & Destructor Documentation

## ◆ CWidgetControl()

CWidgetControl::CWidgetControl | ( | FAR const CWidgetStyle * | style = `(const CWidgetStyle *)NULL` | ) |

Constructor

Parameters

  style | The default style that all widgets on this display should use. If this is not specified, the widget will use the values stored in the defaultCWidgetStyle object.

CWidgetControl constructor (for the case where the display size is known)

Parameters

  style | The style that the widget should use. If this is not specified, the widget will use the values stored in the global defaultCWidgetStyle object. The widget will copy the properties of the style into its own internal style object.

Definition at line 81 of file cwidgetcontrol.cxx.

## ◆ ~CWidgetControl()

CWidgetControl::~CWidgetControl | ( | void |  | ) |
| virtual

Destructor.

Definition at line 144 of file cwidgetcontrol.cxx.

## Member Function Documentation

## ◆ addControlledWidget()

void NXWidgets::CWidgetControl::addControlledWidget | ( | CNxWidget * | widget | ) |
| inline

Add another widget to be managed by this control instance

Parameters

  widget | The widget to be controlled.

Definition at line 463 of file cwidgetcontrol.hxx.

## ◆ addToDeleteQueue()

void CWidgetControl::addToDeleteQueue | ( | CNxWidget * | widget | ) |

Add a widget to the list of widgets to be deleted. Must never be called by anything other than the framework itself.

Parameters

  widget | The widget to add to the delete queue.

Definition at line 303 of file cwidgetcontrol.cxx.

## ◆ addWindowEventHandler()

void NXWidgets::CWidgetControl::addWindowEventHandler | ( | CWindowEventHandler * | eventHandler | ) |
| inline

Adds a window event handler. The window handler will receive notification all NX events received by this window.

Parameters

  eventHandler | A pointer to the event handler.

Definition at line 781 of file cwidgetcontrol.hxx.

## ◆ clearFocusedWidget()

void NXWidgets::CWidgetControl::clearFocusedWidget | ( | CNxWidget * | widget | ) |
| inline

Reset the focused widget so that it will no longer receive keyboard input.

Parameters

  widget | The new focused widget.

Definition at line 530 of file cwidgetcontrol.hxx.

## ◆ clearMouseEvents()

void CWidgetControl::clearMouseEvents | ( | void |  | ) |
| protected

Clear all mouse events

Definition at line 944 of file cwidgetcontrol.cxx.

## ◆ copyWidgetStyle()

void CWidgetControl::copyWidgetStyle | ( | CWidgetStyle * | dest,
|  | const CWidgetStyle * | src
| ) |  |
| protected

Copy a widget style

Parameters

  dest | The destination style
  src | The source to use

Definition at line 673 of file cwidgetcontrol.cxx.

## ◆ createGraphicsPort()

bool CWidgetControl::createGraphicsPort | ( | INxWindow * | window | ) |

The creation sequence is:

1) Create a dumb CWigetControl instance 2) Pass the dumb CWidgetControl instance to the window constructor that inherits from INxWindow. 3) The call this method with the static_cast to INxWindow to, finally, create the CGraphicsPort for this window. 4) After that, the fully smartend CWidgetControl instance can be used to generate additional widgets.

Parameters

  window | The instance of INxWindow needed to construct the CGraphicsPort instance

The creation sequence is:

1) Create a dumb CWigetControl instance 2) Pass the dumb CWidgetControl instance to the window constructor that inherits from INxWindow. 3) The call this method with the static_cast to INxWindow to, finally, create the CGraphicsPort for this window. 4) After that, the fully smartened CWidgetControl instance can be used to generate additional widgets.

Parameters

  window | The instance of INxWindow needed to construct the CGraphicsPort instance

Definition at line 656 of file cwidgetcontrol.cxx.

## ◆ doubleClick()

bool NXWidgets::CWidgetControl::doubleClick | ( | void |  | ) |
| inline

Check for the occurrence of a double click.

Returns
  Pointer to the clicked widget.

Definition at line 555 of file cwidgetcontrol.hxx.

## ◆ elapsedTime()

uint32_t CWidgetControl::elapsedTime | ( | FAR const struct timespec * | startTime | ) |
| protected

Return the elapsed time in millisconds

Parameters

  startTime | A time in the past from which to compute the elapsed time.

Returns
  The elapsed time since startTime

Return the elapsed time in milliseconds

Parameters

  tp | A time in the past from which to compute the elapsed time.

Returns
  The elapsed time since tp

Definition at line 693 of file cwidgetcontrol.cxx.

## ◆ geometryEvent()

void CWidgetControl::geometryEvent | ( | NXHANDLE | hWindow,
|  | const struct nxgl_size_s * | size,
|  | const struct nxgl_point_s * | pos,
|  | const struct nxgl_rect_s * | bounds
| ) |  |

These remaining methods are used by the CCallback instance to provide notifications of certain events. This event will occur when the position or size of the underlying window occurs.

Parameters

  hWindow | The window handle that should be used to communicate with the window
  pos | The position of the window in the physical device space.
  size | The size of the window.
  bounds | The size of the underlying display (pixels x rows)

This event is called from CCallback instance to provide notifications of certain NX-server related events. This event, in particular, will occur when the position or size of the underlying window occurs.

Parameters

  hWindow | The window handle that should be used to communicate with the window
  pos | The position of the window in the physical device space.
  size | The size of the window.
  bounds | The size of the underlying display (pixels x rows)

Definition at line 372 of file cwidgetcontrol.cxx.

## ◆ getClickedWidget()

CNxWidget* NXWidgets::CWidgetControl::getClickedWidget | ( | void |  | ) |
| inline

Get the clicked widget pointer.

Returns
  Pointer to the clicked widget.

Definition at line 511 of file cwidgetcontrol.hxx.

## ◆ getControlledWidgetCount()

const int NXWidgets::CWidgetControl::getControlledWidgetCount | ( | void |  | ) | const
| inline

Get the number of controlled widgets.

Returns
  The number of child widgets belonging to this widget.

Definition at line 482 of file cwidgetcontrol.hxx.

## ◆ getFocusedWidget()

CNxWidget* NXWidgets::CWidgetControl::getFocusedWidget | ( | void |  | ) |
| inline

Get the focused widget pointer.

Returns
  Pointer to the focused widget.

Definition at line 544 of file cwidgetcontrol.hxx.

## ◆ getGraphicsPort()

CGraphicsPort* NXWidgets::CWidgetControl::getGraphicsPort | ( | void |  | ) |
| inline

Get the CGraphicsPort instance for drawing on this window

Definition at line 769 of file cwidgetcontrol.hxx.

## ◆ getWidgetIndex()

const int CWidgetControl::getWidgetIndex | ( | const CNxWidget * | widget | ) | const
| protected

Get the index of the specified controlled widget.

Parameters

  widget | The widget to get the index of.

Returns
  The index of the widget. -1 if the widget is not found.

Definition at line 266 of file cwidgetcontrol.cxx.

## ◆ getWidgetStyle()

void NXWidgets::CWidgetControl::getWidgetStyle | ( | CWidgetStyle * | style | ) |
| inline

Get the default widget style for this window.

Parameters

  style. | The location to return the widget's style

Definition at line 566 of file cwidgetcontrol.hxx.

## ◆ getWindowBoundingBox() [1/2]

CRect NXWidgets::CWidgetControl::getWindowBoundingBox | ( | void |  | ) |
| inline

Get the window bounding box in physical display coordinates. This method may need to wait until bounds data is available.

Returns
  This function returns the window handle.

Definition at line 680 of file cwidgetcontrol.hxx.

## ◆ getWindowBoundingBox() [2/2]

void NXWidgets::CWidgetControl::getWindowBoundingBox | ( | FAR struct nxgl_rect_s * | bounds | ) |
| inline

Definition at line 686 of file cwidgetcontrol.hxx.

## ◆ getWindowHandle()

NXHANDLE NXWidgets::CWidgetControl::getWindowHandle | ( | void |  | ) |
| inline

Get the window handle reported on the first position callback.

Returns
  This function returns the window handle.

Definition at line 668 of file cwidgetcontrol.hxx.

## ◆ getWindowHeight()

nxgl_coord_t NXWidgets::CWidgetControl::getWindowHeight | ( | void |  | ) |
| inline

Get the height of the window (as reported by the last NX callback). This method may need to wait until geometry data is available.

Returns
  The size.

Definition at line 742 of file cwidgetcontrol.hxx.

## ◆ getWindowPosition()

bool NXWidgets::CWidgetControl::getWindowPosition | ( | FAR struct nxgl_point_s * | pos | ) |
| inline

Get the position of the window (as reported by the last NX callback). This method may need to wait until geometry data is available.

Returns
  The position.

Definition at line 699 of file cwidgetcontrol.hxx.

## ◆ getWindowSize()

bool NXWidgets::CWidgetControl::getWindowSize | ( | FAR struct nxgl_size_s * | size | ) |
| inline

Get the size of the window (as reported by the last NX callback). This method may need to wait until geometry data is available.

Returns
  The size.

Definition at line 714 of file cwidgetcontrol.hxx.

## ◆ getWindowWidth()

nxgl_coord_t NXWidgets::CWidgetControl::getWindowWidth | ( | void |  | ) |
| inline

Get the width of the window (as reported by the last NX callback). This method may need to wait until geometry data is available.

Returns
  The size.

Definition at line 729 of file cwidgetcontrol.hxx.

## ◆ giveBoundsSem()

void NXWidgets::CWidgetControl::giveBoundsSem | ( | void |  | ) |
| inlineprotected

Give the bounds semaphore

Definition at line 344 of file cwidgetcontrol.hxx.

## ◆ giveGeoSem()

void NXWidgets::CWidgetControl::giveGeoSem | ( | void |  | ) |
| inlineprotected

Give the geometry semaphore

Definition at line 319 of file cwidgetcontrol.hxx.

## ◆ handleLeftClick()

void CWidgetControl::handleLeftClick | ( | nxgl_coord_t | x,
|  | nxgl_coord_t | y,
|  | CNxWidget * | widget
| ) |  |
| protected

Pass clicks to the widget hierarchy. Closes the context menu if the clicked widget is not the context menu. If a single widget is supplied, only that widget is sent the click.

Parameters

  x | Click xcoordinate.
  y | Click ycoordinate.
  widget. | Specific widget to poll. Use NULL to run the all widgets in the window.

Pass clicks to the widget hierarchy. If a single widget is supplied, only that widget is sent the click.

Parameters

  x | Click xcoordinate.
  y | Click ycoordinate.
  widget | Pointer to a specific widget or NULL.

Definition at line 744 of file cwidgetcontrol.cxx.

## ◆ isWaiting()

const bool NXWidgets::CWidgetControl::isWaiting | ( | void |  | ) | const
| inline

Is external logic awaiting for a window event?

Returns
  True if the widget if external logic is waiting.

Definition at line 410 of file cwidgetcontrol.hxx.

## ◆ newCursorControlEvent()

void CWidgetControl::newCursorControlEvent | ( | ECursorControl | cursorControl | ) |

This event means that cursor control data is available for the window.

Parameters

  cursorControl | The cursor control code received.

Definition at line 624 of file cwidgetcontrol.cxx.

## ◆ newKeyboardEvent()

void CWidgetControl::newKeyboardEvent | ( | uint8_t | nCh,
|  | FAR const uint8_t * | pStr
| ) |  |

This event means that keyboard/keypad data is available for the window.

Parameters

  nCh | The number of characters that are available in pStr[].
  pStr | The array of characters.

This event is called from CCallback instance to provide notifications of certain NX-server related events. This event, in particular, means that keyboard/keypad data is available for the window.

Parameters

  nCh | The number of characters that are available in pStr[].
  pStr | The array of characters.

Definition at line 593 of file cwidgetcontrol.cxx.

## ◆ newMouseEvent()

void CWidgetControl::newMouseEvent | ( | FAR const struct nxgl_point_s * | pos,
|  | uint8_t | buttons
| ) |  |

This event means that new mouse data is available for the window.

Parameters

  pos | The (x,y) position of the mouse.
  buttons | See NX_MOUSE_* definitions.

This event is called from CCallback instance to provide notifications of certain NX-server related events. This event, in particular, means that new mouse data is available for the window.

Parameters

  pos | The (x,y) position of the mouse.
  buttons | See NX_MOUSE_* definitions.

Definition at line 452 of file cwidgetcontrol.cxx.

## ◆ pollCursorControlEvents()

bool CWidgetControl::pollCursorControlEvents | ( | void |  | ) |
| protected

Process cursor control events and send throughout the hierarchy.

Returns
  True means a cursor control event was processes

Definition at line 881 of file cwidgetcontrol.cxx.

## ◆ pollEvents()

bool CWidgetControl::pollEvents | ( | CNxWidget * | widget = `(CNxWidget *)NULL` | ) |

Run all code that needs to take place on a periodic basis. This method normally called externally... either periodically or when a window event is detected. If CONFIG_NXWIDGET_EVENTWAIT is defined, then external logic want call waitWindow event and when awakened, they chould call this function. As an example:

for (;;) { sched_lock(); // Make the sequence atomic if (!window->pollEvents(0)) { window->waitWindowEvent(); } sched_unlock(); }

This method is just a wrapper simply calls the followi.

processDeleteQueue() pollMouseEvents(widget) pollKeyboardEvents() pollCursorControlEvents()

Parameters

  widget. | Specific widget to poll. Use NULL to run the all widgets in the window.

Returns
  True means some interesting event occurred

Run all code that needs to take place on a periodic basis. This method normally called externally... either periodically or when a window event is detected. If CONFIG_NXWIDGET_EVENTWAIT is defined, then external logic want call waitWindow event and when awakened, they chould call this function. As an example:

for (;;) { sched_lock(); // Make the sequence atomic if (!window->pollEvents(0)) { window->waitWindowEvent(); } sched_unlock(); }

This method is just a wrapper simply calls the following methods. It can easily be replace with custom, external logic.

processDeleteQueue() pollMouseEvents(widget) pollKeyboardEvents() pollCursorControlEvents()

Parameters

  widget. | Specific widget to poll. Use NULL to run the all widgets in the window.

Returns
  True means some interesting event occurred

Definition at line 239 of file cwidgetcontrol.cxx.

## ◆ pollKeyboardEvents()

bool CWidgetControl::pollKeyboardEvents | ( | void |  | ) |
| protected

Process keypad events and send throughout the hierarchy.

Returns
  True means a keyboard event occurred

Definition at line 851 of file cwidgetcontrol.cxx.

## ◆ pollMouseEvents()

bool CWidgetControl::pollMouseEvents | ( | CNxWidget * | widget | ) |
| protected

Process mouse/touchscreen events and send throughout the hierarchy.

Parameters

  widget. | Specific widget to poll. Use NULL to run the all widgets in the window.

Returns
  True means a mouse event occurred

Definition at line 792 of file cwidgetcontrol.cxx.

## ◆ postWindowEvent()

void CWidgetControl::postWindowEvent | ( | void |  | ) |
| protected

Wake up and external logic that is waiting for a window event.

Wake up external logic waiting for a window event

Definition at line 200 of file cwidgetcontrol.cxx.

## ◆ processDeleteQueue()

void CWidgetControl::processDeleteQueue | ( | void |  | ) |
| protected

Delete any widgets in the deletion queue.

Definition at line 772 of file cwidgetcontrol.cxx.

## ◆ redrawEvent()

void CWidgetControl::redrawEvent | ( | FAR const struct nxgl_rect_s * | nxRect,
|  | bool | more
| ) |  |

This event will occur when the a portion of the window that was previously obscured is now exposed.

Parameters

  nxRect | The region in the window that must be redrawn.
  more | True means that more re-draw requests will follow

This event is called from CCallback instance to provide notifications of certain NX-server related events. This event, in particular, will occur when the a portion of the window that was previously obscured is now exposed.

Parameters

  rect | The region in the window that must be redrawn.
  more | True means that more re-draw requests will follow

Definition at line 434 of file cwidgetcontrol.cxx.

## ◆ removeControlledWidget()

void CWidgetControl::removeControlledWidget | ( | CNxWidget * | widget | ) |

Remove a controlled widget

Parameters

  widget | The widget to be removed

Definition at line 285 of file cwidgetcontrol.cxx.

## ◆ removeWindowEventHandler()

void NXWidgets::CWidgetControl::removeWindowEventHandler | ( | CWindowEventHandler * | eventHandler | ) |
| inline

Remove a window event handler.

Parameters

  eventHandler | A pointer to the event handler to remove.

Definition at line 792 of file cwidgetcontrol.hxx.

## ◆ setClickedWidget()

void CWidgetControl::setClickedWidget | ( | CNxWidget * | widget | ) |

Set the clicked widget pointer. Note that this should not be called by code other than within the CWidgetControl library itself.

Parameters

  widget | The new clicked widget.

Definition at line 323 of file cwidgetcontrol.cxx.

## ◆ setFocusedWidget()

void CWidgetControl::setFocusedWidget | ( | CNxWidget * | widget | ) |

Set the focused widget that will receive keyboard input.

Parameters

  widget | The new focused widget.

Definition at line 345 of file cwidgetcontrol.cxx.

## ◆ setWidgetStyle()

void NXWidgets::CWidgetControl::setWidgetStyle | ( | const CWidgetStyle * | style | ) |
| inline

Set the default widget style for this window.

Parameters

  style. | The new widget style to copy.

Definition at line 577 of file cwidgetcontrol.hxx.

## ◆ swapWidgetDepth()

bool NXWidgets::CWidgetControl::swapWidgetDepth | ( | CNxWidget * | widget | ) |

Swaps the depth of the supplied widget. This function presumes that all child widgets are screens.

Parameters

  widget | The widget to be depth-swapped.

Returns
  True if the depth swap occurred.

## ◆ takeBoundsSem()

void CWidgetControl::takeBoundsSem | ( | void |  | ) |
| protected

Take the bounds semaphore (handling signal interruptions)

Definition at line 926 of file cwidgetcontrol.cxx.

## ◆ takeGeoSem()

void CWidgetControl::takeGeoSem | ( | void |  | ) |
| protected

Take the geometry semaphore (handling signal interruptions)

Definition at line 909 of file cwidgetcontrol.cxx.

## ◆ waitBoundsData()

void NXWidgets::CWidgetControl::waitBoundsData | ( | void |  | ) |
| inlineprotected

Wait for bounds data

Definition at line 353 of file cwidgetcontrol.hxx.

## ◆ waitForWindowEvent()

void CWidgetControl::waitForWindowEvent | ( | void |  | ) |

Wait for an interesting window event to occur (like a mouse or keyboard event) Caller's should exercise care to assure that the test for waiting and this call are "atomic" .. perhaps by locking the scheduler like:

sched_lock(); <check for="" events>=""> if (<no interesting="" events>="">) { window->waitForWindowEvent(); } sched_unlock();

Wait for an interesting window event to occur (like a mouse or keyboard event). Caller's should exercise care to assure that the test for waiting and this call are "atomic" .. perhaps by locking the scheduler like:

sched_lock(); ... if (no interesting events) { window->waitForWindowEvent(); } sched_unlock();

Definition at line 187 of file cwidgetcontrol.cxx.

## ◆ waitGeoData()

void NXWidgets::CWidgetControl::waitGeoData | ( | void |  | ) |
| inlineprotected

Wait for geometry data

Definition at line 328 of file cwidgetcontrol.hxx.

## ◆ windowBlocked()

void NXWidgets::CWidgetControl::windowBlocked | ( | FAR void * | arg | ) |
| inline

This event is the response from nx_block (or nxtk_block). Those blocking interfaces are used to assure that no further messages are directed to the window. Receipt of the blocked callback signifies that (1) there are no further pending events and (2) that the window is now 'defunct' and will receive no further events.

This event supports coordinated destruction of a window in multi- user mode. In multi-use mode, the client window logic must stay intact until all of the queued callbacks are processed. Then the window may be safely closed. Closing the window prior with pending callbacks can lead to bad behavior when the callback is executed.

Parameters

  arg | - User provided argument (see nx_block or nxtk_block)

Definition at line 649 of file cwidgetcontrol.hxx.

## Member Data Documentation

## ◆ m_bounds

struct nxgl_rect_s NXWidgets::CWidgetControl::m_bounds
| protected

Size of the display

Definition at line 217 of file cwidgetcontrol.hxx.

## ◆ m_boundsSem

sem_t NXWidgets::CWidgetControl::m_boundsSem
| protected

Posted when bounds are valid

Definition at line 219 of file cwidgetcontrol.hxx.

## ◆ m_clickedWidget

CNxWidget* NXWidgets::CWidgetControl::m_clickedWidget
| protected

Pointer to the widget that is clicked.

Definition at line 199 of file cwidgetcontrol.hxx.

## ◆ m_controls

uint8_t NXWidgets::CWidgetControl::m_controls[CONFIG_NXWIDGETS_CURSORCONTROL_SIZE]
| protected

Definition at line 207 of file cwidgetcontrol.hxx.

## ◆ m_deleteQueue

TNxArray<CNxWidget*> NXWidgets::CWidgetControl::m_deleteQueue
| protected

Array of widgets awaiting deletion.

Definition at line 178 of file cwidgetcontrol.hxx.

## ◆ m_eventHandlers

CWindowEventHandlerList NXWidgets::CWidgetControl::m_eventHandlers
| protected

List of event handlers.

Definition at line 220 of file cwidgetcontrol.hxx.

## ◆ m_focusedWidget

CNxWidget* NXWidgets::CWidgetControl::m_focusedWidget
| protected

Pointer to the widget that received keyboard input.

Definition at line 201 of file cwidgetcontrol.hxx.

## ◆ m_geoSem

sem_t NXWidgets::CWidgetControl::m_geoSem
| protected

Posted when geometry is valid

Definition at line 218 of file cwidgetcontrol.hxx.

## ◆ m_haveGeometry

bool NXWidgets::CWidgetControl::m_haveGeometry
| protected

True: indicates that we have valid geometry data.

Definition at line 182 of file cwidgetcontrol.hxx.

## ◆ m_hWindow

NXHANDLE NXWidgets::CWidgetControl::m_hWindow
| protected

The following were picked off from the position callback.Handle to the NX window

Definition at line 214 of file cwidgetcontrol.hxx.

## ◆ m_kbdbuf

uint8_t NXWidgets::CWidgetControl::m_kbdbuf[CONFIG_NXWIDGETS_KBDBUFFER_SIZE]
| protected

Definition at line 204 of file cwidgetcontrol.hxx.

## ◆ m_nCc

uint8_t NXWidgets::CWidgetControl::m_nCc
| protected

Number of buffered cursor controls

Definition at line 208 of file cwidgetcontrol.hxx.

## ◆ m_nCh

uint8_t NXWidgets::CWidgetControl::m_nCh
| protected

Number of buffered keyboard characters

Definition at line 205 of file cwidgetcontrol.hxx.

## ◆ m_port

CGraphicsPort* NXWidgets::CWidgetControl::m_port
| protected

State dataThe graphics port that is used for drawing on this window

Definition at line 175 of file cwidgetcontrol.hxx.

## ◆ m_pos

struct nxgl_point_s NXWidgets::CWidgetControl::m_pos
| protected

Position in display space

Definition at line 216 of file cwidgetcontrol.hxx.

## ◆ m_size

struct nxgl_size_s NXWidgets::CWidgetControl::m_size
| protected

Size of the window

Definition at line 215 of file cwidgetcontrol.hxx.

## ◆ m_style

CWidgetStyle NXWidgets::CWidgetControl::m_style
| protected

StyleDefault style used by all widgets in the window.

Definition at line 226 of file cwidgetcontrol.hxx.

## ◆ m_waiting

bool NXWidgets::CWidgetControl::m_waiting
| protected

True: Extternal logic waiting for window event

Definition at line 185 of file cwidgetcontrol.hxx.

## ◆ m_waitSem

sem_t NXWidgets::CWidgetControl::m_waitSem
| protected

External loops waits for events on this semaphore

Definition at line 187 of file cwidgetcontrol.hxx.

## ◆ m_widgets

TNxArray<CNxWidget*> NXWidgets::CWidgetControl::m_widgets
| protected

List of controlled widgets.

Definition at line 180 of file cwidgetcontrol.hxx.

## ◆ m_xyinput

struct SXYInput NXWidgets::CWidgetControl::m_xyinput
| protected

I/OCurrent XY input device state

Definition at line 196 of file cwidgetcontrol.hxx.

The documentation for this class was generated from the following files:

- cwidgetcontrol.hxx
- cwidgetcontrol.cxx