本文整理汇总了C++中vgui::DHANDLE::GetSize方法的典型用法代码示例。如果您正苦于以下问题:C++ DHANDLE::GetSize方法的具体用法?C++ DHANDLE::GetSize怎么用?C++ DHANDLE::GetSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vgui::DHANDLE
的用法示例。
在下文中一共展示了DHANDLE::GetSize方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SizeTextWindow
//-----------------------------------------------------------------------------
// Purpose: Size the text window so all the text fits inside it.
//-----------------------------------------------------------------------------
void Tooltip::SizeTextWindow()
{
if ( !s_TooltipWindow.Get() )
return;
if (_displayOnOneLine)
{
// We want the tool tip to be one line
s_TooltipWindow->SetMultiline(false);
s_TooltipWindow->SetToFullWidth();
}
else
{
// We want the tool tip to be one line
s_TooltipWindow->SetMultiline(false);
s_TooltipWindow->SetToFullWidth();
int wide, tall;
s_TooltipWindow->GetSize( wide, tall );
double newWide = sqrt( (2.0/1) * wide * tall );
double newTall = (1/2) * newWide;
s_TooltipWindow->SetMultiline(true);
s_TooltipWindow->SetSize((int)newWide, (int)newTall );
s_TooltipWindow->SetToFullHeight();
s_TooltipWindow->GetSize( wide, tall );
if (( wide < 100 ) && ( s_TooltipWindow->GetNumLines() == 2) )
{
s_TooltipWindow->SetMultiline(false);
s_TooltipWindow->SetToFullWidth();
}
else
{
while ( (float)wide/(float)tall < 2 )
{
s_TooltipWindow->SetSize( wide + 1, tall );
s_TooltipWindow->SetToFullHeight();
s_TooltipWindow->GetSize( wide, tall );
}
}
s_TooltipWindow->GetSize( wide, tall );
// ivgui()->DPrintf("End Ratio: %f\n", (float)wide/(float)tall);
}
}
示例2: PaintWindow
//-----------------------------------------------------------------------------
// main application
//-----------------------------------------------------------------------------
void CVsVGuiWindow::PaintWindow()
{
if ( m_nCurrentTick == m_nLastRenderedTick || !g_pVGui->IsRunning() )
{
ValidateRect( m_hWnd, NULL );
return;
}
m_nCurrentTick = m_nLastRenderedTick;
vgui::VPANEL root = g_pVGuiSurface->GetEmbeddedPanel();
g_pVGuiSurface->Invalidate( root );
RECT windowRect;
CMatRenderContextPtr pRenderContext( g_pMaterialSystem );
::GetClientRect( m_hWnd, &windowRect );
g_pMaterialSystem->SetView( m_hWnd );
pRenderContext->Viewport( 0, 0, windowRect.right, windowRect.bottom );
float flStartTime = Plat_FloatTime();
pRenderContext->ClearColor4ub( 76, 88, 68, 255 );
pRenderContext->ClearBuffers( true, true );
g_pMaterialSystem->BeginFrame( 0 );
// draw from the main panel down
if ( m_hMainPanel.Get() )
{
int w, h;
m_hMainPanel->GetSize( w, h );
if ( w != windowRect.right || h != windowRect.bottom )
{
m_hMainPanel->SetBounds( 0, 0, windowRect.right, windowRect.bottom );
m_hMainPanel->Repaint();
}
g_pVGuiSurface->RestrictPaintToSinglePanel( m_hMainPanel->GetVPanel() );
g_pVGuiSurface->PaintTraverseEx( root, true );
g_pVGuiSurface->RestrictPaintToSinglePanel( 0 );
}
g_pMaterialSystem->EndFrame();
g_pMaterialSystem->SwapBuffers();
g_pMaterialSystem->SetView( NULL );
ValidateRect( m_hWnd, NULL );
m_flRenderDelayTime = Plat_FloatTime() - flStartTime;
m_flRenderDelayTime = max( m_flRenderDelayTime, 0.015f );
}
示例3: PerformLayout
//-----------------------------------------------------------------------------
// Purpose: Display the tooltip
//-----------------------------------------------------------------------------
void Tooltip::PerformLayout()
{
if (!_makeVisible)
return;
if (_delay > system()->GetTimeMillis())
return;
// we're ready, just make us visible
if ( !s_TooltipWindow.Get() )
return;
// We only need to layout when we first become visible
if ( !_isDirty )
return;
_isDirty = false;
s_TooltipWindow->SetVisible(true);
s_TooltipWindow->MakePopup( false, true );
s_TooltipWindow->SetKeyBoardInputEnabled( false );
s_TooltipWindow->SetMouseInputEnabled( false );
IScheme *pScheme = scheme()->GetIScheme( s_TooltipWindow->GetScheme() );
s_TooltipWindow->SetBgColor(s_TooltipWindow->GetSchemeColor("Tooltip.BgColor", s_TooltipWindow->GetBgColor(), pScheme));
s_TooltipWindow->SetFgColor(s_TooltipWindow->GetSchemeColor("Tooltip.TextColor", s_TooltipWindow->GetFgColor(), pScheme));
s_TooltipWindow->SetBorder(pScheme->GetBorder("ToolTipBorder"));
// get cursor position
int cursorX, cursorY;
input()->GetCursorPos(cursorX, cursorY);
// relayout the textwindow immediately so that we know it's size
//m_pTextEntry->InvalidateLayout(true);
SizeTextWindow();
int menuWide, menuTall;
s_TooltipWindow->GetSize(menuWide, menuTall);
// work out where the cursor is and therefore the best place to put the menu
int wide, tall;
surface()->GetScreenSize(wide, tall);
if (wide - menuWide > cursorX)
{
cursorY += 20;
// menu hanging right
if (tall - menuTall > cursorY)
{
// menu hanging down
s_TooltipWindow->SetPos(cursorX, cursorY);
}
else
{
// menu hanging up
s_TooltipWindow->SetPos(cursorX, cursorY - menuTall - 20);
}
}
else
{
// menu hanging left
if (tall - menuTall > cursorY)
{
// menu hanging down
s_TooltipWindow->SetPos(cursorX - menuWide, cursorY);
}
else
{
// menu hanging up
s_TooltipWindow->SetPos(cursorX - menuWide, cursorY - menuTall - 20 );
}
}
}