Re: Changing TreeView Cell Renderers



Murray Cumming wrote:
On Fri, 2005-03-18 at 15:53 -0600, Bob Caryl wrote:
Hello all,

I'm trying to use a treeview and I would like to have a boolean field in the data to be rendered as a checkbox and be editable.

The code I'm using looks like this:

class ModelColumns : public Gtk::TreeModel::ColumnRecord { public:
       ModelColumns()
       {     add(m_disp);
           add(m_check);
           add(m_tag);
           add(m_desg);
           add(m_exec);
       }
Gtk::TreeModelColumn<Glib::ustring> m_disp; // column for menu display text Gtk::TreeModelColumn<gboolean> m_check;

C++ has bool. gboolean is actually an int, used in C because it does not
have bool.

Just use append_column() with a bool column and you will get a checkbox
by default.
// column for check button
Gtk::TreeModelColumn<Glib::ustring> m_tag; // column for menu xml tag Gtk::TreeModelColumn<Glib::ustring> m_desg; // column for menu designator text Gtk::TreeModelColumn<Glib::ustring> m_exec; // column for menu action text.
   };

ModelColumns m_columns; // columns for Gtk::ListStore object Glib::RefPtr<Gtk::TreeStore> list; // our listore object for the treeview


   list = Gtk::TreeStore::create(m_columns);
tree->append_column_editable(" SEL ", m_columns.m_check); tree->append_column(" Name ", m_columns.m_disp);
   Gtk::CellRendererToggle *toggle = new Gtk::CellRendererToggle;
   Gtk::TreeView::Column *pColumn = tree->get_column(0);
   pColumn->clear();
   pColumn->pack_start(*toggle);


The foregoing code does indeed place a checkbox type renderer in the column cell, but it does not appropriately display the data, nor is it editable. Oh yeah, that code does not appear inline like that in the app.. just wanted to show all the declarations and definitions.

Any ideas on what I'm omitting or doing wrong here?

Thanks,
Bob Caryl

That did the trick Murray!  You da man!

Thanks!

Bob Caryl



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]