NXWidgets  1.19
Public Member Functions | Private Attributes | List of all members
NXWidgets::CBgWindow Class Reference

#include <cbgwindow.hxx>

Inheritance diagram for NXWidgets::CBgWindow:
Inheritance graph

Public Member Functions

 CBgWindow (NXHANDLE hNxServer, CWidgetControl *widgetControl)
 
virtual ~CBgWindow (void)
 
bool open (void)
 
CWidgetControlgetWidgetControl (void) const
 
bool requestPosition (void)
 
bool getPosition (FAR struct nxgl_point_s *pPos)
 
bool getSize (FAR struct nxgl_size_s *pSize)
 
bool setPosition (FAR const struct nxgl_point_s *pPos)
 
bool setSize (FAR const struct nxgl_size_s *pSize)
 
bool raise (void)
 
bool lower (void)
 
void redirectNxTerm (NXTERM handle)
 
bool setPixel (FAR const struct nxgl_point_s *pPos, nxgl_mxpixel_t color)
 
bool fill (FAR const struct nxgl_rect_s *pRect, nxgl_mxpixel_t color)
 
void getRectangle (FAR const struct nxgl_rect_s *rect, struct SBitmap *dest)
 
bool fillTrapezoid (FAR const struct nxgl_rect_s *pClip, FAR const struct nxgl_trapezoid_s *pTrap, nxgl_mxpixel_t color)
 
bool drawLine (FAR struct nxgl_vector_s *vector, nxgl_coord_t width, nxgl_mxpixel_t color, enum ELineCaps caps)
 
bool drawFilledCircle (struct nxgl_point_s *center, nxgl_coord_t radius, nxgl_mxpixel_t color)
 
bool move (FAR const struct nxgl_rect_s *pRect, FAR const struct nxgl_point_s *pOffset)
 
bool bitmap (FAR const struct nxgl_rect_s *pDest, FAR const void *pSrc, FAR const struct nxgl_point_s *pOrigin, unsigned int stride)
 
- Public Member Functions inherited from NXWidgets::INxWindow
virtual ~INxWindow (void)
 

Private Attributes

NXHANDLE m_hNxServer
 
NXWINDOW m_hWindow
 
CWidgetControlm_widgetControl
 

Additional Inherited Members

- Public Types inherited from NXWidgets::INxWindow
enum  ELineCaps { LINECAP_NONE = NX_LINECAP_NONE, LINECAP_PT1 = NX_LINECAP_PT1, LINECAP_PT2 = NX_LINECAP_PT2, LINECAP_BOTH = NX_LINECAP_BOTH }
 
- Protected Types inherited from NXWidgets::INxWindow
enum  ELineCaps { LINECAP_NONE = NX_LINECAP_NONE, LINECAP_PT1 = NX_LINECAP_PT1, LINECAP_PT2 = NX_LINECAP_PT2, LINECAP_BOTH = NX_LINECAP_BOTH }
 
- Protected Member Functions inherited from NXWidgets::CCallback
 CCallback (CWidgetControl *widgetControl)
 
 ~CCallback (void)
 
FAR struct nx_callback_s * getCallbackVTable (void)
 
void setNxTerm (NXTERM handle)
 
- Protected Member Functions inherited from NXWidgets::INxWindow
virtual ~INxWindow (void)
 

Detailed Description

This class defines operations on a the NX background window. There are three instances that represent an NX window from the perspective of NXWidgets.

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 84 of file cbgwindow.hxx.

Constructor & Destructor Documentation

◆ CBgWindow()

CBgWindow::CBgWindow ( NXHANDLE  hNxServer,
CWidgetControl pWidgetControl 
)

Constructor. Obtains the background window from server and wraps the window as CBgWindow. Creates an uninitialized instance of the CBgWindow object. The open() method must be called to initialize the instance.

The general steps to create any window include: 1) Create a dumb CWigetControl instance 2) Pass the dumb CWidgetControl instance to the window constructor that inherits from INxWindow. 3) The window constructor call CWidgetControl methods to "smarten" the CWidgetControl instance with window-specific knowledge. 4) Call the open() method on the window to display the window. 5) After that, the fully smartend CWidgetControl instance can be used to generate additional widgets. 6) After that, the fully smartened CWidgetControl instance can be used to generate additional widgets by passing it to the widget constructor

Parameters
hNxServerHandle to the NX server.
widgetControlControlling widget for this window.

Constructor. Obtains the background window from server and wraps the window as CBgWindow.

Parameters
hNxServerHandle to the NX server.
widgetControlControlling widget for this window.

Definition at line 67 of file cbgwindow.cxx.

◆ ~CBgWindow()

CBgWindow::~CBgWindow ( void  )
virtual

Destructor. Returns the background window to the server.

Definition at line 80 of file cbgwindow.cxx.

Member Function Documentation

◆ bitmap()

bool CBgWindow::bitmap ( FAR const struct nxgl_rect_s *  pDest,
FAR const void *  pSrc,
FAR const struct nxgl_point_s *  pOrigin,
unsigned int  stride 
)
virtual

Copy a rectangular region of a larger image into the rectangle in the specified window.

Parameters
pDestDescribes the rectangular on the display that will receive the bitmap.
pSrcThe start of the source image.
pOriginthe pOrigin of the upper, left-most corner of the full bitmap. Both pDest and pOrigin are in window coordinates, however, pOrigin may lie outside of the display.
strideThe width of the full source image in bytes.
Returns
True on success; false on failure.

Copy a rectangular region of a larger image into the rectangle in the specified window. The source image is treated as an opaque image.

Parameters
pDestDescribes the rectangular on the display that will receive the bitmap.
pSrcThe start of the source image.
pOriginthe pOrigin of the upper, left-most corner of the full bitmap. Both pDest and pOrigin are in window coordinates, however, pOrigin may lie outside of the display.
strideThe width of the full source image in bytes.
Returns
True on success; false on failure.

Implements NXWidgets::INxWindow.

Definition at line 372 of file cbgwindow.cxx.

◆ drawFilledCircle()

bool CBgWindow::drawFilledCircle ( struct nxgl_point_s *  center,
nxgl_coord_t  radius,
nxgl_mxpixel_t  color 
)
virtual

Draw a filled circle at the specified position, size, and color.

Parameters
centerThe window-relative coordinates of the circle center.
radiusThe radius of the rectangle in pixels.
colorThe color of the rectangle.

Implements NXWidgets::INxWindow.

Definition at line 334 of file cbgwindow.cxx.

◆ drawLine()

bool CBgWindow::drawLine ( FAR struct nxgl_vector_s *  vector,
nxgl_coord_t  width,
nxgl_mxpixel_t  color,
enum ELineCaps  caps 
)
virtual

Fill the specified line in the window with the specified color.

Parameters
vector- Describes the line to be drawn
width- The width of the line
color- The color to use to fill the line
caps- Draw a circular cap on the ends of the line to support better line joins
Returns
True on success; false on failure.

Implements NXWidgets::INxWindow.

Definition at line 317 of file cbgwindow.cxx.

◆ fill()

bool CBgWindow::fill ( FAR const struct nxgl_rect_s *  pRect,
nxgl_mxpixel_t  color 
)
virtual

Fill the specified rectangle in the window with the specified color.

Parameters
pRectThe location to be filled.
colorThe color to use in the fill.
Returns
True on success; false on failure.

Implements NXWidgets::INxWindow.

Definition at line 259 of file cbgwindow.cxx.

◆ fillTrapezoid()

bool CBgWindow::fillTrapezoid ( FAR const struct nxgl_rect_s *  pClip,
FAR const struct nxgl_trapezoid_s *  pTrap,
nxgl_mxpixel_t  color 
)
virtual

Fill the specified trapezoidal region in the window with the specified color.

Parameters
pClipClipping rectangle relative to window (may be null).
pTrapThe trapezoidal region to be filled.
colorThe color to use in the fill.
Returns
True on success; false on failure.

Implements NXWidgets::INxWindow.

Definition at line 296 of file cbgwindow.cxx.

◆ getPosition()

bool CBgWindow::getPosition ( FAR struct nxgl_point_s *  pPos)
virtual

Get the position of the window (as reported by the NX callback). NOTE: The background window is always positioned at {0,0}

Returns
The position.

Implements NXWidgets::INxWindow.

Definition at line 152 of file cbgwindow.cxx.

◆ getRectangle()

void CBgWindow::getRectangle ( FAR const struct nxgl_rect_s *  rect,
struct SBitmap dest 
)
virtual

Get the raw contents of graphic memory within a rectangular region. NOTE: Since raw graphic memory is returned, the returned memory content may be the memory of windows above this one and may not necessarily belong to this window unless you assure that this is the top window.

Parameters
rectThe location to be copied
dest- The describes the destination bitmap to receive the graphics data.

Implements NXWidgets::INxWindow.

Definition at line 278 of file cbgwindow.cxx.

◆ getSize()

bool CBgWindow::getSize ( FAR struct nxgl_size_s *  pSize)
virtual

Get the size of the window (as reported by the NX callback). NOTE: The size of the background window is always the entire display.

Returns
The size.

Implements NXWidgets::INxWindow.

Definition at line 168 of file cbgwindow.cxx.

◆ getWidgetControl()

CWidgetControl * CBgWindow::getWidgetControl ( void  ) const
virtual

Each implementation of INxWindow must provide a method to recover the contained CWidgetControl instance.

Returns
The contained CWidgetControl instance

Implements NXWidgets::INxWindow.

Definition at line 124 of file cbgwindow.cxx.

◆ lower()

bool CBgWindow::lower ( void  )
virtual

