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 SD_FU_SELECTION_HXX 29 #define SD_FU_SELECTION_HXX 30 31 #include "fudraw.hxx" 32 33 #include <com/sun/star/media/XPlayer.hpp> 34 35 class SdrHdl; 36 class SdrObject; 37 class Sound; 38 39 40 namespace sd { 41 42 class FuSelection 43 : public FuDraw 44 { 45 public: 46 TYPEINFO(); 47 48 static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq ); 49 virtual void DoExecute( SfxRequest& rReq ); 50 51 // Mouse- & Key-Events 52 virtual sal_Bool KeyInput(const KeyEvent& rKEvt); 53 virtual sal_Bool MouseMove(const MouseEvent& rMEvt); 54 virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt); 55 virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt); 56 57 virtual void Activate(); // Function aktivieren 58 virtual void Deactivate(); // Function deaktivieren 59 60 virtual void SelectionHasChanged(); 61 62 void SetEditMode(sal_uInt16 nMode); 63 sal_uInt16 GetEditMode() { return nEditMode; } 64 65 sal_Bool AnimateObj(SdrObject* pObj, const Point& rPos); 66 67 /** is called when the currenct function should be aborted. <p> 68 This is used when a function gets a KEY_ESCAPE but can also 69 be called directly. 70 71 @returns true if a active function was aborted 72 */ 73 virtual bool cancel(); 74 75 protected: 76 FuSelection (ViewShell* pViewSh, 77 ::sd::Window* pWin, 78 ::sd::View* pView, 79 SdDrawDocument* pDoc, 80 SfxRequest& rReq); 81 82 virtual ~FuSelection(); 83 84 sal_Bool bTempRotation; 85 sal_Bool bSelectionChanged; 86 sal_Bool bHideAndAnimate; 87 SdrHdl* pHdl; 88 sal_Bool bSuppressChangesOfSelection; 89 sal_Bool bMirrorSide0; 90 sal_uInt16 nEditMode; 91 ::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > mxPlayer; 92 93 private: 94 /** This pointer stores a canidate for assigning a style in the water 95 can mode between mouse button down and mouse button up. 96 */ 97 SdrObject* pWaterCanCandidate; 98 99 /** Find the object under the given test point without selecting it. 100 @param rTestPoint 101 The coordinates at which to search for a shape. 102 @return 103 The shape at the test point. When there is no shape at this 104 position then NULL is returned. 105 */ 106 SdrObject* pickObject (const Point& rTestPoint); 107 }; 108 109 } // end of namespace sd 110 111 #endif // _SD_FUSEL_HXX 112 113