Go to the documentation of this file.
3 #include <boost/shared_ptr.hpp>
18 using Ptr = boost::shared_ptr<Ruler>;
45 void setRange(
double lower,
double upper);
113 static gboolean
drawCallback(GtkWidget* widget, cairo_t* cr, gpointer data);
120 void draw(GtkWidget* widget, cairo_t* cr);
150 void drawTicks(cairo_t* cr,
double lower,
double upper,
double lineLength);
160 void drawSingleTick(cairo_t* cr,
double linePosition,
double lineLength,
bool drawLabel,
const std::string& label);
170 void drawSubTicks(cairo_t* cr,
double lower,
double upper,
int depth,
double lineLength);
203 static int intervalPixelSpacing(
double interval,
double lower,
double upper,
double allocatedSize);
211 static int firstTick(
double lower,
int interval);
223 static double scaleToRange(
double x,
double src_lower,
double src_upper,
double dest_lower,
double dest_upper);
Ruler(const Ruler &)=delete
void drawSingleTick(cairo_t *cr, double linePosition, double lineLength, bool drawLabel, const std::string &label)
Definition: ruler.cc:168
static int intervalPixelSpacing(double interval, double lower, double upper, double allocatedSize)
Definition: ruler.cc:294
static gboolean drawCallback(GtkWidget *widget, cairo_t *cr, gpointer data)
Definition: ruler.cc:106
static constexpr double LABEL_ALIGN
Definition: ruler.hh:86
void drawTicks(cairo_t *cr, double lower, double upper, double lineLength)
Definition: ruler.cc:144
static void sizeAllocateCallback(GtkWidget *widget, GdkRectangle *allocation, gpointer data)
Definition: ruler.cc:76
Orientation
Definition: ruler.hh:20
int width
Definition: ruler.hh:64
void updateMajorTickInterval()
Definition: ruler.cc:86
static constexpr int MIN_SPACE_MAJORTICKS
Definition: ruler.hh:184
static constexpr double LINE_MULTIPLIER
Definition: ruler.hh:89
static int firstTick(double lower, int interval)
Definition: ruler.cc:303
GdkRGBA lineColor
Definition: ruler.hh:91
static constexpr double MAJOR_TICK_LENGTH
Definition: ruler.hh:96
static constexpr double DEFAULT_LOWER
Definition: ruler.hh:50
static constexpr double DEFAULT_UPPER
Definition: ruler.hh:51
int majorInterval
Definition: ruler.hh:68
void draw(GtkWidget *widget, cairo_t *cr)
Definition: ruler.cc:114
@ VERTICAL
Definition: ruler.hh:23
void updateAllocatedSize(int newWidth, int newHeight)
Definition: ruler.cc:67
static constexpr double LABEL_OFFSET
Definition: ruler.hh:83
boost::shared_ptr< RulerDrawStrategy > Ptr
Definition: rulerstrategies.hh:17
static Ptr create(Orientation orientation, GtkWidget *drawArea)
Definition: ruler.cc:12
constexpr static std::array< int, 2 > SUBTICK_SEGMENTS
Definition: ruler.hh:57
static double scaleToRange(double x, double src_lower, double src_upper, double dest_lower, double dest_upper)
Definition: ruler.cc:235
static constexpr double LINE_WIDTH
Definition: ruler.hh:93
int height
Definition: ruler.hh:65
void drawSubTicks(cairo_t *cr, double lower, double upper, int depth, double lineLength)
Definition: ruler.cc:193
Ruler operator=(const Ruler &)=delete
double upperLimit
Definition: ruler.hh:61
RulerDrawStrategy::Ptr drawStrategy
Definition: ruler.hh:75
~Ruler()
Definition: ruler.cc:48
constexpr static std::array< int, 4 > VALID_INTERVALS
Definition: ruler.hh:180
double lowerLimit
Definition: ruler.hh:60
GtkWidget * drawingArea
Definition: ruler.hh:48
static constexpr int MIN_SPACE_SUBTICKS
Definition: ruler.hh:78
boost::shared_ptr< Ruler > Ptr
Definition: ruler.hh:18
static constexpr double FONT_SIZE
Definition: ruler.hh:80
int majorTickSpacing
Definition: ruler.hh:71
static int calculateInterval(double lower, double upper, double allocatedSize)
Definition: ruler.cc:244
@ HORIZONTAL
Definition: ruler.hh:22
void setRange(double lower, double upper)
Definition: ruler.cc:56