bump product version to 5.0.4.1
[LibreOffice.git] / sd / source / ui / slidesorter / inc / controller / SlsTransferableData.hxx
blob1e60ac843b4a8570882d65cc6170510a167a0337
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SD_SOURCE_UI_SLIDESORTER_INC_CONTROLLER_SLSTRANSFERABLEDATA_HXX
21 #define INCLUDED_SD_SOURCE_UI_SLIDESORTER_INC_CONTROLLER_SLSTRANSFERABLEDATA_HXX
23 #include "sdxfer.hxx"
24 #include <boost/function.hpp>
25 #include <vector>
27 class SdDrawDocument;
28 namespace sd { namespace slidesorter {
29 class SlideSorterViewShell;
30 } }
32 namespace sd { namespace slidesorter { namespace controller {
34 /** Represent previews and other information so that they can be
35 attached to an existing transferable.
37 class TransferableData
38 : public SdTransferable::UserData,
39 public SfxListener
41 public:
42 class Representative
44 public:
45 Representative (const Bitmap& rBitmap, const bool bIsExcluded)
46 : maBitmap(rBitmap), mbIsExcluded(bIsExcluded) {}
47 Representative (const Representative& rOther)
48 : maBitmap(rOther.maBitmap), mbIsExcluded(rOther.mbIsExcluded) {}
49 Representative operator= (Representative const& rOther)
50 { if (&rOther != this) {maBitmap = rOther.maBitmap; mbIsExcluded = rOther.mbIsExcluded; }
51 return *this;
54 Bitmap maBitmap;
55 bool mbIsExcluded;
58 static SdTransferable* CreateTransferable (
59 SdDrawDocument* pSrcDoc,
60 ::sd::View* pWorkView,
61 bool bInitOnGetData,
62 SlideSorterViewShell* pViewShell,
63 const ::std::vector<TransferableData::Representative>& rRepresentatives);
65 static ::boost::shared_ptr<TransferableData> GetFromTransferable (const SdTransferable* pTransferable);
67 TransferableData (
68 SlideSorterViewShell* pViewShell,
69 const ::std::vector<TransferableData::Representative>& rRepresentatives);
70 virtual ~TransferableData();
72 const ::std::vector<Representative>& GetRepresentatives() const { return maRepresentatives;}
74 /** Return the view shell for which the transferable was created.
76 SlideSorterViewShell* GetSourceViewShell() const { return mpViewShell;}
78 private:
79 SlideSorterViewShell* mpViewShell;
80 const ::std::vector<Representative> maRepresentatives;
81 typedef ::std::vector<boost::function<void(sal_uInt8)> > CallbackContainer;
83 virtual void Notify (SfxBroadcaster& rBroadcaster, const SfxHint& rHint) SAL_OVERRIDE;
86 } } } // end of namespace ::sd::slidesorter::controller
88 #endif
90 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */