1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef _SC_FUPOOR_HXX 25 #define _SC_FUPOOR_HXX 26 27 #include <vcl/event.hxx> 28 #include <vcl/timer.hxx> 29 #include <sfx2/request.hxx> 30 31 class ScDrawView; 32 class ScTabViewShell; 33 class Window; 34 class SdrModel; 35 class Dialog; 36 37 // #98185# Create default drawing objects via keyboard 38 class SdrObject; 39 40 // Return-Werte fuer Command 41 #define SC_CMD_NONE 0 42 #define SC_CMD_USED 1 43 #define SC_CMD_IGNORE 2 44 45 /************************************************************************* 46 |* 47 |* Basisklasse fuer alle Funktionen 48 |* 49 \************************************************************************/ 50 51 class FuPoor 52 { 53 protected: 54 ScDrawView* pView; 55 ScTabViewShell* pViewShell; 56 Window* pWindow; 57 SdrModel* pDrDoc; 58 59 SfxRequest aSfxRequest; 60 Dialog* pDialog; 61 62 Timer aScrollTimer; // fuer Autoscrolling 63 DECL_LINK( ScrollHdl, Timer * ); 64 void ForceScroll(const Point& aPixPos); 65 66 Timer aDragTimer; // fuer Drag&Drop 67 DECL_LINK( DragTimerHdl, Timer * ); 68 DECL_LINK( DragHdl, void * ); 69 sal_Bool bIsInDragMode; 70 Point aMDPos; // Position von MouseButtonDown 71 72 // #95491# member to hold state of the mouse buttons for creation 73 // of own MouseEvents (like in ScrollHdl) 74 private: 75 sal_uInt16 mnCode; 76 77 public: 78 FuPoor(ScTabViewShell* pViewSh, Window* pWin, ScDrawView* pView, 79 SdrModel* pDoc, SfxRequest& rReq); 80 virtual ~FuPoor(); 81 82 // #95491# see member SetMouseButtonCode(sal_uInt16 nNew)83 void SetMouseButtonCode(sal_uInt16 nNew) { if(nNew != mnCode) mnCode = nNew; } GetMouseButtonCode() const84 sal_uInt16 GetMouseButtonCode() const { return mnCode; } 85 Paint(const Rectangle &,Window *)86 virtual void Paint(const Rectangle&, Window*) {} 87 88 virtual void DoCut(); 89 virtual void DoCopy(); 90 virtual void DoPaste(); 91 92 // Mouse- & Key-Events; Returnwert=TRUE: Event wurde bearbeitet 93 virtual sal_Bool KeyInput(const KeyEvent& rKEvt); MouseMove(const MouseEvent &)94 virtual sal_Bool MouseMove(const MouseEvent&) { return sal_False; } 95 96 // #95491# moved from inline to *.cxx 97 virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt); // { return sal_False; } 98 99 // #95491# moved from inline to *.cxx 100 virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt); // { return sal_False; } 101 102 virtual sal_uInt8 Command(const CommandEvent& rCEvt); 103 104 virtual void Activate(); // Function aktivieren 105 virtual void Deactivate(); // Function deaktivieren 106 ScrollStart()107 virtual void ScrollStart() {} // diese Funktionen werden von ScrollEnd()108 virtual void ScrollEnd() {} // ForceScroll aufgerufen 109 SetWindow(Window * pWin)110 void SetWindow(Window* pWin) { pWindow = pWin; } 111 GetSlotID() const112 sal_uInt16 GetSlotID() const { return( aSfxRequest.GetSlot() ); } 113 114 sal_Bool IsDetectiveHit( const Point& rLogicPos ); 115 116 void StopDragTimer(); 117 118 // #98185# Create default drawing objects via keyboard 119 virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle); 120 121 protected: 122 void ImpForceQuadratic(Rectangle& rRect); 123 124 public: 125 // #i33136# 126 virtual bool doConstructOrthogonal() const; 127 }; 128 129 130 131 #endif // _SD_FUPOOR_HXX 132 133