WoopsiUI::Gadget Class Reference

#include <gadget.h>

Inheritance diagram for WoopsiUI::Gadget:
WoopsiUI::AnimButton WoopsiUI::BitmapButton WoopsiUI::Calendar WoopsiUI::ContextMenu WoopsiUI::FileListBox WoopsiUI::Gradient WoopsiUI::Label WoopsiUI::ProgressBar WoopsiUI::RadioButtonGroup WoopsiUI::Screen WoopsiUI::ScrollbarHorizontal WoopsiUI::ScrollbarPanel WoopsiUI::ScrollbarVertical WoopsiUI::ScrollingListBox WoopsiUI::ScrollingPanel WoopsiUI::ScrollingTextBox WoopsiUI::SliderHorizontal WoopsiUI::SliderHorizontalGrip WoopsiUI::SliderVertical WoopsiUI::SliderVerticalGrip WoopsiUI::SuperBitmap WoopsiUI::Window WoopsiUI::Woopsi WoopsiUI::WoopsiKeyboard WoopsiUI::WoopsiTimer

List of all members.

Classes

struct  Flags
struct  GadgetBorderSize
struct  NameValuePair

Public Types

enum  CloseType { CLOSE_TYPE_CLOSE = 0, CLOSE_TYPE_HIDE = 1, CLOSE_TYPE_SHELVE = 2 }
enum  GadgetFlagType {
  GADGET_BORDERLESS = 0x0001, GADGET_DRAGGABLE = 0x0002, GADGET_PERMEABLE = 0x0004, GADGET_DOUBLE_CLICKABLE = 0x0008,
  GADGET_NO_RAISE_EVENTS = 0x0010, GADGET_DECORATION = 0x0020
}

Public Member Functions

 Gadget (s16 x, s16 y, u16 width, u16 height, u32 flags, GadgetStyle *style=NULL)
const s16 getX () const
const s16 getY () const
const u32 getRefcon () const
const CloseType getCloseType ()
const bool hasFocus () const
const bool isDeleted () const
const bool isDrawingEnabled () const
const bool isHidden () const
const bool isEnabled () const
const bool isDecoration () const
const bool isPermeable () const
const bool isDoubleClickable () const
const bool isBorderless () const
const bool isClicked () const
const bool isBeingDragged () const
const bool isShelved () const
const bool isModal () const
const bool canReceiveFocus () const
u16 getWidth () const
u16 getHeight () const
GadgetgetParent () const
GadgetgetFocusedGadget ()
virtual const u8 getPhysicalScreenNumber () const
const bool raisesEvents () const
virtual void getPreferredDimensions (Rect &rect) const
void getClientRect (Rect &rect) const
void getRectClippedToHierarchy (Rect &rect) const
GraphicsPortnewGraphicsPort (bool isForeground)
GraphicsPortnewGraphicsPort (Rect clipRect)
WoopsiArray< Rect > * getForegroundRegions ()
FontBasegetFont () const
FontBasegetGlyphFont () const
const u16 getBackColour () const
const u16 getShineColour () const
const u16 getHighlightColour () const
const u16 getShadowColour () const
const u16 getFillColour () const
const u16 getDarkColour () const
u32 setRefcon (u32 refcon)
void setBorderless (bool isBorderless)
void setDraggable (const bool isDraggable)
void setPermeable (const bool isPermeable)
void setDoubleClickable (const bool isDoubleClickable)
void addGadgetEventHandler (GadgetEventHandler *eventHandler)
void removeGadgetEventHandler (GadgetEventHandler *eventHandler)
void setRaisesEvents (const bool raisesEvents)
void disableDrawing ()
void enableDrawing ()
void setBackColour (const u16 colour)
void setShineColour (const u16 colour)
void setHighlightColour (const u16 colour)
void setShadowColour (const u16 colour)
void setFillColour (const u16 colour)
void setDarkColour (const u16 colour)
void setCloseType (const CloseType closeType)
virtual void setFont (FontBase *font)
virtual void setGlyphFont (FontBase *font)
void redraw ()
void erase ()
bool enable ()
bool disable ()
void close ()
bool shelve ()
bool unshelve ()
bool show ()
bool hide ()
bool click (s16 x, s16 y)
virtual bool isDoubleClick (s16 x, s16 y)
bool doubleClick (s16 x, s16 y)
bool shiftClick (s16 x, s16 y)
bool release (s16 x, s16 y)
bool drag (s16 x, s16 y, s16 vX, s16 vY)
bool keyPress (KeyCode keyCode)
bool keyRepeat (KeyCode keyCode)
bool keyRelease (KeyCode keyCode)
void lidClose ()
void lidOpen ()
bool focus ()
bool blur ()
bool moveTo (s16 x, s16 y)
bool resize (u16 width, u16 height)
bool changeDimensions (s16 x, s16 y, u16 width, u16 height)
bool raiseToTop ()
bool lowerToBottom ()
bool raiseGadgetToTop (Gadget *gadget)
bool lowerGadgetToBottom (Gadget *gadget)
void moveChildToDeleteQueue (Gadget *gadget)
bool moveChildToShelvedList (Gadget *gadget)
bool moveShelvedToChildList (Gadget *gadget)
void setFocusedGadget (Gadget *gadget)
bool checkCollision (s16 x, s16 y) const
bool checkCollision (s16 x, s16 y, u16 width, u16 height) const
bool checkCollision (Gadget *gadget) const
void invalidateLowerGadgetsVisibleRectCache (Gadget *gadget)
void addGadget (Gadget *gadget)
void insertGadget (Gadget *gadget)
void setParent (Gadget *parent)
void cacheVisibleRects () const
void invalidateVisibleRectCache ()
void eraseGadget (Gadget *gadget)
void redrawDirty (WoopsiArray< Rect > *invalidRects, Gadget *sender)
void clipRectToHierarchy (Rect &rect) const
virtual bool swapGadgetDepth (Gadget *gadget)
bool swapDepth ()
void destroy ()
bool remove ()
bool removeChild (Gadget *gadget)
void addContextMenuItem (const WoopsiString &name, u32 value)
void showContextMenu (s16 x, s16 y)
virtual bool handleContextMenuSelection (const ListDataItem *item)
void goModal ()
void stopModal ()
const s32 getGadgetIndex (const Gadget *gadget) const
const GadgetgetChild (u32 index) const
const s32 getChildCount () const
const s32 getDecorationCount () const
RectCachegetRectCache () const
void setBorderSize (const GadgetBorderSize &borderSize)

Protected Member Functions

virtual ~Gadget ()
virtual void drawContents (GraphicsPort *port)
virtual void drawBorder (GraphicsPort *port)
bool checkCollisionWithForegroundRects (s16 x, s16 y) const
const s16 calculatePhysicalScreenY (s16 y) const
const u8 calculatePhysicalScreenNumber (s16 y) const
void drawChildren ()
void closeChild (Gadget *gadget)
void shelveChild (Gadget *gadget)
void redrawDirtyChildren (WoopsiArray< Rect > *invalidRects, Gadget *sender)
GraphicsPortnewInternalGraphicsPort (Rect clipRect)
const s32 getHigherVisibleGadget (const s32 startIndex) const
const s32 getLowerVisibleGadget (const s32 startIndex) const
void startDragging (s16 x, s16 y)
void stopDragging (s16 x, s16 y)
 Gadget (const Gadget &gadget)
virtual void onClick (s16 x, s16 y)
virtual void onDoubleClick (s16 x, s16 y)
virtual void onShiftClick (s16 x, s16 y)
virtual void onRelease (s16 x, s16 y)
virtual void onReleaseOutside (s16 x, s16 y)
virtual void onDrag (s16 x, s16 y, s16 vX, s16 vY)
virtual void onDragStart ()
virtual void onDragStop ()
virtual void onKeyPress (KeyCode keyCode)
virtual void onKeyRelease (KeyCode keyCode)
virtual void onKeyRepeat (KeyCode keyCode)
virtual void onFocus ()
virtual void onBlur ()
virtual void onLidOpen ()
virtual void onLidClose ()
virtual void onEnable ()
virtual void onDisable ()
virtual void onResize (u16 width, u16 height)

Protected Attributes

s16 _x
s16 _y
u16 _width
u16 _height
u32 _refcon
s16 _grabPointX
s16 _grabPointY
s16 _newX
s16 _newY
GadgetStyle _style
Flags _flags
GadgetEventHandlerList_gadgetEventHandlers
u32 _lastClickTime
s16 _lastClickX
s16 _lastClickY
s16 _doubleClickBounds
Gadget_parent
Gadget_focusedGadget
WoopsiArray< Gadget * > _gadgets
WoopsiArray< Gadget * > _shelvedGadgets
u8 _decorationCount
RectCache_rectCache
CloseType _closeType
GadgetBorderSize _borderSize
WoopsiArray< NameValuePair_contextMenuItems

Detailed Description

Class providing all the basic functionality of a Woopsi gadget. All Woopsi gadgets must inherit from this class.


Member Enumeration Documentation

Enum describing the way other gadgets should behave when they try to close this gadget.

Enumerator:
CLOSE_TYPE_CLOSE 

Gadgets should call the close() method

CLOSE_TYPE_HIDE 

Gadgets should call the hide() method

CLOSE_TYPE_SHELVE 

Gadgets should call the shelve() method

Enum listing flags that can be set in the constructor's "flags" parameter.

Enumerator:
GADGET_BORDERLESS 

Gadget has no border

GADGET_DRAGGABLE 

Gadget can be dragged by the user

GADGET_PERMEABLE 

Gadget's children can exceed this gadget's edges

GADGET_DOUBLE_CLICKABLE 

Gadget can be double-clicked

GADGET_NO_RAISE_EVENTS 

Gadget does not raise events

GADGET_DECORATION 

Gadget is a decoration


Constructor & Destructor Documentation

WoopsiUI::Gadget::Gadget ( s16  x,
s16  y,
u16  width,
u16  height,
u32  flags,
GadgetStyle style = NULL 
)

Constructor.

Parameters:
x The x co-ordinate of the gadget.
y The y co-ordinate of the gadget.
width The width of the gadget.
height The height of the gadget.
flags Bitmask specifying some set-up values for the gadget.
style The style that the gadget should use. If this is not specified, the gadget will use the values stored in the global defaultGadgetStyle object. The gadget will copy the properties of the style into its own internal style object. data. If no object is specified the gadget will use the default style.
See also:
GadgetFlagType.
virtual WoopsiUI::Gadget::~Gadget (  )  [protected, virtual]

Destructor.

WoopsiUI::Gadget::Gadget ( const Gadget gadget  )  [inline, protected]

Copy constructor is protected to prevent usage.


Member Function Documentation

void WoopsiUI::Gadget::addContextMenuItem ( const WoopsiString name,
u32  value 
)

Add a context menu item definition to the gadget.

Parameters:
name The name of the menu item.
value The value of the menu item.
void WoopsiUI::Gadget::addGadget ( Gadget gadget  ) 

Adds a gadget to this gadget's child stack. The gadget is added to the top of the stack. Note that the gadget can only be added if it is not already a child of another gadget.

Parameters:
gadget A pointer to the gadget to add to the child list.
See also:
insertGadget()
void WoopsiUI::Gadget::addGadgetEventHandler ( GadgetEventHandler eventHandler  )  [inline]

Adds a gadget event handler. The event handler will receive all events raised by this gadget.

Parameters:
eventHandler A pointer to the event handler.
bool WoopsiUI::Gadget::blur (  ) 

Remove focus from the gadget.

Returns:
True if the gadget lost focus correctly.
void WoopsiUI::Gadget::cacheVisibleRects (  )  const

Rebuild the list of this gadget's visible regions

const u8 WoopsiUI::Gadget::calculatePhysicalScreenNumber ( s16  y  )  const [protected]

Get the current physical display number for the supplied y co-ordinate. Should be used in conjunction with calculatePhysicalScreenY to convert to a y co-ordinate that can be displayed.

Parameters:
y The y co-ordinate to check.
Returns:
0 if the co-ordinate falls within the bottom screen; 1 if it falls within the top screen.
See also:
calculatePhysicalScreenY
const s16 WoopsiUI::Gadget::calculatePhysicalScreenY ( s16  y  )  const [protected]

Get the current physical display co-ordinate for the supplied y co-ordinate. Woopsi treats the two displays as two viewports on the same logical space. The lower half of the range of y co-ordinates is displayed on the bottom screen, whilst the upper half of the range of y co-ordinates is displayed on the top screen. This function converts back into a value that can be displayed on one of the screens. Should be used in conjunction with calculatePhysicalScreenNumber to work out which screen to draw on.

