LibreOffice Module sw (master)  1
grfsh.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 <cmdid.h>
21 #include <hintids.hxx>
22 #include <tools/urlobj.hxx>
23 #include <tools/UnitConversion.hxx>
24 #include <svl/stritem.hxx>
25 #include <svl/whiter.hxx>
26 #include <svl/urihelper.hxx>
27 #include <sfx2/bindings.hxx>
28 #include <sfx2/docfile.hxx>
29 #include <sfx2/objface.hxx>
30 #include <sfx2/viewfrm.hxx>
31 #include <editeng/sizeitem.hxx>
32 #include <sfx2/request.hxx>
33 #include <vcl/EnumContext.hxx>
34 #include <sfx2/htmlmode.hxx>
35 #include <svx/svdview.hxx>
36 #include <editeng/brushitem.hxx>
37 #include <svx/grfflt.hxx>
39 #include <svx/tbxcolor.hxx>
40 #include <drawdoc.hxx>
41 #include <view.hxx>
42 #include <wrtsh.hxx>
43 #include <viewopt.hxx>
44 #include <swmodule.hxx>
45 #include <swundo.hxx>
46 #include <uitool.hxx>
47 #include <docsh.hxx>
48 #include <grfsh.hxx>
49 #include <frmmgr.hxx>
50 #include <frmfmt.hxx>
51 #include <grfatr.hxx>
52 #include <swwait.hxx>
53 #include <svx/extedit.hxx>
54 #include <svx/graphichelper.hxx>
55 #include <doc.hxx>
57 #include <svx/drawitem.hxx>
58 #define ShellClass_SwGrfShell
59 
60 #include <sfx2/msg.hxx>
61 #include <swslots.hxx>
62 #include <swabstdlg.hxx>
63 #include <unocrsr.hxx>
64 #include <memory>
65 
66 #define TOOLBOX_NAME "colorbar"
67 
69  : public ExternalToolEdit
70 {
71 private:
73  std::shared_ptr<SwUnoCursor> const m_pCursor;
74 
75 public:
76  explicit SwExternalToolEdit(SwWrtShell *const pShell)
77  : m_pShell(pShell)
78  , m_pCursor( // need only Point, must point to SwGrfNode
79  pShell->GetDoc()->CreateUnoCursor(
80  *pShell->GetCurrentShellCursor().GetPoint()))
81  {
82  }
83 
84  virtual void Update(Graphic & rGraphic) override
85  {
87  m_pShell->Push();
88  m_pShell->GetCurrentShellCursor().DeleteMark();
89  *m_pShell->GetCurrentShellCursor().GetPoint() = *m_pCursor->GetPoint();
90  m_pShell->ReRead(OUString(), OUString(), &rGraphic);
91  m_pShell->Pop();
92  }
93 };
94 
96 
97 void SwGrfShell::InitInterface_Impl()
98 {
99  GetStaticInterface()->RegisterPopupMenu("graphic");
100 
101  GetStaticInterface()->RegisterObjectBar(SFX_OBJECTBAR_OBJECT, SfxVisibilityFlags::Invisible, ToolbarId::Grafik_Toolbox);
102 }
103 
105 {
106  SwWrtShell &rSh = GetShell();
107 
108  sal_uInt16 nSlot = rReq.GetSlot();
109  switch(nSlot)
110  {
111  case SID_OBJECT_ROTATE:
112  {
113  // RotGrfFlyFrame: start rotation when possible
114  SdrView* pSdrView = rSh.GetDrawViewWithValidMarkList();
115 
116  if(rSh.IsRotationOfSwGrfNodePossible() && pSdrView->IsRotateAllowed())
117  {
118  if(GetView().IsDrawRotate())
119  {
120  rSh.SetDragMode(SdrDragMode::Move);
121  }
122  else
123  {
124  rSh.SetDragMode(SdrDragMode::Rotate);
125  }
126 
128  }
129  }
130  break;
131 
132  case SID_TWAIN_TRANSFER:
133  {
134  GetView().ExecuteScan( rReq );
135  break;
136  }
137 
138  case SID_SAVE_GRAPHIC:
139  {
140  GraphicAttr aGraphicAttr;
141  rSh.GetGraphicAttr(aGraphicAttr);
142 
143  short nState = RET_CANCEL;
144  if (aGraphicAttr != GraphicAttr()) // the image has been modified
145  {
146  weld::Window* pWin = GetView().GetFrameWeld();
147  if (pWin)
148  {
150  }
151  }
152  else
153  {
154  nState = RET_NO;
155  }
156 
157  if (nState == RET_YES)
158  {
159  const GraphicObject* pGraphicObj = rSh.GetGraphicObj();
160  if (pGraphicObj)
161  {
162  Graphic aGraphic = pGraphicObj->GetTransformedGraphic(pGraphicObj->GetPrefSize(), pGraphicObj->GetPrefMapMode(), aGraphicAttr);
163  OUString sGrfNm;
164  OUString sFilterNm;
165  rSh.GetGrfNms( &sGrfNm, &sFilterNm );
166  GraphicHelper::ExportGraphic(GetView().GetFrameWeld(), aGraphic, sGrfNm);
167  }
168  }
169  else if (nState == RET_NO)
170  {
171  const Graphic *pGraphic = rSh.GetGraphic();
172  if(nullptr != pGraphic)
173  {
174  OUString sGrfNm;
175  OUString sFilterNm;
176  rSh.GetGrfNms( &sGrfNm, &sFilterNm );
177  GraphicHelper::ExportGraphic(GetView().GetFrameWeld(), *pGraphic, sGrfNm);
178  }
179  }
180  }
181  break;
182 
183  case SID_COMPRESS_GRAPHIC:
184  {
185  const Graphic* pGraphic = rSh.GetGraphic();
186  if( pGraphic )
187  {
188  Size aSize (
191 
193  rSh.GetCurAttr( aSet );
194  SwMirrorGrf aMirror( aSet.Get(RES_GRFATR_MIRRORGRF) );
195  SwCropGrf aCrop( aSet.Get(RES_GRFATR_CROPGRF) );
196 
197  tools::Rectangle aCropRectangle(
198  convertTwipToMm100(aCrop.GetLeft()),
199  convertTwipToMm100(aCrop.GetTop()),
200  convertTwipToMm100(aCrop.GetRight()),
201  convertTwipToMm100(aCrop.GetBottom()) );
202 
203  Graphic aGraphic = *pGraphic;
204 
205  CompressGraphicsDialog aDialog(GetView().GetFrameWeld(), aGraphic, aSize, aCropRectangle, GetView().GetViewFrame()->GetBindings());
206  if (aDialog.run() == RET_OK)
207  {
208  rSh.StartAllAction();
210  tools::Rectangle aScaledCropedRectangle = aDialog.GetScaledCropRectangle();
211 
212  aCrop.SetLeft( convertMm100ToTwip( aScaledCropedRectangle.Left() ));
213  aCrop.SetTop( convertMm100ToTwip( aScaledCropedRectangle.Top() ));
214  aCrop.SetRight( convertMm100ToTwip( aScaledCropedRectangle.Right() ));
215  aCrop.SetBottom( convertMm100ToTwip( aScaledCropedRectangle.Bottom() ));
216 
217  Graphic aCompressedGraphic( aDialog.GetCompressedGraphic() );
218  rSh.ReRead(OUString(), OUString(), const_cast<const Graphic*>(&aCompressedGraphic));
219 
220  rSh.SetAttrItem(aCrop);
221  rSh.SetAttrItem(aMirror);
222 
223  rSh.EndUndo(SwUndoId::END);
224  rSh.EndAllAction();
225  }
226  }
227  }
228  break;
229  case SID_EXTERNAL_EDIT:
230  {
231  // When the graphic is selected to be opened via some external tool
232  // for advanced editing
233  GraphicObject const*const pGraphicObject(rSh.GetGraphicObj());
234  if(nullptr != pGraphicObject)
235  {
236  m_ExternalEdits.push_back(std::make_unique<SwExternalToolEdit>(
237  &rSh));
238  m_ExternalEdits.back()->Edit(pGraphicObject);
239  }
240  }
241  break;
242  case SID_CHANGE_PICTURE:
243  case SID_INSERT_GRAPHIC:
244  {
245  // #i123922# implement slot independent from the two below to
246  // bring up the insert graphic dialog and associated actions
247  SwView& rLclView = GetView();
248  rReq.SetReturnValue(SfxBoolItem(nSlot, rLclView.InsertGraphicDlg( rReq )));
249  break;
250  }
252  case FN_DRAW_WRAP_DLG:
253  {
254  SwFlyFrameAttrMgr aMgr( false, &rSh, rSh.IsFrameSelected() ?
256  const SwViewOption* pVOpt = rSh.GetViewOptions();
257  SwViewOption aUsrPref( *pVOpt );
258 
259  SfxItemSet aSet(
260  GetPool(),
261  svl::Items<
263  // FillAttribute support:
265  SID_DOCFRAME, SID_DOCFRAME,
266  SID_REFERER, SID_REFERER,
267  SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER,
268  SID_ATTR_PAGE_SIZE, SID_ATTR_PAGE_SIZE, // 10051
269  // RotGrfFlyFrame: Need RotationAngle now
270  SID_ATTR_TRANSFORM_ANGLE, SID_ATTR_TRANSFORM_ANGLE, // 10095
271  // Items to hand over XPropertyList things like
272  // XColorList, XHatchList, XGradientList, and XBitmapList to
273  // the Area TabPage:
274  SID_COLOR_TABLE, SID_PATTERN_LIST, //10179
275  SID_HTML_MODE, SID_HTML_MODE, //10414
276  SID_ATTR_GRAF_KEEP_ZOOM, SID_ATTR_GRAF_KEEP_ZOOM, //10882
277  SID_ATTR_GRAF_FRMSIZE, SID_ATTR_GRAF_GRAPHIC, // 10884
278  // contains SID_ATTR_GRAF_FRMSIZE_PERCENT
285 
286  // create needed items for XPropertyList entries from the DrawModel so that
287  // the Area TabPage can access them
289 
290  aSet.Put(SvxColorListItem(pDrawModel->GetColorList(), SID_COLOR_TABLE));
291  aSet.Put(SvxGradientListItem(pDrawModel->GetGradientList(), SID_GRADIENT_LIST));
292  aSet.Put(SvxHatchListItem(pDrawModel->GetHatchList(), SID_HATCH_LIST));
293  aSet.Put(SvxBitmapListItem(pDrawModel->GetBitmapList(), SID_BITMAP_LIST));
294  aSet.Put(SvxPatternListItem(pDrawModel->GetPatternList(), SID_PATTERN_LIST));
295 
296  sal_uInt16 nHtmlMode = ::GetHtmlMode(GetView().GetDocShell());
297  aSet.Put(SfxUInt16Item(SID_HTML_MODE, nHtmlMode));
298  FieldUnit eMetric = ::GetDfltMetric(0 != (nHtmlMode&HTMLMODE_ON));
299  SW_MOD()->PutItem(SfxUInt16Item(SID_ATTR_METRIC, static_cast< sal_uInt16 >(eMetric)) );
300 
301  const SwRect* pRect = &rSh.GetAnyCurRect(CurRectType::Page);
302  SwFormatFrameSize aFrameSize( SwFrameSize::Variable, pRect->Width(), pRect->Height());
303  aFrameSize.SetWhich( GetPool().GetWhich( SID_ATTR_PAGE_SIZE ) );
304  aSet.Put( aFrameSize );
305 
306  aSet.Put(SfxStringItem(FN_SET_FRM_NAME, rSh.GetFlyName()));
308  if ( nSlot == FN_FORMAT_GRAFIC_DLG )
309  {
310  // #i73249#
311  aSet.Put( SfxStringItem( FN_SET_FRM_ALT_NAME, rSh.GetObjTitle() ) );
312  }
313 
314  pRect = &rSh.GetAnyCurRect(CurRectType::PagePrt);
315  aFrameSize.SetWidth( pRect->Width() );
316  aFrameSize.SetHeight( pRect->Height() );
317  aFrameSize.SetWhich( GetPool().GetWhich(FN_GET_PRINT_AREA) );
318  aSet.Put( aFrameSize );
319 
320  aSet.Put( aMgr.GetAttrSet() );
321  aSet.SetParent( aMgr.GetAttrSet().GetParent() );
322 
323  // At percentage values initialize size
324  SwFormatFrameSize aSizeCopy = aSet.Get(RES_FRM_SIZE);
325  if (aSizeCopy.GetWidthPercent() && aSizeCopy.GetWidthPercent() != SwFormatFrameSize::SYNCED)
327  if (aSizeCopy.GetHeightPercent() && aSizeCopy.GetHeightPercent() != SwFormatFrameSize::SYNCED)
329  // and now set the size for "external" tabpages
330  {
331  SvxSizeItem aSzItm( SID_ATTR_GRAF_FRMSIZE, aSizeCopy.GetSize() );
332  aSet.Put( aSzItm );
333 
334  Size aSz( aSizeCopy.GetWidthPercent(), aSizeCopy.GetHeightPercent() );
335  if( SwFormatFrameSize::SYNCED == aSz.Width() ) aSz.setWidth( 0 );
336  if( SwFormatFrameSize::SYNCED == aSz.Height() ) aSz.setHeight( 0 );
337 
338  aSzItm.SetSize( aSz );
339  aSzItm.SetWhich( SID_ATTR_GRAF_FRMSIZE_PERCENT );
340  aSet.Put( aSzItm );
341  }
342 
343  OUString sGrfNm;
344  OUString sFilterNm;
345  rSh.GetGrfNms( &sGrfNm, &sFilterNm );
346  if( !sGrfNm.isEmpty() )
347  {
348  aSet.Put( SvxBrushItem( INetURLObject::decode( sGrfNm,
350  sFilterNm, GPOS_LT,
351  SID_ATTR_GRAF_GRAPHIC ));
352  }
353  else
354  {
355  // #119353# - robust
356  const GraphicObject* pGrfObj = rSh.GetGraphicObj();
357  if ( pGrfObj )
358  {
359  aSet.Put( SvxBrushItem( *pGrfObj, GPOS_LT,
360  SID_ATTR_GRAF_GRAPHIC ) );
361  }
362  }
363  aSet.Put( SfxBoolItem( FN_PARAM_GRF_CONNECT, !sGrfNm.isEmpty() ) );
364 
365  // get Mirror and Crop
366  {
367  SfxItemSet aTmpSet( rSh.GetAttrPool(),
369 
370  rSh.GetCurAttr( aTmpSet );
371  aSet.Put( aTmpSet );
372  }
373 
374  aSet.Put(SfxBoolItem(FN_KEEP_ASPECT_RATIO, aUsrPref.IsKeepRatio()));
375  aSet.Put(SfxBoolItem( SID_ATTR_GRAF_KEEP_ZOOM, aUsrPref.IsGrfKeepZoom()));
376 
377  aSet.Put(SfxFrameItem( SID_DOCFRAME, &GetView().GetViewFrame()->GetFrame()));
378 
379  SfxObjectShell * sh = rSh.GetDoc()->GetPersist();
380  if (sh != nullptr && sh->HasName())
381  {
382  aSet.Put(
383  SfxStringItem(SID_REFERER, sh->GetMedium()->GetName()));
384  }
385 
386  Size aUnrotatedSize;
387  sal_uInt16 nCurrentRotation(0);
388  { // RotGrfFlyFrame: Add current RotationAngle value, convert from
389  // RES_GRFATR_ROTATION to SID_ATTR_TRANSFORM_ANGLE. Do not forget to
390  // convert from 10th degrees to 100th degrees
392  rSh.GetCurAttr( aTmpSet );
393  const SwRotationGrf& rRotation = aTmpSet.Get(RES_GRFATR_ROTATION);
394  nCurrentRotation = rRotation.GetValue();
395  aUnrotatedSize = rRotation.GetUnrotatedSize();
396  aSet.Put(SfxInt32Item(SID_ATTR_TRANSFORM_ANGLE, nCurrentRotation * 10));
397  }
398 
400  ScopedVclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateFrameTabDialog("PictureDialog",
401  GetView().GetViewFrame(),
402  GetView().GetFrameWeld(),
403  aSet, false));
404  if (nSlot == FN_DRAW_WRAP_DLG)
405  pDlg->SetCurPageId("wrap");
406 
407  if (pDlg->Execute() == RET_OK)
408  {
409  rSh.StartAllAction();
411  const SfxPoolItem* pItem;
412  SfxItemSet* pSet = const_cast<SfxItemSet*>(pDlg->GetOutputItemSet());
413  rReq.Done(*pSet);
414  // change the 2 frmsize SizeItems to the correct SwFrameSizeItem
415  if( SfxItemState::SET == pSet->GetItemState(
416  SID_ATTR_GRAF_FRMSIZE, false, &pItem ))
417  {
418  SwFormatFrameSize aSize;
419  const Size& rSz = static_cast<const SvxSizeItem*>(pItem)->GetSize();
420  aSize.SetWidth( rSz.Width() );
421  aSize.SetHeight( rSz.Height() );
422 
423  if( SfxItemState::SET == pSet->GetItemState(
424  SID_ATTR_GRAF_FRMSIZE_PERCENT, false, &pItem ))
425  {
426  const Size& rRelativeSize = static_cast<const SvxSizeItem*>(pItem)->GetSize();
427  aSize.SetWidthPercent( static_cast< sal_uInt8 >( rRelativeSize.Width() ) );
428  aSize.SetHeightPercent( static_cast< sal_uInt8 >( rRelativeSize.Height() ) );
429  }
430  pSet->Put( aSize );
431  }
432 
433  // Templates AutoUpdate
434  SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat();
435  if(pFormat && pFormat->IsAutoUpdateFormat())
436  {
437  pFormat->SetFormatAttr(*pSet);
438  SfxItemSet aShellSet(
439  GetPool(),
440  svl::Items<
443  aShellSet.Put(*pSet);
444  aMgr.SetAttrSet(aShellSet);
445  }
446  else
447  {
448  aMgr.SetAttrSet(*pSet);
449  }
450  aMgr.UpdateFlyFrame();
451 
452  bool bApplyUsrPref = false;
453  if (SfxItemState::SET == pSet->GetItemState(
454  FN_KEEP_ASPECT_RATIO, true, &pItem ))
455  {
456  aUsrPref.SetKeepRatio(
457  static_cast<const SfxBoolItem*>(pItem)->GetValue() );
458  bApplyUsrPref = true;
459  }
460  if( SfxItemState::SET == pSet->GetItemState(
461  SID_ATTR_GRAF_KEEP_ZOOM, true, &pItem ))
462  {
463  aUsrPref.SetGrfKeepZoom(
464  static_cast<const SfxBoolItem*>(pItem)->GetValue() );
465  bApplyUsrPref = true;
466  }
467 
468  if( bApplyUsrPref )
469  SW_MOD()->ApplyUsrPref(aUsrPref, &GetView());
470 
471  // and now set all the graphic attributes and other stuff
472  if( SfxItemState::SET == pSet->GetItemState(
473  SID_ATTR_GRAF_GRAPHIC, true, &pItem ))
474  {
475  if( !static_cast<const SvxBrushItem*>(pItem)->GetGraphicLink().isEmpty() )
476  sGrfNm = static_cast<const SvxBrushItem*>(pItem)->GetGraphicLink();
477  else
478  sGrfNm.clear();
479 
480  if( !static_cast<const SvxBrushItem*>(pItem)->GetGraphicFilter().isEmpty() )
481  sFilterNm = static_cast<const SvxBrushItem*>(pItem)->GetGraphicFilter();
482  else
483  sFilterNm.clear();
484 
485  if( !sGrfNm.isEmpty() )
486  {
487  SwDocShell* pDocSh = GetView().GetDocShell();
488  SwWait aWait( *pDocSh, true );
489  SfxMedium* pMedium = pDocSh->GetMedium();
490  INetURLObject aAbs;
491  if( pMedium )
492  aAbs = pMedium->GetURLObject();
494  aAbs, sGrfNm,
496  sFilterNm );
497  }
498  }
499  if ( SfxItemState::SET == pSet->GetItemState(
500  FN_SET_FRM_ALT_NAME, true, &pItem ))
501  {
502  // #i73249#
503  rSh.SetObjTitle( static_cast<const SfxStringItem*>(pItem)->GetValue() );
504  }
505 
506  if ( SfxItemState::SET == pSet->GetItemState(
507  FN_UNO_DESCRIPTION, true, &pItem ))
508  rSh.SetObjDescription( static_cast<const SfxStringItem*>(pItem)->GetValue() );
509 
510  // RotGrfFlyFrame: Get and process evtl. changed RotationAngle
511  if ( SfxItemState::SET == pSet->GetItemState(SID_ATTR_TRANSFORM_ANGLE, false, &pItem ))
512  {
513  const sal_Int32 aNewRotation((static_cast<const SfxInt32Item*>(pItem)->GetValue() / 10) % 3600);
514 
515  // RotGrfFlyFrame: Possible rotation change here, SwFlyFrameAttrMgr aMgr is available
516  aMgr.SetRotation(nCurrentRotation, aNewRotation, aUnrotatedSize);
517  }
518 
520  RES_GRFATR_END-1>{} );
521  aGrfSet.Put( *pSet );
522  if( aGrfSet.Count() )
523  rSh.SetAttrSet( aGrfSet );
524 
525  rSh.EndUndo(SwUndoId::END);
526  rSh.EndAllAction();
527  }
528  }
529  break;
530 
532  {
534  rSh.GetCurAttr( aSet );
535  SwMirrorGrf aGrf(aSet.Get(RES_GRFATR_MIRRORGRF));
536  aGrf.SetGrfToggle(!aGrf.IsGrfToggle());
537  rSh.SetAttrItem(aGrf);
538  }
539  break;
540 
541  case SID_OBJECT_CROP:
542  {
543  GraphicObject const *pGraphicObject = rSh.GetGraphicObj();
544  if (nullptr != pGraphicObject && SdrDragMode::Crop != rSh.GetDragMode()) {
545  rSh.StartCropImage();
546  }
547  }
548  break;
549 
550  default:
551  OSL_ENSURE(false, "wrong dispatcher");
552  return;
553  }
554 }
555 
556 void SwGrfShell::ExecAttr( SfxRequest const &rReq )
557 {
558  GraphicType nGrfType = GraphicType::NONE;
559  if (CNT_GRF == GetShell().GetCntType())
560  nGrfType = GetShell().GetGraphicType();
561  if (GraphicType::Bitmap == nGrfType ||
562  GraphicType::GdiMetafile == nGrfType)
563  {
564  SfxItemSet aGrfSet( GetShell().GetAttrPool(), svl::Items<RES_GRFATR_BEGIN,
565  RES_GRFATR_END -1>{} );
566  const SfxItemSet *pArgs = rReq.GetArgs();
567  const SfxPoolItem* pItem;
568  sal_uInt16 nSlot = rReq.GetSlot();
569  if( !pArgs || SfxItemState::SET != pArgs->GetItemState( nSlot, false, &pItem ))
570  pItem = nullptr;
571 
572  switch( nSlot )
573  {
574  case SID_FLIP_VERTICAL:
575  case SID_FLIP_HORIZONTAL:
576  {
577  GetShell().GetCurAttr( aGrfSet );
578  SwMirrorGrf aMirror( aGrfSet.Get( RES_GRFATR_MIRRORGRF ) );
579  MirrorGraph nMirror = aMirror.GetValue();
580  if ( nSlot==SID_FLIP_HORIZONTAL )
581  switch( nMirror )
582  {
584  break;
586  break;
588  break;
590  break;
591  }
592  else
593  switch( nMirror )
594  {
596  break;
598  break;
600  break;
602  break;
603  }
604  aMirror.SetValue( nMirror );
605  aGrfSet.ClearItem();
606  aGrfSet.Put( aMirror );
607  }
608  break;
609 
610  case SID_ATTR_GRAF_LUMINANCE:
611  if( pItem )
612  aGrfSet.Put( SwLuminanceGrf(
613  static_cast<const SfxInt16Item*>(pItem)->GetValue() ));
614  break;
615 
616  case SID_ATTR_GRAF_CONTRAST:
617  if( pItem )
618  aGrfSet.Put( SwContrastGrf(
619  static_cast<const SfxInt16Item*>(pItem)->GetValue() ));
620  break;
621 
622  case SID_ATTR_GRAF_RED:
623  if( pItem )
624  aGrfSet.Put( SwChannelRGrf(
625  static_cast<const SfxInt16Item*>(pItem)->GetValue() ));
626  break;
627 
628  case SID_ATTR_GRAF_GREEN:
629  if( pItem )
630  aGrfSet.Put( SwChannelGGrf(
631  static_cast<const SfxInt16Item*>(pItem)->GetValue() ));
632  break;
633 
634  case SID_ATTR_GRAF_BLUE:
635  if( pItem )
636  aGrfSet.Put( SwChannelBGrf(
637  static_cast<const SfxInt16Item*>(pItem)->GetValue() ));
638  break;
639 
640  case SID_ATTR_GRAF_GAMMA:
641  if( pItem )
642  {
643  double fVal = static_cast<const SfxUInt32Item*>(pItem)->GetValue();
644  aGrfSet.Put( SwGammaGrf(fVal/100. ));
645  }
646  break;
647 
648  case SID_ATTR_GRAF_TRANSPARENCE:
649  if( pItem )
650  aGrfSet.Put( SwTransparencyGrf(
651  static_cast< sal_Int8 >( static_cast<const SfxUInt16Item*>(pItem )->GetValue() ) ) );
652  break;
653 
654  case SID_ATTR_GRAF_INVERT:
655  if( pItem )
656  aGrfSet.Put( SwInvertGrf(
657  static_cast<const SfxBoolItem*>(pItem)->GetValue() ));
658  break;
659 
660  case SID_ATTR_GRAF_MODE:
661  if( pItem )
662  aGrfSet.Put( SwDrawModeGrf(
663  static_cast<GraphicDrawMode>(static_cast<const SfxUInt16Item*>(pItem)->GetValue()) ));
664  break;
665 
666  case SID_COLOR_SETTINGS:
667  {
668  svx::ToolboxAccess aToolboxAccess( TOOLBOX_NAME );
669  aToolboxAccess.toggleToolbox();
670  break;
671  }
672 
673  case SID_GRFFILTER:
674  case SID_GRFFILTER_INVERT:
675  case SID_GRFFILTER_SMOOTH:
676  case SID_GRFFILTER_SHARPEN:
677  case SID_GRFFILTER_REMOVENOISE:
678  case SID_GRFFILTER_SOBEL:
679  case SID_GRFFILTER_MOSAIC:
680  case SID_GRFFILTER_EMBOSS:
681  case SID_GRFFILTER_POSTER:
682  case SID_GRFFILTER_POPART:
683  case SID_GRFFILTER_SEPIA:
684  case SID_GRFFILTER_SOLARIZE:
685  if( GraphicType::Bitmap == nGrfType )
686  {
687  // #119353# - robust
688  const GraphicObject* pFilterObj( GetShell().GetGraphicObj() );
689  if ( pFilterObj )
690  {
691  GraphicObject aFilterObj( *pFilterObj );
692  if( SvxGraphicFilterResult::NONE ==
693  SvxGraphicFilter::ExecuteGrfFilterSlot( rReq, aFilterObj ))
694  GetShell().ReRead( OUString(), OUString(),
695  &aFilterObj.GetGraphic() );
696  }
697  }
698  break;
699 
700  default:
701  OSL_ENSURE(false, "wrong dispatcher");
702  }
703 
704  if( aGrfSet.Count() )
705  GetShell().SetAttrSet( aGrfSet );
706  }
708 }
709 
711 {
712  SwWrtShell &rSh = GetShell();
713  SfxItemSet aCoreSet( GetPool(), aNoTextNodeSetRange );
714  rSh.GetCurAttr( aCoreSet );
716  bool bIsGrfContent = CNT_GRF == GetShell().GetCntType();
717 
718  SetGetStateSet( &rSet );
719 
720  SfxWhichIter aIter( rSet );
721  sal_uInt16 nWhich = aIter.FirstWhich();
722  while( nWhich )
723  {
724  bool bDisable = bParentCntProt;
725  switch( nWhich )
726  {
727  case SID_OBJECT_ROTATE:
728  {
729  // RotGrfFlyFrame: steer rotation state
730  const bool bIsRotate(GetView().IsDrawRotate());
731  SdrView* pSdrView = rSh.GetDrawViewWithValidMarkList();
732 
733  if(!bIsRotate && !pSdrView->IsRotateAllowed())
734  {
735  rSet.DisableItem(nWhich);
736  }
737  else
738  {
739  rSet.Put(SfxBoolItem(nWhich, bIsRotate));
740  }
741 
742  break;
743  }
744  case SID_INSERT_GRAPHIC:
746  case SID_TWAIN_TRANSFER:
747  if( bParentCntProt || !bIsGrfContent )
748  bDisable = true;
749  else if ( nWhich == SID_INSERT_GRAPHIC
750  && rSh.CursorInsideInputField() )
751  {
752  bDisable = true;
753  }
754  break;
755 
756  case SID_SAVE_GRAPHIC:
757  case SID_EXTERNAL_EDIT:
758  if( rSh.GetGraphicType() == GraphicType::NONE || GetObjectShell()->isExportLocked())
759  bDisable = true;
760  break;
761 
762  case SID_COLOR_SETTINGS:
763  {
764  if ( bParentCntProt || !bIsGrfContent )
765  bDisable = true;
766  else
767  {
768  svx::ToolboxAccess aToolboxAccess( TOOLBOX_NAME );
769  rSet.Put( SfxBoolItem( nWhich, aToolboxAccess.isToolboxVisible() ) );
770  }
771  break;
772  }
773 
774  case SID_FLIP_HORIZONTAL:
775  if( !bParentCntProt )
776  {
777  MirrorGraph nState = aCoreSet.Get(
778  RES_GRFATR_MIRRORGRF ).GetValue();
779 
780  rSet.Put(SfxBoolItem( nWhich, nState == MirrorGraph::Vertical ||
781  nState == MirrorGraph::Both));
782  }
783  break;
784 
785  case SID_FLIP_VERTICAL:
786  if( !bParentCntProt )
787  {
789  rSet.Put(SfxBoolItem( nWhich, nState == MirrorGraph::Horizontal ||
790  nState == MirrorGraph::Both));
791  }
792  break;
793 
794  case SID_ATTR_GRAF_LUMINANCE:
795  if( !bParentCntProt )
796  rSet.Put( SfxInt16Item( nWhich,
797  aCoreSet.Get(RES_GRFATR_LUMINANCE).GetValue() ));
798  break;
799 
800  case SID_ATTR_GRAF_CONTRAST:
801  if( !bParentCntProt )
802  rSet.Put( SfxInt16Item( nWhich,
803  aCoreSet.Get(RES_GRFATR_CONTRAST).GetValue() ));
804  break;
805 
806  case SID_ATTR_GRAF_RED:
807  if( !bParentCntProt )
808  rSet.Put( SfxInt16Item( nWhich,
809  aCoreSet.Get(RES_GRFATR_CHANNELR).GetValue() ));
810  break;
811 
812  case SID_ATTR_GRAF_GREEN:
813  if( !bParentCntProt )
814  rSet.Put( SfxInt16Item( nWhich,
815  aCoreSet.Get(RES_GRFATR_CHANNELG).GetValue() ));
816  break;
817 
818  case SID_ATTR_GRAF_BLUE:
819  if( !bParentCntProt )
820  rSet.Put( SfxInt16Item( nWhich,
821  aCoreSet.Get(RES_GRFATR_CHANNELB).GetValue() ));
822  break;
823 
824  case SID_ATTR_GRAF_GAMMA:
825  if( !bParentCntProt )
826  rSet.Put( SfxUInt32Item( nWhich, static_cast< sal_uInt32 >(
827  aCoreSet.Get( RES_GRFATR_GAMMA ).GetValue() * 100 ) ) );
828  break;
829 
830  case SID_ATTR_GRAF_TRANSPARENCE:
831  if( !bParentCntProt )
832  {
833  // #119353# - robust
834  const GraphicObject* pGrafObj = rSh.GetGraphicObj();
835  if ( pGrafObj )
836  {
837  if( pGrafObj->IsAnimated() ||
838  GraphicType::GdiMetafile == pGrafObj->GetType() )
839  bDisable = true;
840  else
841  rSet.Put( SfxUInt16Item( nWhich,
842  aCoreSet.Get(RES_GRFATR_TRANSPARENCY).GetValue() ));
843  }
844  }
845  break;
846 
847  case SID_ATTR_GRAF_INVERT:
848  if( !bParentCntProt )
849  rSet.Put( SfxBoolItem( nWhich,
850  aCoreSet.Get(RES_GRFATR_INVERT).GetValue() ));
851  break;
852 
853  case SID_ATTR_GRAF_MODE:
854  if( !bParentCntProt )
855  rSet.Put( SfxUInt16Item( nWhich, static_cast<sal_uInt16>(aCoreSet.Get(RES_GRFATR_DRAWMODE).GetValue()) ));
856  break;
857 
858  case SID_GRFFILTER:
859  case SID_GRFFILTER_INVERT:
860  case SID_GRFFILTER_SMOOTH:
861  case SID_GRFFILTER_SHARPEN:
862  case SID_GRFFILTER_REMOVENOISE:
863  case SID_GRFFILTER_SOBEL:
864  case SID_GRFFILTER_MOSAIC:
865  case SID_GRFFILTER_EMBOSS:
866  case SID_GRFFILTER_POSTER:
867  case SID_GRFFILTER_POPART:
868  case SID_GRFFILTER_SEPIA:
869  case SID_GRFFILTER_SOLARIZE:
870  {
871  if( bParentCntProt || !bIsGrfContent )
872  bDisable = true;
873  // #i59688# load graphic only if type is unknown
874  else
875  {
876  const GraphicType eGraphicType( rSh.GetGraphicType() );
877  if ( ( eGraphicType == GraphicType::NONE ||
878  eGraphicType == GraphicType::Default ) &&
879  rSh.IsLinkedGrfSwapOut() )
880  {
881  rSet.DisableItem( nWhich );
882  if( AddGrfUpdateSlot( nWhich ))
883  rSh.GetGraphic(false); // start the loading
884  }
885  else
886  {
887  bDisable = eGraphicType != GraphicType::Bitmap;
888  }
889  }
890  }
891  break;
892 
893  case SID_OBJECT_CROP:
894  {
896  if( rSh.GetGraphicType() == GraphicType::NONE )
897  bDisable = true;
898  }
899  break;
900 
901  default:
902  bDisable = false;
903  }
904 
905  if( bDisable )
906  rSet.DisableItem( nWhich );
907  nWhich = aIter.NextWhich();
908  }
909  SetGetStateSet( nullptr );
910 }
911 
913 {
914  // RotGrfFlyFrame: Modify rotation attribute instead of manipulating the graphic
915  sal_uInt16 aRotation(0);
916 
917  if (rReq.GetSlot() == SID_ROTATE_GRAPHIC_LEFT)
918  {
919  aRotation = 900;
920  }
921  else if (rReq.GetSlot() == SID_ROTATE_GRAPHIC_RIGHT)
922  {
923  aRotation = 2700;
924  }
925  else if (rReq.GetSlot() == SID_ROTATE_GRAPHIC_180)
926  {
927  aRotation = 1800;
928  }
929 
930  if (rReq.GetSlot() != SID_ROTATE_GRAPHIC_RESET && 0 == aRotation)
931  return;
932 
933  SwWrtShell& rShell = GetShell();
935  rShell.GetCurAttr( aSet );
936  const SwRotationGrf& rRotation = aSet.Get(RES_GRFATR_ROTATION);
937  SwFlyFrameAttrMgr aMgr(false, &rShell, rShell.IsFrameSelected() ? Frmmgr_Type::NONE : Frmmgr_Type::GRF, nullptr);
938 
939  // RotGrfFlyFrame: Possible rotation change here, SwFlyFrameAttrMgr aMgr is available
940  if (rReq.GetSlot() == SID_ROTATE_GRAPHIC_RESET)
941  {
942  aMgr.SetRotation(rRotation.GetValue(), 0, rRotation.GetUnrotatedSize());
943  }
944  else if(0 != aRotation)
945  {
946  const sal_uInt16 aNewRotation((aRotation + rRotation.GetValue()) % 3600);
947 
948  aMgr.SetRotation(rRotation.GetValue(), aNewRotation, rRotation.GetUnrotatedSize());
949  }
950 }
951 
953 {
954  SwWrtShell& rShell = GetShell();
955  bool bIsParentContentProtected = FlyProtectFlags::NONE != rShell.IsSelObjProtected( FlyProtectFlags::Content|FlyProtectFlags::Parent );
956 
957  SetGetStateSet( &rSet );
958 
959  SfxWhichIter aIterator( rSet );
960  sal_uInt16 nWhich = aIterator.FirstWhich();
961  while( nWhich )
962  {
963  bool bDisable = bIsParentContentProtected;
964  switch( nWhich )
965  {
966  case SID_ROTATE_GRAPHIC_LEFT:
967  case SID_ROTATE_GRAPHIC_RIGHT:
968  case SID_ROTATE_GRAPHIC_180:
969  {
970  if( rShell.GetGraphicType() == GraphicType::NONE )
971  {
972  bDisable = true;
973  }
974  break;
975  }
976  case SID_ROTATE_GRAPHIC_RESET:
977  {
978  // RotGrfFlyFrame: disable when already no rotation
980  rShell.GetCurAttr( aSet );
981  const SwRotationGrf& rRotation = aSet.Get(RES_GRFATR_ROTATION);
982  bDisable = (0 == rRotation.GetValue());
983  break;
984  }
985  case SID_ATTR_TRANSFORM_ANGLE:
986  {
987  // RotGrfFlyFrame: get rotation value from RES_GRFATR_ROTATION and copy to rSet as
988  // SID_ATTR_TRANSFORM_ANGLE, convert from 10th degrees to 100th degrees
990  rShell.GetCurAttr( aSet );
991  const SwRotationGrf& rRotation = aSet.Get(RES_GRFATR_ROTATION);
992  rSet.Put(SfxInt32Item(SID_ATTR_TRANSFORM_ANGLE, rRotation.GetValue() * 10));
993  break;
994  }
995  default:
996  bDisable = false;
997  }
998 
999  if( bDisable )
1000  rSet.DisableItem( nWhich );
1001  nWhich = aIterator.NextWhich();
1002  }
1003  SetGetStateSet( nullptr );
1004 }
1005 
1007 {
1008 }
1009 
1011  SwBaseShell(_rView)
1012 {
1013  SetName("Graphic");
1015 }
1016 
1017 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
constexpr TypedWhichId< SwCropGrf > RES_GRFATR_CROPGRF(132)
SfxViewFrame * GetViewFrame() const
constexpr TypedWhichId< SwDrawModeGrf > RES_GRFATR_DRAWMODE(142)
void DeleteMark()
Definition: pam.hxx:177
constexpr TypedWhichId< SwFormatSurround > RES_SURROUND(101)
static short HasToSaveTransformedImage(weld::Widget *pWin)
FieldUnit
#define TOOLBOX_NAME
Definition: grfsh.cxx:66
Rect of current FlyFrame.
SwView & GetView()
Definition: basesh.hxx:57
#define SFX_IMPL_INTERFACE(Class, SuperClass)
bool IsRotationOfSwGrfNodePossible() const
Definition: feshview.cxx:1174
void SetHeight(tools::Long n)
SfxViewFrame * GetFrame() const
void setWidth(tools::Long nWidth)
void ReRead(const OUString &rGrfName, const OUString &rFltName, const Graphic *pGraphic=nullptr)
Re-read if graphic is not ok. Current graphic is replaced by the new one.
Definition: editsh.cxx:294
virtual ~SwGrfShell() override
Definition: grfsh.cxx:1006
void SetGrfToggle(bool bNew)
Definition: grfatr.hxx:66
std::string GetValue
#define FN_PARAM_GRF_CONNECT
Definition: cmdid.h:782
GPOS_LT
constexpr TypedWhichId< SwFormatFrameSize > RES_FRM_SIZE(89)
const SwRect & GetAnyCurRect(CurRectType eType, const Point *pPt=nullptr, const css::uno::Reference< css::embed::XEmbeddedObject > &=css::uno::Reference< css::embed::XEmbeddedObject >()) const
Definition: fews.cxx:89
SwWrtShell & GetShell()
Definition: basesh.cxx:2687
void FlipDrawRotate()
Definition: view.hxx:516
const OUString & GetName() const
void toggleToolbox() const
#define CNT_GRF
Definition: editsh.hxx:131
constexpr TypedWhichId< SwRotationGrf > RES_GRFATR_ROTATION(133)
void SetAttrSet(const SfxItemSet &, SetAttrMode nFlags=SetAttrMode::DEFAULT, SwPaM *pCursor=nullptr, const bool bParagraphSetting=false)
Definition: edatmisc.cxx:151
bool Pop(SwCursorShell::PopMode=SwCursorShell::PopMode::DeleteStack)
Definition: wrtsh1.cxx:1715
#define FN_SET_FRM_ALT_NAME
Definition: cmdid.h:855
Check only parents.
GraphicType
sal_uInt16 GetValue() const
sal_uInt16 FirstWhich()
SwUndoId EndUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Closes parenthesis of nUndoId, not used by UI.
Definition: edws.cxx:234
bool isToolboxVisible() const
virtual void Update(Graphic &rGraphic) override
Definition: grfsh.cxx:84
constexpr TypedWhichId< SwGammaGrf > RES_GRFATR_GAMMA(139)
void Execute(SfxRequest &rRequest)
Definition: grfsh.cxx:104
MirrorGraph
Definition: grfatr.hxx:31
static SvxGraphicFilterResult ExecuteGrfFilterSlot(SfxRequest const &rReq, GraphicObject &rFilterObject)
constexpr TypedWhichId< SwInvertGrf > RES_GRFATR_INVERT(140)
void Done(bool bRemove=false)
void GetAttrStateForRotation(SfxItemSet &rRequest)
Definition: grfsh.cxx:952
const Size & GetUnrotatedSize() const
Definition: grfatr.hxx:108
void ExecuteScan(SfxRequest &rReq)
Definition: view2.cxx:2607
Of course Writer needs its own rectangles.
Definition: swrect.hxx:35
sal_uInt16 const aNoTextNodeSetRange[]
Definition: init.cxx:184
const SfxItemSet * GetArgs() const
void Invalidate(sal_uInt16 nId)
Graphic GetCompressedGraphic()
void StartCropImage()
Definition: feshview.cxx:676
#define FN_FORMAT_GRAFIC_DLG
Definition: cmdid.h:319
void EndAllAction()
Definition: edws.cxx:97
RET_CANCEL
Graphic GetTransformedGraphic(const Size &rDestSize, const MapMode &rDestMap, const GraphicAttr &rAttr) const
void SetGrfKeepZoom(bool b)
Definition: viewopt.hxx:542
constexpr TypedWhichId< SwLuminanceGrf > RES_GRFATR_LUMINANCE(134)
sal_uInt16 NextWhich()
IDocumentDrawModelAccess const & getIDocumentDrawModelAccess() const
Definition: doc.cxx:155
constexpr TypedWhichId< SwChannelBGrf > RES_GRFATR_CHANNELB(138)
void SetKeepRatio(bool b)
Definition: viewopt.hxx:540
Used by the UI to modify the document model.
Definition: wrtsh.hxx:90
RET_NO
const SwView & GetView() const
Definition: wrtsh.hxx:428
RET_YES
tools::Long Left() const
void SetLeft(tools::Long v)
void SetGetStateSet(SfxItemSet *p)
Definition: basesh.hxx:58
tools::Long Bottom() const
void Width(tools::Long nNew)
Definition: swrect.hxx:187
Size GetPrefSize() const
SwDoc * GetDoc() const
Definition: viewsh.hxx:281
void GetGrfNms(OUString *pGrfName, OUString *pFltName, const SwFlyFrameFormat *=nullptr) const
Returns the name and the filter name of a graphic if the pointer is on a graphic. ...
Definition: editsh.cxx:304
bool IsRotateAllowed(bool b90Deg=false) const
virtual VclPtr< SfxAbstractTabDialog > CreateFrameTabDialog(const OUString &rDialogType, SfxViewFrame *pFrame, weld::Window *pParent, const SfxItemSet &rCoreSet, bool bNewFrame=true, const OString &sDefPage=OString())=0
SfxItemPool & GetPool() const
MapMode GetPrefMapMode() const
void ExecuteRotation(SfxRequest const &rRequest)
Definition: grfsh.cxx:912
OUString GetObjTitle() const
Definition: fefly1.cxx:1942
weld::Window * GetFrameWeld(const SfxFrame *pFrame)
Definition: dialoghelp.cxx:20
SwDoc * GetDoc()
returns Doc. But be careful!
Definition: docsh.hxx:203
void SetObjDescription(const OUString &rDescription)
Definition: fefly1.cxx:2004
#define FN_UNO_DESCRIPTION
Definition: cmdid.h:857
std::shared_ptr< SwUnoCursor > const m_pCursor
Definition: grfsh.cxx:73
const SfxItemPool & GetAttrPool() const
Definition: viewsh.hxx:612
Style of a layout element.
Definition: frmfmt.hxx:58
virtual SwPaM & GetCurrentShellCursor() override
Return the current shell cursor.
Definition: crsrsh.cxx:181
Rect of current PrtArea of page.
#define SW_MOD()
Definition: swmodule.hxx:255
tools::Rectangle GetScaledCropRectangle() const
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
SW_DLLPUBLIC FieldUnit GetDfltMetric(bool bWeb)
Definition: uitool.cxx:686
GraphicType GetGraphicType() const
Definition: editsh.cxx:270
#define FN_KEEP_ASPECT_RATIO
Definition: cmdid.h:853
const SwPosition * GetPoint() const
Definition: pam.hxx:207
SVL_DLLPUBLIC Link< OUString *, bool > const & GetMaybeFileHdl()
void Push()
store a copy of the current cursor on the cursor stack
Definition: crsrsh.cxx:2237
#define FN_PARAM_GRF_DIALOG
Definition: cmdid.h:788
SfxBindings & GetBindings()
void SetAttrItem(const SfxPoolItem &, SetAttrMode nFlags=SetAttrMode::DEFAULT, const bool bParagraphSetting=false)
Definition: edatmisc.cxx:112
HTMLMODE_ON
sal_uInt16 GetHtmlMode(const SwDocShell *pShell)
Definition: viewopt.cxx:345
sal_uInt8 GetHeightPercent() const
Definition: fmtfsize.hxx:88
const GraphicObject * GetGraphicObj() const
Definition: editsh.cxx:257
virtual const SwDrawModel * GetDrawModel() const =0
Draw Model and id accessors.
SwUndoId StartUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Undo: set up Undo parenthesis, return nUndoId of this parenthesis.
Definition: edws.cxx:223
constexpr sal_uInt16 XATTR_FILL_FIRST(XATTRSET_LINE+1)
tools::Long Width() const
#define FN_GRAPHIC_MIRROR_ON_EVEN_PAGES
Definition: cmdid.h:460
static SwAbstractDialogFactory * Create()
Definition: swabstdlg.cxx:36
constexpr sal_uInt16 RES_GRFATR_END(148)
constexpr TypedWhichId< SwContrastGrf > RES_GRFATR_CONTRAST(135)
bool IsDrawRotate() const
Definition: view.hxx:515
bool HasName() const
SdrDragMode GetDragMode() const
Definition: feshview.cxx:666
void SetName(const OUString &rName)
SwExternalToolEdit(SwWrtShell *const pShell)
Definition: grfsh.cxx:76
bool IsAutoUpdateFormat() const
Query / set bAutoUpdateFormat-flag.
Definition: format.hxx:168
sal_uInt8 GetWidthPercent() const
Definition: fmtfsize.hxx:91
tools::Long Top() const
const Graphic * GetGraphic(bool bWait=true) const
Definition: editsh.cxx:238
std::vector< std::unique_ptr< SwExternalToolEdit > > m_ExternalEdits
Definition: grfsh.hxx:32
FlyProtectFlags IsSelObjProtected(FlyProtectFlags eType) const
Which Protection is set at selected object?
Definition: feshview.cxx:2596
GraphicType GetType() const
SwDocShell * GetDocShell()
Definition: view.cxx:1109
#define FN_GET_PRINT_AREA
Definition: cmdid.h:733
SwWrtShell *const m_pShell
Definition: grfsh.cxx:72
#define SFX_OBJECTBAR_OBJECT
void SetWidth(tools::Long n)
SwFrameFormat * GetSelectedFrameFormat() const
If frame then frame style, else 0.
Definition: fefly1.cxx:1191
Rect of current page.
virtual bool SetFormatAttr(const SfxPoolItem &rAttr)
Definition: format.cxx:461
void SetReturnValue(const SfxPoolItem &)
bool isExportLocked() const
void SetHeightPercent(sal_uInt8 n)
Definition: fmtfsize.hxx:93
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
constexpr TypedWhichId< SwMirrorGrf > RES_GRFATR_MIRRORGRF(RES_GRFATR_BEGIN)
sal_uInt16 GetSlot() const
static const OUString & GetContextName(const Context eContext)
static OUString ExportGraphic(weld::Window *pWin, const Graphic &rGraphic, const OUString &rGraphicName)
bool IsKeepRatio() const
Definition: viewopt.hxx:521
constexpr sal_Int64 convertTwipToMm100(sal_Int64 n)
void DisableItem(sal_uInt16 nWhich)
weld::Window * GetFrameWeld() const
SwGrfShell(SwView &rView)
Definition: grfsh.cxx:1010
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
const Graphic & GetGraphic() const
constexpr TypedWhichId< SwChannelRGrf > RES_GRFATR_CHANNELR(136)
#define GetWhich(nSlot)
const SwViewOption * GetViewOptions() const
Definition: viewsh.hxx:423
constexpr sal_uInt16 RES_GRFATR_BEGIN(RES_FRMATR_END)
sal_uInt16 GetCntType() const
Determine form of content. Return Type at CurrentCursor->SPoint.
Definition: edws.cxx:126
void SetWidthPercent(sal_uInt8 n)
Definition: fmtfsize.hxx:95
SdrView * GetDrawViewWithValidMarkList()
Definition: vnew.cxx:380
#define FN_SET_FRM_NAME
Definition: cmdid.h:852
bool IsGrfKeepZoom() const
Definition: viewopt.hxx:523
RET_OK
constexpr TypedWhichId< SwTransparencyGrf > RES_GRFATR_TRANSPARENCY(141)
SfxObjectShell * GetPersist() const
Definition: docnew.cxx:637
tools::Long Height() const
const INetURLObject & GetURLObject() const
bool GetCurAttr(SfxItemSet &, const bool bMergeIndentValuesOfNumRule=false) const
Definition: edattr.cxx:176
constexpr sal_Int64 convertMm100ToTwip(sal_Int64 n)
void SetDragMode(SdrDragMode eSdrDragMode)
Set DragMode (e.g. Rotate), but do nothing when frame is selected.
Definition: feshview.cxx:660
constexpr TypedWhichId< SwChannelGGrf > RES_GRFATR_CHANNELG(137)
SAL_DLLPRIVATE bool InsertGraphicDlg(SfxRequest &)
Definition: view2.cxx:294
void SetRotation(sal_uInt16 nOld, sal_uInt16 nNew, const Size &rUnrotatedSize)
Definition: frmmgr.cxx:586
bool AddGrfUpdateSlot(sal_uInt16 nSlot)
Definition: basesh.hxx:59
constexpr sal_uInt16 XATTR_FILL_LAST(XATTR_FILLBACKGROUND)
void SetObjTitle(const OUString &rTitle)
Definition: fefly1.cxx:1962
#define DBG_TESTSOLARMUTEX()
bool IsAnimated() const
const GraphicAttr * GetGraphicAttr(GraphicAttr &rGA) const
Definition: editsh.cxx:263
Frame is variable in Var-direction.
OUString GetObjDescription() const
Definition: fefly1.cxx:1984
void StartAllAction()
For all views of this document.
Definition: edws.cxx:86
bool IsLinkedGrfSwapOut() const
Definition: editsh.cxx:249
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
void Height(tools::Long nNew)
Definition: swrect.hxx:191
sal_Int32 nState
void SetContextName(const OUString &rsContextName)
constexpr sal_uInt16 RES_FRMATR_BEGIN(RES_PARATR_LIST_END)
OUString GetFlyName() const
Definition: fefly1.cxx:1459
bool IsFrameSelected() const
Definition: feshview.cxx:1157
void ExecAttr(SfxRequest const &rRequest)
Definition: grfsh.cxx:556
tools::Long Right() const
#define FN_DRAW_WRAP_DLG
Definition: cmdid.h:151
virtual SfxObjectShell * GetObjectShell()
Definition: view.hxx:144
const Size & GetSize() const
constexpr TypedWhichId< SwFormatAnchor > RES_ANCHOR(104)
void GetAttrState(SfxItemSet &rRequest)
Definition: grfsh.cxx:710
SVL_DLLPUBLIC OUString SmartRel2Abs(INetURLObject const &rTheBaseURIRef, OUString const &rTheRelURIRef, Link< OUString *, bool > const &rMaybeFileHdl=Link< OUString *, bool >(), bool bCheckFileExists=true, bool bIgnoreFragment=false, INetURLObject::EncodeMechanism eEncodeMechanism=INetURLObject::EncodeMechanism::WasEncoded, INetURLObject::DecodeMechanism eDecodeMechanism=INetURLObject::DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8, FSysStyle eStyle=FSysStyle::Detect)
EnumT GetValue() const
bool CursorInsideInputField() const
Definition: crstrvl.cxx:925
SfxMedium * GetMedium() const
static OUString decode(OUString const &rText, DecodeMechanism eMechanism, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8)