15d39f272SZheng Fan /************************************************************** 25d39f272SZheng Fan * 35d39f272SZheng Fan * Licensed to the Apache Software Foundation (ASF) under one 45d39f272SZheng Fan * or more contributor license agreements. See the NOTICE file 55d39f272SZheng Fan * distributed with this work for additional information 65d39f272SZheng Fan * regarding copyright ownership. The ASF licenses this file 75d39f272SZheng Fan * to you under the Apache License, Version 2.0 (the 85d39f272SZheng Fan * "License"); you may not use this file except in compliance 95d39f272SZheng Fan * with the License. You may obtain a copy of the License at 105d39f272SZheng Fan * 115d39f272SZheng Fan * http://www.apache.org/licenses/LICENSE-2.0 125d39f272SZheng Fan * 135d39f272SZheng Fan * Unless required by applicable law or agreed to in writing, 145d39f272SZheng Fan * software distributed under the License is distributed on an 155d39f272SZheng Fan * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 165d39f272SZheng Fan * KIND, either express or implied. See the License for the 175d39f272SZheng Fan * specific language governing permissions and limitations 185d39f272SZheng Fan * under the License. 195d39f272SZheng Fan * 205d39f272SZheng Fan *************************************************************/ 215d39f272SZheng Fan 225d39f272SZheng Fan #ifndef _SVX_SIDEBAR_SELECTION_CHANGE_HANDLER_HXX_ 235d39f272SZheng Fan #define _SVX_SIDEBAR_SELECTION_CHANGE_HANDLER_HXX_ 245d39f272SZheng Fan 255d39f272SZheng Fan #include "svx/svxdllapi.h" 265d39f272SZheng Fan #include <sfx2/sidebar/EnumContext.hxx> 275d39f272SZheng Fan #include <com/sun/star/frame/XController.hpp> 285d39f272SZheng Fan #include <com/sun/star/view/XSelectionSupplier.hpp> 295d39f272SZheng Fan #include <com/sun/star/view/XSelectionChangeListener.hpp> 305d39f272SZheng Fan 315d39f272SZheng Fan #include <cppuhelper/compbase1.hxx> 325d39f272SZheng Fan #include <cppuhelper/basemutex.hxx> 335d39f272SZheng Fan 345d39f272SZheng Fan #include <boost/noncopyable.hpp> 355d39f272SZheng Fan #include <boost/function.hpp> 365d39f272SZheng Fan 375d39f272SZheng Fan namespace css = ::com::sun::star; 385d39f272SZheng Fan namespace cssu = ::com::sun::star::uno; 395d39f272SZheng Fan 405d39f272SZheng Fan 415d39f272SZheng Fan class SdrMarkView; 425d39f272SZheng Fan 435d39f272SZheng Fan 445d39f272SZheng Fan namespace svx { namespace sidebar { 455d39f272SZheng Fan 465d39f272SZheng Fan namespace { 475d39f272SZheng Fan typedef ::cppu::WeakComponentImplHelper1 < 485d39f272SZheng Fan css::view::XSelectionChangeListener 495d39f272SZheng Fan > SelectionChangeHandlerInterfaceBase; 505d39f272SZheng Fan } 515d39f272SZheng Fan 525d39f272SZheng Fan 535d39f272SZheng Fan class SVX_DLLPUBLIC SelectionChangeHandler 545d39f272SZheng Fan : private ::boost::noncopyable, 555d39f272SZheng Fan private ::cppu::BaseMutex, 565d39f272SZheng Fan public SelectionChangeHandlerInterfaceBase 575d39f272SZheng Fan { 585d39f272SZheng Fan public: 595d39f272SZheng Fan SelectionChangeHandler ( 60*2a3f8a0eSAndre Fischer const boost::function<rtl::OUString(void)>& rSelectionChangeCallback, 615d39f272SZheng Fan const cssu::Reference<css::frame::XController>& rxController, 625d39f272SZheng Fan const sfx2::sidebar::EnumContext::Context eDefaultContext); 635d39f272SZheng Fan virtual ~SelectionChangeHandler (void); 645d39f272SZheng Fan 655d39f272SZheng Fan virtual void SAL_CALL selectionChanged (const css::lang::EventObject& rEvent) 665d39f272SZheng Fan throw (cssu::RuntimeException); 675d39f272SZheng Fan 685d39f272SZheng Fan virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent) 695d39f272SZheng Fan throw (cssu::RuntimeException); 705d39f272SZheng Fan 715d39f272SZheng Fan virtual void SAL_CALL disposing (void) 725d39f272SZheng Fan throw (cssu::RuntimeException); 735d39f272SZheng Fan 745d39f272SZheng Fan void Connect (void); 755d39f272SZheng Fan void Disconnect (void); 765d39f272SZheng Fan 775d39f272SZheng Fan private: 78*2a3f8a0eSAndre Fischer const boost::function<rtl::OUString(void)> maSelectionChangeCallback; 795d39f272SZheng Fan cssu::Reference<css::frame::XController> mxController; 805d39f272SZheng Fan const sfx2::sidebar::EnumContext::Context meDefaultContext; 815d39f272SZheng Fan bool mbIsConnected; 825d39f272SZheng Fan }; 835d39f272SZheng Fan 845d39f272SZheng Fan 855d39f272SZheng Fan } } // end of namespace svx::sidebar 865d39f272SZheng Fan 875d39f272SZheng Fan 885d39f272SZheng Fan #endif 895d39f272SZheng Fan 90