summaryrefslogtreecommitdiff
path: root/gtk2_ardour/automation_line.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-05-29 18:30:10 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-05-29 18:30:10 +0000
commitf1505b631dd6a2ef30eae01e00ca7162de0aba3f (patch)
tree9387adf7cde30f50990c1fae5ac92ecbd002eed4 /gtk2_ardour/automation_line.h
parent71988944739d8daf2fda75ee709fa54af2f2f1f5 (diff)
substantive change to try to provide some rationality for region gain line visibility (and automation line visibility in general
git-svn-id: svn://localhost/ardour2/branches/3.0@12478 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/automation_line.h')
-rw-r--r--gtk2_ardour/automation_line.h29
1 files changed, 18 insertions, 11 deletions
diff --git a/gtk2_ardour/automation_line.h b/gtk2_ardour/automation_line.h
index bee78c4ef5..43bfd04d1d 100644
--- a/gtk2_ardour/automation_line.h
+++ b/gtk2_ardour/automation_line.h
@@ -57,6 +57,12 @@ namespace Gnome {
class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
{
public:
+ enum VisibleAspects {
+ Line = 0x1,
+ ControlPoints = 0x2,
+ SelectedControlPoints = 0x4
+ };
+
AutomationLine (const std::string& name, TimeAxisView&, ArdourCanvas::Group&,
boost::shared_ptr<ARDOUR::AutomationList>,
Evoral::TimeConverter<double, ARDOUR::framepos_t>* converter = 0);
@@ -85,17 +91,20 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
uint32_t npoints() const { return control_points.size(); }
std::string name() const { return _name; }
- bool visible() const { return _visible; }
+ bool visible() const { return _visible != VisibleAspects(0); }
guint32 height() const { return _height; }
void set_line_color (uint32_t);
uint32_t get_line_color() const { return _line_color; }
- void show ();
- void hide ();
- void set_height (guint32);
- void set_uses_gain_mapping (bool yn);
- bool get_uses_gain_mapping () const { return _uses_gain_mapping; }
+ void set_visibility (VisibleAspects);
+ void add_visibility (VisibleAspects);
+ void remove_visibility (VisibleAspects);
+
+ void hide ();
+ void set_height (guint32);
+ void set_uses_gain_mapping (bool yn);
+ bool get_uses_gain_mapping () const { return _uses_gain_mapping; }
TimeAxisView& trackview;
@@ -113,9 +122,6 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
void set_list(boost::shared_ptr<ARDOUR::AutomationList> list);
boost::shared_ptr<ARDOUR::AutomationList> the_list() const { return alist; }
- void show_all_control_points ();
- void hide_all_but_selected_control_points ();
-
void track_entered();
void track_exited();
@@ -157,13 +163,13 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
/** true if _time_converter belongs to us (ie we should delete it on destruction) */
bool _our_time_converter;
- bool _visible : 1;
+ VisibleAspects _visible;
+
bool _uses_gain_mapping : 1;
bool terminal_points_can_slide : 1;
bool update_pending : 1;
bool no_draw : 1;
bool _is_boolean : 1;
- bool points_visible : 1;
bool did_push;
ArdourCanvas::Group& _parent_group;
@@ -195,6 +201,7 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
*/
ARDOUR::framecnt_t _offset;
+ void show ();
void reset_line_coords (ControlPoint&);
void add_visible_control_point (uint32_t, uint32_t, double, double, ARDOUR::AutomationList::iterator, uint32_t);
double control_point_box_size ();