Parameters:
y The y co-ordinate to check.
Returns:
falls within the top screen.
See also:
calculatePhysicalScreenNumber()
const bool WoopsiUI::Gadget::canReceiveFocus (  )  const

Check if the gadget can receive focus or not.

Returns:
True if the gadget can receive focus.
bool WoopsiUI::Gadget::changeDimensions ( s16  x,
s16  y,
u16  width,
u16  height 
)

Resize and move the gadget in one operation. Only performs one redraw so it is faster than calling the two separate functions.

Parameters:
x The new x co-ordinate.
y The new y co-ordinate.
width The new width.
height The new height.
Returns:
True if the gadget was adjusted successfully.
bool WoopsiUI::Gadget::checkCollision ( Gadget gadget  )  const

Checks if the supplied gadget collides with this gadget.

Parameters:
gadget A pointer to another gadget to check for collisions with.
Returns:
True if a collision occurred.
bool WoopsiUI::Gadget::checkCollision ( s16  x,
s16  y,
u16  width,
u16  height 
) const

Checks if the supplied rectangle definition collides with this gadget.

Parameters:
x The x co-ordinate of the rectangle to check.
y The y co-ordinate of the rectangle to check.
width The width of the rectangle to check.
height The height of the rectangle to check.
Returns:
True if a collision occurred.
bool WoopsiUI::Gadget::checkCollision ( s16  x,
s16  y 
) const

Checks if the supplied co-ordinates collide with this gadget.

Parameters:
x The x co-ordinate to check.
y The y co-ordinate to check.
Returns:
True if a collision occurred.
bool WoopsiUI::Gadget::checkCollisionWithForegroundRects ( s16  x,
s16  y 
) const [protected]

Checks if the supplied co-ordinates collide with a portion of this gadget that is not obscured by its siblings, but that may be obscured by its children.

Parameters:
x X co-ordinate of the click.
y Y co-ordinate of the click.
Returns:
True if a collision occurred; false if not.
bool WoopsiUI::Gadget::click ( s16  x,
s16  y 
)

Click this gadget at the supplied co-ordinates. This should only be overridden in subclasses if the default click behaviour needs to be changed. If the subclassed gadget should just respond to a standard click, the onClick() method should be overridden instead.

Parameters:
x X co-ordinate of the click.
y Y co-ordinate of the click.
Returns:
True if the click was successful.
void WoopsiUI::Gadget::clipRectToHierarchy ( Rect rect  )  const

Clips a rectangular region to the dimensions of this gadget and its ancestors.

Parameters:
rect The region that needs to be clipped.
void WoopsiUI::Gadget::close (  ) 

Erases the gadget, marks it as deleted, and moves it to Woopsi's deletion queue. Gadgets are automatically deleted by the framework and should not be deleted externally.

void WoopsiUI::Gadget::closeChild ( Gadget gadget  )  [protected]

Erase and remove the supplied child gadget from this gadget and send it to the deletion queue.

Parameters:
gadget The gadget to close.
See also:
close().
void WoopsiUI::Gadget::destroy (  )  [inline]

Delete this gadget. This should never be called in user code; gadget deletion is handled by Woopsi.

bool WoopsiUI::Gadget::disable (  ) 

Disabled the gadget.

Returns:
True if the gadget was disabled.
void WoopsiUI::Gadget::disableDrawing (  )  [inline]

Disabled drawing of this gadget. Gadgets hidden using this method will still be processed.

bool WoopsiUI::Gadget::doubleClick ( s16  x,
s16  y 
)

Double-click this gadget at the supplied co-ordinates. This should only be overridden in subclasses if the default double-click behaviour needs to be changed. If the subclassed gadget should just respond to a standard double-click, the onDoubleClick() method should be overridden instead.

Parameters:
x X co-ordinate of the click.
y Y co-ordinate of the click.
Returns:
True if the click was successful.
bool WoopsiUI::Gadget::drag ( s16  x,
s16  y,
s16  vX,
s16  vY 
)

Drag the gadget to the supplied co-ordinates.

Parameters:
x The x co-ordinate of the stylus.
y The y co-ordinate of the stylus.
vX The horizontal distance that the stylus was dragged.
vY The vertical distance that the stylus was dragged.
Returns:
True if the drag was successful.
virtual void WoopsiUI::Gadget::drawBorder ( GraphicsPort port  )  [inline, protected, virtual]
void WoopsiUI::Gadget::drawChildren (  )  [protected]

Draw all visible regions of this gadget's children.

virtual void WoopsiUI::Gadget::drawContents ( GraphicsPort port  )  [inline, protected, virtual]
bool WoopsiUI::Gadget::enable (  ) 

Enables the gadget.

Returns:
True if the gadget was enabled.
void WoopsiUI::Gadget::enableDrawing (  )  [inline]

Enables drawing of this gadget.

void WoopsiUI::Gadget::erase (  ) 

Erases the visible regions of the gadget by redrawing the gadgets behind it.

void WoopsiUI::Gadget::eraseGadget ( Gadget gadget  ) 

Erase a child gadget by drawing the gadgets behind it.

Parameters:
gadget The child gadget to erase.
bool WoopsiUI::Gadget::focus (  ) 

Give the gadget focus.

Returns:
True if the gadget received focus correctly.
const u16 WoopsiUI::Gadget::getBackColour (  )  const [inline]

Gets the colour used as the background fill.

Returns:
Background fill colour.
const Gadget* WoopsiUI::Gadget::getChild ( u32  index  )  const

Get the child gadget at the specified index.

Parameters:
index Index of the child to retrieve.
Returns:
Pointer to the child at the specified index.
const s32 WoopsiUI::Gadget::getChildCount (  )  const [inline]

Get the quantity of child gadgets.

Returns:
The number of child gadgets belonging to this gadget.
void WoopsiUI::Gadget::getClientRect ( Rect rect  )  const

Insert the properties of the space within this gadget that is available for children into the rect passed in as a parameter. All co-ordinates are relative to this gadget.

Parameters:
rect Reference to a rect to populate with data.
const CloseType WoopsiUI::Gadget::getCloseType (  )  [inline]

Get the type of close routine that should be called by other gadgets interacting with this gadget.

