3
# This application is released under the GNU General Public License
4
# v3 (or, at your option, any later version). You can find the full
5
# text of the license under http://www.gnu.org/licenses/gpl.txt.
6
# By using, editing and/or distributing this software you agree to
7
# the terms and conditions of this license.
8
# Thank you for using free software!
10
# WebappScreenlet (c) 2007 bu Helder Fraga aka Whise
15
from screenlets import DefaultMenuItem
16
from screenlets.options import BoolOption, IntOption, ColorOption
23
from screenlets import sensors
25
myfile = 'WebappScreenlet.py'
30
if sys.argv[0].endswith(myfile):screenlets.show_error(None,"You need WebKit to run this Screenlet , please install it")
31
else: print "You need WebKit to run this Screenlet , please install it"
33
class WebappScreenlet (screenlets.Screenlet):
34
"""Brings Web applications to your desktop"""
36
# default meta-info for Screenlets
37
__name__ = 'WebappScreenlet'
39
__author__ = 'Helder Fraga aka Whise'
42
mypath = sys.argv[0][:sys.argv[0].find('WebappScreenlet.py')].strip()
45
def __init__ (self, **keyword_args):
47
screenlets.Screenlet.__init__(self, width=325, height=370,uses_theme=True,
48
is_widget=False, is_sticky=True,draw_buttons=False, **keyword_args)
50
self.view = webkit.WebView()
51
self.win = gtk.Window()
54
self.win.add(self.view)
56
self.view.load_uri(self.url)
57
self.win.connect('destroy',self.quitall)
58
self.win.connect("configure-event", self.configure)
59
self.view.connect("notify::title",self.update)
62
def configure (self, widget, event):
69
if event.width != self.width:
70
self.width = event.width
72
if event.height != self.height:
73
self.height = event.height
76
if self.width == 325 and self.height == 370:
77
self.win.set_default_size(700,500)
79
self.win.set_default_size(self.width,self.height)
80
self.win.move(self.x,self.y)
83
def update(self,widget):
85
title = self.view.get_title()
86
self.win.set_title(title)
87
def quitall(self,widget):
88
if len(self.session.instances) > 1:
89
self.session.delete_instance (self.id)
90
# notify about being rmeoved (does this get send???)
91
self.service.instance_removed(self.id)
96
self.session.quit_instance (self.id)
97
self.service.instance_removed(self.id)
102
if __name__ == "__main__":
103
import screenlets.session
104
screenlets.session.create_session(WebappScreenlet)