57 lines
1.2 KiB
C++
57 lines
1.2 KiB
C++
//
|
|
// Created by Lenn on 2025/10/17.
|
|
//
|
|
|
|
#ifndef TOUCHSENSOR_HEATMAP_H
|
|
#define TOUCHSENSOR_HEATMAP_H
|
|
|
|
#include "modern-qt/utility/theme/theme.hh"
|
|
#include "modern-qt/utility/wrapper/pimpl.hh"
|
|
#include "qcustomplot/qcustomplot.h"
|
|
|
|
namespace creeper {
|
|
class heatmap;
|
|
|
|
namespace plot_widget::internal {
|
|
class BasicPlot : public QCustomPlot {
|
|
CREEPER_PIMPL_DEFINITION(BasicPlot);
|
|
friend heatmap;
|
|
|
|
public:
|
|
struct ColorSpace {
|
|
|
|
};
|
|
|
|
void load_theme_manager(ThemeManager&);
|
|
|
|
void set_xlabel_text(const QString&);
|
|
|
|
void set_ylabel_text(const QString&);
|
|
|
|
void set_matrix_size(const QSize&);
|
|
|
|
private:
|
|
friend class Impl;
|
|
};
|
|
}
|
|
|
|
namespace plot_widget::pro {
|
|
using Token = common::Token<internal::BasicPlot>;
|
|
using XLabelText = common::pro::String<Token, [](auto& self, const auto& string) {
|
|
self.set_xlabel_text(string);
|
|
}>;
|
|
using YLabelText = common::pro::String<Token, [](auto& self, const auto& string) {
|
|
self.set_ylabel_text(string);
|
|
}>;
|
|
|
|
struct MatrixSize : Token {
|
|
QSize size;
|
|
explicit MatrixSize(const int& w, const int& h) : size {w, h} {}
|
|
void apply(auto& self) const {
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif //TOUCHSENSOR_HEATMAP_H
|