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

       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::Window Class Reference

#include <window.h>

Inheritance diagram for gcn::Window:

gcn::BasicContainer gcn::MouseListener gcn::Widget Windows

List of all members.

Public Member Functions

 Window ()
 Window (const std::string &caption)
 Window (Widget *content, const std::string &caption="")
virtual ~Window ()
virtual void setCaption (const std::string &caption)
virtual const std::string & getCaption () const
virtual void setAlignment (unsigned int alignment)
virtual unsigned int getAlignment () const
virtual void setContent (Widget *widget)
virtual WidgetgetContent () const
virtual void setPadding (unsigned int padding)
virtual unsigned int getPadding () const
virtual void setTitleBarHeight (unsigned int height)
virtual unsigned int getTitleBarHeight ()
virtual void setMovable (bool movable)
virtual bool isMovable () const
virtual void resizeToContent ()
virtual void setOpaque (bool opaque)
virtual bool isOpaque ()
virtual void drawContent (Graphics *graphics)
virtual void moveToTop (Widget *widget)
virtual void moveToBottom (Widget *widget)
virtual void getDrawSize (int &width, int &height, Widget *widget)
virtual void _announceDeath (Widget *widget)
virtual void draw (Graphics *graphics)
virtual void drawBorder (Graphics *graphics)
virtual void logic ()
virtual void _mouseInputMessage (const MouseInput &mouseInput)
virtual void _mouseOutMessage ()
virtual void _setFocusHandler (FocusHandler *focusHandler)
virtual void mousePress (int x, int y, int button)
virtual void mouseRelease (int x, int y, int button)
virtual void mouseMotion (int x, int y)
virtual void setDirty (bool dirty)
virtual bool getDirty () const

Protected Member Functions

virtual void repositionContent ()
virtual Rectangle getContentDimension ()

Protected Attributes

std::string mCaption
unsigned int mAlignment
WidgetmContent
unsigned int mPadding
unsigned int mTitleBarHeight
bool mMouseDrag
int mMouseXOffset
int mMouseYOffset
bool mMovable
bool mOpaque


Detailed Description

A movable window which can conatin another Widget.

Definition at line 68 of file window.h.


Constructor & Destructor Documentation

gcn::Window::Window (  ) 

gcn::Window::Window ( const std::string &  caption  ) 

gcn::Window::Window ( Widget content,
const std::string &  caption = "" 
)

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

Destructor.

Definition at line 107 of file window.cpp.

References setContent().


Member Function Documentation

void gcn::Window::setCaption ( const std::string &  caption  )  [virtual]

Sets the Window caption.

Parameters:
caption the Window caption.

Definition at line 162 of file window.cpp.

References mCaption, and setDirty().

Referenced by Window().

const std::string & gcn::Window::getCaption (  )  const [virtual]

Gets the Window caption.

Returns:
the Window caption.

Definition at line 168 of file window.cpp.

References mCaption.

Referenced by draw().

void gcn::Window::setAlignment ( unsigned int  alignment  )  [virtual]

Sets the alignment for the caption.

Parameters:
alignment Graphics::LEFT, Graphics::CENTER or Graphics::RIGHT.

Definition at line 173 of file window.cpp.

References mAlignment.

Referenced by Window().

unsigned int gcn::Window::getAlignment (  )  const [virtual]

Gets the alignment for the caption.

Returns:
alignment of caption.

Definition at line 178 of file window.cpp.

References mAlignment.

Referenced by draw().

void gcn::Window::setContent ( Widget widget  )  [virtual]

Sets the content Widget.

Parameters:
widget the contant Widget.

Definition at line 139 of file window.cpp.

References gcn::Widget::_getFocusHandler(), gcn::Widget::_setFocusHandler(), gcn::Widget::_setParent(), getContent(), mContent, and repositionContent().

Referenced by Window(), Windows::Windows(), and ~Window().

Widget * gcn::Window::getContent (  )  const [virtual]

void gcn::Window::setPadding ( unsigned int  padding  )  [virtual]

Sets the padding of the window which is the distance between the window border and the content.

Parameters:
padding the padding value.

Definition at line 112 of file window.cpp.

References mPadding, and repositionContent().

Referenced by Window().

unsigned int gcn::Window::getPadding (  )  const [virtual]

Gets the padding.

Returns:
the padding value.

