diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-08-27 19:45:46 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-08-28 10:21:23 +0200 |
commit | 209dd51b88bbf12bca548ca9fa31e78d1ae8bde5 (patch) | |
tree | a600cc1595a4a97ccec4d09008d2a9e2a0b4ed35 /starmath/inc | |
parent | bec5d33c1326005e4190bfb85d40e9bbdd408699 (diff) |
move ScrollableWindow to beside its only consumer
Change-Id: I9c73dba293cd831834a560e9fd8e8c2d135e2358
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101494
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'starmath/inc')
-rw-r--r-- | starmath/inc/scrwin.hxx | 68 | ||||
-rw-r--r-- | starmath/inc/view.hxx | 2 |
2 files changed, 69 insertions, 1 deletions
diff --git a/starmath/inc/scrwin.hxx b/starmath/inc/scrwin.hxx new file mode 100644 index 000000000000..253f6c59d3f6 --- /dev/null +++ b/starmath/inc/scrwin.hxx @@ -0,0 +1,68 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#pragma once + +#include <vcl/window.hxx> +#include <vcl/vclptr.hxx> + +class DataChangedEvent; +class ScrollBar; +class ScrollBarBox; + +class ScrollableWindow : public vcl::Window +{ +private: + Point aPixOffset; // offset to virtual window (pixel) + Size aTotPixSz; // total size of virtual window (pixel) + long nLinePixH; // size of a line/column (pixel) + long nColumnPixW; + + VclPtr<ScrollBar> aVScroll; // the scrollbars + VclPtr<ScrollBar> aHScroll; + VclPtr<ScrollBarBox> aCornerWin; // window in the bottom right corner + bool bScrolling:1; // user controlled scrolling + + DECL_LINK( ScrollHdl, ScrollBar *, void ); + DECL_LINK( EndScrollHdl, ScrollBar *, void ); + +public: + ScrollableWindow( vcl::Window* pParent ); + virtual ~ScrollableWindow() override; + virtual void dispose() override; + + virtual void Resize() override; + virtual void Command( const CommandEvent& rCEvt ) override; + virtual void DataChanged( const DataChangedEvent& rDEvt ) override; + + using OutputDevice::SetMapMode; + virtual void SetMapMode( const MapMode& rNewMapMode ) override; + MapMode GetMapMode() const; + + void SetTotalSize( const Size& rNewSize ); + Size GetTotalSize() const { return PixelToLogic( aTotPixSz ); } + + using Window::Scroll; + virtual void Scroll( long nDeltaX, long nDeltaY, ScrollFlags nFlags = ScrollFlags::NONE ) override; + +private: + Size GetOutputSizePixel() const; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/starmath/inc/view.hxx b/starmath/inc/view.hxx index b3625b7dc76b..5f3a8c52d547 100644 --- a/starmath/inc/view.hxx +++ b/starmath/inc/view.hxx @@ -26,13 +26,13 @@ #include <rtl/ref.hxx> #include <sfx2/dockwin.hxx> #include <sfx2/viewsh.hxx> -#include <svtools/scrwin.hxx> #include <sfx2/ctrlitem.hxx> #include <sfx2/shell.hxx> #include <sfx2/viewfrm.hxx> #include <vcl/timer.hxx> #include "document.hxx" #include "edit.hxx" +#include "scrwin.hxx" class SmViewShell; class SmPrintUIOptions; |