gfx::GuiBase Class Reference

GUI base class. More...

#include <gfx_gui.hh>

Inheritance diagram for gfx::GuiBase:

gfx::Gui

List of all members.

Public Member Functions

 GuiBase (void)
virtual ~GuiBase ()
virtual void Draw (void)
GuiScreenNewScreen (void)
void DeleteScreen (GuiScreen *screen)
void ReshapeViewport (const Rect< int > &viewport, const Rect< int > &window)
void SetZoom (const fp zoom)
fp GetZoom (void)
fp GetZoomViewport (void)
uint GetReshapeCnt (void)
bool IfBlend (void)
void ToggleBlend (void)
RGBA GetColorBg (void)
void AppTimerOneSecond (void)
 Your application must call this every second.
void AppMouseMotionHandler (fp x, fp y)
 Your application must pass mouse events to this.
void AppMouseButtonHandler (eMouseEvent button, bool down)
 Your application must pass mouse events to this.
bool GetMousePos (Vector2 &pos)
 returns false if mouse outside viewport
void SetMousePos (const Vector2 &pos)
virtual Vector2 MousePos2ViewportPos (const Vector2 &mousePos)=0
uint GetMouseButtons (void)
void SetMouseButtons (uint buttons)
SafePtr< FontGetButtonFont (void)
 font wrappers for related Gui* classes

Public Attributes

Rect< int > mViewport
Rect< int > mViewportInitial
Rect< int > mWindow

Protected Attributes

bool mBlend
 whether to blend widgets with background
RGBA mColorBg
 background if not blend
fp mZoom
 zoom is a base scale
fp mZoomViewport
 zoomViewport is an additional scale for viewport
fp mViewportDelta [2]
 [x,y] compensates for viewport's offsets to window
uint mReshapeCnt
Dlist< GuiScreenmScreenDlist
Vector2 mMousePos
 position of mouse cursor
uint mMouseButtons
 a bit for each button
FontmLfontText
FontmLfontTextThin
FontmLfontButton

Private Member Functions

void MouseHandler (bool motionEvent)
SafePtr< FontGetFont (eScreenFontType type)

Friends

class GuiScreen
class GuiObject
class GuiPrint


Detailed Description

GUI base class.

Constructor & Destructor Documentation

gfx::GuiBase::GuiBase ( void   ) 

Constructor.

gfx::GuiBase::~GuiBase (  )  [virtual]


Member Function Documentation

void gfx::GuiBase::Draw ( void   )  [virtual]

Draw all screens.

Reimplemented in gfx::Gui.

GuiScreen * gfx::GuiBase::NewScreen ( void   ) 

Return a new "screen". A screen is a set of GUI objects.

void gfx::GuiBase::DeleteScreen ( GuiScreen screen  ) 

void gfx::GuiBase::ReshapeViewport ( const Rect< int > &  viewport,
const Rect< int > &  window 
)

Viewport and reshape. The user must call ReshapeView() whenever the viewport is reshaped so that the GUI object can adjust accordingly.

void gfx::GuiBase::SetZoom ( const fp  zoom  ) 

Set zoom.

fp gfx::GuiBase::GetZoom ( void   )  [inline]

fp gfx::GuiBase::GetZoomViewport ( void   )  [inline]

uint gfx::GuiBase::GetReshapeCnt ( void   )  [inline]

bool gfx::GuiBase::IfBlend ( void   )  [inline]

void gfx::GuiBase::ToggleBlend ( void   )  [inline]

RGBA gfx::GuiBase::GetColorBg ( void   )  [inline]

void gfx::GuiBase::AppTimerOneSecond ( void   ) 

Your application must call this every second.

Timer callback invoked every second.

void gfx::GuiBase::AppMouseMotionHandler ( fp  x,
fp  y 
)

Your application must pass mouse events to this.

Client is supposed to pass mouse events to this.

Parameters:
x,y Mouse position.

void gfx::GuiBase::AppMouseButtonHandler ( eMouseEvent  button,
bool  down 
)

Your application must pass mouse events to this.

Your application is supposed to pass mouse events to this. This is for a single button event.

Parameters:
button Which button (singular): eMouseEvent_BUTTON_[123]
down True if button clicked, false if released.

bool gfx::GuiBase::GetMousePos ( Vector2 pos  ) 

returns false if mouse outside viewport

Returns:
If mouse is inside viewport, true and position by reference.

void gfx::GuiBase::SetMousePos ( const Vector2 pos  ) 

Mouse was moved.

virtual Vector2 gfx::GuiBase::MousePos2ViewportPos ( const Vector2 mousePos  )  [pure virtual]

Implemented in gfx::Gui.

uint gfx::GuiBase::GetMouseButtons ( void   ) 

Get/set mouse button bit fields. Use a combination of eMouseEvent_BUTTON_*.

void gfx::GuiBase::SetMouseButtons ( uint  buttons  ) 

SafePtr<Font> gfx::GuiBase::GetButtonFont ( void   )  [inline]

font wrappers for related Gui* classes

void gfx::GuiBase::MouseHandler ( bool  motionEvent  )  [private]

Mouse handler.

SafePtr< Font > gfx::GuiBase::GetFont ( eScreenFontType  type  )  [private]

Common helper to get appropriate Font object.


Friends And Related Function Documentation

friend class GuiScreen [friend]

friend class GuiObject [friend]

friend class GuiPrint [friend]


Member Data Documentation

Rect<int> gfx::GuiBase::mViewport

Rect<int> gfx::GuiBase::mViewportInitial

Rect<int> gfx::GuiBase::mWindow

bool gfx::GuiBase::mBlend [protected]

whether to blend widgets with background

RGBA gfx::GuiBase::mColorBg [protected]

background if not blend

fp gfx::GuiBase::mZoom [protected]

zoom is a base scale

fp gfx::GuiBase::mZoomViewport [protected]

zoomViewport is an additional scale for viewport

fp gfx::GuiBase::mViewportDelta[2] [protected]

[x,y] compensates for viewport's offsets to window

uint gfx::GuiBase::mReshapeCnt [protected]

Dlist<GuiScreen> gfx::GuiBase::mScreenDlist [protected]

Vector2 gfx::GuiBase::mMousePos [protected]

position of mouse cursor

uint gfx::GuiBase::mMouseButtons [protected]

a bit for each button

Font* gfx::GuiBase::mLfontText [protected]

These are pointer to actual Font objects. Must be assigned by the derived Gui class.

Font* gfx::GuiBase::mLfontTextThin [protected]

Font* gfx::GuiBase::mLfontButton [protected]


The documentation for this class was generated from the following files: Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:26 2007