Definition at line 118 of file window.cpp.

References mPadding.

Referenced by getContentDimension(), mousePress(), and resizeToContent().

void gcn::Window::setTitleBarHeight ( unsigned int  height  )  [virtual]

Sets the title bar height.

Parameters:
height the title height value.

Definition at line 123 of file window.cpp.

References mTitleBarHeight, and repositionContent().

Referenced by Window().

unsigned int gcn::Window::getTitleBarHeight (  )  [virtual]

Gets the title bar height.

Returns:
the title bar height.

Definition at line 129 of file window.cpp.

References mTitleBarHeight.

Referenced by draw(), getContentDimension(), mousePress(), and resizeToContent().

void gcn::Window::setMovable ( bool  movable  )  [virtual]

Sets the Window to be moveble.

Parameters:
movable true or false.

Definition at line 393 of file window.cpp.

References mMovable.

Referenced by Window().

bool gcn::Window::isMovable (  )  const [virtual]

Check if the window is movable.

Returns:
true or false.

Definition at line 398 of file window.cpp.

References mMovable.

Referenced by mouseMotion(), and mousePress().

void gcn::Window::resizeToContent (  )  [virtual]

Resizes the window to fit the content.

Definition at line 403 of file window.cpp.

References getContent(), gcn::Widget::getHeight(), getPadding(), getTitleBarHeight(), gcn::Widget::getWidth(), and gcn::Widget::setSize().

Referenced by Windows::Windows().

void gcn::Window::setOpaque ( bool  opaque  )  [virtual]

Sets the Window to be opaque. If it's not opaque, the content area will not be filled with a color.

Parameters:
opaque true or false.

Definition at line 459 of file window.cpp.

References mOpaque.

Referenced by Window().

bool gcn::Window::isOpaque (  )  [virtual]

Checks if the Window is opaque.

Returns:
true or false.

Definition at line 464 of file window.cpp.

References mOpaque.

Referenced by draw().

void gcn::Window::drawContent ( Graphics graphics  )  [virtual]

Draws the content of the Window. This functions uses the getContentDimension to determin where to draw the content.

Parameters:
graphics a Graphics object to draw with.

Definition at line 299 of file window.cpp.

References gcn::Widget::draw(), getContent(), getContentDimension(), gcn::Widget::getHeight(), gcn::Widget::getWidth(), gcn::Graphics::popClipArea(), and gcn::Graphics::pushClipArea().

Referenced by draw().

void gcn::Window::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 346 of file window.cpp.

References GCN_EXCEPTION, and getContent().

void gcn::Window::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 354 of file window.cpp.

References GCN_EXCEPTION, and getContent().

void gcn::Window::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 362 of file window.cpp.

References GCN_EXCEPTION, getContent(), getContentDimension(), gcn::Rectangle::height, and gcn::Rectangle::width.

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

Called when a child of the BasicContainer gets destroyed.

Parameters:
widget the destroyed Widget.

Implements gcn::BasicContainer.

Definition at line 134 of file window.cpp.

References mContent.

void gcn::Window::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 183 of file window.cpp.

References gcn::Color::a, gcn::Graphics::CENTER, drawContent(), gcn::Graphics::drawLine(), gcn::Graphics::drawText(), gcn::Graphics::fillRectangle(), GCN_EXCEPTION, getAlignment(), gcn::Widget::getBaseColor(), getCaption(), getContentDimension(), gcn::Widget::getFont(), gcn::Widget::getForegroundColor(), gcn::Font::getHeight(), gcn::Widget::getHeight(), getTitleBarHeight(), gcn::Widget::getWidth(), gcn::Rectangle::height, int(), isOpaque(), gcn::Graphics::LEFT, gcn::Graphics::RIGHT, gcn::Graphics::setColor(), gcn::Graphics::setFont(), gcn::Rectangle::width, gcn::Rectangle::x, and gcn::Rectangle::y.

void gcn::Window::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 275 of file window.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::Window::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 469 of file window.cpp.

References getContent(), and gcn::Widget::logic().

void gcn::Window::_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 413 of file window.cpp.

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

void gcn::Window::_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 439 of file window.cpp.

References gcn::Widget::_mouseOutMessage(), getContent(), and gcn::Widget::hasMouse().

void gcn::Window::_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 449 of file window.cpp.

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

