Add a perminate "Create Room" item
This commit is contained in:
@@ -1,9 +1,14 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "RoomWheel.h"
|
#include "RoomWheel.h"
|
||||||
#include "RageLog.h"
|
#include "RageLog.h"
|
||||||
|
#include "ScreenManager.h"
|
||||||
|
|
||||||
|
AutoScreenMessage( SM_BackFromRoomName )
|
||||||
|
|
||||||
void RoomWheel::Load( CString sType )
|
void RoomWheel::Load( CString sType )
|
||||||
{
|
{
|
||||||
|
SetName( sType );
|
||||||
|
m_offset = 0;
|
||||||
LOG->Trace( "RoomWheel::Load('%s')", sType.c_str() );
|
LOG->Trace( "RoomWheel::Load('%s')", sType.c_str() );
|
||||||
|
|
||||||
LoadFromMetrics( sType );
|
LoadFromMetrics( sType );
|
||||||
@@ -20,6 +25,8 @@ void RoomWheel::Load( CString sType )
|
|||||||
|
|
||||||
m_WheelState = STATE_SELECTING_GENERIC;
|
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);
|
BuildWheelItemsData(m_WheelBaseItemsData);
|
||||||
RebuildWheelItems();
|
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)
|
void RoomWheelItem::LoadFromWheelItemBaseData(WheelItemBaseData* pWID)
|
||||||
{
|
{
|
||||||
RoomWheelData* tmpdata = (RoomWheelData*)pWID;
|
RoomWheelData* tmpdata = (RoomWheelData*)pWID;
|
||||||
WheelItemBase::LoadFromWheelItemBaseData(pWID);
|
WheelItemBase::LoadFromWheelItemBaseData(pWID);
|
||||||
m_Desc.SetText(tmpdata->m_sDesc);
|
m_Desc.SetText(tmpdata->m_sDesc);
|
||||||
m_Desc.SetDiffuseColor(tmpdata->m_color);
|
m_Desc.SetDiffuseColor(pWID->m_color);
|
||||||
m_text.SetDiffuseColor(tmpdata->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 );
|
RoomWheelData( WheelItemType wit, CString title, CString SubTitle, RageColor color );
|
||||||
|
|
||||||
CString m_sDesc;
|
CString m_sDesc;
|
||||||
RageColor m_color; // either text color or section background color
|
|
||||||
WheelNotifyIcon::Flags m_Flags;
|
WheelNotifyIcon::Flags m_Flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -27,6 +26,7 @@ public:
|
|||||||
|
|
||||||
BitmapText m_Desc;
|
BitmapText m_Desc;
|
||||||
|
|
||||||
|
private:
|
||||||
ThemeMetric<float> DESC_X;
|
ThemeMetric<float> DESC_X;
|
||||||
ThemeMetric<float> DESC_Y;
|
ThemeMetric<float> DESC_Y;
|
||||||
ThemeMetric<float> DESC_WIDTH;
|
ThemeMetric<float> DESC_WIDTH;
|
||||||
@@ -36,9 +36,14 @@ public:
|
|||||||
class RoomWheel : public WheelBase {
|
class RoomWheel : public WheelBase {
|
||||||
public:
|
public:
|
||||||
virtual void Load( CString sType );
|
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 );
|
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
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user