~ubuntu-branches/ubuntu/raring/screenlets/raring

« back to all changes in this revision

Viewing changes to src/share/screenlets-manager/WebappScreenlet.py

  • Committer: Package Import Robot
  • Author(s): Julien Lavergne
  • Date: 2012-02-12 22:47:27 UTC
  • mto: This revision was merged to the branch mainline in revision 25.
  • Revision ID: package-import@ubuntu.com-20120212224727-kjobpgxp3tmw95qd
Tags: upstream-0.1.6
ImportĀ upstreamĀ versionĀ 0.1.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/env python
2
 
 
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!
9
 
 
10
 
# WebappScreenlet (c) 2007 bu Helder Fraga aka Whise
11
 
 
12
 
 
13
 
 
14
 
import screenlets
15
 
from screenlets import DefaultMenuItem
16
 
from screenlets.options import BoolOption, IntOption, ColorOption
17
 
import cairo
18
 
import gtk
19
 
import gobject
20
 
import commands
21
 
import sys
22
 
import os
23
 
from screenlets import sensors
24
 
 
25
 
myfile = 'WebappScreenlet.py'
26
 
 
27
 
try:
28
 
        import webkit
29
 
except:
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"
32
 
 
33
 
class WebappScreenlet (screenlets.Screenlet):
34
 
        """Brings Web applications to your desktop"""
35
 
        
36
 
        # default meta-info for Screenlets
37
 
        __name__                = 'WebappScreenlet'
38
 
        __version__             = '0.1'
39
 
        __author__              = 'Helder Fraga aka Whise'
40
 
        __desc__                = __doc__
41
 
 
42
 
        mypath = sys.argv[0][:sys.argv[0].find('WebappScreenlet.py')].strip()
43
 
        url = 'myurl'
44
 
 
45
 
        def __init__ (self, **keyword_args):
46
 
                # init stuff
47
 
                screenlets.Screenlet.__init__(self, width=325, height=370,uses_theme=True, 
48
 
                        is_widget=False, is_sticky=True,draw_buttons=False, **keyword_args)
49
 
 
50
 
                self.view = webkit.WebView()
51
 
                self.win = gtk.Window()
52
 
 
53
 
                #self.win.maximize()
54
 
                self.win.add(self.view)
55
 
 
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)          
60
 
 
61
 
                                
62
 
        def configure (self, widget, event):
63
 
                if event.x != self.x:
64
 
                        self.x = event.x
65
 
                        
66
 
                if event.y != self.y:
67
 
                        self.y = event.y
68
 
 
69
 
                if event.width != self.width:
70
 
                        self.width = event.width
71
 
 
72
 
                if event.height != self.height:
73
 
                        self.height = event.height
74
 
                        
75
 
        def on_init(self):
76
 
                if self.width == 325 and self.height == 370:
77
 
                        self.win.set_default_size(700,500)
78
 
                else:
79
 
                        self.win.set_default_size(self.width,self.height)
80
 
                self.win.move(self.x,self.y)
81
 
                self.win.show_all()
82
 
 
83
 
        def update(self,widget):
84
 
                
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)
92
 
 
93
 
                else:   
94
 
                        
95
 
                
96
 
                        self.session.quit_instance (self.id)
97
 
                        self.service.instance_removed(self.id)
98
 
        
99
 
 
100
 
                        
101
 
 
102
 
if __name__ == "__main__":
103
 
        import screenlets.session
104
 
        screenlets.session.create_session(WebappScreenlet)
105