void gcn::Window::mousePress ( int  x,
int  y,
int  button 
) [virtual]

Called when a mouse button is pressed when the mouse is in the Widget area or if the Widget has focus.

NOTE: A mouse press is NOT equal to a mouse click. Use mouseClickMessage to check for mouse clicks.

Parameters:
x the x coordinate of the mouse relative to the Widget itself.
y the y coordinate of the mouse relative to the Widget itself.
button the button pressed.

Reimplemented from gcn::MouseListener.

Definition at line 312 of file window.cpp.

References getPadding(), gcn::Widget::getParent(), getTitleBarHeight(), gcn::Widget::hasMouse(), isMovable(), mMouseDrag, mMouseXOffset, mMouseYOffset, and gcn::BasicContainer::moveToTop().

void gcn::Window::mouseRelease ( int  x,
int  y,
int  button 
) [virtual]

Called when a mouse button is released when the mouse is in the Widget area or if the Widget has focus.

Parameters:
x the x coordinate of the mouse relative to the Widget itself.
y the y coordinate of the mouse relative to the Widget itself.
button the button released.

Reimplemented from gcn::MouseListener.

Definition at line 328 of file window.cpp.

References mMouseDrag.

void gcn::Window::mouseMotion ( int  x,
int  y 
) [virtual]

Called when the mouse moves and the mouse is in the Widget area or if the Widget has focus.

Parameters:
x the x coordinate of the mouse relative to the Widget itself.
y the y coordinate of the mouse relative to the Widget itself.

Reimplemented from gcn::MouseListener.

Definition at line 336 of file window.cpp.

References gcn::Widget::getX(), gcn::Widget::getY(), isMovable(), mMouseDrag, mMouseXOffset, mMouseYOffset, setDirty(), and gcn::Widget::setPosition().

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

Reimplemented from gcn::Widget.

Definition at line 477 of file window.cpp.

References mContent, gcn::Widget::mDirty, and gcn::Widget::setDirty().

Referenced by mouseMotion(), and setCaption().

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

Reimplemented from gcn::Widget.

Definition at line 486 of file window.cpp.

References gcn::Widget::getDirty(), mContent, and gcn::Widget::mDirty.

void gcn::Window::repositionContent (  )  [protected, virtual]

Moves the content to the top left corner of the window, uses getContentDimension to get the offset

Definition at line 374 of file window.cpp.

References getContent(), getContentDimension(), mContent, gcn::Widget::setPosition(), gcn::Rectangle::x, and gcn::Rectangle::y.

Referenced by setContent(), setPadding(), and setTitleBarHeight().

Rectangle gcn::Window::getContentDimension (  )  [protected, virtual]

Gets the area in the window that the content occupies.

Definition at line 385 of file window.cpp.

References gcn::Widget::getHeight(), getPadding(), getTitleBarHeight(), and gcn::Widget::getWidth().

Referenced by _mouseInputMessage(), draw(), drawContent(), getDrawSize(), and repositionContent().


Member Data Documentation

std::string gcn::Window::mCaption [protected]

Definition at line 260 of file window.h.

Referenced by getCaption(), and setCaption().

unsigned int gcn::Window::mAlignment [protected]

Definition at line 261 of file window.h.

Referenced by getAlignment(), and setAlignment().

unsigned int gcn::Window::mPadding [protected]

Definition at line 263 of file window.h.

Referenced by getPadding(), and setPadding().

unsigned int gcn::Window::mTitleBarHeight [protected]

Definition at line 264 of file window.h.

Referenced by getTitleBarHeight(), and setTitleBarHeight().

bool gcn::Window::mMouseDrag [protected]

Definition at line 265 of file window.h.

Referenced by mouseMotion(), mousePress(), mouseRelease(), and Window().

int gcn::Window::mMouseXOffset [protected]

Definition at line 266 of file window.h.

Referenced by mouseMotion(), and mousePress().

int gcn::Window::mMouseYOffset [protected]

Definition at line 267 of file window.h.

Referenced by mouseMotion(), and mousePress().

bool gcn::Window::mMovable [protected]

Definition at line 268 of file window.h.

Referenced by isMovable(), and setMovable().

bool gcn::Window::mOpaque [protected]

Definition at line 269 of file window.h.

Referenced by isOpaque(), and setOpaque().


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

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