}
height = max (0, height);
-
+
if (value > 0) {
/* Make sure we get a little bit of the marker if there is any gain */
height = max (3, height);
{
return wxSize (INDICATOR_SIZE + 4, INDICATOR_SIZE + 4);
}
-
+
wxGridCellRenderer* Clone () const
{
return new ValueRenderer;
update_cells ();
Changed (_map);
_last_tooltip_column = -1;
-}
+}
void
AudioMappingView::left_click (wxGridEvent& ev)
}
int const d = ev.GetCol() - 1;
-
+
if (_map.get (ev.GetRow(), d) > 0) {
_map.set (ev.GetRow(), d, 0);
} else {
AudioMappingView::edit ()
{
int const d = _menu_column - 1;
-
+
AudioGainDialog* dialog = new AudioGainDialog (this, _menu_row, _menu_column - 1, _map.get (_menu_row, d));
if (dialog->ShowModal () == wxID_OK) {
_map.set (_menu_row, d, dialog->value ());
map_values_changed ();
}
-
+
dialog->Destroy ();
}
_grid->InsertCols (_grid->GetNumberCols(), o - _grid->GetNumberCols());
}
- _grid->SetColLabelValue (0, _("Content"));
+ _grid->SetColLabelValue (0, wxT (""));
for (size_t i = 0; i < names.size(); ++i) {
_grid->SetColLabelValue (i + 1, std_to_wx (names[i]));
void
AudioMappingView::update_cells ()
{
+ vector<string> row_names;
+ for (int i = 0; i < _grid->GetNumberRows (); ++i) {
+ row_names.push_back (wx_to_std (_grid->GetCellValue (i, 0)));
+ }
+
if (_grid->GetNumberRows ()) {
_grid->DeleteRows (0, _grid->GetNumberRows ());
}
_grid->SetCellRenderer (i, j + 1, new ValueRenderer);
}
}
-
+
for (int i = 0; i < _map.input_channels(); ++i) {
+ if (i < int (row_names.size ())) {
+ _grid->SetCellValue (i, 0, std_to_wx (row_names[i]));
+ }
for (int j = 1; j < _grid->GetNumberCols(); ++j) {
_grid->SetCellValue (i, j, std_to_wx (raw_convert<string> (_map.get (i, j - 1))));
}
float const dB = 20 * log10 (gain);
s = wxString::Format (_("Audio will be passed from content channel %d to DCP channel %d with gain %.1fdB."), row + 1, column, dB);
}
-
+
_grid->GetGridWindow()->SetToolTip (s + " " + _("Right click to change gain."));
_last_tooltip_row = row;
_last_tooltip_column = column;