LibreOffice Module sw (master) 1
edtwin2.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#include <doc.hxx>
21#include <osl/diagnose.h>
22#include <osl/thread.h>
23#include <vcl/help.hxx>
24#include <tools/urlobj.hxx>
25#include <fmtrfmrk.hxx>
26#include <svl/urihelper.hxx>
27#include <sfx2/sfxhelp.hxx>
28#include <svx/svdview.hxx>
29#include <svx/svdpagv.hxx>
30#include <swmodule.hxx>
31#include <modcfg.hxx>
32#include <view.hxx>
33#include <wrtsh.hxx>
34#include <docsh.hxx>
35#include <edtwin.hxx>
36#include <dpage.hxx>
37#include <docufld.hxx>
38#include <reffld.hxx>
39#include <cellatr.hxx>
40#include <shdwcrsr.hxx>
41#include <fmtinfmt.hxx>
42#include <fmtftn.hxx>
43#include <redline.hxx>
44#include <tox.hxx>
45#include <txatbase.hxx>
46#include <uitool.hxx>
47#include <viewopt.hxx>
48#include <strings.hrc>
49
52#include <txtfrm.hxx>
53#include <ndtxt.hxx>
54#include <comphelper/lok.hxx>
55#include <authfld.hxx>
56
57static OUString lcl_GetRedlineHelp( const SwRangeRedline& rRedl, bool bBalloon, bool bTableChange )
58{
59 TranslateId pResId;
60 switch( rRedl.GetType() )
61 {
62 case RedlineType::Insert: pResId = bTableChange
63 ? STR_REDLINE_TABLE_ROW_INSERT
64 : rRedl.IsMoved()
65 ? STR_REDLINE_INSERT_MOVED
66 : STR_REDLINE_INSERT;
67 break;
68 case RedlineType::Delete: pResId = bTableChange
69 ? STR_REDLINE_TABLE_ROW_DELETE
70 : rRedl.IsMoved()
71 ? STR_REDLINE_DELETE_MOVED
72 : STR_REDLINE_DELETE;
73 break;
74 case RedlineType::Format: pResId = STR_REDLINE_FORMAT; break;
75 case RedlineType::Table: pResId = STR_REDLINE_TABLE; break;
76 case RedlineType::FmtColl: pResId = STR_REDLINE_FMTCOLL; break;
77 case RedlineType::ParagraphFormat: pResId = STR_REDLINE_PARAGRAPH_FORMAT; break;
78 case RedlineType::TableRowInsert: pResId = STR_REDLINE_TABLE_ROW_INSERT; break;
79 case RedlineType::TableRowDelete: pResId = STR_REDLINE_TABLE_ROW_DELETE; break;
80 case RedlineType::TableCellInsert: pResId = STR_REDLINE_TABLE_CELL_INSERT; break;
81 case RedlineType::TableCellDelete: pResId = STR_REDLINE_TABLE_CELL_DELETE; break;
82 default: break;
83 }
84
85 OUStringBuffer sBuf;
86 if (pResId)
87 {
88 sBuf.append(SwResId(pResId));
89 sBuf.append(": ");
90 sBuf.append(rRedl.GetAuthorString());
91 sBuf.append(" - ");
92 sBuf.append(GetAppLangDateTimeString(rRedl.GetTimeStamp()));
93 if( bBalloon && !rRedl.GetComment().isEmpty() )
94 sBuf.append('\n').append(rRedl.GetComment());
95 }
96 return sBuf.makeStringAndClear();
97}
98
99OUString SwEditWin::ClipLongToolTip(const OUString& rText)
100{
101 OUString sDisplayText(rText);
102 tools::Long nTextWidth = GetTextWidth(sDisplayText);
103 tools::Long nMaxWidth = GetDesktopRectPixel().GetWidth() * 2 / 3;
104 nMaxWidth = PixelToLogic(Size(nMaxWidth, 0)).Width();
105 if (nTextWidth > nMaxWidth)
106 sDisplayText = GetOutDev()->GetEllipsisString(sDisplayText, nMaxWidth, DrawTextFlags::CenterEllipsis);
107 return sDisplayText;
108}
109
111{
113 bool bQuickBalloon = bool(rEvt.GetMode() & ( HelpEventMode::QUICK | HelpEventMode::BALLOON ));
114 if(bQuickBalloon && !rSh.GetViewOptions()->IsShowContentTips())
115 return;
116 bool bContinue = true;
117 CurrShell aCurr(&rSh);
118 OUString sText;
120 bool bBalloon = bool(rEvt.GetMode() & HelpEventMode::BALLOON);
121
122 SdrView *pSdrView = rSh.GetDrawView();
123
124 if( bQuickBalloon && pSdrView )
125 {
126 SdrPageView* pPV = pSdrView->GetSdrPageView();
127 SwDPage* pPage = pPV ? static_cast<SwDPage*>(pPV->GetPage()) : nullptr;
128 bContinue = pPage && pPage->RequestHelp(this, pSdrView, rEvt);
129 }
130
131 if( bContinue && bQuickBalloon)
132 {
133 SwRect aFieldRect;
134 SwContentAtPos aContentAtPos( IsAttrAtPos::Field |
141#ifdef DBG_UTIL
144#endif
147
148 if( rSh.GetContentAtPos( aPos, aContentAtPos, false, &aFieldRect ) )
149 {
150 QuickHelpFlags nStyle = QuickHelpFlags::NONE; // style of quick help
151 switch( aContentAtPos.eContentAtPos )
152 {
154 sText = "= " + static_cast<const SwTableBoxFormula*>(aContentAtPos.aFnd.pAttr)->GetFormula();
155 break;
156#ifdef DBG_UTIL
158 {
159 if(aContentAtPos.aFnd.pAttr)
160 {
161 sText = OUString::number(
162 static_cast<const SwTableBoxValue*>(aContentAtPos.aFnd.pAttr)->GetValue());
163 }
164 break;
165 }
167 sText = aContentAtPos.sStr;
168 break;
169#endif
170
172 {
173 sText = static_cast<const SwFormatINetFormat*>(aContentAtPos.aFnd.pAttr)->GetValue();
174 sText = URIHelper::removePassword( sText,
177 //#i63832# remove the link target type
178 sal_Int32 nFound = sText.indexOf(cMarkSeparator);
179 if( nFound != -1 && (++nFound) < sText.getLength() )
180 {
181 std::u16string_view sSuffix( sText.subView(nFound) );
182 if( sSuffix == u"table" ||
183 sSuffix == u"frame" ||
184 sSuffix == u"region" ||
185 sSuffix == u"outline" ||
186 sSuffix == u"text" ||
187 sSuffix == u"graphic" ||
188 sSuffix == u"ole" ||
189 sSuffix == u"drawingobject" )
190 sText = sText.copy( 0, nFound - 1);
191 }
192 // #i104300#
193 // special handling if target is a cross-reference bookmark
194 {
195 OUString sTmpSearchStr = sText.copy( 1 );
196 IDocumentMarkAccess* pMarkAccess = rSh.getIDocumentMarkAccess();
198 pMarkAccess->findBookmark( sTmpSearchStr );
199 if ( ppBkmk != pMarkAccess->getBookmarksEnd() &&
202 {
203 SwTextNode* pTextNode = (*ppBkmk)->GetMarkStart().GetNode().GetTextNode();
204 if ( pTextNode )
205 {
206 sText = sw::GetExpandTextMerged(rSh.GetLayout(), *pTextNode, true, false, ExpandMode(0));
207
208 if( !sText.isEmpty() )
209 {
210 OUStringBuffer sTmp(sText.replaceAll(u"\u00ad", ""));
211 for (sal_Int32 i = 0; i < sTmp.getLength(); ++i)
212 {
213 if (sTmp[i] < 0x20)
214 sTmp[i] = 0x20;
215 else if (sTmp[i] == 0x2011)
216 sTmp[i] = '-';
217 }
218 sText = sTmp.makeStringAndClear();
219 }
220 }
221 }
222 }
223 // #i80029#
224 bool bExecHyperlinks = m_rView.GetDocShell()->IsReadOnly();
225 if ( !bExecHyperlinks )
226 {
227 sText = SfxHelp::GetURLHelpText(sText);
228 }
229 break;
230 }
232 {
233 vcl::KeyCode aCode( KEY_SPACE );
234 vcl::KeyCode aModifiedCode( KEY_SPACE, KEY_MOD1 );
235 OUString aModStr( aModifiedCode.GetName() );
236 aModStr = aModStr.replaceFirst(aCode.GetName(), "");
237 aModStr = aModStr.replaceAll("+", "");
238 sText = SwResId(STR_SMARTTAG_CLICK).replaceAll("%s", aModStr);
239 break;
240 }
241
242 case IsAttrAtPos::Ftn:
243 if( aContentAtPos.pFndTextAttr && aContentAtPos.aFnd.pAttr )
244 {
245 const SwFormatFootnote* pFootnote = static_cast<const SwFormatFootnote*>(aContentAtPos.aFnd.pAttr);
246 OUString sTmp(pFootnote->GetFootnoteText(*rSh.GetLayout()));
247 sText = SwResId( pFootnote->IsEndNote()
248 ? STR_ENDNOTE : STR_FTNNOTE ) + sTmp;
249 bBalloon = true;
250 if( aContentAtPos.IsInRTLText() )
251 nStyle |= QuickHelpFlags::BiDiRtl;
252 }
253 break;
254
257 {
259 const bool bShowInlineTooltips = rSh.GetViewOptions()->IsShowInlineTooltips();
260 if ( bShowTrackChanges && bShowInlineTooltips )
261 {
262 sText = lcl_GetRedlineHelp(*aContentAtPos.aFnd.pRedl, bBalloon, IsAttrAtPos::TableRedline == aContentAtPos.eContentAtPos );
263 }
264 break;
265 }
266
268 sText = aContentAtPos.sStr;
269 if( !sText.isEmpty() && aContentAtPos.pFndTextAttr )
270 {
271 const SwTOXType* pTType = aContentAtPos.pFndTextAttr->
272 GetTOXMark().GetTOXType();
273 if( pTType && !pTType->GetTypeName().isEmpty() )
274 {
275 sText = ": " + sText;
276 sText = pTType->GetTypeName() + sText;
277 }
278 }
279 break;
280
282 if(aContentAtPos.aFnd.pAttr)
283 {
284 sText = SwResId(STR_CONTENT_TYPE_SINGLE_REFERENCE) + ": ";
285 sText += static_cast<const SwFormatRefMark*>(aContentAtPos.aFnd.pAttr)->GetRefName();
286 }
287 break;
288
289 default:
290 {
291 SwModuleOptions* pModOpt = SW_MOD()->GetModuleConfig();
292 if(!pModOpt->IsHideFieldTips())
293 {
294 const SwField* pField = aContentAtPos.aFnd.pField;
295 switch( pField->Which() )
296 {
300 {
301 sal_uInt16 nOldSubType = pField->GetSubType();
302 const_cast<SwField*>(pField)->SetSubType(nsSwExtendedSubType::SUB_CMD);
303 sText = pField->ExpandField(true, rSh.GetLayout());
304 const_cast<SwField*>(pField)->SetSubType(nOldSubType);
305 }
306 break;
307
309 {
310 break;
311 }
312 case SwFieldIds::Input: // BubbleHelp, because the suggestion could be quite long
313 bBalloon = true;
314 [[fallthrough]];
317 sText = pField->GetPar2();
318 break;
319
321 sText = pField->GetFieldName();
322 break;
323
324 case SwFieldIds::User:
325 {
326 OUString aTitle = pField->GetTitle();
327 if (!aTitle.isEmpty())
328 {
329 sText = aTitle;
330 }
331 else
332 {
333 sText = pField->GetPar1();
334 }
335 break;
336 }
338 sText = pField->GetPar1();
339 break;
340
342 break;
343
345 sText = static_cast<const SwMacroField*>(pField)->GetMacro();
346 break;
347
349 {
350 // #i85090#
351 const SwGetRefField* pRefField( dynamic_cast<const SwGetRefField*>(pField) );
352 OSL_ENSURE( pRefField,
353 "<SwEditWin::RequestHelp(..)> - unexpected type of <pField>" );
354 if ( pRefField )
355 {
356 if ( pRefField->IsRefToHeadingCrossRefBookmark() ||
357 pRefField->IsRefToNumItemCrossRefBookmark() )
358 {
359 sText = pRefField->GetExpandedTextOfReferencedTextNode(*rSh.GetLayout());
360 if ( sText.getLength() > 80 )
361 {
362 sText = OUString::Concat(sText.subView(0, 80)) + "...";
363 }
364 }
365 else
366 {
367 sText = pRefField->GetSetRefName();
368 }
369 }
370 break;
371 }
373 {
374 const auto pAuthorityField = static_cast<const SwAuthorityField*>(pField);
375 sText = pAuthorityField->GetAuthority(rSh.GetLayout());
376
377 if (!pAuthorityField->UseTargetURL() && pAuthorityField->HasURL())
378 {
379 const OUString& rURL = pAuthorityField->GetAbsoluteURL();
380 sText += "\n" + SfxHelp::GetURLHelpText(rURL);
381 }
382 else if (pAuthorityField->UseTargetURL() && pAuthorityField->HasTargetURL())
383 {
384 const OUString& rURL = pAuthorityField->GetAbsoluteTargetURL();
385 sText += "\n" + SfxHelp::GetURLHelpText(rURL);
386 }
387
388 break;
389 }
390
391 default: break;
392 }
393 }
394
395 if( sText.isEmpty() )
396 {
398 const bool bShowInlineTooltips = rSh.GetViewOptions()->IsShowInlineTooltips();
399 if ( bShowTrackChanges && bShowInlineTooltips )
400 {
401 aContentAtPos.eContentAtPos = IsAttrAtPos::Redline;
402 if( rSh.GetContentAtPos( aPos, aContentAtPos, false, &aFieldRect ) )
403 sText = lcl_GetRedlineHelp(*aContentAtPos.aFnd.pRedl, bBalloon, /*bTableChange=*/false);
404 }
405 }
406 }
407 }
408 if (!sText.isEmpty())
409 {
410 tools::Rectangle aRect( aFieldRect.SVRect() );
412 aRect.SetLeft( aPt.X() );
413 aRect.SetTop( aPt.Y() );
415 aRect.SetRight( aPt.X() );
416 aRect.SetBottom( aPt.Y() );
417
418 // tdf#136336 ensure tooltip area surrounds the current mouse position with at least a pixel margin
419 aRect.Union(tools::Rectangle(rEvt.GetMousePosPixel(), Size(1, 1)));
420 aRect.AdjustLeft(-1);
421 aRect.AdjustRight(1);
422 aRect.AdjustTop(-1);
423 aRect.AdjustBottom(1);
424
425 if( bBalloon )
426 Help::ShowBalloon( this, rEvt.GetMousePosPixel(), aRect, sText );
427 else
428 {
429 // the show the help
430 OUString sDisplayText(ClipLongToolTip(sText));
431 Help::ShowQuickHelp(this, aRect, sDisplayText, nStyle);
432 }
433 }
434
435 bContinue = false;
436 }
437
438 }
439
440 if( bContinue )
441 Window::RequestHelp( rEvt );
442}
443
445{
446 if (SwWrtShell* pWrtShell = GetView().GetWrtShellPtr())
447 pWrtShell->PrePaint();
448}
449
450void SwEditWin::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect)
451{
452 SwWrtShell* pWrtShell = GetView().GetWrtShellPtr();
453 if(!pWrtShell)
454 return;
455 bool bPaintShadowCursor = false;
456 if( m_pShadCursor )
457 {
458 tools::Rectangle aRect( m_pShadCursor->GetRect());
459 // fully resides inside?
460 if( rRect.Contains( aRect ) )
461 {
462 // then cancel
463 m_pShadCursor.reset();
464 }
465 else if( rRect.Overlaps( aRect ))
466 {
467 // resides somewhat above, then everything is clipped outside
468 // and we have to make the "inner part" at the end of the
469 // Paint visible again. Otherwise Paint errors occur!
470 bPaintShadowCursor = true;
471 }
472 }
473
474 if ( GetView().GetVisArea().GetWidth() <= 0 ||
475 GetView().GetVisArea().GetHeight() <= 0 )
476 Invalidate( rRect );
477 else
478 {
479 pWrtShell->setOutputToWindow(true);
480 bool bTiledPainting = false;
482 {
485 }
486 pWrtShell->Paint(rRenderContext, rRect);
488 {
490 }
491 pWrtShell->setOutputToWindow(false);
492 }
493
494 if( bPaintShadowCursor )
495 m_pShadCursor->Paint();
496}
497
498/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
HelpEventMode GetMode() const
const Point & GetMousePosPixel() const
static void ShowQuickHelp(vcl::Window *pParent, const tools::Rectangle &rScreenRect, const OUString &rHelpText, QuickHelpFlags nStyle=QuickHelpFlags::NONE)
static void ShowBalloon(vcl::Window *pParent, const Point &rScreenPos, const tools::Rectangle &, const OUString &rHelpText)
wrapper iterator: wraps iterator of implementation while hiding MarkBase class; only IMark instances ...
Provides access to the marks of a document.
virtual const_iterator_t findBookmark(const OUString &rMark) const =0
Finds a bookmark by name.
static SW_DLLPUBLIC MarkType GetType(const ::sw::mark::IMark &rMark)
Returns the MarkType used to create the mark.
Definition: docbm.cxx:489
virtual const_iterator_t getBookmarksEnd() const =0
returns a STL-like random access iterator to the end of the sequence of IBookmarks.
static bool IsShowChanges(const RedlineFlags eM)
virtual RedlineFlags GetRedlineFlags() const =0
Query the currently set redline mode.
OUString GetEllipsisString(const OUString &rStr, tools::Long nMaxWidth, DrawTextFlags nStyle=DrawTextFlags::EndEllipsis) const
SdrPage * GetPage() const
SdrPageView * GetSdrPageView() const
static OUString GetURLHelpText(std::u16string_view)
bool IsReadOnly() const
Represents an inserted bibliography entry, created using Insert -> Table of Contents and Index -> Bib...
Definition: authfld.hxx:161
OUString GetAuthority(const SwRootFrame *pLayout, const SwForm *pTOX=nullptr) const
Returns the line matching the source's default row in the ToX.
Definition: authfld.cxx:567
void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
Definition: crsrsh.cxx:1425
bool GetContentAtPos(const Point &rPt, SwContentAtPos &rContentAtPos, bool bSetCursor=false, SwRect *pFieldRect=nullptr)
Definition: crstrvl.cxx:1428
SwDPage is Writer's draw page: derives from SdrPage, but has a reference to the Writer document via S...
Definition: dpage.hxx:34
bool RequestHelp(vcl::Window *pWindow, SdrView const *pView, const HelpEvent &rEvt)
Definition: dpage.cxx:145
SwDoc * GetDoc()
returns Doc. But be careful!
Definition: docsh.hxx:204
IDocumentRedlineAccess const & getIDocumentRedlineAccess() const
Definition: doc.cxx:343
SwView & m_rView
Definition: edtwin.hxx:98
virtual void PrePaint(vcl::RenderContext &rRenderContext) override
Definition: edtwin2.cxx:444
OUString ClipLongToolTip(const OUString &rText)
fdo#55546 cut very long tooltips to 2/3 of the width of the screen via center ellipsis
Definition: edtwin2.cxx:99
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
Definition: edtwin2.cxx:450
const SwView & GetView() const
Definition: edtwin.hxx:245
virtual void RequestHelp(const HelpEvent &rEvt) override
Definition: edtwin2.cxx:110
std::unique_ptr< SwShadowCursor, o3tl::default_delete< SwShadowCursor > > m_pShadCursor
Definition: edtwin.hxx:95
Base class of all fields.
Definition: fldbas.hxx:295
virtual OUString GetPar1() const
Definition: fldbas.cxx:325
virtual sal_uInt16 GetSubType() const
Definition: fldbas.cxx:346
OUString ExpandField(bool bCached, SwRootFrame const *pLayout) const
expand the field.
Definition: fldbas.cxx:482
virtual OUString GetFieldName() const
get name or content
Definition: fldbas.cxx:309
SwFieldIds Which() const
ResId.
Definition: fldbas.cxx:254
virtual OUString GetPar2() const
Definition: fldbas.cxx:330
const OUString & GetTitle() const
Definition: fldbas.hxx:397
bool IsEndNote() const
Definition: fmtftn.hxx:73
OUString GetFootnoteText(SwRootFrame const &rLayout) const
Definition: atrftn.cxx:191
bool IsRefToNumItemCrossRefBookmark() const
Definition: reffld.cxx:386
bool IsRefToHeadingCrossRefBookmark() const
Definition: reffld.cxx:380
OUString GetExpandedTextOfReferencedTextNode(SwRootFrame const &rLayout) const
Definition: reffld.cxx:414
const OUString & GetSetRefName() const
Definition: reffld.hxx:109
bool IsHideFieldTips() const
Definition: modcfg.hxx:377
SwTextNode * GetTextNode()
Inline methods from Node.hxx.
Definition: ndtxt.hxx:903
const OUString & GetComment(sal_uInt16 nPos=0) const
Definition: docredln.cxx:1950
OUString const & GetAuthorString(sal_uInt16 nPos=0) const
Definition: docredln.cxx:1930
bool IsMoved() const
Definition: redline.hxx:282
const DateTime & GetTimeStamp(sal_uInt16 nPos=0) const
Definition: docredln.cxx:1935
RedlineType GetType(sal_uInt16 nPos=0) const
Definition: docredln.cxx:1940
Of course Writer needs its own rectangles.
Definition: swrect.hxx:35
tools::Rectangle SVRect() const
Definition: swrect.hxx:292
const OUString & GetTypeName() const
Definition: tox.hxx:690
double GetValue() const
Definition: cellatr.hxx:96
SwTextNode is a paragraph in the document model.
Definition: ndtxt.hxx:112
bool IsShowContentTips() const
Definition: viewopt.hxx:705
bool IsShowInlineTooltips() const
Definition: viewopt.hxx:448
const SwViewOption * GetViewOptions() const
Definition: viewsh.hxx:434
void setOutputToWindow(bool bOutputToWindow)
Definition: viewsh.cxx:132
const IDocumentMarkAccess * getIDocumentMarkAccess() const
Provides access to the document bookmark interface.
Definition: viewsh.cxx:2813
SwRootFrame * GetLayout() const
Definition: viewsh.cxx:2159
SdrView * GetDrawView()
Definition: vnew.cxx:373
SwWrtShell & GetWrtShell() const
Definition: view.hxx:421
SwWrtShell * GetWrtShellPtr() const
Definition: view.hxx:422
SwDocShell * GetDocShell()
Definition: view.cxx:1163
Used by the UI to modify the document model.
Definition: wrtsh.hxx:97
constexpr tools::Long GetWidth() const
bool Contains(const Point &rPOINT) const
constexpr void SetLeft(tools::Long v)
bool Overlaps(const tools::Rectangle &rRect) const
constexpr void SetTop(tools::Long v)
constexpr Point TopLeft() const
constexpr void SetRight(tools::Long v)
tools::Long AdjustTop(tools::Long nVertMoveDelta)
tools::Long AdjustRight(tools::Long nHorzMoveDelta)
constexpr void SetBottom(tools::Long v)
constexpr Point BottomRight() const
tools::Rectangle & Union(const tools::Rectangle &rRect)
tools::Long AdjustBottom(tools::Long nVertMoveDelta)
tools::Long AdjustLeft(tools::Long nHorzMoveDelta)
OUString GetName() const
Point OutputToScreenPixel(const Point &rPos) const
tools::Long GetTextWidth(const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::text::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
Point LogicToPixel(const Point &rLogicPt) const
tools::Rectangle GetDesktopRectPixel() const
::OutputDevice const * GetOutDev() const
Point PixelToLogic(const Point &rDevicePt) const
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
Point ScreenToOutputPixel(const Point &rPos) const
@ CurrAttrs
only for debugging
@ TableBoxValue
only for debugging
float u
static OUString lcl_GetRedlineHelp(const SwRangeRedline &rRedl, bool bBalloon, bool bTableChange)
Definition: edtwin2.cxx:57
@ Database
For old documents the Field-Which IDs must be preserved !!!
@ TableOfAuthorities
QuickHelpFlags
constexpr sal_uInt16 KEY_MOD1
constexpr sal_uInt16 KEY_SPACE
OUString sSuffix
ExpandMode
Some helpers for converting model strings to view strings.
SVL_DLLPUBLIC OUString removePassword(OUString const &rURI, INetURLObject::EncodeMechanism eEncodeMechanism, INetURLObject::DecodeMechanism eDecodeMechanism=INetURLObject::DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8)
void setTiledPainting(bool bTiledPainting)
int i
const SwExtendedSubType SUB_CMD
Show command.
Definition: fldbas.hxx:213
OUString GetExpandTextMerged(SwRootFrame const *const pLayout, SwTextNode const &rNode, bool const bWithNumber, bool const bWithSpacesForLevel, ExpandMode const i_mode)
long Long
const char GetValue[]
const SwRangeRedline * pRedl
Definition: crsrsh.hxx:106
union SwContentAtPos::@24 aFnd
const SfxPoolItem * pAttr
Definition: crsrsh.hxx:105
bool IsInRTLText() const
Definition: crstrvl.cxx:2131
OUString sStr
Definition: crsrsh.hxx:112
const SwField * pField
Definition: crsrsh.hxx:104
const SwTextAttr * pFndTextAttr
Definition: crsrsh.hxx:113
IsAttrAtPos eContentAtPos
Definition: crsrsh.hxx:110
OUString SwResId(TranslateId aId)
Definition: swmodule.cxx:168
#define SW_MOD()
Definition: swmodule.hxx:256
const sal_Unicode cMarkSeparator
Definition: swtypes.hxx:124
OUString GetAppLangDateTimeString(const DateTime &)
Definition: uitool.cxx:862