本文整理汇总了C++中CGrid::AutoSetRowHeights方法的典型用法代码示例。如果您正苦于以下问题:C++ CGrid::AutoSetRowHeights方法的具体用法?C++ CGrid::AutoSetRowHeights怎么用?C++ CGrid::AutoSetRowHeights使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGrid
的用法示例。
在下文中一共展示了CGrid::AutoSetRowHeights方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FillGrid
//.........这里部分代码省略.........
//Icon hasnt been loaded, load it now and add it to list of icons.
if(pIcon == NULL)
{
pIcon = vgui_LoadTGANoInvertAlpha(theFullCustomIconString.c_str());
if(pIcon)
m_CustomIconList.push_back( make_pair(pIcon, theCustomIcon) );
}
if(pIcon)
{
pLabel->setImage(pIcon);
pLabel->setFgColorAsImageColor(false);
// Parse color (last 3 bytes are the RGB values 1-9)
string theColor = theCustomIcon.substr( strlen(theCustomIcon.c_str())-3, 3);
int theRed = (MakeIntFromString(theColor.substr(0, 1))/9.0f)*255;
int theGreen = (MakeIntFromString(theColor.substr(1, 1))/9.0f)*255;
int theBlue = (MakeIntFromString(theColor.substr(2, 1))/9.0f)*255;
pIcon->setColor(BuildColor(theRed, theGreen, theBlue, gHUD.GetGammaSlope()));
}
}
}
if(g_pTrackerUser)
{
int playerSlot = theSortedRow;
int trackerID = gEngfuncs.GetTrackerIDForPlayer(playerSlot);
if (g_pTrackerUser->IsFriend(trackerID) && trackerID != g_pTrackerUser->GetTrackerID())
{
pLabel->setImage(m_pTrackerIcon);
pLabel->setFgColorAsImageColor(false);
m_pTrackerIcon->setColor(Color(255, 255, 255, 0));
}
}
#else
if( theExtraPlayerInfo->icon )
{
vgui::Bitmap* image = theExtraPlayerInfo->icon->getImage( this->GetIconFrame() );
if( image ) { pLabel->setImage( image ); }
}
#endif
break;
case COLUMN_SCORE:
if(!theIsForEnemy)
{
const float kDeltaDisplayTime = 3.0f;
float theTimeSinceChange = gHUD.GetTimeOfLastUpdate() - theExtraPlayerInfo->timeOfLastScoreChange;
if((theExtraPlayerInfo->score > theExtraPlayerInfo->lastScore) && (theTimeSinceChange > 0) && (theTimeSinceChange < kDeltaDisplayTime) && (theExtraPlayerInfo->teamnumber != 0))
{
// draw score with change
int theDelta = (theExtraPlayerInfo->score - theExtraPlayerInfo->lastScore);
sprintf(sz, "(+%d) %d", theDelta, theExtraPlayerInfo->score);
}
else
{
sprintf(sz, "%d", theExtraPlayerInfo->score);
}
}
break;
case COLUMN_KILLS:
sprintf(sz, "%d", theExtraPlayerInfo->frags);
break;
case COLUMN_DEATHS:
sprintf(sz, "%d", theExtraPlayerInfo->deaths);
break;
case COLUMN_LATENCY:
if(pl_info)
{
sprintf(sz, "%d", pl_info->ping );
}
break;
default:
break;
}
}
pLabel->setText(sz);
}
}
for(row=0; row < NUM_ROWS; row++)
{
CGrid *pGridRow = &m_PlayerGrids[row];
pGridRow->AutoSetRowHeights();
pGridRow->setSize(PanelWidth(pGridRow), pGridRow->CalcDrawHeight());
pGridRow->RepositionContents();
}
// hack, for the thing to resize
m_PlayerList.getSize(x, y);
m_PlayerList.setSize(x, y);
}
示例2: FillGrid
//.........这里部分代码省略.........
sprintf(sz, "%d", team_info->deaths );
}
break;
case COLUMN_DEATHS: //Points
if ( m_iIsATeam[row] == TEAM_YES )
sprintf(sz, "%d", team_info->frags );
break;
case COLUMN_LATENCY:
if ( m_iIsATeam[row] == TEAM_YES )
sprintf(sz, "%d", team_info->ping );
break;
default:
break;
}
}
else
{
switch (col)
{
case COLUMN_NAME:
/*
if (g_pTrackerUser)
{
int playerSlot = m_iSortedRows[row];
int trackerID = gEngfuncs.GetTrackerIDForPlayer(playerSlot);
const char *trackerName = g_pTrackerUser->GetUserName(trackerID);
if (trackerName && *trackerName)
{
sprintf(sz, " (%s)", trackerName);
pLabel->setText2(sz);
}
}
*/
sprintf(sz, "%s ", pl_info->name);
break;
case COLUMN_VOICE:
sz[0] = 0;
GetClientVoiceMgr()->UpdateSpeakerImage(pLabel, m_iSortedRows[row]);
break;
case COLUMN_CLASS:
if ( g_PlayerExtraInfo[ m_iSortedRows[row] ].teamnumber == 0 && g_iArenaMode == TRUE )
{
sprintf(sz, "%d", g_PlayerExtraInfo[ m_iSortedRows[row] ].playerclass );
}
else
{
strcpy(sz, "");
}
break;
case COLUMN_TRACKER:
/*
if (g_pTrackerUser)
{
int playerSlot = m_iSortedRows[row];
int trackerID = gEngfuncs.GetTrackerIDForPlayer(playerSlot);
if (g_pTrackerUser->IsFriend(trackerID) && trackerID != g_pTrackerUser->GetTrackerID())
{
pLabel->setImage(m_pTrackerIcon);
pLabel->setFgColorAsImageColor(false);
m_pTrackerIcon->setColor(Color(255, 255, 255, 0));
}
}*/
break;
case COLUMN_KILLS: //Wins
if ( g_iArenaMode == TRUE )
sprintf(sz, "%d", g_PlayerExtraInfo[ m_iSortedRows[row] ].deaths );
break;
case COLUMN_DEATHS: //Points
sprintf(sz, "%d", g_PlayerExtraInfo[ m_iSortedRows[row] ].frags );
break;
case COLUMN_LATENCY:
sprintf(sz, "%d", g_PlayerInfoList[ m_iSortedRows[row] ].ping );
break;
default:
break;
}
}
pLabel->setText(sz);
}
}
for(int row = 0; row < NUM_ROWS; row++)
{
CGrid *pGridRow = &m_PlayerGrids[row];
pGridRow->AutoSetRowHeights();
pGridRow->setSize(PanelWidth(pGridRow), pGridRow->CalcDrawHeight());
pGridRow->RepositionContents();
}
// hack, for the thing to resize
m_PlayerList.getSize(x, y);
m_PlayerList.setSize(x, y);
}
示例3: if
//.........这里部分代码省略.........
xwide = XRES(xwide);
}
else if (ScreenWidth() == 400)
{
// hack to make 400x300 resolution scoreboard fit
if (i == 1)
{
// reduces size of player name cell
xwide -= 28;
}
else if (i == 0)
{
// tracker icon cell
xwide -= 8;
}
}
m_HeaderGrid.SetColumnWidth(i, xwide);
m_HeaderGrid.SetEntry(i, 0, &m_HeaderLabels[i]);
m_HeaderLabels[i].setBgColor(0,0,0,255);
m_HeaderLabels[i].setBgColor(0,0,0,255);
int theColorIndex = 0;
Color gammaAdjustedTeamColor = BuildColor(kTeamColors[theColorIndex][0], kTeamColors[theColorIndex][1], kTeamColors[theColorIndex][2], gHUD.GetGammaSlope());
int theR, theG, theB, theA;
gammaAdjustedTeamColor.getColor(theR, theG, theB, theA);
m_HeaderLabels[i].setFgColor(theR, theG, theB, theA);
m_HeaderLabels[i].setFont(smallfont);
m_HeaderLabels[i].setContentAlignment(g_ColumnInfo[i].m_Alignment);
int yres = 12;
if (ScreenHeight() >= 480)
{
yres = YRES(yres);
}
m_HeaderLabels[i].setSize(50, yres);
}
// Set the width of the last column to be the remaining space.
int ex, ey, ew, eh;
m_HeaderGrid.GetEntryBox(NUM_COLUMNS - 2, 0, ex, ey, ew, eh);
m_HeaderGrid.SetColumnWidth(NUM_COLUMNS - 1, (wide - X_BORDER) - (ex + ew));
m_HeaderGrid.AutoSetRowHeights();
m_HeaderGrid.setBounds(X_BORDER, SBOARD_TITLE_SIZE_Y, wide - X_BORDER*2, m_HeaderGrid.GetRowHeight(0));
m_HeaderGrid.setParent(this);
m_HeaderGrid.setBgColor(0,0,0,255);
// Now setup the listbox with the actual player data in it.
int headerX, headerY, headerWidth, headerHeight;
m_HeaderGrid.getBounds(headerX, headerY, headerWidth, headerHeight);
m_PlayerList.setBounds(headerX, headerY+headerHeight, headerWidth, tall - headerY - headerHeight - 6);
m_PlayerList.setBgColor(0,0,0,255);
m_PlayerList.setParent(this);
for(int row=0; row < NUM_ROWS; row++)
{
CGrid *pGridRow = &m_PlayerGrids[row];
pGridRow->SetDimensions(NUM_COLUMNS, 1);
for(int col=0; col < NUM_COLUMNS; col++)
{
m_PlayerEntries[col][row].setContentFitted(false);
m_PlayerEntries[col][row].setRow(row);
m_PlayerEntries[col][row].addInputSignal(this);
pGridRow->SetEntry(col, 0, &m_PlayerEntries[col][row]);
}
pGridRow->setBgColor(0,0,0,255);
// pGridRow->SetSpacing(2, 0);f
pGridRow->SetSpacing(0, 0);
pGridRow->CopyColumnWidths(&m_HeaderGrid);
pGridRow->AutoSetRowHeights();
pGridRow->setSize(PanelWidth(pGridRow), pGridRow->CalcDrawHeight());
pGridRow->RepositionContents();
m_PlayerList.AddItem(pGridRow);
}
// Add the hit test panel. It is invisible and traps mouse clicks so we can go into squelch mode.
m_HitTestPanel.setBgColor(0,0,0,255);
m_HitTestPanel.setParent(this);
m_HitTestPanel.setBounds(0, 0, wide, tall);
m_HitTestPanel.addInputSignal(this);
m_pCloseButton = new CommandButton( "x", wide-XRES(12 + 4), YRES(2), XRES( 12 ) , YRES( 12 ) );
m_pCloseButton->setParent( this );
m_pCloseButton->addActionSignal( new CMenuHandler_StringCommandWatch( "-showscores", true ) );
m_pCloseButton->setBgColor(0,0,0,255);
m_pCloseButton->setFgColor( 255, 255, 255, 0 );
m_pCloseButton->setFont(tfont);
m_pCloseButton->setBoundKey( (char)255 );
m_pCloseButton->setContentAlignment(Label::a_center);
Initialize();
}
示例4: FillGrid
//.........这里部分代码省略.........
break;
case COLUMN_VOICE:
break;
case COLUMN_CLASS:
break;
case COLUMN_KILLS:
if ( m_iIsATeam[row] == TEAM_YES )
sprintf(sz, "%d", team_info->frags );
break;
case COLUMN_DEATHS:
if ( m_iIsATeam[row] == TEAM_YES )
sprintf(sz, "%d", team_info->deaths );
break;
case COLUMN_LATENCY:
if ( m_iIsATeam[row] == TEAM_YES )
sprintf(sz, "%d", team_info->ping );
break;
default:
break;
}
}
else
{
bool bShowClass = false;
switch (col)
{
case COLUMN_NAME:
sprintf(sz, "%s ", pl_info->name);
break;
case COLUMN_VOICE:
sz[0] = 0;
// in HLTV mode allow spectator to turn on/off commentator voice
if (!pl_info->thisplayer || gEngfuncs.IsSpectateOnly() )
{
GetClientVoiceMgr()->UpdateSpeakerImage(pLabel, m_iSortedRows[row]);
}
break;
case COLUMN_CLASS:
// No class for other team's members (unless allied or spectator)
if ( gViewPort && EV_TFC_IsAllyTeam( g_iTeamNumber, g_PlayerExtraInfo[ m_iSortedRows[row] ].teamnumber ) )
bShowClass = true;
// Don't show classes if this client hasnt picked a team yet
if ( g_iTeamNumber == 0 )
bShowClass = false;
if (bShowClass)
{
// Only print Civilian if this team are all civilians
bool bNoClass = false;
if ( g_PlayerExtraInfo[ m_iSortedRows[row] ].playerclass == 0 )
{
if ( gViewPort->GetValidClasses( g_PlayerExtraInfo[ m_iSortedRows[row] ].teamnumber ) != -1 )
bNoClass = true;
}
if (bNoClass)
sprintf(sz, "");
else
sprintf( sz, "%s", CHudTextMessage::BufferedLocaliseTextString( sLocalisedClasses[ g_PlayerExtraInfo[ m_iSortedRows[row] ].playerclass ] ) );
}
else
{
strcpy(sz, "");
}
break;
case COLUMN_TRACKER:
break;
case COLUMN_KILLS:
sprintf(sz, "%d", g_PlayerExtraInfo[ m_iSortedRows[row] ].frags );
break;
case COLUMN_DEATHS:
sprintf(sz, "%d", g_PlayerExtraInfo[ m_iSortedRows[row] ].deaths );
break;
case COLUMN_LATENCY:
sprintf(sz, "%d", g_PlayerInfoList[ m_iSortedRows[row] ].ping );
break;
default:
break;
}
}
pLabel->setText(sz);
}
}
for(row=0; row < NUM_ROWS; row++)
{
CGrid *pGridRow = &m_PlayerGrids[row];
pGridRow->AutoSetRowHeights();
pGridRow->setSize(PanelWidth(pGridRow), pGridRow->CalcDrawHeight());
pGridRow->RepositionContents();
}
// hack, for the thing to resize
m_PlayerList.getSize(x, y);
m_PlayerList.setSize(x, y);
}