On Wed, 2011-08-31 at 17:49 +0200, Adrian Zgorzalek wrote: > But what have custom signals to do with making an object viewable via > TreeView? > > I have to specify TreeModelColumnRecord, should I put there a column > which stores Foo? > Then how to make certain fields visible in a View?
You can create your own Gtk::TreeViewColumn for the object which would be appended to the TreeView, add a Gtk::CellRendererText to the column and set the renderer on the column for the object using Gtk::TreeViewColumn::set_renderer(). Also set a custom rendering callback on the column for the object using Gtk::TreeViewColumn::set_cell_data_func(). The slot can set the Gtk::CellRendererText::property_text() property so that the appropriate text is displayed. Hope that helps. > How those signals can help with exposing data? > > 2011/8/31 lecas malecas <[email protected]> > I'm not sure if I understand what you're saying, but have you > considered using custom signals? > You could emit a signal in the Foo class which would send the > data you > want (but there could be a better way). > > On Tue, Aug 30, 2011 at 4:27 PM, Adrian Zgorzalek > <[email protected]> wrote: > > Hello, > > > > I got a bunch of questions connected with TreeView, making > data viewable > > via TreeView and some design issues. > > > > Firstly, I'll state a problem. I would like to have a > collection of Foo > > objects. > > They have their methods, store some data. I want the > collection to supply > > me, besides collection interface, some methods to call on > stored data. > > I also want to expose objects stored in the collection to > user, allow they > > to modify them, add, delete and reorder. > > > > Obvious idea is to use TreeView, but I met some serious > problems. > > > > First, how to make Foo objects viewable? Deriving from > > Gtk::TreeModelColumnRecord > > leads me to nowhere, since then I have no access to data > stored inside Foo, > > Gtk::TreeModelColumn<T> seems to be just a meta-data for a > model to create > > View and > > Store. More clearly, I want to e.g. have object representing > triple on plain > > (int, int, int), > > and got some methods like symmetry along a given line etc. > Implemeting it > > inside > > TreeModelColumnRecord is impossible - no access to stored > data. Making a > > class Foo > > that got 3 private ints leads me to no idea how to make this > object viewable > > through > > view. > > > > Ideally, I look for something like as follows: > > I have a Store that has Foo objects. Then to a View I add > columns like (x), > > (y), (z), > > corresponding to example above, and specify accessors > methods inside Foo > > object, so that > > View can correctly save and show data to/from a Foo. > > > > One more problem connected with deriving from > Gtk::TreeModelColumnRecord is > > that in my > > opinion it brakes OOP rule: its not Foo business to take > care of being > > viewable, > > it exposes methods to modify itself and get stored data, but > how it is done > > is just a matter of somebody > > writing class responsible for showing data to a user. Also > storing > > everything in one place: > > data and display issues, is making code messy. > > > > I suppose that deriving my collection from ListStore or > TreeStore will solve > > a problem > > of adding some methods to call on stored data. > > > > So far, after investigating materials I've found and after > some talks on IRC > > channel > > the only idea I have is to keep data in two places and try > to sync them, but > > it seems > > to be a pain in the neck, it also makes my memory usage > twice as more... so > > its not > > a solution at all. > > > > I would appreciate any help with this problem, I am not > looking for easy > > solutions, > > rather elegant. > > If elegant solution does not exist, then please point me the > least awful way > > to do what I want. > > > > Looking forward to hearing from you, > > > > Regards, > > Adrian > > > > > > > _______________________________________________ > > gtkmm-list mailing list > > [email protected] > > http://mail.gnome.org/mailman/listinfo/gtkmm-list > > > > > > _______________________________________________ > gtkmm-list mailing list > [email protected] > http://mail.gnome.org/mailman/listinfo/gtkmm-list -- José _______________________________________________ gtkmm-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtkmm-list
