Paul Davis wrote:
> On Tue, 2007-09-11 at 17:03 -0400, José Alburquerque wrote:
>
>> Any ideas?  Thanks so much.
>
> What is an "Element" ? Gtkmm can't handle arbitary types as column
> template args. It can handle pointers and all built-in scalar types, as
> well as std::string and Glib::ustring, plus a few others.
>
> --p
>
>
>
>
I see.  An Element is a base class I use for the rest of the "objects" 
in the project.  The objects override the "getName()" method.  I'm 
trying to "reflect" a certain structure where nodes are arranged in a 
parent/children hierarchy.  For more detail, see the first thread I 
posted on this:

http://mail.gnome.org/archives/gtkmm-list/2007-September/msg00055.html

What I did is to create a TreeView (in the MainWindow class constructor) 
that has a TreeView::Column containing the "Elements" and 
"set_cell_data_func()" for the column like so:

----------------------------MainWindow.h-.------------------------------------
class MainWindow : public Window {
public:
    MainWindow();
    void setProject(DVDProject& p);
private:
    ....
    TreeView outlineTreeView;
    void renderElement(CellRenderer* cell,
                                  const TreeModel::iterator& iter);
    ...
};
-----------------------------------------.------------------------------------


---------------------------MainWindow.cxx-------------------------------------
MainWindow::MainWindow() {
    ...
    TreeView::Column* outlineColumn = manage(new TreeView::Column("Outline",
                               DVDProject::columns.element));
   
    CellRenderer* renderer = outlineColumn->get_first_cell_renderer();
    outlineColumn->set_cell_data_func(*renderer,
                          sigc::mem_fun(*this, &MainWindow::renderElement));
   
    outlineTreeView.append_column(*outlineColumn);
    ...
    show_all_children();
}

void MainWindow::renderElement(CellRenderer* renderer,
const TreeModel::iterator& iter) {
    CellRendererText* textRenderer = 
dynamic_cast<CellRendererText*>(renderer);
    const Element& e = (*iter)[DVDProject::columns.element];
    textRenderer->property_text() = e.getName();
}
-----------------------------------------.------------------------------------

-Jose

_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to