Lower the window to the bottom of the display. NOTE: The background window is always at the bottom of the window hierarchy.

Returns
True on success, false on any failure.

Lower the window to the bottom of the display. NOTE: The background window is always at the bottom of the window hierarchy.

Returns
Always returns false.

Implements NXWidgets::INxWindow.

Definition at line 226 of file cbgwindow.cxx.

◆ move()

bool CBgWindow::move ( FAR const struct nxgl_rect_s *  pRect,
FAR const struct nxgl_point_s *  pOffset 
)
virtual

Move a rectangular region within the window.

Parameters
pRectDescribes the rectangular region to move.
pOffsetThe offset to move the region.
Returns
True on success; false on failure.

Implements NXWidgets::INxWindow.

Definition at line 349 of file cbgwindow.cxx.

◆ open()

bool CBgWindow::open ( void  )
virtual

Creates a the new window. Window creation is separate from object instantiation so that failures can be reported.

Returns
True if the window was successfully created.

Creates a new window. Window creation is separate from object instantiation so that failures can be reported.

Returns
True if the window was successfully opened.

Implements NXWidgets::INxWindow.

Definition at line 96 of file cbgwindow.cxx.

◆ raise()

bool CBgWindow::raise ( void  )
virtual

Bring the window to the top of the display. NOTE: The background window cannot be raised.

Returns
True on success, false on any failure.

Bring the window to the top of the display. NOTE: The background window cannot be raised.

Returns
Always returns false.

Implements NXWidgets::INxWindow.

Definition at line 212 of file cbgwindow.cxx.

◆ redirectNxTerm()

void NXWidgets::CBgWindow::redirectNxTerm ( NXTERM  handle)
inlinevirtual

Each window implementation also inherits from CCallback. CCallback, by default, forwards NX keyboard input to the various widgets residing in the window. But NxTerm is a different usage model; In this case, keyboard input needs to be directed to the NxTerm character driver. This method can be used to enable (or disable) redirection of NX keyboard input from the window widgets to the NxTerm

Parameters
handle.The NXTERM handle. If non-NULL, NX keyboard input will be directed to the NxTerm driver using this handle; If NULL (the default), NX keyboard input will be directed to the widgets within the window.

Implements NXWidgets::INxWindow.

Definition at line 224 of file cbgwindow.hxx.

◆ requestPosition()

bool CBgWindow::requestPosition ( void  )
virtual

Request the position and size information of the window. The values will be returned asynchronously through the client callback method. The GetPosition() method may than be called to obtain the positional data as provided by the callback.

Returns
True on success, false on any failure.

Request the position and size information of the window. The values will be returned asynchronously through the client callback method. The GetPosition() method may than be called to obtain the positional data as provided by the callback.

Returns
Always returns true.

Implements NXWidgets::INxWindow.

Definition at line 138 of file cbgwindow.cxx.

◆ setPixel()

bool CBgWindow::setPixel ( FAR const struct nxgl_point_s *  pPos,
nxgl_mxpixel_t  color 
)
virtual

Set an individual pixel in the window with the specified color.

Parameters
pPosThe location of the pixel to be filled.
colorThe color to use in the fill.
Returns
True on success; false on failure.

Implements NXWidgets::INxWindow.

Definition at line 242 of file cbgwindow.cxx.

◆ setPosition()

bool CBgWindow::setPosition ( FAR const struct nxgl_point_s *  pPos)
virtual

Set the position and size of the window.

Parameters
pPosThe new position of the window.
Returns
True on success, false on any failure.

Set the position and size of the window.

Parameters
pPosThe new position of the window.
Returns
Always returns false.

Implements NXWidgets::INxWindow.

Definition at line 182 of file cbgwindow.cxx.

◆ setSize()

bool CBgWindow::setSize ( FAR const struct nxgl_size_s *  pSize)
virtual

Set the size of the selected window. NOTE: The size of the background window is always the entire display and cannot be changed.

Parameters
pSizeThe new size of the window.
Returns
True on success, false on any failure.

Set the size of the selected window. NOTE: The size of the background window is always the entire display and cannot be changed.

Parameters
pSizeThe new size of the window.
Returns
Always returns false.

Implements NXWidgets::INxWindow.

Definition at line 198 of file cbgwindow.cxx.

Member Data Documentation

◆ m_hNxServer

NXHANDLE NXWidgets::CBgWindow::m_hNxServer
private

Handle to the NX server.

Definition at line 87 of file cbgwindow.hxx.

◆ m_hWindow

NXWINDOW NXWidgets::CBgWindow::m_hWindow
private

Handle to the NX background window

Definition at line 88 of file cbgwindow.hxx.

◆ m_widgetControl

CWidgetControl* NXWidgets::CBgWindow::m_widgetControl
private

The controlling widget for the window

Definition at line 89 of file cbgwindow.hxx.


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