Add a perminate "Create Room" item
This commit is contained in:
@@ -1,9 +1,14 @@
|
||||
#include "global.h"
|
||||
#include "RoomWheel.h"
|
||||
#include "RageLog.h"
|
||||
#include "ScreenManager.h"
|
||||
|
||||
AutoScreenMessage( SM_BackFromRoomName )
|
||||
|
||||
void RoomWheel::Load( CString sType )
|
||||
{
|
||||
SetName( sType );
|
||||
m_offset = 0;
|
||||
LOG->Trace( "RoomWheel::Load('%s')", sType.c_str() );
|
||||
|
||||
LoadFromMetrics( sType );
|
||||
@@ -20,6 +25,8 @@ void RoomWheel::Load( CString sType )
|
||||
|
||||
m_WheelState = STATE_SELECTING_GENERIC;
|
||||
|
||||
AddPerminateItem( new RoomWheelData(TYPE_GENERIC, "Create Room", "Create a new game room", THEME->GetMetricC( m_sName, "CreateRoomColor")) );
|
||||
|
||||
BuildWheelItemsData(m_WheelBaseItemsData);
|
||||
RebuildWheelItems();
|
||||
}
|
||||
@@ -67,13 +74,32 @@ void RoomWheel::BuildWheelItemsData( vector<WheelItemBaseData*> &arrayWheelItemD
|
||||
}
|
||||
}
|
||||
|
||||
void RoomWheel::AddPerminateItem(RoomWheelData* itemdata)
|
||||
{
|
||||
m_offset++;
|
||||
AddItem( itemdata );
|
||||
}
|
||||
|
||||
bool RoomWheel::Select()
|
||||
{
|
||||
if (m_iSelection > 0)
|
||||
return WheelBase::Select();
|
||||
else if (m_iSelection == 0)
|
||||
{
|
||||
//Since this is not actually an option outside of this wheel NULL is a good idea.
|
||||
m_LastSelection = NULL;
|
||||
SCREENMAN->TextEntry( SM_BackFromRoomName, "Enter Room Name:", "", 255 );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void RoomWheelItem::LoadFromWheelItemBaseData(WheelItemBaseData* pWID)
|
||||
{
|
||||
RoomWheelData* tmpdata = (RoomWheelData*)pWID;
|
||||
WheelItemBase::LoadFromWheelItemBaseData(pWID);
|
||||
m_Desc.SetText(tmpdata->m_sDesc);
|
||||
m_Desc.SetDiffuseColor(tmpdata->m_color);
|
||||
m_text.SetDiffuseColor(tmpdata->m_color);
|
||||
m_Desc.SetDiffuseColor(pWID->m_color);
|
||||
m_text.SetDiffuseColor(pWID->m_color);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -13,7 +13,6 @@ struct RoomWheelData : public WheelItemBaseData
|
||||
RoomWheelData( WheelItemType wit, CString title, CString SubTitle, RageColor color );
|
||||
|
||||
CString m_sDesc;
|
||||
RageColor m_color; // either text color or section background color
|
||||
WheelNotifyIcon::Flags m_Flags;
|
||||
};
|
||||
|
||||
@@ -27,6 +26,7 @@ public:
|
||||
|
||||
BitmapText m_Desc;
|
||||
|
||||
private:
|
||||
ThemeMetric<float> DESC_X;
|
||||
ThemeMetric<float> DESC_Y;
|
||||
ThemeMetric<float> DESC_WIDTH;
|
||||
@@ -36,9 +36,14 @@ public:
|
||||
class RoomWheel : public WheelBase {
|
||||
public:
|
||||
virtual void Load( CString sType );
|
||||
inline virtual RoomWheelData* GetItem(unsigned int i) { return (RoomWheelData*)WheelBase::GetItem(i); }
|
||||
inline RoomWheelData* GetItem(unsigned int i) { return (RoomWheelData*)WheelBase::GetItem(i + m_offset); }
|
||||
virtual void BuildWheelItemsData( vector<WheelItemBaseData*> &arrayWheelItemDatas );
|
||||
protected:
|
||||
virtual inline unsigned int GetNumItems() { return m_WheelBaseItemsData.size() - m_offset; }
|
||||
virtual void RemoveItem( int index ) { WheelBase::RemoveItem(index + m_offset); }
|
||||
void AddPerminateItem(RoomWheelData* itemdata);
|
||||
virtual bool Select();
|
||||
private:
|
||||
int m_offset;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user