Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
ruler.h File Reference

Ruler parent class. More...

#include "common/dsp/position.h"
#include "common/utils/ui.h"
#include "gui/backend/gtk_widgets/gtk_wrapper.h"
Include dependency graph for ruler.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define RULER_WIDGET_TYPE   (ruler_widget_get_type ())
#define DEFAULT_PX_PER_TICK   0.03
 Pixels to draw between each beat, before being adjusted for zoom.
#define SPACE_BEFORE_START   10
 Pixels to put before 1st bar.
#define SPACE_BEFORE_START_F   10.f
#define SPACE_BEFORE_START_D   10.0
#define RULER_ZOOM_LEVEL_MULTIPLIER   1.28
 Multiplier when zooming in/out.
#define MIN_ZOOM_LEVEL   0.04
#define MAX_ZOOM_LEVEL   1800.

Typedefs

using RulerWidget

Enumerations

enum class  RWTarget {
  Playhead , LoopStart , LoopEnd , PunchIn ,
  PunchOut , ClipStart , RWTarget::Range , RWTarget::LoopRange
}
 The ruler widget target acting upon. More...
enum class  RulerWidgetType { Timeline , Editor }
enum class  RulerWidgetRangeType { RulerWidgetRangeType::Start , RulerWidgetRangeType::Full , RulerWidgetRangeType::End }
 Range type. More...

Functions

bool ruler_widget_set_zoom_level (RulerWidget *self, double zoom_level)
 Sets zoom level and disables/enables buttons accordingly.
double ruler_widget_get_zoom_level (RulerWidget *self)
 Gets the zoom level associated with this RulerWidget from the backend.
void ruler_widget_handle_horizontal_zoom (RulerWidget *self, double *x_pos, double dy)
 Handle horizontal zoom.
int ruler_widget_get_beat_interval (RulerWidget *self)
 Returns the beat interval for drawing vertical lines.
int ruler_widget_get_sixteenth_interval (RulerWidget *self)
 Returns the sixteenth interval for drawing vertical lines.
int ruler_widget_get_10sec_interval (RulerWidget *self)
 Returns the 10 sec interval.
int ruler_widget_get_sec_interval (RulerWidget *self)
 Returns the sec interval.
bool ruler_widget_is_range_hit (RulerWidget *self, RulerWidgetRangeType type, double x, double y)
bool ruler_widget_is_loop_range_hit (RulerWidget *self, RulerWidgetRangeType type, double x, double y)
 Whether the loop range is hit.
void ruler_widget_px_to_pos (RulerWidget *self, double px, Position *pos, bool has_padding)
int ruler_widget_pos_to_px (RulerWidget *self, Position *pos, int use_padding)
EditorSettings * ruler_widget_get_editor_settings (RulerWidget *self)
 Gets the pointer to the EditorSettings associated with the arranger this ruler is for.
void ruler_widget_get_visible_rect (RulerWidget *self, GdkRectangle *rect)
 Fills in the visible rectangle.
int ruler_widget_get_playhead_px (RulerWidget *self, bool after_loops)
 Returns the playhead's x coordinate in absolute coordinates.
void ruler_widget_refresh (RulerWidget *self)

Variables

constexpr int RW_RULER_MARKER_SIZE = 8
constexpr int RW_CUE_MARKER_HEIGHT = 12
constexpr int RW_CUE_MARKER_WIDTH = 7
constexpr int RW_PLAYHEAD_TRIANGLE_WIDTH = 12
constexpr int RW_PLAYHEAD_TRIANGLE_HEIGHT = 8
constexpr int RW_RANGE_HEIGHT_DIVISOR = 4
constexpr int RW_HEIGHT = 42
constexpr int RW_SCROLL_SPEED = 48
 Mouse wheel scroll speed (number of pixels).
constexpr double RW_PX_TO_HIDE_BEATS = 40.0
 Minimum number of pixels between beat lines.

Detailed Description

Ruler parent class.

Definition in file ruler.h.

Macro Definition Documentation

◆ RULER_WIDGET_TYPE

#define RULER_WIDGET_TYPE   (ruler_widget_get_type ())

Definition at line 34 of file ruler.h.

Variable Documentation

◆ RW_CUE_MARKER_HEIGHT

int RW_CUE_MARKER_HEIGHT = 12
constexpr

Definition at line 18 of file ruler.h.

◆ RW_CUE_MARKER_WIDTH

int RW_CUE_MARKER_WIDTH = 7
constexpr

Definition at line 19 of file ruler.h.

◆ RW_HEIGHT

int RW_HEIGHT = 42
constexpr

Definition at line 24 of file ruler.h.

◆ RW_PLAYHEAD_TRIANGLE_HEIGHT

int RW_PLAYHEAD_TRIANGLE_HEIGHT = 8
constexpr

Definition at line 21 of file ruler.h.

◆ RW_PLAYHEAD_TRIANGLE_WIDTH

int RW_PLAYHEAD_TRIANGLE_WIDTH = 12
constexpr

Definition at line 20 of file ruler.h.

◆ RW_PX_TO_HIDE_BEATS

double RW_PX_TO_HIDE_BEATS = 40.0
constexpr

Minimum number of pixels between beat lines.

Definition at line 32 of file ruler.h.

◆ RW_RANGE_HEIGHT_DIVISOR

int RW_RANGE_HEIGHT_DIVISOR = 4
constexpr

Definition at line 22 of file ruler.h.

◆ RW_RULER_MARKER_SIZE

int RW_RULER_MARKER_SIZE = 8
constexpr

Definition at line 17 of file ruler.h.

◆ RW_SCROLL_SPEED

int RW_SCROLL_SPEED = 48
constexpr

Mouse wheel scroll speed (number of pixels).

Definition at line 27 of file ruler.h.