File: //proc/2/cwd/usr/lib64/python2.7/site-packages/pynche/Switchboard.pyo
�
��^c           @   sE   d  Z  d d l Z d d l m Z d d l Z d d d �  �  YZ d S(   s�  Switchboard class.
This class is used to coordinate updates among all Viewers.  Every Viewer must
conform to the following interface:
    - it must include a method called update_yourself() which takes three
      arguments; the red, green, and blue values of the selected color.
    - When a Viewer selects a color and wishes to update all other Views, it
      should call update_views() on the Switchboard object.  Note that the
      Viewer typically does *not* update itself before calling update_views(),
      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.
i����N(   t   DictTypet   Switchboardc           B   sw   e  Z d  �  Z d �  Z d �  Z d �  Z d �  Z d �  Z d �  Z d �  Z	 d �  Z
 d	 �  Z d
 d � Z d �  Z
 RS(
   c         C   s�   | |  _  d  |  _ i  |  _ g  |  _ d |  _ d |  _ d |  _ d |  _ d  } | r� zt yS t	 | � } t
 j | � |  _ t |  j t
 � s� t j d I| IJi  |  _ n  Wn t t t f k
 r� n XWd  | r� | j �  n  Xn  d  S(   Ni    s"