commit 4a6bc7a1e0b1a3e6758f497b0dc34bee472fccc5 Author: Andrew Williams Date: Sun Jan 11 21:21:26 2009 +0000 Import iggykoopa's script and ADcomp images diff --git a/cb-openbox-logout.py b/cb-openbox-logout.py new file mode 100755 index 0000000..ddb6ff0 --- /dev/null +++ b/cb-openbox-logout.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python2.5 + +import gtk, os +from PIL import Image, ImageFilter + +class MyApp(): + def __init__(self): + + self.window = gtk.Window() + self.window.set_title("Log Out ..") + self.window.connect("destroy", self.doquit) + self.window.connect("key-press-event", self.onkeypress) + self.window.set_size_request(620,200) + self.window.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("black")) + self.window.set_decorated(gtk.FALSE) + self.window.set_position(gtk.WIN_POS_CENTER) + + self.window.connect("window-state-event", self.on_window_state_change) + + self.mainpanel = gtk.Fixed() + self.window.add(self.mainpanel) + + screen_x , screen_y = gtk.gdk.screen_width(), gtk.gdk.screen_height() + + x = ( screen_x / 2 ) - 300 + y = ( screen_y / 2 ) - 150 + + self.add_bouton("esc",x+30,y+30, self.mainpanel) + self.add_bouton("logout",x+170,y+30, self.mainpanel) + self.add_bouton("reboot",x+310,y+30, self.mainpanel) + self.add_bouton("shutdown",x+450,y+30, self.mainpanel) + + self.label_info = gtk.Label('Cancel') + self.label_info.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("white")) + self.mainpanel.put(self.label_info, x+80, y+170) + + self.label_info = gtk.Label('Logout') + self.label_info.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("white")) + self.mainpanel.put(self.label_info, x+220, y+170) + + self.label_info = gtk.Label('Reboot') + self.label_info.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("white")) + self.mainpanel.put(self.label_info, x+360, y+170) + + self.label_info = gtk.Label('Shutdown') + self.label_info.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("white")) + self.mainpanel.put(self.label_info, x+490, y+170) + + w = gtk.gdk.get_default_root_window() + sz = w.get_size() + pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1]) + pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1]) + if (pb != None): + pb.save("img/bg.jpg","jpeg") + image = Image.open("img/bg.jpg") + for i in range(2): + image = image.filter(ImageFilter.BLUR) + image.save("img/bg.jpg","jpeg") + + image = 'img/bg.jpg' + pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(image, screen_x, screen_y) + pixmap, mask = pixbuf.render_pixmap_and_mask() + # width, height = pixmap.get_size() + self.window.set_app_paintable(True) + self.window.resize(screen_x, screen_y) + self.window.realize() + self.window.window.set_back_pixmap(pixmap, False) + self.window.move(0,0) + del pixbuf + del pixmap + + def on_window_state_change(self, widget, event, *args): + if event.new_window_state & gtk.gdk.WINDOW_STATE_FULLSCREEN: + self.window_in_fullscreen = True + else: + self.window_in_fullscreen = False + + def add_bouton(self, name, x, y, page): + image = gtk.Image() + image.set_from_file("img/" + name + ".png") + image.show() + # un bouton pour contenir le widget image + bouton = gtk.Button() + bouton.set_relief(gtk.RELIEF_NONE) + bouton.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("black")) + bouton.set_focus_on_click(False) + bouton.set_border_width(0) + bouton.set_property('can-focus', False) + bouton.add(image) + #bouton.set_style(self.style) + bouton.show() + page.put(bouton, x,y) + bouton.connect("clicked", self.clic_bouton, name) + + # Cette fonction est invoquee quand on clique sur un bouton. + def clic_bouton(self, widget, data=None): + if (data=='esc'): + self.doquit() + elif (data=='logout'): + os.system('openbox --exit') + elif (data=='reboot'): + os.system('gdm-control --reboot && openbox --exit') + elif (data=='shutdown'): + os.system('gdm-control --shutdown && openbox --exit') + + + def onkeypress(self, widget=None, event=None, data=None): + if event.keyval == gtk.keysyms.Escape: + self.doquit() + + def doquit(self, widget=None, data=None): + gtk.main_quit() + + def run(self): + self.window.show_all() + gtk.main() + +app = MyApp() +app.run() diff --git a/img/bg.jpg b/img/bg.jpg new file mode 100644 index 0000000..2f4fe58 Binary files /dev/null and b/img/bg.jpg differ diff --git a/img/esc.png b/img/esc.png new file mode 100755 index 0000000..a537b66 Binary files /dev/null and b/img/esc.png differ diff --git a/img/logout.png b/img/logout.png new file mode 100755 index 0000000..ccdd74a Binary files /dev/null and b/img/logout.png differ diff --git a/img/reboot.png b/img/reboot.png new file mode 100755 index 0000000..d84366b Binary files /dev/null and b/img/reboot.png differ diff --git a/img/shutdown.png b/img/shutdown.png new file mode 100755 index 0000000..2196355 Binary files /dev/null and b/img/shutdown.png differ