diff --git a/JGE/src/JGui.cpp b/JGE/src/JGui.cpp index de11e4e66..0306761a1 100644 --- a/JGE/src/JGui.cpp +++ b/JGE/src/JGui.cpp @@ -1,254 +1,216 @@ -//------------------------------------------------------------------------------------- -// -// JGE++ is a hardware accelerated 2D game SDK for PSP/Windows. -// -// Licensed under the BSD license, see LICENSE in JGE root for details. -// -// Copyright (c) 2007 James Hui (a.k.a. Dr.Watson) -// -//------------------------------------------------------------------------------------- - -#include "../include/JGE.h" -#include "../include/JGui.h" - -JGE* JGuiObject::mEngine = NULL; - -JGE* JGuiController::mEngine = NULL; - - -JGuiObject::JGuiObject(int id): mId(id) -{ - mEngine = JGE::GetInstance(); -} - - -JGuiObject::~JGuiObject() -{ -// JGERelease(); -} - - -bool JGuiObject::Leaving(u32 key __attribute__((unused))) -{ - return true; -} - - -bool JGuiObject::ButtonPressed() -{ - return false; -} - - -void JGuiObject::Entering() -{ - -} - - -int JGuiObject::GetId() -{ - return mId; -} - - -void JGuiObject::Update(float dt __attribute__((unused))) -{ -} - -JGuiController::JGuiController(int id, JGuiListener* listener) : mId(id), mListener(listener) -{ - mEngine = JGE::GetInstance(); - - mBg = NULL; - mShadingBg = NULL; - - mCount = 0; - mCurr = 0; - - mCursorX = SCREEN_WIDTH/2; - mCursorY = SCREEN_HEIGHT/2; - mShowCursor = false; - - mActionButton = PSP_CTRL_CIRCLE; - mLastKey = 0; - - mStyle = JGUI_STYLE_WRAPPING; - - mActive = true; -} - - -JGuiController::~JGuiController() -{ - for (int i=0;iGfx_BlendRect(mShadingBg, mShadingColor); - -// if (mBg != NULL) -// jge->Gfx_DrawImage(mBg, mBgX, mBgY); - - for (int i=0;iRender(); -} - - -bool JGuiController::KeyRepeated(u32 key, float dt) -{ - - bool doKey = false; - if (mLastKey != key) - { - mLastKey = key; - doKey = true; - mKeyRepeatDelay = JGUI_INITIAL_DELAY; - } - else - { - mKeyRepeatDelay -= dt; - if (mKeyRepeatDelay <= 0.0f) - { - mKeyRepeatDelay = JGUI_REPEAT_DELAY; - doKey = true; - } - } - - return doKey; -} - - -void JGuiController::Update(float dt) -{ - for (int i=0;iUpdate(dt); - - if (mEngine->GetButtonClick(mActionButton)) - { - if (mObjects[mCurr] != NULL && mObjects[mCurr]->ButtonPressed()) - { - if (mListener != NULL) - { - mListener->ButtonPressed(mId, mObjects[mCurr]->GetId()); - return; - } - } - } - - if (mEngine->GetButtonState(PSP_CTRL_LEFT) || mEngine->GetButtonState(PSP_CTRL_UP) || mEngine->GetAnalogY()<64 || mEngine->GetAnalogX()<64) - { - if (KeyRepeated(PSP_CTRL_UP, dt)) - { - int n = mCurr; - n--; - if (n<0) - { - if ((mStyle&JGUI_STYLE_WRAPPING)) - n = mCount-1; - else - n = 0; - } - - if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_UP)) - { - mCurr = n; - mObjects[mCurr]->Entering(); - } - } - } - else if (mEngine->GetButtonState(PSP_CTRL_RIGHT) || mEngine->GetButtonState(PSP_CTRL_DOWN) || mEngine->GetAnalogY()>192 || mEngine->GetAnalogX()>192) - { - if (KeyRepeated(PSP_CTRL_DOWN, dt)) - { - int n = mCurr; - n++; - if (n>mCount-1) - { - if ((mStyle&JGUI_STYLE_WRAPPING)) - n = 0; - else - n = mCount-1; - } - - if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_DOWN)) - { - mCurr = n; - mObjects[mCurr]->Entering(); - } - } - } - else - mLastKey = 0; - -} - - -void JGuiController::Add(JGuiObject* ctrl) -{ - if (mCountGetId()==id) - { - delete mObjects[i]; - for (int j=i;j +// +//------------------------------------------------------------------------------------- + +#include "../include/JGE.h" +#include "../include/JGui.h" + +JGE* JGuiObject::mEngine = NULL; + +JGE* JGuiController::mEngine = NULL; + + +JGuiObject::JGuiObject(int id): mId(id) +{ + mEngine = JGE::GetInstance(); +} + + +JGuiObject::~JGuiObject() +{ + // JGERelease(); +} + + +bool JGuiObject::Leaving(u32 key __attribute__((unused))) +{ + return true; +} + + +bool JGuiObject::ButtonPressed() +{ + return false; +} + + +void JGuiObject::Entering() +{ + +} + + +int JGuiObject::GetId() +{ + return mId; +} + + +void JGuiObject::Update(float dt __attribute__((unused))) +{ +} + +JGuiController::JGuiController(int id, JGuiListener* listener) : mId(id), mListener(listener) +{ + mEngine = JGE::GetInstance(); + + mBg = NULL; + mShadingBg = NULL; + + mCount = 0; + mCurr = 0; + + mCursorX = SCREEN_WIDTH/2; + mCursorY = SCREEN_HEIGHT/2; + mShowCursor = false; + + mActionButton = PSP_CTRL_CIRCLE; + + mStyle = JGUI_STYLE_WRAPPING; + + mActive = true; +} + + +JGuiController::~JGuiController() +{ + for (int i=0;iGfx_BlendRect(mShadingBg, mShadingColor); + + // if (mBg != NULL) + // jge->Gfx_DrawImage(mBg, mBgX, mBgY); + + for (int i=0;iRender(); +} + +void JGuiController::Update(float dt) +{ + for (int i=0;iUpdate(dt); + + u32 key = mEngine->ReadButton(); + if (key == mActionButton) + { + if (mObjects[mCurr] != NULL && mObjects[mCurr]->ButtonPressed()) + { + if (mListener != NULL) + { + mListener->ButtonPressed(mId, mObjects[mCurr]->GetId()); + return; + } + } + } + else if ((PSP_CTRL_LEFT == key) || (PSP_CTRL_UP == key)) // || mEngine->GetAnalogY() < 64 || mEngine->GetAnalogX() < 64) + { + int n = mCurr; + n--; + if (n<0) + { + if ((mStyle&JGUI_STYLE_WRAPPING)) + n = mCount-1; + else + n = 0; + } + + if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_UP)) + { + mCurr = n; + mObjects[mCurr]->Entering(); + } + } + else if ((PSP_CTRL_RIGHT == key) || (PSP_CTRL_DOWN == key)) // || mEngine->GetAnalogY()>192 || mEngine->GetAnalogX()>192) + { + int n = mCurr; + n++; + if (n>mCount-1) + { + if ((mStyle&JGUI_STYLE_WRAPPING)) + n = 0; + else + n = mCount-1; + } + + if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_DOWN)) + { + mCurr = n; + mObjects[mCurr]->Entering(); + } + } +} + + +void JGuiController::Add(JGuiObject* ctrl) +{ + if (mCountGetId()==id) + { + delete mObjects[i]; + for (int j=i;j