Calling methods of MultiSash children

Could not find any docs for MultiSash :frowning:
How do I call a method of a MultiSash child so that all the instances have that method called?

eg. I have a control called MyCtrl which is a child of MultiSash. The user has created 5 instances of MyCtrl by dragging the bars. How does the app call a function so that all instances get called?

BTW, they are separate instances aren't they and not just multiple views of the same instance ???

Ta,
Brendan Simon.

Brendan Simon wrote:

Could not find any docs for MultiSash :frowning:

There aren't any. IIRC, the module was contributed with a promise of adding docstrings later but that hasn't happened yet. The source is in wx/lib/multisash.py.

How do I call a method of a MultiSash child so that all the instances have that method called?

There isn't a way currently, besides manually iterating over the tree of MultiSplit and MultiLeaf nodes rooted at MultiSash.child. It would be real nice if there was an iterator class or something added that would facilitate traversal like this.

eg. I have a control called MyCtrl which is a child of MultiSash. The user has created 5 instances of MyCtrl by dragging the bars. How does the app call a function so that all instances get called?

BTW, they are separate instances aren't they and not just multiple views of the same instance ???

The child windows are multiple instances, but you could certainly organize your own code such that each instance is getting its data from a shared data model object. Each view can register/deregister itself with the data object, and then when you call methods to update the data object it can iterate over the views telling them to update themselves. (This is similar to the classic Observer pattern.)

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!