Returns:
The close type of this gadget.
const u16 WoopsiUI::Gadget::getDarkColour (  )  const [inline]

Gets the colour used as the fill in scrollbar gutters.

Returns:
Dark colour.
const s32 WoopsiUI::Gadget::getDecorationCount (  )  const [inline]

Get the quantity of decoration gadgets.

Returns:
The number of decoration gadgets belonging to this gadget.
const u16 WoopsiUI::Gadget::getFillColour (  )  const [inline]

Gets the colour used as the fill in unfocused window borders.

Returns:
Fill colour.
Gadget* WoopsiUI::Gadget::getFocusedGadget (  )  [inline]

Get a pointer to this gadget's focused child.

Returns:
This gadget's focused child.
FontBase* WoopsiUI::Gadget::getFont (  )  const

Gets a pointer to the gadget's font.

Returns:
A pointer to the gadget's font.
WoopsiArray<Rect>* WoopsiUI::Gadget::getForegroundRegions (  ) 

Gets a pointer to the vector of all of the visible regions of this gadget, including any covered by children.

Returns:
A pointer to a vector of all visible regions.
const s32 WoopsiUI::Gadget::getGadgetIndex ( const Gadget gadget  )  const

Get the index of the specified child gadget.

Parameters:
gadget The gadget to get the index of.
Returns:
The index of the gadget. -1 if the gadget is not found.
FontBase* WoopsiUI::Gadget::getGlyphFont (  )  const

Gets a pointer to the gadget's glyph font.

Returns:
A pointer to the gadget's glyph font.
u16 WoopsiUI::Gadget::getHeight (  )  const [inline]

Get the height of the gadget.

Returns:
The gadget height.
const s32 WoopsiUI::Gadget::getHigherVisibleGadget ( const s32  startIndex  )  const [protected]

Get the index of the next visible gadget higher up the z-order.

Parameters:
startIndex The starting index.
Returns:
The index of the next highest visible gadget.
const u16 WoopsiUI::Gadget::getHighlightColour (  )  const [inline]

Gets the colour used as the fill in focused window borders.

Returns:
Highlight colour.
const s32 WoopsiUI::Gadget::getLowerVisibleGadget ( const s32  startIndex  )  const [protected]

Get the index of the next visible gadget lower down the z-order.

Parameters:
startIndex The starting index.
Returns:
The index of the next lowest visible gadget.
Gadget* WoopsiUI::Gadget::getParent (  )  const [inline]

Get a pointer to this gadget's parent.

Returns:
This gadget's parent.
virtual const u8 WoopsiUI::Gadget::getPhysicalScreenNumber (  )  const [virtual]

Get the number of the screen that this gadget is currently displayed on.

Returns:
0 for the touch screen, 1 for the top screen.

Reimplemented in WoopsiUI::Screen.

virtual void WoopsiUI::Gadget::getPreferredDimensions ( Rect rect  )  const [virtual]

Insert the dimensions that this gadget wants to have into the rect passed in as a parameter. All co-ordinates are relative to the gadget's parent.

Parameters:
rect Reference to a rect to populate with data.

Reimplemented in WoopsiUI::AnimButton, WoopsiUI::BitmapButton, WoopsiUI::Calendar, WoopsiUI::ContextMenu, WoopsiUI::CycleButton, WoopsiUI::Label, WoopsiUI::ListBox, WoopsiUI::RadioButtonGroup, and WoopsiUI::ScrollingListBox.

RectCache* WoopsiUI::Gadget::getRectCache (  )  const [inline]

Get a pointer to the cache of visible rects.

Returns:
A pointer to the cache of visible rects.
void WoopsiUI::Gadget::getRectClippedToHierarchy ( Rect rect  )  const

Clips the supplied rect to the boundaries defined by this gadget and this gadget's parents.

Parameters:
rect Reference to a rect to populate with data.
const u32 WoopsiUI::Gadget::getRefcon (  )  const [inline]

Get the reference constant for this gadget.

Returns:
The reference constant.
const u16 WoopsiUI::Gadget::getShadowColour (  )  const [inline]

Gets the colour used as the dark edge in bevelled boxes.

Returns:
Shadow colour.
const u16 WoopsiUI::Gadget::getShineColour (  )  const [inline]

Gets the colour used as the light edge in bevelled boxes.

Returns:
Shine colour.
u16 WoopsiUI::Gadget::getWidth (  )  const [inline]

Get the width of the gadget.

Returns:
The gadget width.
const s16 WoopsiUI::Gadget::getX (  )  const

Get the x co-ordinate of the gadget in "Woopsi space".

Returns:
Woopsi space x co-ordinate.
const s16 WoopsiUI::Gadget::getY (  )  const

Get the y co-ordinate of the gadget in "Woopsi space".

Returns:
Woopsi space y co-ordinate.
void WoopsiUI::Gadget::goModal (  ) 

Run the gadget modally.

Reimplemented in WoopsiUI::Woopsi.

virtual bool WoopsiUI::Gadget::handleContextMenuSelection ( const ListDataItem item  )  [virtual]

Handle a context menu selection. Just raises the event to its own handlers.

Parameters:
item The selected menu item.
const bool WoopsiUI::Gadget::hasFocus (  )  const [inline]

Is the gadget active? A value of true indicates that this gadget has focus or is an ancestor of the gadget with focus.

Returns:
True if active.
bool WoopsiUI::Gadget::hide (  ) 

Erases the gadget and makes it invisible. Does not re-assign focus to another gadget.

Returns:
True if the gadget was hidden.
See also:
show()
void WoopsiUI::Gadget::insertGadget ( Gadget gadget  ) 

Inserts a gadget into this gadget's child stack at the bottom of the stack. Note that the gadget can only be added if it is not already a child of another gadget.

Parameters:
gadget A pointer to the gadget to add to the child list.
See also:
addGadget()
void WoopsiUI::Gadget::invalidateLowerGadgetsVisibleRectCache ( Gadget gadget  ) 

Invalidate the visible region cache for all gadgets below the supplied gadget in this gadget's child stack. This will cause those gadgets to recalculate their visible regions next time they try to draw themselves.

Parameters:
gadget A pointer to a child gadget.
void WoopsiUI::Gadget::invalidateVisibleRectCache (  ) 

