tge/engine/gui/controls/guiBitmapButtonCtrl.h
2017-04-17 06:17:10 -06:00

67 lines
1.8 KiB
C++
Executable File

//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
#ifndef _GUIBITMAPBUTTON_H_
#define _GUIBITMAPBUTTON_H_
#ifndef _GUIBUTTONCTRL_H_
#include "gui/controls/guiButtonCtrl.h"
#endif
#ifndef _GTEXMANAGER_H_
#include "dgl/gTexManager.h"
#endif
///-------------------------------------
/// Bitmap Button Contrl
/// Set 'bitmap' comsole field to base name of bitmaps to use. This control will
/// append '_n' for normal
/// append '_h' for hilighted
/// append '_d' for depressed
///
/// if bitmap cannot be found it will use the default bitmap to render.
///
/// if the extent is set to (0,0) in the gui editor and apply hit, this control will
/// set it's extent to be exactly the size of the normal bitmap (if present)
///
class GuiBitmapButtonCtrl : public GuiButtonCtrl
{
private:
typedef GuiButtonCtrl Parent;
protected:
StringTableEntry mBitmapName;
TextureHandle mTextureNormal;
TextureHandle mTextureHilight;
TextureHandle mTextureDepressed;
TextureHandle mTextureInactive;
void renderButton(TextureHandle &texture, Point2I &offset, const RectI& updateRect);
public:
DECLARE_CONOBJECT(GuiBitmapButtonCtrl);
GuiBitmapButtonCtrl();
static void initPersistFields();
//Parent methods
bool onWake();
void onSleep();
void inspectPostApply();
void setBitmap(const char *name);
void onRender(Point2I offset, const RectI &updateRect);
};
class GuiBitmapButtonTextCtrl : public GuiBitmapButtonCtrl
{
typedef GuiBitmapButtonCtrl Parent;
public:
DECLARE_CONOBJECT(GuiBitmapButtonTextCtrl);
void onRender(Point2I offset, const RectI &updateRect);
};
#endif //_GUI_BITMAP_BUTTON_CTRL_H