43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#pragma once
|
|
#include "Abs_Axis.h"
|
|
namespace YSG {
|
|
struct Time_Axis_Private;
|
|
struct Time_Ticker;
|
|
class LIB_DECL Time_Axis : public Abs_Axis {
|
|
public:
|
|
Time_Axis_Private* d();
|
|
Render_Data* create_render_data() override;
|
|
Render_State* create_render_state() override;
|
|
Input_Data* create_input_data() override;
|
|
protected:
|
|
Time_Axis();
|
|
friend struct Time_Axis_Private;
|
|
friend struct Time_Axis_Render_State;
|
|
friend struct Time_Axis_Input_Data;
|
|
public:
|
|
PROP(int, time_point_size)
|
|
PROP(int, tick_pixel_space)
|
|
PROP(QString, time_format)
|
|
PROP(QFont, font)
|
|
int give_data(QTime time);
|
|
QTime tick_to_time(int tick, SRC = SRC::Edit);
|
|
struct Builder;
|
|
};
|
|
struct Time_Axis_Prop {
|
|
int time_point_size = 100;
|
|
int tick_pixel_space = 8;
|
|
QString time_format = "mm:ss.zzz";
|
|
QFont font;
|
|
};
|
|
struct LIB_DECL Time_Axis::Builder : Abs_Axis::BuilderT<Time_Axis::Builder>,
|
|
protected
|
|
Time_Axis_Prop {
|
|
PROP_B(int, time_point_size)
|
|
PROP_B(int, tick_pixel_space)
|
|
PROP_B(QString, time_format)
|
|
PROP_B(QFont, font)
|
|
Builder(Plot * plot, Qt::Orientation orientation);
|
|
Time_Axis* build();
|
|
};
|
|
}
|