Mark this gadget's visible region cache as invalid, and do the same to its child gadgets.

const bool WoopsiUI::Gadget::isBeingDragged (  )  const [inline]

Is the gadget being dragged?

Returns:
True if the gadget is currently being dragged.
const bool WoopsiUI::Gadget::isBorderless (  )  const [inline]

Does the gadget have a border?

Returns:
True if the gadget does not have a border.
const bool WoopsiUI::Gadget::isClicked (  )  const [inline]

Is the gadget clicked?

Returns:
True if the gadget is currently clicked.
const bool WoopsiUI::Gadget::isDecoration (  )  const [inline]

Is the gadget a decoration? Decoration gadgets are children of, but also an essential component of, another gadget.

Returns:
True if the gadget is a decoration.
const bool WoopsiUI::Gadget::isDeleted (  )  const

Has the gadget been marked for deletion? This function recurses up the gadget hierarchy and only returns true if all of the gadgets in the ancestor chain are not deleted. Gadgets marked for deletion are automatically deleted and should not be interacted with.

Returns:
True if marked for deletion.
virtual bool WoopsiUI::Gadget::isDoubleClick ( s16  x,
s16  y 
) [virtual]

Check if the click is a double-click.

Parameters:
x X co-ordinate of the click.
y Y co-ordinate of the click.
Returns:
True if the click is a double-click.

Reimplemented in WoopsiUI::ListBox.

const bool WoopsiUI::Gadget::isDoubleClickable (  )  const [inline]

IS the gadget double-clickable?

Returns:
True if the gadget watches for double-clicks.
const bool WoopsiUI::Gadget::isDrawingEnabled (  )  const

Is the gadget allowed to draw? This function recurses up the gadget hierarchy and only returns true if all of the gadgets in the ancestor chain are visible.

Returns:
True if drawing is enabled.
const bool WoopsiUI::Gadget::isEnabled (  )  const

Is the gadget enabled? This function recurses up the gadget hierarchy and only returns true if all of the gadgets in the ancestor chain are enabled.

Returns:
True if enabled.
const bool WoopsiUI::Gadget::isHidden (  )  const

Is the gadget hidden? This function recurses up the gadget hierarchy and returns true if any of the gadgets in the ancestor chain are hidden.

Returns:
True if hidden.
const bool WoopsiUI::Gadget::isModal (  )  const

Is the gadget modal? Only true if the Woopsi singleton is also modal.

Returns:
True if the gadget is modal.
const bool WoopsiUI::Gadget::isPermeable (  )  const [inline]

Are the gadget's edges permeable or solid? Permeable gadgets do not enforce their dimensions on the co-ordinates and dimensions of child gadgets.

Returns:
True if permeable.
const bool WoopsiUI::Gadget::isShelved (  )  const [inline]

Is the gadget shelved?

Returns:
True if the gadget is shelved.
bool WoopsiUI::Gadget::keyPress ( KeyCode  keyCode  ) 

Send a keypress to the gadget.

Parameters:
keyCode The keycode to send to the gadget.
Returns:
True if the keypress was processed.
bool WoopsiUI::Gadget::keyRelease ( KeyCode  keyCode  ) 

Send a key release to the gadget.

Parameters:
keyCode The keycode to send to the gadget.
Returns:
True if the key release was processed.
bool WoopsiUI::Gadget::keyRepeat ( KeyCode  keyCode  ) 

Send a key repeat to the gadget.

Parameters:
keyCode The keycode to send to the gadget.
Returns:
True if the key repeat was processed.
void WoopsiUI::Gadget::lidClose (  ) 

Inform the gadget that the lid has closed.

See also:
lidOpened()
void WoopsiUI::Gadget::lidOpen (  ) 

Inform the gadget that the lid has opened.

See also:
lidClosed()
bool WoopsiUI::Gadget::lowerGadgetToBottom ( Gadget gadget  ) 

Lowers the supplied gadget to the bottom of this gadget's child stack. The supplied gadget pointer must be a child of this gadget.

Parameters:
gadget A pointer to the child gadget to lower.
Returns:
True if the lower was successful.
bool WoopsiUI::Gadget::lowerToBottom (  ) 

Lowers the gadget to the bottom of its parent's gadget stack.

Returns:
True if the lower was successful.
void WoopsiUI::Gadget::moveChildToDeleteQueue ( Gadget gadget  ) 

Moves the supplied child gadget to the deletion queue. For framework use only.

Parameters:
gadget A pointer to the child gadget.
bool WoopsiUI::Gadget::moveChildToShelvedList ( Gadget gadget  ) 

Moves the supplied child gadget to the shelved gadget list. For framework use only.

Parameters:
gadget A pointer to the child gadget.
Returns:
True if the gadget was moved successfully.
See also:
moveShelvedToChildList()
hide()
bool WoopsiUI::Gadget::moveShelvedToChildList ( Gadget gadget  ) 

Moves the supplied child gadget from the shelved list back to the child gadget list. For framework use only.

Parameters:
gadget A pointer to the shelved gadget.
Returns:
True if the gadget was moved successfully.
See also:
moveChildtoShelvedList()
show()
bool WoopsiUI::Gadget::moveTo ( s16  x,
s16  y 
)

Move the gadget to the new co-ordinates. Co-ordinates are relative to the parent gadget.

Parameters:
x The new x co-ordinate.
y The new y co-ordinate.
Returns:
True if the move was successful.
GraphicsPort* WoopsiUI::Gadget::newGraphicsPort ( Rect  clipRect  ) 

Gets a pointer to a new instance of the GraphicsPort class to allow drawing within this gadget's client space. The GraphicsPort can only draw within the supplied region.

The GraphicsPort object must be deleted when it is no longer required. Drawing is clipped only to the supplied rect. If the rect is not within the region of this gadget graphical anomalies will occur. This should only be called by the Woopsi hierarchy.

Parameters:
clipRect The region to clip to.
Returns:
A pointer to a new GraphicsPort object.
GraphicsPort* WoopsiUI::Gadget::newGraphicsPort ( bool  isForeground  ) 

Gets a pointer to a new instance of the GraphicsPort class to allow drawing within this gadget's client space. The GraphicsPort object must be deleted when it is no longer required.

