summaryrefslogtreecommitdiff
path: root/NxWidgets/libnxwidgets/include
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-05-07 22:49:27 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-05-07 22:49:27 +0000
commitf1954ba315f940c46402865763164bceb7537710 (patch)
treebdca666857e53cd34c4869880ffd4e8bd39c5d31 /NxWidgets/libnxwidgets/include
parent9bc51533db436502b50aaa0014aa272576968df2 (diff)
downloadnuttx-f1954ba315f940c46402865763164bceb7537710.tar.gz
nuttx-f1954ba315f940c46402865763164bceb7537710.tar.bz2
nuttx-f1954ba315f940c46402865763164bceb7537710.zip
Big NxWidgets simplification. Remove all hierarch logic. Widgets now exist only in a two-dimensional plane
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4712 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'NxWidgets/libnxwidgets/include')
-rw-r--r--NxWidgets/libnxwidgets/include/cnxwidget.hxx190
-rw-r--r--NxWidgets/libnxwidgets/include/crectcache.hxx222
-rw-r--r--NxWidgets/libnxwidgets/include/cwidgetcontrol.hxx8
-rw-r--r--NxWidgets/libnxwidgets/include/cwidgeteventhandler.hxx16
-rw-r--r--NxWidgets/libnxwidgets/include/cwidgeteventhandlerlist.hxx12
5 files changed, 1 insertions, 447 deletions
diff --git a/NxWidgets/libnxwidgets/include/cnxwidget.hxx b/NxWidgets/libnxwidgets/include/cnxwidget.hxx
index ab44b9d42..d29830c0a 100644
--- a/NxWidgets/libnxwidgets/include/cnxwidget.hxx
+++ b/NxWidgets/libnxwidgets/include/cnxwidget.hxx
@@ -111,7 +111,6 @@ namespace NXWidgets
class CWidgetControl;
class CGraphicsPort;
class CNxFont;
- class CRectCache;
class CWidgetEventHandlerList;
/**
@@ -206,9 +205,8 @@ namespace NXWidgets
CNxWidget *m_focusedChild; /**< Pointer to the child widget that has focus. */
TNxArray<CNxWidget*> m_children; /**< List of child widgets. */
- // Visible regions
+ // Borders
- CRectCache *m_rectCache; /**< List of the widget's visible regions. */
WidgetBorderSize m_borderSize; /**< Size of the widget borders. */
/**
@@ -238,18 +236,6 @@ namespace NXWidgets
virtual void drawBorder(CGraphicsPort* port) { }
/**
- * Checks if the supplied coordinates collide with a portion of this widget
- * that is not obscured by its siblings, but that may be obscured by
- * its children.
- *
- * @param x X coordinate of the click.
- * @param y Y coordinate of the click.
- * @return True if a collision occurred; false if not.
- */
-
- bool checkCollisionWithForegroundRects(nxgl_coord_t x, nxgl_coord_t y) const;
-
- /**
* Draw all visible regions of this widget's children.
*/
@@ -266,34 +252,6 @@ namespace NXWidgets
void closeChild(CNxWidget *widget);
/**
- * Redraws all regions of child widgets that fall within the invalidRects
- * regions.
- *
- * @param invalidRects List of invalid regions that need to be redrawn.
- * @param sender Pointer to the widget that initiated the redraw.
- */
-
- void redrawDirtyChildren(TNxArray<CRect>* invalidRects, CNxWidget *sender);
-
- /**
- * Get the index of the next visible widget higher up the z-order.
- *
- * @param startIndex The starting index.
- * @return The index of the next highest visible widget.
- */
-
- const int getHigherVisibleWidget(const int startIndex) const;
-
- /**
- * Get the index of the next visible widget lower down the z-order.
- *
- * @param startIndex The starting index.
- * @return The index of the next lowest visible widget.
- */
-
- const int getLowerVisibleWidget(const int startIndex) const;
-
- /**
* Notify this widget that it is being dragged, and set its drag point.
*
* @param x The x coordinate of the drag position relative to this widget.
@@ -749,24 +707,6 @@ namespace NXWidgets
void getRect(CRect &rect) const;
/**
- * Clips the supplied rect to the boundaries defined by this widget and
- * this widget's parents.
- *
- * @param rect Reference to a rect to populate with data.
- */
-
- void getRectClippedToHierarchy(CRect &rect) const;
-
- /**
- * Gets a pointer to the vector of all of the visible regions of this widget,
- * including any covered by children.
- *
- * @return A pointer to a vector of all visible regions.
- */
-
- TNxArray<CRect> *getForegroundRegions(void);
-
- /**
* Gets a pointer to the widget's font.
*
* @return A pointer to the widget's font.
@@ -1062,13 +1002,6 @@ namespace NXWidgets
void redraw(void);
/**
- * Erases the visible regions of the widget by redrawing the widgets
- * behind it.
- */
-
- void erase(void);
-
- /**
* Enables the widget.
*
* @return True if the widget was enabled.
@@ -1247,42 +1180,6 @@ namespace NXWidgets
nxgl_coord_t width, nxgl_coord_t height);
/**
- * Raises the widget to the top of its parent's widget stack.
- *
- * @return True if the raise was successful.
- */
-
- bool raiseToTop(void);
-
- /**
- * Lowers the widget to the bottom of its parent's widget stack.
- *
- * @return True if the lower was successful.
- */
-
- bool lowerToBottom(void);
-
- /**
- * Raises the supplied widget to the top of this widget's child stack.
- * The supplied widget pointer must be a child of this widget.
- *
- * @param widget A pointer to the child widget to raise.
- * @return True if the raise was successful.
- */
-
- bool raiseWidgetToTop(CNxWidget *widget);
-
- /**
- * Lowers the supplied widget to the bottom of this widget's child stack.
- * The supplied widget pointer must be a child of this widget.
- *
- * @param widget A pointer to the child widget to lower.
- * @return True if the lower was successful.
- */
-
- bool lowerWidgetToBottom(CNxWidget *widget);
-
- /**
* Moves the supplied child widget to the deletion queue.
* For framework use only.
*
@@ -1334,16 +1231,6 @@ namespace NXWidgets
bool checkCollision(CNxWidget *widget) const;
/**
- * Invalidate the visible region cache for all widgets below the supplied
- * widget in this widget's child stack. This will cause those widgets to
- *
- * recalculate their visible regions next time they try to draw themselves.
- * @param widget A pointer to a child widget.
- */
-
- void invalidateLowerWidgetsVisibleRectCache(CNxWidget *widget);
-
- /**
* Adds a widget to this widget's child stack. The widget is added to the
* top of the stack. Note that the widget can only be added if it is not
* already a child of another widget.
@@ -1378,61 +1265,6 @@ namespace NXWidgets
}
/**
- * Rebuild the list of this widget's visible regions
- */
-
- void cacheVisibleRects(void) const;
-
- /**
- * Mark this widget's visible region cache as invalid, and do the same
- * to its child widgets.
- */
-
- void invalidateVisibleRectCache(void);
-
- /**
- * Erase a child widget by drawing the widgets behind it.
- *
- * @param widget The child widget to erase.
- */
-
- void eraseWidget(CNxWidget *widget);
-
- /**
- * Redraw any visible regions of this widget that have become corrupted.
- *
- * @param invalidRects A list of corrupt regions.
- * @param sender A pointer to the widget that corrupted the regions.
- */
-
- void redrawDirty(TNxArray<CRect>* invalidRects, CNxWidget *sender);
-
- /**
- * Clips a rectangular region to the dimensions of this widget and its ancestors.
- *
- * @param rect The region that needs to be clipped.
- */
-
- void clipRectToHierarchy(CRect &rect) const;
-
- /**
- * Swaps the depth of the supplied child widget.
- *
- * @param widget A pointer to the child widget that needs to swap depths.
- * @return True if the swap was successful.
- */
-
- virtual bool swapWidgetDepth(CNxWidget *widget);
-
- /**
- * Swap the depth of this widget.
- *
- * @return True if the swap was successful.
- */
-
- bool swapDepth(void);
-
- /**
* Delete this widget. This should never be called in user code; widget
* deletion is handled internally.
*/
@@ -1481,15 +1313,6 @@ namespace NXWidgets
}
/**
- * Get the index of the specified child widget.
- *
- * @param widget The widget to get the index of.
- * @return The index of the widget. -1 if the widget is not found.
- */
-
- const int getWidgetIndex(const CNxWidget *widget) const;
-
- /**
* Get the child widget at the specified index.
*
* @param index Index of the child to retrieve.
@@ -1510,17 +1333,6 @@ namespace NXWidgets
}
/**
- * Get a pointer to the cache of visible rects.
- *
- * @return A pointer to the cache of visible rects.
- */
-
- inline CRectCache *getCRectCache(void) const
- {
- return m_rectCache;
- }
-
- /**
* Sets the border size. The border cannot be drawn over in the
* drawContents() method.
*
diff --git a/NxWidgets/libnxwidgets/include/crectcache.hxx b/NxWidgets/libnxwidgets/include/crectcache.hxx
deleted file mode 100644
index f38c2313b..000000000
--- a/NxWidgets/libnxwidgets/include/crectcache.hxx
+++ /dev/null
@@ -1,222 +0,0 @@
-/****************************************************************************
- * NxWidgets/libnxwidgets/include/crectcache.hxx
- *
- * Copyright (C) 2012 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name NuttX, NxWidgets, nor the names of its contributors
- * me be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************
- *
- * Portions of this package derive from Woopsi (http://woopsi.org/) and
- * portions are original efforts. It is difficult to determine at this
- * point what parts are original efforts and which parts derive from Woopsi.
- * However, in any event, the work of Antony Dzeryn will be acknowledged
- * in most NxWidget files. Thanks Antony!
- *
- * Copyright (c) 2007-2011, Antony Dzeryn
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the names "Woopsi", "Simian Zombie" nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY Antony Dzeryn ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Antony Dzeryn BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-#ifndef __INCLUDE_CRECTCACHE_HXX
-#define __INCLUDE_CRECTCACHE_HXX
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include <nuttx/nx/nxglib.h>
-
-#include "cnxwidget.hxx"
-#include "cwidgetstyle.hxx"
-#include "tnxarray.hxx"
-
-/****************************************************************************
- * Pre-Processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Implementation Classes
- ****************************************************************************/
-
-#if defined(__cplusplus)
-
-namespace NXWidgets
-{
- /**
- * Maintains a list of foreground (ie. above children) and background (with
- * child overlapped-rects removed) rectangles representing the visible portions
- * of a widget.
- */
-
- class CRectCache
- {
- private:
- TNxArray<CRect> m_foregroundRegions; /**< List of the widget's visible regions */
- TNxArray<CRect> m_backgroundRegions; /**< List of the widget's visible regions with child rects removed */
- const CNxWidget *m_widget; /**< Owning widget */
- bool m_foregroundInvalid; /**< True if the foreground cache needs refreshing */
- bool m_backgroundInvalid; /**< True if the background cache needs refreshing */
-
- /**
- * Cache the foreground regions.
- */
-
- void cacheForegroundRegions(void);
-
- /**
- * Cache the background regions.
- */
-
- void cacheBackgroundRegions(void);
-
- public:
-
- /**
- * Constructor.
- *
- * @param widget Widget that contains the rect cache.
- */
-
- CRectCache(const CNxWidget *widget);
-
- /**
- * Destructor.
- */
-
- inline ~CRectCache() { }
-
- /**
- * Rebuild the cache if it is invalid.
- */
-
- void cache(void);
-
- /**
- * Invalidates the cache.
- */
-
- inline void invalidate(void)
- {
- m_foregroundInvalid = true;
- m_backgroundInvalid = true;
- };
-
- /**
- * Return the list of background regions. These are regions that are not overlapped by
- * child widgets.
- *
- * @return The list of background regions.
- */
-
- inline TNxArray<CRect> *getBackgroundRegions(void)
- {
- return &m_backgroundRegions;
- }
-
- /**
- * Return the list of foreground regions. These are regions that represent the entire
- * visible surface of the widget - that is, any regions not overlapped by ancestors or
- * sublings of the widget - including any regions that are actually overlapped by
- * child widgets.
- *
- * @return The list of foreground regions.
- */
-
- inline TNxArray<CRect> *getForegroundRegions(void)
- {
- return &m_foregroundRegions;
- }
-
- /**
- * Works out which rectangles in the invalidRects list overlap this
- * widget, then cuts the rectangles into smaller pieces. The overlapping
- * pieces are pushed into validRects, and the non-overlapping pieces are
- * pushed back into the invalidRects vector.
- *
- * @param invalidRects A vector of regions that need to be tested
- * for collisions against this widget; they represent regions that need
- * to be redrawn.
- * @param validRects A vector of regions that represents areas of the
- * display that do not need to be redrawn.
- * @param sender Pointer to the widget that initiated the split.
- */
-
- void splitRectangles(TNxArray<CRect> *invalidRects,
- TNxArray<CRect> *validRects,
- FAR const CNxWidget *sender) const;
-
- /**
- * Move any rectangles from the visibleRects list that overlap this widget
- * into the invisibleRects list. Used during visible region calculations.
- *
- * @param visibleRects A vector of regions that are not overlapped.
- * @param invisibleRects A vector of regions that are overlapped.
- * @param widget The widget that requested the lists.
- * @see splitRectangles()
- */
-
- void removeOverlappedRects(TNxArray<CRect> *visibleRects,
- TNxArray<CRect> *invisibleRects,
- FAR const CNxWidget* widget) const;
- };
-}
-
-#endif // __cplusplus
-
-#endif // __INCLUDE_CRECTCACHE_HXX
-
diff --git a/NxWidgets/libnxwidgets/include/cwidgetcontrol.hxx b/NxWidgets/libnxwidgets/include/cwidgetcontrol.hxx
index db7cb06b6..aedec610e 100644
--- a/NxWidgets/libnxwidgets/include/cwidgetcontrol.hxx
+++ b/NxWidgets/libnxwidgets/include/cwidgetcontrol.hxx
@@ -392,14 +392,6 @@ namespace NXWidgets
bool swapWidgetDepth(CNxWidget *widget);
/**
- * Redraws any dirty regions within the supplied region.
- *
- * @param rect The region to redraw
- */
-
- void eraseRect(CRect rect);
-
- /**
* Add another widget to be managed by this control instance
*
* @param widget The widget to be controlled.
diff --git a/NxWidgets/libnxwidgets/include/cwidgeteventhandler.hxx b/NxWidgets/libnxwidgets/include/cwidgeteventhandler.hxx
index d9f39ddf9..d176d8822 100644
--- a/NxWidgets/libnxwidgets/include/cwidgeteventhandler.hxx
+++ b/NxWidgets/libnxwidgets/include/cwidgeteventhandler.hxx
@@ -276,22 +276,6 @@ namespace NXWidgets
*/
virtual void handleActionEvent(const CWidgetEventArgs &e) { }
-
- /**
- * Handle a widget move forward event.
- *
- * @param e The event data.
- */
-
- virtual void handleMoveForwardEvent(const CWidgetEventArgs &e) { }
-
- /**
- * Handle a widget move backward event.
- *
- * @param e The event data.
- */
-
- virtual void handleMoveBackwardEvent(const CWidgetEventArgs &e) { }
};
}
diff --git a/NxWidgets/libnxwidgets/include/cwidgeteventhandlerlist.hxx b/NxWidgets/libnxwidgets/include/cwidgeteventhandlerlist.hxx
index ae9e17847..8c9ef6738 100644
--- a/NxWidgets/libnxwidgets/include/cwidgeteventhandlerlist.hxx
+++ b/NxWidgets/libnxwidgets/include/cwidgeteventhandlerlist.hxx
@@ -248,18 +248,6 @@ namespace NXWidgets
void raiseDropEvent(nxgl_coord_t x, nxgl_coord_t y);
/**
- * Raise a move forward event to the event handler.
- */
-
- void raiseMoveForwardEvent(void);
-
- /**
- * Raise a move backward event to the event handler.
- */
-
- void raiseMoveBackwardEvent(void);
-
- /**
* Raise a key press event to the event handler.
*
* @param key The character code of the key that caused the event.