void CBasePanel::OnCursorMoved(int x,int y) { if ( !m_bReflectMouse ) return; if ( !GetParent() ) return; LocalToScreen( x, y ); vgui::ivgui()->PostMessage( GetParent()->GetVPanel(), new KeyValues( "CursorMoved", "xpos", x, "ypos", y ), GetVPanel() ); }
void SkillAnimPanel::AddParticlesAroundPanel(vgui::Panel* pPanel) { if (!pPanel) return; // find the target panel's location relative to ours int mx, my; mx = my = 0; LocalToScreen(mx, my); int px, py; px = py = 0; pPanel->LocalToScreen(px, py); int x = px - mx; int y = py - my; x += asw_skill_particle_inset.GetInt(); y += asw_skill_particle_inset.GetInt(); int width = pPanel->GetWide() - (asw_skill_particle_inset.GetInt() * 2); int height = pPanel->GetTall() - (asw_skill_particle_inset.GetInt() * 2); const int particles_per_edge = asw_skill_particle_count.GetInt(); // future todo? could make this scale with wider panels float x_interval = float(width) / float(particles_per_edge); float y_interval = float(height) / float(particles_per_edge); float speed = asw_skill_particle_speed.GetFloat(); for (int i=0;i<particles_per_edge;i++) { float sidespeed = ((particles_per_edge * 0.5f) - i) / (particles_per_edge * 0.5) * speed; // top edge AddParticle(x + i * x_interval, y, -sidespeed, -speed); // bottom edge AddParticle(x + i * x_interval, y + height, -sidespeed, speed); // left edge AddParticle(x, y + i * y_interval, -speed, -sidespeed); // right edge AddParticle(x + width, y + i * y_interval, speed, -sidespeed); } }
void CASW_Hotbar_Entry::ShowTooltip() { if ( !m_hMarine.Get() ) return; C_ASW_Weapon *pWeapon = m_hMarine->GetASWWeapon( m_iInventoryIndex ); if ( !pWeapon ) return; const CASW_WeaponInfo* pInfo = pWeapon->GetWeaponInfo(); if ( !pInfo || !pInfo->m_bOffhandActivate ) // TODO: Fix for sentry guns return; int x = GetWide() * 0.8f; int y = GetTall() * 0.02f; LocalToScreen( x, y ); g_hBriefingTooltip->SetTooltip( this, pInfo->szPrintName, " ", x, y, true ); }
void CNB_Skill_Panel::OnThink() { BaseClass::OnThink(); if ( !MarineSkills() || !Briefing() ) return; CASW_Marine_Profile *pProfile = Briefing()->GetMarineProfileByProfileIndex( m_nProfileIndex ); if ( !pProfile ) return; int nMaxSkillPoints = MarineSkills()->GetMaxSkillPoints( pProfile->GetSkillMapping( m_nSkillSlot ) ); const char *szImageName = MarineSkills()->GetSkillImage( pProfile->GetSkillMapping( m_nSkillSlot ) ); if ( Q_strcmp( m_szLastSkillImage, szImageName ) ) { Q_snprintf( m_szLastSkillImage, sizeof( m_szLastSkillImage ), "%s", szImageName ); char buffer[ 256 ]; Q_snprintf( buffer, sizeof( buffer ), "vgui/%s", szImageName ); color32 white; white.r = 255; white.g = 255; white.b = 255; white.a = 255; color32 dull; dull.r = 192; dull.g = 192; dull.b = 192; dull.a = 255; m_pSkillButton->SetImage( CBitmapButton::BUTTON_ENABLED, buffer, white ); m_pSkillButton->SetImage( CBitmapButton::BUTTON_DISABLED, buffer, dull ); m_pSkillButton->SetImage( CBitmapButton::BUTTON_PRESSED, buffer, white ); Q_snprintf( buffer, sizeof( buffer ), "vgui/%s_over", szImageName ); m_pSkillButton->SetImage( CBitmapButton::BUTTON_ENABLED_MOUSE_OVER, buffer, white ); } m_pSkillButton->SetEnabled( m_bSpendPointsMode && CanSpendPoint() ); m_pSkillLabel->SetText( MarineSkills()->GetSkillName( pProfile->GetSkillMapping( m_nSkillSlot ) ) ); wchar_t wszPointsBuffer[ 24 ]; _snwprintf( wszPointsBuffer, sizeof( wszPointsBuffer ), L"%d / %d", m_nSkillPoints, nMaxSkillPoints ); m_pSkillNumberLabel->SetText( wszPointsBuffer ); m_pSkillBar->ClearMinMax(); m_pSkillBar->AddMinMax( 0, nMaxSkillPoints ); m_pSkillBar->Init( m_nSkillPoints, m_nSkillPoints, 0.1f, true, false ); if ( IsCursorOver() ) { if (!g_hBriefingTooltip.Get()) { g_hBriefingTooltip = new BriefingTooltip(GetParent(), "MedalsTooltip"); } else if ( g_hBriefingTooltip->GetParent() != GetParent() ) { g_hBriefingTooltip->SetParent( GetParent() ); } if ( g_hBriefingTooltip.Get() && IsFullyVisible() && g_hBriefingTooltip.Get()->GetTooltipPanel() != this ) { int tx, ty, w, h; tx = ty = 0; LocalToScreen(tx, ty); GetSize(w, h); tx += w * 0.5f; ty -= h * 0.01f; g_hBriefingTooltip.Get()->SetTooltip( this, MarineSkills()->GetSkillName( pProfile->GetSkillMapping( m_nSkillSlot ) ), MarineSkills()->GetSkillDescription( pProfile->GetSkillMapping( m_nSkillSlot ) ), tx, ty ); } } }