engine/gui/guiTextEditSliderCtrl.h
2024-01-07 04:36:33 +00:00

71 lines
1.6 KiB
C++

//-----------------------------------------------------------------------------
// V12 Engine
//
// Copyright (c) 2001 GarageGames.Com
// Portions Copyright (c) 2001 by Sierra Online, Inc.
//-----------------------------------------------------------------------------
#ifndef _GUITEXTEDITSLIDERCTRL_H_
#define _GUITEXTEDITSLIDERCTRL_H_
#ifndef _GUITYPES_H_
#include "GUI/guiTypes.h"
#endif
#ifndef _GUITEXTEDITCTRL_H_
#include "GUI/guiTextEditCtrl.h"
#endif
class GuiTextEditSliderCtrl : public GuiTextEditCtrl
{
private:
typedef GuiTextEditCtrl Parent;
Point2I mRange;
F32 mIncAmount;
F32 mValue;
F32 mIncCounter;
F32 mMulInc;
StringTableEntry mFormat;
U32 mMouseDownTime;
// max string len, must be less then or equal to 255
public:
enum CtrlArea
{
None,
Slider,
ArrowUp,
ArrowDown
};
private:
CtrlArea mTextAreaHit;
public:
GuiTextEditSliderCtrl();
~GuiTextEditSliderCtrl();
DECLARE_CONOBJECT(GuiTextEditSliderCtrl);
static void initPersistFields();
static void consoleInit();
void getText(char *dest); // dest must be of size
// StructDes::MAX_STRING_LEN + 1
void setText(S32 tag);
void setText(const char *txt);
void setValue();
void checkRange();
void checkIncValue();
void timeInc(U32 elapseTime);
bool onKeyDown(const GuiEvent &event);
void onMouseDown(const GuiEvent &event);
void onMouseDragged(const GuiEvent &event);
void onMouseUp(const GuiEvent &event);
void onPreRender();
void onRender(Point2I offset, const RectI &updateRect, GuiControl *firstResponder);
};
#endif //_GUI_TEXTEDIT_CTRL_H