OpenXcom  1.0
Open-source clone of the original X-Com
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | List of all members
OpenXcom::BaseView Class Reference

Interactive view of a base. More...

#include <BaseView.h>

Inheritance diagram for OpenXcom::BaseView:
OpenXcom::InteractiveSurface OpenXcom::Surface

Public Member Functions

 BaseView (int width, int height, int x=0, int y=0)
 Creates a new base view at the specified position and size. More...
 
 ~BaseView ()
 Cleans up the base view. More...
 
void initText (Font *big, Font *small, Language *lang)
 Initializes the base view's various resources. More...
 
void setBase (Base *base)
 Sets the base to display. More...
 
void setTexture (SurfaceSet *texture)
 Sets the texture for this base view. More...
 
BaseFacilitygetSelectedFacility () const
 Gets the currently selected facility. More...
 
void resetSelectedFacility ()
 Prevents any mouseover bugs on dismantling base facilities before setBase has had time to update the base.
 
int getGridX () const
 Gets the X position of the currently selected square. More...
 
int getGridY () const
 Gets the Y position of the currently selected square. More...
 
void setSelectable (int size)
 Sets whether the base view is selectable. More...
 
bool isPlaceable (RuleBaseFacility *rule) const
 Checks if a facility can be placed. More...
 
bool isQueuedBuilding (RuleBaseFacility *rule) const
 Checks if the placed facility is placed in queue or not. More...
 
void reCalcQueuedBuildings ()
 ReCalculates the remaining build-time of all queued buildings.
 
void think ()
 Handles the timers. More...
 
void blink ()
 Blinks the selector. More...
 
void draw ()
 Draws the base view. More...
 
void blit (Surface *surface)
 Blits the base view onto another surface. More...
 
void mouseOver (Action *action, State *state)
 Special handling for mouse hovers. More...
 
void mouseOut (Action *action, State *state)
 Special handling for mouse hovering out. More...
 
- Public Member Functions inherited from OpenXcom::InteractiveSurface
 InteractiveSurface (int width, int height, int x=0, int y=0)
 Creates a new interactive surface with the specified size and position. More...
 
virtual ~InteractiveSurface ()
 Cleans up the interactive surface.
 
void setVisible (bool visible)
 Sets the surface's visibility. More...
 
virtual void handle (Action *action, State *state)
 Processes any pending events. More...
 
virtual void setFocus (bool focus)
 Sets the focus of this surface. More...
 
bool isFocused () const
 Gets the focus of this surface. More...
 
virtual void unpress (State *state)
 Unpresses the surface. More...
 
void onMouseClick (ActionHandler handler, Uint8 button=SDL_BUTTON_LEFT)
 Hooks an action handler to a mouse click on the surface. More...
 
void onMousePress (ActionHandler handler, Uint8 button=0)
 Hooks an action handler to a mouse press over the surface. More...
 
void onMouseRelease (ActionHandler handler, Uint8 button=0)
 Hooks an action handler to a mouse release over the surface. More...
 
void onMouseIn (ActionHandler handler)
 Hooks an action handler to moving the mouse into the surface. More...
 
void onMouseOver (ActionHandler handler)
 Hooks an action handler to moving the mouse over the surface. More...
 
void onMouseOut (ActionHandler handler)
 Hooks an action handler to moving the mouse out of the surface. More...
 
void onKeyboardPress (ActionHandler handler, SDLKey key=SDLK_ANY)
 Hooks an action handler to pressing a key when the surface is focused. More...
 
void onKeyboardRelease (ActionHandler handler, SDLKey key=SDLK_ANY)
 Hooks an action handler to releasing a key when the surface is focused. More...
 
virtual void mousePress (Action *action, State *state)
 Processes a mouse button press event. More...
 
virtual void mouseRelease (Action *action, State *state)
 Processes a mouse button release event. More...
 
virtual void mouseClick (Action *action, State *state)
 Processes a mouse click event. More...
 
virtual void mouseIn (Action *action, State *state)
 Processes a mouse hover in event. More...
 
virtual void keyboardPress (Action *action, State *state)
 Processes a keyboard key press event. More...
 
virtual void keyboardRelease (Action *action, State *state)
 Processes a keyboard key release event. More...
 
void setListButton ()
 Check this surface to see if it's a textlist button. More...
 
