sw/source/uibase/docvw/edtwin2.cxx | 17 +++++++++++++++-- sw/source/uibase/inc/edtwin.hxx | 5 +++++ 2 files changed, 20 insertions(+), 2 deletions(-)
New commits: commit 912ecaf565e68d2ca3fb9584712313e712749f75 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Oct 9 10:38:34 2014 +0100 Resolves: fdo#55546 center ellipsis tooltips that don't fit on screen Change-Id: Ic44c9032878892fa33c839e5aaac1996e7bed943 diff --git a/sw/source/uibase/docvw/edtwin2.cxx b/sw/source/uibase/docvw/edtwin2.cxx index 0acaf59..19989be 100644 --- a/sw/source/uibase/docvw/edtwin2.cxx +++ b/sw/source/uibase/docvw/edtwin2.cxx @@ -94,6 +94,17 @@ static OUString lcl_GetRedlineHelp( const SwRangeRedline& rRedl, bool bBalloon ) return sBuf.makeStringAndClear(); } +OUString SwEditWin::ClipLongToolTip(const OUString& rTxt) +{ + OUString sDisplayTxt(rTxt); + long nTextWidth = GetTextWidth(sDisplayTxt); + long nMaxWidth = GetDesktopRectPixel().GetWidth() * 2 / 3; + nMaxWidth = PixelToLogic(Size(nMaxWidth, 0)).Width(); + if (nTextWidth > nMaxWidth) + sDisplayTxt = GetEllipsisString(sDisplayTxt, nMaxWidth, TEXT_DRAW_CENTERELLIPSIS); + return sDisplayTxt; +} + void SwEditWin::RequestHelp(const HelpEvent &rEvt) { SwWrtShell &rSh = m_rView.GetWrtShell(); @@ -369,7 +380,8 @@ void SwEditWin::RequestHelp(const HelpEvent &rEvt) aPt = OutputToScreenPixel( LogicToPixel( aRect.BottomRight() )); aRect.Right() = aPt.X(); aRect.Bottom() = aPt.Y(); - Help::ShowQuickHelp( this, aRect, sTxt, nStyle ); + OUString sDisplayTxt(ClipLongToolTip(sTxt)); + Help::ShowQuickHelp(this, aRect, sDisplayTxt, nStyle); } } @@ -410,7 +422,8 @@ void SwEditWin::RequestHelp(const HelpEvent &rEvt) sTxt = SW_RESSTR(nTabRes); Size aTxtSize( GetTextWidth(sTxt), GetTextHeight()); Rectangle aRect(rEvt.GetMousePosPixel(), aTxtSize); - Help::ShowQuickHelp(this, aRect, sTxt); + OUString sDisplayTxt(ClipLongToolTip(sTxt)); + Help::ShowQuickHelp(this, aRect, sDisplayTxt); } bContinue = false; } diff --git a/sw/source/uibase/inc/edtwin.hxx b/sw/source/uibase/inc/edtwin.hxx index 9871a5c..92e758d 100644 --- a/sw/source/uibase/inc/edtwin.hxx +++ b/sw/source/uibase/inc/edtwin.hxx @@ -286,6 +286,11 @@ public: void SetUseInputLanguage( bool bNew ); bool IsUseInputLanguage() const { return m_bUseInputLanguage; } + /** fdo#55546 cut very long tooltips to 2/3 of the width of the screen + via center ellipsis + */ + OUString ClipLongToolTip(const OUString& rTxt); + SwFrameControlsManager& GetFrameControlsManager() { return m_aFrameControlsManager; } SwEditWin(vcl::Window *pParent, SwView &);
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits