#include <gadget.h>
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 |
Gadget * | getParent () const |
Gadget * | getFocusedGadget () |
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 |
GraphicsPort * | newGraphicsPort (bool isForeground) |
GraphicsPort * | newGraphicsPort (Rect clipRect) |
WoopsiArray< Rect > * | getForegroundRegions () |
FontBase * | getFont () const |
FontBase * | getGlyphFont () 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 Gadget * | getChild (u32 index) const |
const s32 | getChildCount () const |
const s32 | getDecorationCount () const |
RectCache * | getRectCache () 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) |
GraphicsPort * | newInternalGraphicsPort (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 |
Class providing all the basic functionality of a Woopsi gadget. All Woopsi gadgets must inherit from this class.
Enum listing flags that can be set in the constructor's "flags" parameter.
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 |
WoopsiUI::Gadget::Gadget | ( | s16 | x, | |
s16 | y, | |||
u16 | width, | |||
u16 | height, | |||
u32 | flags, | |||
GadgetStyle * | style = NULL | |||
) |
Constructor.
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. |
virtual WoopsiUI::Gadget::~Gadget | ( | ) | [protected, virtual] |
Destructor.
WoopsiUI::Gadget::Gadget | ( | const Gadget & | gadget | ) | [inline, protected] |
Copy constructor is protected to prevent usage.
void WoopsiUI::Gadget::addContextMenuItem | ( | const WoopsiString & | name, | |
u32 | value | |||
) |
Add a context menu item definition to the gadget.
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.
gadget | A pointer to the gadget to add to the child list. |
void WoopsiUI::Gadget::addGadgetEventHandler | ( | GadgetEventHandler * | eventHandler | ) | [inline] |
Adds a gadget event handler. The event handler will receive all events raised by this gadget.
eventHandler | A pointer to the event handler. |
bool WoopsiUI::Gadget::blur | ( | ) |
Remove focus from the gadget.
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.
y | The y co-ordinate to check. |
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.
y | The y co-ordinate to check. |
const bool WoopsiUI::Gadget::canReceiveFocus | ( | ) | const |
Check if the gadget can receive focus or not.
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.
x | The new x co-ordinate. | |
y | The new y co-ordinate. | |
width | The new width. | |
height | The new height. |
bool WoopsiUI::Gadget::checkCollision | ( | Gadget * | gadget | ) | const |
Checks if the supplied gadget collides with this gadget.
gadget | A pointer to another gadget to check for collisions with. |
bool WoopsiUI::Gadget::checkCollision | ( | s16 | x, | |
s16 | y, | |||
u16 | width, | |||
u16 | height | |||
) | const |
Checks if the supplied rectangle definition collides with this gadget.
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. |
bool WoopsiUI::Gadget::checkCollision | ( | s16 | x, | |
s16 | y | |||
) | const |
Checks if the supplied co-ordinates collide with this gadget.
x | The x co-ordinate to check. | |
y | The y co-ordinate to check. |
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.
x | X co-ordinate of the click. | |
y | Y co-ordinate of the click. |
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.
x | X co-ordinate of the click. | |
y | Y co-ordinate of the click. |
void WoopsiUI::Gadget::clipRectToHierarchy | ( | Rect & | rect | ) | const |
Clips a rectangular region to the dimensions of this gadget and its ancestors.
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.
gadget | The gadget to 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.
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.
x | X co-ordinate of the click. | |
y | Y co-ordinate of the click. |
bool WoopsiUI::Gadget::drag | ( | s16 | x, | |
s16 | y, | |||
s16 | vX, | |||
s16 | vY | |||
) |
Drag the gadget to the supplied co-ordinates.
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. |
virtual void WoopsiUI::Gadget::drawBorder | ( | GraphicsPort * | port | ) | [inline, protected, virtual] |
Draw the area of this gadget that falls within the clipping region. Called by the redraw() function to draw all visible regions.
port | The GraphicsPort to draw to. |
Reimplemented in WoopsiUI::AmigaScreen, WoopsiUI::AmigaWindow, WoopsiUI::AnimButton, WoopsiUI::BitmapButton, WoopsiUI::Button, WoopsiUI::Calendar, WoopsiUI::CheckBox, WoopsiUI::CycleButton, WoopsiUI::DecorationGlyphButton, WoopsiUI::Label, WoopsiUI::ListBox, WoopsiUI::MultiLineTextBox, WoopsiUI::ProgressBar, WoopsiUI::Screen, WoopsiUI::ScrollingPanel, WoopsiUI::SliderHorizontal, WoopsiUI::SliderHorizontalGrip, WoopsiUI::SliderVertical, WoopsiUI::SliderVerticalGrip, WoopsiUI::SuperBitmap, WoopsiUI::TextBox, WoopsiUI::Window, WoopsiUI::WindowBorderButton, and WoopsiUI::WoopsiKeyboard.
void WoopsiUI::Gadget::drawChildren | ( | ) | [protected] |
Draw all visible regions of this gadget's children.
virtual void WoopsiUI::Gadget::drawContents | ( | GraphicsPort * | port | ) | [inline, protected, virtual] |
Draw the area of this gadget that falls within the clipping region. Called by the redraw() function to draw all visible regions.
port | The GraphicsPort to draw to. |
Reimplemented in WoopsiUI::AnimButton, WoopsiUI::BitmapButton, WoopsiUI::Button, WoopsiUI::Calendar, WoopsiUI::CheckBox, WoopsiUI::CycleButton, WoopsiUI::DecorationGlyphButton, WoopsiUI::DimmedScreen, WoopsiUI::FileListBox, WoopsiUI::Gradient, WoopsiUI::Label, WoopsiUI::ListBox, WoopsiUI::MultiLineTextBox, WoopsiUI::ProgressBar, WoopsiUI::RadioButton, WoopsiUI::RadioButtonGroup, WoopsiUI::ScrollbarPanel, WoopsiUI::ScrollingListBox, WoopsiUI::ScrollingPanel, WoopsiUI::ScrollingTextBox, WoopsiUI::SliderHorizontal, WoopsiUI::SliderHorizontalGrip, WoopsiUI::SliderVertical, WoopsiUI::SliderVerticalGrip, WoopsiUI::SuperBitmap, WoopsiUI::TextBox, and WoopsiUI::WindowBorderButton.
bool WoopsiUI::Gadget::enable | ( | ) |
Enables the gadget.
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.
gadget | The child gadget to erase. |
bool WoopsiUI::Gadget::focus | ( | ) |
Give the gadget focus.
const u16 WoopsiUI::Gadget::getBackColour | ( | ) | const [inline] |
Gets the colour used as the background fill.
const Gadget* WoopsiUI::Gadget::getChild | ( | u32 | index | ) | const |
Get the child gadget at the specified index.
index | Index of the child to retrieve. |
const s32 WoopsiUI::Gadget::getChildCount | ( | ) | const [inline] |
Get the quantity of child gadgets.
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.
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.
const u16 WoopsiUI::Gadget::getDarkColour | ( | ) | const [inline] |
Gets the colour used as the fill in scrollbar gutters.
const s32 WoopsiUI::Gadget::getDecorationCount | ( | ) | const [inline] |
Get the quantity of decoration gadgets.
const u16 WoopsiUI::Gadget::getFillColour | ( | ) | const [inline] |
Gets the colour used as the fill in unfocused window borders.
Gadget* WoopsiUI::Gadget::getFocusedGadget | ( | ) | [inline] |
Get a pointer to this gadget's focused child.
FontBase* WoopsiUI::Gadget::getFont | ( | ) | const |
Gets 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.
const s32 WoopsiUI::Gadget::getGadgetIndex | ( | const Gadget * | gadget | ) | const |
Get the index of the specified child gadget.
gadget | The gadget to get the index of. |
FontBase* WoopsiUI::Gadget::getGlyphFont | ( | ) | const |
Gets a pointer to the gadget's glyph font.
u16 WoopsiUI::Gadget::getHeight | ( | ) | const [inline] |
Get the height of the gadget.
const s32 WoopsiUI::Gadget::getHigherVisibleGadget | ( | const s32 | startIndex | ) | const [protected] |
Get the index of the next visible gadget higher up the z-order.
startIndex | The starting index. |
const u16 WoopsiUI::Gadget::getHighlightColour | ( | ) | const [inline] |
Gets the colour used as the fill in focused window borders.
const s32 WoopsiUI::Gadget::getLowerVisibleGadget | ( | const s32 | startIndex | ) | const [protected] |
Get the index of the next visible gadget lower down the z-order.
startIndex | The starting index. |
Gadget* WoopsiUI::Gadget::getParent | ( | ) | const [inline] |
Get a pointer to 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.
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.
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.
void WoopsiUI::Gadget::getRectClippedToHierarchy | ( | Rect & | rect | ) | const |
Clips the supplied rect to the boundaries defined by this gadget and this gadget's parents.
rect | Reference to a rect to populate with data. |
const u32 WoopsiUI::Gadget::getRefcon | ( | ) | const [inline] |
Get the reference constant for this gadget.
const u16 WoopsiUI::Gadget::getShadowColour | ( | ) | const [inline] |
Gets the colour used as the dark edge in bevelled boxes.
const u16 WoopsiUI::Gadget::getShineColour | ( | ) | const [inline] |
Gets the colour used as the light edge in bevelled boxes.
u16 WoopsiUI::Gadget::getWidth | ( | ) | const [inline] |
Get the width of the gadget.
const s16 WoopsiUI::Gadget::getX | ( | ) | const |
Get the x co-ordinate of the gadget in "Woopsi space".
const s16 WoopsiUI::Gadget::getY | ( | ) | const |
Get the y co-ordinate of the gadget in "Woopsi space".
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.
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.
bool WoopsiUI::Gadget::hide | ( | ) |
Erases the gadget and makes it invisible. Does not re-assign focus to another gadget.
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.
gadget | A pointer to the gadget to add to the child list. |
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.
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?
const bool WoopsiUI::Gadget::isBorderless | ( | ) | const [inline] |
Does the gadget have a border?
const bool WoopsiUI::Gadget::isClicked | ( | ) | const [inline] |
Is the gadget 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.
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.
virtual bool WoopsiUI::Gadget::isDoubleClick | ( | s16 | x, | |
s16 | y | |||
) | [virtual] |
Check if the click is a double-click.
x | X co-ordinate of the click. | |
y | Y co-ordinate of the click. |
Reimplemented in WoopsiUI::ListBox.
const bool WoopsiUI::Gadget::isDoubleClickable | ( | ) | const [inline] |
IS the gadget double-clickable?
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.
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.
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.
const bool WoopsiUI::Gadget::isModal | ( | ) | const |
Is the gadget modal? Only true if the Woopsi singleton is also 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.
const bool WoopsiUI::Gadget::isShelved | ( | ) | const [inline] |
Is the gadget shelved?
bool WoopsiUI::Gadget::keyPress | ( | KeyCode | keyCode | ) |
Send a keypress to the gadget.
keyCode | The keycode to send to the gadget. |
bool WoopsiUI::Gadget::keyRelease | ( | KeyCode | keyCode | ) |
Send a key release to the gadget.
keyCode | The keycode to send to the gadget. |
bool WoopsiUI::Gadget::keyRepeat | ( | KeyCode | keyCode | ) |
Send a key repeat to the gadget.
keyCode | The keycode to send to the gadget. |
void WoopsiUI::Gadget::lidClose | ( | ) |
Inform the gadget that the lid has closed.
void WoopsiUI::Gadget::lidOpen | ( | ) |
Inform the gadget that the lid has opened.
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.
gadget | A pointer to the child gadget to lower. |
bool WoopsiUI::Gadget::lowerToBottom | ( | ) |
Lowers the gadget to the bottom of its parent's gadget stack.
void WoopsiUI::Gadget::moveChildToDeleteQueue | ( | Gadget * | gadget | ) |
Moves the supplied child gadget to the deletion queue. For framework use only.
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.
gadget | A pointer to the child gadget. |
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.
gadget | A pointer to the shelved gadget. |
bool WoopsiUI::Gadget::moveTo | ( | s16 | x, | |
s16 | y | |||
) |
Move the gadget to the new co-ordinates. Co-ordinates are relative to the parent gadget.
x | The new x co-ordinate. | |
y | The new y co-ordinate. |
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.
clipRect | The region to clip to. |
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.
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). |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
gadget | A pointer to the child gadget to raise. |
const bool WoopsiUI::Gadget::raisesEvents | ( | ) | const [inline] |
Check if this gadget raises events or not.
bool WoopsiUI::Gadget::raiseToTop | ( | ) |
Raises the gadget to the top of its parent's gadget stack.
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.
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.
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.
x | X co-ordinate of the release. | |
y | Y co-ordinate of the release. |
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.
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.
gadget | Pointer to the gadget to remove from the hierarchy. |
void WoopsiUI::Gadget::removeGadgetEventHandler | ( | GadgetEventHandler * | eventHandler | ) | [inline] |
Remove a gadget event handler.
eventHandler | A pointer to the event handler to remove. |
bool WoopsiUI::Gadget::resize | ( | u16 | width, | |
u16 | height | |||
) |
Resize the gadget to the new dimensions.
width | The new width. | |
height | The new height. |
void WoopsiUI::Gadget::setBackColour | ( | const u16 | colour | ) | [inline] |
Sets the background colour.
colour | The new background colour. |
void WoopsiUI::Gadget::setBorderless | ( | bool | isBorderless | ) |
Sets this gadget's border state.
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.
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.
closeType | The close type to use. |
void WoopsiUI::Gadget::setDarkColour | ( | const u16 | colour | ) | [inline] |
Sets the dark colour.
colour | The new dark colour. |
void WoopsiUI::Gadget::setDoubleClickable | ( | const bool | isDoubleClickable | ) | [inline] |
Sets whether or not the gadgets processes double-clicks.
isDoubleClickable | The double-clickable state. |
void WoopsiUI::Gadget::setDraggable | ( | const bool | isDraggable | ) | [inline] |
Sets whether or not this gadget can be dragged.
isDraggable | The draggable state. |
void WoopsiUI::Gadget::setFillColour | ( | const u16 | colour | ) | [inline] |
Sets the fill colour.
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.
gadget | A pointer to the child gadget. |
virtual void WoopsiUI::Gadget::setFont | ( | FontBase * | font | ) | [virtual] |
Sets the font.
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.
font | A pointer to the font to use. |
void WoopsiUI::Gadget::setHighlightColour | ( | const u16 | colour | ) | [inline] |
Sets the highlight colour.
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.
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.
isPermeable | The permeable state. |
void WoopsiUI::Gadget::setRaisesEvents | ( | const bool | raisesEvents | ) | [inline] |
Enables or disables event firing for this gadget.
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.
refcon | The reference constant. |
void WoopsiUI::Gadget::setShadowColour | ( | const u16 | colour | ) | [inline] |
Sets the shadow colour.
colour | The new shadow colour. |
void WoopsiUI::Gadget::setShineColour | ( | const u16 | colour | ) | [inline] |
Sets the shine colour.
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.
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.
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.
x | X co-ordinate of the click. | |
y | Y co-ordinate of the click. |
bool WoopsiUI::Gadget::show | ( | ) |
Draws the gadget and makes it visible. Does not steal focus from other gadgets.
void WoopsiUI::Gadget::showContextMenu | ( | s16 | x, | |
s16 | y | |||
) |
Show the context menu for this gadget at the specified co-ordinates.
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.
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.
virtual bool WoopsiUI::Gadget::swapGadgetDepth | ( | Gadget * | gadget | ) | [virtual] |
Swaps the depth of the supplied child gadget.
gadget | A pointer to the child gadget that needs to swap depths. |
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.
GadgetBorderSize WoopsiUI::Gadget::_borderSize [protected] |
Size of the gadget borders.
CloseType WoopsiUI::Gadget::_closeType [protected] |
Type of close method that should be called for the gadget.
WoopsiArray<NameValuePair> WoopsiUI::Gadget::_contextMenuItems [protected] |
List of all context menu name/value pairs.
u8 WoopsiUI::Gadget::_decorationCount [protected] |
Total number of decoration child gadgets.
s16 WoopsiUI::Gadget::_doubleClickBounds [protected] |
Area in which a click is assumed to be a double-click.
Flags WoopsiUI::Gadget::_flags [protected] |
Flags struct.
Gadget* WoopsiUI::Gadget::_focusedGadget [protected] |
Pointer to the child gadget that has focus.
List of event handlers.
WoopsiArray<Gadget*> WoopsiUI::Gadget::_gadgets [protected] |
List of child gadgets.
s16 WoopsiUI::Gadget::_grabPointX [protected] |
Physical space x co-ordinate where dragging began.
s16 WoopsiUI::Gadget::_grabPointY [protected] |
Physical space y co-ordinate where dragging began.
u16 WoopsiUI::Gadget::_height [protected] |
Height of the gadget.
u32 WoopsiUI::Gadget::_lastClickTime [protected] |
VBL count when last clicked.
s16 WoopsiUI::Gadget::_lastClickX [protected] |
X co-ordinate of last click.
s16 WoopsiUI::Gadget::_lastClickY [protected] |
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.
Gadget* WoopsiUI::Gadget::_parent [protected] |
Pointer to the gadget's parent.
RectCache* WoopsiUI::Gadget::_rectCache [protected] |
List of the gadget's visible regions.
u32 WoopsiUI::Gadget::_refcon [protected] |
Identifying number of the gadget.
WoopsiArray<Gadget*> WoopsiUI::Gadget::_shelvedGadgets [protected] |
List of shelved child gadgets.
GadgetStyle WoopsiUI::Gadget::_style [protected] |
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.