summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/editor.cc17
-rw-r--r--gtk2_ardour/editor.h2
-rw-r--r--gtk2_ardour/editor_region_list.cc7
-rw-r--r--gtk2_ardour/io_selector.cc8
-rw-r--r--gtk2_ardour/utils.cc8
-rw-r--r--gtk2_ardour/utils.h2
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/utils.h2
-rw-r--r--libs/gtkmm2ext/utils.cc7
8 files changed, 44 insertions, 9 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index d5b917f75c..5b8d594e8b 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -595,12 +595,19 @@ Editor::Editor (AudioEngine& eng)
region_list_display.set_name ("RegionListDisplay");
region_list_model = TreeStore::create (region_list_columns);
- region_list_sort_model = TreeModelSort::create (region_list_model);
- region_list_sort_model->set_sort_func (0, mem_fun (*this, &Editor::region_list_sorter));
+
+ region_list_model->set_sort_func (0, mem_fun (*this, &Editor::region_list_sorter));
+
+ region_list_display.set_model (region_list_model);
+ CellRendererText* renderer = Gtk::manage( new Gtk::CellRendererText() );
+ region_list_display.append_column (_("Regions"), *renderer);
- region_list_display.set_model (region_list_sort_model);
- region_list_display.append_column (_("Regions"), region_list_columns.name);
- region_list_display.set_headers_visible (false);
+ TreeViewColumn* tv_col = region_list_display.get_column(0);
+ tv_col->add_attribute(renderer->property_text(), region_list_columns.name);
+ tv_col->add_attribute(renderer->property_foreground_gdk(), region_list_columns.color_);
+
+ region_list_display.set_reorderable (true);
+
region_list_display.get_selection()->set_mode (SELECTION_SINGLE);
region_list_display.add_object_drag (region_list_columns.region.index(), "regions");
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 7443479ac1..c84cdbdd9a 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -683,9 +683,11 @@ class Editor : public PublicEditor
RegionListDisplayModelColumns() {
add (name);
add (region);
+ add (color_);
}
Gtk::TreeModelColumn<Glib::ustring> name;
Gtk::TreeModelColumn<ARDOUR::Region*> region;
+ Gtk::TreeModelColumn<Gdk::Color> color_;
};
RegionListDisplayModelColumns region_list_columns;
diff --git a/gtk2_ardour/editor_region_list.cc b/gtk2_ardour/editor_region_list.cc
index d610525e07..29eac46632 100644
--- a/gtk2_ardour/editor_region_list.cc
+++ b/gtk2_ardour/editor_region_list.cc
@@ -35,6 +35,7 @@
#include "ardour_ui.h"
#include "gui_thread.h"
#include "actions.h"
+#include "utils.h"
#include "i18n.h"
@@ -209,6 +210,7 @@ Editor::add_audio_region_to_region_display (AudioRegion *region)
{
string str;
TreeModel::Row row;
+ Gdk::Color c;
if (!show_automatic_regions_in_region_list && region->automatic()) {
return;
@@ -241,6 +243,7 @@ Editor::add_audio_region_to_region_display (AudioRegion *region)
if (region->whole_file()) {
str = ".../";
str += PBD::basename_nosuffix (region->source().name());
+
} else {
str = region->name();
}
@@ -270,9 +273,10 @@ Editor::add_audio_region_to_region_display (AudioRegion *region)
AudioRegion* r = dynamic_cast<AudioRegion*>(rr);
if (r && r->whole_file()) {
-
if (region->source_equivalent (*r)) {
row = *(region_list_model->append ((*i).children()));
+ set_color(c, 65535, 0, 0);
+ row[region_list_columns.color_] = c;
found_parent = true;
break;
}
@@ -700,3 +704,4 @@ Editor::region_list_display_drag_data_received (const RefPtr<Gdk::DragContext>&
context->drag_finish (true, false, time);
}
}
+
diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc
index 9080f8e5dc..5354825c06 100644
--- a/gtk2_ardour/io_selector.cc
+++ b/gtk2_ardour/io_selector.cc
@@ -33,6 +33,7 @@
#include <gtkmm2ext/doi.h>
#include <gtkmm2ext/gtk_ui.h>
+#include <gtkmm2ext/utils.h>
#include "utils.h"
#include "ardour_message.h"
@@ -47,6 +48,7 @@ using namespace Gtk;
using namespace Glib;
using namespace sigc;
using namespace ARDOUR;
+using namespace Gtkmm2ext;
IOSelectorWindow::IOSelectorWindow (Session& sess, IO& ior, bool input, bool can_cancel)
: ArdourDialog ("i/o selector"),
@@ -472,10 +474,10 @@ IOSelector::display_ports ()
TreeViewColumn* col = tview->get_column (0);
col->set_clickable (true);
- //col->set_widget(0);
+ //set_treeview_header_as_default_label(col);
/* handle button events on the column header and within the treeview itself */
- //col->get_widget()->signal_button_release_event().connect (bind (mem_fun(*this, &IOSelector::port_column_button_release), tview));
+ //col->signal_button_release_event().connect (bind (mem_fun(*this, &IOSelector::port_column_button_release), tview));
tview->signal_button_release_event().connect (bind (mem_fun(*this, &IOSelector::connection_button_release), tview));
}
@@ -664,7 +666,7 @@ IOSelector::connection_button_release (GdkEventButton *ev, TreeView *treeview)
return true;
}
-int
+gint
IOSelector::port_column_button_release (GdkEventButton* event, TreeView* treeview)
{
/* this handles button release on the button at the top of a single-column
diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc
index 448f1b57fe..012d184fef 100644
--- a/gtk2_ardour/utils.cc
+++ b/gtk2_ardour/utils.cc
@@ -524,3 +524,11 @@ canvas_item_visible (ArdourCanvas::Item* item)
{
return (item->gobj()->object.flags & GNOME_CANVAS_ITEM_VISIBLE) ? true : false;
}
+
+void
+set_color (Gdk::Color& c, gint r, gint g, gint b)
+{
+ c.set_red(65535);
+ c.set_green(0);
+ c.set_blue(0);
+}
diff --git a/gtk2_ardour/utils.h b/gtk2_ardour/utils.h
index 1e2d7ce603..2180e80fc4 100644
--- a/gtk2_ardour/utils.h
+++ b/gtk2_ardour/utils.h
@@ -75,4 +75,6 @@ void decorate (Gtk::Window& w, Gdk::WMDecoration d);
bool canvas_item_visible (ArdourCanvas::Item* item);
+void set_color (Gdk::Color&, gint, gint, gint);
+
#endif /* __ardour_gtk_utils_h__ */
diff --git a/libs/gtkmm2ext/gtkmm2ext/utils.h b/libs/gtkmm2ext/gtkmm2ext/utils.h
index 4fba212c03..639d2203dc 100644
--- a/libs/gtkmm2ext/gtkmm2ext/utils.h
+++ b/libs/gtkmm2ext/gtkmm2ext/utils.h
@@ -24,6 +24,7 @@
#include <vector>
#include <string>
+#include <gtkmm/treeview.h>
#include <gdkmm/window.h> /* for WMDecoration */
namespace Gtk {
@@ -49,6 +50,7 @@ namespace Gtkmm2ext {
GdkWindow* get_paned_handle (Gtk::Paned& paned);
void set_decoration (Gtk::Window* win, Gdk::WMDecoration decor);
+ void set_treeview_header_as_default_label(Gtk::TreeViewColumn *c);
};
#endif /* __gtkmm2ext_utils_h__ */
diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc
index d52ab42ee7..63cbde1ac2 100644
--- a/libs/gtkmm2ext/utils.cc
+++ b/libs/gtkmm2ext/utils.cc
@@ -19,6 +19,8 @@
*/
#include <gtk/gtkpaned.h>
+#include <gtk/gtk.h>
+
#include <gtkmm2ext/utils.h>
#include <gtkmm/widget.h>
#include <gtkmm/window.h>
@@ -74,3 +76,8 @@ Gtkmm2ext::set_decoration (Gtk::Window* win, Gdk::WMDecoration decor)
{
win->get_window()->set_decorations (decor);
}
+
+void Gtkmm2ext::set_treeview_header_as_default_label(Gtk::TreeViewColumn* c)
+{
+ gtk_tree_view_column_set_widget( c->gobj(), GTK_WIDGET(0) );
+}