List/Tree Widget
From Adobe Open Source Wiki
(Difference between revisions)
| Line 13: | Line 13: | ||
[http://developer.apple.com/documentation/Carbon/Conceptual/display_databrowser/databrowser_intro/chapter_1_section_1.html| Carbon Tree Control API Documentation (Data Browser)] | [http://developer.apple.com/documentation/Carbon/Conceptual/display_databrowser/databrowser_intro/chapter_1_section_1.html| Carbon Tree Control API Documentation (Data Browser)] | ||
| + | |||
| + | = API = | ||
| + | |||
| + | ''This API set will be updated piecemeal as I am able to further the implementation'' | ||
== Typedefs == | == Typedefs == | ||
| Line 26: | Line 30: | ||
typedef boost::function<void (iterator before, const sequence_set_type&)> monitor_splice_callback_t; | typedef boost::function<void (iterator before, const sequence_set_type&)> monitor_splice_callback_t; | ||
| − | == Model | + | == Model == |
void splice(iterator before, const sequence_set_type& value); | void splice(iterator before, const sequence_set_type& value); | ||
void monitor_splice(const monitor_splice_callback_t& how); | void monitor_splice(const monitor_splice_callback_t& how); | ||
| − | == View | + | == View == |
void splice(iterator before, const sequence_set_type& value); | void splice(iterator before, const sequence_set_type& value); | ||
| − | == Controller | + | == Controller == |
void monitor_splice(const monitor_splice_callback_t& how); | void monitor_splice(const monitor_splice_callback_t& how); | ||
Revision as of 18:30, 10 January 2007
(For the time being the focus will be on lists, not heirarchical trees.)
The tricky part of a list controller/view is that you have a controller/view on a sequence. You need to figure out:
- How to communicate requests for changes to the sequence
- What those requests are
- How to communicate a change in the visible portion of the sequence to the view
We assume the sequences in a list are disjoint.
Contents |
Related Docs
Win32 Tree Control API Documentation (Tree View)
Carbon Tree Control API Documentation (Data Browser)
API
This API set will be updated piecemeal as I am able to further the implementation
Typedefs
Assume for the time being that the model_type is simple:
typedef std::string value_type; typedef std::list<value_type> model_type; typedef model_type::iterator iterator; typedef std::pair<iterator, iterator> sequence_type; typedef std::vector<sequence_type> sequence_set_type; typedef boost::function<void (iterator before, const sequence_set_type&)> monitor_splice_callback_t;
Model
void splice(iterator before, const sequence_set_type& value); void monitor_splice(const monitor_splice_callback_t& how);
View
void splice(iterator before, const sequence_set_type& value);
Controller
void monitor_splice(const monitor_splice_callback_t& how);