mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 15:25:01 +01:00
Small rehaul of track and automation track headers. This should now
initialize cleanly and be more easily controlled. show_all() calls from upper levels will not mess the track headers any more. git-svn-id: svn://localhost/ardour2/trunk@749 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
58b71b15d8
commit
b74c572900
5 changed files with 148 additions and 115 deletions
|
|
@ -219,6 +219,14 @@ style "mute_button" = "small_button"
|
|||
fg[PRELIGHT] = { 0, 0, 0 }
|
||||
}
|
||||
|
||||
|
||||
style "multiline_combo" = "small_button"
|
||||
{
|
||||
font_name = "sans 8"
|
||||
xthickness = 0
|
||||
ythickness = 0
|
||||
}
|
||||
|
||||
style "mixer_mute_button" = "mute_button"
|
||||
{
|
||||
font_name = "sans 7"
|
||||
|
|
@ -936,6 +944,7 @@ widget "*TrackRecordEnableButton" style "track_rec_enable_button"
|
|||
widget "*TrackRecordEnableButton*" style "track_rec_enable_button"
|
||||
widget "*TrackMuteButton*" style "mute_button"
|
||||
widget "*TrackLoopButton*" style "track_loop_button"
|
||||
widget "*PanAutomationLineSelector*" style "multiline_combo"
|
||||
widget "*EditorTimeButton*" style "time_button"
|
||||
widget "*EditorMixerButton*" style "default_buttons_menus"
|
||||
widget "*SoloButton*" style "solo_button"
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
|
|||
auto_write_item = 0;
|
||||
auto_play_item = 0;
|
||||
ignore_state_request = false;
|
||||
first_call_to_set_height = true;
|
||||
|
||||
// base_rect = gnome_canvas_item_new (GNOME_CANVAS_GROUP(canvas_display),
|
||||
// gnome_canvas_simplerect_get_type(),
|
||||
|
|
@ -72,6 +73,8 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
|
|||
clear_button.set_name ("TrackVisualButton");
|
||||
hide_button.set_name ("TrackRemoveButton");
|
||||
|
||||
controls_table.set_no_show_all();
|
||||
|
||||
ARDOUR_UI::instance()->tooltips().set_tip(height_button, _("track height"));
|
||||
ARDOUR_UI::instance()->tooltips().set_tip(auto_button, _("automation state"));
|
||||
ARDOUR_UI::instance()->tooltips().set_tip(clear_button, _("clear track"));
|
||||
|
|
@ -115,6 +118,7 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
|
|||
plugname = new Label (pname);
|
||||
plugname->set_name (X_("TrackPlugName"));
|
||||
plugname->set_alignment (1.0, 0.5);
|
||||
plugname->show();
|
||||
name_label.set_name (X_("TrackParameterName"));
|
||||
controls_table.remove (name_hbox);
|
||||
controls_table.attach (*plugname, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
|
|
@ -138,8 +142,8 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
|
|||
controls_table.attach (hide_button, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
controls_table.attach (height_button, 0, 1, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
|
||||
controls_table.attach (auto_button, 6, 8, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
controls_table.attach (clear_button, 6, 8, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
controls_table.attach (auto_button, 5, 8, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
controls_table.attach (clear_button, 5, 8, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
|
||||
controls_table.show_all ();
|
||||
|
||||
|
|
@ -281,11 +285,11 @@ AutomationTimeAxisView::set_height (TrackHeight ht)
|
|||
uint32_t h = height_to_pixels (ht);
|
||||
bool changed = (height != (uint32_t) h);
|
||||
|
||||
bool changed_between_small_and_normal = ( (ht == Small || ht == Smaller) ^ (height_style == Small || height_style == Smaller) );
|
||||
|
||||
TimeAxisView* state_parent = get_parent_with_state ();
|
||||
XMLNode* xml_node = state_parent->get_child_xml_node (_state_name);
|
||||
|
||||
//controls_table.show_all ();
|
||||
|
||||
TimeAxisView::set_height (ht);
|
||||
base_rect->property_y2() = h;
|
||||
|
||||
|
|
@ -297,117 +301,88 @@ AutomationTimeAxisView::set_height (TrackHeight ht)
|
|||
(*i)->set_height ();
|
||||
}
|
||||
|
||||
|
||||
switch (ht) {
|
||||
case Largest:
|
||||
xml_node->add_property ("track_height", "largest");
|
||||
controls_table.remove (name_hbox);
|
||||
if (plugname) {
|
||||
if (plugname_packed) {
|
||||
controls_table.remove (*plugname);
|
||||
plugname_packed = false;
|
||||
}
|
||||
controls_table.attach (*plugname, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
plugname_packed = true;
|
||||
controls_table.attach (name_hbox, 1, 5, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
} else {
|
||||
controls_table.attach (name_hbox, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
}
|
||||
controls_table.show_all ();
|
||||
|
||||
hide_name_entry ();
|
||||
show_name_label ();
|
||||
break;
|
||||
|
||||
case Large:
|
||||
xml_node->add_property ("track_height", "large");
|
||||
controls_table.remove (name_hbox);
|
||||
if (plugname) {
|
||||
if (plugname_packed) {
|
||||
controls_table.remove (*plugname);
|
||||
plugname_packed = false;
|
||||
}
|
||||
controls_table.attach (*plugname, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
plugname_packed = true;
|
||||
} else {
|
||||
controls_table.attach (name_hbox, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
}
|
||||
controls_table.show_all ();
|
||||
hide_name_entry ();
|
||||
show_name_label ();
|
||||
break;
|
||||
|
||||
case Larger:
|
||||
xml_node->add_property ("track_height", "larger");
|
||||
controls_table.remove (name_hbox);
|
||||
if (plugname) {
|
||||
if (plugname_packed) {
|
||||
controls_table.remove (*plugname);
|
||||
plugname_packed = false;
|
||||
}
|
||||
controls_table.attach (*plugname, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
plugname_packed = true;
|
||||
} else {
|
||||
controls_table.attach (name_hbox, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
}
|
||||
controls_table.show_all ();
|
||||
hide_name_entry ();
|
||||
show_name_label ();
|
||||
break;
|
||||
|
||||
case Normal:
|
||||
xml_node->add_property ("track_height", "normal");
|
||||
controls_table.remove (name_hbox);
|
||||
if (plugname) {
|
||||
if (plugname_packed) {
|
||||
controls_table.remove (*plugname);
|
||||
plugname_packed = false;
|
||||
}
|
||||
controls_table.attach (*plugname, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
plugname_packed = true;
|
||||
controls_table.attach (name_hbox, 1, 5, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
} else {
|
||||
controls_table.attach (name_hbox, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
}
|
||||
controls_table.show_all ();
|
||||
hide_name_entry ();
|
||||
show_name_label ();
|
||||
break;
|
||||
|
||||
case Smaller:
|
||||
xml_node->add_property ("track_height", "smaller");
|
||||
controls_table.remove (name_hbox);
|
||||
if (plugname) {
|
||||
if (plugname_packed) {
|
||||
controls_table.remove (*plugname);
|
||||
plugname_packed = false;
|
||||
}
|
||||
}
|
||||
controls_table.attach (name_hbox, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
controls_table.hide_all ();
|
||||
hide_name_entry ();
|
||||
show_name_label ();
|
||||
name_hbox.show_all ();
|
||||
controls_table.show ();
|
||||
break;
|
||||
|
||||
case Small:
|
||||
xml_node->add_property ("track_height", "small");
|
||||
controls_table.remove (name_hbox);
|
||||
if (plugname) {
|
||||
if (plugname_packed) {
|
||||
controls_table.remove (*plugname);
|
||||
plugname_packed = false;
|
||||
}
|
||||
}
|
||||
controls_table.attach (name_hbox, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
controls_table.hide_all ();
|
||||
hide_name_entry ();
|
||||
show_name_label ();
|
||||
name_hbox.show_all ();
|
||||
controls_table.show ();
|
||||
break;
|
||||
}
|
||||
|
||||
if (changed_between_small_and_normal || first_call_to_set_height) {
|
||||
first_call_to_set_height = false;
|
||||
switch (ht) {
|
||||
case Largest:
|
||||
case Large:
|
||||
case Larger:
|
||||
case Normal:
|
||||
|
||||
controls_table.remove (name_hbox);
|
||||
|
||||
if (plugname) {
|
||||
if (plugname_packed) {
|
||||
controls_table.remove (*plugname);
|
||||
plugname_packed = false;
|
||||
}
|
||||
controls_table.attach (*plugname, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
plugname_packed = true;
|
||||
controls_table.attach (name_hbox, 1, 5, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
} else {
|
||||
controls_table.attach (name_hbox, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
}
|
||||
hide_name_entry ();
|
||||
show_name_label ();
|
||||
name_hbox.show_all ();
|
||||
|
||||
auto_button.show();
|
||||
height_button.show();
|
||||
clear_button.show();
|
||||
hide_button.show_all();
|
||||
break;
|
||||
|
||||
case Smaller:
|
||||
case Small:
|
||||
|
||||
controls_table.remove (name_hbox);
|
||||
if (plugname) {
|
||||
if (plugname_packed) {
|
||||
controls_table.remove (*plugname);
|
||||
plugname_packed = false;
|
||||
}
|
||||
}
|
||||
controls_table.attach (name_hbox, 1, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
controls_table.hide_all ();
|
||||
hide_name_entry ();
|
||||
show_name_label ();
|
||||
name_hbox.show_all ();
|
||||
|
||||
auto_button.hide();
|
||||
height_button.hide();
|
||||
clear_button.hide();
|
||||
hide_button.hide();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (changed) {
|
||||
/* only emit the signal if the height really changed */
|
||||
route->gui_changed ("track_height", (void *) 0); /* EMIT_SIGNAL */
|
||||
|
|
|
|||
|
|
@ -84,6 +84,8 @@ class AutomationTimeAxisView : public TimeAxisView {
|
|||
string _state_name;
|
||||
bool in_destructor;
|
||||
|
||||
bool first_call_to_set_height;
|
||||
|
||||
Gtk::Button hide_button;
|
||||
Gtk::Button height_button;
|
||||
Gtk::Button clear_button;
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
#include "pan_automation_time_axis.h"
|
||||
#include "automation_line.h"
|
||||
#include "canvas_impl.h"
|
||||
#include "route_ui.h"
|
||||
|
||||
#include "i18n.h"
|
||||
|
||||
|
|
@ -42,7 +43,7 @@ PanAutomationTimeAxisView::PanAutomationTimeAxisView (Session& s, boost::shared_
|
|||
{
|
||||
multiline_selector.set_name ("PanAutomationLineSelector");
|
||||
|
||||
controls_table.attach (multiline_selector, 1, 5, 1, 2, Gtk::FILL | Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
|
||||
controls_table.attach (multiline_selector, 1, 5, 1, 2, Gtk::EXPAND, Gtk::EXPAND);
|
||||
}
|
||||
|
||||
PanAutomationTimeAxisView::~PanAutomationTimeAxisView ()
|
||||
|
|
@ -105,15 +106,18 @@ void
|
|||
PanAutomationTimeAxisView::add_line (AutomationLine& line)
|
||||
{
|
||||
char buf[32];
|
||||
snprintf(buf,32,"Line %ld",lines.size()+1);
|
||||
snprintf(buf,32,"Line %u",lines.size()+1);
|
||||
multiline_selector.append_text(buf);
|
||||
|
||||
if (lines.empty()) {
|
||||
multiline_selector.set_active(0);
|
||||
}
|
||||
|
||||
if (lines.size() + 1 > 1) {
|
||||
if (lines.size() + 1 > 1 && (height_style != Small && height_style != Smaller)) {
|
||||
multiline_selector.show();
|
||||
} else {
|
||||
multiline_selector.hide();
|
||||
|
||||
}
|
||||
|
||||
AutomationTimeAxisView::add_line(line);
|
||||
|
|
@ -129,9 +133,10 @@ PanAutomationTimeAxisView::set_height (TimeAxisView::TrackHeight th)
|
|||
case Large:
|
||||
case Larger:
|
||||
case Normal:
|
||||
multiline_selector.show();
|
||||
break;
|
||||
|
||||
if (lines.size() > 1) {
|
||||
multiline_selector.show();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
multiline_selector.hide();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -575,46 +575,88 @@ RouteTimeAxisView::set_height (TrackHeight h)
|
|||
switch (height_style) {
|
||||
case Largest:
|
||||
xml_node->add_property ("track_height", "largest");
|
||||
show_name_entry ();
|
||||
hide_name_label ();
|
||||
controls_table.show_all();
|
||||
break;
|
||||
|
||||
case Large:
|
||||
xml_node->add_property ("track_height", "large");
|
||||
show_name_entry ();
|
||||
hide_name_label ();
|
||||
controls_table.show_all();
|
||||
break;
|
||||
|
||||
case Larger:
|
||||
xml_node->add_property ("track_height", "larger");
|
||||
show_name_entry ();
|
||||
hide_name_label ();
|
||||
controls_table.show_all();
|
||||
break;
|
||||
|
||||
case Normal:
|
||||
xml_node->add_property ("track_height", "normal");
|
||||
show_name_entry ();
|
||||
hide_name_label ();
|
||||
controls_table.show_all();
|
||||
break;
|
||||
|
||||
case Smaller:
|
||||
xml_node->add_property ("track_height", "smaller");
|
||||
controls_table.show_all ();
|
||||
break;
|
||||
|
||||
case Small:
|
||||
xml_node->add_property ("track_height", "small");
|
||||
break;
|
||||
}
|
||||
|
||||
switch (height_style) {
|
||||
case Largest:
|
||||
case Large:
|
||||
case Larger:
|
||||
case Normal:
|
||||
show_name_entry ();
|
||||
hide_name_label ();
|
||||
|
||||
mute_button->show_all();
|
||||
solo_button->show_all();
|
||||
if (rec_enable_button)
|
||||
rec_enable_button->show_all();
|
||||
|
||||
edit_group_button.show_all();
|
||||
hide_button.show_all();
|
||||
visual_button.show_all();
|
||||
size_button.show_all();
|
||||
automation_button.show_all();
|
||||
|
||||
if (is_track() && track()->mode() == ARDOUR::Normal) {
|
||||
playlist_button.show_all();
|
||||
}
|
||||
break;
|
||||
|
||||
case Smaller:
|
||||
show_name_entry ();
|
||||
hide_name_label ();
|
||||
|
||||
mute_button->show_all();
|
||||
solo_button->show_all();
|
||||
if (rec_enable_button)
|
||||
rec_enable_button->show_all();
|
||||
|
||||
edit_group_button.hide ();
|
||||
hide_button.hide ();
|
||||
visual_button.hide ();
|
||||
size_button.hide ();
|
||||
automation_button.hide ();
|
||||
|
||||
if (is_track() && track()->mode() == ARDOUR::Normal) {
|
||||
playlist_button.hide ();
|
||||
}
|
||||
break;
|
||||
|
||||
case Small:
|
||||
hide_name_entry ();
|
||||
show_name_label ();
|
||||
|
||||
mute_button->hide();
|
||||
solo_button->hide();
|
||||
if (rec_enable_button)
|
||||
rec_enable_button->hide();
|
||||
|
||||
edit_group_button.hide ();
|
||||
hide_button.hide ();
|
||||
visual_button.hide ();
|
||||
size_button.hide ();
|
||||
automation_button.hide ();
|
||||
playlist_button.hide ();
|
||||
break;
|
||||
case Small:
|
||||
xml_node->add_property ("track_height", "small");
|
||||
controls_table.hide_all ();
|
||||
controls_table.show ();
|
||||
hide_name_entry ();
|
||||
show_name_label ();
|
||||
name_label.set_text (_route->name());
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue