diff --git a/ChangeLog.txt b/ChangeLog.txt index 8dd65d78b..0cb95cc13 100755 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -66,3 +66,8 @@ never restart the Calibration window. * NxWM::CTaskbar: On a failure to start an application, the application icon CImage was being deleted twice. +* NXWidgets::CImage: Now handles mouse click callbacks. CImage is now really + a button. Probably should separate basic imaging functionality as CImage + and create a new CImageButton. +* NxWM::CStartWindow: Now ignores any close application button presses + (You can't close the start window). \ No newline at end of file diff --git a/libnxwidgets/include/cimage.hxx b/libnxwidgets/include/cimage.hxx index a1c282393..0b7be14f2 100644 --- a/libnxwidgets/include/cimage.hxx +++ b/libnxwidgets/include/cimage.hxx @@ -133,6 +133,33 @@ namespace NXWidgets virtual void drawBorder(CGraphicsPort *port); + /** + * Redraws the button. + * + * @param x The x coordinate of the click. + * @param y The y coordinate of the click. + */ + + virtual void onClick(nxgl_coord_t x, nxgl_coord_t y); + + /** + * Raises an action event and redraws the button. + * + * @param x The x coordinate of the mouse. + * @param y The y coordinate of the mouse. + */ + + virtual void onRelease(nxgl_coord_t x, nxgl_coord_t y); + + /** + * Redraws the button. + * + * @param x The x coordinate of the mouse. + * @param y The y coordinate of the mouse. + */ + + virtual void onReleaseOutside(nxgl_coord_t x, nxgl_coord_t y); + /** * Copy constructor is protected to prevent usage. */ @@ -199,10 +226,7 @@ namespace NXWidgets * @param highlightOn True(1), the image will be highlighted */ - inline void highlight(bool highlightOn) - { - m_highlighted = highlightOn; - } + void highlight(bool highlightOn); }; } diff --git a/libnxwidgets/src/cimage.cxx b/libnxwidgets/src/cimage.cxx index 0ca6f571e..7d9e0ee4e 100644 --- a/libnxwidgets/src/cimage.cxx +++ b/libnxwidgets/src/cimage.cxx @@ -357,6 +357,58 @@ void CImage::drawBorder(CGraphicsPort *port) port->drawBevelledRect(getX(), getY(), getWidth(), getHeight(), color1, color2); } +/** + * Control the highlight state. + * + * @param highlightOn True(1), the image will be highlighted + */ + +void CImage::highlight(bool highlightOn) +{ + if (m_highlighted != highlightOn) + { + m_highlighted = highlightOn; + redraw(); + } +} + +/** + * Redraws the button. + * + * @param x The x coordinate of the click. + * @param y The y coordinate of the click. + */ + +void CImage::onClick(nxgl_coord_t x, nxgl_coord_t y) +{ + redraw(); +} + +/** + * Raises an action event and redraws the button. + * + * @param x The x coordinate of the mouse. + * @param y The y coordinate of the mouse. + */ + +void CImage::onRelease(nxgl_coord_t x, nxgl_coord_t y) +{ + m_widgetEventHandlers->raiseActionEvent(); + redraw(); +} + +/** + * Redraws the button. + * + * @param x The x coordinate of the mouse. + * @param y The y coordinate of the mouse. + */ + +void CImage::onReleaseOutside(nxgl_coord_t x, nxgl_coord_t y) +{ + redraw(); +} + /** * Set the horizontal position of the bitmap. Zero is the left edge * of the bitmap and values >0 will move the bit map to the right. diff --git a/nxwm/include/cstartwindow.hxx b/nxwm/include/cstartwindow.hxx index 5e4fa7564..a04a4f1a5 100644 --- a/nxwm/include/cstartwindow.hxx +++ b/nxwm/include/cstartwindow.hxx @@ -92,7 +92,7 @@ namespace NxWM void minimize(void); /** - * Called when the window minimize close is pressed. + * Called when the window close button is pressed. */ void close(void); diff --git a/nxwm/src/cstartwindow.cxx b/nxwm/src/cstartwindow.cxx index 8da71b2b5..f907f6718 100644 --- a/nxwm/src/cstartwindow.cxx +++ b/nxwm/src/cstartwindow.cxx @@ -356,7 +356,7 @@ void CStartWindow::minimize(void) void CStartWindow::close(void) { - m_taskbar->stopApplication(static_cast(this)); + // Do nothing... you can't close the start window!!! } /**