This commit is contained in:
parent
b02ddd5d0f
commit
fff2459f10
7 changed files with 125 additions and 105 deletions
|
@ -52,6 +52,8 @@ eng=CONTROL TYPE
|
||||||
eng=MUSIC
|
eng=MUSIC
|
||||||
[STR__PAULS_TEST__SFX]
|
[STR__PAULS_TEST__SFX]
|
||||||
eng=SFX
|
eng=SFX
|
||||||
|
[STR__PAULS_TEST__EXIT]
|
||||||
|
eng=EXIT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -45,13 +45,14 @@
|
||||||
Vars
|
Vars
|
||||||
---- */
|
---- */
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
Function:
|
Function:
|
||||||
Purpose:
|
Purpose:
|
||||||
Params:
|
Params:
|
||||||
Returns:
|
Returns:
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
void CGUIButton::setButtonTarget(int *_target)
|
void CGUIToggleButton::setButtonTarget(int *_target)
|
||||||
{
|
{
|
||||||
m_target=_target;
|
m_target=_target;
|
||||||
}
|
}
|
||||||
|
@ -63,7 +64,44 @@ void CGUIButton::setButtonTarget(int *_target)
|
||||||
Params:
|
Params:
|
||||||
Returns:
|
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;
|
m_data=_data;
|
||||||
}
|
}
|
||||||
|
@ -75,12 +113,12 @@ void CGUIButton::setButtonData(int *_data)
|
||||||
Params:
|
Params:
|
||||||
Returns:
|
Returns:
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
void CGUIButton::think(int _frames)
|
void CGUICycleButton::think(int _frames)
|
||||||
{
|
{
|
||||||
ASSERT(m_target);
|
ASSERT(getTarget());
|
||||||
ASSERT(m_data);
|
ASSERT(getData());
|
||||||
|
|
||||||
CGUIObject::think(_frames);
|
CGUIToggleButton::think(_frames);
|
||||||
if(isSelected())
|
if(isSelected())
|
||||||
{
|
{
|
||||||
int pad;
|
int pad;
|
||||||
|
@ -88,29 +126,31 @@ void CGUIButton::think(int _frames)
|
||||||
pad=PadGetRepeat(0);
|
pad=PadGetRepeat(0);
|
||||||
if(pad&PAD_CROSS)
|
if(pad&PAD_CROSS)
|
||||||
{
|
{
|
||||||
|
int *target;
|
||||||
int *data;
|
int *data;
|
||||||
int tmp;
|
int tmp;
|
||||||
|
|
||||||
data=m_data;
|
target=getTarget();
|
||||||
tmp=*data;
|
data=getData();
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
tmp=*data;
|
tmp=*data;
|
||||||
data++;
|
if(*target==*data)
|
||||||
if(*m_target==tmp)
|
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
data++;
|
||||||
}
|
}
|
||||||
while(tmp<*data);
|
while(tmp<*data);
|
||||||
if(tmp>*data)
|
if(tmp>*data)
|
||||||
{
|
{
|
||||||
data=m_data;
|
data=getData();
|
||||||
}
|
}
|
||||||
*m_target=*data;
|
*target=*data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*===========================================================================
|
/*===========================================================================
|
||||||
end */
|
end */
|
|
@ -34,22 +34,40 @@
|
||||||
Structure defintions
|
Structure defintions
|
||||||
-------------------- */
|
-------------------- */
|
||||||
|
|
||||||
class CGUIButton : public CGUIObject
|
class CGUIToggleButton : public CGUIObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void setButtonTarget(int *_target);
|
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 setButtonData(int *_data);
|
||||||
|
|
||||||
virtual void think(int _frames);
|
virtual void think(int _frames);
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual int isSelectable() {return true;}
|
int *getData() {return m_data;}
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int *m_target;
|
|
||||||
int *m_data;
|
int *m_data;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ public:
|
||||||
} TextReadoutData;
|
} TextReadoutData;
|
||||||
|
|
||||||
|
|
||||||
virtual void init(CGUIObject *_parent,GUIId _id);
|
virtual void init(CGUIObject *_parent,GUIId _id=noId);
|
||||||
|
|
||||||
virtual void setReadoutTarget(int *_target);
|
virtual void setReadoutTarget(int *_target);
|
||||||
virtual void setReadoutData(TextReadoutData *_data);
|
virtual void setReadoutData(TextReadoutData *_data);
|
||||||
|
@ -77,7 +77,7 @@ public:
|
||||||
} SpriteReadoutData;
|
} SpriteReadoutData;
|
||||||
|
|
||||||
|
|
||||||
virtual void init(CGUIObject *_parent,GUIId _id);
|
virtual void init(CGUIObject *_parent,GUIId _id=noId);
|
||||||
virtual void shutdown();
|
virtual void shutdown();
|
||||||
|
|
||||||
virtual void setReadoutTarget(int *_target);
|
virtual void setReadoutTarget(int *_target);
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
class CGUITextBox : public CGUIObjectWithFont
|
class CGUITextBox : public CGUIObjectWithFont
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void init(CGUIObject *_parent,GUIId _id);
|
virtual void init(CGUIObject *_parent,GUIId _id=noId);
|
||||||
|
|
||||||
virtual void setText(unsigned int _textId);
|
virtual void setText(unsigned int _textId);
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ class CGUIObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef int GUIId;
|
typedef int GUIId;
|
||||||
|
static const GUIId noId=-1;
|
||||||
|
|
||||||
typedef enum
|
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();
|
virtual void shutdown();
|
||||||
|
|
||||||
void setObjectX(int _x) {m_x=_x;recalc();}
|
void setObjectX(int _x) {m_x=_x;recalc();}
|
||||||
|
@ -115,7 +116,7 @@ private:
|
||||||
class CGUIObjectWithFont : public CGUIObject
|
class CGUIObjectWithFont : public CGUIObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void init(CGUIObject *_parent,GUIId _id);
|
virtual void init(CGUIObject *_parent,GUIId _id=noId);
|
||||||
virtual void shutdown();
|
virtual void shutdown();
|
||||||
|
|
||||||
virtual void setFlags(GUI_FLAGS _flags);
|
virtual void setFlags(GUI_FLAGS _flags);
|
||||||
|
|
|
@ -112,23 +112,19 @@ int h=40;
|
||||||
|
|
||||||
CGUITextReadout::TextReadoutData onOffTextReadouts[]=
|
CGUITextReadout::TextReadoutData onOffTextReadouts[]=
|
||||||
{
|
{
|
||||||
{ 0, STR__ON, },
|
{ false, STR__ON, },
|
||||||
{ 1, STR__OFF, },
|
{ true, STR__OFF, },
|
||||||
{ 0, 0, },
|
{ 0, 0, },
|
||||||
};
|
};
|
||||||
CGUISpriteReadout::SpriteReadoutData onOffSpriteReadouts[]=
|
CGUISpriteReadout::SpriteReadoutData onOffSpriteReadouts[]=
|
||||||
{
|
{
|
||||||
{ 0, FRM__CROSS, },
|
{ false, FRM__CROSS, },
|
||||||
{ 1, FRM__TICK, },
|
{ true, FRM__TICK, },
|
||||||
{ 0, 0, },
|
{ 0, 0, },
|
||||||
};
|
};
|
||||||
int onOffValues[]=
|
int musicStatus=false;
|
||||||
{
|
int sfxStatus=false;
|
||||||
0,1,
|
int readyToExit=false;
|
||||||
0,
|
|
||||||
};
|
|
||||||
int musicStatus=0;
|
|
||||||
int sfxStatus=0;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -139,99 +135,59 @@ void CPaulScene::init()
|
||||||
{
|
{
|
||||||
CGUIGroupFrame *fr;
|
CGUIGroupFrame *fr;
|
||||||
CGUITextBox *tb;
|
CGUITextBox *tb;
|
||||||
CGUIButton *bu;
|
CGUIToggleButton *tg;
|
||||||
CGUITextReadout *tr;
|
CGUITextReadout *tr;
|
||||||
CGUISpriteReadout *sr;
|
CGUISpriteReadout *sr;
|
||||||
|
|
||||||
s_fontBank.initialise(&standardFont);
|
s_fontBank.initialise(&standardFont);
|
||||||
|
|
||||||
baseGUIObject=new ("Uber GUI object") CGUIControlFrame();
|
baseGUIObject=new ("Uber GUI object") CGUIControlFrame();
|
||||||
baseGUIObject->init(NULL,1);
|
baseGUIObject->init(NULL);
|
||||||
baseGUIObject->setObjectXYWH(32,32,512-64,256-64);
|
baseGUIObject->setObjectXYWH(32,32,512-64,256-64);
|
||||||
|
|
||||||
fr=new ("frame") CGUIGroupFrame();
|
fr=new ("frame") CGUIGroupFrame();
|
||||||
fr->init(baseGUIObject,2);
|
fr->init(baseGUIObject);
|
||||||
fr->setObjectXYWH(10,10,448-20,30);
|
fr->setObjectXYWH(10,10,448-20,30);
|
||||||
tb=new ("textbox") CGUITextBox();
|
tb=new ("textbox") CGUITextBox();
|
||||||
tb->init(fr,20);
|
tb->init(fr);
|
||||||
tb->setObjectXYWH(0,0,300,30);
|
tb->setObjectXYWH(0,0,300,30);
|
||||||
tb->setText(STR__PAULS_TEST__MUSIC);
|
tb->setText(STR__PAULS_TEST__MUSIC);
|
||||||
bu=new ("button") CGUIButton();
|
tg=new ("togglebutton") CGUIToggleButton();
|
||||||
bu->init(fr,21);
|
tg->init(fr);
|
||||||
// bu->setObjectXYWH(0,0,0,0);
|
tg->setButtonTarget(&musicStatus);
|
||||||
bu->setButtonTarget(&musicStatus);
|
|
||||||
bu->setButtonData(onOffValues);
|
|
||||||
tr=new ("textreadout") CGUITextReadout();
|
tr=new ("textreadout") CGUITextReadout();
|
||||||
tr->init(fr,22);
|
tr->init(fr);
|
||||||
tr->setObjectXYWH(300,0,128,30);
|
tr->setObjectXYWH(300,0,128,30);
|
||||||
tr->setReadoutTarget(&musicStatus);
|
tr->setReadoutTarget(&musicStatus);
|
||||||
tr->setReadoutData(onOffTextReadouts);
|
tr->setReadoutData(onOffTextReadouts);
|
||||||
|
|
||||||
fr=new ("frame") CGUIGroupFrame();
|
fr=new ("frame") CGUIGroupFrame();
|
||||||
fr->init(baseGUIObject,3);
|
fr->init(baseGUIObject);
|
||||||
fr->setObjectXYWH(10,50,448-20,30);
|
fr->setObjectXYWH(10,50,448-20,30);
|
||||||
tb=new ("textbox") CGUITextBox();
|
tb=new ("textbox") CGUITextBox();
|
||||||
tb->init(fr,30);
|
tb->init(fr);
|
||||||
tb->setObjectXYWH(0,0,300,30);
|
tb->setObjectXYWH(0,0,300,30);
|
||||||
tb->setText(STR__PAULS_TEST__SFX);
|
tb->setText(STR__PAULS_TEST__SFX);
|
||||||
bu=new ("button") CGUIButton();
|
tg=new ("togglebutton") CGUIToggleButton();
|
||||||
bu->init(fr,31);
|
tg->init(fr);
|
||||||
// bu->setObjectXYWH(0,0,0,0);
|
tg->setButtonTarget(&sfxStatus);
|
||||||
bu->setButtonTarget(&sfxStatus);
|
|
||||||
bu->setButtonData(onOffValues);
|
|
||||||
sr=new ("spritereadout") CGUISpriteReadout();
|
sr=new ("spritereadout") CGUISpriteReadout();
|
||||||
sr->init(fr,32);
|
sr->init(fr);
|
||||||
sr->setObjectXYWH(300,0,128,30);
|
sr->setObjectXYWH(300,0,128,30);
|
||||||
sr->setReadoutTarget(&sfxStatus);
|
sr->setReadoutTarget(&sfxStatus);
|
||||||
sr->setReadoutData(onOffSpriteReadouts);
|
sr->setReadoutData(onOffSpriteReadouts);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fr=new ("frame") CGUIGroupFrame();
|
fr=new ("frame") CGUIGroupFrame();
|
||||||
fr->init(baseGUIObject,3);
|
fr->init(baseGUIObject);
|
||||||
fr->setObjectXYWH(10,90,448-20,30);
|
fr->setObjectXYWH(10,155,448-20,30);
|
||||||
tb=new ("textbox") CGUITextBox();
|
tb=new ("textbox") CGUITextBox();
|
||||||
tb->init(fr,30);
|
tb->init(fr);
|
||||||
tb->setObjectXYWH(0,0,300,30);
|
tb->setObjectXYWH(0,0,428,30);
|
||||||
tb->setText(STR__PAULS_TEST__SFX);
|
tb->setText(STR__PAULS_TEST__EXIT);
|
||||||
bu=new ("button") CGUIButton();
|
tg=new ("togglebutton") CGUIToggleButton();
|
||||||
bu->init(fr,31);
|
tg->init(fr);
|
||||||
// bu->setObjectXYWH(0,0,0,0);
|
tg->setButtonTarget(&readyToExit);
|
||||||
bu->setButtonTarget(&sfxStatus);
|
|
||||||
bu->setButtonData(onOffValues);
|
|
||||||
sr=new ("spritereadout") CGUISpriteReadout();
|
|
||||||
sr->init(fr,32);
|
|
||||||
sr->setObjectXYWH(300,0,128,30);
|
|
||||||
sr->setReadoutTarget(&sfxStatus);
|
|
||||||
sr->setReadoutData(onOffSpriteReadouts);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
tb=new ("textbox") CGUITextBox();
|
|
||||||
tb->init(baseGUIObject,1);
|
|
||||||
tb->setObjectXYWH(10,10,400,25);
|
|
||||||
tb->setText(STR__PAULS_TEST_STRING_1);
|
|
||||||
|
|
||||||
fr=new ("frame") CGUIGroupFrame();
|
|
||||||
fr->init(baseGUIObject,2);
|
|
||||||
fr->setObjectXYWH(10,40,400,25);
|
|
||||||
tb=new ("textbox") CGUITextBox();
|
|
||||||
tb->init(fr,20);
|
|
||||||
tb->setObjectXYWH(50,1,300,22);
|
|
||||||
tb->setText(STR__PAULS_TEST_STRING_1);
|
|
||||||
bu=new ("button") CGUIButton();
|
|
||||||
bu->init(fr,21);
|
|
||||||
bu->setObjectXYWH(50,1,10,10);
|
|
||||||
bu->setButtonTarget(&testValue);
|
|
||||||
bu->setButtonData(testButtonData);
|
|
||||||
|
|
||||||
tr=new ("textreadout") CGUITextReadout();
|
|
||||||
tr->init(baseGUIObject,3);
|
|
||||||
tr->setObjectXYWH(10,70,400,25);
|
|
||||||
tr->setReadoutTarget(&testValue);
|
|
||||||
tr->setReadoutData(testReadoutData);
|
|
||||||
*/
|
|
||||||
// Heh.. this'll actually work =)
|
// Heh.. this'll actually work =)
|
||||||
// baseGUIObject->shutdown();
|
// baseGUIObject->shutdown();
|
||||||
|
|
||||||
|
@ -275,8 +231,9 @@ void CPaulScene::render()
|
||||||
y+=charHeight;
|
y+=charHeight;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseGUIObject->render();
|
if(baseGUIObject)
|
||||||
|
baseGUIObject->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -288,14 +245,16 @@ void CPaulScene::render()
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
void CPaulScene::think(int _frames)
|
void CPaulScene::think(int _frames)
|
||||||
{
|
{
|
||||||
/*
|
if(readyToExit)
|
||||||
CGUITextBox *tb;
|
{
|
||||||
tb=(CGUITextBox *)guiGetItem(1);
|
baseGUIObject->shutdown();
|
||||||
tb->setObjectWH(w,h);
|
delete baseGUIObject;
|
||||||
tb->setText(str);
|
baseGUIObject=NULL;
|
||||||
*/
|
readyToExit=0;
|
||||||
|
}
|
||||||
baseGUIObject->think(_frames);
|
|
||||||
|
if(baseGUIObject)
|
||||||
|
baseGUIObject->think(_frames);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue