home *** CD-ROM | disk | FTP | other *** search
/ tusportal.tus.k12.pa.us / tusportal.tus.k12.pa.us.tar / tusportal.tus.k12.pa.us / Wyse / latest-image.raw / 0.img / usr / lib / pygtk / 2.0 / demos / colorsel.py < prev    next >
Text File  |  2010-05-11  |  2KB  |  74 lines

  1. #!/usr/bin/env python
  2. """Color Selector
  3.  
  4. GtkColorSelection lets the user choose a color. GtkColorSelectionDialog is a
  5. prebuilt dialog containing a GtkColorSelection."""
  6.  
  7. import gtk
  8.  
  9. class ColorSelectorDemo(gtk.Window):
  10.     color = gtk.gdk.color_parse("blue")
  11.  
  12.     def __init__(self, parent=None):
  13.         # Create the toplevel window
  14.         gtk.Window.__init__(self)
  15.         try:
  16.             self.set_screen(parent.get_screen())
  17.         except AttributeError:
  18.             self.connect('destroy', lambda *w: gtk.main_quit())
  19.  
  20.         self.set_title(self.__class__.__name__)
  21.         self.set_border_width(8)
  22.         vbox = gtk.VBox()
  23.         vbox.set_border_width(8)
  24.         self.add(vbox)
  25.  
  26.         # Create the color swatch area
  27.         frame = gtk.Frame()
  28.         frame.set_shadow_type(gtk.SHADOW_IN)
  29.         vbox.pack_start(frame, True, True, 8)
  30.  
  31.         self.d_area = gtk.DrawingArea()
  32.         self.d_area.set_size_request(200, 200)
  33.         self.d_area.modify_bg(gtk.STATE_NORMAL, self.color)
  34.         frame.add(self.d_area)
  35.  
  36.         alignment = gtk.Alignment(1.0, 0.5, 0.0, 0.0)
  37.  
  38.         button = gtk.Button("_Change the above color")
  39.         alignment.add(button)
  40.  
  41.         vbox.pack_start(alignment, True, True)
  42.  
  43.         button.connect('clicked', self.on_change_color_clicked)
  44.         button.set_flags(gtk.CAN_DEFAULT)
  45.         button.grab_default()
  46.  
  47.         self.show_all()
  48.  
  49.     def on_change_color_clicked(self, button):
  50.  
  51.         dialog = gtk.ColorSelectionDialog("Changing color")
  52.         dialog.set_transient_for(self)
  53.         colorsel = dialog.colorsel
  54.  
  55.         colorsel.set_previous_color(self.color)
  56.         colorsel.set_current_color(self.color)
  57.         colorsel.set_has_palette(True)
  58.  
  59.         response = dialog.run()
  60.  
  61.         if response == gtk.RESPONSE_OK:
  62.             self.color = colorsel.get_current_color()
  63.             self.d_area.modify_bg(gtk.STATE_NORMAL, self.color)
  64.  
  65.         dialog.destroy()
  66.         return True
  67.  
  68. def main():
  69.     ColorSelectorDemo()
  70.     gtk.main()
  71.  
  72. if __name__ == '__main__':
  73.     main()
  74.