Differences
This shows you the differences between two versions of the page.
|
|
keeping_gui_elements_updated [2008/05/01 11:11] cannam created |
— (current) |
[[http://sourceforge.net/mailarchive/message.php?msg_name=200706112350.09420.glaurent%40telegraph-road.org|Mail archive link]] | |
| |
<code> | |
| |
Keeping GUI elements updated, e.g. notifying the NotationView if a | |
segment has changed, is done through the RefreshStatus class. This | |
class holds a set of 'observer IDs'. Every Segment carries a | |
RefreshStatus, and every edit part displaying one has an observer ID. | |
| |
| |
Whenever a change is made in a segment, its RefreshStatus is set to | |
'has changed' for all observer IDs. Then each observer, whenever it's | |
refreshed, checks its status ID to see if the segment it displays has | |
changed since last update. This is done in EditViewBase::paintEvent(). | |
| |
| |
It certainly could have been done better, but it works :-). | |
| |
</code> | |
| |