- Public Member Functions inherited from OpenXcom::Surface
 Surface (int width, int height, int x=0, int y=0, int bpp=8)
 Creates a new surface with the specified size and position. More...
 
 Surface (const Surface &other)
 Creates a new surface from an existing one. More...
 
virtual ~Surface ()
 Cleans up the surface. More...
 
void loadScr (const std::string &filename)
 Loads an X-Com SCR graphic. More...
 
void loadSpk (const std::string &filename)
 Loads an X-Com SPK graphic. More...
 
void loadBdy (const std::string &filename)
 Loads a TFTD BDY graphic. More...
 
void loadImage (const std::string &filename)
 Loads a general image file. More...
 
void clear ()
 Clears the surface's contents. More...
 
void offset (int off, int min=-1, int max=-1, int mul=1)
 Offsets the surface's colors by a set amount. More...
 
void invert (Uint8 mid)
 Inverts the surface's colors. More...
 
void copy (Surface *surface)
 Copies a portion of another surface into this one. More...
 
void drawRect (SDL_Rect *rect, Uint8 color)
 Draws a filled rectangle on the surface. More...
 
void drawRect (Sint16 x, Sint16 y, Sint16 w, Sint16 h, Uint8 color)
 Draws a filled rectangle on the surface. More...
 
void drawLine (Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 color)
 Draws a line on the surface. More...
 
void drawCircle (Sint16 x, Sint16 y, Sint16 r, Uint8 color)
 Draws a filled circle on the surface. More...
 
void drawPolygon (Sint16 *x, Sint16 *y, int n, Uint8 color)
 Draws a filled polygon on the surface. More...
 
void drawTexturedPolygon (Sint16 *x, Sint16 *y, int n, Surface *texture, int dx, int dy)
 Draws a textured polygon on the surface. More...
 
void drawString (Sint16 x, Sint16 y, const char *s, Uint8 color)
 Draws a string on the surface. More...
 
virtual void setPalette (SDL_Color *colors, int firstcolor=0, int ncolors=256)
 Sets the surface's palette. More...
 
SDL_Color * getPalette () const
 Returns the surface's 8bpp palette. More...
 
virtual void setX (int x)
 Sets the X position of the surface. More...
 
int getX () const
 Returns the position of the surface in the X axis. More...
 
virtual void setY (int y)
 Sets the Y position of the surface. More...
 
int getY () const
 Returns the position of the surface in the Y axis. More...
 
void setVisible (bool visible)
 Sets the surface's visibility. More...
 
bool getVisible () const
 Gets the surface's visibility. More...
 
void resetCrop ()
 Resets the cropping rectangle for the surface. More...
 
SDL_Rect * getCrop ()
 Gets the cropping rectangle for the surface. More...
 
void setPixel (int x, int y, Uint8 pixel)
 Changes the color of a pixel in the surface, relative to the top-left corner of the surface. More...
 
void setPixelIterative (int *x, int *y, Uint8 pixel)
 Changes the color of a pixel in the surface and returns the next pixel position. More...
 
Uint8 getPixel (int x, int y) const
 Returns the color of a specified pixel in the surface. More...
 
SDL_Surface * getSurface () const
 Returns the internal SDL_Surface for SDL calls. More...
 
int getWidth () const
 Returns the width of the surface. More...
 
virtual void setWidth (int width)
 Sets the width of the surface. More...
 
int getHeight () const
 Returns the height of the surface. More...
 
virtual void setHeight (int height)
 Sets the height of the surface. More...
 
void setHidden (bool hidden)
 Sets the surface's special hidden flag. More...
 
void lock ()
 Locks the surface. More...
 
void unlock ()
 Unlocks the surface. More...
 
void blitNShade (Surface *surface, int x, int y, int off, bool half=false, int newBaseColor=0)
 Specific blit function to blit battlescape terrain data in different shades in a fast way. More...
 
void invalidate ()
 Invalidate the surface: force it to be redrawn. More...
 
std::string getTooltip () const
 Gets the tooltip of the surface. More...
 
void setTooltip (const std::string &tooltip)
 Sets the tooltip of the surface. More...
 

Additional Inherited Members

- Protected Member Functions inherited from OpenXcom::InteractiveSurface
bool isButtonPressed (Uint8 button=0)
 Is this mouse button pressed?
 