Parameters:
isForeground True to use the foreground clipping list (draw over all space, including that overlapped by children) or background clipping list (not including that overlapped by children).
Returns:
A pointer to a new GraphicsPort object.
GraphicsPort* WoopsiUI::Gadget::newInternalGraphicsPort ( Rect  clipRect  )  [protected]

Get a graphics port that can draw within the region of the supplied clipping rect. The port must be deleted when it is no longer required. Note that the clipping rect should be clipped to the gadget's visible region before creating the graphics port.

Returns:
A new graphics port object.
virtual void WoopsiUI::Gadget::onBlur (  )  [inline, protected, virtual]

Called when the gadget loses focus. Override this when creating new gadgets if the gadget should exhibit additional behaviour when losing focus.

Reimplemented in WoopsiUI::AmigaWindow, and WoopsiUI::TextBox.

virtual void WoopsiUI::Gadget::onClick ( s16  x,
s16  y 
) [inline, protected, virtual]

Called when the gadget is clicked. Override this when creating new gadgets if the gadget should exhibit additional behaviour when it is clicked.

Parameters:
x The x co-ordinate of the click.
y The y co-ordinate of the click.

Reimplemented in WoopsiUI::AmigaScreen, WoopsiUI::AmigaWindow, WoopsiUI::AnimButton, WoopsiUI::BitmapButton, WoopsiUI::Button, WoopsiUI::CheckBox, WoopsiUI::ListBox, WoopsiUI::MultiLineTextBox, WoopsiUI::RadioButton, WoopsiUI::ScrollingPanel, WoopsiUI::SliderHorizontal, WoopsiUI::SliderHorizontalGrip, WoopsiUI::SliderVertical, WoopsiUI::SliderVerticalGrip, WoopsiUI::SuperBitmap, and WoopsiUI::TextBox.

virtual void WoopsiUI::Gadget::onDisable (  )  [inline, protected, virtual]

Called when the gadget is disabled. Override this when creating new gadgets if the gadget should exhibit additional behaviour when disabled.

Reimplemented in WoopsiUI::AnimButton.

virtual void WoopsiUI::Gadget::onDoubleClick ( s16  x,
s16  y 
) [inline, protected, virtual]

Called when the gadget is double-clicked. Override this when creating new gadgets if the gadget should exhibit additional behaviour when it is double-clicked. To change the conditions that apply in detecting a double-click, override the isDoubleClicked() method.

Parameters:
x The x co-ordinate of the click.
y The y co-ordinate of the click.

Reimplemented in WoopsiUI::ListBox, WoopsiUI::MultiLineTextBox, and WoopsiUI::TextBox.

virtual void WoopsiUI::Gadget::onDrag ( s16  x,
s16  y,
s16  vX,
s16  vY 
) [inline, protected, virtual]

Called when the gadget is dragged. Override this when creating new gadgets if the gadget should exhibit additional behaviour when it is dragged.

Parameters:
x The x co-ordinate of the stylus.
y The y co-ordinate of the stylus.
vX X distance dragged.
vY Y distance dragged.

Reimplemented in WoopsiUI::Screen, WoopsiUI::ScrollingPanel, WoopsiUI::SliderHorizontalGrip, WoopsiUI::SliderVerticalGrip, WoopsiUI::SuperBitmap, and WoopsiUI::Window.

virtual void WoopsiUI::Gadget::onDragStart (  )  [inline, protected, virtual]

Called when the gadget starts being dragged. Override this when creating new gadgets if the gadget should exhibit additional behaviour when dragging starts.

Reimplemented in WoopsiUI::Window.

virtual void WoopsiUI::Gadget::onDragStop (  )  [inline, protected, virtual]

Called when the gadget stops being dragged. Override this when creating new gadgets if the gadget should exhibit additional behaviour when dragging stops.

Reimplemented in WoopsiUI::Window.

virtual void WoopsiUI::Gadget::onEnable (  )  [inline, protected, virtual]

Called when the gadget is enabled. Override this when creating new gadgets if the gadget should exhibit additional behaviour when enabled.

Reimplemented in WoopsiUI::AnimButton.

virtual void WoopsiUI::Gadget::onFocus (  )  [inline, protected, virtual]

Called when the gadget gains focus. Override this when creating new gadgets if the gadget should exhibit additional behaviour when gaining focus.

Reimplemented in WoopsiUI::AmigaWindow, WoopsiUI::DecorationGlyphButton, and WoopsiUI::Screen.

virtual void WoopsiUI::Gadget::onKeyPress ( KeyCode  keyCode  )  [inline, protected, virtual]

Called when the a key (d-pad or physical button) is pressed. Override this when creating new gadgets if the gadget should exhibit additional behaviour when a key is pressed.

Parameters:
keyCode The key that was pressed.

Reimplemented in WoopsiUI::MultiLineTextBox, and WoopsiUI::TextBox.

virtual void WoopsiUI::Gadget::onKeyRelease ( KeyCode  keyCode  )  [inline, protected, virtual]

Called when a key (d-pad or physical button) is released. Override this when creating new gadgets if the gadget should exhibit additional behaviour when a key is released.

Parameters:
keyCode The key that was released.
virtual void WoopsiUI::Gadget::onKeyRepeat ( KeyCode  keyCode  )  [inline, protected, virtual]

Called when a key (d-pad or physical button) is pressed and repeats. Override this when creating new gadgets if the gadget should exhibit additional behaviour when a key repeats.

Parameters:
keyCode The key that repeated.

Reimplemented in WoopsiUI::MultiLineTextBox, and WoopsiUI::TextBox.

virtual void WoopsiUI::Gadget::onLidClose (  )  [inline, protected, virtual]

Called when the lid is closed. Override this when creating new gadgets if the gadget should exhibit additional behaviour when the lid is closed.

virtual void WoopsiUI::Gadget::onLidOpen (  )  [inline, protected, virtual]

Called when the lid is opened. Override this when creating new gadgets if the gadget should exhibit additional behaviour when the lid is opened.

virtual void WoopsiUI::Gadget::onRelease ( s16  x,
s16  y 
) [inline, protected, virtual]

Called when the gadget is released. Override this when creating new gadgets if the gadget should exhibit additional behaviour when it is released.

Parameters:
x The x co-ordinate of the stylus when released.
y The y co-ordinate of the stylus when released.

Reimplemented in WoopsiUI::AnimButton, WoopsiUI::BitmapButton, WoopsiUI::Button, WoopsiUI::CycleButton, WoopsiUI::SliderHorizontalGrip, and WoopsiUI::SliderVerticalGrip.

