QTradingView 1.0.0
A high-performance charting library built with C++ and Qt.
Loading...
Searching...
No Matches
ViewPort.h
1/*
2 * Copyright (c) 2025 Dhruvan Gnanadhandayuthapani
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 * SOFTWARE.
21 */
22
23#ifndef QTRADINGVIEW_VIEWPORT_H
24#define QTRADINGVIEW_VIEWPORT_H
25
26#include <QRectF>
27#include "QTradingView/qtradingview_global.h"
28
29namespace QTradingView {
30
31constexpr int MAX_VISIBLE_BARS = 1500;
32
38class QTRADINGVIEW_EXPORT ViewPort
39{
40public:
44 ViewPort();
45
53 ViewPort(int startIndex, int endIndex, const QRectF &pixelRect, double barWidth = 8.0);
54
60 void setVisibleRange(int start, int end);
61
65 int startIndex() const;
66
70 int endIndex() const;
71
75 int visibleCount() const;
76
81 void setPixelRect(const QRectF &rect);
82
86 QRectF pixelRect() const;
87
93 double indexToPixel(int index) const;
94
100 int pixelToIndex(double pixel) const;
101
106 void setBarWidth(double width);
107
111 double barWidth() const;
112
113private:
114 int m_startIndex;
115 int m_endIndex;
116 QRectF m_pixelRect;
117 double m_barWidth;
118};
119
120} // namespace QTradingView
121
122#endif // QTRADINGVIEW_VIEWPORT_H
Manages the visible range and pixel mapping for chart bars.
Definition ViewPort.h:39