1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef _SC_FUPOOR_HXX 29 #define _SC_FUPOOR_HXX 30 31 #include <vcl/event.hxx> 32 #include <vcl/timer.hxx> 33 #include <sfx2/request.hxx> 34 35 class ScDrawView; 36 class ScTabViewShell; 37 class Window; 38 class SdrModel; 39 class Dialog; 40 41 // #98185# Create default drawing objects via keyboard 42 class SdrObject; 43 44 // Return-Werte fuer Command 45 #define SC_CMD_NONE 0 46 #define SC_CMD_USED 1 47 #define SC_CMD_IGNORE 2 48 49 /************************************************************************* 50 |* 51 |* Basisklasse fuer alle Funktionen 52 |* 53 \************************************************************************/ 54 55 class FuPoor 56 { 57 protected: 58 ScDrawView* pView; 59 ScTabViewShell* pViewShell; 60 Window* pWindow; 61 SdrModel* pDrDoc; 62 63 SfxRequest aSfxRequest; 64 Dialog* pDialog; 65 66 Timer aScrollTimer; // fuer Autoscrolling 67 DECL_LINK( ScrollHdl, Timer * ); 68 void ForceScroll(const Point& aPixPos); 69 70 Timer aDragTimer; // fuer Drag&Drop 71 DECL_LINK( DragTimerHdl, Timer * ); 72 DECL_LINK( DragHdl, void * ); 73 sal_Bool bIsInDragMode; 74 Point aMDPos; // Position von MouseButtonDown 75 76 // #95491# member to hold state of the mouse buttons for creation 77 // of own MouseEvents (like in ScrollHdl) 78 private: 79 sal_uInt16 mnCode; 80 81 public: 82 FuPoor(ScTabViewShell* pViewSh, Window* pWin, ScDrawView* pView, 83 SdrModel* pDoc, SfxRequest& rReq); 84 virtual ~FuPoor(); 85 86 // #95491# see member 87 void SetMouseButtonCode(sal_uInt16 nNew) { if(nNew != mnCode) mnCode = nNew; } 88 sal_uInt16 GetMouseButtonCode() const { return mnCode; } 89 90 virtual void Paint(const Rectangle&, Window*) {} 91 92 virtual void DoCut(); 93 virtual void DoCopy(); 94 virtual void DoPaste(); 95 96 // Mouse- & Key-Events; Returnwert=TRUE: Event wurde bearbeitet 97 virtual sal_Bool KeyInput(const KeyEvent& rKEvt); 98 virtual sal_Bool MouseMove(const MouseEvent&) { return sal_False; } 99 100 // #95491# moved from inline to *.cxx 101 virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt); // { return sal_False; } 102 103 // #95491# moved from inline to *.cxx 104 virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt); // { return sal_False; } 105 106 virtual sal_uInt8 Command(const CommandEvent& rCEvt); 107 108 virtual void Activate(); // Function aktivieren 109 virtual void Deactivate(); // Function deaktivieren 110 111 virtual void ScrollStart() {} // diese Funktionen werden von 112 virtual void ScrollEnd() {} // ForceScroll aufgerufen 113 114 void SetWindow(Window* pWin) { pWindow = pWin; } 115 116 sal_uInt16 GetSlotID() const { return( aSfxRequest.GetSlot() ); } 117 118 sal_Bool IsDetectiveHit( const Point& rLogicPos ); 119 120 void StopDragTimer(); 121 122 // #98185# Create default drawing objects via keyboard 123 virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle); 124 125 protected: 126 void ImpForceQuadratic(Rectangle& rRect); 127 128 public: 129 // #i33136# 130 virtual bool doConstructOrthogonal() const; 131 }; 132 133 134 135 #endif // _SD_FUPOOR_HXX 136 137