1*38d50f7bSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*38d50f7bSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*38d50f7bSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*38d50f7bSAndrew Rist  * distributed with this work for additional information
6*38d50f7bSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*38d50f7bSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*38d50f7bSAndrew Rist  * "License"); you may not use this file except in compliance
9*38d50f7bSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*38d50f7bSAndrew Rist  *
11*38d50f7bSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*38d50f7bSAndrew Rist  *
13*38d50f7bSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*38d50f7bSAndrew Rist  * software distributed under the License is distributed on an
15*38d50f7bSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*38d50f7bSAndrew Rist  * KIND, either express or implied.  See the License for the
17*38d50f7bSAndrew Rist  * specific language governing permissions and limitations
18*38d50f7bSAndrew Rist  * under the License.
19*38d50f7bSAndrew Rist  *
20*38d50f7bSAndrew Rist  *************************************************************/
21*38d50f7bSAndrew Rist 
22*38d50f7bSAndrew Rist 
23cdf0e10cSrcweir #ifndef _SC_ZOOMSLIDERTBCONTRL_HXX
24cdf0e10cSrcweir #define _SC_ZOOMSLIDERTBCONTRL_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #ifndef _WINDOW_HXX        //autogen
27cdf0e10cSrcweir #include <vcl/window.hxx>
28cdf0e10cSrcweir #endif
29cdf0e10cSrcweir #ifndef _SFXPOOLITEM_HXX   //autogen
30cdf0e10cSrcweir #include <svl/poolitem.hxx>
31cdf0e10cSrcweir #endif
32cdf0e10cSrcweir #ifndef _SFXTBXCTRL_HXX    //autogen
33cdf0e10cSrcweir #include <sfx2/tbxctrl.hxx>
34cdf0e10cSrcweir #endif
35cdf0e10cSrcweir #ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDER_HPP_
36cdf0e10cSrcweir #include <com/sun/star/frame/XDispatchProvider.hpp>
37cdf0e10cSrcweir #endif
38cdf0e10cSrcweir #ifndef _COM_SUN_STAR_FRAME_XFRAME_HPP_
39cdf0e10cSrcweir #include <com/sun/star/frame/XFrame.hpp>
40cdf0e10cSrcweir #endif
41cdf0e10cSrcweir #include <svx/zoomslideritem.hxx>
42cdf0e10cSrcweir 
43cdf0e10cSrcweir 
44cdf0e10cSrcweir //class ScZoomSliderControl define
45cdf0e10cSrcweir class ScZoomSliderControl: public SfxToolBoxControl
46cdf0e10cSrcweir {
47cdf0e10cSrcweir public:
48cdf0e10cSrcweir     SFX_DECL_TOOLBOX_CONTROL();
49cdf0e10cSrcweir     ScZoomSliderControl( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx );
50cdf0e10cSrcweir     ~ScZoomSliderControl();
51cdf0e10cSrcweir 
52cdf0e10cSrcweir     virtual void    StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState );
53cdf0e10cSrcweir     virtual Window* CreateItemWindow( Window *pParent );
54cdf0e10cSrcweir };
55cdf0e10cSrcweir 
56cdf0e10cSrcweir //========================================================================
57cdf0e10cSrcweir // class ScZoomSliderWnd define---------------------------------------
58cdf0e10cSrcweir //========================================================================
59cdf0e10cSrcweir class ScZoomSliderWnd: public Window
60cdf0e10cSrcweir {
61cdf0e10cSrcweir private:
62cdf0e10cSrcweir     struct                  ScZoomSliderWnd_Impl;
63cdf0e10cSrcweir     ScZoomSliderWnd_Impl*   mpImpl;
64cdf0e10cSrcweir     Size                    aLogicalSize;
65cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider > m_xDispatchProvider;
66cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >            m_xFrame;
67cdf0e10cSrcweir 
68cdf0e10cSrcweir     sal_uInt16          Offset2Zoom( long nOffset ) const;
69cdf0e10cSrcweir     long            Zoom2Offset( sal_uInt16 nZoom ) const;
70cdf0e10cSrcweir     void            DoPaint( const Rectangle& rRect );
71cdf0e10cSrcweir 
72cdf0e10cSrcweir public:
73cdf0e10cSrcweir     ScZoomSliderWnd( Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider >& rDispatchProvider,
74cdf0e10cSrcweir                     const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _xFrame , sal_uInt16 nCurrentZoom );
75cdf0e10cSrcweir     ~ScZoomSliderWnd();
76cdf0e10cSrcweir     void            UpdateFromItem( const SvxZoomSliderItem* pZoomSliderItem );
77cdf0e10cSrcweir 
78cdf0e10cSrcweir protected:
79cdf0e10cSrcweir     virtual void    MouseButtonDown( const MouseEvent& rMEvt );
80cdf0e10cSrcweir     virtual void    MouseMove( const MouseEvent& rMEvt );
81cdf0e10cSrcweir     virtual void    Paint( const Rectangle& rRect );
82cdf0e10cSrcweir };
83cdf0e10cSrcweir #endif
84