This commit is contained in:
parent
b02ddd5d0f
commit
fff2459f10
7 changed files with 125 additions and 105 deletions
|
@ -45,13 +45,14 @@
|
|||
Vars
|
||||
---- */
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CGUIButton::setButtonTarget(int *_target)
|
||||
void CGUIToggleButton::setButtonTarget(int *_target)
|
||||
{
|
||||
m_target=_target;
|
||||
}
|
||||
|
@ -63,7 +64,44 @@ void CGUIButton::setButtonTarget(int *_target)
|
|||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CGUIButton::setButtonData(int *_data)
|
||||
void CGUIToggleButton::think(int _frames)
|
||||
{
|
||||
ASSERT(getTarget());
|
||||
|
||||
CGUIObject::think(_frames);
|
||||
if(isSelected())
|
||||
{
|
||||
int pad;
|
||||
|
||||
pad=PadGetRepeat(0);
|
||||
if(pad&PAD_CROSS)
|
||||
{
|
||||
int *target;
|
||||
target=getTarget();
|
||||
if(*target==true)
|
||||
{
|
||||
*target=false;
|
||||
}
|
||||
else
|
||||
{
|
||||
*target=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CGUICycleButton::setButtonData(int *_data)
|
||||
{
|
||||
m_data=_data;
|
||||
}
|
||||
|
@ -75,12 +113,12 @@ void CGUIButton::setButtonData(int *_data)
|
|||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CGUIButton::think(int _frames)
|
||||
void CGUICycleButton::think(int _frames)
|
||||
{
|
||||
ASSERT(m_target);
|
||||
ASSERT(m_data);
|
||||
ASSERT(getTarget());
|
||||
ASSERT(getData());
|
||||
|
||||
CGUIObject::think(_frames);
|
||||
CGUIToggleButton::think(_frames);
|
||||
if(isSelected())
|
||||
{
|
||||
int pad;
|
||||
|
@ -88,29 +126,31 @@ void CGUIButton::think(int _frames)
|
|||
pad=PadGetRepeat(0);
|
||||
if(pad&PAD_CROSS)
|
||||
{
|
||||
int *target;
|
||||
int *data;
|
||||
int tmp;
|
||||
|
||||
data=m_data;
|
||||
tmp=*data;
|
||||
target=getTarget();
|
||||
data=getData();
|
||||
do
|
||||
{
|
||||
tmp=*data;
|
||||
data++;
|
||||
if(*m_target==tmp)
|
||||
if(*target==*data)
|
||||
{
|
||||
break;
|
||||
}
|
||||
data++;
|
||||
}
|
||||
while(tmp<*data);
|
||||
if(tmp>*data)
|
||||
{
|
||||
data=m_data;
|
||||
data=getData();
|
||||
}
|
||||
*m_target=*data;
|
||||
*target=*data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*===========================================================================
|
||||
end */
|
|
@ -34,22 +34,40 @@
|
|||
Structure defintions
|
||||
-------------------- */
|
||||
|
||||
class CGUIButton : public CGUIObject
|
||||
class CGUIToggleButton : public CGUIObject
|
||||
{
|
||||
public:
|
||||
virtual void setButtonTarget(int *_target);
|
||||
|
||||
virtual void think(int _frames);
|
||||
|
||||
|
||||
protected:
|
||||
int *getTarget() {return m_target;}
|
||||
virtual int isSelectable() {return true;}
|
||||
|
||||
|
||||
private:
|
||||
int *m_target;
|
||||
|
||||
};
|
||||
|
||||
|
||||
class CGUICycleButton : public CGUIToggleButton
|
||||
{
|
||||
public:
|
||||
virtual void setButtonData(int *_data);
|
||||
|
||||
virtual void think(int _frames);
|
||||
|
||||
|
||||
protected:
|
||||
virtual int isSelectable() {return true;}
|
||||
int *getData() {return m_data;}
|
||||
|
||||
|
||||
private:
|
||||
int *m_target;
|
||||
int *m_data;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ public:
|
|||
} TextReadoutData;
|
||||
|
||||
|
||||
virtual void init(CGUIObject *_parent,GUIId _id);
|
||||
virtual void init(CGUIObject *_parent,GUIId _id=noId);
|
||||
|
||||
virtual void setReadoutTarget(int *_target);
|
||||
virtual void setReadoutData(TextReadoutData *_data);
|
||||
|
@ -77,7 +77,7 @@ public:
|
|||
} SpriteReadoutData;
|
||||
|
||||
|
||||
virtual void init(CGUIObject *_parent,GUIId _id);
|
||||
virtual void init(CGUIObject *_parent,GUIId _id=noId);
|
||||
virtual void shutdown();
|
||||
|
||||
virtual void setReadoutTarget(int *_target);
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
class CGUITextBox : public CGUIObjectWithFont
|
||||
{
|
||||
public:
|
||||
virtual void init(CGUIObject *_parent,GUIId _id);
|
||||
virtual void init(CGUIObject *_parent,GUIId _id=noId);
|
||||
|
||||
virtual void setText(unsigned int _textId);
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ class CGUIObject
|
|||
{
|
||||
public:
|
||||
typedef int GUIId;
|
||||
static const GUIId noId=-1;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
|
@ -50,7 +51,7 @@ public:
|
|||
};
|
||||
|
||||
|
||||
virtual void init(CGUIObject *_parent,GUIId _id);
|
||||
virtual void init(CGUIObject *_parent,GUIId _id=noId);
|
||||
virtual void shutdown();
|
||||
|
||||
void setObjectX(int _x) {m_x=_x;recalc();}
|
||||
|
@ -115,7 +116,7 @@ private:
|
|||
class CGUIObjectWithFont : public CGUIObject
|
||||
{
|
||||
public:
|
||||
virtual void init(CGUIObject *_parent,GUIId _id);
|
||||
virtual void init(CGUIObject *_parent,GUIId _id=noId);
|
||||
virtual void shutdown();
|
||||
|
||||
virtual void setFlags(GUI_FLAGS _flags);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue