LibreOffice Module sc (master)  1
tabvwsh2.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 <comphelper/lok.hxx>
21 #include <sfx2/bindings.hxx>
22 #include <sfx2/viewfrm.hxx>
23 #include <svl/whiter.hxx>
25 #include <svl/cjkoptions.hxx>
26 #include <sfx2/dispatch.hxx>
27 #include <tools/UnitConversion.hxx>
28 
29 #include <tabvwsh.hxx>
30 #include <drawview.hxx>
31 #include <fupoor.hxx>
32 #include <fuconrec.hxx>
33 #include <fuconpol.hxx>
34 #include <fuconarc.hxx>
35 #include <fuconuno.hxx>
36 #include <fusel.hxx>
37 #include <futext.hxx>
38 #include <fuinsert.hxx>
39 #include <sc.hrc>
40 #include <scmod.hxx>
41 #include <appoptio.hxx>
42 #include <gridwin.hxx>
43 
44 // Create default drawing objects via keyboard
45 #include <svx/svdpagv.hxx>
46 #include <svl/stritem.hxx>
47 #include <fuconcustomshape.hxx>
48 
50 {
51  return const_cast<ScTabViewShell*>(this)->GetScDrawView(); // GetScDrawView is non-const
52 }
53 
55 {
56  vcl::Window* pWin = GetActiveWin();
57 
58  ScDrawView* pDrView = GetScDrawView();
59  if (pDrView)
60  pDrView->SetActualWin(pWin->GetOutDev());
61 
62  FuPoor* pFunc = GetDrawFuncPtr();
63  if (pFunc)
64  pFunc->SetWindow(pWin);
65 
66  // when font from InputContext is used,
67  // this must be moved to change of cursor position:
69 }
70 
72 {
73  SC_MOD()->InputEnterHandler();
75 
76  MakeDrawLayer();
77 
78  ScTabView* pTabView = GetViewData().GetView();
79  SfxBindings& rBindings = GetViewFrame()->GetBindings();
80 
81  vcl::Window* pWin = pTabView->GetActiveWin();
82  ScDrawView* pView = pTabView->GetScDrawView();
83  SdrModel* pDoc = pView->GetModel();
84 
85  const SfxItemSet *pArgs = rReq.GetArgs();
86  sal_uInt16 nNewId = rReq.GetSlot();
87 
88  if ( nNewId == SID_DRAW_CHART )
89  {
90  // #i71254# directly insert a chart instead of drawing its output rectangle
91  FuInsertChart(*this, pWin, pView, pDoc, rReq, LINK( this, ScTabViewShell, DialogClosedHdl ));
92  return;
93  }
94 
95  if ( nNewId == SID_DRAW_SELECT )
96  nNewId = SID_OBJECT_SELECT;
97 
98  SdrObjKind eNewFormObjKind = SdrObjKind::NONE;
99  if (nNewId == SID_FM_CREATE_CONTROL)
100  {
101  const SfxUInt16Item* pIdentifierItem = rReq.GetArg<SfxUInt16Item>(SID_FM_CONTROL_IDENTIFIER);
102  if (pIdentifierItem)
103  eNewFormObjKind = static_cast<SdrObjKind>(pIdentifierItem->GetValue());
104  }
105 
106  OUString sStringItemValue;
107  if ( pArgs )
108  {
109  const SfxPoolItem* pItem;
110  if ( pArgs->GetItemState( nNewId, true, &pItem ) == SfxItemState::SET )
111  if (auto pStringItem = dynamic_cast<const SfxStringItem*>(pItem) )
112  sStringItemValue = pStringItem->GetValue();
113  }
114  bool bSwitchCustom = ( !sStringItemValue.isEmpty() && !sDrawCustom.isEmpty() && sStringItemValue != sDrawCustom );
115 
116  if (nNewId == SID_INSERT_FRAME) // from Tbx button
117  nNewId = SID_DRAW_TEXT;
118 
119  // CTRL-SID_OBJECT_SELECT is used to select the first object,
120  // but not if SID_OBJECT_SELECT is the result of clicking a create function again,
121  // so this must be tested before changing nNewId below.
122  bool bSelectFirst = ( nNewId == SID_OBJECT_SELECT && (rReq.GetModifier() & KEY_MOD1) );
123 
124  bool bEx = IsDrawSelMode();
125  if ( rReq.GetModifier() & KEY_MOD1 )
126  {
127  // always allow keyboard selection also on background layer
128  // also allow creation of default objects if the same object type
129  // was already active
130  bEx = true;
131  }
132  else if ( nNewId == nDrawSfxId && ( nNewId != SID_FM_CREATE_CONTROL ||
133  eNewFormObjKind == eFormObjKind || eNewFormObjKind == SdrObjKind::NONE ) && !bSwitchCustom )
134  {
135  // #i52871# if a different custom shape is selected, the slot id can be the same,
136  // so the custom shape type string has to be compared, too.
137 
138  // SID_FM_CREATE_CONTROL with eNewFormObjKind==OBJ_NONE (without parameter) comes
139  // from FuConstruct::SimpleMouseButtonUp when deactivating
140  // Execute for the form shell, to deselect the controller
141  if ( nNewId == SID_FM_CREATE_CONTROL )
142  {
143  GetViewData().GetDispatcher().Execute(SID_FM_LEAVE_CREATE);
146  }
147 
148  bEx = !bEx;
149  nNewId = SID_OBJECT_SELECT;
150  }
151  else
152  bEx = true;
153 
154  if ( nDrawSfxId == SID_FM_CREATE_CONTROL && nNewId != nDrawSfxId )
155  {
156  // switching from control- to paint function -> deselect in control-controller
157  GetViewData().GetDispatcher().Execute(SID_FM_LEAVE_CREATE);
160  }
161 
162  SetDrawSelMode(bEx);
163 
164  pView->LockBackgroundLayer( !bEx );
165 
166  if ( bSelectFirst )
167  {
168  // select first draw object if none is selected yet
169  if(!pView->AreObjectsMarked())
170  {
171  // select first object
172  pView->UnmarkAllObj();
173  pView->MarkNextObj(true);
174 
175  // ...and make it visible
176  if(pView->AreObjectsMarked())
177  pView->MakeVisible(pView->GetAllMarkedRect(), *pWin);
178  }
179  }
180 
181  nDrawSfxId = nNewId;
182  sDrawCustom.clear(); // value is set below for custom shapes
183 
184  if (nNewId == SID_DRAW_TEXT || nNewId == SID_DRAW_TEXT_VERTICAL
185  || nNewId == SID_DRAW_TEXT_MARQUEE || nNewId == SID_DRAW_NOTEEDIT)
186  SetDrawTextShell(true);
187  else
188  {
189  if (bEx || pView->GetMarkedObjectList().GetMarkCount() != 0)
191  else
192  SetDrawShell(false);
193  }
194 
195  if (pTabView->GetDrawFuncPtr())
196  {
197  if (pTabView->GetDrawFuncOldPtr() != pTabView->GetDrawFuncPtr())
198  delete pTabView->GetDrawFuncOldPtr();
199 
200  pTabView->GetDrawFuncPtr()->Deactivate();
201  pTabView->SetDrawFuncOldPtr(pTabView->GetDrawFuncPtr());
202  pTabView->SetDrawFuncPtr(nullptr);
203  }
204 
205  SfxRequest aNewReq(rReq);
206  aNewReq.SetSlot(nDrawSfxId);
207 
208  assert(nNewId != SID_DRAW_CHART); //#i71254# handled already above
209 
210  // for LibreOfficeKit - choosing a shape should construct it directly
211  bool bCreateDirectly = false;
212 
213  switch (nNewId)
214  {
215  case SID_OBJECT_SELECT:
216  // not always switch back
217  if(pView->GetMarkedObjectList().GetMarkCount() == 0) SetDrawShell(bEx);
218  pTabView->SetDrawFuncPtr(new FuSelection(*this, pWin, pView, pDoc, aNewReq));
219  break;
220 
221  case SID_DRAW_LINE:
222  case SID_DRAW_XLINE:
223  case SID_LINE_ARROW_END:
224  case SID_LINE_ARROW_CIRCLE:
225  case SID_LINE_ARROW_SQUARE:
226  case SID_LINE_ARROW_START:
227  case SID_LINE_CIRCLE_ARROW:
228  case SID_LINE_SQUARE_ARROW:
229  case SID_LINE_ARROWS:
230  case SID_DRAW_RECT:
231  case SID_DRAW_ELLIPSE:
232  case SID_DRAW_MEASURELINE:
233  pTabView->SetDrawFuncPtr(new FuConstRectangle(*this, pWin, pView, pDoc, aNewReq));
234  bCreateDirectly = comphelper::LibreOfficeKit::isActive();
235  break;
236 
237  case SID_DRAW_CAPTION:
238  case SID_DRAW_CAPTION_VERTICAL:
239  pTabView->SetDrawFuncPtr(new FuConstRectangle(*this, pWin, pView, pDoc, aNewReq));
240  pView->SetFrameDragSingles( false );
241  rBindings.Invalidate( SID_BEZIER_EDIT );
242  break;
243 
244  case SID_DRAW_XPOLYGON:
245  case SID_DRAW_XPOLYGON_NOFILL:
246  case SID_DRAW_POLYGON:
247  case SID_DRAW_POLYGON_NOFILL:
248  case SID_DRAW_BEZIER_NOFILL:
249  case SID_DRAW_BEZIER_FILL:
250  case SID_DRAW_FREELINE:
251  case SID_DRAW_FREELINE_NOFILL:
252  pTabView->SetDrawFuncPtr(new FuConstPolygon(*this, pWin, pView, pDoc, aNewReq));
253  break;
254 
255  case SID_DRAW_ARC:
256  case SID_DRAW_PIE:
257  case SID_DRAW_CIRCLECUT:
258  pTabView->SetDrawFuncPtr(new FuConstArc(*this, pWin, pView, pDoc, aNewReq));
259  break;
260 
261  case SID_DRAW_TEXT:
262  case SID_DRAW_TEXT_VERTICAL:
263  case SID_DRAW_TEXT_MARQUEE:
264  case SID_DRAW_NOTEEDIT:
265  pTabView->SetDrawFuncPtr(new FuText(*this, pWin, pView, pDoc, aNewReq));
266  bCreateDirectly = comphelper::LibreOfficeKit::isActive();
267  break;
268 
269  case SID_FM_CREATE_CONTROL:
270  SetDrawFormShell(true);
271  pTabView->SetDrawFuncPtr(new FuConstUnoControl(*this, pWin, pView, pDoc, aNewReq));
272  eFormObjKind = eNewFormObjKind;
273  break;
274 
275  case SID_DRAWTBX_CS_BASIC :
276  case SID_DRAWTBX_CS_SYMBOL :
277  case SID_DRAWTBX_CS_ARROW :
278  case SID_DRAWTBX_CS_FLOWCHART :
279  case SID_DRAWTBX_CS_CALLOUT :
280  case SID_DRAWTBX_CS_STAR :
281  case SID_DRAW_CS_ID :
282  {
283  pTabView->SetDrawFuncPtr(new FuConstCustomShape(*this, pWin, pView, pDoc, aNewReq));
284 
285  bCreateDirectly = comphelper::LibreOfficeKit::isActive();
286 
287  if ( nNewId != SID_DRAW_CS_ID )
288  {
289  const SfxStringItem* pEnumCommand = rReq.GetArg<SfxStringItem>(nNewId);
290  if ( pEnumCommand )
291  {
292  SfxBindings& rBind = GetViewFrame()->GetBindings();
293  rBind.Invalidate( nNewId );
294  rBind.Update( nNewId );
295 
296  sDrawCustom = pEnumCommand->GetValue(); // to detect when a different shape type is selected
297  }
298  }
299  }
300  break;
301 
302  default:
303  break;
304  }
305 
306  if (pTabView->GetDrawFuncPtr())
307  pTabView->GetDrawFuncPtr()->Activate();
308 
309  rReq.Done();
310 
311  Invalidate();
312 
313  // Create default drawing objects via keyboard
314  // with qualifier construct directly
315  FuPoor* pFuActual = GetDrawFuncPtr();
316 
317  if(!(pFuActual && ((rReq.GetModifier() & KEY_MOD1) || bCreateDirectly)))
318  return;
319 
320  // Create default drawing objects via keyboard
321  const ScAppOptions& rAppOpt = SC_MOD()->GetAppOptions();
322  sal_uInt32 nDefaultObjectSizeWidth = rAppOpt.GetDefaultObjectSizeWidth();
323  sal_uInt32 nDefaultObjectSizeHeight = rAppOpt.GetDefaultObjectSizeHeight();
324 
325  // calc position and size
326  bool bLOKIsActive = comphelper::LibreOfficeKit::isActive();
327  Point aInsertPos;
328  if(!bLOKIsActive)
329  {
330  tools::Rectangle aVisArea = pWin->PixelToLogic(tools::Rectangle(Point(0,0), pWin->GetOutputSizePixel()));
331  aInsertPos = aVisArea.Center();
332  aInsertPos.AdjustX( -sal_Int32(nDefaultObjectSizeWidth / 2) );
333  aInsertPos.AdjustY( -sal_Int32(nDefaultObjectSizeHeight / 2) );
334  }
335  else
336  {
337  ScViewData& rViewData = GetViewData();
338  tools::Long nLayoutSign = rViewData.GetDocument().IsLayoutRTL(rViewData.GetTabNo()) ? -1 : 1;
339  aInsertPos = rViewData.getLOKVisibleArea().Center();
341  comphelper::LibreOfficeKit::Compat::scPrintTwipsMsgs))
342  aInsertPos = rViewData.GetPrintTwipsPosFromTileTwips(aInsertPos);
343 
344  aInsertPos.setX(nLayoutSign * convertTwipToMm100(aInsertPos.X()));
345  aInsertPos.setY(convertTwipToMm100(aInsertPos.Y()));
346 
347  aInsertPos.AdjustX( -sal_Int32(nDefaultObjectSizeWidth / 2) );
348  aInsertPos.AdjustY( -sal_Int32(nDefaultObjectSizeHeight / 2) );
349  }
350 
351  tools::Rectangle aNewObjectRectangle(aInsertPos, Size(nDefaultObjectSizeWidth, nDefaultObjectSizeHeight));
352 
353  ScDrawView* pDrView = GetScDrawView();
354 
355  if(!pDrView)
356  return;
357 
358  SdrPageView* pPageView = pDrView->GetSdrPageView();
359 
360  if(!pPageView)
361  return;
362 
363  // create the default object
364  SdrObjectUniquePtr pObj = pFuActual->CreateDefaultObject(nNewId, aNewObjectRectangle);
365 
366  if(!pObj)
367  return;
368 
369  // insert into page
370  pView->InsertObjectAtView(pObj.release(), *pPageView);
371 
372  switch ( nNewId )
373  {
374  case SID_DRAW_CAPTION:
375  case SID_DRAW_CAPTION_VERTICAL:
376  case SID_DRAW_TEXT:
377  case SID_DRAW_TEXT_VERTICAL:
378  // use KeyInput to start edit mode (FuText is created).
379  // For FuText objects, edit mode is handled within CreateDefaultObject.
380  // KEY_F2 is handled in FuDraw::KeyInput.
381 
382  pFuActual->KeyInput( KeyEvent( 0, vcl::KeyCode( KEY_F2 ) ) );
383  break;
384  default:
385  break;
386  }
387 }
388 
390 {
391  SfxWhichIter aIter(rSet);
392  sal_uInt16 nWhich = aIter.FirstWhich();
393 
394  while ( nWhich )
395  {
396  switch ( nWhich )
397  {
398  case SID_DRAW_CHART:
399  {
400  bool bOle = GetViewFrame()->GetFrame().IsInPlace();
401  if ( bOle || !SvtModuleOptions().IsChart() )
402  rSet.DisableItem( nWhich );
403  }
404  break;
405 
406  case SID_DRAW_LINE:
407  case SID_DRAW_XLINE:
408  case SID_LINE_ARROW_END:
409  case SID_LINE_ARROW_CIRCLE:
410  case SID_LINE_ARROW_SQUARE:
411  case SID_LINE_ARROW_START:
412  case SID_LINE_CIRCLE_ARROW:
413  case SID_LINE_SQUARE_ARROW:
414  case SID_LINE_ARROWS:
415  case SID_DRAW_MEASURELINE:
416  case SID_DRAW_RECT:
417  case SID_DRAW_ELLIPSE:
418  case SID_DRAW_POLYGON:
419  case SID_DRAW_POLYGON_NOFILL:
420  case SID_DRAW_XPOLYGON:
421  case SID_DRAW_XPOLYGON_NOFILL:
422  case SID_DRAW_BEZIER_FILL:
423  case SID_DRAW_BEZIER_NOFILL:
424  case SID_DRAW_FREELINE:
425  case SID_DRAW_FREELINE_NOFILL:
426  case SID_DRAW_ARC:
427  case SID_DRAW_PIE:
428  case SID_DRAW_CIRCLECUT:
429  case SID_DRAW_TEXT:
430  case SID_DRAW_TEXT_MARQUEE:
431  case SID_DRAW_CAPTION:
432  rSet.Put( SfxBoolItem( nWhich, nDrawSfxId == nWhich ) );
433  break;
434 
435  case SID_DRAW_TEXT_VERTICAL:
436  case SID_DRAW_CAPTION_VERTICAL:
438  rSet.DisableItem( nWhich );
439  else
440  rSet.Put( SfxBoolItem( nWhich, nDrawSfxId == nWhich ) );
441  break;
442 
443  case SID_OBJECT_SELECT: // important for the old control-controller
444  rSet.Put( SfxBoolItem( nWhich, nDrawSfxId == SID_OBJECT_SELECT && IsDrawSelMode() ) );
445  break;
446 
447  case SID_DRAWTBX_CS_BASIC:
448  case SID_DRAWTBX_CS_SYMBOL:
449  case SID_DRAWTBX_CS_ARROW:
450  case SID_DRAWTBX_CS_FLOWCHART:
451  case SID_DRAWTBX_CS_CALLOUT:
452  case SID_DRAWTBX_CS_STAR:
453  rSet.Put( SfxStringItem( nWhich, nDrawSfxId == nWhich ? sDrawCustom : OUString() ) );
454  break;
455  }
456  nWhich = aIter.NextWhich();
457  }
458 }
459 
460 bool ScTabViewShell::SelectObject( std::u16string_view rName )
461 {
462  ScDrawView* pView = GetViewData().GetScDrawView();
463  if (!pView)
464  return false;
465 
466  bool bFound = pView->SelectObject( rName );
467  // DrawShell etc. is handled in MarkListHasChanged
468 
469  return bFound;
470 }
471 
472 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SfxViewFrame * GetViewFrame() const
void UnmarkAllObj(SdrPageView const *pPV=nullptr)
OUString sDrawCustom
Definition: tabvwsh.hxx:100
bool IsDrawSelMode() const
Definition: tabview.hxx:316
size_t GetMarkCount() const
constexpr sal_uInt16 KEY_MOD1
const tools::Rectangle & getLOKVisibleArea() const
The visible area in the client (set by setClientVisibleArea).
Definition: viewdata.hxx:573
void UpdateInputContext()
Definition: tabview3.cxx:2982
bool SelectObject(std::u16string_view rName)
Definition: tabvwsh2.cxx:460
bool AreObjectsMarked() const
long Long
sal_uInt16 GetValue() const
sal_uInt16 FirstWhich()
SCTAB GetTabNo() const
Definition: viewdata.hxx:395
void ExecDraw(SfxRequest &)
Definition: tabvwsh2.cxx:71
void Done(bool bRemove=false)
ScDocument & GetDocument() const
Definition: viewdata.hxx:380
Base class for all functions.
Definition: fusel.hxx:27
void SetFrameDragSingles(bool bOn=true)
const SfxItemSet * GetArgs() const
void Invalidate(sal_uInt16 nId)
bool InsertObjectAtView(SdrObject *pObj, SdrPageView &rPV, SdrInsertFlags nOptions=SdrInsertFlags::NONE)
Draw rectangle.
Definition: fuconarc.hxx:25
sal_uInt16 NextWhich()
void LockBackgroundLayer(bool bLock)
Locks/unlocks the background layer that contains background objects.
Definition: drawview.hxx:131
constexpr auto convertTwipToMm100(N n)
SdrObjKind
void SetSlot(sal_uInt16 nNewSlot)
void SetWindow(vcl::Window *pWin)
Definition: fupoor.hxx:88
void SetDrawFuncPtr(FuPoor *pFuncPtr)
Definition: tabview.hxx:319
SfxFrame & GetFrame() const
bool isCompatFlagSet(Compat flag)
constexpr sal_uInt16 KEY_F2
void UpdateInputHandler(bool bForce=false, bool bStopEditing=true)
Definition: tabvwsha.cxx:668
virtual bool KeyInput(const KeyEvent &rKEvt)
Definition: fupoor.cxx:137
ScDrawView * GetScDrawView()
Definition: viewdata.cxx:3163
ScViewData & GetViewData()
Definition: tabview.hxx:333
ScGridWindow * GetActiveWin()
Definition: tabview.cxx:887
Base class for Text functions.
Definition: futext.hxx:27
Base class for all functions.
Definition: fuconpol.hxx:25
void SetDrawTextShell(bool bActive)
Definition: tabvwsh4.cxx:654
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
void WindowChanged()
Definition: tabvwsh2.cxx:54
Draw rectangle.
Definition: fuconrec.hxx:25
bool SelectObject(std::u16string_view rName)
Definition: drawview.cxx:734
sal_uInt16 GetModifier() const
virtual SdrView * GetDrawView() const override
Definition: tabvwsh2.cxx:49
#define SC_MOD()
Definition: scmod.hxx:249
Draw Control.
Definition: fuconuno.hxx:29
SfxBindings & GetBindings()
const OUString & GetValue() const
const SdrMarkList & GetMarkedObjectList() const
const T * GetArg(sal_uInt16 nSlotId) const
void SetDrawShell(bool bActive)
Definition: tabvwsh4.cxx:612
Point GetPrintTwipsPosFromTileTwips(const Point &rTileTwipsPos) const
Definition: viewdata.cxx:2557
virtual SdrObjectUniquePtr CreateDefaultObject(const sal_uInt16 nID, const tools::Rectangle &rRectangle)
Definition: fupoor.cxx:219
Point PixelToLogic(const Point &rDevicePt) const
sal_uInt16 nDrawSfxId
Definition: tabvwsh.hxx:98
void SetActualWin(const OutputDevice *pWin)
Base class for all functions.
Definition: fupoor.hxx:39
bool MarkNextObj(bool bPrev=false)
const tools::Rectangle & GetAllMarkedRect() const
constexpr Point Center() const
ScDBFunc * GetView() const
Definition: viewdata.cxx:863
void Update(sal_uInt16 nId)
void SetDrawFormShell(bool bActive)
Definition: tabvwsh4.cxx:729
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
sal_uInt16 GetSlot() const
void MakeDrawLayer()
Definition: tabview2.cxx:1427
void DisableItem(sal_uInt16 nWhich)
ScDrawView * GetScDrawView()
Definition: tabview.hxx:341
void SetDrawFuncOldPtr(FuPoor *pFuncPtr)
Definition: tabview.hxx:320
bool IsInPlace() const
void SetDrawShellOrSub()
Definition: tabvwsh4.cxx:580
virtual void Invalidate(sal_uInt16 nId=0)
::OutputDevice const * GetOutDev() const
SfxDispatcher & GetDispatcher()
Definition: viewdata.cxx:3129
FuPoor * GetDrawFuncPtr()
Definition: tabview.hxx:321
std::unique_ptr< SdrObject, SdrObjectFreeOp > SdrObjectUniquePtr
SC_DLLPUBLIC bool IsLayoutRTL(SCTAB nTab) const
Definition: document.cxx:989
SdrPageView * GetSdrPageView() const
Size GetOutputSizePixel() const
bool IsVerticalTextEnabled()
void InvalidateAll(bool bWithMsg)
const SfxPoolItem * Execute(sal_uInt16 nSlot, SfxCallMode nCall=SfxCallMode::SLOT, const SfxPoolItem **pArgs=nullptr, sal_uInt16 nModi=0, const SfxPoolItem **pInternalArgs=nullptr)
FuPoor * GetDrawFuncOldPtr()
Definition: tabview.hxx:322
virtual void MakeVisible(const tools::Rectangle &rRect, vcl::Window &rWin) override
Definition: drawview.cxx:844
SdrModel * GetModel() const
sal_Int32 GetDefaultObjectSizeWidth() const
Definition: appoptio.hxx:71
virtual void Activate()
Definition: fupoor.cxx:61
sal_Int32 GetDefaultObjectSizeHeight() const
Definition: appoptio.hxx:73
void GetDrawState(SfxItemSet &rSet)
Definition: tabvwsh2.cxx:389
void SetDrawSelMode(bool bNew)
Definition: tabview.hxx:317
SdrObjKind eFormObjKind
Definition: tabvwsh.hxx:99
virtual void Deactivate()
Definition: fupoor.cxx:65