def set_alpha(alph=255): ''' does the hard work of setting the alpha for self.w, using win32gui and winxpgui. ''' alph = int(alph) % 256 try: if flauxtext.os.name == 'nt': style = flauxtext.win32gui.GetWindowLong(self.w.window.handle, -20) if (style & 0x80000) != 0x80000: style |= 0x80000 flauxtext.win32gui.SetWindowLong(self.w.window.handle, -20, style) flauxtext.winxpgui.SetLayeredWindowAttributes(self.w.window.handle, 0, alph, 2) else: flauxtext.Popen('transset-df %f -i %d' % (alph / 256., self.w.window.xid)) self.transparency = alph except Exception, e: print e def dialog(): ''' ''' d = self.mk_dialog("alpha", (flauxtext.gtk.STOCK_OK,1)) s = flauxtext.gtk.HScale() d.vbox.pack_start(s) s.set_digits(0) s.set_increments(1, 10) s.set_range(1, 255) s.set_value(self.transparency); s.connect('value_changed', lambda s_=s: set_alpha(int(s.get_value()))) d.run() half = lambda: set_alpha(125) full = lambda: set_alpha(255) less = lambda x: set_alpha(self.transparency - int(x)) greater = lambda x: set_alpha(self.transparency + int(x)) def transparency(*a, **kw): ''' ''' if flauxtext.os.name == 'nt': try: flauxtext.imp0rt('win32gui', 'winxpgui') except: self.flash_info("you can't use transparency because you don't have win32all.", 2e4, 'no_win32all') return else: if not flauxtext.os.popen4('transset-df -h')[1].read().lower().startswith('usage'): self.flash_info("you can't use transparency because you don't have transset-df.", 2e4, 'no_transset') return a = [x for x in a if not isinstance(x, flauxtext.gtk.Action)] if isinstance(a[0], (int, long)): set_alpha(a[0]) elif isinstance(a[0], (str, unicode)): eval(a[0])(*a[1:])