kwave  18.07.70
Zoomable.h
Go to the documentation of this file.
1 /***************************************************************************
2  libgui/Zoomable.h - Interface for a GUI element that supports zooming
3  -------------------
4  begin : 2014-09-21
5  copyright : (C) 2014 by Thomas.Eschenbacher
6  email : Thomas.Eschenbacher@gmx.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef ZOOMABLE_H
19 #define ZOOMABLE_H
20 
21 #include "config.h"
22 
23 #include "libkwave/Sample.h"
24 
25 namespace Kwave
26 {
27  class Zoomable
28  {
29  public:
30 
32  Zoomable() {}
33 
35  virtual ~Zoomable() {}
36 
41  virtual int visibleWidth() const = 0;
42 
44  virtual sample_index_t visibleSamples() const = 0;
45 
47  virtual double zoom() const = 0;
48 
53  virtual void setZoom(double factor) = 0;
54 
59  virtual void scrollTo(sample_index_t pos) = 0;
60 
61  };
62 }
63 
64 #endif /* ZOOMABLE_H */
65 //***************************************************************************
66 //***************************************************************************
virtual ~Zoomable()
Definition: Zoomable.h:35
Definition: App.h:33
virtual sample_index_t visibleSamples() const =0
quint64 sample_index_t
Definition: Sample.h:28
virtual int visibleWidth() const =0
virtual double zoom() const =0
virtual void scrollTo(sample_index_t pos)=0
virtual void setZoom(double factor)=0