19 using Ptr = std::shared_ptr<Ruler>;
46 void setRange(
double lower,
double upper);
121 void draw(GtkWidget* widget, cairo_t*
cr);
151 void drawTicks(cairo_t*
cr,
double lower,
double upper,
double lineLength);
161 void drawSingleTick(cairo_t*
cr,
double linePosition,
double lineLength,
bool drawLabel,
const std::string& label);
171 void drawSubTicks(cairo_t*
cr,
double lower,
double upper,
int depth,
double lineLength);
204 static int intervalPixelSpacing(
double interval,
double lower,
double upper,
double allocatedSize);
212 static int firstTick(
double lower,
int interval);
224 static double scaleToRange(
double x,
double src_lower,
double src_upper,
double dest_lower,
double dest_upper);
uint8_t data
Definition blob-tests.cc:36
static double scaleToRange(double x, double src_lower, double src_upper, double dest_lower, double dest_upper)
Definition ruler.cc:235
static int calculateInterval(double lower, double upper, double allocatedSize)
Definition ruler.cc:244
static int firstTick(double lower, int interval)
Definition ruler.cc:303
static constexpr std::array< int, 4 > VALID_INTERVALS
Definition ruler.hh:181
static constexpr int MIN_SPACE_MAJORTICKS
Definition ruler.hh:185
static int intervalPixelSpacing(double interval, double lower, double upper, double allocatedSize)
Definition ruler.cc:294
std::shared_ptr< RulerDrawStrategy > Ptr
Definition rulerstrategies.hh:17
int width
Definition ruler.hh:65
double lowerLimit
Definition ruler.hh:61
int majorInterval
Definition ruler.hh:69
static constexpr int MIN_SPACE_SUBTICKS
Definition ruler.hh:79
static gboolean drawCallback(GtkWidget *widget, cairo_t *cr, gpointer data)
Definition ruler.cc:106
int height
Definition ruler.hh:66
void drawSingleTick(cairo_t *cr, double linePosition, double lineLength, bool drawLabel, const std::string &label)
Definition ruler.cc:168
static constexpr double MAJOR_TICK_LENGTH
Definition ruler.hh:97
static Ptr create(Orientation orientation, GtkWidget *drawArea)
Definition ruler.cc:12
static constexpr std::array< int, 2 > SUBTICK_SEGMENTS
Definition ruler.hh:58
void draw(GtkWidget *widget, cairo_t *cr)
Definition ruler.cc:114
static constexpr double LINE_WIDTH
Definition ruler.hh:94
void drawSubTicks(cairo_t *cr, double lower, double upper, int depth, double lineLength)
Definition ruler.cc:193
Ruler(const Ruler &)=delete
static constexpr double LINE_MULTIPLIER
Definition ruler.hh:90
GdkRGBA lineColor
Definition ruler.hh:92
void drawTicks(cairo_t *cr, double lower, double upper, double lineLength)
Definition ruler.cc:144
std::shared_ptr< Ruler > Ptr
Definition ruler.hh:19
Ruler operator=(Ruler &&)=delete
int majorTickSpacing
Definition ruler.hh:72
double upperLimit
Definition ruler.hh:62
Orientation
Definition ruler.hh:22
@ VERTICAL
Definition ruler.hh:24
@ HORIZONTAL
Definition ruler.hh:23
static constexpr double DEFAULT_UPPER
Definition ruler.hh:52
GtkWidget * drawingArea
Definition ruler.hh:49
Ruler operator=(const Ruler &)=delete
static constexpr double FONT_SIZE
Definition ruler.hh:81
RulerDrawStrategy::Ptr drawStrategy
Definition ruler.hh:76
static constexpr double LABEL_ALIGN
Definition ruler.hh:87
~Ruler()
Definition ruler.cc:48
void updateMajorTickInterval()
Definition ruler.cc:86
static void sizeAllocateCallback(GtkWidget *widget, GdkRectangle *allocation, gpointer data)
Definition ruler.cc:76
void updateAllocatedSize(int newWidth, int newHeight)
Definition ruler.cc:67
static constexpr double DEFAULT_LOWER
Definition ruler.hh:51
static constexpr double LABEL_OFFSET
Definition ruler.hh:84
void setRange(double lower, double upper)
Definition ruler.cc:56