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