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");
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;
#include "ardour_ui.h"
#include "gui_thread.h"
#include "actions.h"
+#include "utils.h"
#include "i18n.h"
{
string str;
TreeModel::Row row;
+ Gdk::Color c;
if (!show_automatic_regions_in_region_list && region->automatic()) {
return;
if (region->whole_file()) {
str = ".../";
str += PBD::basename_nosuffix (region->source().name());
+
} else {
str = region->name();
}
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;
}
context->drag_finish (true, false, time);
}
}
+
#include <gtkmm2ext/doi.h>
#include <gtkmm2ext/gtk_ui.h>
+#include <gtkmm2ext/utils.h>
#include "utils.h"
#include "ardour_message.h"
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"),
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));
}
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
{
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);
+}
bool canvas_item_visible (ArdourCanvas::Item* item);
+void set_color (Gdk::Color&, gint, gint, gint);
+
#endif /* __ardour_gtk_utils_h__ */
#include <vector>
#include <string>
+#include <gtkmm/treeview.h>
#include <gdkmm/window.h> /* for WMDecoration */
namespace Gtk {
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__ */
*/
#include <gtk/gtkpaned.h>
+#include <gtk/gtk.h>
+
#include <gtkmm2ext/utils.h>
#include <gtkmm/widget.h>
#include <gtkmm/window.h>
{
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) );
+}