#include <gtkmm/box.h>
#include <gtkmm/frame.h>
+#include <gtkmm/drawingarea.h>
#include <gtkmm/eventbox.h>
#include <gtkmm/table.h>
#include <gtkmm/entry.h>
#include <gtkmm2ext/focus_entry.h>
+#include <pbd/stateful.h>
+
#include <ardour/types.h>
#include <ardour/region.h>
* extended to create functional time-axis based views.
*
*/
-class TimeAxisView : public virtual AxisView
+class TimeAxisView : public virtual AxisView, public Stateful
{
private:
enum NamePackingBits {
TimeAxisView(ARDOUR::Session& sess, PublicEditor& ed, TimeAxisView* parent, ArdourCanvas::Canvas& canvas);
virtual ~TimeAxisView ();
+ XMLNode& get_state (void);
+ int set_state (const XMLNode&);
+
/* public data: XXX create accessor/mutators for these ?? */
PublicEditor& editor;
- uint32_t height; /* in canvas units */
uint32_t effective_height; /* in canvas units */
- double height_scaling_factor; /* used to zoom the track height without changing it */
double y_position;
int order;
- uint32_t current_height() const { return (uint32_t) floor (height * height_scaling_factor); }
- void set_height_scaling_factor (double);
+ uint32_t current_height() const { return height; }
ArdourCanvas::Group *canvas_display;
Gtk::VBox *control_parent;
Gtk::Table controls_table;
Gtk::EventBox controls_ebox;
Gtk::VBox controls_vbox;
- Gtk::EventBox resizer;
+ Gtk::DrawingArea resizer;
Gtk::HBox resizer_box;
Gtk::HBox name_hbox;
Gtk::Frame name_frame;
double resize_drag_start;
int32_t resize_idle_target;
- int32_t resize_idle_id;
- bool idle_resize();
+ void idle_resize (uint32_t);
void hide_name_label ();
void hide_name_entry ();
void set_parent (TimeAxisView& p);
bool has_state () const;
- virtual void set_state (const XMLNode&);
- virtual XMLNode* get_state_node () { return 0; }
-
/* call this on the parent */
virtual XMLNode* get_child_xml_node (const string & childname) { return 0; }
protected:
+ uint32_t height; /* in canvas units */
string controls_base_unselected_name;
string controls_base_selected_name;