--- /dev/null
+#!/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()