virtual bool isButtonHandled (Uint8 button=0)
 Is this mouse button event handled?
 
void setButtonPressed (Uint8 button, bool pressed)
 Set a mouse button's internal state.
 
- Protected Member Functions inherited from OpenXcom::Surface
void resize (int width, int height)
 Recreates the surface with a new size. More...
 

Detailed Description

Interactive view of a base.

Takes a certain base and displays all its facilities and status, allowing players to manage them.

Constructor & Destructor Documentation

OpenXcom::BaseView::BaseView ( int  width,
int  height,
int  x = 0,
int  y = 0 
)

Creates a new base view at the specified position and size.

Sets up a base view with the specified size and position.

Parameters
widthWidth in pixels.
heightHeight in pixels.
xX position in pixels.
yY position in pixels.
OpenXcom::BaseView::~BaseView ( )

Cleans up the base view.

Deletes contents.

Member Function Documentation

void OpenXcom::BaseView::blink ( )

Blinks the selector.

Makes the facility selector blink.

void OpenXcom::BaseView::blit ( Surface surface)
virtual

Blits the base view onto another surface.

Blits the base view and selector.

Parameters
surfacePointer to surface to blit onto.

Reimplemented from OpenXcom::Surface.

void OpenXcom::BaseView::draw ( )
virtual

Draws the base view.

Draws the view of all the facilities in the base, connectors between them and crafts landed in hangars.

Reimplemented from OpenXcom::Surface.

int OpenXcom::BaseView::getGridX ( ) const

Gets the X position of the currently selected square.

Returns the X position of the grid square the mouse is currently over.

Returns
X position on the grid.
int OpenXcom::BaseView::getGridY ( ) const

Gets the Y position of the currently selected square.

Returns the Y position of the grid square the mouse is currently over.

Returns
Y position on the grid.
BaseFacility * OpenXcom::BaseView::getSelectedFacility ( ) const

Gets the currently selected facility.

Returns the facility the mouse is currently over.

Returns
Pointer to base facility (0 if none).
void OpenXcom::BaseView::initText ( Font big,
Font small,
Language lang 
)
virtual

Initializes the base view's various resources.

Changes the various resources needed for text rendering.

The different fonts need to be passed in advance since the text size can change mid-text, and the language affects how the text is rendered.

Parameters
bigPointer to large-size font.
smallPointer to small-size font.
langPointer to current language.

Reimplemented from OpenXcom::Surface.

bool OpenXcom::BaseView::isPlaceable ( RuleBaseFacility rule) const

Checks if a facility can be placed.

Returns if a certain facility can be successfully placed on the currently selected square.

Parameters
ruleFacility type.
Returns
True if placeable, False otherwise.
bool OpenXcom::BaseView::isQueuedBuilding ( RuleBaseFacility rule) const

Checks if the placed facility is placed in queue or not.

Returns if the placed facility is placed in queue or not.

Parameters
ruleFacility type.
Returns
True if queued, False otherwise.
void OpenXcom::BaseView::mouseOut ( Action action,
State state 
)
virtual

Special handling for mouse hovering out.

Deselects the facility.

Parameters
actionPointer to an action.
stateState that the action handlers belong to.

Reimplemented from OpenXcom::InteractiveSurface.

void OpenXcom::BaseView::mouseOver ( Action action,
State state 
)
virtual

Special handling for mouse hovers.

Selects the facility the mouse is over.

Parameters
actionPointer to an action.
stateState that the action handlers belong to.

Reimplemented from OpenXcom::InteractiveSurface.

void OpenXcom::BaseView::setBase ( Base base)

Sets the base to display.

Changes the current base to display and initializes the internal base grid.

Parameters
basePointer to base to display.
void OpenXcom::BaseView::setSelectable ( int  size)

Sets whether the base view is selectable.

If enabled, the base view will respond to player input, highlighting the selected facility.

Parameters
sizeFacility length (0 disables it).
void OpenXcom::BaseView::setTexture ( SurfaceSet texture)

Sets the texture for this base view.

Changes the texture to use for drawing the various base elements.

Parameters
texturePointer to SurfaceSet to use.
void OpenXcom::BaseView::think ( )
virtual

Handles the timers.

Keeps the animation timers running.

Reimplemented from OpenXcom::Surface.


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