Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

gcn::Container Class Reference

#include <container.hpp>

Inheritance diagram for gcn::Container:

gcn::BasicContainer gcn::Widget List of all members.

Detailed Description

A container able to contain other Widgets.

It is in other words a Widget that holds other Widgets. A Widgets position in the container is always relativ to the Container itself, not the screen. Using a Container as the top Widget in Gui is the only way to use more then one Widget in your Gui.

Definition at line 73 of file container.hpp.

Public Member Functions

 Container ()
 Constructor.
virtual ~Container ()
 Destructor.
virtual void setOpaque (bool opaque)
 Sets whether the background should be drawn or not.
virtual bool isOpaque () const
 Checks if the Container is opaque.
virtual void add (Widget *widget)
 Adds a Widget to the Container.
virtual void add (Widget *widget, int x, int y)
 Adds a Widget to the container and also specifices it's postion.
virtual void remove (Widget *widget)
 Removes a Widget from the Container.
virtual void clear ()
 Clears the Container of all widgets.
virtual void draw (Graphics *graphics)
 Draws the Widget.
virtual void drawBorder (Graphics *graphics)
 Draws a the Widget border.
virtual void logic ()
 Called for all Widgets in the gui each time Gui::logic is called.
virtual void _setFocusHandler (FocusHandler *focusHandler)
 Sets the FocusHandler to be used.
virtual void _mouseInputMessage (const MouseInput &mouseInput)
 Called when a Widget recieves a MouseInput.
virtual void _mouseOutMessage ()
 Called when the mouse leaves the Widget area.
virtual void moveToTop (Widget *widget)
 Moves a Widget to the top of the BasicContainer.
virtual void moveToBottom (Widget *widget)
 Moves a widget to the bottom of the BasicContainer.
virtual void _announceDeath (Widget *widget)
 Called when a child of the BasicContainer gets destroyed.
virtual void getDrawSize (int &width, int &height, Widget *widget)
 Gets the drawing space size a Widget has in the BasicContainer.

Protected Types

typedef std::list< Widget * > WidgetList
typedef WidgetList::iterator WidgetIterator

Protected Member Functions

virtual void drawChildren (Graphics *graphics)
 Draws all children of the Container.
virtual void logicChildren ()
 Calls the logic function for all children of Container.

Protected Attributes

WidgetmWidgetWithMouse
WidgetList mWidgets
bool mOpaque


Constructor & Destructor Documentation

gcn::Container::Container  ) 
 

Constructor.

A container is opauqe as default.

See also:
setOpaque, isOpaque

Definition at line 65 of file container.cpp.


Member Function Documentation

void gcn::Container::_announceDeath Widget widget  )  [virtual]
 

Called when a child of the BasicContainer gets destroyed.

Parameters:
widget the destroyed Widget.

Implements gcn::BasicContainer.

Definition at line 195 of file container.cpp.

void gcn::Container::_mouseInputMessage const MouseInput mouseInput  )  [virtual]
 

Called when a Widget recieves a MouseInput.

WARNING: This function is used internally to handle all mouse messages. Don't call or overload it unless you know what you are doing.

Parameters:
mouseInput the MouseInput message.

Reimplemented from gcn::Widget.

Definition at line 334 of file container.cpp.

References gcn::Widget::_mouseInMessage(), gcn::Widget::_mouseInputMessage(), gcn::Widget::_mouseOutMessage(), gcn::Widget::getX(), gcn::Widget::getY(), gcn::MouseInput::x, and gcn::MouseInput::y.

void gcn::Container::_mouseOutMessage  )  [virtual]
 

Called when the mouse leaves the Widget area.

WARNING: This function is used internally be to handle mouse out messages. Don't call or overload this function unless you know what you are doing.

Reimplemented from gcn::Widget.

Definition at line 377 of file container.cpp.

References gcn::Widget::_mouseOutMessage().

void gcn::Container::_setFocusHandler FocusHandler focusHandler  )  [virtual]
 

Sets the FocusHandler to be used.

WARNING: This function is used internally and should not be called or overloaded unless you know what you are doing.

Parameters:
focusHandler the FocusHandler to use.

Reimplemented from gcn::Widget.

Definition at line 323 of file container.cpp.

References gcn::Widget::_setFocusHandler().

void gcn::Container::add Widget widget,
int  x,
int  y
[virtual]
 

Adds a Widget to the container and also specifices it's postion.

Parameters:
widget the Widget to add.
x the x coordinat for the Widget in the Container.
y the y coordinat for the Widget in the Container.
See also:
remove

Definition at line 280 of file container.cpp.

References add().

void gcn::Container::add Widget widget  )  [virtual]
 

Adds a Widget to the Container.

Parameters:
widget the Widget to add.
See also:
remove

Definition at line 273 of file container.cpp.

References gcn::Widget::_getFocusHandler().