virtual void WoopsiUI::Gadget::onReleaseOutside ( s16  x,
s16  y 
) [inline, protected, virtual]

Called when the gadget is released outside of its boundaries. Override this when creating new gadgets if the gadget should exhibit additional behaviour when it is released outside of its boundaries.

Parameters:
x The x co-ordinate of the stylus when released.
y The y co-ordinate of the stylus when released.

Reimplemented in WoopsiUI::AnimButton, WoopsiUI::BitmapButton, WoopsiUI::Button, WoopsiUI::CycleButton, WoopsiUI::SliderHorizontalGrip, and WoopsiUI::SliderVerticalGrip.

virtual void WoopsiUI::Gadget::onResize ( u16  width,
u16  height 
) [inline, protected, virtual]

Called when the gadget is resized. Override this when creating new gadgets if the gadget should exhibit additional behaviour when resized.

Parameters:
width The new width.
height The new height.

Reimplemented in WoopsiUI::Alert, WoopsiUI::AmigaWindow, WoopsiUI::Calendar, WoopsiUI::ColourPicker, WoopsiUI::CycleButton, WoopsiUI::FileListBox, WoopsiUI::FileRequester, WoopsiUI::Gradient, WoopsiUI::Label, WoopsiUI::MultiLineTextBox, WoopsiUI::Requester, WoopsiUI::ScrollbarHorizontal, WoopsiUI::ScrollbarVertical, WoopsiUI::ScrollingListBox, WoopsiUI::ScrollingTextBox, WoopsiUI::SliderHorizontal, and WoopsiUI::SliderVertical.

virtual void WoopsiUI::Gadget::onShiftClick ( s16  x,
s16  y 
) [inline, protected, virtual]

Called when the gadget is shift-clicked. Override this when creating new gadgets if the gadget should exhibit additional behaviour when it is shift-clicked.

Parameters:
x The x co-ordinate of the click.
y The y co-ordinate of the click.
bool WoopsiUI::Gadget::raiseGadgetToTop ( Gadget gadget  ) 

Raises the supplied gadget to the top of this gadget's child stack. The supplied gadget pointer must be a child of this gadget.

Parameters:
gadget A pointer to the child gadget to raise.
Returns:
True if the raise was successful.
const bool WoopsiUI::Gadget::raisesEvents (  )  const [inline]

Check if this gadget raises events or not.

Returns:
True if events are enabled.
bool WoopsiUI::Gadget::raiseToTop (  ) 

Raises the gadget to the top of its parent's gadget stack.

Returns:
True if the raise was successful.
void WoopsiUI::Gadget::redraw (  ) 

Draws the visible regions of the gadget and the gadget's child gadgets.

void WoopsiUI::Gadget::redrawDirty ( WoopsiArray< Rect > *  invalidRects,
Gadget sender 
)

Redraw any visible regions of this gadget that have become corrupted.

Parameters:
invalidRects A list of corrupt regions.
sender A pointer to the gadget that corrupted the regions.
void WoopsiUI::Gadget::redrawDirtyChildren ( WoopsiArray< Rect > *  invalidRects,
Gadget sender 
) [protected]

Redraws all regions of child gadgets that fall within the invalidRects regions.

Parameters:
invalidRects List of invalid regions that need to be redrawn.
sender Pointer to the gadget that initiated the redraw.
bool WoopsiUI::Gadget::release ( s16  x,
s16  y 
)

Release this gadget at the supplied co-ordinates. This should only be overridden in subclasses if the default release behaviour needs to be changed. If the subclassed gadget should just respond to a standard release, the onRelease() method should be overridden instead.

Parameters:
x X co-ordinate of the release.
y Y co-ordinate of the release.
Returns:
True if the release was successful.
bool WoopsiUI::Gadget::remove (  ) 

Remove this gadget from Woopsi's gadget hierarchy. Returns responsibility for deleting the gadget back to the developer. Does not unregister the gadget from the VBL system. Does not erase the gadget from the display.

Returns:
True if the gadget was successfully removed.
bool WoopsiUI::Gadget::removeChild ( Gadget gadget  ) 

Remove a child gadget from Woopsi's gadget hierarchy. Returns responsibility for deleting the gadget back to the developer. Does not unregister the gadget from the VBL system. Does not erase the gadget from the display.

Parameters:
gadget Pointer to the gadget to remove from the hierarchy.
Returns:
True if the gadget was succesfully removed.
void WoopsiUI::Gadget::removeGadgetEventHandler ( GadgetEventHandler eventHandler  )  [inline]

Remove a gadget event handler.

Parameters:
eventHandler A pointer to the event handler to remove.
bool WoopsiUI::Gadget::resize ( u16  width,
u16  height 
)

Resize the gadget to the new dimensions.

Parameters:
width The new width.
height The new height.
Returns:
True if the resize was successful.
void WoopsiUI::Gadget::setBackColour ( const u16  colour  )  [inline]

Sets the background colour.

Parameters:
colour The new background colour.
void WoopsiUI::Gadget::setBorderless ( bool  isBorderless  ) 

Sets this gadget's border state.

Parameters:
isBorderless The border state.

Reimplemented in WoopsiUI::AmigaScreen, and WoopsiUI::AmigaWindow.

void WoopsiUI::Gadget::setBorderSize ( const GadgetBorderSize borderSize  ) 

Sets the border size. The border cannot be drawn over in the drawContents() method.

Parameters:
borderSize The new border size.
void WoopsiUI::Gadget::setCloseType ( const CloseType  closeType  )  [inline]

Sets the close type other gadgets should use when closing this gadget.

Parameters:
closeType The close type to use.
void WoopsiUI::Gadget::setDarkColour ( const u16  colour  )  [inline]

Sets the dark colour.

Parameters:
colour The new dark colour.
void WoopsiUI::Gadget::setDoubleClickable ( const bool  isDoubleClickable  )  [inline]

Sets whether or not the gadgets processes double-clicks.

Parameters:
isDoubleClickable The double-clickable state.
void WoopsiUI::Gadget::setDraggable ( const bool  isDraggable  )  [inline]

Sets whether or not this gadget can be dragged.

Parameters:
isDraggable The draggable state.
void WoopsiUI::Gadget::setFillColour ( const u16  colour  )  [inline]

