20 #include <editeng/editeng.hxx>
38 #include <drawview.hxx>
44 void collectUIInformation(
const OUString& aevent )
47 aDescription.
aID =
"grid_window";
49 aDescription.
aAction =
"COMMENT";
50 aDescription.
aParent =
"MainWindow";
51 aDescription.
aKeyWord =
"ScGridWinUIObject";
60 :
FuPoor(rViewSh, pWin, pViewP, pDoc, rReq)
77 bool bAlt = rMEvt.
IsMod2();
80 bool bAngleSnap = bShift;
158 bool bReturn =
false;
159 if ( dynamic_cast<const SdrTextObj*>( pObj) !=
nullptr && dynamic_cast<const SdrUnoObj*>( pObj) ==
nullptr )
165 bool bVertical = ( pOPO && pOPO->
IsVertical() );
166 sal_uInt16 nTextSlotId = bVertical ? SID_DRAW_TEXT_VERTICAL : SID_DRAW_TEXT;
170 if ( !pPoor || pPoor->
GetSlotID() != nTextSlotId )
173 Execute(nTextSlotId, SfxCallMode::SYNCHRON | SfxCallMode::RECORD);
178 if ( pPoor && pPoor->
GetSlotID() == nTextSlotId )
191 bool bReturn =
false;
199 collectUIInformation(
"CLOSE");
243 if( dynamic_cast<const SdrOle2Obj*>( pObj) && !bOle )
320 const_cast<SdrHdlList&
>(rHdlList).TravelFocusHdl(bForward);
444 nX *= aLogicSizeOnePixel.
Width();
445 nY *= aLogicSizeOnePixel.
Height();
460 if(0 != nX || 0 != nY)
477 aMarkRect.
Move(nX, nY);
479 if(!aMarkRect.IsInside(rWorkArea))
481 if(aMarkRect.Left() < rWorkArea.
Left())
483 nX += rWorkArea.
Left() - aMarkRect.Left();
486 if(aMarkRect.Right() > rWorkArea.
Right())
488 nX -= aMarkRect.Right() - rWorkArea.
Right();
491 if(aMarkRect.Top() < rWorkArea.
Top())
493 nY += rWorkArea.
Top() - aMarkRect.Top();
496 if(aMarkRect.Bottom() > rWorkArea.
Bottom())
498 nY -= aMarkRect.Bottom() - rWorkArea.
Bottom();
527 bool bWasNoSnap = rDragStat.IsNoSnap();
541 const_cast<SdrDragStat&
>(rDragStat).SetNoSnap(bWasNoSnap);
569 if(pHdl->
GetKind() == SdrHdlKind::Poly)
595 SdrHdl* pNewOne =
nullptr;
602 && pAct->
GetKind() == SdrHdlKind::Poly
612 const_cast<SdrHdlList&
>(rHdlList).SetFocusHdl(pNewOne);
654 if ( eHit != SdrHitKind::NONE && aVEvt.
pObj !=
nullptr )
660 if ( aVEvt.
eEvent == SdrEventKind::ExecuteUrl )
673 bool bAlt = pMEvt && pMEvt->
IsMod2();
704 else if ( !bAlt && ( !pMEvt || !pMEvt->
GetButtons() )
716 else if ( !bAlt && pInfo && (!pInfo->
GetMacro().isEmpty() || !pInfo->
GetHlink().isEmpty()) )
728 for (
size_t nlv1=0; nlv1<backval; ++nlv1)
741 bool bIsSizingOrMoving =
false;
757 return bIsSizingOrMoving;
SfxViewFrame * GetViewFrame() const
void UnmarkAllObj(SdrPageView const *pPV=nullptr)
bool UnmarkPoint(SdrHdl &rHdl)
Point GetPointerPosPixel()
bool IsDrawSelMode() const
ScDocShell * GetDocShell() const
size_t GetMarkCount() const
sal_uInt32 GetPolyNum() const
PointerStyle GetPreferredPointer(const Point &rMousePos, const OutputDevice *pOut, sal_uInt16 nModifier=0, bool bLeftDown=false) const
void ActivateObject(SdrOle2Obj *pObj, tools::Long nVerb)
bool isLOKMobilePhone() const
const OUString & GetMacro() const
bool HasMarkableObj() const
virtual bool KeyInput(const KeyEvent &rKEvt) override
virtual ~FuDraw() override
bool AreObjectsMarked() const
static ScMacroInfo * GetMacroInfo(SdrObject *pObj, bool bCreate=false)
const SdrDragStat & GetDragStat() const
bool EndDragObj(bool bCopy=false)
static bool IsSimpleCharInput(const KeyEvent &rKeyEvent)
sal_uInt32 GetPointNum() const
virtual bool doConstructOrthogonal() const
sal_uInt16 GetCode() const
SdrMark * GetMark(size_t nNum) const
const Point & GetPos() const
SdrHitKind PickAnything(const MouseEvent &rMEvt, SdrMouseEventKind nMouseDownOrMoveOrUp, SdrViewEvent &rVEvt) const
bool IsResizeAtCenter() const
constexpr sal_uInt16 KEY_SPACE
bool IsMoveAllowed() const
constexpr sal_uInt16 KEY_UP
const tools::Rectangle & GetMarkedObjRect() const
constexpr sal_uInt16 KEY_END
static UITestLogger & getInstance()
void SetGridSnap(bool bOn)
void logEvent(const EventDescription &rDescription)
virtual void MovAction(const Point &rPnt) override
bool IsTextEditFrameHit(const Point &rHit) const
virtual void DeleteMarked() override
sal_uInt16 GetButtons() const
void SetMouseButtonCode(sal_uInt16 nNew)
bool HasMultipleMarkableObjects() const
SfxFrame & GetFrame() const
virtual bool MouseMove(const MouseEvent &rMEvt) override
void SetResizeAtCenter(bool bOn)
constexpr sal_uInt16 KEY_F2
bool IsDetectiveHit(const Point &rLogicPos)
bool IsDrawTextShell() const
sal_uInt16 GetModifier() const
ScTabViewShell & rViewShell
bool IsMarkedHit(const Point &rPnt, short nTol=-2) const
virtual bool KeyInput(const KeyEvent &rKEvt)
ScViewData & GetViewData()
sal_uInt16 GetSlotID() const
void SetSnapEnabled(bool bOn)
bool IsSizingOrMovingNote(const MouseEvent &rMEvt) const
Base class for Text functions.
constexpr sal_uInt16 KEY_DOWN
SdrObject * GetMarkedSdrObj() const
SdrObject * PickObj(const Point &rPnt, short nTol, SdrPageView *&rpPV, SdrSearchOptions nOptions, SdrObject **ppRootObj, bool *pbHitPassDirect=nullptr) const
static bool lcl_KeyEditMode(SdrObject *pObj, ScTabViewShell &rViewShell, const KeyEvent *pInitialKey)
bool GetUseGridSnap() const
constexpr sal_uInt16 KEY_HOME
void SetActivePointer(PointerStyle nPointer)
bool IsSnapEnabled() const
const SdrMarkList & GetMarkedObjectList() const
bool IsAngleSnapEnabled() const
tools::Long Width() const
void SetDrawShell(bool bActive)
SdrHdl * PickHandle(const Point &rPnt) const
bool IsGroupObject() const
const ScGridOptions & GetGridOptions() const
bool IsCreate1stPointAsCenter() const
void DoModifiers(const MouseEvent &rMEvt)
static bool lcl_UrlHit(const SdrView *pView, const Point &rPosPixel, const vcl::Window *pWindow)
Base class for all functions.
bool MarkNextObj(bool bPrev=false)
const tools::Rectangle & GetAllMarkedRect() const
constexpr sal_uInt16 KEY_RETURN
ScDBFunc * GetView() const
constexpr sal_uInt16 KEY_RIGHT
Point PixelToLogic(const Point &rDevicePt) const
SdrHdl * GetFocusHdl() const
virtual bool IsAction() const override
void SetAngleSnapEnabled(bool bOn)
size_t GetHdlCount() const
void SetPointer(PointerStyle)
SdrHdl * GetHdl(size_t nNum) const
const vcl::KeyCode & GetKeyCode() const
sal_uInt16 GetSlot() const
virtual bool IsTextEdit() const final override
virtual PointerStyle GetMacroPointer(const SdrObjMacroHitRec &rRec) const
static IMapObject * GetHitIMapObject(const SdrObject *pObj, const Point &rWinPoint, const vcl::Window *rCmpWnd=nullptr)
constexpr sal_uInt16 KEY_ESCAPE
virtual bool MouseButtonDown(const MouseEvent &rMEvt) override
SfxDispatcher & GetDispatcher()
FuPoor * GetDrawFuncPtr()
tools::Long Height() const
const ScViewOptions & GetOptions() const
bool IsPointMarked(const SdrHdl &rHdl) const
const Point & GetPosPixel() const
static bool IsChart(const SdrObject *pObject)
FuDraw(ScTabViewShell &rViewSh, vcl::Window *pWin, ScDrawView *pView, SdrModel *pDoc, const SfxRequest &rReq)
static bool IsNoteCaption(SdrObject *pObj)
Returns true, if the passed object is the caption of a cell note.
void SetInEditMode(SdrObject *pObj=nullptr, const Point *pMousePixel=nullptr, bool bCursorToEnd=false, const KeyEvent *pInitialKey=nullptr)
const OUString & GetHlink() const
constexpr sal_uInt16 KEY_DELETE
virtual bool BegDragObj(const Point &rPnt, OutputDevice *pOut, SdrHdl *pHdl, short nMinMov=-3, SdrDragMethod *pForcedMeth=nullptr) override
constexpr sal_uInt16 KEY_LEFT
const SdrHdlList & GetHdlList() const
const SfxPoolItem * Execute(sal_uInt16 nSlot, SfxCallMode nCall=SfxCallMode::SLOT, const SfxPoolItem **pArgs=nullptr, sal_uInt16 nModi=0, const SfxPoolItem **pInternalArgs=nullptr)
std::map< OUString, OUString > aParameters
virtual bool MarkPoint(SdrHdl &rHdl, bool bUnmark=false)
bool IsEditingANote() const
virtual bool MouseButtonUp(const MouseEvent &rMEvt) override
void SetCreate1stPointAsCenter(bool bOn)
void MoveAllMarked(const Size &rSiz, bool bCopy=false)
sal_uInt16 getHitTolLog() const
virtual void MakeVisible(const tools::Rectangle &rRect, vcl::Window &rWin) override
virtual OutlinerParaObject * GetOutlinerParaObject() const
const tools::Rectangle & GetWorkArea() const
VclPtr< vcl::Window > pWindow
constexpr sal_uInt16 KEY_TAB
SdrHdlKind GetKind() const
virtual void ForcePointer(const MouseEvent *pMEvt)
static SvxIMapInfo * GetIMapInfo(const SdrObject *pObject)