// Adds a column to the control // nWidth - Width of the column // hString - The initial text for the column uint8 CLTGUIColumnCtrl::AddColumn(const char *pString, uint16 nWidth, LTBOOL bClip) { if ( !pString ) { assert(LTFALSE); return -1; } CLTGUITextCtrl *pCtrl = debug_new(CLTGUITextCtrl); if (!pCtrl->Create(pString,LTNULL,LTNULL,m_pFont,m_nBaseFontSize,LTNULL)) { debug_delete(pCtrl); return -1; } m_columnArray.push_back(pCtrl); //force a little extra space between columns, if we can nWidth -= (m_nBaseFontSize/2); if (nWidth < m_nBaseFontSize + 1) nWidth = m_nBaseFontSize + 1 ; pCtrl->SetFixedWidth(nWidth,bClip); LTIntPt pos = m_basePos; pos.x += m_nBaseWidth; pCtrl->SetColors(m_argbSelected, m_argbNormal, m_argbDisabled); pCtrl->SetBasePos(pos); pCtrl->SetScale(m_fScale); CalculateSize(); return m_columnArray.size() - 1; }
LTBOOL CMenuMgr::Init() { //build menu array m_MenuArray.reserve(MENU_ID_UNASSIGNED); //add menus here m_MenuArray.push_back(&m_MenuSystem); m_MenuArray.push_back(&m_MenuMission); m_MenuArray.push_back(&m_MenuInventory); m_MenuArray.push_back(&m_MenuKeys); m_MenuArray.push_back(&m_MenuIntel); m_MenuArray.push_back(&m_MenuPlayer); //init menus MenuArray::iterator iter = m_MenuArray.begin(); while (iter != m_MenuArray.end()) { if (!(*iter)->Init()) return LTFALSE; iter++; } m_fSlideInTime = g_pLayoutMgr->GetMenuSlideInTime(); m_fSlideOutTime = g_pLayoutMgr->GetMenuSlideOutTime(); m_nMenuPos = g_pLayoutMgr->GetMenuPosition(); char szTemp[128]; char *pTag = "Menu"; g_pLayoutMgr->GetString(pTag,"SlideInSound",szTemp,sizeof(szTemp)); m_sSlideInSound = szTemp; g_pLayoutMgr->GetString(pTag,"SlideOutSound",szTemp,sizeof(szTemp)); m_sSlideOutSound = szTemp; g_pLayoutMgr->GetString(pTag,"Bar",szTemp,sizeof(szTemp)); HTEXTURE hBar = g_pInterfaceResMgr->GetTexture(szTemp); g_pLayoutMgr->GetString(pTag,"BarTip",szTemp,sizeof(szTemp)); HTEXTURE hBarTip = g_pInterfaceResMgr->GetTexture(szTemp); LTIntPt size = g_pLayoutMgr->GetPoint(pTag,"BarSize"); uint8 fontFace = (uint8)g_pLayoutMgr->GetInt(pTag,"BarFont"); uint8 fontSize = (uint8)g_pLayoutMgr->GetInt(pTag,"BarFontSize"); m_nBarPos = g_pLayoutMgr->GetInt(pTag,"BarPosition"); int nBarSpacing = g_pLayoutMgr->GetInt(pTag,"BarSpacing"); LTVector vCol = g_pLayoutMgr->GetVector(pTag,"BarSelectColor"); uint8 nR = (uint8)vCol.x; uint8 nG = (uint8)vCol.y; uint8 nB = (uint8)vCol.z; g_nSelectColor = SET_ARGB(0xFF,nR,nG,nB); m_MenuBar.Init(hBar,hBarTip,size); m_MenuBar.SetBasePos(LTIntPt(0,m_nBarPos)); CUIFont* pFont = g_pInterfaceResMgr->GetFont(fontFace); LTIntPt offset(nBarSpacing,(size.y-fontSize)/2); for (uint8 i =0; i < m_MenuArray.size(); i++) { CLTGUITextCtrl *pCtrl = debug_new(CLTGUITextCtrl); CBaseMenu *pMenu = m_MenuArray[i]; pCtrl->Create(pMenu->GetTitle(),i,NULL,pFont,fontSize,&m_MenuBar); pCtrl->SetColors(g_nSelectColor,argbBlack,argbWhite); pCtrl->SetParam1(pMenu->GetMenuID()); m_MenuBar.AddControl(pCtrl,offset); offset.x += nBarSpacing + pCtrl->GetWidth(); } return LTTRUE; }