add ability to specify row colors for region treeview
git-svn-id: svn://localhost/trunk/ardour2@220 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
c1b2177d27
commit
8073c4da5e
@ -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");
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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__ */
|
||||
|
@ -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__ */
|
||||
|
@ -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) );
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user