11#ifndef __GUI_WIDGETS_DIGITAL_METER_H__
12#define __GUI_WIDGETS_DIGITAL_METER_H__
21#define DIGITAL_METER_WIDGET_TYPE (digital_meter_widget_get_type ())
29typedef enum NoteLength NoteLength;
39typedef enum DigitalMeterType
41 DIGITAL_METER_TYPE_BPM,
42 DIGITAL_METER_TYPE_POSITION,
43 DIGITAL_METER_TYPE_TIMESIG,
44 DIGITAL_METER_TYPE_NOTE_TYPE,
45 DIGITAL_METER_TYPE_NOTE_LENGTH,
50typedef struct _DigitalMeterWidget
52 GtkWidget parent_instance;
54 DigitalMeterType type;
58 GtkGestureDrag * drag;
66 int num_part_start_pos;
68 int dec_part_start_pos;
90 int sixteenths_start_pos;
91 int sixteenths_end_pos;
98 int update_sixteenths;
108 int seconds_start_pos;
121 NoteLength * note_length;
122 NoteType * note_type;
129 int update_timesig_top;
131 int update_timesig_bot;
135 int beat_unit_at_start;
145 void (*on_drag_begin) (
void *);
147 void (*on_drag_end) (
void *);
162 PangoLayout * seg7_layout;
163 PangoLayout * normal_layout;
167 GtkPopoverMenu * popover_menu;
185 DigitalMeterType type,
186 NoteLength * note_length,
188 const char * caption);
190#define digital_meter_widget_new_for_position( \
191 obj, drag_begin, getter, setter, drag_end, caption) \
192 _digital_meter_widget_new_for_position ( \
193 (void *) obj, (void (*) (void *)) drag_begin, \
194 (void (*) (void *, Position *)) getter, \
195 (void (*) (void *, Position *)) setter, (void (*) (void *)) drag_end, \
216 void (*drag_begin) (
void *),
217 void (*get_val) (
void *,
Position *),
218 void (*set_val) (
void *,
Position *),
219 void (*drag_end) (
void *),
220 const char * caption);
A Position is made up of bars.beats.sixteenths.ticks.