fdo#74697 Add Bluez 5 support for impress remote.
[LibreOffice.git] / sd / source / ui / view / zoomlist.cxx
blob462c08acc9596d448d2c104df59981547a6f04ba
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 .
21 #include "zoomlist.hxx"
23 #include <svx/svxids.hrc>
24 #include <sfx2/bindings.hxx>
25 #include <sfx2/viewfrm.hxx>
26 #include <sfx2/viewsh.hxx>
28 #include "ViewShell.hxx"
30 namespace sd {
32 #define MAX_ENTRYS 10
34 ZoomList::ZoomList(ViewShell* pViewShell)
35 : mpViewShell (pViewShell)
36 , mnCurPos(0)
40 void ZoomList::InsertZoomRect(const Rectangle& rRect)
42 sal_uLong nRectCount = maRectangles.size();
44 if (nRectCount >= MAX_ENTRYS)
45 maRectangles.erase(maRectangles.begin());
46 else if (nRectCount == 0)
47 mnCurPos = 0;
48 else
49 mnCurPos++;
51 maRectangles.insert(maRectangles.begin()+mnCurPos,rRect);
53 SfxBindings& rBindings = mpViewShell->GetViewFrame()->GetBindings();
54 rBindings.Invalidate( SID_ZOOM_NEXT );
55 rBindings.Invalidate( SID_ZOOM_PREV );
58 Rectangle ZoomList::GetNextZoomRect()
60 mnCurPos++;
61 sal_uLong nRectCount = maRectangles.size();
63 if (nRectCount > 0 && mnCurPos > nRectCount - 1)
64 mnCurPos = nRectCount - 1;
66 SfxBindings& rBindings = mpViewShell->GetViewFrame()->GetBindings();
67 rBindings.Invalidate( SID_ZOOM_NEXT );
68 rBindings.Invalidate( SID_ZOOM_PREV );
70 return maRectangles[mnCurPos];
73 Rectangle ZoomList::GetPreviousZoomRect()
75 if (mnCurPos > 0)
76 mnCurPos--;
78 SfxBindings& rBindings = mpViewShell->GetViewFrame()->GetBindings();
79 rBindings.Invalidate( SID_ZOOM_NEXT );
80 rBindings.Invalidate( SID_ZOOM_PREV );
82 return maRectangles[mnCurPos];
85 sal_Bool ZoomList::IsNextPossible() const
87 sal_uLong nRectCount = maRectangles.size();
89 return nRectCount > 0 && mnCurPos < nRectCount - 1;
92 sal_Bool ZoomList::IsPreviousPossible() const
94 return mnCurPos > 0;
97 } // end of namespace sd
99 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */