- WebKitView now uses bundled uzbl-core
- Warning is shown on unsupported platforms
"{ Package: 'stx:libwebkit' }"
SimpleView subclass:#WebKitView
instanceVariableNames:'rendererView url title progress'
classVariableNames:''
poolDictionaries:''
category:'Views-WebKit'
!
!WebKitView class methodsFor:'queries'!
isAvailable
^WebKitRenderer isAvailable
"Created: / 10-06-2011 / 09:58:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!WebKitView class methodsFor:'startup'!
open
|url webkitView urlView topView|
url := 'http://www.webkit.org' asValue.
topView := StandardSystemView new ;
extent:(640 @ 480).
topView label:'WebKit demo'.
urlView := EditField in: topView.
urlView layout: (LayoutFrame fractions:(0 @ 0 corner:1.0 @ 0) offsets:(0 @ 0 corner:0 @ 25)).
urlView model: url.
webkitView := self in:topView.
webkitView layout: (LayoutFrame fractions:(0 @ 0 corner:1.0 @ 1.0) offsets:(0 @ 26 corner:0 @ 0)).
webkitView url: url.
topView open.
^ webkitView
"
WebKitView open
"
"Modified: / 16-05-1998 / 16:53:53 / cg"
"Created: / 03-06-2011 / 09:40:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!WebKitView methodsFor:'accessing'!
rendererView
^ rendererView
! !
!WebKitView methodsFor:'accessing - classes'!
rendererClass
^WebKitRenderer
"Created: / 03-06-2011 / 09:38:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!WebKitView methodsFor:'aspects'!
progress
"return/create the 'progress' value holder (automatically generated)"
progress isNil ifTrue:[
progress := ValueHolder new.
progress addDependent:self.
].
^ progress
!
progress:something
"set the 'progress' value holder (automatically generated)"
|oldValue newValue|
progress notNil ifTrue:[
oldValue := progress value.
progress removeDependent:self.
].
progress := something.
progress notNil ifTrue:[
progress addDependent:self.
].
newValue := progress value.
oldValue ~~ newValue ifTrue:[
self update:#value with:newValue from:progress.
].
!
title
"return/create the 'title' value holder (automatically generated)"
title isNil ifTrue:[
title := ValueHolder new.
].
^ title
!
title:something
"set the 'title' value holder (automatically generated)"
title := something.
!
url
"return/create the 'url' value holder (automatically generated)"
url isNil ifTrue:[
url := ValueHolder new.
url addDependent:self.
].
^ url
!
url:something
"set the 'url' value holder (automatically generated)"
|oldValue newValue|
url notNil ifTrue:[
oldValue := url value.
url removeDependent:self.
].
url := something.
url notNil ifTrue:[
url addDependent:self.
].
newValue := url value.
newValue ifNil:[url setValue:(newValue := 'about:blank')].
oldValue ~~ newValue ifTrue:[
self update:#value with:newValue from:url.
].
"Modified: / 07-06-2011 / 23:03:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!WebKitView methodsFor:'change & update'!
update:aspect with:param from:changedObject
"Invoked when an object that I depend upon sends a change notification."
"stub code automatically generated - please change as required"
(changedObject == url and:[aspect ~~ #valueFromEvent]) ifTrue:[
self updateUrl.
^ self.
].
super update:aspect with:param from:changedObject
"Modified: / 07-06-2011 / 11:43:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
updateUrl
renderer setVariable: #uri to: self url value
"Created: / 07-06-2011 / 10:18:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!WebKitView methodsFor:'initialization & release'!
initialize
super initialize.
renderer := self rendererClass for:self.
renderer isAvailable ifTrue:[
"/JV@2011-06-10: TODO: Use different embedding container on
"/Windows. once supported"
rendererView := XEmbedContainerView in: self.
] ifFalse:[
rendererView := Label new label:'WebKitView not (yet) available on this platform.'.
].
rendererView origin: 0.0@0.0 corner: 1.0@1.0.
rendererView useWorkaround: #uzbl.
"Created: / 02-06-2011 / 23:46:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 10-06-2011 / 10:03:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!WebKitView methodsFor:'realization'!
postRealize
super postRealize.
renderer isAvailable ifTrue:
[renderer spawn].
"Created: / 06-06-2011 / 10:40:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 10-06-2011 / 09:59:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!WebKitView class methodsFor:'documentation'!
version_SVN
^ '$Id$'
! !