File indexing completed on 2024-06-02 06:03:25

0001 /*
0002     This file is part of the Kasten Framework, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2006 Friedrich W. H. Kossebau <kossebau@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef KASTEN_IF_ZOOMABLE_HPP
0010 #define KASTEN_IF_ZOOMABLE_HPP
0011 
0012 // Qt
0013 #include <QtPlugin>
0014 
0015 namespace Kasten {
0016 namespace If {
0017 
0018 // TODO: add support for automatic zoom
0019 // enum { Manual, Width, Height, FullSize };
0020 // perhaps zoomLevelChanged needs a flag automatically
0021 class Zoomable
0022 {
0023 public:
0024     virtual ~Zoomable();
0025 
0026 public: // set/action
0027     virtual void setZoomLevel(double Level) = 0;
0028 
0029 public: // get
0030     virtual double zoomLevel() const = 0;
0031 
0032 public: // signal
0033     virtual void zoomLevelChanged(double Level) = 0;
0034 };
0035 
0036 inline Zoomable::~Zoomable() = default;
0037 
0038 }
0039 }
0040 
0041 Q_DECLARE_INTERFACE(Kasten::If::Zoomable, "org.kde.kasten.if.zoomable/1.0")
0042 
0043 #endif