76 lines
2.6 KiB
C++
76 lines
2.6 KiB
C++
#include "Time_Axis_p.h"
|
|
#include "../base/Plot.h"
|
|
namespace YSG {
|
|
using TimeAxis_Binding = Renderable_Binding<Time_Axis, Time_Axis_Private, Time_Axis_Render_State, Time_Axis_Input_Data>;
|
|
Time_Axis::Time_Axis() {
|
|
TimeAxis_Binding::init(this, "TimeAxis");
|
|
}
|
|
Time_Axis_Private* Time_Axis::d() {
|
|
return TimeAxis_Binding::d(this);
|
|
}
|
|
Render_Data* Time_Axis::create_render_data() {
|
|
return TimeAxis_Binding::create_render_data();
|
|
}
|
|
Render_State* Time_Axis::create_render_state() {
|
|
return TimeAxis_Binding::create_render_state();
|
|
}
|
|
Input_Data* Time_Axis::create_input_data() {
|
|
return TimeAxis_Binding::create_input_data();
|
|
}
|
|
int Time_Axis::time_point_size(SRC src) {
|
|
return d()->state_value(&Time_Axis_Render_State::time_point_size, src);
|
|
}
|
|
void Time_Axis::set_time_point_size(int value) {
|
|
d()->set_state_value(&Time_Axis_Render_State::time_point_size, value);
|
|
}
|
|
int Time_Axis::tick_pixel_space(SRC src) {
|
|
return d()->state_value(&Time_Axis_Render_State::tick_pixel_space, src);
|
|
}
|
|
void Time_Axis::set_tick_pixel_space(int value) {
|
|
d()->set_state_value(&Time_Axis_Render_State::tick_pixel_space, value);
|
|
}
|
|
QString Time_Axis::time_format(SRC src) {
|
|
return d()->state_value(&Time_Axis_Render_State::time_format, src);
|
|
}
|
|
void Time_Axis::set_time_format(QString value) {
|
|
d()->set_state_value(&Time_Axis_Render_State::time_format, std::move(value));
|
|
}
|
|
QFont Time_Axis::font(SRC src) {
|
|
return d()->state_value(&Time_Axis_Render_State::font, src);
|
|
}
|
|
void Time_Axis::set_font(QFont value) {
|
|
d()->set_state_value(&Time_Axis_Render_State::font, std::move(value));
|
|
}
|
|
int Time_Axis::give_data(QTime time) {
|
|
if (!ok()) return -1;
|
|
Time_Axis_Private* pd = d();
|
|
std::pair<int, bool> ret = pd->mTimeTicker.getNewDataTickInfo();
|
|
Render_Input_Lease<Time_Axis_Private, Time_Axis_Input_Data> input(pd);
|
|
input->mAllTime.push_back(time);
|
|
if (ret.second) {
|
|
input->mData.push_front({time, ret.first});
|
|
}
|
|
return ret.first;
|
|
}
|
|
QTime Time_Axis::tick_to_time(int tick, SRC src) {
|
|
auto render_state = d()->state_data(src);
|
|
int offset = tick - (int)render_state->coord_start;
|
|
return d()->time_by_offset(offset);
|
|
}
|
|
Time_Axis::Builder::Builder(Plot* plot, Qt::Orientation orientation) {
|
|
this->plot = plot;
|
|
this->orientation = orientation;
|
|
}
|
|
Time_Axis* Time_Axis::Builder::build() {
|
|
auto ret = new Time_Axis();
|
|
set(ret);
|
|
Time_Axis_Private* pd = ret->d();
|
|
Time_Axis_Render_State* sc = reinterpret_cast<Time_Axis_Render_State*>(pd->state(State_Edit));
|
|
PROP_R(int, time_point_size)
|
|
PROP_R(int, tick_pixel_space)
|
|
PROP_R(QString, time_format)
|
|
PROP_R(QFont, font)
|
|
return ret;
|
|
}
|
|
}
|