home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / var / lib / python-support / python2.6 / gnome_sudoku / dialog_swallower.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  2.8 KB  |  80 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import gtk
  5. import gobject
  6.  
  7. class SwappableArea(gtk.Notebook):
  8.     swallowed = { }
  9.     response = None
  10.     running = False
  11.     
  12.     def __init__(self, main_area):
  13.         gtk.Notebook.__init__(self)
  14.         self.set_show_tabs(False)
  15.         self.set_show_border(False)
  16.         self.main_page = self.append_page(main_area)
  17.  
  18.     
  19.     def swallow_window(self, d):
  20.         child = d.child
  21.         d.remove(child)
  22.         return self.swallow_widget(child)
  23.  
  24.     
  25.     def swallow_widget(self, w):
  26.         w.unparent()
  27.         return self.append_page(w)
  28.  
  29.     
  30.     def response_cb(self, w, response, data = None):
  31.         gtk.main_quit()
  32.         self.response = response
  33.  
  34.     
  35.     def swallow_dialog(self, d):
  36.         n = self.swallow_window(d)
  37.         self.swallowed[d] = n
  38.         self.set_current_page(n)
  39.         d.connect('response', self.response_cb)
  40.  
  41.     
  42.     def run_dialog(self, d):
  43.         self.running = d
  44.         if not self.swallowed.has_key(d):
  45.             self.swallow_dialog(d)
  46.         
  47.         self.set_current_page(self.swallowed[d])
  48.         
  49.         try:
  50.             gtk.main()
  51.         except:
  52.             print 'Error in dialog!'
  53.             import traceback
  54.             traceback.print_exc()
  55.             print 'forge on fearlessly...'
  56.  
  57.         self.set_current_page(self.main_page)
  58.         self.running = None
  59.         tmp_response = self.response
  60.         self.response = None
  61.         return tmp_response
  62.  
  63.  
  64. if __name__ == '__main__':
  65.     d = gtk.Dialog()
  66.     d.vbox.add(gtk.Label('Foo, bar, baz'))
  67.     d.vbox.show_all()
  68.     d.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE)
  69.     import defaults
  70.     w = gtk.Window()
  71.     b = gtk.Button('show d')
  72.     b.show()
  73.     sa = SwappableArea(b)
  74.     sa.show()
  75.     w.add(sa)
  76.     b.connect_object('clicked', sa.run_dialog, d)
  77.     w.show()
  78.     gtk.main()
  79.  
  80.