page32
LibreOffice Magazine | Agosto 2014
44
Mundo Libre
Artigo
}
else if( nStyle == WAVE_SMALL )
{
@@ -5320,7 +5323,7 @@ void OutputDevice::DrawWaveLine( const Point& rStartPos, const Point& rEndPos, nWaveHeight = pFontEntry->maMetric.mnWUnderlineSize;
ImplDrawWaveLine( nStartX, nStartY, 0, 0,
- nEndX-nStartX, nWaveHeight, 1,
+ nEndX-nStartX, nWaveHeight, 2,
nOrientation, GetLineColor() );
if( mpAlphaVDev )
mpAlphaVDev->DrawWaveLine( rStartPos, rEndPos, nStyle );
Note que este código não poderia ficar marcado para o LibreOffice como está, porque muda o comportamento para todas as telas, mas ao menos me permitiu testar. Eventualmente, o que é necessário é uma maneira de saber quando usar os diferentes valores, mas não havia nenhuma maneira fácil de obter essa informação. E assim, Michael Meeks me apresentou ao Kendy (Jan Holešovský), que acrescentou um membro para a classe OutDev de baixo nível, que contém o DPIScaleFactor. Em princípio, essa informação é baseado nos DPIs da tela/janela, mas às vezes o sistema operacional retorna apenas 96DPIs
por razões de compatibilidade e, portanto, pode precisar de lógica adicional com base no tamanho da fonte do sistema.
Com a barra de ferramentas e o sublinhado ortográfico bem melhor, isso fez com que os problemas restantes ficassem mais visíveis, e isso me motivou a continuar. Decidi como próximo passo olhar para a barra de status. O primeiro controle foi o zoom, que é o que mais uso. Eventualmente, encontrei a classe: SvxZoomSliderControl. Neste caso, eu era capaz de ler apenas as 400 linhas, até que vi as áreas problemáticas. Para começar, ele tinha codificado o tamanho bitmap via #defines.