Signaling TreeView to update



I'm writing an app using TreeModel / TreeView to show something like a
spreadsheet of real-time stock market data. The data is coming in
asynchronously on a background thread (previously created by ACE).

In my market data callback, I write the data into the TreeModel using the []
operator:

   m_row[m_columns.price] = price;

That works fine. The problem is that the TreeView does not seem to render
the new value until I do something to "wake up" the GUI, like mouse over the
window, etc.

As I understand it, I have one of two problems:

1) Writing into the TreeModel does not trigger the TreeView to refresh
automatically, so the view must be forced via a manual "repaint" method of
some kind that I haven't found yet,

or

2) The GUI event loop is blocked for some reason.

If it's problem 1, I hope someone can point me at the method to force a
repaint.

If the problem is 2: regarding the event loop, in my main() function, I call

    Gtk::Main::run(window);

and I do it after I've launched my other threads. I would (perhaps naively)
assume that my ACE Reactors will do their thing for the background threads,
and the Gtk loop will do its thing on the "main" thread, and they should
just ignore each other (though I realize I'm at risk for collisions unless I
protect the gtkmm code with mutexes).

What am I missing here?






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