Referenced by add().

void gcn::Container::clear  )  [virtual]
 

Clears the Container of all widgets.

See also:
add, remove

Definition at line 308 of file container.cpp.

References gcn::Widget::_setFocusHandler(), and gcn::Widget::_setParent().

Referenced by ~Container().

void gcn::Container::draw Graphics graphics  )  [virtual]
 

Draws the Widget.

It is called by the parent widget when it is time for the Widget to draw itself. The graphics object is set up so that all drawing is relative to the Widget, i.e coordinate (0,0) is the top-left corner of the Widget. It is not possible to draw outside of a Widgets dimension.

Parameters:
graphics a Graphics object to draw with.

Implements gcn::Widget.

Definition at line 81 of file container.cpp.

References drawChildren(), gcn::Widget::getBaseColor(), gcn::Widget::getHeight(), gcn::Widget::getWidth(), and isOpaque().

void gcn::Container::drawBorder Graphics graphics  )  [virtual]
 

Draws a the Widget border.

A border is drawn around a Widget. The width and height of the border is therefore the Widgets height+2*bordersize. Think of a painting that has a certain size, the border surrounds the painting.

Parameters:
graphics a Graphics object to draw with.

Reimplemented from gcn::Widget.

Definition at line 92 of file container.cpp.

References gcn::Color::a, gcn::Widget::getBaseColor(), gcn::Widget::getBorderSize(), gcn::Widget::getHeight(), and gcn::Widget::getWidth().

void gcn::Container::drawChildren Graphics graphics  )  [protected, virtual]
 

Draws all children of the Container.

The Widgets will bedrawn in the order the Widgets were added to the Container.

Parameters:
graphics the Graphics object to draw with.

Definition at line 125 of file container.cpp.

References gcn::Rectangle::height, gcn::Rectangle::width, gcn::Rectangle::x, and gcn::Rectangle::y.

Referenced by draw().

void gcn::Container::getDrawSize int &  width,
int &  height,
Widget widget
[virtual]
 

Gets the drawing space size a Widget has in the BasicContainer.

It may not be the same size as the Widgets width and height.

NOTE: Size is not checked recursively all the way back to the top Widget. If the BasicContainer itself is clipped, the size may be inaccurate.

Parameters:
width the width the Widget's draw space has.
height the height the Widget's draw space has.
widget the Widget calling the function.

Implements gcn::BasicContainer.

Definition at line 215 of file container.cpp.

References gcn::Widget::getDimension(), gcn::Rectangle::height, gcn::Rectangle::width, gcn::Rectangle::x, and gcn::Rectangle::y.

bool gcn::Container::isOpaque  )  const [virtual]
 

Checks if the Container is opaque.

Returns:
true if the Container is opaque.
See also:
setOpaque

Definition at line 158 of file container.cpp.

Referenced by draw().

void gcn::Container::logic  )  [virtual]
 

Called for all Widgets in the gui each time Gui::logic is called.

You can do logic stuff here like playing an animation.

See also:
Gui

Reimplemented from gcn::Widget.

Definition at line 76 of file container.cpp.

References logicChildren().

void gcn::Container::logicChildren  )  [protected, virtual]
 

Calls the logic function for all children of Container.

The Widgets logic function will be called in the order the Widgets were added to the Container.

Definition at line 116 of file container.cpp.

Referenced by logic().

void gcn::Container::moveToBottom Widget widget  )  [virtual]
 

Moves a widget to the bottom of the BasicContainer.

The Widget will be drawn below all other Widgets in the BasicContainer.

Parameters:
widget the Widget to move.

Implements gcn::BasicContainer.

Definition at line 179 of file container.cpp.

void gcn::Container::moveToTop Widget widget  )  [virtual]
 

Moves a Widget to the top of the BasicContainer.

The widget will be drawn above all other Widgets in the BasicContainer.

Parameters:
widget the Widget to move.

Implements gcn::BasicContainer.

Definition at line 163 of file container.cpp.

void gcn::Container::remove Widget widget  )  [virtual]
 

Removes a Widget from the Container.

Parameters:
widget the Widget to remove.
Exceptions:
Exception when the Widget has not been added to the Container.
See also:
add, clear

Definition at line 286 of file container.cpp.

References gcn::Widget::_setFocusHandler(), and gcn::Widget::_setParent().

void gcn::Container::setOpaque bool  opaque  )  [virtual]
 

Sets whether the background should be drawn or not.

If the Container is not opaque it will be completely transparent.

NOTE: This is not the same as to set visibility. A nonvisible Container will not draw it's content.

Parameters:
opaque true if the Container should be opaque.
See also:
isOpaque

Definition at line 153 of file container.cpp.


The documentation for this class was generated from the following files:
Generated on Tue May 17 21:23:27 2005 for Guichan by  doxygen 1.4.1