mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
Added docstring describing Viewer interface.
set_colordb(): Call Viewers' colordb_changed() method if they have them. Notifies them of changes to the color name database.
This commit is contained in:
parent
b61a28e240
commit
2095b2fe14
1 changed files with 33 additions and 0 deletions
|
|
@ -10,6 +10,35 @@ conform to the following interface:
|
||||||
should call update_views() on the Switchboard object. Not that the
|
should call update_views() on the Switchboard object. Not that the
|
||||||
Viewer typically does *not* update itself before calling update_views(),
|
Viewer typically does *not* update itself before calling update_views(),
|
||||||
since this would cause it to get updated twice.
|
since this would cause it to get updated twice.
|
||||||
|
|
||||||
|
Optionally, Viewers can also implement:
|
||||||
|
|
||||||
|
- save_options() which takes an optiondb (a dictionary). Store into this
|
||||||
|
dictionary any values the Viewer wants to save in the persistent
|
||||||
|
~/.pynche file. This dictionary is saved using marshal. The namespace
|
||||||
|
for the keys is ad-hoc; make sure you don't clobber some other Viewer's
|
||||||
|
keys!
|
||||||
|
|
||||||
|
- withdraw() which takes no arguments. This is called when Pynche is
|
||||||
|
unmapped. All Viewers should implement this.
|
||||||
|
|
||||||
|
- colordb_changed() which takes a single argument, an instance of
|
||||||
|
ColorDB. This is called whenever the color name database is changed and
|
||||||
|
gives a chance for the Viewers to do something on those events. See
|
||||||
|
ListViewer for details.
|
||||||
|
|
||||||
|
External Viewers are found dynamically. Viewer modules should have names such
|
||||||
|
as FooViewer.py. If such a named module has a module global variable called
|
||||||
|
ADDTOVIEW and this variable is true, the Viewer will be added dynamically to
|
||||||
|
the `View' menu. ADDTOVIEW contains a string which is used as the menu item
|
||||||
|
to display the Viewer (one kludge: if the string contains a `%', this is used
|
||||||
|
to indicate that the next character will get an underline in the menu,
|
||||||
|
otherwise the first character is underlined).
|
||||||
|
|
||||||
|
FooViewer.py should contain a class called FooViewer, and its constructor
|
||||||
|
should take two arguments, an instance of Switchboard, and optionally a Tk
|
||||||
|
master window.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
@ -65,6 +94,10 @@ class Switchboard:
|
||||||
|
|
||||||
def set_colordb(self, colordb):
|
def set_colordb(self, colordb):
|
||||||
self.__colordb = colordb
|
self.__colordb = colordb
|
||||||
|
for v in self.__views:
|
||||||
|
if hasattr(v, 'colordb_changed'):
|
||||||
|
v.colordb_changed(colordb)
|
||||||
|
self.update_views_current()
|
||||||
|
|
||||||
def optiondb(self):
|
def optiondb(self):
|
||||||
return self.__optiondb
|
return self.__optiondb
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue