1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2008 by Sun Microsystems, Inc.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * $RCSfile: $
10  * $Revision: $
11  *
12  * This file is part of OpenOffice.org.
13  *
14  * OpenOffice.org is free software: you can redistribute it and/or modify
15  * it under the terms of the GNU Lesser General Public License version 3
16  * only, as published by the Free Software Foundation.
17  *
18  * OpenOffice.org is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU Lesser General Public License version 3 for more details
22  * (a copy is included in the LICENSE file that accompanied this code).
23  *
24  * You should have received a copy of the GNU Lesser General Public License
25  * version 3 along with OpenOffice.org.  If not, see
26  * <http://www.openoffice.org/license.html>
27  * for a copy of the LGPLv3 License.
28  *
29  ************************************************************************/
30 
31 #ifndef _SD_VIEWOVERLAYMANAGER_HXX
32 #define _SD_VIEWOVERLAYMANAGER_HXX
33 
34 #include <vcl/image.hxx>
35 #include <svl/lstner.hxx>
36 #include "EventMultiplexer.hxx"
37 #include "ViewShellBase.hxx"
38 #include "res_bmp.hrc"
39 
40 namespace sd
41 {
42 
43 typedef std::vector< rtl::Reference< SmartTag > > ViewTagVector;
44 
45 class ViewOverlayManager : public SfxListener
46 {
47 public:
48     ViewOverlayManager( ViewShellBase& rViewShellBase );
49     virtual ~ViewOverlayManager();
50 
51     void onZoomChanged();
52     void UpdateTags();
53 
54     DECL_LINK(EventMultiplexerListener, tools::EventMultiplexerEvent*);
55     DECL_LINK(UpdateTagsHdl, void *);
56 
57     bool CreateTags();
58 	bool DisposeTags();
59 
60 	virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
61 
62 private:
63 	ViewShellBase& mrBase;
64     sal_uLong mnUpdateTagsEvent;
65 
66 	ViewTagVector	maTagVector;
67 };
68 
69 }
70 
71 #endif // _SD_VIEWOVERLAYMANAGER_HXX
72