____                _       __
    / __ )____  _____   | |     / /___ ___________
   / __  / __ \/ ___/   | | /| / / __ `/ ___/ ___/
  / /_/ / /_/ (__  )    | |/ |/ / /_/ / /  (__  )
 /_____/\____/____/     |__/|__/\__,_/_/  /____/

       A futuristic real-time strategy game.
          This file is part of Bos Wars.
(C) Copyright 2001-2007 by the Bos Wars and Stratagus Project. Distributed under the "GNU General Public License"

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.

Definition at line 73 of file container.h.


Member Typedef Documentation

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

Definition at line 191 of file container.h.

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

Definition at line 192 of file container.h.

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

Definition at line 193 of file container.h.


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.

References mOpaque, and mWidgetWithMouse.

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

Destructor.

Definition at line 71 of file container.cpp.

References clear().


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

Definition at line 153 of file container.cpp.

References mOpaque.

Referenced by EditorMainLoop(), MenuScreen::MenuScreen(), PatchEditorMainLoop(), ScrollingWidget::ScrollingWidget(), and StartMap().

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.

References mOpaque.

Referenced by draw().

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

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 gcn::Widget::setPosition().

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(), gcn::Widget::_setParent(), GCN_EXCEPTION, mWidgets, and mWidgetWithMouse.

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

Clears the Container of all widgets.

See also:
add, remove

Definition at line 308 of file container.cpp.

References mWidgets, and mWidgetWithMouse.

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.

Reimplemented in MenuScreen.

Definition at line 81 of file container.cpp.

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

Referenced by MenuScreen::draw().

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::Graphics::drawLine(), gcn::Widget::getBaseColor(), gcn::Widget::getBorderSize(), gcn::Widget::getHeight(), gcn::Widget::getWidth(), and gcn::Graphics::setColor().

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.

Definition at line 76 of file container.cpp.

References logicChildren().

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(), and mWidgets.

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(), mWidgets, mWidgetWithMouse, 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(), and mWidgetWithMouse.

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.

References GCN_EXCEPTION, and mWidgets.

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.

References GCN_EXCEPTION, and mWidgets.

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.

References GCN_EXCEPTION, mWidgets, and mWidgetWithMouse.

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_EXCEPTION, gcn::Widget::getDimension(), gcn::Rectangle::height, mWidgets, gcn::Rectangle::width, gcn::Rectangle::x, and gcn::Rectangle::y.

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

Reimplemented from gcn::Widget.

Definition at line 388 of file container.cpp.

References gcn::Widget::mDirty, and mWidgets.

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

Reimplemented from gcn::Widget.

Definition at line 398 of file container.cpp.

References gcn::Widget::mDirty, and mWidgets.

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, mWidgets, gcn::Graphics::popClipArea(), gcn::Graphics::pushClipArea(), gcn::Rectangle::width, gcn::Rectangle::x, and gcn::Rectangle::y.

Referenced by draw().

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.

References mWidgets.

Referenced by logic().


Member Data Documentation

bool gcn::Container::mOpaque [protected]

Definition at line 195 of file container.h.

Referenced by Container(), isOpaque(), and setOpaque().


The documentation for this class was generated from the following files:

Generated on Sat Feb 21 00:28:26 2009 for Bos Wars by  doxygen 1.5.6