bool off() const { return _off; }
void set_widget_name (const std::string& name);
void set_active_state (Gtkmm2ext::ActiveState s);
+ void set_editable (bool yn);
+ void set_corner_radius (double);
+ void set_fixed_width (bool);
void focus ();
- void set (framepos_t, bool force = false, ARDOUR::framecnt_t offset = 0, char which = 0);
+ void set (framepos_t, bool force = false, ARDOUR::framecnt_t offset = 0);
void set_from_playhead ();
void locate ();
void set_mode (Mode);
/** true if this clock follows the playhead, meaning that certain operations are redundant */
bool _follows_playhead;
bool _off;
+ bool _fixed_width;
+ int layout_x_offset;
+ int em_width;
+ bool _edit_by_click_field;
Gtk::Menu *ops_menu;
Pango::AttrList editing_attributes;
Pango::AttrList info_attributes;
+ int first_height;
+ int first_width;
int layout_height;
int layout_width;
int info_height;
int upper_height;
double mode_based_info_ratio;
+ double corner_radius;
+
static const double info_font_scale_factor;
static const double separator_height;
static const double x_leading_padding;
enum Field {
- Timecode_Hours,
+ Timecode_Hours = 1,
Timecode_Minutes,
Timecode_Seconds,
Timecode_Frames,
Field index_to_field (int index) const;
+ /* this maps the number of input characters/digits when editing
+ to a cursor position. insert_map[N] = index of character/digit
+ where the cursor should be after N chars/digits. it is
+ mode specific and so it is filled during set_mode().
+ */
+
+ std::vector<int> insert_map;
+
bool editing;
std::string edit_string;
std::string pre_edit_string;
std::string input_string;
- std::string::size_type insert_max;
framepos_t bbt_reference_time;
framepos_t last_when;
bool timecode_validate_edit (const std::string&);
bool bbt_validate_edit (const std::string&);
+ bool minsec_validate_edit (const std::string&);
framepos_t frames_from_timecode_string (const std::string&) const;
framepos_t frames_from_bbt_string (framepos_t, const std::string&) const;
Field index_to_field () const;
- void start_edit ();
+ void start_edit (Field f = Field (0));
void end_edit (bool);
void end_edit_relative (bool);
void edit_next_field ();
void set_font ();
void set_colors ();
void show_edit_status (int length);
+ int merge_input_and_edit_string ();
+ std::string get_field (Field);
void drop_focus ();
-
+ void dpi_reset ();
+
double bg_r, bg_g, bg_b, bg_a;
+ double cursor_r, cursor_g, cursor_b, cursor_a;
};
#endif /* __audio_clock_h__ */