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 #include "precompiled_sd.hxx" 29 30 #include "SlsSelectionCommand.hxx" 31 32 #include "controller/SlsCurrentSlideManager.hxx" 33 #include "model/SlideSorterModel.hxx" 34 #include "model/SlsPageDescriptor.hxx" 35 36 #include "sdpage.hxx" 37 38 namespace sd { namespace slidesorter { namespace controller { 39 40 41 42 SelectionCommand::SelectionCommand ( 43 PageSelector& rSelector, 44 const ::boost::shared_ptr<CurrentSlideManager>& rpCurrentSlideManager, 45 const model::SlideSorterModel& rModel) 46 : mrPageSelector(rSelector), 47 mpCurrentSlideManager(rpCurrentSlideManager), 48 mrModel(rModel), 49 maPagesToSelect(), 50 mnCurrentPageIndex(-1) 51 { 52 } 53 54 55 56 57 void SelectionCommand::AddSlide (sal_uInt16 nPageIndex) 58 { 59 maPagesToSelect.push_back(nPageIndex); 60 } 61 62 63 64 65 void SelectionCommand::operator() (void) 66 { 67 OSL_ASSERT(mpCurrentSlideManager.get()!=NULL); 68 69 mrPageSelector.DeselectAllPages(); 70 71 if (mnCurrentPageIndex >= 0) 72 mpCurrentSlideManager->SwitchCurrentSlide(mnCurrentPageIndex); 73 74 PageList::iterator iPage = maPagesToSelect.begin(); 75 PageList::iterator iEnd = maPagesToSelect.end(); 76 for (; iPage!=iEnd; ++iPage) 77 { 78 sal_Int32 nIndex (*iPage); 79 if (nIndex >= 0) 80 mrPageSelector.SelectPage(mrModel.GetPageDescriptor(nIndex)); 81 } 82 } 83 84 85 } } } // end of namespace sd::slidesorter::controller 86