Sets the fill colour.

Parameters:
colour The new fill colour.
void WoopsiUI::Gadget::setFocusedGadget ( Gadget gadget  ) 

Sets the supplied gadget as the focused child. The gadget must be a child of this gadget.

Parameters:
gadget A pointer to the child gadget.
See also:
getFocusedGadget()
virtual void WoopsiUI::Gadget::setFont ( FontBase font  )  [virtual]

Sets the font.

Parameters:
font A pointer to the font to use.

Reimplemented in WoopsiUI::Label, WoopsiUI::MultiLineTextBox, WoopsiUI::ScrollingListBox, and WoopsiUI::ScrollingTextBox.

virtual void WoopsiUI::Gadget::setGlyphFont ( FontBase font  )  [virtual]

Sets the glyph font.

Parameters:
font A pointer to the font to use.
void WoopsiUI::Gadget::setHighlightColour ( const u16  colour  )  [inline]

Sets the highlight colour.

Parameters:
colour The new highlight colour.
void WoopsiUI::Gadget::setParent ( Gadget parent  )  [inline]

Set the gadget's parent to the gadget passed in as a parameter. Called automatically when a gadget is added as a child.

Parameters:
parent A pointer to the parent gadget.
void WoopsiUI::Gadget::setPermeable ( const bool  isPermeable  )  [inline]

Sets whether or not child gadgets can exceed this gadget's dimensions.

Parameters:
isPermeable The permeable state.
void WoopsiUI::Gadget::setRaisesEvents ( const bool  raisesEvents  )  [inline]

Enables or disables event firing for this gadget.

Parameters:
raisesEvents True to enable events, false to disable.
u32 WoopsiUI::Gadget::setRefcon ( u32  refcon  ) 

Sets this gadget's reference constant. This should be unique, at least amongst this gadget's siblings.

Parameters:
refcon The reference constant.
void WoopsiUI::Gadget::setShadowColour ( const u16  colour  )  [inline]

Sets the shadow colour.

Parameters:
colour The new shadow colour.
void WoopsiUI::Gadget::setShineColour ( const u16  colour  )  [inline]

Sets the shine colour.

Parameters:
colour The new shine colour.
bool WoopsiUI::Gadget::shelve (  ) 

Erases the gadget, removes it from the main hierarchy and sets it to invisible. Gadgets hidden in this way will be partioned off from other gadgets and will no longer be processed.

Returns:
True if the gadget was shelved.
See also:
unshelve()
void WoopsiUI::Gadget::shelveChild ( Gadget gadget  )  [protected]

Erase the supplied child gadget and move it out of the main child list into the shelved list. The gadget remains in memory and can be restored by calling "unshelve()" on the gadget.

Parameters:
gadget The gadget to hide.
bool WoopsiUI::Gadget::shiftClick ( s16  x,
s16  y 
)

Shift-click this gadget at the supplied co-ordinates. This should only be overridden in subclasses if the default shift-click behaviour needs to be changed. If the subclassed gadget should just respond to a standard shift-click, the onShiftClick() method should be overridden instead.

Parameters:
x X co-ordinate of the click.
y Y co-ordinate of the click.
Returns:
True if the click was successful.
bool WoopsiUI::Gadget::show (  ) 

Draws the gadget and makes it visible. Does not steal focus from other gadgets.

Returns:
True if the gadget was shown.
See also:
hide()
void WoopsiUI::Gadget::showContextMenu ( s16  x,
s16  y 
)

Show the context menu for this gadget at the specified co-ordinates.

Parameters:
x The x co-ordinate of the context menu, relative to the screen.
y The y co-ordinate of the context menu, relative to the screen.
void WoopsiUI::Gadget::startDragging ( s16  x,
s16  y 
) [protected]

Notify this gadget that it is being dragged, and set its drag point.

Parameters:
x The x co-ordinate of the drag position relative to this gadget.
y The y co-ordinate of the drag position relative to this gadget.
void WoopsiUI::Gadget::stopDragging ( s16  x,
s16  y 
) [protected]

Notify this gadget that it is no longer being dragged.

void WoopsiUI::Gadget::stopModal (  )  [inline]

Stop the gadget running modally.

bool WoopsiUI::Gadget::swapDepth (  ) 

Swap the depth of this gadget.

Returns:
True if the swap was successful.
virtual bool WoopsiUI::Gadget::swapGadgetDepth ( Gadget gadget  )  [virtual]

Swaps the depth of the supplied child gadget.

Parameters:
gadget A pointer to the child gadget that needs to swap depths.
Returns:
True if the swap was successful.

Reimplemented in WoopsiUI::Screen, and WoopsiUI::Woopsi.

bool WoopsiUI::Gadget::unshelve (  ) 

Moves the gadget back into the hierarchy and redraws it. Gadgets shown in this way will be unpartioned and will be processed again.

Returns:
True if the gadget was unshelved.
See also:
shelve()

Member Data Documentation

Size of the gadget borders.

Type of close method that should be called for the gadget.

List of all context menu name/value pairs.

Total number of decoration child gadgets.

Area in which a click is assumed to be a double-click.

Flags struct.

Pointer to the child gadget that has focus.

List of event handlers.

List of child gadgets.

Physical space x co-ordinate where dragging began.

Physical space y co-ordinate where dragging began.

u16 WoopsiUI::Gadget::_height [protected]

Height of the gadget.

VBL count when last clicked.

X co-ordinate of last click.

Y co-ordinate of last click.

s16 WoopsiUI::Gadget::_newX [protected]

Physical x co-ordinate where gadget is being dragged to.

s16 WoopsiUI::Gadget::_newY [protected]

Physical y co-ordinate where gadget is being dragged to.

Pointer to the gadget's parent.

List of the gadget's visible regions.

u32 WoopsiUI::Gadget::_refcon [protected]

Identifying number of the gadget.

List of shelved child gadgets.

All style information used by a gadget.

u16 WoopsiUI::Gadget::_width [protected]

Width of the gadget.

s16 WoopsiUI::Gadget::_x [protected]

X co-ordinate of the gadget, relative to parent.

s16 WoopsiUI::Gadget::_y [protected]

Y co-ordinate of the gadget, relative to parent.


The documentation for this class was generated from the following file:
Generated by  doxygen 1.6.3