![]() |
OpenXcom
1.0
Open-source clone of the original X-Com
|
Regular image that works like a button. More...
#include <BattlescapeButton.h>
Public Member Functions | |
BattlescapeButton (int width, int height, int x=0, int y=0) | |
Creates a new image button with the specified size and position. More... | |
virtual | ~BattlescapeButton () |
Cleans up the image button. | |
void | setColor (Uint8 color) |
Sets the image button's color. More... | |
Uint8 | getColor () const |
Gets the image button's color. More... | |
void | setGroup (BattlescapeButton **group) |
Sets the image button's group. More... | |
void | mousePress (Action *action, State *state) |
Special handling for mouse presses. More... | |
void | mouseRelease (Action *action, State *state) |
Special handling for mouse releases. | |
void | toggle (bool invert) |
Invert a button explicitly either ON or OFF. More... | |
void | allowToggleInversion () |
Allows this button to be toggled on/off with a click. More... | |
void | allowClickInversion () |
Allows this button to be toggled on when clicked, and off when released. More... | |
void | initSurfaces () |
Sets up the "pressed" surface. More... | |
void | blit (Surface *surface) |
Blits this surface onto another one. More... | |
void | setX (int x) |
Alters both versions of the button's X pos. More... | |
void | setY (int y) |
Alters both versions of the button's Y pos. More... | |
![]() | |
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 | 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 | mouseOver (Action *action, State *state) |
Processes a mouse hover event. More... | |
virtual void | mouseOut (Action *action, State *state) |
Processes a mouse hover out 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... | |
![]() | |
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 | loadRaw (const std::vector< unsigned char > &bytes) |
Loads a raw pixel array. More... | |
void | loadRaw (const std::vector< char > &bytes) |
Loads a raw pixel array. 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 (Uint32 color=0) |
Clears the surface's contents eith a specified colour. 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 | offsetBlock (int off, int blk=16, int mul=1) |
Offsets the surface's colors in a color block. More... | |
void | invert (Uint8 mid) |
Inverts the surface's colors. More... | |
virtual void | think () |
Runs surface functionality every cycle. More... | |
virtual void | draw () |
Draws the surface's graphic. More... | |
virtual void | initText (Font *, Font *, Language *) |
Initializes the surface's various text resources. | |
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... | |
int | getX () const |
Returns the position of the surface in the X axis. More... | |
int | getY () const |
Returns the position of the surface in the Y axis. 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... | |
Uint8 * | getRaw (int x, int y) const |
Returns the pointer to 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 shade, bool half=false, int newBaseColor=0) |
Specific blit function to blit battlescape terrain data in different shades in a fast way. More... | |
void | blitNShade (Surface *surface, int x, int y, int shade, GraphSubset range) |
Specific blit function to blit battlescape terrain data in different shades in a fast way. More... | |
void | invalidate (bool valid=true) |
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... | |
virtual void | setSecondaryColor (Uint8) |
Sets the secondary color of the surface. | |
virtual void | setBorderColor (Uint8) |
Sets the border colour of the surface. | |
virtual void | setHighContrast (bool) |
Sets the high contrast color setting of the surface. | |
void | setTFTDMode (bool mode) |
Sets this button to use a colour lookup table instead of inversion for its alternate form. More... | |
bool | isTFTDMode () const |
checks if this is a TFTD mode surface. More... | |
Additional Inherited Members | |
![]() | |
bool | isButtonPressed (Uint8 button=0) const |
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. | |
![]() | |
template<typename T > | |
void | rawCopy (const std::vector< T > &bytes) |
Copies raw pixels. More... | |
void | resize (int width, int height) |
Resizes the surface. More... | |
Regular image that works like a button.
Unlike the TextButton, this button doesn't draw anything on its own. It takes an existing graphic and treats it as a button, inverting colors when necessary. This is necessary for special buttons like in the Geoscape.
OpenXcom::BattlescapeButton::BattlescapeButton | ( | int | width, |
int | height, | ||
int | x = 0 , |
||
int | y = 0 |
||
) |
Creates a new image button with the specified size and position.
Sets up a battlescape button with the specified size and position.
width | Width in pixels. |
height | Height in pixels. |
x | X position in pixels. |
y | Y position in pixels. |
void OpenXcom::BattlescapeButton::allowClickInversion | ( | ) |
Allows this button to be toggled on when clicked, and off when released.
Click inversion mode: click to press, release to unpress.
void OpenXcom::BattlescapeButton::allowToggleInversion | ( | ) |
Allows this button to be toggled on/off with a click.
Toggle inversion mode: click to press, click to unpress.
|
virtual |
Blits this surface onto another one.
Blits this surface or the alternate surface onto another one, depending on whether the button is "pressed" or not.
surface | Pointer to surface to blit onto. |
Reimplemented from OpenXcom::Surface.
Uint8 OpenXcom::BattlescapeButton::getColor | ( | ) | const |
Gets the image button's color.
Returns the color for the battlescape button.
void OpenXcom::BattlescapeButton::initSurfaces | ( | ) |
Sets up the "pressed" surface.
Initializes the alternate surface for swapping out as needed.
performs a colour swap for TFTD style buttons, and a palette inversion for coloured buttons we use two separate surfaces because it's far easier to keep track of whether or not this surface is inverted.
Special handling for mouse presses.
Sets the button as the pressed button if it's part of a group, and inverts the colors when pressed.
action | Pointer to an action. |
state | State that the action handlers belong to. |
Reimplemented from OpenXcom::InteractiveSurface.
|
virtual |
Sets the image button's color.
Changes the color for the battlescape button.
color | Color value. |
Reimplemented from OpenXcom::Surface.
void OpenXcom::BattlescapeButton::setGroup | ( | BattlescapeButton ** | group | ) |
Sets the image button's group.
Changes the button group this battlescape button belongs to.
group | Pointer to the pressed button pointer in the group. Null makes it a regular button. |
|
virtual |
Alters both versions of the button's X pos.
Changes the position of the surface in the X axis.
x | X position in pixels. |
Reimplemented from OpenXcom::Surface.
|
virtual |
Alters both versions of the button's Y pos.
Changes the position of the surface in the Y axis.
y | Y position in pixels. |
Reimplemented from OpenXcom::Surface.
void OpenXcom::BattlescapeButton::toggle | ( | bool | press | ) |
Invert a button explicitly either ON or OFF.
Invert a button explicitly either ON or OFF and keep track of the state using our internal variables.
press | Set this button as pressed. |