In response to a post made to the Tcler's wiki earlier this week, todays TLC was given to the gnocl::webKit package. Ok, its all still pretty well early stuff but the core navigation controls are there. Looking at things, perhaps the name of the core command should be changed to gnocl::webView. There are no docs yet, but all the key implemented options and commands are used in the following test script.
#---------------
# test-webkit.tcl
#---------------
# Created by William J Giddings
# 26-Mar-11
#---------------
# Description:
#
#---------------
#!/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"
package require Gnocl
package require GnoclWebKit
#--------------
#
#--------------
proc gnocl::browser { {home webkit.org} } {
# create container
set bx [gnocl::box -orientation vertical]
# global $bx.tbar
global ${bx}.wk
global ${bx}.tbar
global ${bx}.ent
global ${bx}.home
set ${bx}.home $home
# create key components, toolbar and browser
set tbar [gnocl::toolBar]
set wk [gnocl::webKit -transparent 1]
set b [$tbar add item -icon %#GoBack -tooltip "Go Back"]
set f [$tbar add item -icon %#GoForward -tooltip "Go Forward"]
set r [ $tbar add item -icon %#Refresh -tooltip "Reload"]
set s [$tbar add item -icon %#Cancel -tooltip "Stop"]
set h [$tbar add item -icon %#Home -tooltip "Home"]
set ent [gnocl::entry -widthChars 85]
$tbar add widget $ent
# set toolbar behaviours
$b configure -onClicked "$wk back"
$f configure -onClicked "$wk forward"
$r configure -onClicked "$wk reload"
$s configure -onClicked "$wk stop"
#$h configure -onClicked "$wk load http://$home"
$h configure -onClicked { set $browser.uri [loadPage $browser.wk [set $browser.home] ] }
$ent configure \
-onActivate { set $browser.uri [loadPage $browser.wk %t] } \
-variable ${bx}.uri \
# pack major components
$bx add $tbar
$bx add $wk -fill {1 1} -expand 1
# create global access
set ${bx}.wk $wk
set ${bx}.tbar $tbar
set ${bx}.ent $ent
return $bx
}
#---------------
#
#---------------
proc loadPage {viewer page} {
# string compare ?-nocase? ?-length int? string1 string2
if { [string compare -length 7 "http://" $page] != 0 } {
set page "http://$page"
}
[set $viewer] load $page
return $page
}
set browser [gnocl::browser]
gnocl::window \
-child $browser \
-setSize 0.75 \
-title "Gnocl WebKit Demo" \
-onDestroy { exit }
gnocl::mainLoop
# test-webkit.tcl
#---------------
# Created by William J Giddings
# 26-Mar-11
#---------------
# Description:
#
#---------------
#!/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"
package require Gnocl
package require GnoclWebKit
#--------------
#
#--------------
proc gnocl::browser { {home webkit.org} } {
# create container
set bx [gnocl::box -orientation vertical]
# global $bx.tbar
global ${bx}.wk
global ${bx}.tbar
global ${bx}.ent
global ${bx}.home
set ${bx}.home $home
# create key components, toolbar and browser
set tbar [gnocl::toolBar]
set wk [gnocl::webKit -transparent 1]
set b [$tbar add item -icon %#GoBack -tooltip "Go Back"]
set f [$tbar add item -icon %#GoForward -tooltip "Go Forward"]
set r [ $tbar add item -icon %#Refresh -tooltip "Reload"]
set s [$tbar add item -icon %#Cancel -tooltip "Stop"]
set h [$tbar add item -icon %#Home -tooltip "Home"]
set ent [gnocl::entry -widthChars 85]
$tbar add widget $ent
# set toolbar behaviours
$b configure -onClicked "$wk back"
$f configure -onClicked "$wk forward"
$r configure -onClicked "$wk reload"
$s configure -onClicked "$wk stop"
#$h configure -onClicked "$wk load http://$home"
$h configure -onClicked { set $browser.uri [loadPage $browser.wk [set $browser.home] ] }
$ent configure \
-onActivate { set $browser.uri [loadPage $browser.wk %t] } \
-variable ${bx}.uri \
# pack major components
$bx add $tbar
$bx add $wk -fill {1 1} -expand 1
# create global access
set ${bx}.wk $wk
set ${bx}.tbar $tbar
set ${bx}.ent $ent
return $bx
}
#---------------
#
#---------------
proc loadPage {viewer page} {
# string compare ?-nocase? ?-length int? string1 string2
if { [string compare -length 7 "http://" $page] != 0 } {
set page "http://$page"
}
[set $viewer] load $page
return $page
}
set browser [gnocl::browser]
gnocl::window \
-child $browser \
-setSize 0.75 \
-title "Gnocl WebKit Demo" \
-onDestroy { exit }
gnocl::mainLoop
Comments