$treeview $search $mathjax
Stratagus  2.2.7
$projectbrief
$projectbrief
$searchbox
-->
         _________ __                 __
        /   _____//  |_____________ _/  |______     ____  __ __  ______
        \_____  \\   __\_  __ \__  \\   __\__  \   / ___\|  |  \/  ___/
        /        \|  |  |  | \// __ \|  |  / __ \_/ /_/  >  |  /\___ \
       /_______  /|__|  |__|  (____  /__| (____  /\___  /|____//____  >
               \/                  \/          \//_____/            \/
    ______________________                           ______________________
                          T H E   W A R   B E G I N S
                   Stratagus - A free fantasy real time strategy game engine

gcn::Container Class Reference

#include <container.h>

Inheritance diagram for gcn::Container:

gcn::BasicContainer gcn::Widget MenuScreen

List of all members.


Public Member Functions

 Container ()
virtual ~Container ()
virtual void setOpaque (bool opaque)
virtual bool isOpaque () const
virtual void add (Widget *widget)
virtual void add (Widget *widget, int x, int y)
virtual void remove (Widget *widget)
virtual void clear ()
virtual void draw (Graphics *graphics)
virtual void drawBorder (Graphics *graphics)
virtual void logic ()
virtual void _setFocusHandler (FocusHandler *focusHandler)
virtual void _mouseInputMessage (const MouseInput &mouseInput)
virtual void _mouseOutMessage ()
virtual void moveToTop (Widget *widget)
virtual void moveToBottom (Widget *widget)
virtual void _announceDeath (Widget *widget)
virtual void getDrawSize (int &width, int &height, Widget *widget)
virtual void setDirty (bool dirty)
virtual bool getDirty () const

Protected Types

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

Protected Member Functions

virtual void drawChildren (Graphics *graphics)
virtual void logicChildren ()

Protected Attributes

WidgetmWidgetWithMouse
WidgetList mWidgets
bool mOpaque

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.

Member Typedef Documentation

typedef std::list<Widget*> gcn::Container::WidgetList [protected]

typedef WidgetList::iterator gcn::Container::WidgetIterator [protected]

typedef WidgetList::const_iterator gcn::Container::WidgetConstIterator [protected]


Constructor & Destructor Documentation

gcn::Container::Container (  ) 

Constructor. A container is opauqe as default.

See also:
setOpaque, isOpaque

gcn::Container::~Container (  )  [virtual]

Destructor.


Member Function Documentation

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

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

Checks if the Container is opaque.

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

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

Adds a Widget to the Container.

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

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

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

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

Clears the Container of all widgets.

See also:
add, remove

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.

Reimplemented in MenuScreen.

void gcn::Container::drawBorder ( 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.

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.

Reimplemented in MenuScreen.

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.

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.

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.

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.

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.

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

Called when a child of the BasicContainer gets destroyed.

Parameters:
widget the destroyed Widget.

Implements gcn::BasicContainer.

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.

void gcn::Container::setDirty ( bool  dirty  )  [virtual]

Reimplemented from gcn::Widget.

bool gcn::Container::getDirty (  )  const [virtual]

Reimplemented from gcn::Widget.

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.

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.


Member Data Documentation

Reimplemented from gcn::Widget.

bool gcn::Container::mOpaque [protected]


The documentation for this class was generated from the following files:
(C) Copyright 1998-2012 by The Stratagus Project under the GNU General Public License.
All trademarks and copyrights on this page are owned by their respective owners.