71 #ifndef __INCLUDE_CNXWIDGET_HXX 72 #define __INCLUDE_CNXWIDGET_HXX 78 #include <nuttx/config.h> 84 #include <nuttx/nx/nxglib.h> 103 #if defined(__cplusplus) 111 class CWidgetControl;
114 class CWidgetEventHandlerList;
282 virtual inline void onClick(nxgl_coord_t x, nxgl_coord_t y) { }
317 virtual inline void onRelease(nxgl_coord_t x, nxgl_coord_t y) { }
341 virtual inline void onDrag(nxgl_coord_t x, nxgl_coord_t y,
342 nxgl_coord_t vX, nxgl_coord_t vY) { }
401 virtual inline void onResize(nxgl_coord_t width, nxgl_coord_t height) { }
421 nxgl_coord_t x, nxgl_coord_t y,
422 nxgl_coord_t width, nxgl_coord_t height,
438 nxgl_coord_t
getX(
void)
const;
446 nxgl_coord_t
getY(
void)
const;
604 inline void getSize(
struct nxgl_size_s &size)
const 616 inline void getPos(
struct nxgl_point_s &pos)
const 618 pos.x = m_rect.
getX();
619 pos.y = m_rect.
getY();
630 return CRect(m_rect);
640 borderSize.
top = m_borderSize.
top;
641 borderSize.
left = m_borderSize.
left;
878 return m_widgetEventHandlers->
size();
889 raises ? m_widgetEventHandlers->
enable() : m_widgetEventHandlers->
disable();
900 return m_widgetEventHandlers->
isEnabled();
1081 virtual bool click(nxgl_coord_t x, nxgl_coord_t y);
1119 bool release(nxgl_coord_t x, nxgl_coord_t y);
1131 bool drag(nxgl_coord_t x, nxgl_coord_t y,
1132 nxgl_coord_t vX, nxgl_coord_t vY);
1177 bool moveTo(nxgl_coord_t x, nxgl_coord_t y);
1187 bool resize(nxgl_coord_t width, nxgl_coord_t height);
1202 nxgl_coord_t width, nxgl_coord_t height);
1231 virtual bool checkCollision(nxgl_coord_t x, nxgl_coord_t y)
const;
1244 nxgl_coord_t width, nxgl_coord_t height)
const;
1339 return m_children.
size();
1353 #endif // __cplusplus 1355 #endif // __INCLUDE_CNXWIDGET_HXX virtual void onClick(nxgl_coord_t x, nxgl_coord_t y)
CRect getBoundingBox(void)
nxgl_mxpixel_t selectedBackground
WidgetBorderSize m_borderSize
nxgl_coord_t getRelativeY(void) const
bool isClicked(void) const
bool isBorderless(void) const
nxgl_mxpixel_t getShadowEdgeColor(void) const
nxgl_mxpixel_t enabledText
nxgl_coord_t getHeight(void) const
virtual bool isDoubleClick(nxgl_coord_t x, nxgl_coord_t y)
virtual void onReleaseOutside(nxgl_coord_t x, nxgl_coord_t y)
bool moveTo(nxgl_coord_t x, nxgl_coord_t y)
nxgl_coord_t m_grabPointY
nxgl_mxpixel_t disabledText
int nWidgetEventHandlers(void) const
const CWidgetStyle * getWidgetStyle() const
virtual void getPreferredDimensions(CRect &rect) const
bool isPermeable(void) const
void disableDrawing(void)
void getRect(CRect &rect) const
void setRaisesEvents(bool raises)
bool cursorControl(ECursorControl control)
nxgl_coord_t getWidth(void) const
virtual void drawBorder(CGraphicsPort *port)
virtual void drawContents(CGraphicsPort *port)
nxgl_coord_t getX(void) const
int getChildCount(void) const
void setShineEdgeColor(nxgl_mxpixel_t color)
bool raisesEvents(void) const
void setSelectedBackgroundColor(nxgl_mxpixel_t color)
void setEnabledTextColor(nxgl_mxpixel_t color)
nxgl_mxpixel_t getBackgroundColor(void) const
bool isEnabled(void) const
bool isBeingDragged(void) const
nxgl_mxpixel_t shadowEdge
nxgl_coord_t m_grabPointX
CNxWidget(const CNxWidget &widget)
const CNxWidget * getChild(int index) const
bool drag(nxgl_coord_t x, nxgl_coord_t y, nxgl_coord_t vX, nxgl_coord_t vY)
void removeWidgetEventHandler(CWidgetEventHandler *eventHandler)
bool isEnabled(void) const
void addWidgetEventHandler(CWidgetEventHandler *eventHandler)
bool resize(nxgl_coord_t width, nxgl_coord_t height)
virtual void onDisable(void)
void setDisabledTextColor(nxgl_mxpixel_t color)
void stopDragging(nxgl_coord_t x, nxgl_coord_t y)
CWidgetControl * m_widgetControl
nxgl_mxpixel_t getEnabledTextColor(void) const
nxgl_coord_t getHeight(void) const
void useWidgetStyle(const CWidgetStyle *style)
bool isDeleted(void) const
void setSelectedTextColor(nxgl_mxpixel_t color)
virtual bool click(nxgl_coord_t x, nxgl_coord_t y)
void getClientRect(CRect &rect) const
bool changeDimensions(nxgl_coord_t x, nxgl_coord_t y, nxgl_coord_t width, nxgl_coord_t height)
bool isDoubleClickable(void) const
void getPos(struct nxgl_point_s &pos) const
virtual void onFocus(void)
void addWidgetEventHandler(CWidgetEventHandler *eventHandler)
virtual void onDrag(nxgl_coord_t x, nxgl_coord_t y, nxgl_coord_t vX, nxgl_coord_t vY)
nxgl_mxpixel_t getSelectedBackgroundColor(void) const
void setPermeable(bool permeable)
bool doubleClick(nxgl_coord_t x, nxgl_coord_t y)
CNxWidget * getParent(void) const
virtual void onRelease(nxgl_coord_t x, nxgl_coord_t y)
nxgl_coord_t m_lastClickY
virtual void onDragStart(void)
virtual void setFont(CNxFont *font)
CNxWidget * getFocusedWidget(void)
CNxFont * getFont(void) const
void setParent(CNxWidget *parent)
virtual bool checkCollision(nxgl_coord_t x, nxgl_coord_t y) const
nxgl_mxpixel_t getShineEdgeColor(void) const
void closeChild(CNxWidget *widget)
virtual void onEnable(void)
nxgl_coord_t m_lastClickX
void getSize(struct nxgl_size_s &size) const
bool removeChild(CNxWidget *widget)
void setShadowEdgeColor(nxgl_mxpixel_t color)
virtual void onPreRelease(nxgl_coord_t x, nxgl_coord_t y)
CWidgetEventHandlerList * m_widgetEventHandlers
CNxWidget * m_focusedChild
void insertWidget(CNxWidget *widget)
nxgl_mxpixel_t background
virtual void onResize(nxgl_coord_t width, nxgl_coord_t height)
void addWidget(CNxWidget *widget)
nxgl_mxpixel_t getHighlightColor(void) const
bool keyPress(nxwidget_char_t key)
void setDraggable(bool isDraggable)
nxgl_coord_t getRelativeX(void) const
nxgl_coord_t getY(void) const
nxgl_coord_t getWidth(void) const
void getBorderSize(WidgetBorderSize &borderSize)
nxgl_coord_t getX(void) const
void removeWidgetEventHandler(CWidgetEventHandler *eventHandler)
nxgl_coord_t getY(void) const
nxgl_mxpixel_t getDisabledTextColor(void) const
void setDoubleClickable(bool doubleClickable)
virtual void onBlur(void)
bool release(nxgl_coord_t x, nxgl_coord_t y)
const int size(void) const
nxgl_mxpixel_t selectedText
void setFocusedWidget(CNxWidget *widget)
virtual void onDragStop(void)
TNxArray< CNxWidget * > m_children
void moveChildToDeleteQueue(CNxWidget *widget)
bool isDrawingEnabled(void) const
void startDragging(nxgl_coord_t x, nxgl_coord_t y)
void setBorderSize(const WidgetBorderSize &borderSize)
void setHighlightColor(nxgl_mxpixel_t color)
struct timespec m_lastClickTime
nxgl_mxpixel_t getSelectedTextColor(void) const
void setBorderless(bool isBorderless)
void setBackgroundColor(nxgl_mxpixel_t color)
bool isHidden(void) const
virtual void onDoubleClick(nxgl_coord_t x, nxgl_coord_t y)
bool hasFocus(void) const