X-Git-Url: http://git.maemo.org/git/?p=remotepc;a=blobdiff_plain;f=pcremote-server-desktop-60%2Fpcremote-server.py;fp=pcremote-server-desktop-60%2Fpcremote-server.py;h=195af3e101afb16dafa11d53df91ff025d2e94de;hp=0000000000000000000000000000000000000000;hb=8eeea3225c010dea378cdc71c4e91294e04a6e9c;hpb=e8447209e336f2a6845027f50b84cc914fa2c796 diff --git a/pcremote-server-desktop-60/pcremote-server.py b/pcremote-server-desktop-60/pcremote-server.py new file mode 100755 index 0000000..195af3e --- /dev/null +++ b/pcremote-server-desktop-60/pcremote-server.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python + +from runserver import Server +import gtk +import thread +import sys + +class Service: + + def start_server(self, widget): + + if self.connected == False: + imagepath = self.images.replace('pcremote-server.py','images/PCR_on.bmp') + self.staticon.set_from_file(imagepath) + self.staticon.set_tooltip("PC Remote Server - Online") + + img = gtk.Image() + img.set_from_stock(gtk.STOCK_DISCONNECT, gtk.ICON_SIZE_MENU) + self.menuItemCon.set_image(img) + + self.srv = Server("PC Remote") + thread.start_new_thread(Server.start,(self.srv,"server")) + + else: + imagepath = self.images.replace('pcremote-server.py','images/PCR_off.bmp') + self.staticon.set_from_file(imagepath) + self.staticon.set_tooltip("PC Remote Server - Offline") + + img = gtk.Image() + img.set_from_stock(gtk.STOCK_EXECUTE, gtk.ICON_SIZE_MENU) + + self.menuItemCon.set_image(img) + + thread.exit_thread() + + self.connected = not self.connected + + def destroyer(self, widget,response_id, data= None): + if response_id == gtk.RESPONSE_OK: + gtk.main_quit() + else: + widget.hide() + + def popup(self, widget): + dialog = gtk.MessageDialog( + parent = None, + flags = gtk.DIALOG_DESTROY_WITH_PARENT, + type = gtk.MESSAGE_INFO, + buttons = gtk.BUTTONS_OK_CANCEL, + message_format = "Do you want to shut down the server?") + dialog.set_title('PC Remote Server') + dialog.connect('response', self.destroyer) + dialog.show() + + def popup_menu_cb(self, widget, button, time, data = None): + if button == 3: + if data: + data.show_all() + data.popup(None, None, None, 3, time) + + + def __init__(self): + + self.images = sys.argv[0] + self.connected = False + + self.staticon = gtk.StatusIcon() + imagepath = self.images.replace('pcremote-server.py','images/PCR_off.bmp') + self.staticon.set_from_file(imagepath) + self.staticon.set_tooltip("PC Remote Server(offline)") + + self.menu = gtk.Menu() + + self.menuItemCon = gtk.ImageMenuItem(gtk.STOCK_EXECUTE) + self.menuItemCon.connect('activate', self.start_server) + + self.menuItemExit = gtk.ImageMenuItem(gtk.STOCK_QUIT) + self.menuItemExit.connect('activate', self.popup) + + self.menu.append(self.menuItemCon) + self.menu.append(self.menuItemExit) + + self.staticon.connect('popup-menu', self.popup_menu_cb, self.menu) + + self.staticon.set_visible(True) + + gtk.gdk.threads_init() + gtk.gdk.threads_enter() + + gtk.main() + + gtk.gdk.threads_leave() + +print sys.argv +Srv = Service()